"use strict";
(function() {

var $goVersion = "go1.18.1";
Error.stackTraceLimit = Infinity;

var $NaN = NaN;
var $global, $module;
if (typeof window !== "undefined") { /* web page */
  $global = window;
} else if (typeof self !== "undefined") { /* web worker */
  $global = self;
} else if (typeof global !== "undefined") { /* Node.js */
  $global = global;
  $global.require = require;
} else { /* others (e.g. Nashorn) */
  $global = this;
}

if ($global === undefined || $global.Array === undefined) {
  throw new Error("no global object found");
}
if (typeof module !== "undefined") {
  $module = module;
}

if (!$global.fs && $global.require) {
  try {
    var fs = $global.require('fs');
    if (typeof fs === "object" && fs !== null && Object.keys(fs).length !== 0) {
      $global.fs = fs;
    }
  } catch(e) { /* Ignore if the module couldn't be loaded. */ }
}

if (!$global.fs) {
  var outputBuf = "";
  var decoder = new TextDecoder("utf-8");
  $global.fs = {
    constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused
    writeSync: function writeSync(fd, buf) {
      outputBuf += decoder.decode(buf);
      var nl = outputBuf.lastIndexOf("\n");
      if (nl != -1) {
        console.log(outputBuf.substr(0, nl));
        outputBuf = outputBuf.substr(nl + 1);
      }
      return buf.length;
    },
    write: function write(fd, buf, offset, length, position, callback) {
      if (offset !== 0 || length !== buf.length || position !== null) {
        callback(enosys());
        return;
      }
      var n = this.writeSync(fd, buf);
      callback(null, n);
    }
  };
}

var $linknames = {} // Collection of functions referenced by a go:linkname directive.
var $packages = {}, $idCounter = 0;
var $keys = function(m) { return m ? Object.keys(m) : []; };
var $flushConsole = function() {};
var $throwRuntimeError; /* set by package "runtime" */
var $throwNilPointerError = function() { $throwRuntimeError("invalid memory address or nil pointer dereference"); };
var $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); };
var $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; };
var $unused = function(v) {};
var $print = console.log;
// Under Node we can emulate print() more closely by avoiding a newline.
if (($global.process !== undefined) && $global.require) {
  try {
    var util = $global.require('util');
    $print = function() { $global.process.stderr.write(util.format.apply(this, arguments)); };
  } catch (e) {
    // Failed to require util module, keep using console.log().
  }
}
var $println = console.log

var $initAllLinknames = function() {
  var names = $keys($packages);
  for (var i = 0; i < names.length; i++) {
    var f = $packages[names[i]]["$initLinknames"];
    if (typeof f == 'function') {
      f();
    }
  }
}

var $mapArray = function(array, f) {
  var newArray = new array.constructor(array.length);
  for (var i = 0; i < array.length; i++) {
    newArray[i] = f(array[i]);
  }
  return newArray;
};

// $mapIndex returns the value of the given key in m, or undefined if m is nil/undefined or not a map
var $mapIndex = function(m, key) {
  return typeof m.get === "function" ? m.get(key) : undefined;
};
// $mapDelete deletes the key and associated value from m.  If m is nil/undefined or not a map, $mapDelete is a no-op
var $mapDelete = function(m, key) {
  typeof m.delete === "function" && m.delete(key)
};
// Returns a method bound to the receiver instance, safe to invoke as a 
// standalone function. Bound function is cached for later reuse.
var $methodVal = function(recv, name) {
  var vals = recv.$methodVals || {};
  recv.$methodVals = vals; /* noop for primitives */
  var f = vals[name];
  if (f !== undefined) {
    return f;
  }
  var method = recv[name];
  f = method.bind(recv);
  vals[name] = f;
  return f;
};

var $methodExpr = function(typ, name) {
  var method = typ.prototype[name];
  if (method.$expr === undefined) {
    method.$expr = function() {
      $stackDepthOffset--;
      try {
        if (typ.wrapped) {
          arguments[0] = new typ(arguments[0]);
        }
        return Function.call.apply(method, arguments);
      } finally {
        $stackDepthOffset++;
      }
    };
  }
  return method.$expr;
};

var $ifaceMethodExprs = {};
var $ifaceMethodExpr = function(name) {
  var expr = $ifaceMethodExprs["$" + name];
  if (expr === undefined) {
    expr = $ifaceMethodExprs["$" + name] = function() {
      $stackDepthOffset--;
      try {
        return Function.call.apply(arguments[0][name], arguments);
      } finally {
        $stackDepthOffset++;
      }
    };
  }
  return expr;
};

var $subslice = function(slice, low, high, max) {
  if (high === undefined) {
    high = slice.$length;
  }
  if (max === undefined) {
    max = slice.$capacity;
  }
  if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) {
    $throwRuntimeError("slice bounds out of range");
  }
  if (slice === slice.constructor.nil) {
    return slice;
  }
  var s = new slice.constructor(slice.$array);
  s.$offset = slice.$offset + low;
  s.$length = high - low;
  s.$capacity = max - low;
  return s;
};

var $substring = function(str, low, high) {
  if (low < 0 || high < low || high > str.length) {
    $throwRuntimeError("slice bounds out of range");
  }
  return str.substring(low, high);
};

// Convert Go slice to an equivalent JS array type.
var $sliceToNativeArray = function(slice) {
  if (slice.$array.constructor !== Array) {
    return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length);
  }
  return slice.$array.slice(slice.$offset, slice.$offset + slice.$length);
};

// Convert Go slice to a pointer to an underlying Go array.
// 
// Note that an array pointer can be represented by an "unwrapped" native array
// type, and it will be wrapped back into its Go type when necessary.
var $sliceToGoArray = function(slice, arrayPtrType) {
  var arrayType = arrayPtrType.elem;
  if (arrayType !== undefined && slice.$length < arrayType.len) {
    $throwRuntimeError("cannot convert slice with length " + slice.$length + " to pointer to array with length " + arrayType.len);
  }
  if (slice == slice.constructor.nil) {
    return arrayPtrType.nil; // Nil slice converts to nil array pointer.
  }
  if (slice.$array.constructor !== Array) {
    return slice.$array.subarray(slice.$offset, slice.$offset + arrayType.len);
  }
  if (slice.$offset == 0 && slice.$length == slice.$capacity && slice.$length == arrayType.len) {
    return slice.$array;
  }
  if (arrayType.len == 0) {
    return new arrayType([]);
  }

  // Array.slice (unlike TypedArray.subarray) returns a copy of an array range,
  // which is not sharing memory with the original one, which violates the spec
  // for slice to array conversion. This is incompatible with the Go spec, in
  // particular that the assignments to the array elements would be visible in
  // the slice. Prefer to fail explicitly instead of creating subtle bugs.
  $throwRuntimeError("gopherjs: non-numeric slice to underlying array conversion is not supported for subslices");
};

// Convert between compatible slice types (e.g. native and names).
var $convertSliceType = function(slice, desiredType) {
  if (slice == slice.constructor.nil) {
    return desiredType.nil; // Preserve nil value.
  }

  return $subslice(new desiredType(slice.$array), slice.$offset, slice.$offset + slice.$length);
}

var $decodeRune = function(str, pos) {
  var c0 = str.charCodeAt(pos);

  if (c0 < 0x80) {
    return [c0, 1];
  }

  if (c0 !== c0 || c0 < 0xC0) {
    return [0xFFFD, 1];
  }

  var c1 = str.charCodeAt(pos + 1);
  if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) {
    return [0xFFFD, 1];
  }

  if (c0 < 0xE0) {
    var r = (c0 & 0x1F) << 6 | (c1 & 0x3F);
    if (r <= 0x7F) {
      return [0xFFFD, 1];
    }
    return [r, 2];
  }

  var c2 = str.charCodeAt(pos + 2);
  if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) {
    return [0xFFFD, 1];
  }

  if (c0 < 0xF0) {
    var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F);
    if (r <= 0x7FF) {
      return [0xFFFD, 1];
    }
    if (0xD800 <= r && r <= 0xDFFF) {
      return [0xFFFD, 1];
    }
    return [r, 3];
  }

  var c3 = str.charCodeAt(pos + 3);
  if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) {
    return [0xFFFD, 1];
  }

  if (c0 < 0xF8) {
    var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F);
    if (r <= 0xFFFF || 0x10FFFF < r) {
      return [0xFFFD, 1];
    }
    return [r, 4];
  }

  return [0xFFFD, 1];
};

var $encodeRune = function(r) {
  if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) {
    r = 0xFFFD;
  }
  if (r <= 0x7F) {
    return String.fromCharCode(r);
  }
  if (r <= 0x7FF) {
    return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F));
  }
  if (r <= 0xFFFF) {
    return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));
  }
  return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F));
};

var $stringToBytes = function(str) {
  var array = new Uint8Array(str.length);
  for (var i = 0; i < str.length; i++) {
    array[i] = str.charCodeAt(i);
  }
  return array;
};

var $bytesToString = function(slice) {
  if (slice.$length === 0) {
    return "";
  }
  var str = "";
  for (var i = 0; i < slice.$length; i += 10000) {
    str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000)));
  }
  return str;
};

var $stringToRunes = function(str) {
  var array = new Int32Array(str.length);
  var rune, j = 0;
  for (var i = 0; i < str.length; i += rune[1], j++) {
    rune = $decodeRune(str, i);
    array[j] = rune[0];
  }
  return array.subarray(0, j);
};

var $runesToString = function(slice) {
  if (slice.$length === 0) {
    return "";
  }
  var str = "";
  for (var i = 0; i < slice.$length; i++) {
    str += $encodeRune(slice.$array[slice.$offset + i]);
  }
  return str;
};

var $copyString = function(dst, src) {
  var n = Math.min(src.length, dst.$length);
  for (var i = 0; i < n; i++) {
    dst.$array[dst.$offset + i] = src.charCodeAt(i);
  }
  return n;
};

var $copySlice = function(dst, src) {
  var n = Math.min(src.$length, dst.$length);
  $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem);
  return n;
};

var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) {
  if (n === 0 || (dst === src && dstOffset === srcOffset)) {
    return;
  }

  if (src.subarray) {
    dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset);
    return;
  }

  switch (elem.kind) {
  case $kindArray:
  case $kindStruct:
    if (dst === src && dstOffset > srcOffset) {
      for (var i = n - 1; i >= 0; i--) {
        elem.copy(dst[dstOffset + i], src[srcOffset + i]);
      }
      return;
    }
    for (var i = 0; i < n; i++) {
      elem.copy(dst[dstOffset + i], src[srcOffset + i]);
    }
    return;
  }

  if (dst === src && dstOffset > srcOffset) {
    for (var i = n - 1; i >= 0; i--) {
      dst[dstOffset + i] = src[srcOffset + i];
    }
    return;
  }
  for (var i = 0; i < n; i++) {
    dst[dstOffset + i] = src[srcOffset + i];
  }
};

var $clone = function(src, type) {
  var clone = type.zero();
  type.copy(clone, src);
  return clone;
};

var $pointerOfStructConversion = function(obj, type) {
  if(obj.$proxies === undefined) {
    obj.$proxies = {};
    obj.$proxies[obj.constructor.string] = obj;
  }
  var proxy = obj.$proxies[type.string];
  if (proxy === undefined) {
    var properties = {};
    for (var i = 0; i < type.elem.fields.length; i++) {
      (function(fieldProp) {
        properties[fieldProp] = {
          get: function() { return obj[fieldProp]; },
          set: function(value) { obj[fieldProp] = value; }
        };
      })(type.elem.fields[i].prop);
    }
    proxy = Object.create(type.prototype, properties);
    proxy.$val = proxy;
    obj.$proxies[type.string] = proxy;
    proxy.$proxies = obj.$proxies;
  }
  return proxy;
};

var $append = function(slice) {
  return $internalAppend(slice, arguments, 1, arguments.length - 1);
};

var $appendSlice = function(slice, toAppend) {
  if (toAppend.constructor === String) {
    var bytes = $stringToBytes(toAppend);
    return $internalAppend(slice, bytes, 0, bytes.length);
  }
  return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length);
};

var $internalAppend = function(slice, array, offset, length) {
  if (length === 0) {
    return slice;
  }

  var newArray = slice.$array;
  var newOffset = slice.$offset;
  var newLength = slice.$length + length;
  var newCapacity = slice.$capacity;

  if (newLength > newCapacity) {
    newOffset = 0;
    newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4));

    if (slice.$array.constructor === Array) {
      newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length);
      newArray.length = newCapacity;
      var zero = slice.constructor.elem.zero;
      for (var i = slice.$length; i < newCapacity; i++) {
        newArray[i] = zero();
      }
    } else {
      newArray = new slice.$array.constructor(newCapacity);
      newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length));
    }
  }

  $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem);

  var newSlice = new slice.constructor(newArray);
  newSlice.$offset = newOffset;
  newSlice.$length = newLength;
  newSlice.$capacity = newCapacity;
  return newSlice;
};

var $equal = function(a, b, type) {
  if (type === $jsObjectPtr) {
    return a === b;
  }
  switch (type.kind) {
  case $kindComplex64:
  case $kindComplex128:
    return a.$real === b.$real && a.$imag === b.$imag;
  case $kindInt64:
  case $kindUint64:
    return a.$high === b.$high && a.$low === b.$low;
  case $kindArray:
    if (a.length !== b.length) {
      return false;
    }
    for (var i = 0; i < a.length; i++) {
      if (!$equal(a[i], b[i], type.elem)) {
        return false;
      }
    }
    return true;
  case $kindStruct:
    for (var i = 0; i < type.fields.length; i++) {
      var f = type.fields[i];
      if (!$equal(a[f.prop], b[f.prop], f.typ)) {
        return false;
      }
    }
    return true;
  case $kindInterface:
    return $interfaceIsEqual(a, b);
  default:
    return a === b;
  }
};

var $interfaceIsEqual = function(a, b) {
  if (a === $ifaceNil || b === $ifaceNil) {
    return a === b;
  }
  if (a.constructor !== b.constructor) {
    return false;
  }
  if (a.constructor === $jsObjectPtr) {
    return a.object === b.object;
  }
  if (!a.constructor.comparable) {
    $throwRuntimeError("comparing uncomparable type " + a.constructor.string);
  }
  return $equal(a.$val, b.$val, a.constructor);
};

var $unsafeMethodToFunction = function(typ, name, isPtr) {
  if (isPtr) {
    return function(r, ...args) {
      var ptrType = $ptrType(typ);
      if (r.constructor != ptrType) {
         switch (typ.kind) {
         case $kindStruct:
           r = $pointerOfStructConversion(r, ptrType);
           break;
         case $kindArray:
           r = new ptrType(r);
           break;
         default:
           r = new ptrType(r.$get,r.$set,r.$target);
         }
      }
      return r[name](...args);
    }
  } else {
     return function(r, ...args) {
       var ptrType = $ptrType(typ);
       if (r.constructor != ptrType) {
         switch (typ.kind) {
         case $kindStruct:
           r = $clone(r, typ);
           break;
         case $kindSlice:
           r = $convertSliceType(r, typ);
           break;
         case $kindComplex64:
         case $kindComplex128:
           r = new typ(r.$real, r.$imag);
           break;
         default:
           r = new typ(r);
         }
       }
       return r[name](...args);
     }
  }
};

var $id = function(x) {
  return x;
};

var $instanceOf = function(x, y) {
  return x instanceof y;
};

var $typeOf = function(x) {
  return typeof(x);
};

var $min = Math.min;
var $mod = function(x, y) { return x % y; };
var $parseInt = parseInt;
var $parseFloat = function(f) {
  if (f !== undefined && f !== null && f.constructor === Number) {
    return f;
  }
  return parseFloat(f);
};

var $froundBuf = new Float32Array(1);
var $fround = Math.fround || function(f) {
  $froundBuf[0] = f;
  return $froundBuf[0];
};

var $imul = Math.imul || function(a, b) {
  var ah = (a >>> 16) & 0xffff;
  var al = a & 0xffff;
  var bh = (b >>> 16) & 0xffff;
  var bl = b & 0xffff;
  return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0);
};

var $floatKey = function(f) {
  if (f !== f) {
    $idCounter++;
    return "NaN$" + $idCounter;
  }
  return String(f);
};

var $flatten64 = function(x) {
  return x.$high * 4294967296 + x.$low;
};

var $shiftLeft64 = function(x, y) {
  if (y === 0) {
    return x;
  }
  if (y < 32) {
    return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0);
  }
  if (y < 64) {
    return new x.constructor(x.$low << (y - 32), 0);
  }
  return new x.constructor(0, 0);
};

var $shiftRightInt64 = function(x, y) {
  if (y === 0) {
    return x;
  }
  if (y < 32) {
    return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);
  }
  if (y < 64) {
    return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0);
  }
  if (x.$high < 0) {
    return new x.constructor(-1, 4294967295);
  }
  return new x.constructor(0, 0);
};

var $shiftRightUint64 = function(x, y) {
  if (y === 0) {
    return x;
  }
  if (y < 32) {
    return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0);
  }
  if (y < 64) {
    return new x.constructor(0, x.$high >>> (y - 32));
  }
  return new x.constructor(0, 0);
};

var $mul64 = function(x, y) {
  var x48 = x.$high >>> 16;
  var x32 = x.$high & 0xFFFF;
  var x16 = x.$low >>> 16;
  var x00 = x.$low & 0xFFFF;

  var y48 = y.$high >>> 16;
  var y32 = y.$high & 0xFFFF;
  var y16 = y.$low >>> 16;
  var y00 = y.$low & 0xFFFF;

  var z48 = 0, z32 = 0, z16 = 0, z00 = 0;
  z00 += x00 * y00;
  z16 += z00 >>> 16;
  z00 &= 0xFFFF;
  z16 += x16 * y00;
  z32 += z16 >>> 16;
  z16 &= 0xFFFF;
  z16 += x00 * y16;
  z32 += z16 >>> 16;
  z16 &= 0xFFFF;
  z32 += x32 * y00;
  z48 += z32 >>> 16;
  z32 &= 0xFFFF;
  z32 += x16 * y16;
  z48 += z32 >>> 16;
  z32 &= 0xFFFF;
  z32 += x00 * y32;
  z48 += z32 >>> 16;
  z32 &= 0xFFFF;
  z48 += x48 * y00 + x32 * y16 + x16 * y32 + x00 * y48;
  z48 &= 0xFFFF;

  var hi = ((z48 << 16) | z32) >>> 0;
  var lo = ((z16 << 16) | z00) >>> 0;

  var r = new x.constructor(hi, lo);
  return r;
};

var $div64 = function(x, y, returnRemainder) {
  if (y.$high === 0 && y.$low === 0) {
    $throwRuntimeError("integer divide by zero");
  }

  var s = 1;
  var rs = 1;

  var xHigh = x.$high;
  var xLow = x.$low;
  if (xHigh < 0) {
    s = -1;
    rs = -1;
    xHigh = -xHigh;
    if (xLow !== 0) {
      xHigh--;
      xLow = 4294967296 - xLow;
    }
  }

  var yHigh = y.$high;
  var yLow = y.$low;
  if (y.$high < 0) {
    s *= -1;
    yHigh = -yHigh;
    if (yLow !== 0) {
      yHigh--;
      yLow = 4294967296 - yLow;
    }
  }

  var high = 0, low = 0, n = 0;
  while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) {
    yHigh = (yHigh << 1 | yLow >>> 31) >>> 0;
    yLow = (yLow << 1) >>> 0;
    n++;
  }
  for (var i = 0; i <= n; i++) {
    high = high << 1 | low >>> 31;
    low = (low << 1) >>> 0;
    if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) {
      xHigh = xHigh - yHigh;
      xLow = xLow - yLow;
      if (xLow < 0) {
        xHigh--;
        xLow += 4294967296;
      }
      low++;
      if (low === 4294967296) {
        high++;
        low = 0;
      }
    }
    yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0;
    yHigh = yHigh >>> 1;
  }

  if (returnRemainder) {
    return new x.constructor(xHigh * rs, xLow * rs);
  }
  return new x.constructor(high * s, low * s);
};

var $divComplex = function(n, d) {
  var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity;
  var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity;
  var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag);
  var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag);
  if(nnan || dnan) {
    return new n.constructor(NaN, NaN);
  }
  if (ninf && !dinf) {
    return new n.constructor(Infinity, Infinity);
  }
  if (!ninf && dinf) {
    return new n.constructor(0, 0);
  }
  if (d.$real === 0 && d.$imag === 0) {
    if (n.$real === 0 && n.$imag === 0) {
      return new n.constructor(NaN, NaN);
    }
    return new n.constructor(Infinity, Infinity);
  }
  var a = Math.abs(d.$real);
  var b = Math.abs(d.$imag);
  if (a <= b) {
    var ratio = d.$real / d.$imag;
    var denom = d.$real * ratio + d.$imag;
    return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom);
  }
  var ratio = d.$imag / d.$real;
  var denom = d.$imag * ratio + d.$real;
  return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom);
};

var $kindBool = 1;
var $kindInt = 2;
var $kindInt8 = 3;
var $kindInt16 = 4;
var $kindInt32 = 5;
var $kindInt64 = 6;
var $kindUint = 7;
var $kindUint8 = 8;
var $kindUint16 = 9;
var $kindUint32 = 10;
var $kindUint64 = 11;
var $kindUintptr = 12;
var $kindFloat32 = 13;
var $kindFloat64 = 14;
var $kindComplex64 = 15;
var $kindComplex128 = 16;
var $kindArray = 17;
var $kindChan = 18;
var $kindFunc = 19;
var $kindInterface = 20;
var $kindMap = 21;
var $kindPtr = 22;
var $kindSlice = 23;
var $kindString = 24;
var $kindStruct = 25;
var $kindUnsafePointer = 26;

var $methodSynthesizers = [];
var $addMethodSynthesizer = function(f) {
  if ($methodSynthesizers === null) {
    f();
    return;
  }
  $methodSynthesizers.push(f);
};
var $synthesizeMethods = function() {
  $methodSynthesizers.forEach(function(f) { f(); });
  $methodSynthesizers = null;
};

var $ifaceKeyFor = function(x) {
  if (x === $ifaceNil) {
    return 'nil';
  }
  var c = x.constructor;
  return c.string + '$' + c.keyFor(x.$val);
};

var $identity = function(x) { return x; };

var $typeIDCounter = 0;

var $idKey = function(x) {
  if (x.$id === undefined) {
    $idCounter++;
    x.$id = $idCounter;
  }
  return String(x.$id);
};

// Creates constructor functions for array pointer types. Returns a new function
// instace each time to make sure each type is independent of the other.
var $arrayPtrCtor = function() {
  return function(array) {
    this.$get = function() { return array; };
    this.$set = function(v) { typ.copy(this, v); };
    this.$val = array;
  }
}

var $newType = function(size, kind, string, named, pkg, exported, constructor) {
  var typ;
  switch(kind) {
  case $kindBool:
  case $kindInt:
  case $kindInt8:
  case $kindInt16:
  case $kindInt32:
  case $kindUint:
  case $kindUint8:
  case $kindUint16:
  case $kindUint32:
  case $kindUintptr:
  case $kindUnsafePointer:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.keyFor = $identity;
    break;

  case $kindString:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.keyFor = function(x) { return "$" + x; };
    break;

  case $kindFloat32:
  case $kindFloat64:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.keyFor = function(x) { return $floatKey(x); };
    break;

  case $kindInt64:
    typ = function(high, low) {
      this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0;
      this.$low = low >>> 0;
      this.$val = this;
    };
    typ.keyFor = function(x) { return x.$high + "$" + x.$low; };
    break;

  case $kindUint64:
    typ = function(high, low) {
      this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0;
      this.$low = low >>> 0;
      this.$val = this;
    };
    typ.keyFor = function(x) { return x.$high + "$" + x.$low; };
    break;

  case $kindComplex64:
    typ = function(real, imag) {
      this.$real = $fround(real);
      this.$imag = $fround(imag);
      this.$val = this;
    };
    typ.keyFor = function(x) { return x.$real + "$" + x.$imag; };
    break;

  case $kindComplex128:
    typ = function(real, imag) {
      this.$real = real;
      this.$imag = imag;
      this.$val = this;
    };
    typ.keyFor = function(x) { return x.$real + "$" + x.$imag; };
    break;

  case $kindArray:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, $arrayPtrCtor());
    typ.init = function(elem, len) {
      typ.elem = elem;
      typ.len = len;
      typ.comparable = elem.comparable;
      typ.keyFor = function(x) {
        return Array.prototype.join.call($mapArray(x, function(e) {
          return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$");
        }), "$");
      };
      typ.copy = function(dst, src) {
        $copyArray(dst, src, 0, 0, src.length, elem);
      };
      typ.ptr.init(typ);
      Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError });
    };
    break;

  case $kindChan:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.keyFor = $idKey;
    typ.init = function(elem, sendOnly, recvOnly) {
      typ.elem = elem;
      typ.sendOnly = sendOnly;
      typ.recvOnly = recvOnly;
    };
    break;

  case $kindFunc:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.init = function(params, results, variadic) {
      typ.params = params;
      typ.results = results;
      typ.variadic = variadic;
      typ.comparable = false;
    };
    break;

  case $kindInterface:
    typ = { implementedBy: {}, missingMethodFor: {} };
    typ.keyFor = $ifaceKeyFor;
    typ.init = function(methods) {
      typ.methods = methods;
      methods.forEach(function(m) {
        $ifaceNil[m.prop] = $throwNilPointerError;
      });
    };
    break;

  case $kindMap:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.init = function(key, elem) {
      typ.key = key;
      typ.elem = elem;
      typ.comparable = false;
    };
    break;

  case $kindPtr:
    typ = constructor || function(getter, setter, target) {
      this.$get = getter;
      this.$set = setter;
      this.$target = target;
      this.$val = this;
    };
    typ.keyFor = $idKey;
    typ.init = function(elem) {
      typ.elem = elem;
      typ.wrapped = (elem.kind === $kindArray);
      typ.nil = new typ($throwNilPointerError, $throwNilPointerError);
    };
    break;

  case $kindSlice:
    typ = function(array) {
      if (array.constructor !== typ.nativeArray) {
        array = new typ.nativeArray(array);
      }
      this.$array = array;
      this.$offset = 0;
      this.$length = array.length;
      this.$capacity = array.length;
      this.$val = this;
    };
    typ.init = function(elem) {
      typ.elem = elem;
      typ.comparable = false;
      typ.nativeArray = $nativeArray(elem.kind);
      typ.nil = new typ([]);
    };
    break;

  case $kindStruct:
    typ = function(v) { this.$val = v; };
    typ.wrapped = true;
    typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor);
    typ.ptr.elem = typ;
    typ.ptr.prototype.$get = function() { return this; };
    typ.ptr.prototype.$set = function(v) { typ.copy(this, v); };
    typ.init = function(pkgPath, fields) {
      typ.pkgPath = pkgPath;
      typ.fields = fields;
      fields.forEach(function(f) {
        if (!f.typ.comparable) {
          typ.comparable = false;
        }
      });
      typ.keyFor = function(x) {
        var val = x.$val;
        return $mapArray(fields, function(f) {
          return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$");
        }).join("$");
      };
      typ.copy = function(dst, src) {
        for (var i = 0; i < fields.length; i++) {
          var f = fields[i];
          switch (f.typ.kind) {
          case $kindArray:
          case $kindStruct:
            f.typ.copy(dst[f.prop], src[f.prop]);
            continue;
          default:
            dst[f.prop] = src[f.prop];
            continue;
          }
        }
      };
      /* nil value */
      var properties = {};
      fields.forEach(function(f) {
        properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError };
      });
      typ.ptr.nil = Object.create(constructor.prototype, properties);
      typ.ptr.nil.$val = typ.ptr.nil;
      /* methods for embedded fields */
      $addMethodSynthesizer(function() {
        var synthesizeMethod = function(target, m, f) {
          if (target.prototype[m.prop] !== undefined) { return; }
          target.prototype[m.prop] = function() {
            var v = this.$val[f.prop];
            if (f.typ === $jsObjectPtr) {
              v = new $jsObjectPtr(v);
            }
            if (v.$val === undefined) {
              v = new f.typ(v);
            }
            return v[m.prop].apply(v, arguments);
          };
        };
        fields.forEach(function(f) {
          if (f.embedded) {
            $methodSet(f.typ).forEach(function(m) {
              synthesizeMethod(typ, m, f);
              synthesizeMethod(typ.ptr, m, f);
            });
            $methodSet($ptrType(f.typ)).forEach(function(m) {
              synthesizeMethod(typ.ptr, m, f);
            });
          }
        });
      });
    };
    break;

  default:
    $panic(new $String("invalid kind: " + kind));
  }

  switch (kind) {
  case $kindBool:
  case $kindMap:
    typ.zero = function() { return false; };
    break;

  case $kindInt:
  case $kindInt8:
  case $kindInt16:
  case $kindInt32:
  case $kindUint:
  case $kindUint8 :
  case $kindUint16:
  case $kindUint32:
  case $kindUintptr:
  case $kindUnsafePointer:
  case $kindFloat32:
  case $kindFloat64:
    typ.zero = function() { return 0; };
    break;

  case $kindString:
    typ.zero = function() { return ""; };
    break;

  case $kindInt64:
  case $kindUint64:
  case $kindComplex64:
  case $kindComplex128:
    var zero = new typ(0, 0);
    typ.zero = function() { return zero; };
    break;

  case $kindPtr:
  case $kindSlice:
    typ.zero = function() { return typ.nil; };
    break;

  case $kindChan:
    typ.zero = function() { return $chanNil; };
    break;

  case $kindFunc:
    typ.zero = function() { return $throwNilPointerError; };
    break;

  case $kindInterface:
    typ.zero = function() { return $ifaceNil; };
    break;

  case $kindArray:
    typ.zero = function() {
      var arrayClass = $nativeArray(typ.elem.kind);
      if (arrayClass !== Array) {
        return new arrayClass(typ.len);
      }
      var array = new Array(typ.len);
      for (var i = 0; i < typ.len; i++) {
        array[i] = typ.elem.zero();
      }
      return array;
    };
    break;

  case $kindStruct:
    typ.zero = function() { return new typ.ptr(); };
    break;

  default:
    $panic(new $String("invalid kind: " + kind));
  }

  typ.id = $typeIDCounter;
  $typeIDCounter++;
  typ.size = size;
  typ.kind = kind;
  typ.string = string;
  typ.named = named;
  typ.pkg = pkg;
  typ.exported = exported;
  typ.methods = [];
  typ.methodSetCache = null;
  typ.comparable = true;
  return typ;
};

var $methodSet = function(typ) {
  if (typ.methodSetCache !== null) {
    return typ.methodSetCache;
  }
  var base = {};

  var isPtr = (typ.kind === $kindPtr);
  if (isPtr && typ.elem.kind === $kindInterface) {
    typ.methodSetCache = [];
    return [];
  }

  var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}];

  var seen = {};

  while (current.length > 0) {
    var next = [];
    var mset = [];

    current.forEach(function(e) {
      if (seen[e.typ.string]) {
        return;
      }
      seen[e.typ.string] = true;

      if (e.typ.named) {
        mset = mset.concat(e.typ.methods);
        if (e.indirect) {
          mset = mset.concat($ptrType(e.typ).methods);
        }
      }

      switch (e.typ.kind) {
      case $kindStruct:
        e.typ.fields.forEach(function(f) {
          if (f.embedded) {
            var fTyp = f.typ;
            var fIsPtr = (fTyp.kind === $kindPtr);
            next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr});
          }
        });
        break;

      case $kindInterface:
        mset = mset.concat(e.typ.methods);
        break;
      }
    });

    mset.forEach(function(m) {
      if (base[m.name] === undefined) {
        base[m.name] = m;
      }
    });

    current = next;
  }

  typ.methodSetCache = [];
  Object.keys(base).sort().forEach(function(name) {
    typ.methodSetCache.push(base[name]);
  });
  return typ.methodSetCache;
};

var $Bool          = $newType( 1, $kindBool,          "bool",           true, "", false, null);
var $Int           = $newType( 4, $kindInt,           "int",            true, "", false, null);
var $Int8          = $newType( 1, $kindInt8,          "int8",           true, "", false, null);
var $Int16         = $newType( 2, $kindInt16,         "int16",          true, "", false, null);
var $Int32         = $newType( 4, $kindInt32,         "int32",          true, "", false, null);
var $Int64         = $newType( 8, $kindInt64,         "int64",          true, "", false, null);
var $Uint          = $newType( 4, $kindUint,          "uint",           true, "", false, null);
var $Uint8         = $newType( 1, $kindUint8,         "uint8",          true, "", false, null);
var $Uint16        = $newType( 2, $kindUint16,        "uint16",         true, "", false, null);
var $Uint32        = $newType( 4, $kindUint32,        "uint32",         true, "", false, null);
var $Uint64        = $newType( 8, $kindUint64,        "uint64",         true, "", false, null);
var $Uintptr       = $newType( 4, $kindUintptr,       "uintptr",        true, "", false, null);
var $Float32       = $newType( 4, $kindFloat32,       "float32",        true, "", false, null);
var $Float64       = $newType( 8, $kindFloat64,       "float64",        true, "", false, null);
var $Complex64     = $newType( 8, $kindComplex64,     "complex64",      true, "", false, null);
var $Complex128    = $newType(16, $kindComplex128,    "complex128",     true, "", false, null);
var $String        = $newType( 8, $kindString,        "string",         true, "", false, null);
var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "unsafe", false, null);

var $nativeArray = function(elemKind) {
  switch (elemKind) {
  case $kindInt:
    return Int32Array;
  case $kindInt8:
    return Int8Array;
  case $kindInt16:
    return Int16Array;
  case $kindInt32:
    return Int32Array;
  case $kindUint:
    return Uint32Array;
  case $kindUint8:
    return Uint8Array;
  case $kindUint16:
    return Uint16Array;
  case $kindUint32:
    return Uint32Array;
  case $kindUintptr:
    return Uint32Array;
  case $kindFloat32:
    return Float32Array;
  case $kindFloat64:
    return Float64Array;
  default:
    return Array;
  }
};
var $toNativeArray = function(elemKind, array) {
  var nativeArray = $nativeArray(elemKind);
  if (nativeArray === Array) {
    return array;
  }
  return new nativeArray(array);
};
var $arrayTypes = {};
var $arrayType = function(elem, len) {
  var typeKey = elem.id + "$" + len;
  var typ = $arrayTypes[typeKey];
  if (typ === undefined) {
    typ = $newType(elem.size*len, $kindArray, "[" + len + "]" + elem.string, false, "", false, null);
    $arrayTypes[typeKey] = typ;
    typ.init(elem, len);
  }
  return typ;
};

var $chanType = function(elem, sendOnly, recvOnly) {
  var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ");
  if (!sendOnly && !recvOnly && (elem.string[0] == "<")) {
    string += "(" + elem.string + ")";
  } else {
    string += elem.string;
  }
  var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan");
  var typ = elem[field];
  if (typ === undefined) {
    typ = $newType(4, $kindChan, string, false, "", false, null);
    elem[field] = typ;
    typ.init(elem, sendOnly, recvOnly);
  }
  return typ;
};
var $Chan = function(elem, capacity) {
  if (capacity < 0 || capacity > 2147483647) {
    $throwRuntimeError("makechan: size out of range");
  }
  this.$elem = elem;
  this.$capacity = capacity;
  this.$buffer = [];
  this.$sendQueue = [];
  this.$recvQueue = [];
  this.$closed = false;
};
var $chanNil = new $Chan(null, 0);
$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } };

var $funcTypes = {};
var $funcType = function(params, results, variadic) {
  var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic;
  var typ = $funcTypes[typeKey];
  if (typ === undefined) {
    var paramTypes = $mapArray(params, function(p) { return p.string; });
    if (variadic) {
      paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2);
    }
    var string = "func(" + paramTypes.join(", ") + ")";
    if (results.length === 1) {
      string += " " + results[0].string;
    } else if (results.length > 1) {
      string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")";
    }
    typ = $newType(4, $kindFunc, string, false, "", false, null);
    $funcTypes[typeKey] = typ;
    typ.init(params, results, variadic);
  }
  return typ;
};

var $interfaceTypes = {};
var $interfaceType = function(methods) {
  var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$");
  var typ = $interfaceTypes[typeKey];
  if (typ === undefined) {
    var string = "interface {}";
    if (methods.length !== 0) {
      string = "interface { " + $mapArray(methods, function(m) {
        return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4);
      }).join("; ") + " }";
    }
    typ = $newType(8, $kindInterface, string, false, "", false, null);
    $interfaceTypes[typeKey] = typ;
    typ.init(methods);
  }
  return typ;
};
var $emptyInterface = $interfaceType([]);
var $ifaceNil = {};
var $error = $newType(8, $kindInterface, "error", true, "", false, null);
$error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]);

var $mapTypes = {};
var $mapType = function(key, elem) {
  var typeKey = key.id + "$" + elem.id;
  var typ = $mapTypes[typeKey];
  if (typ === undefined) {
    typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null);
    $mapTypes[typeKey] = typ;
    typ.init(key, elem);
  }
  return typ;
};
var $makeMap = function(keyForFunc, entries) {
  var m = new Map();
  for (var i = 0; i < entries.length; i++) {
    var e = entries[i];
    m.set(keyForFunc(e.k), e);
  }
  return m;
};

var $ptrType = function(elem) {
  var typ = elem.ptr;
  if (typ === undefined) {
    typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null);
    elem.ptr = typ;
    typ.init(elem);
  }
  return typ;
};

var $newDataPointer = function(data, constructor) {
  if (constructor.elem.kind === $kindStruct) {
    return data;
  }
  return new constructor(function() { return data; }, function(v) { data = v; });
};

var $indexPtr = function(array, index, constructor) {
  if (array.buffer) {
    // Pointers to the same underlying ArrayBuffer share cache.
    var cache = array.buffer.$ptr = array.buffer.$ptr || {};
    // Pointers of different primitive types are non-comparable and stored in different caches.
    var typeCache = cache[array.name] = cache[array.name] || {};
    var cacheIdx = array.BYTES_PER_ELEMENT * index + array.byteOffset;
    return typeCache[cacheIdx] || (typeCache[cacheIdx] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; }));
  } else {
    array.$ptr = array.$ptr || {};
    return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; }));
  }
};

var $sliceType = function(elem) {
  var typ = elem.slice;
  if (typ === undefined) {
    typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null);
    elem.slice = typ;
    typ.init(elem);
  }
  return typ;
};
var $makeSlice = function(typ, length, capacity) {
  capacity = capacity || length;
  if (length < 0 || length > 2147483647) {
    $throwRuntimeError("makeslice: len out of range");
  }
  if (capacity < 0 || capacity < length || capacity > 2147483647) {
    $throwRuntimeError("makeslice: cap out of range");
  }
  var array = new typ.nativeArray(capacity);
  if (typ.nativeArray === Array) {
    for (var i = 0; i < capacity; i++) {
      array[i] = typ.elem.zero();
    }
  }
  var slice = new typ(array);
  slice.$length = length;
  return slice;
};

var $structTypes = {};
var $structType = function(pkgPath, fields) {
  var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$");
  var typ = $structTypes[typeKey];
  if (typ === undefined) {
    var string = "struct { " + $mapArray(fields, function(f) {
      var str = f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : "");
      if (f.embedded) {
        return str;
      }
      return f.name + " " + str;
    }).join("; ") + " }";
    if (fields.length === 0) {
      string = "struct {}";
    }
    typ = $newType(0, $kindStruct, string, false, "", false, function() {
      this.$val = this;
      for (var i = 0; i < fields.length; i++) {
        var f = fields[i];
        if (f.name == '_') {
          continue;
        }
        var arg = arguments[i];
        this[f.prop] = arg !== undefined ? arg : f.typ.zero();
      }
    });
    $structTypes[typeKey] = typ;
    typ.init(pkgPath, fields);
  }
  return typ;
};

var $assertType = function(value, type, returnTuple) {
  var isInterface = (type.kind === $kindInterface), ok, missingMethod = "";
  if (value === $ifaceNil) {
    ok = false;
  } else if (!isInterface) {
    ok = value.constructor === type;
  } else {
    var valueTypeString = value.constructor.string;
    ok = type.implementedBy[valueTypeString];
    if (ok === undefined) {
      ok = true;
      var valueMethodSet = $methodSet(value.constructor);
      var interfaceMethods = type.methods;
      for (var i = 0; i < interfaceMethods.length; i++) {
        var tm = interfaceMethods[i];
        var found = false;
        for (var j = 0; j < valueMethodSet.length; j++) {
          var vm = valueMethodSet[j];
          if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) {
            found = true;
            break;
          }
        }
        if (!found) {
          ok = false;
          type.missingMethodFor[valueTypeString] = tm.name;
          break;
        }
      }
      type.implementedBy[valueTypeString] = ok;
    }
    if (!ok) {
      missingMethod = type.missingMethodFor[valueTypeString];
    }
  }

  if (!ok) {
    if (returnTuple) {
      return [type.zero(), false];
    }
    $panic(new $packages["runtime"].TypeAssertionError.ptr(
      $packages["runtime"]._type.ptr.nil,
      (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)),
      new $packages["runtime"]._type.ptr(type.string),
      missingMethod));
  }

  if (!isInterface) {
    value = value.$val;
  }
  if (type === $jsObjectPtr) {
    value = value.object;
  }
  return returnTuple ? [value, true] : value;
};

var $stackDepthOffset = 0;
var $getStackDepth = function() {
  var err = new Error();
  if (err.stack === undefined) {
    return undefined;
  }
  return $stackDepthOffset + err.stack.split("\n").length;
};

var $panicStackDepth = null, $panicValue;
var $callDeferred = function(deferred, jsErr, fromPanic) {
  if (!fromPanic && deferred !== null && $curGoroutine.deferStack.indexOf(deferred) == -1) {
    throw jsErr;
  }
  if (jsErr !== null) {
    var newErr = null;
    try {
      $panic(new $jsErrorPtr(jsErr));
    } catch (err) {
      newErr = err;
    }
    $callDeferred(deferred, newErr);
    return;
  }
  if ($curGoroutine.asleep) {
    return;
  }

  $stackDepthOffset--;
  var outerPanicStackDepth = $panicStackDepth;
  var outerPanicValue = $panicValue;

  var localPanicValue = $curGoroutine.panicStack.pop();
  if (localPanicValue !== undefined) {
    $panicStackDepth = $getStackDepth();
    $panicValue = localPanicValue;
  }

  try {
    while (true) {
      if (deferred === null) {
        deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1];
        if (deferred === undefined) {
          /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */
          $panicStackDepth = null;
          if (localPanicValue.Object instanceof Error) {
            throw localPanicValue.Object;
          }
          var msg;
          if (localPanicValue.constructor === $String) {
            msg = localPanicValue.$val;
          } else if (localPanicValue.Error !== undefined) {
            msg = localPanicValue.Error();
          } else if (localPanicValue.String !== undefined) {
            msg = localPanicValue.String();
          } else {
            msg = localPanicValue;
          }
          throw new Error(msg);
        }
      }
      var call = deferred.pop();
      if (call === undefined) {
        $curGoroutine.deferStack.pop();
        if (localPanicValue !== undefined) {
          deferred = null;
          continue;
        }
        return;
      }
      var r = call[0].apply(call[2], call[1]);
      if (r && r.$blk !== undefined) {
        deferred.push([r.$blk, [], r]);
        if (fromPanic) {
          throw null;
        }
        return;
      }

      if (localPanicValue !== undefined && $panicStackDepth === null) {
        /* error was recovered */
        if (fromPanic) {
          throw null;
        }
        return;
      }
    }
  } catch(e) {
    // Deferred function threw a JavaScript exception or tries to unwind stack
    // to the point where a panic was handled.
    if (fromPanic) {
      // Re-throw the exception to reach deferral execution call at the end
      // of the function.
      throw e;
    }
    // We are at the end of the function, handle the error or re-throw to
    // continue unwinding if necessary, or simply stop unwinding if we got far
    // enough.
    $callDeferred(deferred, e, fromPanic);
  } finally {
    if (localPanicValue !== undefined) {
      if ($panicStackDepth !== null) {
        $curGoroutine.panicStack.push(localPanicValue);
      }
      $panicStackDepth = outerPanicStackDepth;
      $panicValue = outerPanicValue;
    }
    $stackDepthOffset++;
  }
};

var $panic = function(value) {
  $curGoroutine.panicStack.push(value);
  $callDeferred(null, null, true);
};
var $recover = function() {
  if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) {
    return $ifaceNil;
  }
  $panicStackDepth = null;
  return $panicValue;
};
var $throw = function(err) { throw err; };

var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] };
var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true, $exportedFunctions = 0;
var $mainFinished = false;
var $go = function(fun, args) {
  $totalGoroutines++;
  $awakeGoroutines++;
  var $goroutine = function() {
    try {
      $curGoroutine = $goroutine;
      var r = fun.apply(undefined, args);
      if (r && r.$blk !== undefined) {
        fun = function() { return r.$blk(); };
        args = [];
        return;
      }
      $goroutine.exit = true;
    } catch (err) {
      if (!$goroutine.exit) {
        throw err;
      }
    } finally {
      $curGoroutine = $noGoroutine;
      if ($goroutine.exit) { /* also set by runtime.Goexit() */
        $totalGoroutines--;
        $goroutine.asleep = true;
      }
      if ($goroutine.asleep) {
        $awakeGoroutines--;
        if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock && $exportedFunctions === 0) {
          console.error("fatal error: all goroutines are asleep - deadlock!");
          if ($global.process !== undefined) {
            $global.process.exit(2);
          }
        }
      }
    }
  };
  $goroutine.asleep = false;
  $goroutine.exit = false;
  $goroutine.deferStack = [];
  $goroutine.panicStack = [];
  $schedule($goroutine);
};

var $scheduled = [];
var $runScheduled = function() {
  // For nested setTimeout calls browsers enforce 4ms minimum delay. We minimize
  // the effect of this penalty by queueing the timer preemptively before we run
  // the goroutines, and later cancelling it if it turns out unneeded. See:
  // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#nested_timeouts
  var nextRun = setTimeout($runScheduled);
  try {
    var start = Date.now();
    var r;
    while ((r = $scheduled.shift()) !== undefined) {
      r();
      // We need to interrupt this loop in order to allow the event loop to
      // process timers, IO, etc. However, invoking scheduling through
      // setTimeout is ~1000 times more expensive, so we amortize this cost by
      // looping until the 4ms minimal delay has elapsed (assuming there are
      // scheduled goroutines to run), and then yield to the event loop.
      var elapsed = Date.now() - start;
      if (elapsed > 4 || elapsed < 0) { break; }
    }
  } finally {
    if ($scheduled.length == 0) {
      // Cancel scheduling pass if there's nothing to run.
      clearTimeout(nextRun);
    }
  }
};

var $schedule = function(goroutine) {
  if (goroutine.asleep) {
    goroutine.asleep = false;
    $awakeGoroutines++;
  }
  $scheduled.push(goroutine);
  if ($curGoroutine === $noGoroutine) {
    $runScheduled();
  }
};

var $setTimeout = function(f, t) {
  $awakeGoroutines++;
  return setTimeout(function() {
    $awakeGoroutines--;
    f();
  }, t);
};

var $block = function() {
  if ($curGoroutine === $noGoroutine) {
    $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine");
  }
  $curGoroutine.asleep = true;
};

var $restore = function(context, params) {
  if (context !== undefined && context.$blk !== undefined) {
    return context;
  }
  return params;
}

var $send = function(chan, value) {
  if (chan.$closed) {
    $throwRuntimeError("send on closed channel");
  }
  var queuedRecv = chan.$recvQueue.shift();
  if (queuedRecv !== undefined) {
    queuedRecv([value, true]);
    return;
  }
  if (chan.$buffer.length < chan.$capacity) {
    chan.$buffer.push(value);
    return;
  }

  var thisGoroutine = $curGoroutine;
  var closedDuringSend;
  chan.$sendQueue.push(function(closed) {
    closedDuringSend = closed;
    $schedule(thisGoroutine);
    return value;
  });
  $block();
  return {
    $blk: function() {
      if (closedDuringSend) {
        $throwRuntimeError("send on closed channel");
      }
    }
  };
};
var $recv = function(chan) {
  var queuedSend = chan.$sendQueue.shift();
  if (queuedSend !== undefined) {
    chan.$buffer.push(queuedSend(false));
  }
  var bufferedValue = chan.$buffer.shift();
  if (bufferedValue !== undefined) {
    return [bufferedValue, true];
  }
  if (chan.$closed) {
    return [chan.$elem.zero(), false];
  }

  var thisGoroutine = $curGoroutine;
  var f = { $blk: function() { return this.value; } };
  var queueEntry = function(v) {
    f.value = v;
    $schedule(thisGoroutine);
  };
  chan.$recvQueue.push(queueEntry);
  $block();
  return f;
};
var $close = function(chan) {
  if (chan.$closed) {
    $throwRuntimeError("close of closed channel");
  }
  chan.$closed = true;
  while (true) {
    var queuedSend = chan.$sendQueue.shift();
    if (queuedSend === undefined) {
      break;
    }
    queuedSend(true); /* will panic */
  }
  while (true) {
    var queuedRecv = chan.$recvQueue.shift();
    if (queuedRecv === undefined) {
      break;
    }
    queuedRecv([chan.$elem.zero(), false]);
  }
};
var $select = function(comms) {
  var ready = [];
  var selection = -1;
  for (var i = 0; i < comms.length; i++) {
    var comm = comms[i];
    var chan = comm[0];
    switch (comm.length) {
    case 0: /* default */
      selection = i;
      break;
    case 1: /* recv */
      if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) {
        ready.push(i);
      }
      break;
    case 2: /* send */
      if (chan.$closed) {
        $throwRuntimeError("send on closed channel");
      }
      if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) {
        ready.push(i);
      }
      break;
    }
  }

  if (ready.length !== 0) {
    selection = ready[Math.floor(Math.random() * ready.length)];
  }
  if (selection !== -1) {
    var comm = comms[selection];
    switch (comm.length) {
    case 0: /* default */
      return [selection];
    case 1: /* recv */
      return [selection, $recv(comm[0])];
    case 2: /* send */
      $send(comm[0], comm[1]);
      return [selection];
    }
  }

  var entries = [];
  var thisGoroutine = $curGoroutine;
  var f = { $blk: function() { return this.selection; } };
  var removeFromQueues = function() {
    for (var i = 0; i < entries.length; i++) {
      var entry = entries[i];
      var queue = entry[0];
      var index = queue.indexOf(entry[1]);
      if (index !== -1) {
        queue.splice(index, 1);
      }
    }
  };
  for (var i = 0; i < comms.length; i++) {
    (function(i) {
      var comm = comms[i];
      switch (comm.length) {
      case 1: /* recv */
        var queueEntry = function(value) {
          f.selection = [i, value];
          removeFromQueues();
          $schedule(thisGoroutine);
        };
        entries.push([comm[0].$recvQueue, queueEntry]);
        comm[0].$recvQueue.push(queueEntry);
        break;
      case 2: /* send */
        var queueEntry = function() {
          if (comm[0].$closed) {
            $throwRuntimeError("send on closed channel");
          }
          f.selection = [i];
          removeFromQueues();
          $schedule(thisGoroutine);
          return comm[1];
        };
        entries.push([comm[0].$sendQueue, queueEntry]);
        comm[0].$sendQueue.push(queueEntry);
        break;
      }
    })(i);
  }
  $block();
  return f;
};

var $jsObjectPtr, $jsErrorPtr;

var $needsExternalization = function(t) {
  switch (t.kind) {
    case $kindBool:
    case $kindInt:
    case $kindInt8:
    case $kindInt16:
    case $kindInt32:
    case $kindUint:
    case $kindUint8:
    case $kindUint16:
    case $kindUint32:
    case $kindUintptr:
    case $kindFloat32:
    case $kindFloat64:
      return false;
    default:
      return t !== $jsObjectPtr;
  }
};

var $externalize = function(v, t, makeWrapper) {
  if (t === $jsObjectPtr) {
    return v;
  }
  switch (t.kind) {
  case $kindBool:
  case $kindInt:
  case $kindInt8:
  case $kindInt16:
  case $kindInt32:
  case $kindUint:
  case $kindUint8:
  case $kindUint16:
  case $kindUint32:
  case $kindUintptr:
  case $kindFloat32:
  case $kindFloat64:
    return v;
  case $kindInt64:
  case $kindUint64:
    return $flatten64(v);
  case $kindArray:
    if ($needsExternalization(t.elem)) {
      return $mapArray(v, function(e) { return $externalize(e, t.elem, makeWrapper); });
    }
    return v;
  case $kindFunc:
    return $externalizeFunction(v, t, false, makeWrapper);
  case $kindInterface:
    if (v === $ifaceNil) {
      return null;
    }
    if (v.constructor === $jsObjectPtr) {
      return v.$val.object;
    }
    return $externalize(v.$val, v.constructor, makeWrapper);
  case $kindMap:
    var m = {};
    var keys = Array.from(v.keys());
    for (var i = 0; i < keys.length; i++) {
      var entry = v.get(keys[i]);
      m[$externalize(entry.k, t.key, makeWrapper)] = $externalize(entry.v, t.elem, makeWrapper);
    }
    return m;
  case $kindPtr:
    if (v === t.nil) {
      return null;
    }
    return $externalize(v.$get(), t.elem, makeWrapper);
  case $kindSlice:
    if ($needsExternalization(t.elem)) {
      return $mapArray($sliceToNativeArray(v), function(e) { return $externalize(e, t.elem, makeWrapper); });
    }
    return $sliceToNativeArray(v);
  case $kindString:
    if ($isASCII(v)) {
      return v;
    }
    var s = "", r;
    for (var i = 0; i < v.length; i += r[1]) {
      r = $decodeRune(v, i);
      var c = r[0];
      if (c > 0xFFFF) {
        var h = Math.floor((c - 0x10000) / 0x400) + 0xD800;
        var l = (c - 0x10000) % 0x400 + 0xDC00;
        s += String.fromCharCode(h, l);
        continue;
      }
      s += String.fromCharCode(c);
    }
    return s;
  case $kindStruct:
    var timePkg = $packages["time"];
    if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) {
      var milli = $div64(v.UnixNano(), new $Int64(0, 1000000));
      return new Date($flatten64(milli));
    }

    var noJsObject = {};
    var searchJsObject = function(v, t) {
      if (t === $jsObjectPtr) {
        return v;
      }
      switch (t.kind) {
      case $kindPtr:
        if (v === t.nil) {
          return noJsObject;
        }
        return searchJsObject(v.$get(), t.elem);
      case $kindStruct:
        var f = t.fields[0];
        return searchJsObject(v[f.prop], f.typ);
      case $kindInterface:
        return searchJsObject(v.$val, v.constructor);
      default:
        return noJsObject;
      }
    };
    var o = searchJsObject(v, t);
    if (o !== noJsObject) {
      return o;
    }

    if (makeWrapper !== undefined) {
      return makeWrapper(v);
    }

    o = {};
    for (var i = 0; i < t.fields.length; i++) {
      var f = t.fields[i];
      if (!f.exported) {
        continue;
      }
      o[f.name] = $externalize(v[f.prop], f.typ, makeWrapper);
    }
    return o;
  }
  $throwRuntimeError("cannot externalize " + t.string);
};

var $externalizeFunction = function(v, t, passThis, makeWrapper) {
  if (v === $throwNilPointerError) {
    return null;
  }
  if (v.$externalizeWrapper === undefined) {
    $checkForDeadlock = false;
    v.$externalizeWrapper = function() {
      var args = [];
      for (var i = 0; i < t.params.length; i++) {
        if (t.variadic && i === t.params.length - 1) {
          var vt = t.params[i].elem, varargs = [];
          for (var j = i; j < arguments.length; j++) {
            varargs.push($internalize(arguments[j], vt, makeWrapper));
          }
          args.push(new (t.params[i])(varargs));
          break;
        }
        args.push($internalize(arguments[i], t.params[i], makeWrapper));
      }
      var result = v.apply(passThis ? this : undefined, args);
      switch (t.results.length) {
      case 0:
        return;
      case 1:
        return $externalize($copyIfRequired(result, t.results[0]), t.results[0], makeWrapper);
      default:
        for (var i = 0; i < t.results.length; i++) {
          result[i] = $externalize($copyIfRequired(result[i], t.results[i]), t.results[i], makeWrapper);
        }
        return result;
      }
    };
  }
  return v.$externalizeWrapper;
};

var $internalize = function(v, t, recv, seen, makeWrapper) {
  if (t === $jsObjectPtr) {
    return v;
  }
  if (t === $jsObjectPtr.elem) {
    $throwRuntimeError("cannot internalize js.Object, use *js.Object instead");
  }
  if (v && v.__internal_object__ !== undefined) {
    return $assertType(v.__internal_object__, t, false);
  }
  var timePkg = $packages["time"];
  if (timePkg !== undefined && t === timePkg.Time) {
    if (!(v !== null && v !== undefined && v.constructor === Date)) {
      $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date");
    }
    return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000));
  }

  // Cache for values we've already internalized in order to deal with circular
  // references.
  if (seen === undefined) { seen = new Map(); }
  if (!seen.has(t)) { seen.set(t, new Map()); }
  if (seen.get(t).has(v)) { return seen.get(t).get(v); }

  switch (t.kind) {
  case $kindBool:
    return !!v;
  case $kindInt:
    return parseInt(v);
  case $kindInt8:
    return parseInt(v) << 24 >> 24;
  case $kindInt16:
    return parseInt(v) << 16 >> 16;
  case $kindInt32:
    return parseInt(v) >> 0;
  case $kindUint:
    return parseInt(v);
  case $kindUint8:
    return parseInt(v) << 24 >>> 24;
  case $kindUint16:
    return parseInt(v) << 16 >>> 16;
  case $kindUint32:
  case $kindUintptr:
    return parseInt(v) >>> 0;
  case $kindInt64:
  case $kindUint64:
    return new t(0, v);
  case $kindFloat32:
  case $kindFloat64:
    return parseFloat(v);
  case $kindArray:
    if (v.length !== t.len) {
      $throwRuntimeError("got array with wrong size from JavaScript native");
    }
    return $mapArray(v, function(e) { return $internalize(e, t.elem, makeWrapper); });
  case $kindFunc:
    return function() {
      var args = [];
      for (var i = 0; i < t.params.length; i++) {
        if (t.variadic && i === t.params.length - 1) {
          var vt = t.params[i].elem, varargs = arguments[i];
          for (var j = 0; j < varargs.$length; j++) {
            args.push($externalize(varargs.$array[varargs.$offset + j], vt, makeWrapper));
          }
          break;
        }
        args.push($externalize(arguments[i], t.params[i], makeWrapper));
      }
      var result = v.apply(recv, args);
      switch (t.results.length) {
      case 0:
        return;
      case 1:
        return $internalize(result, t.results[0], makeWrapper);
      default:
        for (var i = 0; i < t.results.length; i++) {
          result[i] = $internalize(result[i], t.results[i], makeWrapper);
        }
        return result;
      }
    };
  case $kindInterface:
    if (t.methods.length !== 0) {
      $throwRuntimeError("cannot internalize " + t.string);
    }
    if (v === null) {
      return $ifaceNil;
    }
    if (v === undefined) {
      return new $jsObjectPtr(undefined);
    }
    switch (v.constructor) {
    case Int8Array:
      return new ($sliceType($Int8))(v);
    case Int16Array:
      return new ($sliceType($Int16))(v);
    case Int32Array:
      return new ($sliceType($Int))(v);
    case Uint8Array:
      return new ($sliceType($Uint8))(v);
    case Uint16Array:
      return new ($sliceType($Uint16))(v);
    case Uint32Array:
      return new ($sliceType($Uint))(v);
    case Float32Array:
      return new ($sliceType($Float32))(v);
    case Float64Array:
      return new ($sliceType($Float64))(v);
    case Array:
      return $internalize(v, $sliceType($emptyInterface), makeWrapper);
    case Boolean:
      return new $Bool(!!v);
    case Date:
      if (timePkg === undefined) {
        /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */
        return new $jsObjectPtr(v);
      }
      return new timePkg.Time($internalize(v, timePkg.Time, makeWrapper));
    case (function () { }).constructor: // is usually Function, but in Chrome extensions it is something else
      var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true);
      return new funcType($internalize(v, funcType, makeWrapper));
    case Number:
      return new $Float64(parseFloat(v));
    case String:
      return new $String($internalize(v, $String, makeWrapper));
    default:
      if ($global.Node && v instanceof $global.Node) {
        return new $jsObjectPtr(v);
      }
      var mapType = $mapType($String, $emptyInterface);
      return new mapType($internalize(v, mapType, recv, seen, makeWrapper));
    }
  case $kindMap:
    var m = new Map();
    seen.get(t).set(v, m);
    var keys = $keys(v);
    for (var i = 0; i < keys.length; i++) {
      var k = $internalize(keys[i], t.key, recv, seen, makeWrapper);
      m.set(t.key.keyFor(k), { k: k, v: $internalize(v[keys[i]], t.elem, recv, seen, makeWrapper) });
    }
    return m;
  case $kindPtr:
    if (t.elem.kind === $kindStruct) {
      return $internalize(v, t.elem, makeWrapper);
    }
  case $kindSlice:
    return new t($mapArray(v, function(e) { return $internalize(e, t.elem, makeWrapper); }));
  case $kindString:
    v = String(v);
    if ($isASCII(v)) {
      return v;
    }
    var s = "";
    var i = 0;
    while (i < v.length) {
      var h = v.charCodeAt(i);
      if (0xD800 <= h && h <= 0xDBFF) {
        var l = v.charCodeAt(i + 1);
        var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000;
        s += $encodeRune(c);
        i += 2;
        continue;
      }
      s += $encodeRune(h);
      i++;
    }
    return s;
  case $kindStruct:
    var noJsObject = {};
    var searchJsObject = function(t) {
      if (t === $jsObjectPtr) {
        return v;
      }
      if (t === $jsObjectPtr.elem) {
        $throwRuntimeError("cannot internalize js.Object, use *js.Object instead");
      }
      switch (t.kind) {
      case $kindPtr:
        return searchJsObject(t.elem);
      case $kindStruct:
        var f = t.fields[0];
        var o = searchJsObject(f.typ);
        if (o !== noJsObject) {
          var n = new t.ptr();
          n[f.prop] = o;
          return n;
        }
        return noJsObject;
      default:
        return noJsObject;
      }
    };
    var o = searchJsObject(t);
    if (o !== noJsObject) {
      return o;
    }
  }
  $throwRuntimeError("cannot internalize " + t.string);
};

var $copyIfRequired = function(v, typ) {
  // interface values
  if (v && v.constructor && v.constructor.copy) {
    return new v.constructor($clone(v.$val, v.constructor))
  }
  // array and struct values
  if (typ.copy) {
    var clone = typ.zero();
    typ.copy(clone, v);
    return clone;
  }
  return v;
}

/* $isASCII reports whether string s contains only ASCII characters. */
var $isASCII = function(s) {
  for (var i = 0; i < s.length; i++) {
    if (s.charCodeAt(i) >= 128) {
      return false;
    }
  }
  return true;
};

$packages["github.com/gopherjs/gopherjs/js"] = (function() {
	var $pkg = {}, $init, Object, Error, M, sliceType, ptrType, ptrType$1, MakeFunc, init;
	Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.object = null;
			return;
		}
		this.object = object_;
	});
	Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	M = $pkg.M = $newType(4, $kindMap, "js.M", true, "github.com/gopherjs/gopherjs/js", true, null);
	sliceType = $sliceType($emptyInterface);
	ptrType = $ptrType(Object);
	ptrType$1 = $ptrType(Error);
	Object.ptr.prototype.Get = function(key) {
		var key, o;
		o = this;
		return o.object[$externalize(key, $String)];
	};
	Object.prototype.Get = function(key) { return this.$val.Get(key); };
	Object.ptr.prototype.Set = function(key, value) {
		var key, o, value;
		o = this;
		o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface);
	};
	Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); };
	Object.ptr.prototype.Delete = function(key) {
		var key, o;
		o = this;
		delete o.object[$externalize(key, $String)];
	};
	Object.prototype.Delete = function(key) { return this.$val.Delete(key); };
	Object.ptr.prototype.Length = function() {
		var o;
		o = this;
		return $parseInt(o.object.length);
	};
	Object.prototype.Length = function() { return this.$val.Length(); };
	Object.ptr.prototype.Index = function(i) {
		var i, o;
		o = this;
		return o.object[i];
	};
	Object.prototype.Index = function(i) { return this.$val.Index(i); };
	Object.ptr.prototype.SetIndex = function(i, value) {
		var i, o, value;
		o = this;
		o.object[i] = $externalize(value, $emptyInterface);
	};
	Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); };
	Object.ptr.prototype.Call = function(name, args) {
		var args, name, o, obj;
		o = this;
		return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType)));
	};
	Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); };
	Object.ptr.prototype.Invoke = function(args) {
		var args, o;
		o = this;
		return o.object.apply(undefined, $externalize(args, sliceType));
	};
	Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); };
	Object.ptr.prototype.New = function(args) {
		var args, o;
		o = this;
		return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType))));
	};
	Object.prototype.New = function(args) { return this.$val.New(args); };
	Object.ptr.prototype.Bool = function() {
		var o;
		o = this;
		return !!(o.object);
	};
	Object.prototype.Bool = function() { return this.$val.Bool(); };
	Object.ptr.prototype.String = function() {
		var o;
		o = this;
		return $internalize(o.object, $String);
	};
	Object.prototype.String = function() { return this.$val.String(); };
	Object.ptr.prototype.Int = function() {
		var o;
		o = this;
		return $parseInt(o.object) >> 0;
	};
	Object.prototype.Int = function() { return this.$val.Int(); };
	Object.ptr.prototype.Int64 = function() {
		var o;
		o = this;
		return $internalize(o.object, $Int64);
	};
	Object.prototype.Int64 = function() { return this.$val.Int64(); };
	Object.ptr.prototype.Uint64 = function() {
		var o;
		o = this;
		return $internalize(o.object, $Uint64);
	};
	Object.prototype.Uint64 = function() { return this.$val.Uint64(); };
	Object.ptr.prototype.Float = function() {
		var o;
		o = this;
		return $parseFloat(o.object);
	};
	Object.prototype.Float = function() { return this.$val.Float(); };
	Object.ptr.prototype.Interface = function() {
		var o;
		o = this;
		return $internalize(o.object, $emptyInterface);
	};
	Object.prototype.Interface = function() { return this.$val.Interface(); };
	Object.ptr.prototype.Unsafe = function() {
		var o;
		o = this;
		return o.object;
	};
	Object.prototype.Unsafe = function() { return this.$val.Unsafe(); };
	Error.ptr.prototype.Error = function() {
		var err;
		err = this;
		return "JavaScript error: " + $internalize(err.Object.message, $String);
	};
	Error.prototype.Error = function() { return this.$val.Error(); };
	Error.ptr.prototype.Stack = function() {
		var err;
		err = this;
		return $internalize(err.Object.stack, $String);
	};
	Error.prototype.Stack = function() { return this.$val.Stack(); };
	MakeFunc = function(fn) {
		var fn;
		return $makeFunc(fn);
	};
	$pkg.MakeFunc = MakeFunc;
	init = function() {
		var e;
		e = new Error.ptr(null);
		$unused(e);
	};
	ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}];
	ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}];
	Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]);
	Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]);
	M.init($String, $emptyInterface);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["runtime"] = (function() {
	var $pkg = {}, $init, js, _type, TypeAssertionError, basicFrame, Func, errorString, ptrType, sliceType, ptrType$1, structType, sliceType$1, ptrType$2, knownPositions, positionCounters, hiddenFrames, knownFrames, buildVersion, init, GOROOT, registerPosition, itoa, callstack, parseCallstack, ParseCallFrame, Caller, SetFinalizer, FuncForPC, KeepAlive, throw$1, nanotime, fastrand;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	_type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.str = "";
			return;
		}
		this.str = str_;
	});
	TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) {
		this.$val = this;
		if (arguments.length === 0) {
			this._interface = ptrType$1.nil;
			this.concrete = ptrType$1.nil;
			this.asserted = ptrType$1.nil;
			this.missingMethod = "";
			return;
		}
		this._interface = _interface_;
		this.concrete = concrete_;
		this.asserted = asserted_;
		this.missingMethod = missingMethod_;
	});
	basicFrame = $pkg.basicFrame = $newType(0, $kindStruct, "runtime.basicFrame", true, "runtime", false, function(FuncName_, File_, Line_, Col_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.FuncName = "";
			this.File = "";
			this.Line = 0;
			this.Col = 0;
			return;
		}
		this.FuncName = FuncName_;
		this.File = File_;
		this.Line = Line_;
		this.Col = Col_;
	});
	Func = $pkg.Func = $newType(0, $kindStruct, "runtime.Func", true, "runtime", true, function(name_, file_, line_, opaque_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.file = "";
			this.line = 0;
			this.opaque = new structType.ptr();
			return;
		}
		this.name = name_;
		this.file = file_;
		this.line = line_;
		this.opaque = opaque_;
	});
	errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null);
	ptrType = $ptrType(Func);
	sliceType = $sliceType(ptrType);
	ptrType$1 = $ptrType(_type);
	structType = $structType("", []);
	sliceType$1 = $sliceType(basicFrame);
	ptrType$2 = $ptrType(TypeAssertionError);
	_type.ptr.prototype.string = function() {
		var t;
		t = this;
		return t.str;
	};
	_type.prototype.string = function() { return this.$val.string(); };
	_type.ptr.prototype.pkgpath = function() {
		var t;
		t = this;
		return "";
	};
	_type.prototype.pkgpath = function() { return this.$val.pkgpath(); };
	TypeAssertionError.ptr.prototype.RuntimeError = function() {
	};
	TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); };
	TypeAssertionError.ptr.prototype.Error = function() {
		var as, cs, e, inter, msg;
		e = this;
		inter = "interface";
		if (!(e._interface === ptrType$1.nil)) {
			inter = e._interface.string();
		}
		as = e.asserted.string();
		if (e.concrete === ptrType$1.nil) {
			return "interface conversion: " + inter + " is nil, not " + as;
		}
		cs = e.concrete.string();
		if (e.missingMethod === "") {
			msg = "interface conversion: " + inter + " is " + cs + ", not " + as;
			if (cs === as) {
				if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) {
					msg = msg + (" (types from different packages)");
				} else {
					msg = msg + (" (types from different scopes)");
				}
			}
			return msg;
		}
		return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod;
	};
	TypeAssertionError.prototype.Error = function() { return this.$val.Error(); };
	init = function() {
		var e, jsPkg;
		jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)];
		$jsObjectPtr = jsPkg.Object.ptr;
		$jsErrorPtr = jsPkg.Error.ptr;
		$throwRuntimeError = throw$1;
		buildVersion = $internalize($goVersion, $String);
		e = $ifaceNil;
		e = new TypeAssertionError.ptr(ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, "");
		$unused(e);
	};
	GOROOT = function() {
		var process, v, v$1;
		process = $global.process;
		if (process === undefined) {
			return "/";
		}
		v = process.env.GOPHERJS_GOROOT;
		if (!(v === undefined) && !($internalize(v, $String) === "")) {
			return $internalize(v, $String);
		} else {
			v$1 = process.env.GOROOT;
			if (!(v$1 === undefined) && !($internalize(v$1, $String) === "")) {
				return $internalize(v$1, $String);
			}
		}
		return "/usr/local/go";
	};
	$pkg.GOROOT = GOROOT;
	registerPosition = function(funcName, file, line, col) {
		var _entry, _key, _tuple, col, f, file, found, funcName, key, line, pc, pc$1;
		key = file + ":" + itoa(line) + ":" + itoa(col);
		_tuple = (_entry = $mapIndex(knownPositions,$String.keyFor(key)), _entry !== undefined ? [_entry.v, true] : [0, false]);
		pc = _tuple[0];
		found = _tuple[1];
		if (found) {
			return pc;
		}
		f = new Func.ptr(funcName, file, line, new structType.ptr());
		pc$1 = ((positionCounters.$length >>> 0));
		positionCounters = $append(positionCounters, f);
		_key = key; (knownPositions || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: pc$1 });
		return pc$1;
	};
	itoa = function(i) {
		var i;
		return $internalize(new ($global.String)(i), $String);
	};
	callstack = function(skip, limit) {
		var limit, lines, skip;
		skip = (skip + 1 >> 0) + 1 >> 0;
		lines = new ($global.Error)().stack.split($externalize("\n", $String)).slice(skip, skip + limit >> 0);
		return parseCallstack(lines);
	};
	parseCallstack = function(lines) {
		var _entry, _entry$1, _tuple, alias, frame, frames, i, l, lines, ok;
		frames = new sliceType$1([]);
		l = $parseInt(lines.length);
		i = 0;
		while (true) {
			if (!(i < l)) { break; }
			frame = $clone(ParseCallFrame(lines[i]), basicFrame);
			if ((_entry = $mapIndex(hiddenFrames,$String.keyFor(frame.FuncName)), _entry !== undefined ? _entry.v : false)) {
				i = i + (1) >> 0;
				continue;
			}
			_tuple = (_entry$1 = $mapIndex(knownFrames,$String.keyFor(frame.FuncName)), _entry$1 !== undefined ? [_entry$1.v, true] : ["", false]);
			alias = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				frame.FuncName = alias;
			}
			frames = $append(frames, frame);
			if (frame.FuncName === "runtime.goexit") {
				break;
			}
			i = i + (1) >> 0;
		}
		return frames;
	};
	ParseCallFrame = function(info) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, col, file, fn, funcName, idx, info, line, openIdx, parts, parts$1, parts$2, pos, split;
		if (($parseInt(info.indexOf($externalize("@", $String))) >> 0) >= 0) {
			split = new ($global.RegExp)($externalize("[@:]", $String));
			parts = info.split(split);
			return new basicFrame.ptr($internalize(parts[0], $String), $internalize(parts.slice(1, $parseInt(parts.length) - 2 >> 0).join($externalize(":", $String)), $String), $parseInt(parts[($parseInt(parts.length) - 2 >> 0)]) >> 0, $parseInt(parts[($parseInt(parts.length) - 1 >> 0)]) >> 0);
		}
		openIdx = $parseInt(info.lastIndexOf($externalize("(", $String))) >> 0;
		if (openIdx === -1) {
			parts$1 = info.split($externalize(":", $String));
			return new basicFrame.ptr("<none>", $internalize(parts$1.slice(0, $parseInt(parts$1.length) - 2 >> 0).join($externalize(":", $String)).replace(new ($global.RegExp)($externalize("^\\s*at ", $String)), $externalize("", $String)), $String), $parseInt(parts$1[($parseInt(parts$1.length) - 2 >> 0)]) >> 0, $parseInt(parts$1[($parseInt(parts$1.length) - 1 >> 0)]) >> 0);
		}
		_tmp = "";
		_tmp$1 = "";
		file = _tmp;
		funcName = _tmp$1;
		_tmp$2 = 0;
		_tmp$3 = 0;
		line = _tmp$2;
		col = _tmp$3;
		pos = info.substring(openIdx + 1 >> 0, $parseInt(info.indexOf($externalize(")", $String))) >> 0);
		parts$2 = pos.split($externalize(":", $String));
		if ($internalize(pos, $String) === "<anonymous>") {
			file = "<anonymous>";
		} else {
			file = $internalize(parts$2.slice(0, $parseInt(parts$2.length) - 2 >> 0).join($externalize(":", $String)), $String);
			line = $parseInt(parts$2[($parseInt(parts$2.length) - 2 >> 0)]) >> 0;
			col = $parseInt(parts$2[($parseInt(parts$2.length) - 1 >> 0)]) >> 0;
		}
		fn = info.substring(($parseInt(info.indexOf($externalize("at ", $String))) >> 0) + 3 >> 0, $parseInt(info.indexOf($externalize(" (", $String))) >> 0);
		idx = $parseInt(fn.indexOf($externalize("[as ", $String))) >> 0;
		if (idx > 0) {
			fn = fn.substring(idx + 4 >> 0, fn.indexOf($externalize("]", $String)));
		}
		funcName = $internalize(fn, $String);
		return new basicFrame.ptr(funcName, file, line, col);
	};
	$pkg.ParseCallFrame = ParseCallFrame;
	Caller = function(skip) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, file, frames, line, ok, pc, skip;
		pc = 0;
		file = "";
		line = 0;
		ok = false;
		skip = skip + 1 >> 0;
		frames = callstack(skip, 1);
		if (!((frames.$length === 1))) {
			_tmp = 0;
			_tmp$1 = "";
			_tmp$2 = 0;
			_tmp$3 = false;
			pc = _tmp;
			file = _tmp$1;
			line = _tmp$2;
			ok = _tmp$3;
			return [pc, file, line, ok];
		}
		pc = registerPosition((0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).FuncName, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line, (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Col);
		_tmp$4 = pc;
		_tmp$5 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).File;
		_tmp$6 = (0 >= frames.$length ? ($throwRuntimeError("index out of range"), undefined) : frames.$array[frames.$offset + 0]).Line;
		_tmp$7 = true;
		pc = _tmp$4;
		file = _tmp$5;
		line = _tmp$6;
		ok = _tmp$7;
		return [pc, file, line, ok];
	};
	$pkg.Caller = Caller;
	SetFinalizer = function(x, f) {
		var f, x;
	};
	$pkg.SetFinalizer = SetFinalizer;
	Func.ptr.prototype.Entry = function() {
		return 0;
	};
	Func.prototype.Entry = function() { return this.$val.Entry(); };
	Func.ptr.prototype.FileLine = function(pc) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, f, file, line, pc;
		file = "";
		line = 0;
		f = this;
		if (f === ptrType.nil) {
			_tmp = "";
			_tmp$1 = 0;
			file = _tmp;
			line = _tmp$1;
			return [file, line];
		}
		_tmp$2 = f.file;
		_tmp$3 = f.line;
		file = _tmp$2;
		line = _tmp$3;
		return [file, line];
	};
	Func.prototype.FileLine = function(pc) { return this.$val.FileLine(pc); };
	Func.ptr.prototype.Name = function() {
		var f;
		f = this;
		if (f === ptrType.nil || f.name === "") {
			return "<unknown>";
		}
		return f.name;
	};
	Func.prototype.Name = function() { return this.$val.Name(); };
	FuncForPC = function(pc) {
		var ipc, pc;
		ipc = ((pc >> 0));
		if (ipc >= positionCounters.$length) {
			$panic(new $String("GopherJS: pc=" + itoa(ipc) + " is out of range of known position counters"));
		}
		return ((ipc < 0 || ipc >= positionCounters.$length) ? ($throwRuntimeError("index out of range"), undefined) : positionCounters.$array[positionCounters.$offset + ipc]);
	};
	$pkg.FuncForPC = FuncForPC;
	KeepAlive = function(param) {
		var param;
	};
	$pkg.KeepAlive = KeepAlive;
	errorString.prototype.RuntimeError = function() {
		var e;
		e = this.$val;
	};
	$ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); };
	errorString.prototype.Error = function() {
		var e;
		e = this.$val;
		return "runtime error: " + (e);
	};
	$ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); };
	throw$1 = function(s) {
		var s;
		$panic(new errorString((s)));
	};
	nanotime = function() {
		return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000));
	};
	$linknames["runtime.nanotime"] = nanotime;
	fastrand = function() {
		return (($parseFloat($global.Math.random()) * 4.294967295e+09 >> 0));
	};
	$linknames["runtime.fastrand"] = fastrand;
	ptrType$1.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}];
	ptrType$2.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType.methods = [{prop: "Entry", name: "Entry", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "FileLine", name: "FileLine", pkg: "", typ: $funcType([$Uintptr], [$String, $Int], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}];
	errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	_type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
	TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]);
	basicFrame.init("", [{prop: "FuncName", name: "FuncName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Line", name: "Line", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Col", name: "Col", embedded: false, exported: true, typ: $Int, tag: ""}]);
	Func.init("runtime", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "file", name: "file", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "line", name: "line", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "opaque", name: "opaque", embedded: false, exported: false, typ: structType, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		buildVersion = "";
		knownPositions = $makeMap($String.keyFor, []);
		positionCounters = new sliceType([]);
		hiddenFrames = $makeMap($String.keyFor, [{ k: "$callDeferred", v: true }]);
		knownFrames = $makeMap($String.keyFor, [{ k: "$panic", v: "runtime.gopanic" }, { k: "$goroutine", v: "runtime.goexit" }]);
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/goarch"] = (function() {
	var $pkg = {}, $init;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/unsafeheader"] = (function() {
	var $pkg = {}, $init, Slice;
	Slice = $pkg.Slice = $newType(0, $kindStruct, "unsafeheader.Slice", true, "internal/unsafeheader", true, function(Data_, Len_, Cap_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Data = 0;
			this.Len = 0;
			this.Cap = 0;
			return;
		}
		this.Data = Data_;
		this.Len = Len_;
		this.Cap = Cap_;
	});
	Slice.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $UnsafePointer, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/reflectlite"] = (function() {
	var $pkg = {}, $init, js, goarch, unsafeheader, runtime, Value, flag, ValueError, Type, Kind, tflag, rtype, method, chanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, nameOff, typeOff, textOff, errorString, Method, uncommonType, funcType, name, nameData, mapIter, TypeEx, ptrType$1, sliceType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, ptrType$4, sliceType$5, ptrType$5, sliceType$6, ptrType$6, ptrType$7, sliceType$7, sliceType$8, sliceType$9, sliceType$10, ptrType$8, structType$2, ptrType$9, arrayType$2, sliceType$13, ptrType$10, funcType$2, ptrType$11, funcType$3, ptrType$12, ptrType$13, kindNames, callHelper, initialized, uint8Type, idJsType, idReflectType, idKindType, idRtype, uncommonTypeMap, nameMap, nameOffList, typeOffList, jsObjectPtr, selectHelper, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, unquote, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, TypeOf, ValueOf, FuncOf, SliceOf, unsafe_New, typedmemmove, keyFor, mapaccess, mapiterinit, mapiterkey, mapiternext, maplen, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, PtrTo, copyVal;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	goarch = $packages["internal/goarch"];
	unsafeheader = $packages["internal/unsafeheader"];
	runtime = $packages["runtime"];
	Value = $pkg.Value = $newType(0, $kindStruct, "reflectlite.Value", true, "internal/reflectlite", true, function(typ_, ptr_, flag_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.typ = ptrType$1.nil;
			this.ptr = 0;
			this.flag = 0;
			return;
		}
		this.typ = typ_;
		this.ptr = ptr_;
		this.flag = flag_;
	});
	flag = $pkg.flag = $newType(4, $kindUintptr, "reflectlite.flag", true, "internal/reflectlite", false, null);
	ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflectlite.ValueError", true, "internal/reflectlite", true, function(Method_, Kind_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Method = "";
			this.Kind = 0;
			return;
		}
		this.Method = Method_;
		this.Kind = Kind_;
	});
	Type = $pkg.Type = $newType(8, $kindInterface, "reflectlite.Type", true, "internal/reflectlite", true, null);
	Kind = $pkg.Kind = $newType(4, $kindUint, "reflectlite.Kind", true, "internal/reflectlite", true, null);
	tflag = $pkg.tflag = $newType(1, $kindUint8, "reflectlite.tflag", true, "internal/reflectlite", false, null);
	rtype = $pkg.rtype = $newType(0, $kindStruct, "reflectlite.rtype", true, "internal/reflectlite", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.size = 0;
			this.ptrdata = 0;
			this.hash = 0;
			this.tflag = 0;
			this.align = 0;
			this.fieldAlign = 0;
			this.kind = 0;
			this.equal = $throwNilPointerError;
			this.gcdata = ptrType$6.nil;
			this.str = 0;
			this.ptrToThis = 0;
			return;
		}
		this.size = size_;
		this.ptrdata = ptrdata_;
		this.hash = hash_;
		this.tflag = tflag_;
		this.align = align_;
		this.fieldAlign = fieldAlign_;
		this.kind = kind_;
		this.equal = equal_;
		this.gcdata = gcdata_;
		this.str = str_;
		this.ptrToThis = ptrToThis_;
	});
	method = $pkg.method = $newType(0, $kindStruct, "reflectlite.method", true, "internal/reflectlite", false, function(name_, mtyp_, ifn_, tfn_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = 0;
			this.mtyp = 0;
			this.ifn = 0;
			this.tfn = 0;
			return;
		}
		this.name = name_;
		this.mtyp = mtyp_;
		this.ifn = ifn_;
		this.tfn = tfn_;
	});
	chanDir = $pkg.chanDir = $newType(4, $kindInt, "reflectlite.chanDir", true, "internal/reflectlite", false, null);
	arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflectlite.arrayType", true, "internal/reflectlite", false, function(rtype_, elem_, slice_, len_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.elem = ptrType$1.nil;
			this.slice = ptrType$1.nil;
			this.len = 0;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
		this.slice = slice_;
		this.len = len_;
	});
	chanType = $pkg.chanType = $newType(0, $kindStruct, "reflectlite.chanType", true, "internal/reflectlite", false, function(rtype_, elem_, dir_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.elem = ptrType$1.nil;
			this.dir = 0;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
		this.dir = dir_;
	});
	imethod = $pkg.imethod = $newType(0, $kindStruct, "reflectlite.imethod", true, "internal/reflectlite", false, function(name_, typ_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = 0;
			this.typ = 0;
			return;
		}
		this.name = name_;
		this.typ = typ_;
	});
	interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflectlite.interfaceType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, methods_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.pkgPath = new name.ptr(ptrType$6.nil);
			this.methods = sliceType$9.nil;
			return;
		}
		this.rtype = rtype_;
		this.pkgPath = pkgPath_;
		this.methods = methods_;
	});
	mapType = $pkg.mapType = $newType(0, $kindStruct, "reflectlite.mapType", true, "internal/reflectlite", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.key = ptrType$1.nil;
			this.elem = ptrType$1.nil;
			this.bucket = ptrType$1.nil;
			this.hasher = $throwNilPointerError;
			this.keysize = 0;
			this.valuesize = 0;
			this.bucketsize = 0;
			this.flags = 0;
			return;
		}
		this.rtype = rtype_;
		this.key = key_;
		this.elem = elem_;
		this.bucket = bucket_;
		this.hasher = hasher_;
		this.keysize = keysize_;
		this.valuesize = valuesize_;
		this.bucketsize = bucketsize_;
		this.flags = flags_;
	});
	ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflectlite.ptrType", true, "internal/reflectlite", false, function(rtype_, elem_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.elem = ptrType$1.nil;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
	});
	sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflectlite.sliceType", true, "internal/reflectlite", false, function(rtype_, elem_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.elem = ptrType$1.nil;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
	});
	structField = $pkg.structField = $newType(0, $kindStruct, "reflectlite.structField", true, "internal/reflectlite", false, function(name_, typ_, offsetEmbed_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = new name.ptr(ptrType$6.nil);
			this.typ = ptrType$1.nil;
			this.offsetEmbed = 0;
			return;
		}
		this.name = name_;
		this.typ = typ_;
		this.offsetEmbed = offsetEmbed_;
	});
	structType = $pkg.structType = $newType(0, $kindStruct, "reflectlite.structType", true, "internal/reflectlite", false, function(rtype_, pkgPath_, fields_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.pkgPath = new name.ptr(ptrType$6.nil);
			this.fields = sliceType$10.nil;
			return;
		}
		this.rtype = rtype_;
		this.pkgPath = pkgPath_;
		this.fields = fields_;
	});
	nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflectlite.nameOff", true, "internal/reflectlite", false, null);
	typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflectlite.typeOff", true, "internal/reflectlite", false, null);
	textOff = $pkg.textOff = $newType(4, $kindInt32, "reflectlite.textOff", true, "internal/reflectlite", false, null);
	errorString = $pkg.errorString = $newType(0, $kindStruct, "reflectlite.errorString", true, "internal/reflectlite", false, function(s_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.s = "";
			return;
		}
		this.s = s_;
	});
	Method = $pkg.Method = $newType(0, $kindStruct, "reflectlite.Method", true, "internal/reflectlite", true, function(Name_, PkgPath_, Type_, Func_, Index_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.PkgPath = "";
			this.Type = $ifaceNil;
			this.Func = new Value.ptr(ptrType$1.nil, 0, 0);
			this.Index = 0;
			return;
		}
		this.Name = Name_;
		this.PkgPath = PkgPath_;
		this.Type = Type_;
		this.Func = Func_;
		this.Index = Index_;
	});
	uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflectlite.uncommonType", true, "internal/reflectlite", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.pkgPath = 0;
			this.mcount = 0;
			this.xcount = 0;
			this.moff = 0;
			this._methods = sliceType$5.nil;
			return;
		}
		this.pkgPath = pkgPath_;
		this.mcount = mcount_;
		this.xcount = xcount_;
		this.moff = moff_;
		this._methods = _methods_;
	});
	funcType = $pkg.funcType = $newType(0, $kindStruct, "reflectlite.funcType", true, "internal/reflectlite", false, function(rtype_, inCount_, outCount_, _in_, _out_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
			this.inCount = 0;
			this.outCount = 0;
			this._in = sliceType$2.nil;
			this._out = sliceType$2.nil;
			return;
		}
		this.rtype = rtype_;
		this.inCount = inCount_;
		this.outCount = outCount_;
		this._in = _in_;
		this._out = _out_;
	});
	name = $pkg.name = $newType(0, $kindStruct, "reflectlite.name", true, "internal/reflectlite", false, function(bytes_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.bytes = ptrType$6.nil;
			return;
		}
		this.bytes = bytes_;
	});
	nameData = $pkg.nameData = $newType(0, $kindStruct, "reflectlite.nameData", true, "internal/reflectlite", false, function(name_, tag_, exported_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.tag = "";
			this.exported = false;
			return;
		}
		this.name = name_;
		this.tag = tag_;
		this.exported = exported_;
	});
	mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflectlite.mapIter", true, "internal/reflectlite", false, function(t_, m_, keys_, i_, last_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.t = $ifaceNil;
			this.m = null;
			this.keys = null;
			this.i = 0;
			this.last = null;
			return;
		}
		this.t = t_;
		this.m = m_;
		this.keys = keys_;
		this.i = i_;
		this.last = last_;
	});
	TypeEx = $pkg.TypeEx = $newType(8, $kindInterface, "reflectlite.TypeEx", true, "internal/reflectlite", true, null);
	ptrType$1 = $ptrType(rtype);
	sliceType$1 = $sliceType(name);
	sliceType$2 = $sliceType(ptrType$1);
	sliceType$3 = $sliceType($String);
	sliceType$4 = $sliceType($emptyInterface);
	ptrType$2 = $ptrType(js.Object);
	funcType$1 = $funcType([sliceType$4], [ptrType$2], true);
	ptrType$4 = $ptrType(uncommonType);
	sliceType$5 = $sliceType(method);
	ptrType$5 = $ptrType(funcType);
	sliceType$6 = $sliceType(Value);
	ptrType$6 = $ptrType($Uint8);
	ptrType$7 = $ptrType($UnsafePointer);
	sliceType$7 = $sliceType(Type);
	sliceType$8 = $sliceType(ptrType$2);
	sliceType$9 = $sliceType(imethod);
	sliceType$10 = $sliceType(structField);
	ptrType$8 = $ptrType(nameData);
	structType$2 = $structType("internal/reflectlite", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
	ptrType$9 = $ptrType(mapIter);
	arrayType$2 = $arrayType($Uintptr, 2);
	sliceType$13 = $sliceType($Uint8);
	ptrType$10 = $ptrType(ValueError);
	funcType$2 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false);
	ptrType$11 = $ptrType(interfaceType);
	funcType$3 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false);
	ptrType$12 = $ptrType(structField);
	ptrType$13 = $ptrType(errorString);
	flag.prototype.kind = function() {
		var f;
		f = this.$val;
		return ((((f & 31) >>> 0) >>> 0));
	};
	$ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); };
	flag.prototype.ro = function() {
		var f;
		f = this.$val;
		if (!((((f & 96) >>> 0) === 0))) {
			return 32;
		}
		return 0;
	};
	$ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); };
	Value.ptr.prototype.pointer = function() {
		var v;
		v = this;
		if (!((v.typ.size === 4)) || !v.typ.pointers()) {
			$panic(new $String("can't call pointer on a non-pointer Value"));
		}
		if (!((((v.flag & 128) >>> 0) === 0))) {
			return (v.ptr).$get();
		}
		return v.ptr;
	};
	Value.prototype.pointer = function() { return this.$val.pointer(); };
	ValueError.ptr.prototype.Error = function() {
		var e;
		e = this;
		if (e.Kind === 0) {
			return "reflect: call of " + e.Method + " on zero Value";
		}
		return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value";
	};
	ValueError.prototype.Error = function() { return this.$val.Error(); };
	flag.prototype.mustBeExported = function() {
		var f;
		f = this.$val;
		if (f === 0) {
			$panic(new ValueError.ptr(methodName(), 0));
		}
		if (!((((f & 96) >>> 0) === 0))) {
			$panic(new $String("reflect: " + methodName() + " using value obtained using unexported field"));
		}
	};
	$ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); };
	flag.prototype.mustBeAssignable = function() {
		var f;
		f = this.$val;
		if (f === 0) {
			$panic(new ValueError.ptr(methodName(), 0));
		}
		if (!((((f & 96) >>> 0) === 0))) {
			$panic(new $String("reflect: " + methodName() + " using value obtained using unexported field"));
		}
		if (((f & 256) >>> 0) === 0) {
			$panic(new $String("reflect: " + methodName() + " using unaddressable value"));
		}
	};
	$ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); };
	Value.ptr.prototype.CanSet = function() {
		var v;
		v = this;
		return ((v.flag & 352) >>> 0) === 256;
	};
	Value.prototype.CanSet = function() { return this.$val.CanSet(); };
	Value.ptr.prototype.IsValid = function() {
		var v;
		v = this;
		return !((v.flag === 0));
	};
	Value.prototype.IsValid = function() { return this.$val.IsValid(); };
	Value.ptr.prototype.Kind = function() {
		var v;
		v = this;
		return new flag(v.flag).kind();
	};
	Value.prototype.Kind = function() { return this.$val.Kind(); };
	Value.ptr.prototype.Type = function() {
		var f, v;
		v = this;
		f = v.flag;
		if (f === 0) {
			$panic(new ValueError.ptr("reflectlite.Value.Type", 0));
		}
		return v.typ;
	};
	Value.prototype.Type = function() { return this.$val.Type(); };
	structField.ptr.prototype.embedded = function() {
		var f;
		f = this;
		return !((((f.offsetEmbed & 1) >>> 0) === 0));
	};
	structField.prototype.embedded = function() { return this.$val.embedded(); };
	Kind.prototype.String = function() {
		var k;
		k = this.$val;
		if (((k >> 0)) < kindNames.$length) {
			return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]);
		}
		return (0 >= kindNames.$length ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + 0]);
	};
	$ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); };
	rtype.ptr.prototype.String = function() {
		var s, t;
		t = this;
		s = $clone(t.nameOff(t.str), name).name();
		if (!((((t.tflag & 2) >>> 0) === 0))) {
			return $substring(s, 1);
		}
		return s;
	};
	rtype.prototype.String = function() { return this.$val.String(); };
	rtype.ptr.prototype.Size = function() {
		var t;
		t = this;
		return t.size;
	};
	rtype.prototype.Size = function() { return this.$val.Size(); };
	rtype.ptr.prototype.Kind = function() {
		var t;
		t = this;
		return ((((t.kind & 31) >>> 0) >>> 0));
	};
	rtype.prototype.Kind = function() { return this.$val.Kind(); };
	rtype.ptr.prototype.pointers = function() {
		var t;
		t = this;
		return !((t.ptrdata === 0));
	};
	rtype.prototype.pointers = function() { return this.$val.pointers(); };
	rtype.ptr.prototype.common = function() {
		var t;
		t = this;
		return t;
	};
	rtype.prototype.common = function() { return this.$val.common(); };
	rtype.ptr.prototype.exportedMethods = function() {
		var t, ut;
		t = this;
		ut = t.uncommon();
		if (ut === ptrType$4.nil) {
			return sliceType$5.nil;
		}
		return ut.exportedMethods();
	};
	rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
	rtype.ptr.prototype.NumMethod = function() {
		var t, tt;
		t = this;
		if (t.Kind() === 20) {
			tt = (t.kindType);
			return tt.NumMethod();
		}
		return t.exportedMethods().$length;
	};
	rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); };
	rtype.ptr.prototype.PkgPath = function() {
		var t, ut;
		t = this;
		if (((t.tflag & 4) >>> 0) === 0) {
			return "";
		}
		ut = t.uncommon();
		if (ut === ptrType$4.nil) {
			return "";
		}
		return $clone(t.nameOff(ut.pkgPath), name).name();
	};
	rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); };
	rtype.ptr.prototype.hasName = function() {
		var t;
		t = this;
		return !((((t.tflag & 4) >>> 0) === 0));
	};
	rtype.prototype.hasName = function() { return this.$val.hasName(); };
	rtype.ptr.prototype.Name = function() {
		var i, s, t;
		t = this;
		if (!t.hasName()) {
			return "";
		}
		s = t.String();
		i = s.length - 1 >> 0;
		while (true) {
			if (!(i >= 0 && !((s.charCodeAt(i) === 46)))) { break; }
			i = i - (1) >> 0;
		}
		return $substring(s, (i + 1 >> 0));
	};
	rtype.prototype.Name = function() { return this.$val.Name(); };
	rtype.ptr.prototype.chanDir = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 18))) {
			$panic(new $String("reflect: chanDir of non-chan type"));
		}
		tt = (t.kindType);
		return ((tt.dir >> 0));
	};
	rtype.prototype.chanDir = function() { return this.$val.chanDir(); };
	rtype.ptr.prototype.Elem = function() {
		var _1, t, tt, tt$1, tt$2, tt$3, tt$4;
		t = this;
		_1 = t.Kind();
		if (_1 === (17)) {
			tt = (t.kindType);
			return toType(tt.elem);
		} else if (_1 === (18)) {
			tt$1 = (t.kindType);
			return toType(tt$1.elem);
		} else if (_1 === (21)) {
			tt$2 = (t.kindType);
			return toType(tt$2.elem);
		} else if (_1 === (22)) {
			tt$3 = (t.kindType);
			return toType(tt$3.elem);
		} else if (_1 === (23)) {
			tt$4 = (t.kindType);
			return toType(tt$4.elem);
		}
		$panic(new $String("reflect: Elem of invalid type"));
	};
	rtype.prototype.Elem = function() { return this.$val.Elem(); };
	rtype.ptr.prototype.In = function(i) {
		var i, t, tt, x;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: In of non-func type"));
		}
		tt = (t.kindType);
		return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
	};
	rtype.prototype.In = function(i) { return this.$val.In(i); };
	rtype.ptr.prototype.Len = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 17))) {
			$panic(new $String("reflect: Len of non-array type"));
		}
		tt = (t.kindType);
		return ((tt.len >> 0));
	};
	rtype.prototype.Len = function() { return this.$val.Len(); };
	rtype.ptr.prototype.NumIn = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: NumIn of non-func type"));
		}
		tt = (t.kindType);
		return ((tt.inCount >> 0));
	};
	rtype.prototype.NumIn = function() { return this.$val.NumIn(); };
	rtype.ptr.prototype.NumOut = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: NumOut of non-func type"));
		}
		tt = (t.kindType);
		return tt.out().$length;
	};
	rtype.prototype.NumOut = function() { return this.$val.NumOut(); };
	rtype.ptr.prototype.Out = function(i) {
		var i, t, tt, x;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: Out of non-func type"));
		}
		tt = (t.kindType);
		return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
	};
	rtype.prototype.Out = function(i) { return this.$val.Out(i); };
	interfaceType.ptr.prototype.NumMethod = function() {
		var t;
		t = this;
		return t.methods.$length;
	};
	interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); };
	rtype.ptr.prototype.Implements = function(u) {
		var {_r, t, u, $s, $r, $c} = $restore(this, {u});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if ($interfaceIsEqual(u, $ifaceNil)) {
			$panic(new $String("reflect: nil type passed to Type.Implements"));
		}
		_r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 20))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 20))) { */ case 1:
			$panic(new $String("reflect: non-interface type passed to Type.Implements"));
		/* } */ case 2:
		$s = -1; return implements$1($assertType(u, ptrType$1), t);
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Implements, $c: true, $r, _r, t, u, $s};return $f;
	};
	rtype.prototype.Implements = function(u) { return this.$val.Implements(u); };
	rtype.ptr.prototype.AssignableTo = function(u) {
		var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if ($interfaceIsEqual(u, $ifaceNil)) {
			$panic(new $String("reflect: nil type passed to Type.AssignableTo"));
		}
		uu = $assertType(u, ptrType$1);
		_r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r || implements$1(uu, t);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f;
	};
	rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); };
	implements$1 = function(T, V) {
		var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2;
		if (!((T.Kind() === 20))) {
			return false;
		}
		t = (T.kindType);
		if (t.methods.$length === 0) {
			return true;
		}
		if (V.Kind() === 20) {
			v = (V.kindType);
			i = 0;
			j = 0;
			while (true) {
				if (!(j < v.methods.$length)) { break; }
				tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
				tmName = $clone(t.rtype.nameOff(tm.name), name);
				vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]));
				vmName = $clone(V.nameOff(vm.name), name);
				if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) {
					if (!$clone(tmName, name).isExported()) {
						tmPkgPath = $clone(tmName, name).pkgPath();
						if (tmPkgPath === "") {
							tmPkgPath = $clone(t.pkgPath, name).name();
						}
						vmPkgPath = $clone(vmName, name).pkgPath();
						if (vmPkgPath === "") {
							vmPkgPath = $clone(v.pkgPath, name).name();
						}
						if (!(tmPkgPath === vmPkgPath)) {
							j = j + (1) >> 0;
							continue;
						}
					}
					i = i + (1) >> 0;
					if (i >= t.methods.$length) {
						return true;
					}
				}
				j = j + (1) >> 0;
			}
			return false;
		}
		v$1 = V.uncommon();
		if (v$1 === ptrType$4.nil) {
			return false;
		}
		i$1 = 0;
		vmethods = v$1.methods();
		j$1 = 0;
		while (true) {
			if (!(j$1 < ((v$1.mcount >> 0)))) { break; }
			tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]));
			tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name);
			vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method);
			vmName$1 = $clone(V.nameOff(vm$1.name), name);
			if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) {
				if (!$clone(tmName$1, name).isExported()) {
					tmPkgPath$1 = $clone(tmName$1, name).pkgPath();
					if (tmPkgPath$1 === "") {
						tmPkgPath$1 = $clone(t.pkgPath, name).name();
					}
					vmPkgPath$1 = $clone(vmName$1, name).pkgPath();
					if (vmPkgPath$1 === "") {
						vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name();
					}
					if (!(tmPkgPath$1 === vmPkgPath$1)) {
						j$1 = j$1 + (1) >> 0;
						continue;
					}
				}
				i$1 = i$1 + (1) >> 0;
				if (i$1 >= t.methods.$length) {
					return true;
				}
			}
			j$1 = j$1 + (1) >> 0;
		}
		return false;
	};
	directlyAssignable = function(T, V) {
		var {$24r, T, V, _r, $s, $r, $c} = $restore(this, {T, V});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (T === V) {
			$s = -1; return true;
		}
		if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) {
			$s = -1; return false;
		}
		_r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: directlyAssignable, $c: true, $r, $24r, T, V, _r, $s};return $f;
	};
	haveIdenticalType = function(T, V, cmpTags) {
		var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (cmpTags) {
			$s = -1; return $interfaceIsEqual(T, V);
		}
		_r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		if (!(_r === _r$1)) { _v = true; $s = 3; continue s; }
		_r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = !((_r$2 === _r$3)); case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			$s = -1; return false;
		/* } */ case 2:
		_r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg = _r$4;
		_r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$1 = _r$5;
		_r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		$24r = _r$6;
		$s = 11; case 11: return $24r;
		/* */ } return; } var $f = {$blk: haveIdenticalType, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s};return $f;
	};
	haveIdenticalUnderlyingType = function(T, V, cmpTags) {
		var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (T === V) {
			$s = -1; return true;
		}
		kind = T.Kind();
		if (!((kind === V.Kind()))) {
			$s = -1; return false;
		}
		if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) {
			$s = -1; return true;
		}
			_1 = kind;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (18)) { $s = 3; continue; }
			/* */ if (_1 === (19)) { $s = 4; continue; }
			/* */ if (_1 === (20)) { $s = 5; continue; }
			/* */ if (_1 === (21)) { $s = 6; continue; }
			/* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; }
			/* */ if (_1 === (25)) { $s = 8; continue; }
			/* */ $s = 9; continue;
			/* if (_1 === (17)) { */ case 2:
				if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; }
				_r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_v = _r; case 10:
				$24r = _v;
				$s = 12; case 12: return $24r;
			/* } else if (_1 === (18)) { */ case 3:
				if (!(V.chanDir() === 3)) { _v$1 = false; $s = 15; continue s; }
				_r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_v$1 = _r$1; case 15:
				/* */ if (_v$1) { $s = 13; continue; }
				/* */ $s = 14; continue;
				/* if (_v$1) { */ case 13:
					$s = -1; return true;
				/* } */ case 14:
				if (!(V.chanDir() === T.chanDir())) { _v$2 = false; $s = 17; continue s; }
				_r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_v$2 = _r$2; case 17:
				$24r$1 = _v$2;
				$s = 19; case 19: return $24r$1;
			/* } else if (_1 === (19)) { */ case 4:
				t = (T.kindType);
				v = (V.kindType);
				if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) {
					$s = -1; return false;
				}
				i = 0;
				/* while (true) { */ case 20:
					/* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 21; continue; }
					_r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					/* */ if (!_r$3) { $s = 22; continue; }
					/* */ $s = 23; continue;
					/* if (!_r$3) { */ case 22:
						$s = -1; return false;
					/* } */ case 23:
					i = i + (1) >> 0;
				$s = 20; continue;
				case 21:
				i$1 = 0;
				/* while (true) { */ case 25:
					/* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 26; continue; }
					_r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					/* */ if (!_r$4) { $s = 27; continue; }
					/* */ $s = 28; continue;
					/* if (!_r$4) { */ case 27:
						$s = -1; return false;
					/* } */ case 28:
					i$1 = i$1 + (1) >> 0;
				$s = 25; continue;
				case 26:
				$s = -1; return true;
			/* } else if (_1 === (20)) { */ case 5:
				t$1 = (T.kindType);
				v$1 = (V.kindType);
				if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) {
					$s = -1; return true;
				}
				$s = -1; return false;
			/* } else if (_1 === (21)) { */ case 6:
				_r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				if (!(_r$5)) { _v$3 = false; $s = 30; continue s; }
				_r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				_v$3 = _r$6; case 30:
				$24r$2 = _v$3;
				$s = 33; case 33: return $24r$2;
			/* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7:
				_r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
				$24r$3 = _r$7;
				$s = 35; case 35: return $24r$3;
			/* } else if (_1 === (25)) { */ case 8:
				t$2 = (T.kindType);
				v$2 = (V.kindType);
				if (!((t$2.fields.$length === v$2.fields.$length))) {
					$s = -1; return false;
				}
				if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) {
					$s = -1; return false;
				}
				_ref = t$2.fields;
				_i = 0;
				/* while (true) { */ case 36:
					/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 37; continue; }
					i$2 = _i;
					tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2]));
					vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2]));
					if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) {
						$s = -1; return false;
					}
					_r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 40; case 40: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
					/* */ if (!_r$8) { $s = 38; continue; }
					/* */ $s = 39; continue;
					/* if (!_r$8) { */ case 38:
						$s = -1; return false;
					/* } */ case 39:
					if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) {
						$s = -1; return false;
					}
					if (!((tf.offsetEmbed === vf.offsetEmbed))) {
						$s = -1; return false;
					}
					_i++;
				$s = 36; continue;
				case 37:
				$s = -1; return true;
			/* } */ case 9:
		case 1:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f;
	};
	toType = function(t) {
		var t;
		if (t === ptrType$1.nil) {
			return $ifaceNil;
		}
		return t;
	};
	ifaceIndir = function(t) {
		var t;
		return ((t.kind & 32) >>> 0) === 0;
	};
	Value.ptr.prototype.object = function() {
		var _1, newVal, v, val;
		v = this;
		if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) {
			return v.ptr;
		}
		if (!((((v.flag & 128) >>> 0) === 0))) {
			val = v.ptr.$get();
			if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) {
				switch (0) { default:
					_1 = v.typ.Kind();
					if ((_1 === (11)) || (_1 === (6))) {
						val = new (jsType(v.typ))(val.$high, val.$low);
					} else if ((_1 === (15)) || (_1 === (16))) {
						val = new (jsType(v.typ))(val.$real, val.$imag);
					} else if (_1 === (23)) {
						if (val === val.constructor.nil) {
							val = jsType(v.typ).nil;
							break;
						}
						newVal = new (jsType(v.typ))(val.$array);
						newVal.$offset = val.$offset;
						newVal.$length = val.$length;
						newVal.$capacity = val.$capacity;
						val = newVal;
					}
				}
			}
			return val;
		}
		return v.ptr;
	};
	Value.prototype.object = function() { return this.$val.object(); };
	Value.ptr.prototype.assignTo = function(context, dst, target) {
		var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
			_r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			Value.copy(v, _r);
		/* } */ case 2:
			_r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (_r$1) { $s = 5; continue; }
			/* */ if (implements$1(dst, v.typ)) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (_r$1) { */ case 5:
				fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0;
				fl = (fl | (((dst.Kind() >>> 0)))) >>> 0;
				$s = -1; return new Value.ptr(dst, v.ptr, fl);
			/* } else if (implements$1(dst, v.typ)) { */ case 6:
				if (target === 0) {
					target = unsafe_New(dst);
				}
				_r$2 = valueInterface($clone(v, Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				x = _r$2;
				if (dst.NumMethod() === 0) {
					(target).$set(x);
				} else {
					ifaceE2I(dst, x, target);
				}
				$s = -1; return new Value.ptr(dst, target, 148);
			/* } */ case 7:
		case 4:
		$panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String()));
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f;
	};
	Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); };
	Value.ptr.prototype.Cap = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (17)) {
			return v.typ.Len();
		} else if ((_1 === (18)) || (_1 === (23))) {
			return $parseInt($clone(v, Value).object().$capacity) >> 0;
		}
		$panic(new ValueError.ptr("reflect.Value.Cap", k));
	};
	Value.prototype.Cap = function() { return this.$val.Cap(); };
	Value.ptr.prototype.Index = function(i) {
		var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		a = [a];
		a$1 = [a$1];
		c = [c];
		i = [i];
		typ = [typ];
		typ$1 = [typ$1];
		v = this;
			k = new flag(v.flag).kind();
			_1 = k;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (23)) { $s = 3; continue; }
			/* */ if (_1 === (24)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_1 === (17)) { */ case 2:
				tt = (v.typ.kindType);
				if (i[0] < 0 || i[0] > ((tt.len >> 0))) {
					$panic(new $String("reflect: array index out of range"));
				}
				typ[0] = tt.elem;
				fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
				a[0] = v.ptr;
				/* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7:
					$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
						return wrapJsObject(typ[0], a[0][i[0]]);
					}; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
						var x;
						a[0][i[0]] = unwrapJsObject(typ[0], x);
					}; })(a, a$1, c, i, typ, typ$1))), fl);
				/* } */ case 8:
				_r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 10; case 10: return $24r;
			/* } else if (_1 === (23)) { */ case 3:
				s = $clone(v, Value).object();
				if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) {
					$panic(new $String("reflect: slice index out of range"));
				}
				tt$1 = (v.typ.kindType);
				typ$1[0] = tt$1.elem;
				fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0;
				i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0;
				a$1[0] = s.$array;
				/* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; }
				/* */ $s = 12; continue;
				/* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11:
					$s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
						return wrapJsObject(typ$1[0], a$1[0][i[0]]);
					}; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
						var x;
						a$1[0][i[0]] = unwrapJsObject(typ$1[0], x);
					}; })(a, a$1, c, i, typ, typ$1))), fl$1);
				/* } */ case 12:
				_r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$24r$1 = _r$1;
				$s = 14; case 14: return $24r$1;
			/* } else if (_1 === (24)) { */ case 4:
				str = (v.ptr).$get();
				if (i[0] < 0 || i[0] >= str.length) {
					$panic(new $String("reflect: string index out of range"));
				}
				fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0;
				c[0] = str.charCodeAt(i[0]);
				$s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2);
			/* } else { */ case 5:
				$panic(new ValueError.ptr("reflect.Value.Index", k));
			/* } */ case 6:
		case 1:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f;
	};
	Value.prototype.Index = function(i) { return this.$val.Index(i); };
	Value.ptr.prototype.InterfaceData = function() {
		var v;
		v = this;
		$panic(new $String("InterfaceData is not supported by GopherJS"));
	};
	Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); };
	Value.ptr.prototype.IsNil = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (22)) || (_1 === (23))) {
			return $clone(v, Value).object() === jsType(v.typ).nil;
		} else if (_1 === (18)) {
			return $clone(v, Value).object() === $chanNil;
		} else if (_1 === (19)) {
			return $clone(v, Value).object() === $throwNilPointerError;
		} else if (_1 === (21)) {
			return $clone(v, Value).object() === false;
		} else if (_1 === (20)) {
			return $clone(v, Value).object() === $ifaceNil;
		} else if (_1 === (26)) {
			return $clone(v, Value).object() === 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.IsNil", k));
		}
	};
	Value.prototype.IsNil = function() { return this.$val.IsNil(); };
	Value.ptr.prototype.Len = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (17)) || (_1 === (24))) {
			return $parseInt($clone(v, Value).object().length);
		} else if (_1 === (23)) {
			return $parseInt($clone(v, Value).object().$length) >> 0;
		} else if (_1 === (18)) {
			return $parseInt($clone(v, Value).object().$buffer.length) >> 0;
		} else if (_1 === (21)) {
			return $parseInt($clone(v, Value).object().size) >> 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Len", k));
		}
	};
	Value.prototype.Len = function() { return this.$val.Len(); };
	Value.ptr.prototype.Pointer = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return $clone(v, Value).object();
		} else if (_1 === (19)) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return 1;
		} else if (_1 === (23)) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return $clone(v, Value).object().$array;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Pointer", k));
		}
	};
	Value.prototype.Pointer = function() { return this.$val.Pointer(); };
	Value.ptr.prototype.Set = function(x) {
		var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(x.flag).mustBeExported();
		_r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		Value.copy(x, _r);
		/* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2:
				_1 = v.typ.Kind();
				/* */ if (_1 === (17)) { $s = 5; continue; }
				/* */ if (_1 === (20)) { $s = 6; continue; }
				/* */ if (_1 === (25)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (17)) { */ case 5:
					jsType(v.typ).copy(v.ptr, x.ptr);
					$s = 9; continue;
				/* } else if (_1 === (20)) { */ case 6:
					_r$1 = valueInterface($clone(x, Value)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					v.ptr.$set(_r$1);
					$s = 9; continue;
				/* } else if (_1 === (25)) { */ case 7:
					copyStruct(v.ptr, x.ptr, v.typ);
					$s = 9; continue;
				/* } else { */ case 8:
					v.ptr.$set($clone(x, Value).object());
				/* } */ case 9:
			case 4:
			$s = -1; return;
		/* } */ case 3:
		v.ptr = x.ptr;
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f;
	};
	Value.prototype.Set = function(x) { return this.$val.Set(x); };
	Value.ptr.prototype.SetBytes = function(x) {
		var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		_r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 8))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 8))) { */ case 1:
			$panic(new $String("reflect.Value.SetBytes of non-byte slice"));
		/* } */ case 2:
		slice = x;
		if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; }
		_r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_v = !(_r$1 === ""); case 6:
		/* */ if (_v) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (_v) { */ case 4:
			typedSlice = new (jsType(v.typ))(slice.$array);
			typedSlice.$offset = slice.$offset;
			typedSlice.$length = slice.$length;
			typedSlice.$capacity = slice.$capacity;
			slice = typedSlice;
		/* } */ case 5:
		v.ptr.$set(slice);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f;
	};
	Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); };
	Value.ptr.prototype.SetCap = function(n) {
		var n, newSlice, s, v;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		s = v.ptr.$get();
		if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) {
			$panic(new $String("reflect: slice capacity out of range in SetCap"));
		}
		newSlice = new (jsType(v.typ))(s.$array);
		newSlice.$offset = s.$offset;
		newSlice.$length = s.$length;
		newSlice.$capacity = n;
		v.ptr.$set(newSlice);
	};
	Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); };
	Value.ptr.prototype.SetLen = function(n) {
		var n, newSlice, s, v;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		s = v.ptr.$get();
		if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) {
			$panic(new $String("reflect: slice length out of range in SetLen"));
		}
		newSlice = new (jsType(v.typ))(s.$array);
		newSlice.$offset = s.$offset;
		newSlice.$length = n;
		newSlice.$capacity = s.$capacity;
		v.ptr.$set(newSlice);
	};
	Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); };
	Value.ptr.prototype.Slice = function(i, j) {
		var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		cap = 0;
		typ = $ifaceNil;
		s = null;
			kind = new flag(v.flag).kind();
			_1 = kind;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (23)) { $s = 3; continue; }
			/* */ if (_1 === (24)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_1 === (17)) { */ case 2:
				if (((v.flag & 256) >>> 0) === 0) {
					$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
				}
				tt = (v.typ.kindType);
				cap = ((tt.len >> 0));
				typ = SliceOf(tt.elem);
				s = new (jsType(typ))($clone(v, Value).object());
				$s = 6; continue;
			/* } else if (_1 === (23)) { */ case 3:
				typ = v.typ;
				s = $clone(v, Value).object();
				cap = $parseInt(s.$capacity) >> 0;
				$s = 6; continue;
			/* } else if (_1 === (24)) { */ case 4:
				str = (v.ptr).$get();
				if (i < 0 || j < i || j > str.length) {
					$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));
				}
				_r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 8; case 8: return $24r;
			/* } else { */ case 5:
				$panic(new ValueError.ptr("reflect.Value.Slice", kind));
			/* } */ case 6:
		case 1:
		if (i < 0 || j < i || j > cap) {
			$panic(new $String("reflect.Value.Slice: slice index out of bounds"));
		}
		_r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r$1 = _r$1;
		$s = 10; case 10: return $24r$1;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s};return $f;
	};
	Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); };
	Value.ptr.prototype.Slice3 = function(i, j, k) {
		var {$24r, _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		cap = 0;
		typ = $ifaceNil;
		s = null;
		kind = new flag(v.flag).kind();
		_1 = kind;
		if (_1 === (17)) {
			if (((v.flag & 256) >>> 0) === 0) {
				$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
			}
			tt = (v.typ.kindType);
			cap = ((tt.len >> 0));
			typ = SliceOf(tt.elem);
			s = new (jsType(typ))($clone(v, Value).object());
		} else if (_1 === (23)) {
			typ = v.typ;
			s = $clone(v, Value).object();
			cap = $parseInt(s.$capacity) >> 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Slice3", kind));
		}
		if (i < 0 || j < i || k < j || k > cap) {
			$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));
		}
		_r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s};return $f;
	};
	Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); };
	Value.ptr.prototype.Close = function() {
		var v;
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		$close($clone(v, Value).object());
	};
	Value.prototype.Close = function() { return this.$val.Close(); };
	Value.ptr.prototype.Elem = function() {
		var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
			k = new flag(v.flag).kind();
			_1 = k;
			/* */ if (_1 === (20)) { $s = 2; continue; }
			/* */ if (_1 === (22)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (_1 === (20)) { */ case 2:
				val = $clone(v, Value).object();
				if (val === $ifaceNil) {
					$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
				}
				typ = reflectType(val.constructor);
				_r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 7; case 7: return $24r;
			/* } else if (_1 === (22)) { */ case 3:
				if ($clone(v, Value).IsNil()) {
					$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
				}
				val$1 = $clone(v, Value).object();
				tt = (v.typ.kindType);
				fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0;
				fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0;
				$s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl);
			/* } else { */ case 4:
				$panic(new ValueError.ptr("reflect.Value.Elem", k));
			/* } */ case 5:
		case 1:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Elem, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f;
	};
	Value.prototype.Elem = function() { return this.$val.Elem(); };
	Value.ptr.prototype.NumField = function() {
		var tt, v;
		v = this;
		new flag(v.flag).mustBe(25);
		tt = (v.typ.kindType);
		return tt.fields.$length;
	};
	Value.prototype.NumField = function() { return this.$val.NumField(); };
	Value.ptr.prototype.MapKeys = function() {
		var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(21);
		tt = (v.typ.kindType);
		keyType = tt.key;
		fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0;
		m = $clone(v, Value).pointer();
		mlen = 0;
		if (!(m === 0)) {
			mlen = maplen(m);
		}
		it = mapiterinit(v.typ, m);
		a = $makeSlice(sliceType$6, mlen);
		i = 0;
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; }
			_r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			key = _r;
			if (key === 0) {
				/* break; */ $s = 2; continue;
			}
			Value.copy(((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i]), copyVal(keyType, fl, key));
			mapiternext(it);
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return $subslice(a, 0, i);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f;
	};
	Value.prototype.MapKeys = function() { return this.$val.MapKeys(); };
	Value.ptr.prototype.MapIndex = function(key) {
		var {_r, e, fl, k, key, tt, typ, v, $s, $r, $c} = $restore(this, {key});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(21);
		tt = (v.typ.kindType);
		_r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		Value.copy(key, _r);
		k = 0;
		if (!((((key.flag & 128) >>> 0) === 0))) {
			k = key.ptr;
		} else {
			k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key))));
		}
		e = mapaccess(v.typ, $clone(v, Value).pointer(), k);
		if (e === 0) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		typ = tt.elem;
		fl = new flag((((v.flag | key.flag) >>> 0))).ro();
		fl = (fl | (((typ.Kind() >>> 0)))) >>> 0;
		$s = -1; return copyVal(typ, fl, e);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.MapIndex, $c: true, $r, _r, e, fl, k, key, tt, typ, v, $s};return $f;
	};
	Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); };
	Value.ptr.prototype.Field = function(i) {
		var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		jsTag = [jsTag];
		prop = [prop];
		s = [s];
		typ = [typ];
		v = this;
		if (!((new flag(v.flag).kind() === 25))) {
			$panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind()));
		}
		tt = (v.typ.kindType);
		if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) {
			$panic(new $String("reflect: Field index out of range"));
		}
		prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String);
		field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
		typ[0] = field.typ;
		fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
		if (!$clone(field.name, name).isExported()) {
			if (field.embedded()) {
				fl = (fl | (64)) >>> 0;
			} else {
				fl = (fl | (32)) >>> 0;
			}
		}
		tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag();
		/* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(tag === "") && !((i === 0))) { */ case 1:
			jsTag[0] = getJsTag(tag);
			/* */ if (!(jsTag[0] === "")) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!(jsTag[0] === "")) { */ case 3:
				/* while (true) { */ case 5:
					o = [o];
					_r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					Value.copy(v, _r);
					/* */ if (v.typ === jsObjectPtr) { $s = 8; continue; }
					/* */ $s = 9; continue;
					/* if (v.typ === jsObjectPtr) { */ case 8:
						o[0] = $clone(v, Value).object().object;
						$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() {
							return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0]));
						}; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) {
							var x$2;
							o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0]));
						}; })(jsTag, o, prop, s, typ))), fl);
					/* } */ case 9:
					/* */ if (v.typ.Kind() === 22) { $s = 10; continue; }
					/* */ $s = 11; continue;
					/* if (v.typ.Kind() === 22) { */ case 10:
						_r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
						Value.copy(v, _r$1);
					/* } */ case 11:
				$s = 5; continue;
				case 6:
			/* } */ case 4:
		/* } */ case 2:
		s[0] = v.ptr;
		/* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13:
			$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() {
				return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]);
			}; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) {
				var x$2;
				s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2);
			}; })(jsTag, prop, s, typ))), fl);
		/* } */ case 14:
		_r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 16; case 16: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Field, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s};return $f;
	};
	Value.prototype.Field = function(i) { return this.$val.Field(i); };
	errorString.ptr.prototype.Error = function() {
		var e;
		e = this;
		return e.s;
	};
	errorString.prototype.Error = function() { return this.$val.Error(); };
	unquote = function(s) {
		var s;
		if (s.length < 2) {
			return [s, $ifaceNil];
		}
		if ((s.charCodeAt(0) === 39) || (s.charCodeAt(0) === 34)) {
			if (s.charCodeAt((s.length - 1 >> 0)) === s.charCodeAt(0)) {
				return [$substring(s, 1, (s.length - 1 >> 0)), $ifaceNil];
			}
			return ["", $pkg.ErrSyntax];
		}
		return [s, $ifaceNil];
	};
	flag.prototype.mustBe = function(expected) {
		var expected, f;
		f = this.$val;
		if (!((((((f & 31) >>> 0) >>> 0)) === expected))) {
			$panic(new ValueError.ptr(methodName(), new flag(f).kind()));
		}
	};
	$ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); };
	rtype.ptr.prototype.Comparable = function() {
		var {$24r, _1, _r, _r$1, ft, i, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
			_1 = t.Kind();
			/* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; }
			/* */ if (_1 === (17)) { $s = 3; continue; }
			/* */ if (_1 === (25)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2:
				$s = -1; return false;
			/* } else if (_1 === (17)) { */ case 3:
				_r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 7; case 7: return $24r;
			/* } else if (_1 === (25)) { */ case 4:
				i = 0;
				/* while (true) { */ case 8:
					/* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; }
					ft = $clone(t.Field(i), structField);
					_r$1 = ft.typ.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					/* */ if (!_r$1) { $s = 10; continue; }
					/* */ $s = 11; continue;
					/* if (!_r$1) { */ case 10:
						$s = -1; return false;
					/* } */ case 11:
					i = i + (1) >> 0;
				$s = 8; continue;
				case 9:
			/* } */ case 5:
		case 1:
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Comparable, $c: true, $r, $24r, _1, _r, _r$1, ft, i, t, $s};return $f;
	};
	rtype.prototype.Comparable = function() { return this.$val.Comparable(); };
	rtype.ptr.prototype.IsVariadic = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: IsVariadic of non-func type"));
		}
		tt = (t.kindType);
		return !((((tt.outCount & 32768) >>> 0) === 0));
	};
	rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); };
	rtype.ptr.prototype.Field = function(i) {
		var i, t, tt, x;
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: Field of non-struct type"));
		}
		tt = (t.kindType);
		if (i < 0 || i >= tt.fields.$length) {
			$panic(new $String("reflect: Field index out of bounds"));
		}
		return (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
	};
	rtype.prototype.Field = function(i) { return this.$val.Field(i); };
	rtype.ptr.prototype.Key = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 21))) {
			$panic(new $String("reflect: Key of non-map type"));
		}
		tt = (t.kindType);
		return toType(tt.key);
	};
	rtype.prototype.Key = function() { return this.$val.Key(); };
	rtype.ptr.prototype.NumField = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: NumField of non-struct type"));
		}
		tt = (t.kindType);
		return tt.fields.$length;
	};
	rtype.prototype.NumField = function() { return this.$val.NumField(); };
	rtype.ptr.prototype.Method = function(i) {
		var {$24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		prop = [prop];
		m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		t = this;
		/* */ if (t.Kind() === 20) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (t.Kind() === 20) { */ case 1:
			tt = (t.kindType);
			_r = tt.rtype.Method(i); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			Method.copy(m, _r);
			$24r = m;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		methods = t.exportedMethods();
		if (i < 0 || i >= methods.$length) {
			$panic(new $String("reflect: Method index out of range"));
		}
		p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method);
		pname = $clone(t.nameOff(p.name), name);
		m.Name = $clone(pname, name).name();
		fl = 19;
		mtyp = t.typeOff(p.mtyp);
		ft = (mtyp.kindType);
		in$1 = $makeSlice(sliceType$7, 0, (1 + ft.in$().$length >> 0));
		in$1 = $append(in$1, t);
		_ref = ft.in$();
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			in$1 = $append(in$1, arg);
			_i++;
		}
		out = $makeSlice(sliceType$7, 0, ft.out().$length);
		_ref$1 = ft.out();
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.$length)) { break; }
			ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
			out = $append(out, ret);
			_i$1++;
		}
		_r$1 = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		mt = _r$1;
		m.Type = mt;
		prop[0] = $internalize($methodSet(t[$externalize(idJsType, $String)])[i].prop, $String);
		fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) {
			var arguments$1, rcvr, this$1;
			rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]);
			return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8)));
		}; })(prop));
		Value.copy(m.Func, new Value.ptr($assertType(mt, ptrType$1), (fn), fl));
		m.Index = i;
		Method.copy(m, m);
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Method, $c: true, $r, $24r, _i, _i$1, _r, _r$1, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f;
	};
	rtype.prototype.Method = function(i) { return this.$val.Method(i); };
	init = function() {
		var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		used = (function(i) {
			var i;
		});
		$r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$9.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), new name.ptr(ptrType$6.nil), sliceType$10.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$12 = new structField.ptr(new name.ptr(ptrType$6.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		initialized = true;
		uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: init, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f;
	};
	jsType = function(typ) {
		var typ;
		return typ[$externalize(idJsType, $String)];
	};
	reflectType = function(typ) {
		var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount;
		if (typ[$externalize(idReflectType, $String)] === undefined) {
			rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$6.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0);
			rt[$externalize(idJsType, $String)] = typ;
			typ[$externalize(idReflectType, $String)] = rt;
			methodSet = $methodSet(typ);
			if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) {
				rt.tflag = (rt.tflag | (1)) >>> 0;
				if (!!(typ.named)) {
					rt.tflag = (rt.tflag | (4)) >>> 0;
				}
				reflectMethods = sliceType$5.nil;
				i = 0;
				while (true) {
					if (!(i < $parseInt(methodSet.length))) { break; }
					m = methodSet[i];
					exported = internalStr(m.pkg) === "";
					if (!exported) {
						i = i + (1) >> 0;
						continue;
					}
					reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0));
					i = i + (1) >> 0;
				}
				xcount = ((reflectMethods.$length << 16 >>> 16));
				i$1 = 0;
				while (true) {
					if (!(i$1 < $parseInt(methodSet.length))) { break; }
					m$1 = methodSet[i$1];
					exported$1 = internalStr(m$1.pkg) === "";
					if (exported$1) {
						i$1 = i$1 + (1) >> 0;
						continue;
					}
					reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0));
					i$1 = i$1 + (1) >> 0;
				}
				ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods);
				_key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: ut });
				ut[$externalize(idJsType, $String)] = typ;
			}
			_1 = rt.Kind();
			if (_1 === (17)) {
				setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0))));
			} else if (_1 === (18)) {
				dir = 3;
				if (!!(typ.sendOnly)) {
					dir = 2;
				}
				if (!!(typ.recvOnly)) {
					dir = 1;
				}
				setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0))));
			} else if (_1 === (19)) {
				params = typ.params;
				in$1 = $makeSlice(sliceType$2, $parseInt(params.length));
				_ref = in$1;
				_i = 0;
				while (true) {
					if (!(_i < _ref.$length)) { break; }
					i$2 = _i;
					((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2]));
					_i++;
				}
				results = typ.results;
				out = $makeSlice(sliceType$2, $parseInt(results.length));
				_ref$1 = out;
				_i$1 = 0;
				while (true) {
					if (!(_i$1 < _ref$1.$length)) { break; }
					i$3 = _i$1;
					((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3]));
					_i$1++;
				}
				outCount = (($parseInt(results.length) << 16 >>> 16));
				if (!!(typ.variadic)) {
					outCount = (outCount | (32768)) >>> 0;
				}
				setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out));
			} else if (_1 === (20)) {
				methods = typ.methods;
				imethods = $makeSlice(sliceType$9, $parseInt(methods.length));
				_ref$2 = imethods;
				_i$2 = 0;
				while (true) {
					if (!(_i$2 < _ref$2.$length)) { break; }
					i$4 = _i$2;
					m$2 = methods[i$4];
					imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ))));
					_i$2++;
				}
				setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods));
			} else if (_1 === (21)) {
				setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0));
			} else if (_1 === (22)) {
				setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem)));
			} else if (_1 === (23)) {
				setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0), reflectType(typ.elem)));
			} else if (_1 === (25)) {
				fields = typ.fields;
				reflectFields = $makeSlice(sliceType$10, $parseInt(fields.length));
				_ref$3 = reflectFields;
				_i$3 = 0;
				while (true) {
					if (!(_i$3 < _ref$3.$length)) { break; }
					i$5 = _i$3;
					f = fields[i$5];
					offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0;
					if (!!(f.embedded)) {
						offsetEmbed = (offsetEmbed | (1)) >>> 0;
					}
					structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed));
					_i$3++;
				}
				setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields));
			}
		}
		return ((typ[$externalize(idReflectType, $String)]));
	};
	setKindType = function(rt, kindType) {
		var kindType, rt;
		rt[$externalize(idKindType, $String)] = kindType;
		kindType[$externalize(idRtype, $String)] = rt;
	};
	uncommonType.ptr.prototype.methods = function() {
		var t;
		t = this;
		return t._methods;
	};
	uncommonType.prototype.methods = function() { return this.$val.methods(); };
	uncommonType.ptr.prototype.exportedMethods = function() {
		var t;
		t = this;
		return $subslice(t._methods, 0, t.xcount, t.xcount);
	};
	uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
	rtype.ptr.prototype.uncommon = function() {
		var _entry, t;
		t = this;
		return (_entry = $mapIndex(uncommonTypeMap,ptrType$1.keyFor(t)), _entry !== undefined ? _entry.v : ptrType$4.nil);
	};
	rtype.prototype.uncommon = function() { return this.$val.uncommon(); };
	funcType.ptr.prototype.in$ = function() {
		var t;
		t = this;
		return t._in;
	};
	funcType.prototype.in$ = function() { return this.$val.in$(); };
	funcType.ptr.prototype.out = function() {
		var t;
		t = this;
		return t._out;
	};
	funcType.prototype.out = function() { return this.$val.out(); };
	name.ptr.prototype.name = function() {
		var _entry, n, s;
		s = "";
		n = this;
		s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).name;
		return s;
	};
	name.prototype.name = function() { return this.$val.name(); };
	name.ptr.prototype.tag = function() {
		var _entry, n, s;
		s = "";
		n = this;
		s = (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).tag;
		return s;
	};
	name.prototype.tag = function() { return this.$val.tag(); };
	name.ptr.prototype.pkgPath = function() {
		var n;
		n = this;
		return "";
	};
	name.prototype.pkgPath = function() { return this.$val.pkgPath(); };
	name.ptr.prototype.isExported = function() {
		var _entry, n;
		n = this;
		return (_entry = $mapIndex(nameMap,ptrType$6.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$8.nil).exported;
	};
	name.prototype.isExported = function() { return this.$val.isExported(); };
	newName = function(n, tag, exported) {
		var _key, b, exported, n, tag;
		b = $newDataPointer(0, ptrType$6);
		_key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$6.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag, exported) });
		return new name.ptr(b);
	};
	rtype.ptr.prototype.nameOff = function(off) {
		var off, t, x;
		t = this;
		return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x]));
	};
	rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); };
	newNameOff = function(n) {
		var i, n;
		i = nameOffList.$length;
		nameOffList = $append(nameOffList, n);
		return ((i >> 0));
	};
	rtype.ptr.prototype.typeOff = function(off) {
		var off, t, x;
		t = this;
		return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x]));
	};
	rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); };
	newTypeOff = function(t) {
		var i, t;
		i = typeOffList.$length;
		typeOffList = $append(typeOffList, t);
		return ((i >> 0));
	};
	internalStr = function(strObj) {
		var c, strObj;
		c = new structType$2.ptr("");
		c.str = strObj;
		return c.str;
	};
	isWrapped = function(typ) {
		var typ;
		return !!(jsType(typ).wrapped);
	};
	copyStruct = function(dst, src, typ) {
		var dst, fields, i, prop, src, typ;
		fields = jsType(typ).fields;
		i = 0;
		while (true) {
			if (!(i < $parseInt(fields.length))) { break; }
			prop = $internalize(fields[i].prop, $String);
			dst[$externalize(prop, $String)] = src[$externalize(prop, $String)];
			i = i + (1) >> 0;
		}
	};
	makeValue = function(t, v, fl) {
		var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		rt = _r;
		_r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; }
		_r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_v$1 = _r$2 === 25; case 5:
		if (_v$1) { _v = true; $s = 4; continue s; }
		_r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = _r$3 === 22; case 4:
		/* */ if (_v) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (_v) { */ case 2:
			_r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			$24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0);
			$s = 10; case 10: return $24r;
		/* } */ case 3:
		_r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		$24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0);
		$s = 12; case 12: return $24r$1;
		/* */ } return; } var $f = {$blk: makeValue, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f;
	};
	TypeOf = function(i) {
		var i;
		if (!initialized) {
			return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$6.nil, 0, 0);
		}
		if ($interfaceIsEqual(i, $ifaceNil)) {
			return $ifaceNil;
		}
		return reflectType(i.constructor);
	};
	$pkg.TypeOf = TypeOf;
	ValueOf = function(i) {
		var {$24r, _r, i, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if ($interfaceIsEqual(i, $ifaceNil)) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		_r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: ValueOf, $c: true, $r, $24r, _r, i, $s};return $f;
	};
	$pkg.ValueOf = ValueOf;
	FuncOf = function(in$1, out, variadic) {
		var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$1, out, variadic});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (!(variadic)) { _v = false; $s = 3; continue s; }
		if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; }
		_r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_v$1 = !((_r === 23)); case 4:
		_v = _v$1; case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			$panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));
		/* } */ case 2:
		jsIn = $makeSlice(sliceType$8, in$1.$length);
		_ref = in$1;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v));
			_i++;
		}
		jsOut = $makeSlice(sliceType$8, out.$length);
		_ref$1 = out;
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.$length)) { break; }
			i$1 = _i$1;
			v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
			((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1));
			_i$1++;
		}
		$s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool)));
		/* */ } return; } var $f = {$blk: FuncOf, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s};return $f;
	};
	$pkg.FuncOf = FuncOf;
	rtype.ptr.prototype.ptrTo = function() {
		var t;
		t = this;
		return reflectType($ptrType(jsType(t)));
	};
	rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); };
	SliceOf = function(t) {
		var t;
		return reflectType($sliceType(jsType(t)));
	};
	$pkg.SliceOf = SliceOf;
	unsafe_New = function(typ) {
		var _1, typ;
		_1 = typ.Kind();
		if (_1 === (25)) {
			return (new (jsType(typ).ptr)());
		} else if (_1 === (17)) {
			return (jsType(typ).zero());
		} else {
			return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo())));
		}
	};
	typedmemmove = function(t, dst, src) {
		var dst, src, t;
		dst.$set(src.$get());
	};
	keyFor = function(t, key) {
		var k, key, kv, t;
		kv = key;
		if (!(kv.$get === undefined)) {
			kv = kv.$get();
		}
		k = $internalize(jsType(t.Key()).keyFor(kv), $String);
		return [kv, k];
	};
	mapaccess = function(t, m, key) {
		var _tuple, entry, k, key, m, t;
		_tuple = keyFor(t, key);
		k = _tuple[1];
		entry = m.get($externalize(k, $String));
		if (entry === undefined) {
			return 0;
		}
		return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem()))));
	};
	mapIter.ptr.prototype.skipUntilValidKey = function() {
		var iter, k;
		iter = this;
		while (true) {
			if (!(iter.i < $parseInt(iter.keys.length))) { break; }
			k = iter.keys[iter.i];
			if (!(iter.m.get(k) === undefined)) {
				break;
			}
			iter.i = iter.i + (1) >> 0;
		}
	};
	mapIter.prototype.skipUntilValidKey = function() { return this.$val.skipUntilValidKey(); };
	mapiterinit = function(t, m) {
		var m, t;
		return (new mapIter.ptr(t, m, $global.Array.from(m.keys()), 0, null));
	};
	mapiterkey = function(it) {
		var {$24r, _r, _r$1, _r$2, it, iter, k, kv, $s, $r, $c} = $restore(this, {it});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		iter = ($pointerOfStructConversion(it, ptrType$9));
		kv = null;
		if (!(iter.last === null)) {
			kv = iter.last;
		} else {
			iter.skipUntilValidKey();
			if (iter.i === $parseInt(iter.keys.length)) {
				$s = -1; return 0;
			}
			k = iter.keys[iter.i];
			kv = iter.m.get(k);
			iter.last = kv;
		}
		_r = $assertType(iter.t, TypeEx).Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = ($newDataPointer(kv.k, _r$2));
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: mapiterkey, $c: true, $r, $24r, _r, _r$1, _r$2, it, iter, k, kv, $s};return $f;
	};
	mapiternext = function(it) {
		var it, iter;
		iter = ($pointerOfStructConversion(it, ptrType$9));
		iter.last = null;
		iter.i = iter.i + (1) >> 0;
	};
	maplen = function(m) {
		var m;
		return $parseInt(m.size) >> 0;
	};
	methodReceiver = function(op, v, i) {
		var _$12, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x;
		_$12 = ptrType$1.nil;
		t = ptrType$5.nil;
		fn = 0;
		prop = "";
		if (v.typ.Kind() === 20) {
			tt = (v.typ.kindType);
			if (i < 0 || i >= tt.methods.$length) {
				$panic(new $String("reflect: internal error: invalid method index"));
			}
			m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
			if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) {
				$panic(new $String("reflect: " + op + " of unexported method"));
			}
			t = (tt.rtype.typeOff(m.typ).kindType);
			prop = $clone(tt.rtype.nameOff(m.name), name).name();
		} else {
			ms = v.typ.exportedMethods();
			if (((i >>> 0)) >= ((ms.$length >>> 0))) {
				$panic(new $String("reflect: internal error: invalid method index"));
			}
			m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method);
			if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) {
				$panic(new $String("reflect: " + op + " of unexported method"));
			}
			t = (v.typ.typeOff(m$1.mtyp).kindType);
			prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String);
		}
		rcvr = $clone(v, Value).object();
		if (isWrapped(v.typ)) {
			rcvr = new (jsType(v.typ))(rcvr);
		}
		fn = (rcvr[$externalize(prop, $String)]);
		return [_$12, t, fn];
	};
	valueInterface = function(v) {
		var {_r, cv, v, $s, $r, $c} = $restore(this, {v});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (v.flag === 0) {
			$panic(new ValueError.ptr("reflect.Value.Interface", 0));
		}
		/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
			_r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			Value.copy(v, _r);
		/* } */ case 2:
		if (isWrapped(v.typ)) {
			if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) {
				cv = jsType(v.typ).zero();
				copyStruct(cv, $clone(v, Value).object(), v.typ);
				$s = -1; return ((new (jsType(v.typ))(cv)));
			}
			$s = -1; return ((new (jsType(v.typ))($clone(v, Value).object())));
		}
		$s = -1; return (($clone(v, Value).object()));
		/* */ } return; } var $f = {$blk: valueInterface, $c: true, $r, _r, cv, v, $s};return $f;
	};
	ifaceE2I = function(t, src, dst) {
		var dst, src, t;
		dst.$set(src);
	};
	methodName = function() {
		return "?FIXME?";
	};
	makeMethodValue = function(op, v) {
		var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fn = [fn];
		rcvr = [rcvr];
		if (((v.flag & 512) >>> 0) === 0) {
			$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));
		}
		_tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0);
		fn[0] = _tuple[2];
		rcvr[0] = $clone(v, Value).object();
		if (isWrapped(v.typ)) {
			rcvr[0] = new (jsType(v.typ))(rcvr[0]);
		}
		fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) {
			var arguments$1, this$1;
			return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8)));
		}; })(fn, rcvr));
		_r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: makeMethodValue, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f;
	};
	wrapJsObject = function(typ, val) {
		var typ, val;
		if ($interfaceIsEqual(typ, jsObjectPtr)) {
			return new (jsType(jsObjectPtr))(val);
		}
		return val;
	};
	unwrapJsObject = function(typ, val) {
		var typ, val;
		if ($interfaceIsEqual(typ, jsObjectPtr)) {
			return val.object;
		}
		return val;
	};
	getJsTag = function(tag) {
		var _tuple, i, name$1, qvalue, tag, value;
		while (true) {
			if (!(!(tag === ""))) { break; }
			i = 0;
			while (true) {
				if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; }
				i = i + (1) >> 0;
			}
			tag = $substring(tag, i);
			if (tag === "") {
				break;
			}
			i = 0;
			while (true) {
				if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; }
				i = i + (1) >> 0;
			}
			if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) {
				break;
			}
			name$1 = ($substring(tag, 0, i));
			tag = $substring(tag, (i + 1 >> 0));
			i = 1;
			while (true) {
				if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; }
				if (tag.charCodeAt(i) === 92) {
					i = i + (1) >> 0;
				}
				i = i + (1) >> 0;
			}
			if (i >= tag.length) {
				break;
			}
			qvalue = ($substring(tag, 0, (i + 1 >> 0)));
			tag = $substring(tag, (i + 1 >> 0));
			if (name$1 === "js") {
				_tuple = unquote(qvalue);
				value = _tuple[0];
				return value;
			}
		}
		return "";
	};
	PtrTo = function(t) {
		var t;
		return $assertType(t, ptrType$1).ptrTo();
	};
	$pkg.PtrTo = PtrTo;
	copyVal = function(typ, fl, ptr) {
		var c, fl, ptr, typ;
		if (ifaceIndir(typ)) {
			c = unsafe_New(typ);
			typedmemmove(typ, c, ptr);
			return new Value.ptr(typ, c, (fl | 128) >>> 0);
		}
		return new Value.ptr(typ, (ptr).$get(), fl);
	};
	Value.methods = [{prop: "pointer", name: "pointer", pkg: "internal/reflectlite", typ: $funcType([], [$UnsafePointer], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "numMethod", name: "numMethod", pkg: "internal/reflectlite", typ: $funcType([], [$Int], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "object", name: "object", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "internal/reflectlite", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "internal/reflectlite", typ: $funcType([$String, sliceType$6], [sliceType$6], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$13], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}];
	flag.methods = [{prop: "kind", name: "kind", pkg: "internal/reflectlite", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "internal/reflectlite", typ: $funcType([], [flag], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "internal/reflectlite", typ: $funcType([], [], false)}, {prop: "mustBe", name: "mustBe", pkg: "internal/reflectlite", typ: $funcType([Kind], [], false)}];
	ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "pointers", name: "pointers", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "chanDir", name: "chanDir", pkg: "internal/reflectlite", typ: $funcType([], [chanDir], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "kindType", name: "kindType", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [structField], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}, {prop: "nameOff", name: "nameOff", pkg: "internal/reflectlite", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "internal/reflectlite", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}];
	ptrType$11.methods = [{prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}];
	ptrType$12.methods = [{prop: "offset", name: "offset", pkg: "internal/reflectlite", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}];
	ptrType$13.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$4.methods = [{prop: "methods", name: "methods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$5], false)}];
	ptrType$5.methods = [{prop: "in$", name: "in", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "internal/reflectlite", typ: $funcType([], [sliceType$2], false)}];
	name.methods = [{prop: "data", name: "data", pkg: "internal/reflectlite", typ: $funcType([$Int, $String], [ptrType$6], false)}, {prop: "hasTag", name: "hasTag", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "internal/reflectlite", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "internal/reflectlite", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "internal/reflectlite", typ: $funcType([], [$Bool], false)}];
	ptrType$9.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "internal/reflectlite", typ: $funcType([], [], false)}];
	Value.init("internal/reflectlite", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]);
	ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]);
	Type.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]);
	rtype.init("internal/reflectlite", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]);
	method.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]);
	arrayType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	chanType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	imethod.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]);
	interfaceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$9, tag: ""}]);
	mapType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$3, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
	ptrType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
	sliceType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
	structField.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	structType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$10, tag: ""}]);
	errorString.init("internal/reflectlite", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]);
	Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]);
	uncommonType.init("internal/reflectlite", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]);
	funcType.init("internal/reflectlite", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]);
	name.init("internal/reflectlite", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$6, tag: ""}]);
	nameData.init("internal/reflectlite", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	mapIter.init("internal/reflectlite", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
	TypeEx.init([{prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "internal/reflectlite", typ: $funcType([], [ptrType$4], false)}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = goarch.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unsafeheader.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		uint8Type = ptrType$1.nil;
		nameOffList = sliceType$1.nil;
		typeOffList = sliceType$2.nil;
		kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]);
		callHelper = $assertType($internalize($call, $emptyInterface), funcType$1);
		$pkg.ErrSyntax = new errorString.ptr("invalid syntax");
		initialized = false;
		idJsType = "_jsType";
		idReflectType = "_reflectType";
		idKindType = "kindType";
		idRtype = "_rtype";
		uncommonTypeMap = new $global.Map();
		nameMap = new $global.Map();
		jsObjectPtr = reflectType($jsObjectPtr);
		selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1);
		$r = init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["errors"] = (function() {
	var $pkg = {}, $init, reflectlite, errorString, ptrType, ptrType$1, errorType, _r, New;
	reflectlite = $packages["internal/reflectlite"];
	errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.s = "";
			return;
		}
		this.s = s_;
	});
	ptrType = $ptrType($error);
	ptrType$1 = $ptrType(errorString);
	New = function(text) {
		var text;
		return new errorString.ptr(text);
	};
	$pkg.New = New;
	errorString.ptr.prototype.Error = function() {
		var e;
		e = this;
		return e.s;
	};
	errorString.prototype.Error = function() { return this.$val.Error(); };
	ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = reflectlite.TypeOf((ptrType.nil)).Elem(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		errorType = _r;
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/race"] = (function() {
	var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable;
	Acquire = function(addr) {
		var addr;
	};
	$pkg.Acquire = Acquire;
	Release = function(addr) {
		var addr;
	};
	$pkg.Release = Release;
	ReleaseMerge = function(addr) {
		var addr;
	};
	$pkg.ReleaseMerge = ReleaseMerge;
	Disable = function() {
	};
	$pkg.Disable = Disable;
	Enable = function() {
	};
	$pkg.Enable = Enable;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["sync/atomic"] = (function() {
	var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint64, StoreInt32, StoreUint32, sameType;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.v = $ifaceNil;
			return;
		}
		this.v = v_;
	});
	ptrType = $ptrType(Value);
	CompareAndSwapInt32 = function(addr, old, new$1) {
		var addr, new$1, old;
		if (addr.$get() === old) {
			addr.$set(new$1);
			return true;
		}
		return false;
	};
	$pkg.CompareAndSwapInt32 = CompareAndSwapInt32;
	CompareAndSwapUint64 = function(addr, old, new$1) {
		var addr, new$1, old, x;
		if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) {
			addr.$set(new$1);
			return true;
		}
		return false;
	};
	$pkg.CompareAndSwapUint64 = CompareAndSwapUint64;
	AddInt32 = function(addr, delta) {
		var addr, delta, new$1;
		new$1 = addr.$get() + delta >> 0;
		addr.$set(new$1);
		return new$1;
	};
	$pkg.AddInt32 = AddInt32;
	LoadInt32 = function(addr) {
		var addr;
		return addr.$get();
	};
	$pkg.LoadInt32 = LoadInt32;
	LoadUint64 = function(addr) {
		var addr;
		return addr.$get();
	};
	$pkg.LoadUint64 = LoadUint64;
	StoreInt32 = function(addr, val) {
		var addr, val;
		addr.$set(val);
	};
	$pkg.StoreInt32 = StoreInt32;
	StoreUint32 = function(addr, val) {
		var addr, val;
		addr.$set(val);
	};
	$pkg.StoreUint32 = StoreUint32;
	Value.ptr.prototype.Load = function() {
		var v, x;
		x = $ifaceNil;
		v = this;
		x = v.v;
		return x;
	};
	Value.prototype.Load = function() { return this.$val.Load(); };
	Value.ptr.prototype.Store = function(new$1) {
		var new$1, v;
		v = this;
		v.checkNew("store", new$1);
		v.v = new$1;
	};
	Value.prototype.Store = function(new$1) { return this.$val.Store(new$1); };
	Value.ptr.prototype.Swap = function(new$1) {
		var _tmp, _tmp$1, new$1, old, v;
		old = $ifaceNil;
		v = this;
		v.checkNew("swap", new$1);
		_tmp = v.v;
		_tmp$1 = new$1;
		old = _tmp;
		v.v = _tmp$1;
		old = old;
		return old;
	};
	Value.prototype.Swap = function(new$1) { return this.$val.Swap(new$1); };
	Value.ptr.prototype.CompareAndSwap = function(old, new$1) {
		var new$1, old, swapped, v;
		swapped = false;
		v = this;
		v.checkNew("compare and swap", new$1);
		if (!($interfaceIsEqual(v.v, $ifaceNil) && $interfaceIsEqual(old, $ifaceNil)) && !sameType(old, new$1)) {
			$panic(new $String("sync/atomic: compare and swap of inconsistently typed values into Value"));
		}
		if (!($interfaceIsEqual(v.v, old))) {
			swapped = false;
			return swapped;
		}
		v.v = new$1;
		swapped = true;
		return swapped;
	};
	Value.prototype.CompareAndSwap = function(old, new$1) { return this.$val.CompareAndSwap(old, new$1); };
	Value.ptr.prototype.checkNew = function(op, new$1) {
		var new$1, op, v;
		v = this;
		if ($interfaceIsEqual(new$1, $ifaceNil)) {
			$panic(new $String("sync/atomic: " + op + " of nil value into Value"));
		}
		if (!($interfaceIsEqual(v.v, $ifaceNil)) && !sameType(new$1, v.v)) {
			$panic(new $String("sync/atomic: " + op + " of inconsistently typed value into Value"));
		}
	};
	Value.prototype.checkNew = function(op, new$1) { return this.$val.checkNew(op, new$1); };
	sameType = function(x, y) {
		var x, y;
		return x.constructor === y.constructor;
	};
	ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "CompareAndSwap", name: "CompareAndSwap", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$Bool], false)}, {prop: "checkNew", name: "checkNew", pkg: "sync/atomic", typ: $funcType([$String, $emptyInterface], [], false)}];
	Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["sync"] = (function() {
	var $pkg = {}, $init, js, race, atomic, RWMutex, rlocker, notifyList, Mutex, Locker, Pool, ptrType$1, ptrType$2, ptrType$3, ptrType$4, chanType, sliceType$2, ptrType$15, sliceType$3, ptrType$18, funcType$2, expunged, semWaiters, semAwoken, init, runtime_doSpin, runtime_Semacquire, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	race = $packages["internal/race"];
	atomic = $packages["sync/atomic"];
	RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.w = new Mutex.ptr(0, 0);
			this.writerSem = 0;
			this.readerSem = 0;
			this.readerCount = 0;
			this.readerWait = 0;
			return;
		}
		this.w = w_;
		this.writerSem = writerSem_;
		this.readerSem = readerSem_;
		this.readerCount = readerCount_;
		this.readerWait = readerWait_;
	});
	rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.w = new Mutex.ptr(0, 0);
			this.writerSem = 0;
			this.readerSem = 0;
			this.readerCount = 0;
			this.readerWait = 0;
			return;
		}
		this.w = w_;
		this.writerSem = writerSem_;
		this.readerSem = readerSem_;
		this.readerCount = readerCount_;
		this.readerWait = readerWait_;
	});
	notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.wait = 0;
			this.notify = 0;
			this.lock = 0;
			this.head = 0;
			this.tail = 0;
			return;
		}
		this.wait = wait_;
		this.notify = notify_;
		this.lock = lock_;
		this.head = head_;
		this.tail = tail_;
	});
	Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.state = 0;
			this.sema = 0;
			return;
		}
		this.state = state_;
		this.sema = sema_;
	});
	Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null);
	Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(store_, New_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.store = sliceType$3.nil;
			this.New = $throwNilPointerError;
			return;
		}
		this.store = store_;
		this.New = New_;
	});
	ptrType$1 = $ptrType($Uint32);
	ptrType$2 = $ptrType($Int32);
	ptrType$3 = $ptrType(rlocker);
	ptrType$4 = $ptrType(RWMutex);
	chanType = $chanType($Bool, false, false);
	sliceType$2 = $sliceType(chanType);
	ptrType$15 = $ptrType(Mutex);
	sliceType$3 = $sliceType($emptyInterface);
	ptrType$18 = $ptrType(Pool);
	funcType$2 = $funcType([], [$emptyInterface], false);
	RWMutex.ptr.prototype.RLock = function() {
		var {rw, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.Disable();
		}
		/* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1:
			$r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		if (false) {
			race.Enable();
			race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
		}
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.RLock, $c: true, $r, rw, $s};return $f;
	};
	RWMutex.prototype.RLock = function() { return this.$val.RLock(); };
	RWMutex.ptr.prototype.TryRLock = function() {
		var c, rw;
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.Disable();
		}
		while (true) {
			c = atomic.LoadInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))));
			if (c < 0) {
				if (false) {
					race.Enable();
				}
				return false;
			}
			if (atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), c, c + 1 >> 0)) {
				if (false) {
					race.Enable();
					race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
				}
				return true;
			}
		}
	};
	RWMutex.prototype.TryRLock = function() { return this.$val.TryRLock(); };
	RWMutex.ptr.prototype.RUnlock = function() {
		var {r, rw, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))));
			race.Disable();
		}
		r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1);
		/* */ if (r < 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (r < 0) { */ case 1:
			$r = rw.rUnlockSlow(r); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		if (false) {
			race.Enable();
		}
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.RUnlock, $c: true, $r, r, rw, $s};return $f;
	};
	RWMutex.prototype.RUnlock = function() { return this.$val.RUnlock(); };
	RWMutex.ptr.prototype.rUnlockSlow = function(r) {
		var {r, rw, $s, $r, $c} = $restore(this, {r});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) {
			race.Enable();
			throw$1("sync: RUnlock of unlocked RWMutex");
		}
		/* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 1:
			$r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.rUnlockSlow, $c: true, $r, r, rw, $s};return $f;
	};
	RWMutex.prototype.rUnlockSlow = function(r) { return this.$val.rUnlockSlow(r); };
	RWMutex.ptr.prototype.Lock = function() {
		var {r, rw, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.Disable();
		}
		$r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0;
		/* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$2(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2:
			$r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false, 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 3:
		if (false) {
			race.Enable();
			race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
			race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))));
		}
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.Lock, $c: true, $r, r, rw, $s};return $f;
	};
	RWMutex.prototype.Lock = function() { return this.$val.Lock(); };
	RWMutex.ptr.prototype.TryLock = function() {
		var {rw, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.Disable();
		}
		if (!rw.w.TryLock()) {
			if (false) {
				race.Enable();
			}
			$s = -1; return false;
		}
		/* */ if (!atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 0, -1073741824)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!atomic.CompareAndSwapInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 0, -1073741824)) { */ case 1:
			$r = rw.w.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			if (false) {
				race.Enable();
			}
			$s = -1; return false;
		/* } */ case 2:
		if (false) {
			race.Enable();
			race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
			race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw)))));
		}
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.TryLock, $c: true, $r, rw, $s};return $f;
	};
	RWMutex.prototype.TryLock = function() { return this.$val.TryLock(); };
	RWMutex.ptr.prototype.Unlock = function() {
		var {i, r, rw, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		rw = this;
		if (false) {
			$unused(rw.w.state);
			race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw)))));
			race.Disable();
		}
		r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$2(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824);
		if (r >= 1073741824) {
			race.Enable();
			throw$1("sync: Unlock of unlocked RWMutex");
		}
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 2; continue; }
			$r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false, 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$r = rw.w.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (false) {
			race.Enable();
		}
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RWMutex.ptr.prototype.Unlock, $c: true, $r, i, r, rw, $s};return $f;
	};
	RWMutex.prototype.Unlock = function() { return this.$val.Unlock(); };
	RWMutex.ptr.prototype.RLocker = function() {
		var rw;
		rw = this;
		return ($pointerOfStructConversion(rw, ptrType$3));
	};
	RWMutex.prototype.RLocker = function() { return this.$val.RLocker(); };
	rlocker.ptr.prototype.Lock = function() {
		var {r, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		r = this;
		$r = ($pointerOfStructConversion(r, ptrType$4)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: rlocker.ptr.prototype.Lock, $c: true, $r, r, $s};return $f;
	};
	rlocker.prototype.Lock = function() { return this.$val.Lock(); };
	rlocker.ptr.prototype.Unlock = function() {
		var {r, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		r = this;
		$r = ($pointerOfStructConversion(r, ptrType$4)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: rlocker.ptr.prototype.Unlock, $c: true, $r, r, $s};return $f;
	};
	rlocker.prototype.Unlock = function() { return this.$val.Unlock(); };
	init = function() {
		var n;
		n = new notifyList.ptr(0, 0, 0, 0, 0);
		runtime_notifyListCheck(20);
	};
	runtime_doSpin = function() {
		$throwRuntimeError("native function not implemented: sync.runtime_doSpin");
	};
	Mutex.ptr.prototype.Lock = function() {
		var {m, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) {
			if (false) {
				race.Acquire((m));
			}
			$s = -1; return;
		}
		$r = m.lockSlow(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Mutex.ptr.prototype.Lock, $c: true, $r, m, $s};return $f;
	};
	Mutex.prototype.Lock = function() { return this.$val.Lock(); };
	Mutex.ptr.prototype.TryLock = function() {
		var m, old;
		m = this;
		old = m.state;
		if (!(((old & 5) === 0))) {
			return false;
		}
		if (!atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 1)) {
			return false;
		}
		if (false) {
			race.Acquire((m));
		}
		return true;
	};
	Mutex.prototype.TryLock = function() { return this.$val.TryLock(); };
	Mutex.ptr.prototype.lockSlow = function() {
		var {awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		waitStartTime = new $Int64(0, 0);
		starving = false;
		awoke = false;
		iter = 0;
		old = m.state;
		/* while (true) { */ case 1:
			/* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3:
				if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) {
					awoke = true;
				}
				$r = runtime_doSpin(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				iter = iter + (1) >> 0;
				old = m.state;
				/* continue; */ $s = 1; continue;
			/* } */ case 4:
			new$1 = old;
			if ((old & 4) === 0) {
				new$1 = new$1 | (1);
			}
			if (!(((old & 5) === 0))) {
				new$1 = new$1 + (8) >> 0;
			}
			if (starving && !(((old & 1) === 0))) {
				new$1 = new$1 | (4);
			}
			if (awoke) {
				if ((new$1 & 2) === 0) {
					throw$1("sync: inconsistent mutex state");
				}
				new$1 = (new$1 & ~(2)) >> 0;
			}
			/* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6:
				if ((old & 5) === 0) {
					/* break; */ $s = 2; continue;
				}
				queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0));
				if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) {
					waitStartTime = runtime_nanotime();
				}
				$r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo, 1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000)));
				old = m.state;
				if (!(((old & 4) === 0))) {
					if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) {
						throw$1("sync: inconsistent mutex state");
					}
					delta = -7;
					if (!starving || ((old >> 3 >> 0) === 1)) {
						delta = delta - (4) >> 0;
					}
					atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta);
					/* break; */ $s = 2; continue;
				}
				awoke = true;
				iter = 0;
				$s = 8; continue;
			/* } else { */ case 7:
				old = m.state;
			/* } */ case 8:
		$s = 1; continue;
		case 2:
		if (false) {
			race.Acquire((m));
		}
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Mutex.ptr.prototype.lockSlow, $c: true, $r, awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s};return $f;
	};
	Mutex.prototype.lockSlow = function() { return this.$val.lockSlow(); };
	Mutex.ptr.prototype.Unlock = function() {
		var {m, new$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (false) {
			$unused(m.state);
			race.Release((m));
		}
		new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1);
		/* */ if (!((new$1 === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((new$1 === 0))) { */ case 1:
			$r = m.unlockSlow(new$1); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Mutex.ptr.prototype.Unlock, $c: true, $r, m, new$1, $s};return $f;
	};
	Mutex.prototype.Unlock = function() { return this.$val.Unlock(); };
	Mutex.ptr.prototype.unlockSlow = function(new$1) {
		var {m, new$1, old, $s, $r, $c} = $restore(this, {new$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if ((((new$1 + 1 >> 0)) & 1) === 0) {
			throw$1("sync: unlock of unlocked mutex");
		}
		/* */ if ((new$1 & 4) === 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((new$1 & 4) === 0) { */ case 1:
			old = new$1;
			/* while (true) { */ case 4:
				if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) {
					$s = -1; return;
				}
				new$1 = ((old - 8 >> 0)) | 2;
				/* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$2(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6:
					$r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false, 1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
				/* } */ case 7:
				old = m.state;
			$s = 4; continue;
			case 5:
			$s = 3; continue;
		/* } else { */ case 2:
			$r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true, 1); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 3:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Mutex.ptr.prototype.unlockSlow, $c: true, $r, m, new$1, old, $s};return $f;
	};
	Mutex.prototype.unlockSlow = function(new$1) { return this.$val.unlockSlow(new$1); };
	runtime_Semacquire = function(s) {
		var {s, $s, $r, $c} = $restore(this, {s});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = runtime_SemacquireMutex(s, false, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: runtime_Semacquire, $c: true, $r, s, $s};return $f;
	};
	$linknames["sync.runtime_Semacquire"] = runtime_Semacquire;
	runtime_SemacquireMutex = function(s, lifo, skipframes) {
		var {_entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s, $r, $c} = $restore(this, {s, lifo, skipframes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* */ if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (((s.$get() - (_entry = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1:
			ch = new $Chan($Bool, 0);
			if (lifo) {
				_key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: $appendSlice(new sliceType$2([ch]), (_entry$1 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : sliceType$2.nil)) });
			} else {
				_key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: $append((_entry$2 = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry$2 !== undefined ? _entry$2.v : sliceType$2.nil), ch) });
			}
			_r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_r[0];
			_key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$2), { k: _key$2, v: (_entry$3 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 });
			if ((_entry$4 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$4 !== undefined ? _entry$4.v : 0) === 0) {
				$mapDelete(semAwoken, ptrType$1.keyFor(s));
			}
		/* } */ case 2:
		s.$set(s.$get() - (1) >>> 0);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: runtime_SemacquireMutex, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, skipframes, $s};return $f;
	};
	runtime_Semrelease = function(s, handoff, skipframes) {
		var {_entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s, $r, $c} = $restore(this, {s, handoff, skipframes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s.$set(s.$get() + (1) >>> 0);
		w = (_entry = $mapIndex(semWaiters,ptrType$1.keyFor(s)), _entry !== undefined ? _entry.v : sliceType$2.nil);
		if (w.$length === 0) {
			$s = -1; return;
		}
		ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]);
		w = $subslice(w, 1);
		_key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key), { k: _key, v: w });
		if (w.$length === 0) {
			$mapDelete(semWaiters, ptrType$1.keyFor(s));
		}
		_key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$1.keyFor(_key$1), { k: _key$1, v: (_entry$1 = $mapIndex(semAwoken,ptrType$1.keyFor(s)), _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 });
		$r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: runtime_Semrelease, $c: true, $r, _entry, _entry$1, _key, _key$1, ch, handoff, s, skipframes, w, $s};return $f;
	};
	$linknames["sync.runtime_Semrelease"] = runtime_Semrelease;
	runtime_notifyListCheck = function(size) {
		var size;
	};
	runtime_canSpin = function(i) {
		var i;
		return false;
	};
	runtime_nanotime = function() {
		return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000));
	};
	throw$1 = function(s) {
		var s;
		$throwRuntimeError($externalize(s, $String));
	};
	Pool.ptr.prototype.Get = function() {
		var {$24r, _r, p, x, x$1, x$2, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		/* */ if (p.store.$length === 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (p.store.$length === 0) { */ case 1:
			/* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!(p.New === $throwNilPointerError)) { */ case 3:
				_r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 6; case 6: return $24r;
			/* } */ case 4:
			$s = -1; return $ifaceNil;
		/* } */ case 2:
		x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
		p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0));
		$s = -1; return x$2;
		/* */ } return; } var $f = {$blk: Pool.ptr.prototype.Get, $c: true, $r, $24r, _r, p, x, x$1, x$2, $s};return $f;
	};
	Pool.prototype.Get = function() { return this.$val.Get(); };
	Pool.ptr.prototype.Put = function(x) {
		var p, x;
		p = this;
		if ($interfaceIsEqual(x, $ifaceNil)) {
			return;
		}
		p.store = $append(p.store, x);
	};
	Pool.prototype.Put = function(x) { return this.$val.Put(x); };
	ptrType$4.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryRLock", name: "TryRLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "rUnlockSlow", name: "rUnlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}];
	ptrType$3.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}];
	ptrType$15.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "TryLock", name: "TryLock", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "lockSlow", name: "lockSlow", pkg: "sync", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "unlockSlow", name: "unlockSlow", pkg: "sync", typ: $funcType([$Int32], [], false)}];
	ptrType$18.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}];
	RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]);
	rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]);
	notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]);
	Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
	Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]);
	Pool.init("sync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		expunged = (new Uint8Array(8));
		semWaiters = new $global.Map();
		semAwoken = new $global.Map();
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/gopherjs/gopherjs/nosync"] = (function() {
	var $pkg = {}, $init, Once, funcType$1, ptrType$1;
	Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.doing = false;
			this.done = false;
			return;
		}
		this.doing = doing_;
		this.done = done_;
	});
	funcType$1 = $funcType([], [], false);
	ptrType$1 = $ptrType(Once);
	Once.ptr.prototype.Do = function(f) {
		var {f, o, $s, $deferred, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		o = [o];
		o[0] = this;
		/* */ if (o[0].done) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (o[0].done) { */ case 1:
			$s = 3; case 3: return;
		/* } */ case 2:
		if (o[0].doing) {
			$panic(new $String("nosync: Do called within f"));
		}
		o[0].doing = true;
		$deferred.push([(function(o) { return function() {
			o[0].doing = false;
			o[0].done = true;
		}; })(o), []]);
		$r = f(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Once.ptr.prototype.Do, $c: true, $r, f, o, $s, $deferred};return $f; } }
	};
	Once.prototype.Do = function(f) { return this.$val.Do(f); };
	ptrType$1.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}];
	Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/itoa"] = (function() {
	var $pkg = {}, $init, arrayType, sliceType, Itoa, Uitoa;
	arrayType = $arrayType($Uint8, 20);
	sliceType = $sliceType($Uint8);
	Itoa = function(val) {
		var val;
		if (val < 0) {
			return "-" + Uitoa(((-val >>> 0)));
		}
		return Uitoa(((val >>> 0)));
	};
	$pkg.Itoa = Itoa;
	Uitoa = function(val) {
		var _q, buf, i, q, val;
		if (val === 0) {
			return "0";
		}
		buf = arrayType.zero();
		i = 19;
		while (true) {
			if (!(val >= 10)) { break; }
			q = (_q = val / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
			((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + val >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24)));
			i = i - (1) >> 0;
			val = q;
		}
		((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + val >>> 0) << 24 >>> 24)));
		return ($bytesToString($subslice(new sliceType(buf), i)));
	};
	$pkg.Uitoa = Uitoa;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/oserror"] = (function() {
	var $pkg = {}, $init, errors;
	errors = $packages["errors"];
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ErrInvalid = errors.New("invalid argument");
		$pkg.ErrPermission = errors.New("permission denied");
		$pkg.ErrExist = errors.New("file already exists");
		$pkg.ErrNotExist = errors.New("file does not exist");
		$pkg.ErrClosed = errors.New("file already closed");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["syscall/js"] = (function() {
	var $pkg = {}, $init, js, Type, Func, Error, Value, ValueError, sliceType, funcType, arrayType, sliceType$1, mapType, sliceType$2, ptrType, sliceType$3, ptrType$1, ptrType$2, typeNames, id, instanceOf, typeOf, Global, Null, Undefined, FuncOf, objectToValue, init, getValueType, ValueOf, convertArgs, convertJSError, CopyBytesToGo, CopyBytesToJS;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	Type = $pkg.Type = $newType(4, $kindInt, "js.Type", true, "syscall/js", true, null);
	Func = $pkg.Func = $newType(0, $kindStruct, "js.Func", true, "syscall/js", true, function(Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Value = new Value.ptr(null, false, arrayType.zero());
			return;
		}
		this.Value = Value_;
	});
	Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "syscall/js", true, function(Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Value = new Value.ptr(null, false, arrayType.zero());
			return;
		}
		this.Value = Value_;
	});
	Value = $pkg.Value = $newType(0, $kindStruct, "js.Value", true, "syscall/js", true, function(v_, inited_, _$2_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.v = null;
			this.inited = false;
			this._$2 = arrayType.zero();
			return;
		}
		this.v = v_;
		this.inited = inited_;
		this._$2 = _$2_;
	});
	ValueError = $pkg.ValueError = $newType(0, $kindStruct, "js.ValueError", true, "syscall/js", true, function(Method_, Type_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Method = "";
			this.Type = 0;
			return;
		}
		this.Method = Method_;
		this.Type = Type_;
	});
	sliceType = $sliceType($String);
	funcType = $funcType([], [], false);
	arrayType = $arrayType(funcType, 0);
	sliceType$1 = $sliceType(Value);
	mapType = $mapType($String, $emptyInterface);
	sliceType$2 = $sliceType($emptyInterface);
	ptrType = $ptrType(js.Error);
	sliceType$3 = $sliceType($Uint8);
	ptrType$1 = $ptrType(js.Object);
	ptrType$2 = $ptrType(ValueError);
	Type.prototype.String = function() {
		var t;
		t = this.$val;
		if (((t >> 0)) < 0 || typeNames.$length <= ((t >> 0))) {
			$panic(new $String("bad type"));
		}
		return ((t < 0 || t >= typeNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeNames.$array[typeNames.$offset + t]);
	};
	$ptrType(Type).prototype.String = function() { return new Type(this.$get()).String(); };
	Type.prototype.isObject = function() {
		var t;
		t = this.$val;
		return (t === 6) || (t === 7);
	};
	$ptrType(Type).prototype.isObject = function() { return new Type(this.$get()).isObject(); };
	Global = function() {
		return objectToValue($global);
	};
	$pkg.Global = Global;
	Null = function() {
		return objectToValue(null);
	};
	$pkg.Null = Null;
	Undefined = function() {
		return objectToValue(undefined);
	};
	$pkg.Undefined = Undefined;
	Func.ptr.prototype.Release = function() {
		var f;
		f = this;
		$exportedFunctions = ($parseInt($exportedFunctions) >> 0) - 1 >> 0;
		Value.copy(f.Value, Null());
	};
	Func.prototype.Release = function() { return this.$val.Release(); };
	FuncOf = function(fn) {
		var fn;
		$exportedFunctions = ($parseInt($exportedFunctions) >> 0) + 1 >> 0;
		return new Func.ptr($clone(objectToValue(js.MakeFunc((function $b(this$1, args) {
			var {$24r, _i, _r, _ref, a, args, i, this$1, vargs, $s, $r, $c} = $restore(this, {this$1, args});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			vargs = $makeSlice(sliceType$1, args.$length);
			_ref = args;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				i = _i;
				a = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				Value.copy(((i < 0 || i >= vargs.$length) ? ($throwRuntimeError("index out of range"), undefined) : vargs.$array[vargs.$offset + i]), objectToValue(a));
				_i++;
			}
			_r = fn($clone(objectToValue(this$1), Value), vargs); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 2; case 2: return $24r;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _i, _r, _ref, a, args, i, this$1, vargs, $s};return $f;
		}))), Value));
	};
	$pkg.FuncOf = FuncOf;
	Error.ptr.prototype.Error = function() {
		var e;
		e = this;
		return "JavaScript error: " + $clone($clone(e.Value, Value).Get("message"), Value).String();
	};
	Error.prototype.Error = function() { return this.$val.Error(); };
	objectToValue = function(obj) {
		var obj;
		if (obj === undefined) {
			return new Value.ptr(null, false, arrayType.zero());
		}
		return new Value.ptr(obj, true, arrayType.zero());
	};
	init = function() {
		if (!($global === null)) {
			id = $id;
			instanceOf = $instanceOf;
			typeOf = $typeOf;
		}
	};
	getValueType = function(obj) {
		var _i, _ref, name, name2, obj, type2;
		if (obj === null) {
			return 1;
		}
		name = $internalize(typeOf(obj), $String);
		_ref = typeNames;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			type2 = _i;
			name2 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			if (name === name2) {
				return ((type2 >> 0));
			}
			_i++;
		}
		return 6;
	};
	ValueOf = function(x) {
		var _ref, x, x$1, x$2, x$3, x$4, x$5;
		_ref = x;
		if ($assertType(_ref, Value, true)[1]) {
			x$1 = $clone(_ref.$val, Value);
			return x$1;
		} else if ($assertType(_ref, Func, true)[1]) {
			x$2 = $clone(_ref.$val, Func);
			return x$2.Value;
		} else if (_ref === $ifaceNil) {
			x$3 = _ref;
			return Null();
		} else if ($assertType(_ref, $Bool, true)[1] || $assertType(_ref, $Int, true)[1] || $assertType(_ref, $Int8, true)[1] || $assertType(_ref, $Int16, true)[1] || $assertType(_ref, $Int32, true)[1] || $assertType(_ref, $Int64, true)[1] || $assertType(_ref, $Uint, true)[1] || $assertType(_ref, $Uint8, true)[1] || $assertType(_ref, $Uint16, true)[1] || $assertType(_ref, $Uint32, true)[1] || $assertType(_ref, $Uint64, true)[1] || $assertType(_ref, $Float32, true)[1] || $assertType(_ref, $Float64, true)[1] || $assertType(_ref, $UnsafePointer, true)[1] || $assertType(_ref, $String, true)[1] || $assertType(_ref, mapType, true)[1] || $assertType(_ref, sliceType$2, true)[1]) {
			x$4 = _ref;
			return objectToValue(id($externalize(x$4, $emptyInterface)));
		} else {
			x$5 = _ref;
			$panic(new $String("ValueOf: invalid value"));
		}
	};
	$pkg.ValueOf = ValueOf;
	Value.ptr.prototype.internal = function() {
		var v;
		v = this;
		if (!v.inited) {
			return undefined;
		}
		return v.v;
	};
	Value.prototype.internal = function() { return this.$val.internal(); };
	Value.ptr.prototype.Bool = function() {
		var v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!((vType === 2))) {
			$panic(new ValueError.ptr("Value.Bool", vType));
		}
		return !!($clone(v, Value).internal());
	};
	Value.prototype.Bool = function() { return this.$val.Bool(); };
	convertArgs = function(args) {
		var _i, _ref, arg, args, newArgs, v;
		newArgs = new sliceType$2([]);
		_ref = args;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			v = $clone(ValueOf(arg), Value);
			newArgs = $append(newArgs, new $jsObjectPtr($clone(v, Value).internal()));
			_i++;
		}
		return newArgs;
	};
	convertJSError = function() {
		var _tuple, err, jsErr, ok, x;
		err = $recover();
		if ($interfaceIsEqual(err, $ifaceNil)) {
			return;
		}
		_tuple = $assertType(err, ptrType, true);
		jsErr = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			$panic((x = new Error.ptr($clone(objectToValue(jsErr.Object), Value)), new x.constructor.elem(x)));
		}
		$panic(err);
	};
	Value.ptr.prototype.Call = function(m, args) {
		var {$24r, args, m, obj, propType, v, vType, $s, $deferred, $r, $c} = $restore(this, {m, args});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		v = this;
		vType = $clone(v, Value).Type();
		if (!((vType === 6)) && !((vType === 7))) {
			$panic(new ValueError.ptr("Value.Call", vType));
		}
		propType = $clone($clone(v, Value).Get(m), Value).Type();
		if (!((propType === 7))) {
			$panic(new $String("js: Value.Call: property " + m + " is not a function, got " + new Type(propType).String()));
		}
		$deferred.push([convertJSError, []]);
		$24r = objectToValue((obj = $clone(v, Value).internal(), obj[$externalize(m, $String)].apply(obj, $externalize(convertArgs(args), sliceType$2))));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new Value.ptr(null, false, arrayType.zero()); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Value.ptr.prototype.Call, $c: true, $r, $24r, args, m, obj, propType, v, vType, $s, $deferred};return $f; } }
	};
	Value.prototype.Call = function(m, args) { return this.$val.Call(m, args); };
	Value.ptr.prototype.Float = function() {
		var v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!((vType === 3))) {
			$panic(new ValueError.ptr("Value.Float", vType));
		}
		return $parseFloat($clone(v, Value).internal());
	};
	Value.prototype.Float = function() { return this.$val.Float(); };
	Value.ptr.prototype.Get = function(p) {
		var p, v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!new Type(vType).isObject()) {
			$panic(new ValueError.ptr("Value.Get", vType));
		}
		return objectToValue($clone(v, Value).internal()[$externalize(p, $String)]);
	};
	Value.prototype.Get = function(p) { return this.$val.Get(p); };
	Value.ptr.prototype.Index = function(i) {
		var i, v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!new Type(vType).isObject()) {
			$panic(new ValueError.ptr("Value.Index", vType));
		}
		return objectToValue($clone(v, Value).internal()[i]);
	};
	Value.prototype.Index = function(i) { return this.$val.Index(i); };
	Value.ptr.prototype.Int = function() {
		var v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!((vType === 3))) {
			$panic(new ValueError.ptr("Value.Int", vType));
		}
		return $parseInt($clone(v, Value).internal()) >> 0;
	};
	Value.prototype.Int = function() { return this.$val.Int(); };
	Value.ptr.prototype.InstanceOf = function(t) {
		var t, v;
		v = this;
		return !!(instanceOf($clone(v, Value).internal(), $clone(t, Value).internal()));
	};
	Value.prototype.InstanceOf = function(t) { return this.$val.InstanceOf(t); };
	Value.ptr.prototype.Invoke = function(args) {
		var args, v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!((vType === 7))) {
			$panic(new ValueError.ptr("Value.Invoke", vType));
		}
		return objectToValue($clone(v, Value).internal().apply(undefined, $externalize(convertArgs(args), sliceType$2)));
	};
	Value.prototype.Invoke = function(args) { return this.$val.Invoke(args); };
	Value.ptr.prototype.JSValue = function() {
		var v;
		v = this;
		return v;
	};
	Value.prototype.JSValue = function() { return this.$val.JSValue(); };
	Value.ptr.prototype.Length = function() {
		var v;
		v = this;
		return $parseInt($clone(v, Value).internal().length);
	};
	Value.prototype.Length = function() { return this.$val.Length(); };
	Value.ptr.prototype.New = function(args) {
		var {$24r, args, v, $s, $deferred, $r, $c} = $restore(this, {args});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		v = [v];
		v[0] = this;
		$deferred.push([(function(v) { return function() {
			var _tuple, err, jsErr, ok, vType, x;
			err = $recover();
			if ($interfaceIsEqual(err, $ifaceNil)) {
				return;
			}
			vType = $clone(v[0], Value).Type();
			if (!((vType === 7))) {
				$panic(new ValueError.ptr("Value.New", vType));
			}
			_tuple = $assertType(err, ptrType, true);
			jsErr = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				$panic((x = new Error.ptr($clone(objectToValue(jsErr.Object), Value)), new x.constructor.elem(x)));
			}
			$panic(err);
		}; })(v), []]);
		$24r = objectToValue(new ($global.Function.prototype.bind.apply($clone(v[0], Value).internal(), [undefined].concat($externalize(convertArgs(args), sliceType$2)))));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new Value.ptr(null, false, arrayType.zero()); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Value.ptr.prototype.New, $c: true, $r, $24r, args, v, $s, $deferred};return $f; } }
	};
	Value.prototype.New = function(args) { return this.$val.New(args); };
	Value.ptr.prototype.Set = function(p, x) {
		var p, v, vType, x, x$1;
		v = this;
		vType = $clone(v, Value).Type();
		if (!new Type(vType).isObject()) {
			$panic(new ValueError.ptr("Value.Set", vType));
		}
		$clone(v, Value).internal()[$externalize(p, $String)] = $externalize((x$1 = convertArgs(new sliceType$2([x])), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $emptyInterface);
	};
	Value.prototype.Set = function(p, x) { return this.$val.Set(p, x); };
	Value.ptr.prototype.SetIndex = function(i, x) {
		var i, v, vType, x, x$1;
		v = this;
		vType = $clone(v, Value).Type();
		if (!new Type(vType).isObject()) {
			$panic(new ValueError.ptr("Value.SetIndex", vType));
		}
		$clone(v, Value).internal()[i] = $externalize((x$1 = convertArgs(new sliceType$2([x])), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $emptyInterface);
	};
	Value.prototype.SetIndex = function(i, x) { return this.$val.SetIndex(i, x); };
	Value.ptr.prototype.String = function() {
		var _1, v;
		v = this;
		_1 = $clone(v, Value).Type();
		if (_1 === (4)) {
			return $internalize($clone(v, Value).internal(), $String);
		} else if (_1 === (0)) {
			return "<undefined>";
		} else if (_1 === (1)) {
			return "<null>";
		} else if (_1 === (2)) {
			return "<boolean: " + $internalize($clone(v, Value).internal(), $String) + ">";
		} else if (_1 === (3)) {
			return "<number: " + $internalize($clone(v, Value).internal(), $String) + ">";
		} else if (_1 === (5)) {
			return "<symbol>";
		} else if (_1 === (6)) {
			return "<object>";
		} else if (_1 === (7)) {
			return "<function>";
		} else {
			$panic(new $String("bad type"));
		}
	};
	Value.prototype.String = function() { return this.$val.String(); };
	Value.ptr.prototype.Truthy = function() {
		var v;
		v = this;
		return !!($clone(v, Value).internal());
	};
	Value.prototype.Truthy = function() { return this.$val.Truthy(); };
	Value.ptr.prototype.Type = function() {
		var v;
		v = this;
		return (getValueType($clone(v, Value).internal()));
	};
	Value.prototype.Type = function() { return this.$val.Type(); };
	Value.ptr.prototype.IsNull = function() {
		var v;
		v = this;
		return $clone(v, Value).Type() === 1;
	};
	Value.prototype.IsNull = function() { return this.$val.IsNull(); };
	Value.ptr.prototype.IsUndefined = function() {
		var v;
		v = this;
		return !v.inited;
	};
	Value.prototype.IsUndefined = function() { return this.$val.IsUndefined(); };
	Value.ptr.prototype.IsNaN = function() {
		var v;
		v = this;
		return !!($global.isNaN($clone(v, Value).internal()));
	};
	Value.prototype.IsNaN = function() { return this.$val.IsNaN(); };
	Value.ptr.prototype.Delete = function(p) {
		var p, v, vType;
		v = this;
		vType = $clone(v, Value).Type();
		if (!new Type(vType).isObject()) {
			$panic(new ValueError.ptr("Value.Delete", vType));
		}
		delete $clone(v, Value).internal()[$externalize(p, $String)];
	};
	Value.prototype.Delete = function(p) { return this.$val.Delete(p); };
	Value.ptr.prototype.Equal = function(w) {
		var v, w;
		v = this;
		return $clone(v, Value).internal() === $clone(w, Value).internal();
	};
	Value.prototype.Equal = function(w) { return this.$val.Equal(w); };
	ValueError.ptr.prototype.Error = function() {
		var e;
		e = this;
		return "syscall/js: call of " + e.Method + " on " + new Type(e.Type).String();
	};
	ValueError.prototype.Error = function() { return this.$val.Error(); };
	CopyBytesToGo = function(dst, src) {
		var dlen, dst, src, vlen;
		vlen = $parseInt(src.v.length);
		dlen = dst.$length;
		if (dlen < vlen) {
			vlen = dlen;
		}
		$copySlice(dst, $assertType($internalize(src.v, $emptyInterface), sliceType$3));
		return vlen;
	};
	$pkg.CopyBytesToGo = CopyBytesToGo;
	CopyBytesToJS = function(dst, src) {
		var _tuple, dst, dt, ok, src;
		_tuple = $assertType($internalize(dst.v, $emptyInterface), sliceType$3, true);
		dt = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			$panic(new $String("syscall/js: CopyBytesToJS: expected dst to be an Uint8Array"));
		}
		return $copySlice(dt, src);
	};
	$pkg.CopyBytesToJS = CopyBytesToJS;
	Type.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "isObject", name: "isObject", pkg: "syscall/js", typ: $funcType([], [$Bool], false)}];
	Func.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
	Error.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	Value.methods = [{prop: "internal", name: "internal", pkg: "syscall/js", typ: $funcType([], [ptrType$1], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$2], [Value], true)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "InstanceOf", name: "InstanceOf", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType$2], [Value], true)}, {prop: "JSValue", name: "JSValue", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType$2], [Value], true)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Truthy", name: "Truthy", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "IsNull", name: "IsNull", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsUndefined", name: "IsUndefined", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsNaN", name: "IsNaN", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Value], [$Bool], false)}];
	ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	Func.init("", [{prop: "Value", name: "Value", embedded: true, exported: true, typ: Value, tag: ""}]);
	Error.init("", [{prop: "Value", name: "Value", embedded: true, exported: true, typ: Value, tag: ""}]);
	Value.init("syscall/js", [{prop: "v", name: "v", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "inited", name: "inited", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "_$2", name: "_", embedded: false, exported: false, typ: arrayType, tag: ""}]);
	ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		id = null;
		instanceOf = null;
		typeOf = null;
		typeNames = new sliceType(["undefined", "null", "boolean", "number", "string", "symbol", "object", "function"]);
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["syscall"] = (function() {
	var $pkg = {}, $init, errors, itoa, oserror, runtime, sync, js, Errno, Stat_t, Iovec, Sockaddr, SockaddrInet4, SockaddrInet6, RawConn, jsFile, callResult, sliceType, sliceType$2, ptrType, funcType, arrayType$2, ptrType$2, arrayType$3, arrayType$4, funcType$1, funcType$2, errorstr, errEAGAIN, errEINVAL, errENOENT, errnoByCode, jsProcess, jsFS, constants, uint8Array, nodeWRONLY, nodeRDWR, nodeCREATE, nodeTRUNC, nodeAPPEND, nodeEXCL, filesMu, files, envs, _r, faketimeWrite, errnoErr, StopIO, Accept, Recvfrom, Sendto, Recvmsg, SendmsgN, SetReadDeadline, SetWriteDeadline, Shutdown, SetNonblock, runtime_envs, setStat, fsCall, fdToFile, Close, CloseOnExec, ReadDirent, Lstat, Fstat, Fchmod, Fchown, Ftruncate, Chdir, Fchdir, Fsync, Read, Write, Pread, Pwrite, Seek, Dup, checkPath, recoverErr, mapJSError;
	errors = $packages["errors"];
	itoa = $packages["internal/itoa"];
	oserror = $packages["internal/oserror"];
	runtime = $packages["runtime"];
	sync = $packages["sync"];
	js = $packages["syscall/js"];
	Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null);
	Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Ino_, Mode_, Nlink_, Uid_, Gid_, Rdev_, Size_, Blksize_, Blocks_, Atime_, AtimeNsec_, Mtime_, MtimeNsec_, Ctime_, CtimeNsec_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Dev = new $Int64(0, 0);
			this.Ino = new $Uint64(0, 0);
			this.Mode = 0;
			this.Nlink = 0;
			this.Uid = 0;
			this.Gid = 0;
			this.Rdev = new $Int64(0, 0);
			this.Size = new $Int64(0, 0);
			this.Blksize = 0;
			this.Blocks = 0;
			this.Atime = new $Int64(0, 0);
			this.AtimeNsec = new $Int64(0, 0);
			this.Mtime = new $Int64(0, 0);
			this.MtimeNsec = new $Int64(0, 0);
			this.Ctime = new $Int64(0, 0);
			this.CtimeNsec = new $Int64(0, 0);
			return;
		}
		this.Dev = Dev_;
		this.Ino = Ino_;
		this.Mode = Mode_;
		this.Nlink = Nlink_;
		this.Uid = Uid_;
		this.Gid = Gid_;
		this.Rdev = Rdev_;
		this.Size = Size_;
		this.Blksize = Blksize_;
		this.Blocks = Blocks_;
		this.Atime = Atime_;
		this.AtimeNsec = AtimeNsec_;
		this.Mtime = Mtime_;
		this.MtimeNsec = MtimeNsec_;
		this.Ctime = Ctime_;
		this.CtimeNsec = CtimeNsec_;
	});
	Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null);
	SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Port = 0;
			this.Addr = arrayType$3.zero();
			return;
		}
		this.Port = Port_;
		this.Addr = Addr_;
	});
	SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Port = 0;
			this.ZoneId = 0;
			this.Addr = arrayType$4.zero();
			return;
		}
		this.Port = Port_;
		this.ZoneId = ZoneId_;
		this.Addr = Addr_;
	});
	RawConn = $pkg.RawConn = $newType(8, $kindInterface, "syscall.RawConn", true, "syscall", true, null);
	jsFile = $pkg.jsFile = $newType(0, $kindStruct, "syscall.jsFile", true, "syscall", false, function(path_, entries_, dirIdx_, pos_, seeked_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.path = "";
			this.entries = sliceType.nil;
			this.dirIdx = 0;
			this.pos = new $Int64(0, 0);
			this.seeked = false;
			return;
		}
		this.path = path_;
		this.entries = entries_;
		this.dirIdx = dirIdx_;
		this.pos = pos_;
		this.seeked = seeked_;
	});
	callResult = $newType(0, $kindStruct, "syscall.callResult", true, "syscall", false, function(val_, err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.val = new js.Value.ptr(null, false, arrayType$2.zero());
			this.err = $ifaceNil;
			return;
		}
		this.val = val_;
		this.err = err_;
	});
	sliceType = $sliceType($String);
	sliceType$2 = $sliceType($emptyInterface);
	ptrType = $ptrType($error);
	funcType = $funcType([], [], false);
	arrayType$2 = $arrayType(funcType, 0);
	ptrType$2 = $ptrType(jsFile);
	arrayType$3 = $arrayType($Uint8, 4);
	arrayType$4 = $arrayType($Uint8, 16);
	funcType$1 = $funcType([$Uintptr], [], false);
	funcType$2 = $funcType([$Uintptr], [$Bool], false);
	faketimeWrite = function(fd, p) {
		var fd, p;
		$panic(new $String("not implemented"));
	};
	errnoErr = function(e) {
		var _1, e;
		_1 = e;
		if (_1 === (0)) {
			return $ifaceNil;
		} else if (_1 === (11)) {
			return errEAGAIN;
		} else if (_1 === (22)) {
			return errEINVAL;
		} else if (_1 === (2)) {
			return errENOENT;
		}
		return new Errno(e);
	};
	Errno.prototype.Error = function() {
		var e, s;
		e = this.$val;
		if (0 <= ((e >> 0)) && ((e >> 0)) < 2054) {
			s = ((e < 0 || e >= errorstr.length) ? ($throwRuntimeError("index out of range"), undefined) : errorstr[e]);
			if (!(s === "")) {
				return s;
			}
		}
		return "errno " + itoa.Itoa(((e >> 0)));
	};
	$ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); };
	Errno.prototype.Is = function(target) {
		var _1, e, target;
		e = this.$val;
		_1 = target;
		if ($interfaceIsEqual(_1, (oserror.ErrPermission))) {
			return (e === 13) || (e === 1);
		} else if ($interfaceIsEqual(_1, (oserror.ErrExist))) {
			return (e === 17) || (e === 39);
		} else if ($interfaceIsEqual(_1, (oserror.ErrNotExist))) {
			return e === 2;
		}
		return false;
	};
	$ptrType(Errno).prototype.Is = function(target) { return new Errno(this.$get()).Is(target); };
	Errno.prototype.Temporary = function() {
		var e;
		e = this.$val;
		return (e === 4) || (e === 24) || new Errno(e).Timeout();
	};
	$ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); };
	Errno.prototype.Timeout = function() {
		var e;
		e = this.$val;
		return (e === 11) || (e === 11) || (e === 110);
	};
	$ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); };
	StopIO = function(fd) {
		var fd;
		return new Errno(38);
	};
	$pkg.StopIO = StopIO;
	Accept = function(fd) {
		var _tmp, _tmp$1, _tmp$2, err, fd, newfd, sa;
		newfd = 0;
		sa = $ifaceNil;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = $ifaceNil;
		_tmp$2 = new Errno(38);
		newfd = _tmp;
		sa = _tmp$1;
		err = _tmp$2;
		return [newfd, sa, err];
	};
	$pkg.Accept = Accept;
	Recvfrom = function(fd, p, flags) {
		var _tmp, _tmp$1, _tmp$2, err, fd, flags, from, n, p;
		n = 0;
		from = $ifaceNil;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = $ifaceNil;
		_tmp$2 = new Errno(38);
		n = _tmp;
		from = _tmp$1;
		err = _tmp$2;
		return [n, from, err];
	};
	$pkg.Recvfrom = Recvfrom;
	Sendto = function(fd, p, flags, to) {
		var fd, flags, p, to;
		return new Errno(38);
	};
	$pkg.Sendto = Sendto;
	Recvmsg = function(fd, p, oob, flags) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, err, fd, flags, from, n, oob, oobn, p, recvflags;
		n = 0;
		oobn = 0;
		recvflags = 0;
		from = $ifaceNil;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = 0;
		_tmp$2 = 0;
		_tmp$3 = $ifaceNil;
		_tmp$4 = new Errno(38);
		n = _tmp;
		oobn = _tmp$1;
		recvflags = _tmp$2;
		from = _tmp$3;
		err = _tmp$4;
		return [n, oobn, recvflags, from, err];
	};
	$pkg.Recvmsg = Recvmsg;
	SendmsgN = function(fd, p, oob, to, flags) {
		var _tmp, _tmp$1, err, fd, flags, n, oob, p, to;
		n = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = new Errno(38);
		n = _tmp;
		err = _tmp$1;
		return [n, err];
	};
	$pkg.SendmsgN = SendmsgN;
	SetReadDeadline = function(fd, t) {
		var fd, t;
		return new Errno(38);
	};
	$pkg.SetReadDeadline = SetReadDeadline;
	SetWriteDeadline = function(fd, t) {
		var fd, t;
		return new Errno(38);
	};
	$pkg.SetWriteDeadline = SetWriteDeadline;
	Shutdown = function(fd, how) {
		var fd, how;
		return new Errno(38);
	};
	$pkg.Shutdown = Shutdown;
	SetNonblock = function(fd, nonblocking) {
		var fd, nonblocking;
		return $ifaceNil;
	};
	$pkg.SetNonblock = SetNonblock;
	runtime_envs = function() {
		var {_r$1, envkeys, envs$1, i, jsEnv, key, process, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		process = $clone($clone(js.Global(), js.Value).Get("process"), js.Value);
		if ($clone(process, js.Value).IsUndefined()) {
			$s = -1; return sliceType.nil;
		}
		jsEnv = $clone($clone(process, js.Value).Get("env"), js.Value);
		_r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).Call("keys", new sliceType$2([new jsEnv.constructor.elem(jsEnv)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		envkeys = $clone(_r$1, js.Value);
		envs$1 = $makeSlice(sliceType, $clone(envkeys, js.Value).Length());
		i = 0;
		while (true) {
			if (!(i < $clone(envkeys, js.Value).Length())) { break; }
			key = $clone($clone(envkeys, js.Value).Index(i), js.Value).String();
			((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $clone($clone(jsEnv, js.Value).Get(key), js.Value).String());
			i = i + (1) >> 0;
		}
		$s = -1; return envs$1;
		/* */ } return; } var $f = {$blk: runtime_envs, $c: true, $r, _r$1, envkeys, envs$1, i, jsEnv, key, process, $s};return $f;
	};
	setStat = function(st, jsSt) {
		var atime, ctime, jsSt, mtime, st;
		st.Dev = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("dev"), js.Value).Int()));
		st.Ino = (new $Uint64(0, $clone($clone(jsSt, js.Value).Get("ino"), js.Value).Int()));
		st.Mode = (($clone($clone(jsSt, js.Value).Get("mode"), js.Value).Int() >>> 0));
		st.Nlink = (($clone($clone(jsSt, js.Value).Get("nlink"), js.Value).Int() >>> 0));
		st.Uid = (($clone($clone(jsSt, js.Value).Get("uid"), js.Value).Int() >>> 0));
		st.Gid = (($clone($clone(jsSt, js.Value).Get("gid"), js.Value).Int() >>> 0));
		st.Rdev = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("rdev"), js.Value).Int()));
		st.Size = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("size"), js.Value).Int()));
		st.Blksize = (($clone($clone(jsSt, js.Value).Get("blksize"), js.Value).Int() >> 0));
		st.Blocks = (($clone($clone(jsSt, js.Value).Get("blocks"), js.Value).Int() >> 0));
		atime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("atimeMs"), js.Value).Float()));
		st.Atime = $div64(atime, new $Int64(0, 1000), false);
		st.AtimeNsec = $mul64(($div64(atime, new $Int64(0, 1000), true)), new $Int64(0, 1000000));
		mtime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("mtimeMs"), js.Value).Float()));
		st.Mtime = $div64(mtime, new $Int64(0, 1000), false);
		st.MtimeNsec = $mul64(($div64(mtime, new $Int64(0, 1000), true)), new $Int64(0, 1000000));
		ctime = (new $Int64(0, $clone($clone(jsSt, js.Value).Get("ctimeMs"), js.Value).Float()));
		st.Ctime = $div64(ctime, new $Int64(0, 1000), false);
		st.CtimeNsec = $mul64(($div64(ctime, new $Int64(0, 1000), true)), new $Int64(0, 1000000));
	};
	fsCall = function(name, args) {
		var {$24r, $24r$1, _r$1, _r$2, args, c, f, name, res, $s, $deferred, $r, $c} = $restore(this, {name, args});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		c = [c];
		c[0] = new $Chan(callResult, 1);
		f = $clone(js.FuncOf((function(c) { return function $b(this$1, args$1) {
			var {args$1, jsErr, res, this$1, $s, $r, $c} = $restore(this, {this$1, args$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			res = new callResult.ptr(new js.Value.ptr(null, false, arrayType$2.zero()), $ifaceNil);
			if (args$1.$length >= 1) {
				jsErr = $clone((0 >= args$1.$length ? ($throwRuntimeError("index out of range"), undefined) : args$1.$array[args$1.$offset + 0]), js.Value);
				if (!$clone(jsErr, js.Value).IsUndefined() && !$clone(jsErr, js.Value).IsNull()) {
					res.err = mapJSError($clone(jsErr, js.Value));
				}
			}
			js.Value.copy(res.val, js.Undefined());
			if (args$1.$length >= 2) {
				js.Value.copy(res.val, (1 >= args$1.$length ? ($throwRuntimeError("index out of range"), undefined) : args$1.$array[args$1.$offset + 1]));
			}
			$r = $send(c[0], $clone($clone(res, callResult), callResult)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return $ifaceNil;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, args$1, jsErr, res, this$1, $s};return $f;
		}; })(c)), js.Func);
		$deferred.push([$methodVal($clone(f, js.Func), "Release"), []]);
		/* */ if ($clone($clone(jsFS, js.Value).Get(name), js.Value).IsUndefined()) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ($clone($clone(jsFS, js.Value).Get(name), js.Value).IsUndefined()) { */ case 1:
			$24r = [js.Undefined(), new Errno(38)];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		_r$1 = $clone(jsFS, js.Value).Call(name, $append(args, new f.constructor.elem(f))); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$1;
		_r$2 = $recv(c[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		res = $clone(_r$2[0], callResult);
		$24r$1 = [res.val, res.err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [new js.Value.ptr(null, false, arrayType$2.zero()), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: fsCall, $c: true, $r, $24r, $24r$1, _r$1, _r$2, args, c, f, name, res, $s, $deferred};return $f; } }
	};
	fdToFile = function(fd) {
		var {_entry, _tuple, f, fd, ok, $s, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = filesMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_tuple = (_entry = $mapIndex(files,$Int.keyFor(fd)), _entry !== undefined ? [_entry.v, true] : [ptrType$2.nil, false]);
		f = _tuple[0];
		ok = _tuple[1];
		$r = filesMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (!ok) {
			$s = -1; return [ptrType$2.nil, new Errno(9)];
		}
		$s = -1; return [f, $ifaceNil];
		/* */ } return; } var $f = {$blk: fdToFile, $c: true, $r, _entry, _tuple, f, fd, ok, $s};return $f;
	};
	Close = function(fd) {
		var {_r$1, _tuple, err, fd, $s, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = filesMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$mapDelete(files, $Int.keyFor(fd));
		$r = filesMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r$1 = fsCall("close", new sliceType$2([new $Int(fd)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Close, $c: true, $r, _r$1, _tuple, err, fd, $s};return $f;
	};
	$pkg.Close = Close;
	CloseOnExec = function(fd) {
		var fd;
	};
	$pkg.CloseOnExec = CloseOnExec;
	ReadDirent = function(fd, buf) {
		var {_r$1, _tuple, buf, entry, err, f, fd, l, n, x, x$1, $s, $r, $c} = $restore(this, {fd, buf});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		f = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		if (f.entries === sliceType.nil) {
			$s = -1; return [0, new Errno(22)];
		}
		n = 0;
		while (true) {
			if (!(f.dirIdx < f.entries.$length)) { break; }
			entry = (x = f.entries, x$1 = f.dirIdx, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]));
			l = 2 + entry.length >> 0;
			if (l > buf.$length) {
				break;
			}
			(0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = ((l << 24 >>> 24)));
			(1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1] = (((l >> 8 >> 0) << 24 >>> 24)));
			$copyString($subslice(buf, 2), entry);
			buf = $subslice(buf, l);
			n = n + (l) >> 0;
			f.dirIdx = f.dirIdx + (1) >> 0;
		}
		$s = -1; return [n, $ifaceNil];
		/* */ } return; } var $f = {$blk: ReadDirent, $c: true, $r, _r$1, _tuple, buf, entry, err, f, fd, l, n, x, x$1, $s};return $f;
	};
	$pkg.ReadDirent = ReadDirent;
	Lstat = function(path, st) {
		var {_r$1, _tuple, err, err$1, jsSt, path, st, $s, $r, $c} = $restore(this, {path, st});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		err = checkPath(path);
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$1 = fsCall("lstat", new sliceType$2([new $String(path)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		jsSt = $clone(_tuple[0], js.Value);
		err$1 = _tuple[1];
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			$s = -1; return err$1;
		}
		setStat(st, $clone(jsSt, js.Value));
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: Lstat, $c: true, $r, _r$1, _tuple, err, err$1, jsSt, path, st, $s};return $f;
	};
	$pkg.Lstat = Lstat;
	Fstat = function(fd, st) {
		var {_r$1, _tuple, err, fd, jsSt, st, $s, $r, $c} = $restore(this, {fd, st});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fsCall("fstat", new sliceType$2([new $Int(fd)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		jsSt = $clone(_tuple[0], js.Value);
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		setStat(st, $clone(jsSt, js.Value));
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: Fstat, $c: true, $r, _r$1, _tuple, err, fd, jsSt, st, $s};return $f;
	};
	$pkg.Fstat = Fstat;
	Fchmod = function(fd, mode) {
		var {_r$1, _tuple, err, fd, mode, $s, $r, $c} = $restore(this, {fd, mode});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fsCall("fchmod", new sliceType$2([new $Int(fd), new $Uint32(mode)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Fchmod, $c: true, $r, _r$1, _tuple, err, fd, mode, $s};return $f;
	};
	$pkg.Fchmod = Fchmod;
	Fchown = function(fd, uid, gid) {
		var {_r$1, _tuple, err, fd, gid, uid, $s, $r, $c} = $restore(this, {fd, uid, gid});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fsCall("fchown", new sliceType$2([new $Int(fd), new $Uint32(((uid >>> 0))), new $Uint32(((gid >>> 0)))])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Fchown, $c: true, $r, _r$1, _tuple, err, fd, gid, uid, $s};return $f;
	};
	$pkg.Fchown = Fchown;
	Ftruncate = function(fd, length) {
		var {_r$1, _tuple, err, fd, length, $s, $r, $c} = $restore(this, {fd, length});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fsCall("ftruncate", new sliceType$2([new $Int(fd), length])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Ftruncate, $c: true, $r, _r$1, _tuple, err, fd, length, $s};return $f;
	};
	$pkg.Ftruncate = Ftruncate;
	Chdir = function(path) {
		var {$24r, $24r$1, _r$1, err, err$1, path, $s, $deferred, $r, $c} = $restore(this, {path});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		err[0] = $ifaceNil;
		err$1 = checkPath(path);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 1:
			err[0] = err$1;
			$24r = err[0];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([recoverErr, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err)))]]);
		_r$1 = $clone(jsProcess, js.Value).Call("chdir", new sliceType$2([new $String(path)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$1;
		$24r$1 = err[0];
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err[0]; } if($curGoroutine.asleep) { var $f = {$blk: Chdir, $c: true, $r, $24r, $24r$1, _r$1, err, err$1, path, $s, $deferred};return $f; } }
	};
	$pkg.Chdir = Chdir;
	Fchdir = function(fd) {
		var {$24r, _r$1, _r$2, _tuple, err, f, fd, $s, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		f = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$2 = Chdir(f.path); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Fchdir, $c: true, $r, $24r, _r$1, _r$2, _tuple, err, f, fd, $s};return $f;
	};
	$pkg.Fchdir = Fchdir;
	Fsync = function(fd) {
		var {_r$1, _tuple, err, fd, $s, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fsCall("fsync", new sliceType$2([new $Int(fd)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Fsync, $c: true, $r, _r$1, _tuple, err, fd, $s};return $f;
	};
	$pkg.Fsync = Fsync;
	Read = function(fd, b) {
		var {_r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n2, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {fd, b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		f = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		/* */ if (f.seeked) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (f.seeked) { */ case 2:
			_r$2 = Pread(fd, b, f.pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			_tuple$1 = _r$2;
			n = _tuple$1[0];
			err$1 = _tuple$1[1];
			f.pos = (x = f.pos, x$1 = (new $Int64(0, n)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low));
			$s = -1; return [n, err$1];
		/* } */ case 3:
		_r$3 = $clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		buf = $clone(_r$3, js.Value);
		_r$4 = fsCall("read", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), $ifaceNil])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_tuple$2 = _r$4;
		n$1 = $clone(_tuple$2[0], js.Value);
		err = _tuple$2[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		js.CopyBytesToGo(b, $clone(buf, js.Value));
		n2 = $clone(n$1, js.Value).Int();
		f.pos = (x$2 = f.pos, x$3 = (new $Int64(0, n2)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low));
		$s = -1; return [n2, err];
		/* */ } return; } var $f = {$blk: Read, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n2, x, x$1, x$2, x$3, $s};return $f;
	};
	$pkg.Read = Read;
	Write = function(fd, b) {
		var {_r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n$2, n2, x, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {fd, b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		f = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		/* */ if (f.seeked) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (f.seeked) { */ case 2:
			_r$2 = Pwrite(fd, b, f.pos); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			_tuple$1 = _r$2;
			n = _tuple$1[0];
			err$1 = _tuple$1[1];
			f.pos = (x = f.pos, x$1 = (new $Int64(0, n)), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low));
			$s = -1; return [n, err$1];
		/* } */ case 3:
		if (false && ((fd === 1) || (fd === 2))) {
			n$1 = faketimeWrite(fd, b);
			if (n$1 < 0) {
				$s = -1; return [0, errnoErr(((-n$1 >>> 0)))];
			}
			$s = -1; return [n$1, $ifaceNil];
		}
		_r$3 = $clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		buf = $clone(_r$3, js.Value);
		js.CopyBytesToJS($clone(buf, js.Value), b);
		_r$4 = fsCall("write", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), $ifaceNil])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_tuple$2 = _r$4;
		n$2 = $clone(_tuple$2[0], js.Value);
		err = _tuple$2[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		n2 = $clone(n$2, js.Value).Int();
		f.pos = (x$2 = f.pos, x$3 = (new $Int64(0, n2)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low));
		$s = -1; return [n2, err];
		/* */ } return; } var $f = {$blk: Write, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, b, buf, err, err$1, f, fd, n, n$1, n$2, n2, x, x$1, x$2, x$3, $s};return $f;
	};
	$pkg.Write = Write;
	Pread = function(fd, b, offset) {
		var {_r$1, _r$2, _tuple, b, buf, err, fd, n, offset, $s, $r, $c} = $restore(this, {fd, b, offset});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = $clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		buf = $clone(_r$1, js.Value);
		_r$2 = fsCall("read", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), offset])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		n = $clone(_tuple[0], js.Value);
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		js.CopyBytesToGo(b, $clone(buf, js.Value));
		$s = -1; return [$clone(n, js.Value).Int(), $ifaceNil];
		/* */ } return; } var $f = {$blk: Pread, $c: true, $r, _r$1, _r$2, _tuple, b, buf, err, fd, n, offset, $s};return $f;
	};
	$pkg.Pread = Pread;
	Pwrite = function(fd, b, offset) {
		var {_r$1, _r$2, _tuple, b, buf, err, fd, n, offset, $s, $r, $c} = $restore(this, {fd, b, offset});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = $clone(uint8Array, js.Value).New(new sliceType$2([new $Int(b.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		buf = $clone(_r$1, js.Value);
		js.CopyBytesToJS($clone(buf, js.Value), b);
		_r$2 = fsCall("write", new sliceType$2([new $Int(fd), new buf.constructor.elem(buf), new $Int(0), new $Int(b.$length), offset])); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		n = $clone(_tuple[0], js.Value);
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		$s = -1; return [$clone(n, js.Value).Int(), $ifaceNil];
		/* */ } return; } var $f = {$blk: Pwrite, $c: true, $r, _r$1, _r$2, _tuple, b, buf, err, fd, n, offset, $s};return $f;
	};
	$pkg.Pwrite = Pwrite;
	Seek = function(fd, offset, whence) {
		var {_1, _r$1, _r$2, _tuple, err, err$1, f, fd, newPos, offset, st, whence, x, x$1, $s, $r, $c} = $restore(this, {fd, offset, whence});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		st = [st];
		_r$1 = fdToFile(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		f = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [new $Int64(0, 0), err];
		}
		newPos = new $Int64(0, 0);
			_1 = whence;
			/* */ if (_1 === (0)) { $s = 3; continue; }
			/* */ if (_1 === (1)) { $s = 4; continue; }
			/* */ if (_1 === (2)) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if (_1 === (0)) { */ case 3:
				newPos = offset;
				$s = 7; continue;
			/* } else if (_1 === (1)) { */ case 4:
				newPos = (x = f.pos, new $Int64(x.$high + offset.$high, x.$low + offset.$low));
				$s = 7; continue;
			/* } else if (_1 === (2)) { */ case 5:
				st[0] = new Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0));
				_r$2 = Fstat(fd, st[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				err$1 = _r$2;
				if (!($interfaceIsEqual(err$1, $ifaceNil))) {
					$s = -1; return [new $Int64(0, 0), err$1];
				}
				newPos = (x$1 = st[0].Size, new $Int64(x$1.$high + offset.$high, x$1.$low + offset.$low));
				$s = 7; continue;
			/* } else { */ case 6:
				$s = -1; return [new $Int64(0, 0), errnoErr(22)];
			/* } */ case 7:
		case 2:
		if ((newPos.$high < 0 || (newPos.$high === 0 && newPos.$low < 0))) {
			$s = -1; return [new $Int64(0, 0), errnoErr(22)];
		}
		f.seeked = true;
		f.dirIdx = 0;
		f.pos = newPos;
		$s = -1; return [newPos, $ifaceNil];
		/* */ } return; } var $f = {$blk: Seek, $c: true, $r, _1, _r$1, _r$2, _tuple, err, err$1, f, fd, newPos, offset, st, whence, x, x$1, $s};return $f;
	};
	$pkg.Seek = Seek;
	Dup = function(fd) {
		var fd;
		return [0, new Errno(38)];
	};
	$pkg.Dup = Dup;
	checkPath = function(path) {
		var i, path;
		if (path === "") {
			return new Errno(22);
		}
		i = 0;
		while (true) {
			if (!(i < path.length)) { break; }
			if (path.charCodeAt(i) === 0) {
				return new Errno(22);
			}
			i = i + (1) >> 0;
		}
		return $ifaceNil;
	};
	recoverErr = function(errPtr) {
		var _tuple, err, errPtr, jsErr, ok;
		err = $recover();
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			_tuple = $assertType(err, js.Error, true);
			jsErr = $clone(_tuple[0], js.Error);
			ok = _tuple[1];
			if (!ok) {
				$panic(err);
			}
			errPtr.$set(mapJSError($clone(jsErr.Value, js.Value)));
		}
	};
	mapJSError = function(jsErr) {
		var _entry, _tuple, errno, jsErr, ok;
		_tuple = (_entry = $mapIndex(errnoByCode,$String.keyFor($clone($clone(jsErr, js.Value).Get("code"), js.Value).String())), _entry !== undefined ? [_entry.v, true] : [0, false]);
		errno = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			$panic(new jsErr.constructor.elem(jsErr));
		}
		return errnoErr((errno));
	};
	Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Is", name: "Is", pkg: "", typ: $funcType([$error], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
	Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Atime", name: "Atime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "AtimeNsec", name: "AtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Mtime", name: "Mtime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "MtimeNsec", name: "MtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Ctime", name: "Ctime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "CtimeNsec", name: "CtimeNsec", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	Iovec.init("", []);
	Sockaddr.init([]);
	SockaddrInet4.init("", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$3, tag: ""}]);
	SockaddrInet6.init("", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$4, tag: ""}]);
	RawConn.init([{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$2], [$error], false)}]);
	jsFile.init("syscall", [{prop: "path", name: "path", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "entries", name: "entries", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "dirIdx", name: "dirIdx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "seeked", name: "seeked", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	callResult.init("syscall", [{prop: "val", name: "val", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = itoa.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = oserror.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0);
		filesMu = new sync.Mutex.ptr(0, 0);
		errorstr = $toNativeArray($kindString, ["", "Operation not permitted", "No such file or directory", "No such process", "Interrupted system call", "I/O error", "No such device or address", "Argument list too long", "Exec format error", "Bad file number", "No child processes", "Try again", "Out of memory", "Permission denied", "Bad address", "", "Device or resource busy", "File exists", "Cross-device link", "No such device", "Not a directory", "Is a directory", "Invalid argument", "File table overflow", "Too many open files", "Not a typewriter", "", "File too large", "No space left on device", "Illegal seek", "Read-only file system", "Too many links", "Broken pipe", "Math arg out of domain of func", "Math result not representable", "Deadlock condition", "File name too long", "No record locks available", "not implemented on js", "Directory not empty", "Too many symbolic links", "", "No message of desired type", "Identifier removed", "Channel number out of range", "Level 2 not synchronized", "Level 3 halted", "Level 3 reset", "Link number out of range", "Protocol driver not attached", "No CSI structure available", "Level 2 halted", "Invalid exchange", "Invalid request descriptor", "Exchange full", "No anode", "Invalid request code", "Invalid slot", "", "Bad font file fmt", "Device not a stream", "No data (for no delay io)", "Timer expired", "Out of streams resources", "Machine is not on the network", "Package not installed", "The object is remote", "The link has been severed", "Advertise error", "Srmount error", "Communication error on send", "Protocol error", "Multihop attempted", "Cross mount point (not really error)", "Trying to read unreadable message", "Value too large for defined data type", "Given log. name not unique", "f.d. invalid for this operation", "Remote address changed", "Can't access a needed shared lib", "Accessing a corrupted shared lib", ".lib section in a.out corrupted", "Attempting to link in too many libs", "Attempting to exec a shared library", "", "", "", "", "Socket operation on non-socket", "Destination address required", "Message too long", "Protocol wrong type for socket", "Protocol not available", "Unknown protocol", "Socket type not supported", "Operation not supported on transport endpoint", "Protocol family not supported", "Address family not supported by protocol family", "Address already in use", "Address not available", "Network interface is not configured", "Network is unreachable", "", "Connection aborted", "Connection reset by peer", "No buffer space available", "Socket is already connected", "Socket is not connected", "Can't send after socket shutdown", "", "Connection timed out", "Connection refused", "Host is down", "Host is unreachable", "Socket already connected", "Connection already in progress", "", "", "", "", "", "", "Quota exceeded", "No medium (in tape drive)", "", "Operation canceled.", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Inode is remote (not really error)", "Inappropriate file type or format", "No more files", "", "No such host or network path", "Filename exists with different case"]);
		errEAGAIN = new Errno(11);
		errEINVAL = new Errno(22);
		errENOENT = new Errno(2);
		errnoByCode = $makeMap($String.keyFor, [{ k: "EPERM", v: 1 }, { k: "ENOENT", v: 2 }, { k: "ESRCH", v: 3 }, { k: "EINTR", v: 4 }, { k: "EIO", v: 5 }, { k: "ENXIO", v: 6 }, { k: "E2BIG", v: 7 }, { k: "ENOEXEC", v: 8 }, { k: "EBADF", v: 9 }, { k: "ECHILD", v: 10 }, { k: "EAGAIN", v: 11 }, { k: "ENOMEM", v: 12 }, { k: "EACCES", v: 13 }, { k: "EFAULT", v: 14 }, { k: "EBUSY", v: 16 }, { k: "EEXIST", v: 17 }, { k: "EXDEV", v: 18 }, { k: "ENODEV", v: 19 }, { k: "ENOTDIR", v: 20 }, { k: "EISDIR", v: 21 }, { k: "EINVAL", v: 22 }, { k: "ENFILE", v: 23 }, { k: "EMFILE", v: 24 }, { k: "ENOTTY", v: 25 }, { k: "EFBIG", v: 27 }, { k: "ENOSPC", v: 28 }, { k: "ESPIPE", v: 29 }, { k: "EROFS", v: 30 }, { k: "EMLINK", v: 31 }, { k: "EPIPE", v: 32 }, { k: "ENAMETOOLONG", v: 36 }, { k: "ENOSYS", v: 38 }, { k: "EDQUOT", v: 122 }, { k: "EDOM", v: 33 }, { k: "ERANGE", v: 34 }, { k: "EDEADLK", v: 35 }, { k: "ENOLCK", v: 37 }, { k: "ENOTEMPTY", v: 39 }, { k: "ELOOP", v: 40 }, { k: "ENOMSG", v: 42 }, { k: "EIDRM", v: 43 }, { k: "ECHRNG", v: 44 }, { k: "EL2NSYNC", v: 45 }, { k: "EL3HLT", v: 46 }, { k: "EL3RST", v: 47 }, { k: "ELNRNG", v: 48 }, { k: "EUNATCH", v: 49 }, { k: "ENOCSI", v: 50 }, { k: "EL2HLT", v: 51 }, { k: "EBADE", v: 52 }, { k: "EBADR", v: 53 }, { k: "EXFULL", v: 54 }, { k: "ENOANO", v: 55 }, { k: "EBADRQC", v: 56 }, { k: "EBADSLT", v: 57 }, { k: "EDEADLOCK", v: 35 }, { k: "EBFONT", v: 59 }, { k: "ENOSTR", v: 60 }, { k: "ENODATA", v: 61 }, { k: "ETIME", v: 62 }, { k: "ENOSR", v: 63 }, { k: "ENONET", v: 64 }, { k: "ENOPKG", v: 65 }, { k: "EREMOTE", v: 66 }, { k: "ENOLINK", v: 67 }, { k: "EADV", v: 68 }, { k: "ESRMNT", v: 69 }, { k: "ECOMM", v: 70 }, { k: "EPROTO", v: 71 }, { k: "EMULTIHOP", v: 72 }, { k: "EDOTDOT", v: 73 }, { k: "EBADMSG", v: 74 }, { k: "EOVERFLOW", v: 75 }, { k: "ENOTUNIQ", v: 76 }, { k: "EBADFD", v: 77 }, { k: "EREMCHG", v: 78 }, { k: "ELIBACC", v: 79 }, { k: "ELIBBAD", v: 80 }, { k: "ELIBSCN", v: 81 }, { k: "ELIBMAX", v: 82 }, { k: "ELIBEXEC", v: 83 }, { k: "EILSEQ", v: 84 }, { k: "EUSERS", v: 87 }, { k: "ENOTSOCK", v: 88 }, { k: "EDESTADDRREQ", v: 89 }, { k: "EMSGSIZE", v: 90 }, { k: "EPROTOTYPE", v: 91 }, { k: "ENOPROTOOPT", v: 92 }, { k: "EPROTONOSUPPORT", v: 93 }, { k: "ESOCKTNOSUPPORT", v: 94 }, { k: "EOPNOTSUPP", v: 95 }, { k: "EPFNOSUPPORT", v: 96 }, { k: "EAFNOSUPPORT", v: 97 }, { k: "EADDRINUSE", v: 98 }, { k: "EADDRNOTAVAIL", v: 99 }, { k: "ENETDOWN", v: 100 }, { k: "ENETUNREACH", v: 101 }, { k: "ENETRESET", v: 102 }, { k: "ECONNABORTED", v: 103 }, { k: "ECONNRESET", v: 104 }, { k: "ENOBUFS", v: 105 }, { k: "EISCONN", v: 106 }, { k: "ENOTCONN", v: 107 }, { k: "ESHUTDOWN", v: 108 }, { k: "ETOOMANYREFS", v: 109 }, { k: "ETIMEDOUT", v: 110 }, { k: "ECONNREFUSED", v: 111 }, { k: "EHOSTDOWN", v: 112 }, { k: "EHOSTUNREACH", v: 113 }, { k: "EALREADY", v: 114 }, { k: "EINPROGRESS", v: 115 }, { k: "ESTALE", v: 116 }, { k: "ENOTSUP", v: 95 }, { k: "ENOMEDIUM", v: 123 }, { k: "ECANCELED", v: 125 }, { k: "ELBIN", v: 2048 }, { k: "EFTYPE", v: 2049 }, { k: "ENMFILE", v: 2050 }, { k: "EPROCLIM", v: 2051 }, { k: "ENOSHARE", v: 2052 }, { k: "ECASECLASH", v: 2053 }, { k: "EWOULDBLOCK", v: 11 }]);
		jsProcess = $clone($clone(js.Global(), js.Value).Get("process"), js.Value);
		jsFS = $clone($clone(js.Global(), js.Value).Get("fs"), js.Value);
		constants = $clone($clone(jsFS, js.Value).Get("constants"), js.Value);
		uint8Array = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value);
		nodeWRONLY = $clone($clone(constants, js.Value).Get("O_WRONLY"), js.Value).Int();
		nodeRDWR = $clone($clone(constants, js.Value).Get("O_RDWR"), js.Value).Int();
		nodeCREATE = $clone($clone(constants, js.Value).Get("O_CREAT"), js.Value).Int();
		nodeTRUNC = $clone($clone(constants, js.Value).Get("O_TRUNC"), js.Value).Int();
		nodeAPPEND = $clone($clone(constants, js.Value).Get("O_APPEND"), js.Value).Int();
		nodeEXCL = $clone($clone(constants, js.Value).Get("O_EXCL"), js.Value).Int();
		files = $makeMap($Int.keyFor, [{ k: 0, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }, { k: 1, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }, { k: 2, v: new jsFile.ptr("", sliceType.nil, 0, new $Int64(0, 0), false) }]);
		_r = runtime_envs(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		envs = _r;
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["time"] = (function() {
	var $pkg = {}, $init, errors, js$1, nosync, runtime, syscall, js, Location, zone, zoneTrans, ruleKind, rule, Time, Month, Weekday, Duration, Timer, runtimeTimer, ParseError, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, ptrType$2, arrayType$2, funcType, structType, arrayType$3, arrayType$4, arrayType$5, ptrType$4, chanType$1, ptrType$6, funcType$1, ptrType$7, ptrType$8, badData, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, daysBefore, startNano, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, x, _r, FixedZone, tzset, tzsetName, tzsetOffset, tzsetRule, tzsetNum, tzruleTime, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, Until, absDate, daysIn, daysSinceEpoch, runtimeNano, Now, unixTime, Unix, isLeap, norm, Date, div, when, AfterFunc, goFunc, initLocal, itoa, init, now, Sleep, startTimer, stopTimer, modTimer, resetTimer, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, stdFracSecond, digitsLen, separator, formatNano, quote, isDigit, getnum, getnum3, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, commaOrPeriod, parseNanoseconds, leadingInt;
	errors = $packages["errors"];
	js$1 = $packages["github.com/gopherjs/gopherjs/js"];
	nosync = $packages["github.com/gopherjs/gopherjs/nosync"];
	runtime = $packages["runtime"];
	syscall = $packages["syscall"];
	js = $packages["syscall/js"];
	Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, extend_, cacheStart_, cacheEnd_, cacheZone_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.zone = sliceType.nil;
			this.tx = sliceType$1.nil;
			this.extend = "";
			this.cacheStart = new $Int64(0, 0);
			this.cacheEnd = new $Int64(0, 0);
			this.cacheZone = ptrType.nil;
			return;
		}
		this.name = name_;
		this.zone = zone_;
		this.tx = tx_;
		this.extend = extend_;
		this.cacheStart = cacheStart_;
		this.cacheEnd = cacheEnd_;
		this.cacheZone = cacheZone_;
	});
	zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.offset = 0;
			this.isDST = false;
			return;
		}
		this.name = name_;
		this.offset = offset_;
		this.isDST = isDST_;
	});
	zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.when = new $Int64(0, 0);
			this.index = 0;
			this.isstd = false;
			this.isutc = false;
			return;
		}
		this.when = when_;
		this.index = index_;
		this.isstd = isstd_;
		this.isutc = isutc_;
	});
	ruleKind = $pkg.ruleKind = $newType(4, $kindInt, "time.ruleKind", true, "time", false, null);
	rule = $pkg.rule = $newType(0, $kindStruct, "time.rule", true, "time", false, function(kind_, day_, week_, mon_, time_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.kind = 0;
			this.day = 0;
			this.week = 0;
			this.mon = 0;
			this.time = 0;
			return;
		}
		this.kind = kind_;
		this.day = day_;
		this.week = week_;
		this.mon = mon_;
		this.time = time_;
	});
	Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.wall = new $Uint64(0, 0);
			this.ext = new $Int64(0, 0);
			this.loc = ptrType$2.nil;
			return;
		}
		this.wall = wall_;
		this.ext = ext_;
		this.loc = loc_;
	});
	Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null);
	Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null);
	Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null);
	Timer = $pkg.Timer = $newType(0, $kindStruct, "time.Timer", true, "time", true, function(C_, r_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.C = $chanNil;
			this.r = new runtimeTimer.ptr(0, new $Int64(0, 0), new $Int64(0, 0), $throwNilPointerError, $ifaceNil, 0, null, false);
			return;
		}
		this.C = C_;
		this.r = r_;
	});
	runtimeTimer = $pkg.runtimeTimer = $newType(0, $kindStruct, "time.runtimeTimer", true, "time", false, function(i_, when_, period_, f_, arg_, seq_, timeout_, active_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.i = 0;
			this.when = new $Int64(0, 0);
			this.period = new $Int64(0, 0);
			this.f = $throwNilPointerError;
			this.arg = $ifaceNil;
			this.seq = 0;
			this.timeout = null;
			this.active = false;
			return;
		}
		this.i = i_;
		this.when = when_;
		this.period = period_;
		this.f = f_;
		this.arg = arg_;
		this.seq = seq_;
		this.timeout = timeout_;
		this.active = active_;
	});
	ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Layout = "";
			this.Value = "";
			this.LayoutElem = "";
			this.ValueElem = "";
			this.Message = "";
			return;
		}
		this.Layout = Layout_;
		this.Value = Value_;
		this.LayoutElem = LayoutElem_;
		this.ValueElem = ValueElem_;
		this.Message = Message_;
	});
	sliceType = $sliceType(zone);
	sliceType$1 = $sliceType(zoneTrans);
	ptrType = $ptrType(zone);
	sliceType$2 = $sliceType($String);
	sliceType$3 = $sliceType($Uint8);
	ptrType$2 = $ptrType(Location);
	arrayType$2 = $arrayType($Uint8, 32);
	funcType = $funcType([], [], false);
	structType = $structType("", []);
	arrayType$3 = $arrayType($Uint8, 20);
	arrayType$4 = $arrayType($Uint8, 9);
	arrayType$5 = $arrayType($Uint8, 64);
	ptrType$4 = $ptrType(Time);
	chanType$1 = $chanType(Time, false, true);
	ptrType$6 = $ptrType(Timer);
	funcType$1 = $funcType([$emptyInterface, $Uintptr], [], false);
	ptrType$7 = $ptrType(js$1.Object);
	ptrType$8 = $ptrType(ParseError);
	Location.ptr.prototype.get = function() {
		var {l, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		l = this;
		if (l === ptrType$2.nil) {
			$s = -1; return utcLoc;
		}
		/* */ if (l === localLoc) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (l === localLoc) { */ case 1:
			$r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return l;
		/* */ } return; } var $f = {$blk: Location.ptr.prototype.get, $c: true, $r, l, $s};return $f;
	};
	Location.prototype.get = function() { return this.$val.get(); };
	Location.ptr.prototype.String = function() {
		var {$24r, _r$1, l, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		l = this;
		_r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1.name;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Location.ptr.prototype.String, $c: true, $r, $24r, _r$1, l, $s};return $f;
	};
	Location.prototype.String = function() { return this.$val.String(); };
	FixedZone = function(name, offset) {
		var l, name, offset, x$1;
		l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), "", new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil);
		l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]));
		return l;
	};
	$pkg.FixedZone = FixedZone;
	Location.ptr.prototype.lookup = function(sec) {
		var {_q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, eend, eisDST, ename, end, eoffset, estart, hi, isDST, l, lim, lo, m, name, offset, ok, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s, $r, $c} = $restore(this, {sec});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		name = "";
		offset = 0;
		start = new $Int64(0, 0);
		end = new $Int64(0, 0);
		isDST = false;
		l = this;
		_r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		l = _r$1;
		if (l.zone.$length === 0) {
			name = "UTC";
			offset = 0;
			start = new $Int64(-2147483648, 0);
			end = new $Int64(2147483647, 4294967295);
			isDST = false;
			$s = -1; return [name, offset, start, end, isDST];
		}
		zone$1 = l.cacheZone;
		if (!(zone$1 === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) {
			name = zone$1.name;
			offset = zone$1.offset;
			start = l.cacheStart;
			end = l.cacheEnd;
			isDST = zone$1.isDST;
			$s = -1; return [name, offset, start, end, isDST];
		}
		if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) {
			zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6]));
			name = zone$2.name;
			offset = zone$2.offset;
			start = new $Int64(-2147483648, 0);
			if (l.tx.$length > 0) {
				end = (x$7 = l.tx, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).when;
			} else {
				end = new $Int64(2147483647, 4294967295);
			}
			isDST = zone$2.isDST;
			$s = -1; return [name, offset, start, end, isDST];
		}
		tx = l.tx;
		end = new $Int64(2147483647, 4294967295);
		lo = 0;
		hi = tx.$length;
		while (true) {
			if (!((hi - lo >> 0) > 1)) { break; }
			m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
			lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when;
			if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) {
				end = lim;
				hi = m;
			} else {
				lo = m;
			}
		}
		zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]));
		name = zone$3.name;
		offset = zone$3.offset;
		start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when;
		isDST = zone$3.isDST;
		if ((lo === (tx.$length - 1 >> 0)) && !(l.extend === "")) {
			_tuple = tzset(l.extend, end, sec);
			ename = _tuple[0];
			eoffset = _tuple[1];
			estart = _tuple[2];
			eend = _tuple[3];
			eisDST = _tuple[4];
			ok = _tuple[5];
			if (ok) {
				_tmp = ename;
				_tmp$1 = eoffset;
				_tmp$2 = estart;
				_tmp$3 = eend;
				_tmp$4 = eisDST;
				name = _tmp;
				offset = _tmp$1;
				start = _tmp$2;
				end = _tmp$3;
				isDST = _tmp$4;
				$s = -1; return [name, offset, start, end, isDST];
			}
		}
		$s = -1; return [name, offset, start, end, isDST];
		/* */ } return; } var $f = {$blk: Location.ptr.prototype.lookup, $c: true, $r, _q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tuple, eend, eisDST, ename, end, eoffset, estart, hi, isDST, l, lim, lo, m, name, offset, ok, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s};return $f;
	};
	Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); };
	Location.ptr.prototype.lookupFirstZone = function() {
		var _i, _ref, l, x$1, x$2, x$3, x$4, x$5, x$6, zi, zi$1;
		l = this;
		if (!l.firstZoneUsed()) {
			return 0;
		}
		if (l.tx.$length > 0 && (x$1 = l.zone, x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).isDST) {
			zi = (((x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).index >> 0)) - 1 >> 0;
			while (true) {
				if (!(zi >= 0)) { break; }
				if (!(x$5 = l.zone, ((zi < 0 || zi >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi])).isDST) {
					return zi;
				}
				zi = zi - (1) >> 0;
			}
		}
		_ref = l.zone;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			zi$1 = _i;
			if (!(x$6 = l.zone, ((zi$1 < 0 || zi$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + zi$1])).isDST) {
				return zi$1;
			}
			_i++;
		}
		return 0;
	};
	Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); };
	Location.ptr.prototype.firstZoneUsed = function() {
		var _i, _ref, l, tx;
		l = this;
		_ref = l.tx;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans);
			if (tx.index === 0) {
				return true;
			}
			_i++;
		}
		return false;
	};
	Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); };
	tzset = function(s, initEnd, sec) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs, d, dstIsDST, dstName, dstOffset, end, endRule, endSec, initEnd, isDST, name, offset, ok, s, sec, start, startRule, startSec, stdIsDST, stdName, stdOffset, x$1, x$2, x$3, x$4, x$5, x$6, yday, year, ysec;
		name = "";
		offset = 0;
		start = new $Int64(0, 0);
		end = new $Int64(0, 0);
		isDST = false;
		ok = false;
		_tmp = "";
		_tmp$1 = "";
		stdName = _tmp;
		dstName = _tmp$1;
		_tmp$2 = 0;
		_tmp$3 = 0;
		stdOffset = _tmp$2;
		dstOffset = _tmp$3;
		_tuple = tzsetName(s);
		stdName = _tuple[0];
		s = _tuple[1];
		ok = _tuple[2];
		if (ok) {
			_tuple$1 = tzsetOffset(s);
			stdOffset = _tuple$1[0];
			s = _tuple$1[1];
			ok = _tuple$1[2];
		}
		if (!ok) {
			_tmp$4 = "";
			_tmp$5 = 0;
			_tmp$6 = new $Int64(0, 0);
			_tmp$7 = new $Int64(0, 0);
			_tmp$8 = false;
			_tmp$9 = false;
			name = _tmp$4;
			offset = _tmp$5;
			start = _tmp$6;
			end = _tmp$7;
			isDST = _tmp$8;
			ok = _tmp$9;
			return [name, offset, start, end, isDST, ok];
		}
		stdOffset = -stdOffset;
		if ((s.length === 0) || (s.charCodeAt(0) === 44)) {
			_tmp$10 = stdName;
			_tmp$11 = stdOffset;
			_tmp$12 = initEnd;
			_tmp$13 = new $Int64(2147483647, 4294967295);
			_tmp$14 = false;
			_tmp$15 = true;
			name = _tmp$10;
			offset = _tmp$11;
			start = _tmp$12;
			end = _tmp$13;
			isDST = _tmp$14;
			ok = _tmp$15;
			return [name, offset, start, end, isDST, ok];
		}
		_tuple$2 = tzsetName(s);
		dstName = _tuple$2[0];
		s = _tuple$2[1];
		ok = _tuple$2[2];
		if (ok) {
			if ((s.length === 0) || (s.charCodeAt(0) === 44)) {
				dstOffset = stdOffset + 3600 >> 0;
			} else {
				_tuple$3 = tzsetOffset(s);
				dstOffset = _tuple$3[0];
				s = _tuple$3[1];
				ok = _tuple$3[2];
				dstOffset = -dstOffset;
			}
		}
		if (!ok) {
			_tmp$16 = "";
			_tmp$17 = 0;
			_tmp$18 = new $Int64(0, 0);
			_tmp$19 = new $Int64(0, 0);
			_tmp$20 = false;
			_tmp$21 = false;
			name = _tmp$16;
			offset = _tmp$17;
			start = _tmp$18;
			end = _tmp$19;
			isDST = _tmp$20;
			ok = _tmp$21;
			return [name, offset, start, end, isDST, ok];
		}
		if (s.length === 0) {
			s = ",M3.2.0,M11.1.0";
		}
		if (!((s.charCodeAt(0) === 44)) && !((s.charCodeAt(0) === 59))) {
			_tmp$22 = "";
			_tmp$23 = 0;
			_tmp$24 = new $Int64(0, 0);
			_tmp$25 = new $Int64(0, 0);
			_tmp$26 = false;
			_tmp$27 = false;
			name = _tmp$22;
			offset = _tmp$23;
			start = _tmp$24;
			end = _tmp$25;
			isDST = _tmp$26;
			ok = _tmp$27;
			return [name, offset, start, end, isDST, ok];
		}
		s = $substring(s, 1);
		_tmp$28 = new rule.ptr(0, 0, 0, 0, 0);
		_tmp$29 = new rule.ptr(0, 0, 0, 0, 0);
		startRule = $clone(_tmp$28, rule);
		endRule = $clone(_tmp$29, rule);
		_tuple$4 = tzsetRule(s);
		rule.copy(startRule, _tuple$4[0]);
		s = _tuple$4[1];
		ok = _tuple$4[2];
		if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 44))) {
			_tmp$30 = "";
			_tmp$31 = 0;
			_tmp$32 = new $Int64(0, 0);
			_tmp$33 = new $Int64(0, 0);
			_tmp$34 = false;
			_tmp$35 = false;
			name = _tmp$30;
			offset = _tmp$31;
			start = _tmp$32;
			end = _tmp$33;
			isDST = _tmp$34;
			ok = _tmp$35;
			return [name, offset, start, end, isDST, ok];
		}
		s = $substring(s, 1);
		_tuple$5 = tzsetRule(s);
		rule.copy(endRule, _tuple$5[0]);
		s = _tuple$5[1];
		ok = _tuple$5[2];
		if (!ok || s.length > 0) {
			_tmp$36 = "";
			_tmp$37 = 0;
			_tmp$38 = new $Int64(0, 0);
			_tmp$39 = new $Int64(0, 0);
			_tmp$40 = false;
			_tmp$41 = false;
			name = _tmp$36;
			offset = _tmp$37;
			start = _tmp$38;
			end = _tmp$39;
			isDST = _tmp$40;
			ok = _tmp$41;
			return [name, offset, start, end, isDST, ok];
		}
		_tuple$6 = absDate(((x$1 = (x$2 = new $Int64(sec.$high + 14, sec.$low + 2006054656), new $Int64(x$2.$high + 2147483631, x$2.$low + 2739393024)), new $Uint64(x$1.$high, x$1.$low))), false);
		year = _tuple$6[0];
		yday = _tuple$6[3];
		ysec = (x$3 = (new $Int64(0, ($imul(yday, 86400)))), x$4 = $div64(sec, new $Int64(0, 86400), true), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low));
		d = daysSinceEpoch(year);
		abs = ((x$5 = $mul64(d, new $Uint64(0, 86400)), new $Int64(x$5.$high, x$5.$low)));
		abs = (x$6 = new $Int64(-2147483647, 3844486912), new $Int64(abs.$high + x$6.$high, abs.$low + x$6.$low));
		startSec = (new $Int64(0, tzruleTime(year, $clone(startRule, rule), stdOffset)));
		endSec = (new $Int64(0, tzruleTime(year, $clone(endRule, rule), dstOffset)));
		_tmp$42 = true;
		_tmp$43 = false;
		dstIsDST = _tmp$42;
		stdIsDST = _tmp$43;
		if ((endSec.$high < startSec.$high || (endSec.$high === startSec.$high && endSec.$low < startSec.$low))) {
			_tmp$44 = endSec;
			_tmp$45 = startSec;
			startSec = _tmp$44;
			endSec = _tmp$45;
			_tmp$46 = dstName;
			_tmp$47 = stdName;
			stdName = _tmp$46;
			dstName = _tmp$47;
			_tmp$48 = dstOffset;
			_tmp$49 = stdOffset;
			stdOffset = _tmp$48;
			dstOffset = _tmp$49;
			_tmp$50 = dstIsDST;
			_tmp$51 = stdIsDST;
			stdIsDST = _tmp$50;
			dstIsDST = _tmp$51;
		}
		if ((ysec.$high < startSec.$high || (ysec.$high === startSec.$high && ysec.$low < startSec.$low))) {
			_tmp$52 = stdName;
			_tmp$53 = stdOffset;
			_tmp$54 = abs;
			_tmp$55 = new $Int64(startSec.$high + abs.$high, startSec.$low + abs.$low);
			_tmp$56 = stdIsDST;
			_tmp$57 = true;
			name = _tmp$52;
			offset = _tmp$53;
			start = _tmp$54;
			end = _tmp$55;
			isDST = _tmp$56;
			ok = _tmp$57;
			return [name, offset, start, end, isDST, ok];
		} else if ((ysec.$high > endSec.$high || (ysec.$high === endSec.$high && ysec.$low >= endSec.$low))) {
			_tmp$58 = stdName;
			_tmp$59 = stdOffset;
			_tmp$60 = new $Int64(endSec.$high + abs.$high, endSec.$low + abs.$low);
			_tmp$61 = new $Int64(abs.$high + 0, abs.$low + 31536000);
			_tmp$62 = stdIsDST;
			_tmp$63 = true;
			name = _tmp$58;
			offset = _tmp$59;
			start = _tmp$60;
			end = _tmp$61;
			isDST = _tmp$62;
			ok = _tmp$63;
			return [name, offset, start, end, isDST, ok];
		} else {
			_tmp$64 = dstName;
			_tmp$65 = dstOffset;
			_tmp$66 = new $Int64(startSec.$high + abs.$high, startSec.$low + abs.$low);
			_tmp$67 = new $Int64(endSec.$high + abs.$high, endSec.$low + abs.$low);
			_tmp$68 = dstIsDST;
			_tmp$69 = true;
			name = _tmp$64;
			offset = _tmp$65;
			start = _tmp$66;
			end = _tmp$67;
			isDST = _tmp$68;
			ok = _tmp$69;
			return [name, offset, start, end, isDST, ok];
		}
	};
	tzsetName = function(s) {
		var _1, _i, _i$1, _ref, _ref$1, _rune, _rune$1, i, i$1, r, r$1, s;
		if (s.length === 0) {
			return ["", "", false];
		}
		if (!((s.charCodeAt(0) === 60))) {
			_ref = s;
			_i = 0;
			while (true) {
				if (!(_i < _ref.length)) { break; }
				_rune = $decodeRune(_ref, _i);
				i = _i;
				r = _rune[0];
				_1 = r;
				if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55)) || (_1 === (56)) || (_1 === (57)) || (_1 === (44)) || (_1 === (45)) || (_1 === (43))) {
					if (i < 3) {
						return ["", "", false];
					}
					return [$substring(s, 0, i), $substring(s, i), true];
				}
				_i += _rune[1];
			}
			if (s.length < 3) {
				return ["", "", false];
			}
			return [s, "", true];
		} else {
			_ref$1 = s;
			_i$1 = 0;
			while (true) {
				if (!(_i$1 < _ref$1.length)) { break; }
				_rune$1 = $decodeRune(_ref$1, _i$1);
				i$1 = _i$1;
				r$1 = _rune$1[0];
				if (r$1 === 62) {
					return [$substring(s, 1, i$1), $substring(s, (i$1 + 1 >> 0)), true];
				}
				_i$1 += _rune$1[1];
			}
			return ["", "", false];
		}
	};
	tzsetOffset = function(s) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, hours, mins, neg, off, offset, ok, rest, s, secs;
		offset = 0;
		rest = "";
		ok = false;
		if (s.length === 0) {
			_tmp = 0;
			_tmp$1 = "";
			_tmp$2 = false;
			offset = _tmp;
			rest = _tmp$1;
			ok = _tmp$2;
			return [offset, rest, ok];
		}
		neg = false;
		if (s.charCodeAt(0) === 43) {
			s = $substring(s, 1);
		} else if (s.charCodeAt(0) === 45) {
			s = $substring(s, 1);
			neg = true;
		}
		hours = 0;
		_tuple = tzsetNum(s, 0, 168);
		hours = _tuple[0];
		s = _tuple[1];
		ok = _tuple[2];
		if (!ok) {
			_tmp$3 = 0;
			_tmp$4 = "";
			_tmp$5 = false;
			offset = _tmp$3;
			rest = _tmp$4;
			ok = _tmp$5;
			return [offset, rest, ok];
		}
		off = $imul(hours, 3600);
		if ((s.length === 0) || !((s.charCodeAt(0) === 58))) {
			if (neg) {
				off = -off;
			}
			_tmp$6 = off;
			_tmp$7 = s;
			_tmp$8 = true;
			offset = _tmp$6;
			rest = _tmp$7;
			ok = _tmp$8;
			return [offset, rest, ok];
		}
		mins = 0;
		_tuple$1 = tzsetNum($substring(s, 1), 0, 59);
		mins = _tuple$1[0];
		s = _tuple$1[1];
		ok = _tuple$1[2];
		if (!ok) {
			_tmp$9 = 0;
			_tmp$10 = "";
			_tmp$11 = false;
			offset = _tmp$9;
			rest = _tmp$10;
			ok = _tmp$11;
			return [offset, rest, ok];
		}
		off = off + (($imul(mins, 60))) >> 0;
		if ((s.length === 0) || !((s.charCodeAt(0) === 58))) {
			if (neg) {
				off = -off;
			}
			_tmp$12 = off;
			_tmp$13 = s;
			_tmp$14 = true;
			offset = _tmp$12;
			rest = _tmp$13;
			ok = _tmp$14;
			return [offset, rest, ok];
		}
		secs = 0;
		_tuple$2 = tzsetNum($substring(s, 1), 0, 59);
		secs = _tuple$2[0];
		s = _tuple$2[1];
		ok = _tuple$2[2];
		if (!ok) {
			_tmp$15 = 0;
			_tmp$16 = "";
			_tmp$17 = false;
			offset = _tmp$15;
			rest = _tmp$16;
			ok = _tmp$17;
			return [offset, rest, ok];
		}
		off = off + (secs) >> 0;
		if (neg) {
			off = -off;
		}
		_tmp$18 = off;
		_tmp$19 = s;
		_tmp$20 = true;
		offset = _tmp$18;
		rest = _tmp$19;
		ok = _tmp$20;
		return [offset, rest, ok];
	};
	tzsetRule = function(s) {
		var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, day, day$1, jday, mon, offset, ok, r, s, week;
		r = new rule.ptr(0, 0, 0, 0, 0);
		if (s.length === 0) {
			return [new rule.ptr(0, 0, 0, 0, 0), "", false];
		}
		ok = false;
		if (s.charCodeAt(0) === 74) {
			jday = 0;
			_tuple = tzsetNum($substring(s, 1), 1, 365);
			jday = _tuple[0];
			s = _tuple[1];
			ok = _tuple[2];
			if (!ok) {
				return [new rule.ptr(0, 0, 0, 0, 0), "", false];
			}
			r.kind = 0;
			r.day = jday;
		} else if (s.charCodeAt(0) === 77) {
			mon = 0;
			_tuple$1 = tzsetNum($substring(s, 1), 1, 12);
			mon = _tuple$1[0];
			s = _tuple$1[1];
			ok = _tuple$1[2];
			if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 46))) {
				return [new rule.ptr(0, 0, 0, 0, 0), "", false];
			}
			week = 0;
			_tuple$2 = tzsetNum($substring(s, 1), 1, 5);
			week = _tuple$2[0];
			s = _tuple$2[1];
			ok = _tuple$2[2];
			if (!ok || (s.length === 0) || !((s.charCodeAt(0) === 46))) {
				return [new rule.ptr(0, 0, 0, 0, 0), "", false];
			}
			day = 0;
			_tuple$3 = tzsetNum($substring(s, 1), 0, 6);
			day = _tuple$3[0];
			s = _tuple$3[1];
			ok = _tuple$3[2];
			if (!ok) {
				return [new rule.ptr(0, 0, 0, 0, 0), "", false];
			}
			r.kind = 2;
			r.day = day;
			r.week = week;
			r.mon = mon;
		} else {
			day$1 = 0;
			_tuple$4 = tzsetNum(s, 0, 365);
			day$1 = _tuple$4[0];
			s = _tuple$4[1];
			ok = _tuple$4[2];
			if (!ok) {
				return [new rule.ptr(0, 0, 0, 0, 0), "", false];
			}
			r.kind = 1;
			r.day = day$1;
		}
		if ((s.length === 0) || !((s.charCodeAt(0) === 47))) {
			r.time = 7200;
			return [r, s, true];
		}
		_tuple$5 = tzsetOffset($substring(s, 1));
		offset = _tuple$5[0];
		s = _tuple$5[1];
		ok = _tuple$5[2];
		if (!ok) {
			return [new rule.ptr(0, 0, 0, 0, 0), "", false];
		}
		r.time = offset;
		return [r, s, true];
	};
	tzsetNum = function(s, min, max) {
		var _i, _ref, _rune, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, i, max, min, num, ok, r, rest, s;
		num = 0;
		rest = "";
		ok = false;
		if (s.length === 0) {
			_tmp = 0;
			_tmp$1 = "";
			_tmp$2 = false;
			num = _tmp;
			rest = _tmp$1;
			ok = _tmp$2;
			return [num, rest, ok];
		}
		num = 0;
		_ref = s;
		_i = 0;
		while (true) {
			if (!(_i < _ref.length)) { break; }
			_rune = $decodeRune(_ref, _i);
			i = _i;
			r = _rune[0];
			if (r < 48 || r > 57) {
				if ((i === 0) || num < min) {
					_tmp$3 = 0;
					_tmp$4 = "";
					_tmp$5 = false;
					num = _tmp$3;
					rest = _tmp$4;
					ok = _tmp$5;
					return [num, rest, ok];
				}
				_tmp$6 = num;
				_tmp$7 = $substring(s, i);
				_tmp$8 = true;
				num = _tmp$6;
				rest = _tmp$7;
				ok = _tmp$8;
				return [num, rest, ok];
			}
			num = $imul(num, (10));
			num = num + ((((r >> 0)) - 48 >> 0)) >> 0;
			if (num > max) {
				_tmp$9 = 0;
				_tmp$10 = "";
				_tmp$11 = false;
				num = _tmp$9;
				rest = _tmp$10;
				ok = _tmp$11;
				return [num, rest, ok];
			}
			_i += _rune[1];
		}
		if (num < min) {
			_tmp$12 = 0;
			_tmp$13 = "";
			_tmp$14 = false;
			num = _tmp$12;
			rest = _tmp$13;
			ok = _tmp$14;
			return [num, rest, ok];
		}
		_tmp$15 = num;
		_tmp$16 = "";
		_tmp$17 = true;
		num = _tmp$15;
		rest = _tmp$16;
		ok = _tmp$17;
		return [num, rest, ok];
	};
	tzruleTime = function(year, r, off) {
		var _1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, d, dow, i, m1, off, r, s, x$1, year, yy0, yy1, yy2;
		s = 0;
		_1 = r.kind;
		if (_1 === (0)) {
			s = $imul(((r.day - 1 >> 0)), 86400);
			if (isLeap(year) && r.day >= 60) {
				s = s + (86400) >> 0;
			}
		} else if (_1 === (1)) {
			s = $imul(r.day, 86400);
		} else if (_1 === (2)) {
			m1 = (_r$1 = ((r.mon + 9 >> 0)) % 12, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 1 >> 0;
			yy0 = year;
			if (r.mon <= 2) {
				yy0 = yy0 - (1) >> 0;
			}
			yy1 = (_q = yy0 / 100, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
			yy2 = (_r$2 = yy0 % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero"));
			dow = (_r$3 = (((((((_q$1 = ((($imul(26, m1)) - 2 >> 0)) / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0) + yy2 >> 0) + (_q$2 = yy2 / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0) + (_q$3 = yy1 / 4, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0) - ($imul(2, yy1)) >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero"));
			if (dow < 0) {
				dow = dow + (7) >> 0;
			}
			d = r.day - dow >> 0;
			if (d < 0) {
				d = d + (7) >> 0;
			}
			i = 1;
			while (true) {
				if (!(i < r.week)) { break; }
				if ((d + 7 >> 0) >= daysIn(((r.mon >> 0)), year)) {
					break;
				}
				d = d + (7) >> 0;
				i = i + (1) >> 0;
			}
			d = d + ((((x$1 = r.mon - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0))) >> 0;
			if (isLeap(year) && r.mon > 2) {
				d = d + (1) >> 0;
			}
			s = $imul(d, 86400);
		}
		return (s + r.time >> 0) - off >> 0;
	};
	Location.ptr.prototype.lookupName = function(name, unix) {
		var {_i, _i$1, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s, $r, $c} = $restore(this, {name, unix});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		offset = 0;
		ok = false;
		l = this;
		_r$1 = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		l = _r$1;
		_ref = l.zone;
		_i = 0;
		/* while (true) { */ case 2:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; }
			i = _i;
			zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]));
			/* */ if (zone$1.name === name) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (zone$1.name === name) { */ case 4:
				_r$2 = l.lookup((x$2 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$2.$high, unix.$low - x$2.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_tuple = _r$2;
				nam = _tuple[0];
				offset$1 = _tuple[1];
				if (nam === zone$1.name) {
					_tmp = offset$1;
					_tmp$1 = true;
					offset = _tmp;
					ok = _tmp$1;
					$s = -1; return [offset, ok];
				}
			/* } */ case 5:
			_i++;
		$s = 2; continue;
		case 3:
		_ref$1 = l.zone;
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.$length)) { break; }
			i$1 = _i$1;
			zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1]));
			if (zone$2.name === name) {
				_tmp$2 = zone$2.offset;
				_tmp$3 = true;
				offset = _tmp$2;
				ok = _tmp$3;
				$s = -1; return [offset, ok];
			}
			_i$1++;
		}
		$s = -1; return [offset, ok];
		/* */ } return; } var $f = {$blk: Location.ptr.prototype.lookupName, $c: true, $r, _i, _i$1, _r$1, _r$2, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s};return $f;
	};
	Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); };
	Time.ptr.prototype.nsec = function() {
		var t, x$1;
		t = this;
		return (((x$1 = t.wall, new $Uint64(x$1.$high & 0, (x$1.$low & 1073741823) >>> 0)).$low >> 0));
	};
	Time.prototype.nsec = function() { return this.$val.nsec(); };
	Time.ptr.prototype.sec = function() {
		var t, x$1, x$2, x$3, x$4;
		t = this;
		if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			return (x$3 = ((x$4 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$4.$high, x$4.$low))), new $Int64(13 + x$3.$high, 3618733952 + x$3.$low));
		}
		return t.ext;
	};
	Time.prototype.sec = function() { return this.$val.sec(); };
	Time.ptr.prototype.unixSec = function() {
		var t, x$1;
		t = this;
		return (x$1 = t.sec(), new $Int64(x$1.$high + -15, x$1.$low + 2288912640));
	};
	Time.prototype.unixSec = function() { return this.$val.unixSec(); };
	Time.ptr.prototype.addSec = function(d) {
		var d, dsec, sec, sum, t, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		t = this;
		if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			sec = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low)));
			dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low);
			if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) {
				t.wall = (x$4 = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & 0, (x$6.$low & 1073741823) >>> 0)), x$7 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)), new $Uint64(x$4.$high | 2147483648, (x$4.$low | 0) >>> 0));
				return;
			}
			t.stripMono();
		}
		sum = (x$8 = t.ext, new $Int64(x$8.$high + d.$high, x$8.$low + d.$low));
		if (((x$9 = t.ext, (sum.$high > x$9.$high || (sum.$high === x$9.$high && sum.$low > x$9.$low)))) === ((d.$high > 0 || (d.$high === 0 && d.$low > 0)))) {
			t.ext = sum;
		} else if ((d.$high > 0 || (d.$high === 0 && d.$low > 0))) {
			t.ext = new $Int64(2147483647, 4294967295);
		} else {
			t.ext = new $Int64(-2147483648, 1);
		}
	};
	Time.prototype.addSec = function(d) { return this.$val.addSec(d); };
	Time.ptr.prototype.setLoc = function(loc) {
		var loc, t;
		t = this;
		if (loc === utcLoc) {
			loc = ptrType$2.nil;
		}
		t.stripMono();
		t.loc = loc;
	};
	Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); };
	Time.ptr.prototype.stripMono = function() {
		var t, x$1, x$2, x$3, x$4;
		t = this;
		if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			t.ext = t.sec();
			t.wall = (x$3 = t.wall, x$4 = new $Uint64(0, 1073741823), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0));
		}
	};
	Time.prototype.stripMono = function() { return this.$val.stripMono(); };
	Time.ptr.prototype.After = function(u) {
		var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6;
		t = this;
		if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			return (x$5 = t.ext, x$6 = u.ext, (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)));
		}
		ts = t.sec();
		us = u.sec();
		return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec();
	};
	Time.prototype.After = function(u) { return this.$val.After(u); };
	Time.ptr.prototype.Before = function(u) {
		var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6;
		t = this;
		if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			return (x$5 = t.ext, x$6 = u.ext, (x$5.$high < x$6.$high || (x$5.$high === x$6.$high && x$5.$low < x$6.$low)));
		}
		ts = t.sec();
		us = u.sec();
		return (ts.$high < us.$high || (ts.$high === us.$high && ts.$low < us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() < u.nsec();
	};
	Time.prototype.Before = function(u) { return this.$val.Before(u); };
	Time.ptr.prototype.Equal = function(u) {
		var t, u, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
		t = this;
		if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			return (x$5 = t.ext, x$6 = u.ext, (x$5.$high === x$6.$high && x$5.$low === x$6.$low));
		}
		return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high === x$8.$high && x$7.$low === x$8.$low)) && (t.nsec() === u.nsec());
	};
	Time.prototype.Equal = function(u) { return this.$val.Equal(u); };
	Month.prototype.String = function() {
		var buf, m, n, x$1;
		m = this.$val;
		if (1 <= m && m <= 12) {
			return (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= longMonthNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : longMonthNames.$array[longMonthNames.$offset + x$1]));
		}
		buf = $makeSlice(sliceType$3, 20);
		n = fmtInt(buf, (new $Uint64(0, m)));
		return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")";
	};
	$ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); };
	Weekday.prototype.String = function() {
		var buf, d, n;
		d = this.$val;
		if (0 <= d && d <= 6) {
			return ((d < 0 || d >= longDayNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : longDayNames.$array[longDayNames.$offset + d]);
		}
		buf = $makeSlice(sliceType$3, 20);
		n = fmtInt(buf, (new $Uint64(0, d)));
		return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")";
	};
	$ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); };
	Time.ptr.prototype.IsZero = function() {
		var t, x$1;
		t = this;
		return (x$1 = t.sec(), (x$1.$high === 0 && x$1.$low === 0)) && (t.nsec() === 0);
	};
	Time.prototype.IsZero = function() { return this.$val.IsZero(); };
	Time.ptr.prototype.abs = function() {
		var {_r$1, _r$2, _tuple, l, offset, sec, t, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		l = t.loc;
		/* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (l === ptrType$2.nil || l === localLoc) { */ case 1:
			_r$1 = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			l = _r$1;
		/* } */ case 2:
		sec = t.unixSec();
		/* */ if (!(l === utcLoc)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(l === utcLoc)) { */ case 4:
			/* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 6:
				sec = (x$3 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low));
				$s = 8; continue;
			/* } else { */ case 7:
				_r$2 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_tuple = _r$2;
				offset = _tuple[1];
				sec = (x$4 = (new $Int64(0, offset)), new $Int64(sec.$high + x$4.$high, sec.$low + x$4.$low));
			/* } */ case 8:
		/* } */ case 5:
		$s = -1; return ((x$5 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$5.$high, x$5.$low)));
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.abs, $c: true, $r, _r$1, _r$2, _tuple, l, offset, sec, t, x$1, x$2, x$3, x$4, x$5, $s};return $f;
	};
	Time.prototype.abs = function() { return this.$val.abs(); };
	Time.ptr.prototype.locabs = function() {
		var {_r$1, _r$2, _tuple, abs, l, name, offset, sec, t, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		name = "";
		offset = 0;
		abs = new $Uint64(0, 0);
		t = this;
		l = t.loc;
		/* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (l === ptrType$2.nil || l === localLoc) { */ case 1:
			_r$1 = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			l = _r$1;
		/* } */ case 2:
		sec = t.unixSec();
		/* */ if (!(l === utcLoc)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(l === utcLoc)) { */ case 4:
			/* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 7:
				name = l.cacheZone.name;
				offset = l.cacheZone.offset;
				$s = 9; continue;
			/* } else { */ case 8:
				_r$2 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_tuple = _r$2;
				name = _tuple[0];
				offset = _tuple[1];
			/* } */ case 9:
			sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low));
			$s = 6; continue;
		/* } else { */ case 5:
			name = "UTC";
		/* } */ case 6:
		abs = ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low)));
		$s = -1; return [name, offset, abs];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.locabs, $c: true, $r, _r$1, _r$2, _tuple, abs, l, name, offset, sec, t, x$1, x$2, x$3, x$4, $s};return $f;
	};
	Time.prototype.locabs = function() { return this.$val.locabs(); };
	Time.ptr.prototype.Date = function() {
		var {_r$1, _tuple, day, month, t, year, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		year = 0;
		month = 0;
		day = 0;
		t = this;
		_r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		year = _tuple[0];
		month = _tuple[1];
		day = _tuple[2];
		$s = -1; return [year, month, day];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Date, $c: true, $r, _r$1, _tuple, day, month, t, year, $s};return $f;
	};
	Time.prototype.Date = function() { return this.$val.Date(); };
	Time.ptr.prototype.Year = function() {
		var {_r$1, _tuple, t, year, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		year = _tuple[0];
		$s = -1; return year;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Year, $c: true, $r, _r$1, _tuple, t, year, $s};return $f;
	};
	Time.prototype.Year = function() { return this.$val.Year(); };
	Time.ptr.prototype.Month = function() {
		var {_r$1, _tuple, month, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		month = _tuple[1];
		$s = -1; return month;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Month, $c: true, $r, _r$1, _tuple, month, t, $s};return $f;
	};
	Time.prototype.Month = function() { return this.$val.Month(); };
	Time.ptr.prototype.Day = function() {
		var {_r$1, _tuple, day, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		day = _tuple[2];
		$s = -1; return day;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Day, $c: true, $r, _r$1, _tuple, day, t, $s};return $f;
	};
	Time.prototype.Day = function() { return this.$val.Day(); };
	Time.ptr.prototype.Weekday = function() {
		var {$24r, _r$1, _r$2, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = absWeekday(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Weekday, $c: true, $r, $24r, _r$1, _r$2, t, $s};return $f;
	};
	Time.prototype.Weekday = function() { return this.$val.Weekday(); };
	absWeekday = function(abs) {
		var _q, abs, sec;
		sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true);
		return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0));
	};
	Time.ptr.prototype.ISOWeek = function() {
		var {_q, _r$1, _tmp, _tmp$1, _tuple, abs, d, t, week, x$1, yday, year, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		year = 0;
		week = 0;
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		abs = _r$1;
		d = 4 - absWeekday(abs) >> 0;
		if (d === 4) {
			d = -3;
		}
		abs = (x$1 = $mul64((new $Uint64(0, d)), new $Uint64(0, 86400)), new $Uint64(abs.$high + x$1.$high, abs.$low + x$1.$low));
		_tuple = absDate(abs, false);
		year = _tuple[0];
		yday = _tuple[3];
		_tmp = year;
		_tmp$1 = (_q = yday / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0;
		year = _tmp;
		week = _tmp$1;
		$s = -1; return [year, week];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.ISOWeek, $c: true, $r, _q, _r$1, _tmp, _tmp$1, _tuple, abs, d, t, week, x$1, yday, year, $s};return $f;
	};
	Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); };
	Time.ptr.prototype.Clock = function() {
		var {$24r, _r$1, _r$2, _tuple, hour, min, sec, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		hour = 0;
		min = 0;
		sec = 0;
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = absClock(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		hour = _tuple[0];
		min = _tuple[1];
		sec = _tuple[2];
		$24r = [hour, min, sec];
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Clock, $c: true, $r, $24r, _r$1, _r$2, _tuple, hour, min, sec, t, $s};return $f;
	};
	Time.prototype.Clock = function() { return this.$val.Clock(); };
	absClock = function(abs) {
		var _q, _q$1, abs, hour, min, sec;
		hour = 0;
		min = 0;
		sec = 0;
		sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0));
		hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
		sec = sec - (($imul(hour, 3600))) >> 0;
		min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
		sec = sec - (($imul(min, 60))) >> 0;
		return [hour, min, sec];
	};
	Time.ptr.prototype.Hour = function() {
		var {$24r, _q, _r$1, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = (_q = (($div64(_r$1, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Hour, $c: true, $r, $24r, _q, _r$1, t, $s};return $f;
	};
	Time.prototype.Hour = function() { return this.$val.Hour(); };
	Time.ptr.prototype.Minute = function() {
		var {$24r, _q, _r$1, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = (_q = (($div64(_r$1, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Minute, $c: true, $r, $24r, _q, _r$1, t, $s};return $f;
	};
	Time.prototype.Minute = function() { return this.$val.Minute(); };
	Time.ptr.prototype.Second = function() {
		var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = (($div64(_r$1, new $Uint64(0, 60), true).$low >> 0));
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Second, $c: true, $r, $24r, _r$1, t, $s};return $f;
	};
	Time.prototype.Second = function() { return this.$val.Second(); };
	Time.ptr.prototype.Nanosecond = function() {
		var t;
		t = this;
		return ((t.nsec() >> 0));
	};
	Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); };
	Time.ptr.prototype.YearDay = function() {
		var {_r$1, _tuple, t, yday, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		yday = _tuple[3];
		$s = -1; return yday + 1 >> 0;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.YearDay, $c: true, $r, _r$1, _tuple, t, yday, $s};return $f;
	};
	Time.prototype.YearDay = function() { return this.$val.YearDay(); };
	Duration.prototype.String = function() {
		var _tuple, _tuple$1, buf, d, neg, prec, u, w;
		d = this;
		buf = arrayType$2.zero();
		w = 32;
		u = (new $Uint64(d.$high, d.$low));
		neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0));
		if (neg) {
			u = new $Uint64(-u.$high, -u.$low);
		}
		if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) {
			prec = 0;
			w = w - (1) >> 0;
			((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115);
			w = w - (1) >> 0;
			if ((u.$high === 0 && u.$low === 0)) {
				return "0s";
			} else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) {
				prec = 0;
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110);
			} else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) {
				prec = 3;
				w = w - (1) >> 0;
				$copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5");
			} else {
				prec = 6;
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109);
			}
			_tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec);
			w = _tuple[0];
			u = _tuple[1];
			w = fmtInt($subslice(new sliceType$3(buf), 0, w), u);
		} else {
			w = w - (1) >> 0;
			((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115);
			_tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9);
			w = _tuple$1[0];
			u = _tuple$1[1];
			w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true));
			u = $div64(u, (new $Uint64(0, 60)), false);
			if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) {
				w = w - (1) >> 0;
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109);
				w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true));
				u = $div64(u, (new $Uint64(0, 60)), false);
				if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) {
					w = w - (1) >> 0;
					((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104);
					w = fmtInt($subslice(new sliceType$3(buf), 0, w), u);
				}
			}
		}
		if (neg) {
			w = w - (1) >> 0;
			((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
		}
		return ($bytesToString($subslice(new sliceType$3(buf), w)));
	};
	$ptrType(Duration).prototype.String = function() { return this.$get().String(); };
	fmtFrac = function(buf, v, prec) {
		var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w;
		nw = 0;
		nv = new $Uint64(0, 0);
		w = buf.$length;
		print = false;
		i = 0;
		while (true) {
			if (!(i < prec)) { break; }
			digit = $div64(v, new $Uint64(0, 10), true);
			print = print || !((digit.$high === 0 && digit.$low === 0));
			if (print) {
				w = w - (1) >> 0;
				((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24));
			}
			v = $div64(v, (new $Uint64(0, 10)), false);
			i = i + (1) >> 0;
		}
		if (print) {
			w = w - (1) >> 0;
			((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
		}
		_tmp = w;
		_tmp$1 = v;
		nw = _tmp;
		nv = _tmp$1;
		return [nw, nv];
	};
	fmtInt = function(buf, v) {
		var buf, v, w;
		w = buf.$length;
		if ((v.$high === 0 && v.$low === 0)) {
			w = w - (1) >> 0;
			((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48);
		} else {
			while (true) {
				if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; }
				w = w - (1) >> 0;
				((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24));
				v = $div64(v, (new $Uint64(0, 10)), false);
			}
		}
		return w;
	};
	Duration.prototype.Nanoseconds = function() {
		var d;
		d = this;
		return (new $Int64(d.$high, d.$low));
	};
	$ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); };
	Duration.prototype.Microseconds = function() {
		var d;
		d = this;
		return $div64((new $Int64(d.$high, d.$low)), new $Int64(0, 1000), false);
	};
	$ptrType(Duration).prototype.Microseconds = function() { return this.$get().Microseconds(); };
	Duration.prototype.Milliseconds = function() {
		var d;
		d = this;
		return $div64((new $Int64(d.$high, d.$low)), new $Int64(0, 1000000), false);
	};
	$ptrType(Duration).prototype.Milliseconds = function() { return this.$get().Milliseconds(); };
	Duration.prototype.Seconds = function() {
		var d, nsec, sec;
		d = this;
		sec = $div64(d, new Duration(0, 1000000000), false);
		nsec = $div64(d, new Duration(0, 1000000000), true);
		return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09;
	};
	$ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); };
	Duration.prototype.Minutes = function() {
		var d, min, nsec;
		d = this;
		min = $div64(d, new Duration(13, 4165425152), false);
		nsec = $div64(d, new Duration(13, 4165425152), true);
		return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10;
	};
	$ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); };
	Duration.prototype.Hours = function() {
		var d, hour, nsec;
		d = this;
		hour = $div64(d, new Duration(838, 817405952), false);
		nsec = $div64(d, new Duration(838, 817405952), true);
		return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12;
	};
	$ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); };
	Duration.prototype.Truncate = function(m) {
		var d, m, x$1;
		d = this;
		if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) {
			return d;
		}
		return (x$1 = $div64(d, m, true), new Duration(d.$high - x$1.$high, d.$low - x$1.$low));
	};
	$ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); };
	lessThanHalf = function(x$1, y) {
		var x$1, x$2, x$3, x$4, x$5, y;
		return (x$2 = (x$3 = (new $Uint64(x$1.$high, x$1.$low)), x$4 = (new $Uint64(x$1.$high, x$1.$low)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), x$5 = (new $Uint64(y.$high, y.$low)), (x$2.$high < x$5.$high || (x$2.$high === x$5.$high && x$2.$low < x$5.$low)));
	};
	Duration.prototype.Round = function(m) {
		var d, d1, d1$1, m, r, x$1, x$2;
		d = this;
		if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) {
			return d;
		}
		r = $div64(d, m, true);
		if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) {
			r = new Duration(-r.$high, -r.$low);
			if (lessThanHalf(r, m)) {
				return new Duration(d.$high + r.$high, d.$low + r.$low);
			}
			d1 = (x$1 = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x$1.$high + r.$high, x$1.$low + r.$low));
			if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) {
				return d1;
			}
			return new Duration(-2147483648, 0);
		}
		if (lessThanHalf(r, m)) {
			return new Duration(d.$high - r.$high, d.$low - r.$low);
		}
		d1$1 = (x$2 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$2.$high - r.$high, x$2.$low - r.$low));
		if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) {
			return d1$1;
		}
		return new Duration(2147483647, 4294967295);
	};
	$ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); };
	Time.ptr.prototype.Add = function(d) {
		var d, dsec, nsec, t, te, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		t = this;
		dsec = ((x$1 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$1.$high, x$1.$low)));
		nsec = t.nsec() + (((x$2 = $div64(d, new Duration(0, 1000000000), true), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)) >> 0;
		if (nsec >= 1000000000) {
			dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high + x$3.$high, dsec.$low + x$3.$low));
			nsec = nsec - (1000000000) >> 0;
		} else if (nsec < 0) {
			dsec = (x$4 = new $Int64(0, 1), new $Int64(dsec.$high - x$4.$high, dsec.$low - x$4.$low));
			nsec = nsec + (1000000000) >> 0;
		}
		t.wall = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & ~0, (x$6.$low & ~1073741823) >>> 0)), x$7 = (new $Uint64(0, nsec)), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0));
		t.addSec(dsec);
		if (!((x$8 = (x$9 = t.wall, new $Uint64(x$9.$high & 2147483648, (x$9.$low & 0) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) {
			te = (x$10 = t.ext, x$11 = (new $Int64(d.$high, d.$low)), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low));
			if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$12 = t.ext, (te.$high > x$12.$high || (te.$high === x$12.$high && te.$low > x$12.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$13 = t.ext, (te.$high < x$13.$high || (te.$high === x$13.$high && te.$low < x$13.$low)))) {
				t.stripMono();
			} else {
				t.ext = te;
			}
		}
		return t;
	};
	Time.prototype.Add = function(d) { return this.$val.Add(d); };
	Time.ptr.prototype.Sub = function(u) {
		var d, d$1, t, te, u, ue, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		t = this;
		if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			te = t.ext;
			ue = u.ext;
			d = ((x$5 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$5.$high, x$5.$low)));
			if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) {
				return new Duration(2147483647, 4294967295);
			}
			if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) {
				return new Duration(-2147483648, 0);
			}
			return d;
		}
		d$1 = (x$6 = $mul64(((x$7 = (x$8 = t.sec(), x$9 = u.sec(), new $Int64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$10 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$6.$high + x$10.$high, x$6.$low + x$10.$low));
		if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) {
			return d$1;
		} else if ($clone(t, Time).Before($clone(u, Time))) {
			return new Duration(-2147483648, 0);
		} else {
			return new Duration(2147483647, 4294967295);
		}
	};
	Time.prototype.Sub = function(u) { return this.$val.Sub(u); };
	Until = function(t) {
		var {_r$1, _r$2, now$1, t, x$1, x$2, x$3, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		now$1 = new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil);
		/* */ if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { */ case 1:
			_r$1 = runtimeNano(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			Time.copy(now$1, new Time.ptr(new $Uint64(2147483648, 0), (x$3 = _r$1, new $Int64(x$3.$high - startNano.$high, x$3.$low - startNano.$low)), ptrType$2.nil));
			$s = 3; continue;
		/* } else { */ case 2:
			_r$2 = Now(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			Time.copy(now$1, _r$2);
		/* } */ case 3:
		$s = -1; return $clone(t, Time).Sub($clone(now$1, Time));
		/* */ } return; } var $f = {$blk: Until, $c: true, $r, _r$1, _r$2, now$1, t, x$1, x$2, x$3, $s};return $f;
	};
	$pkg.Until = Until;
	Time.ptr.prototype.AddDate = function(years, months, days) {
		var {$24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, day, days, hour, min, month, months, sec, t, year, years, $s, $r, $c} = $restore(this, {years, months, days});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		year = _tuple[0];
		month = _tuple[1];
		day = _tuple[2];
		_r$2 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		hour = _tuple$1[0];
		min = _tuple$1[1];
		sec = _tuple$1[2];
		_r$3 = Date(year + years >> 0, month + ((months >> 0)) >> 0, day + days >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.AddDate, $c: true, $r, $24r, _r$1, _r$2, _r$3, _tuple, _tuple$1, day, days, hour, min, month, months, sec, t, year, years, $s};return $f;
	};
	Time.prototype.AddDate = function(years, months, days) { return this.$val.AddDate(years, months, days); };
	Time.ptr.prototype.date = function(full) {
		var {$24r, _r$1, _r$2, _tuple, day, full, month, t, yday, year, $s, $r, $c} = $restore(this, {full});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		year = 0;
		month = 0;
		day = 0;
		yday = 0;
		t = this;
		_r$1 = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = absDate(_r$1, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		year = _tuple[0];
		month = _tuple[1];
		day = _tuple[2];
		yday = _tuple[3];
		$24r = [year, month, day, yday];
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.date, $c: true, $r, $24r, _r$1, _r$2, _tuple, day, full, month, t, yday, year, $s};return $f;
	};
	Time.prototype.date = function(full) { return this.$val.date(full); };
	absDate = function(abs, full) {
		var _q, abs, begin, d, day, end, full, month, n, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year;
		year = 0;
		month = 0;
		day = 0;
		yday = 0;
		d = $div64(abs, new $Uint64(0, 86400), false);
		n = $div64(d, new $Uint64(0, 146097), false);
		y = $mul64(new $Uint64(0, 400), n);
		d = (x$1 = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x$1.$high, d.$low - x$1.$low));
		n = $div64(d, new $Uint64(0, 36524), false);
		n = (x$2 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$2.$high, n.$low - x$2.$low));
		y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$3.$high, y.$low + x$3.$low));
		d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$4.$high, d.$low - x$4.$low));
		n = $div64(d, new $Uint64(0, 1461), false);
		y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$5.$high, y.$low + x$5.$low));
		d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$6.$high, d.$low - x$6.$low));
		n = $div64(d, new $Uint64(0, 365), false);
		n = (x$7 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$7.$high, n.$low - x$7.$low));
		y = (x$8 = n, new $Uint64(y.$high + x$8.$high, y.$low + x$8.$low));
		d = (x$9 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$9.$high, d.$low - x$9.$low));
		year = (((x$10 = (x$11 = (new $Int64(y.$high, y.$low)), new $Int64(x$11.$high + -69, x$11.$low + 4075721025)), x$10.$low + ((x$10.$high >> 31) * 4294967296)) >> 0));
		yday = ((d.$low >> 0));
		if (!full) {
			return [year, month, day, yday];
		}
		day = yday;
		if (isLeap(year)) {
			if (day > 59) {
				day = day - (1) >> 0;
			} else if ((day === 59)) {
				month = 2;
				day = 29;
				return [year, month, day, yday];
			}
		}
		month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0));
		end = (((x$12 = month + 1 >> 0, ((x$12 < 0 || x$12 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$12])) >> 0));
		begin = 0;
		if (day >= end) {
			month = month + (1) >> 0;
			begin = end;
		} else {
			begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0));
		}
		month = month + (1) >> 0;
		day = (day - begin >> 0) + 1 >> 0;
		return [year, month, day, yday];
	};
	daysIn = function(m, year) {
		var m, x$1, year;
		if ((m === 2) && isLeap(year)) {
			return 29;
		}
		return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0) >> 0));
	};
	daysSinceEpoch = function(year) {
		var d, n, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, year;
		y = ((x$1 = (x$2 = (new $Int64(0, year)), new $Int64(x$2.$high - -69, x$2.$low - 4075721025)), new $Uint64(x$1.$high, x$1.$low)));
		n = $div64(y, new $Uint64(0, 400), false);
		y = (x$3 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low));
		d = $mul64(new $Uint64(0, 146097), n);
		n = $div64(y, new $Uint64(0, 100), false);
		y = (x$4 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$4.$high, y.$low - x$4.$low));
		d = (x$5 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$5.$high, d.$low + x$5.$low));
		n = $div64(y, new $Uint64(0, 4), false);
		y = (x$6 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$6.$high, y.$low - x$6.$low));
		d = (x$7 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low));
		n = y;
		d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low));
		return d;
	};
	runtimeNano = function() {
		$throwRuntimeError("native function not implemented: time.runtimeNano");
	};
	Now = function() {
		var {_r$1, _tuple, mono, nsec, sec, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = now(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		sec = _tuple[0];
		nsec = _tuple[1];
		mono = _tuple[2];
		mono = (x$1 = startNano, new $Int64(mono.$high - x$1.$high, mono.$low - x$1.$low));
		sec = (x$2 = new $Int64(0, 2682288000), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low));
		if (!((x$3 = $shiftRightUint64((new $Uint64(sec.$high, sec.$low)), 33), (x$3.$high === 0 && x$3.$low === 0)))) {
			$s = -1; return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 13, sec.$low + 3618733952), $pkg.Local);
		}
		$s = -1; return new Time.ptr((x$4 = (x$5 = $shiftLeft64((new $Uint64(sec.$high, sec.$low)), 30), new $Uint64(2147483648 | x$5.$high, (0 | x$5.$low) >>> 0)), x$6 = (new $Uint64(0, nsec)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), mono, $pkg.Local);
		/* */ } return; } var $f = {$blk: Now, $c: true, $r, _r$1, _tuple, mono, nsec, sec, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f;
	};
	$pkg.Now = Now;
	unixTime = function(sec, nsec) {
		var nsec, sec;
		return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local);
	};
	Time.ptr.prototype.UTC = function() {
		var t;
		t = this;
		t.setLoc(utcLoc);
		return t;
	};
	Time.prototype.UTC = function() { return this.$val.UTC(); };
	Time.ptr.prototype.Local = function() {
		var t;
		t = this;
		t.setLoc($pkg.Local);
		return t;
	};
	Time.prototype.Local = function() { return this.$val.Local(); };
	Time.ptr.prototype.In = function(loc) {
		var loc, t;
		t = this;
		if (loc === ptrType$2.nil) {
			$panic(new $String("time: missing Location in call to Time.In"));
		}
		t.setLoc(loc);
		return t;
	};
	Time.prototype.In = function(loc) { return this.$val.In(loc); };
	Time.ptr.prototype.Location = function() {
		var l, t;
		t = this;
		l = t.loc;
		if (l === ptrType$2.nil) {
			l = $pkg.UTC;
		}
		return l;
	};
	Time.prototype.Location = function() { return this.$val.Location(); };
	Time.ptr.prototype.Zone = function() {
		var {_r$1, _tuple, name, offset, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		name = "";
		offset = 0;
		t = this;
		_r$1 = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		name = _tuple[0];
		offset = _tuple[1];
		$s = -1; return [name, offset];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Zone, $c: true, $r, _r$1, _tuple, name, offset, t, $s};return $f;
	};
	Time.prototype.Zone = function() { return this.$val.Zone(); };
	Time.ptr.prototype.Unix = function() {
		var t;
		t = this;
		return t.unixSec();
	};
	Time.prototype.Unix = function() { return this.$val.Unix(); };
	Time.ptr.prototype.UnixMilli = function() {
		var t, x$1, x$2;
		t = this;
		return (x$1 = $mul64(t.unixSec(), new $Int64(0, 1000)), x$2 = $div64((new $Int64(0, t.nsec())), new $Int64(0, 1000000), false), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
	};
	Time.prototype.UnixMilli = function() { return this.$val.UnixMilli(); };
	Time.ptr.prototype.UnixMicro = function() {
		var t, x$1, x$2;
		t = this;
		return (x$1 = $mul64(t.unixSec(), new $Int64(0, 1000000)), x$2 = $div64((new $Int64(0, t.nsec())), new $Int64(0, 1000), false), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
	};
	Time.prototype.UnixMicro = function() { return this.$val.UnixMicro(); };
	Time.ptr.prototype.UnixNano = function() {
		var t, x$1, x$2;
		t = this;
		return (x$1 = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$2 = (new $Int64(0, t.nsec())), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
	};
	Time.prototype.UnixNano = function() { return this.$val.UnixNano(); };
	Time.ptr.prototype.MarshalBinary = function() {
		var {_q, _r$1, _r$2, _r$3, _tuple, enc, nsec, offset, offsetMin, offsetSec, sec, t, version, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		offsetMin = 0;
		offsetSec = 0;
		version = 1;
		/* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1:
			offsetMin = -1;
			$s = 3; continue;
		/* } else { */ case 2:
			_r$1 = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			offset = _tuple[1];
			if (!(((_r$2 = offset % 60, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0))) {
				version = 2;
				offsetSec = (((_r$3 = offset % 60, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) << 24 >> 24));
			}
			offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
			if (offset < -32768 || (offset === -1) || offset > 32767) {
				$s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")];
			}
			offsetMin = ((offset << 16 >> 16));
		/* } */ case 3:
		sec = t.sec();
		nsec = t.nsec();
		enc = new sliceType$3([version, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]);
		if (version === 2) {
			enc = $append(enc, ((offsetSec << 24 >>> 24)));
		}
		$s = -1; return [enc, $ifaceNil];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.MarshalBinary, $c: true, $r, _q, _r$1, _r$2, _r$3, _tuple, enc, nsec, offset, offsetMin, offsetSec, sec, t, version, $s};return $f;
	};
	Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); };
	Time.ptr.prototype.UnmarshalBinary = function(data) {
		var {_r$1, _tuple, buf, data, localoff, nsec, offset, sec, t, version, wantLen, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {data});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		buf = data;
		if (buf.$length === 0) {
			$s = -1; return errors.New("Time.UnmarshalBinary: no data");
		}
		version = (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]);
		if (!((version === 1)) && !((version === 2))) {
			$s = -1; return errors.New("Time.UnmarshalBinary: unsupported version");
		}
		wantLen = 15;
		if (version === 2) {
			wantLen = wantLen + (1) >> 0;
		}
		if (!((buf.$length === wantLen))) {
			$s = -1; return errors.New("Time.UnmarshalBinary: invalid length");
		}
		buf = $subslice(buf, 1);
		sec = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (x$7 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$8 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$6.$high | x$9.$high, (x$6.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$5.$high | x$10.$high, (x$5.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$4.$high | x$11.$high, (x$4.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$3.$high | x$12.$high, (x$3.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$2.$high | x$13.$high, (x$2.$low | x$13.$low) >>> 0)), x$14 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x$1.$high | x$14.$high, (x$1.$low | x$14.$low) >>> 0));
		buf = $subslice(buf, 8);
		nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0);
		buf = $subslice(buf, 4);
		offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60);
		if (version === 2) {
			offset = offset + ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0))) >> 0;
		}
		Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil));
		t.wall = (new $Uint64(0, nsec));
		t.ext = sec;
		/* */ if (offset === -60) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (offset === -60) { */ case 1:
			t.setLoc(utcLoc);
			$s = 3; continue;
		/* } else { */ case 2:
			_r$1 = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			localoff = _tuple[1];
			if (offset === localoff) {
				t.setLoc($pkg.Local);
			} else {
				t.setLoc(FixedZone("", offset));
			}
		/* } */ case 3:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.UnmarshalBinary, $c: true, $r, _r$1, _tuple, buf, data, localoff, nsec, offset, sec, t, version, wantLen, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f;
	};
	Time.prototype.UnmarshalBinary = function(data) { return this.$val.UnmarshalBinary(data); };
	Time.ptr.prototype.GobEncode = function() {
		var {$24r, _r$1, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.GobEncode, $c: true, $r, $24r, _r$1, t, $s};return $f;
	};
	Time.prototype.GobEncode = function() { return this.$val.GobEncode(); };
	Time.ptr.prototype.GobDecode = function(data) {
		var {$24r, _r$1, data, t, $s, $r, $c} = $restore(this, {data});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.GobDecode, $c: true, $r, $24r, _r$1, data, t, $s};return $f;
	};
	Time.prototype.GobDecode = function(data) { return this.$val.GobDecode(data); };
	Time.ptr.prototype.MarshalJSON = function() {
		var {_r$1, _r$2, b, t, y, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		y = _r$1;
		if (y < 0 || y >= 10000) {
			$s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")];
		}
		b = $makeSlice(sliceType$3, 0, 37);
		b = $append(b, 34);
		_r$2 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		b = _r$2;
		b = $append(b, 34);
		$s = -1; return [b, $ifaceNil];
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.MarshalJSON, $c: true, $r, _r$1, _r$2, b, t, y, $s};return $f;
	};
	Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); };
	Time.ptr.prototype.UnmarshalJSON = function(data) {
		var {_r$1, _tuple, data, err, t, $s, $r, $c} = $restore(this, {data});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if (($bytesToString(data)) === "null") {
			$s = -1; return $ifaceNil;
		}
		err = $ifaceNil;
		_r$1 = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		Time.copy(t, _tuple[0]);
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.UnmarshalJSON, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f;
	};
	Time.prototype.UnmarshalJSON = function(data) { return this.$val.UnmarshalJSON(data); };
	Time.ptr.prototype.MarshalText = function() {
		var {$24r, _r$1, _r$2, b, t, y, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		y = _r$1;
		if (y < 0 || y >= 10000) {
			$s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")];
		}
		b = $makeSlice(sliceType$3, 0, 35);
		_r$2 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = [_r$2, $ifaceNil];
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.MarshalText, $c: true, $r, $24r, _r$1, _r$2, b, t, y, $s};return $f;
	};
	Time.prototype.MarshalText = function() { return this.$val.MarshalText(); };
	Time.ptr.prototype.UnmarshalText = function(data) {
		var {_r$1, _tuple, data, err, t, $s, $r, $c} = $restore(this, {data});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		err = $ifaceNil;
		_r$1 = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		Time.copy(t, _tuple[0]);
		err = _tuple[1];
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.UnmarshalText, $c: true, $r, _r$1, _tuple, data, err, t, $s};return $f;
	};
	Time.prototype.UnmarshalText = function(data) { return this.$val.UnmarshalText(data); };
	Unix = function(sec, nsec) {
		var n, nsec, sec, x$1, x$2, x$3, x$4;
		if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) {
			n = $div64(nsec, new $Int64(0, 1000000000), false);
			sec = (x$1 = n, new $Int64(sec.$high + x$1.$high, sec.$low + x$1.$low));
			nsec = (x$2 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$2.$high, nsec.$low - x$2.$low));
			if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) {
				nsec = (x$3 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$3.$high, nsec.$low + x$3.$low));
				sec = (x$4 = new $Int64(0, 1), new $Int64(sec.$high - x$4.$high, sec.$low - x$4.$low));
			}
		}
		return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0)));
	};
	$pkg.Unix = Unix;
	Time.ptr.prototype.IsDST = function() {
		var {_r$1, _tuple, isDST, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = t.loc.lookup($clone(t, Time).Unix()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		isDST = _tuple[4];
		$s = -1; return isDST;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.IsDST, $c: true, $r, _r$1, _tuple, isDST, t, $s};return $f;
	};
	Time.prototype.IsDST = function() { return this.$val.IsDST(); };
	isLeap = function(year) {
		var _r$1, _r$2, _r$3, year;
		return ((_r$1 = year % 4, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$2 = year % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$3 = year % 400, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) === 0));
	};
	norm = function(hi, lo, base) {
		var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo;
		nhi = 0;
		nlo = 0;
		if (lo < 0) {
			n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0;
			hi = hi - (n) >> 0;
			lo = lo + (($imul(n, base))) >> 0;
		}
		if (lo >= base) {
			n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
			hi = hi + (n$1) >> 0;
			lo = lo - (($imul(n$1, base))) >> 0;
		}
		_tmp = hi;
		_tmp$1 = lo;
		nhi = _tmp;
		nlo = _tmp$1;
		return [nhi, nlo];
	};
	Date = function(year, month, day, hour, min, sec, nsec, loc) {
		var {_r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs, d, day, end, hour, loc, m, min, month, nsec, offset, sec, start, t, unix, utc, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, year, $s, $r, $c} = $restore(this, {year, month, day, hour, min, sec, nsec, loc});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (loc === ptrType$2.nil) {
			$panic(new $String("time: missing Location in call to Date"));
		}
		m = ((month >> 0)) - 1 >> 0;
		_tuple = norm(year, m, 12);
		year = _tuple[0];
		m = _tuple[1];
		month = ((m >> 0)) + 1 >> 0;
		_tuple$1 = norm(sec, nsec, 1000000000);
		sec = _tuple$1[0];
		nsec = _tuple$1[1];
		_tuple$2 = norm(min, sec, 60);
		min = _tuple$2[0];
		sec = _tuple$2[1];
		_tuple$3 = norm(hour, min, 60);
		hour = _tuple$3[0];
		min = _tuple$3[1];
		_tuple$4 = norm(day, hour, 24);
		day = _tuple$4[0];
		hour = _tuple$4[1];
		d = daysSinceEpoch(year);
		d = (x$1 = (new $Uint64(0, (x$2 = month - 1 >> 0, ((x$2 < 0 || x$2 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$2])))), new $Uint64(d.$high + x$1.$high, d.$low + x$1.$low));
		if (isLeap(year) && month >= 3) {
			d = (x$3 = new $Uint64(0, 1), new $Uint64(d.$high + x$3.$high, d.$low + x$3.$low));
		}
		d = (x$4 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$4.$high, d.$low + x$4.$low));
		abs = $mul64(d, new $Uint64(0, 86400));
		abs = (x$5 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$5.$high, abs.$low + x$5.$low));
		unix = (x$6 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$6.$high + -2147483647, x$6.$low + 3844486912));
		_r$1 = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple$5 = _r$1;
		offset = _tuple$5[1];
		start = _tuple$5[2];
		end = _tuple$5[3];
		/* */ if (!((offset === 0))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!((offset === 0))) { */ case 2:
			utc = (x$7 = (new $Int64(0, offset)), new $Int64(unix.$high - x$7.$high, unix.$low - x$7.$low));
			/* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low)) || (utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low)) || (utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 4:
				_r$2 = loc.lookup(utc); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_tuple$6 = _r$2;
				offset = _tuple$6[1];
			/* } */ case 5:
			unix = (x$8 = (new $Int64(0, offset)), new $Int64(unix.$high - x$8.$high, unix.$low - x$8.$low));
		/* } */ case 3:
		t = $clone(unixTime(unix, ((nsec >> 0))), Time);
		t.setLoc(loc);
		$s = -1; return t;
		/* */ } return; } var $f = {$blk: Date, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, abs, d, day, end, hour, loc, m, min, month, nsec, offset, sec, start, t, unix, utc, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, year, $s};return $f;
	};
	$pkg.Date = Date;
	Time.ptr.prototype.Truncate = function(d) {
		var _tuple, d, r, t;
		t = this;
		t.stripMono();
		if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
			return t;
		}
		_tuple = div($clone(t, Time), d);
		r = _tuple[1];
		return $clone(t, Time).Add(new Duration(-r.$high, -r.$low));
	};
	Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); };
	Time.ptr.prototype.Round = function(d) {
		var _tuple, d, r, t;
		t = this;
		t.stripMono();
		if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) {
			return t;
		}
		_tuple = div($clone(t, Time), d);
		r = _tuple[1];
		if (lessThanHalf(r, d)) {
			return $clone(t, Time).Add(new Duration(-r.$high, -r.$low));
		}
		return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low));
	};
	Time.prototype.Round = function(d) { return this.$val.Round(d); };
	div = function(t, d) {
		var _q, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		qmod2 = 0;
		r = new Duration(0, 0);
		neg = false;
		nsec = t.nsec();
		sec = t.sec();
		if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) {
			neg = true;
			sec = new $Int64(-sec.$high, -sec.$low);
			nsec = -nsec;
			if (nsec < 0) {
				nsec = nsec + (1000000000) >> 0;
				sec = (x$1 = new $Int64(0, 1), new $Int64(sec.$high - x$1.$high, sec.$low - x$1.$low));
			}
		}
		if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$2 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$2.$high === 0 && x$2.$low === 0))) {
			qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1;
			r = (new Duration(0, (_r$1 = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))));
		} else if ((x$3 = $div64(d, new Duration(0, 1000000000), true), (x$3.$high === 0 && x$3.$low === 0))) {
			d1 = ((x$4 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$4.$high, x$4.$low)));
			qmod2 = (((x$5 = $div64(sec, d1, false), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)) & 1;
			r = (x$6 = $mul64(((x$7 = $div64(sec, d1, true), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$8 = (new Duration(0, nsec)), new Duration(x$6.$high + x$8.$high, x$6.$low + x$8.$low));
		} else {
			sec$1 = (new $Uint64(sec.$high, sec.$low));
			tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000));
			u1 = $shiftRightUint64(tmp, 32);
			u0 = $shiftLeft64(tmp, 32);
			tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000));
			_tmp = u0;
			_tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low);
			u0x = _tmp;
			u0 = _tmp$1;
			if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) {
				u1 = (x$9 = new $Uint64(0, 1), new $Uint64(u1.$high + x$9.$high, u1.$low + x$9.$low));
			}
			_tmp$2 = u0;
			_tmp$3 = (x$10 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$10.$high, u0.$low + x$10.$low));
			u0x = _tmp$2;
			u0 = _tmp$3;
			if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) {
				u1 = (x$11 = new $Uint64(0, 1), new $Uint64(u1.$high + x$11.$high, u1.$low + x$11.$low));
			}
			d1$1 = (new $Uint64(d.$high, d.$low));
			while (true) {
				if (!(!((x$12 = $shiftRightUint64(d1$1, 63), (x$12.$high === 0 && x$12.$low === 1))))) { break; }
				d1$1 = $shiftLeft64(d1$1, (1));
			}
			d0 = new $Uint64(0, 0);
			while (true) {
				qmod2 = 0;
				if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) {
					qmod2 = 1;
					_tmp$4 = u0;
					_tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low);
					u0x = _tmp$4;
					u0 = _tmp$5;
					if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) {
						u1 = (x$13 = new $Uint64(0, 1), new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low));
					}
					u1 = (x$14 = d1$1, new $Uint64(u1.$high - x$14.$high, u1.$low - x$14.$low));
				}
				if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$15 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$15.$high && d0.$low === x$15.$low))) {
					break;
				}
				d0 = $shiftRightUint64(d0, (1));
				d0 = (x$16 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$16.$high, (d0.$low | x$16.$low) >>> 0));
				d1$1 = $shiftRightUint64(d1$1, (1));
			}
			r = (new Duration(u0.$high, u0.$low));
		}
		if (neg && !((r.$high === 0 && r.$low === 0))) {
			qmod2 = (qmod2 ^ (1)) >> 0;
			r = new Duration(d.$high - r.$high, d.$low - r.$low);
		}
		return [qmod2, r];
	};
	when = function(d) {
		var {$24r, _r$1, _r$2, d, t, x$1, x$2, $s, $r, $c} = $restore(this, {d});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* */ if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { */ case 1:
			_r$1 = runtimeNano(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			$24r = _r$1;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		_r$2 = runtimeNano(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		t = (x$1 = _r$2, x$2 = (new $Int64(d.$high, d.$low)), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
		if ((t.$high < 0 || (t.$high === 0 && t.$low < 0))) {
			t = new $Int64(2147483647, 4294967295);
		}
		$s = -1; return t;
		/* */ } return; } var $f = {$blk: when, $c: true, $r, $24r, _r$1, _r$2, d, t, x$1, x$2, $s};return $f;
	};
	Timer.ptr.prototype.Stop = function() {
		var t;
		t = this;
		if (t.r.f === $throwNilPointerError) {
			$panic(new $String("time: Stop called on uninitialized Timer"));
		}
		return stopTimer(t.r);
	};
	Timer.prototype.Stop = function() { return this.$val.Stop(); };
	Timer.ptr.prototype.Reset = function(d) {
		var {$24r, _r$1, _r$2, d, t, w, $s, $r, $c} = $restore(this, {d});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if (t.r.f === $throwNilPointerError) {
			$panic(new $String("time: Reset called on uninitialized Timer"));
		}
		_r$1 = when(d); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		w = _r$1;
		_r$2 = resetTimer(t.r, w); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Timer.ptr.prototype.Reset, $c: true, $r, $24r, _r$1, _r$2, d, t, w, $s};return $f;
	};
	Timer.prototype.Reset = function(d) { return this.$val.Reset(d); };
	AfterFunc = function(d, f) {
		var {_r$1, d, f, t, $s, $r, $c} = $restore(this, {d, f});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = when(d); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		t = new Timer.ptr($chanNil, new runtimeTimer.ptr(0, _r$1, new $Int64(0, 0), goFunc, new funcType(f), 0, null, false));
		$r = startTimer(t.r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return t;
		/* */ } return; } var $f = {$blk: AfterFunc, $c: true, $r, _r$1, d, f, t, $s};return $f;
	};
	$pkg.AfterFunc = AfterFunc;
	goFunc = function(arg, seq) {
		var arg, seq;
		$go($assertType(arg, funcType), []);
	};
	initLocal = function() {
		var _q, _r$1, d, min, offset, z;
		localLoc.name = "Local";
		z = new zone.ptr("", 0, false);
		d = new ($global.Date)();
		offset = $imul(($parseInt(d.getTimezoneOffset()) >> 0), -1);
		z.offset = $imul(offset, 60);
		z.name = "UTC";
		if (offset < 0) {
			z.name = z.name + ("-");
			offset = $imul(offset, (-1));
		} else {
			z.name = z.name + ("+");
		}
		z.name = z.name + (itoa((_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))));
		min = (_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"));
		if (!((min === 0))) {
			z.name = z.name + (":" + itoa(min));
		}
		localLoc.zone = new sliceType([$clone(z, zone)]);
	};
	itoa = function(i) {
		var i;
		if (i < 10) {
			return $substring("0123456789", i, (i + 1 >> 0));
		}
		return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0));
	};
	init = function() {
		$unused(Unix(new $Int64(0, 0), new $Int64(0, 0)));
	};
	now = function() {
		var {_r$1, _tmp, _tmp$1, _tmp$2, mono, n, nsec, sec, x$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		sec = new $Int64(0, 0);
		nsec = 0;
		mono = new $Int64(0, 0);
		_r$1 = runtimeNano(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		n = _r$1;
		_tmp = $div64(n, new $Int64(0, 1000000000), false);
		_tmp$1 = (((x$1 = $div64(n, new $Int64(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0));
		_tmp$2 = n;
		sec = _tmp;
		nsec = _tmp$1;
		mono = _tmp$2;
		$s = -1; return [sec, nsec, mono];
		/* */ } return; } var $f = {$blk: now, $c: true, $r, _r$1, _tmp, _tmp$1, _tmp$2, mono, n, nsec, sec, x$1, $s};return $f;
	};
	Sleep = function(d) {
		var {_r$1, c, d, x$1, $s, $r, $c} = $restore(this, {d});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = [c];
		c[0] = new $Chan(structType, 0);
		$setTimeout((function(c) { return function() {
			$close(c[0]);
		}; })(c), (((x$1 = $div64(d, new Duration(0, 1000000), false), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0)));
		_r$1 = $recv(c[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$1[0];
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Sleep, $c: true, $r, _r$1, c, d, x$1, $s};return $f;
	};
	$pkg.Sleep = Sleep;
	startTimer = function(t) {
		var {_r$1, diff, t, x$1, x$2, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = [t];
		t[0].active = true;
		_r$1 = runtimeNano(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		diff = $div64(((x$1 = t[0].when, x$2 = _r$1, new $Int64(x$1.$high - x$2.$high, x$1.$low - x$2.$low))), new $Int64(0, 1000000), false);
		if ((diff.$high > 0 || (diff.$high === 0 && diff.$low > 2147483647))) {
			$s = -1; return;
		}
		if ((diff.$high < 0 || (diff.$high === 0 && diff.$low < 0))) {
			diff = new $Int64(0, 0);
		}
		t[0].timeout = $setTimeout((function(t) { return function $b() {
			var {x$3, x$4, x$5, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			t[0].active = false;
			/* */ if (!((x$3 = t[0].period, (x$3.$high === 0 && x$3.$low === 0)))) { $s = 1; continue; }
			/* */ $s = 2; continue;
			/* if (!((x$3 = t[0].period, (x$3.$high === 0 && x$3.$low === 0)))) { */ case 1:
				t[0].when = (x$4 = t[0].when, x$5 = t[0].period, new $Int64(x$4.$high + x$5.$high, x$4.$low + x$5.$low));
				$r = startTimer(t[0]); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 2:
			$go(t[0].f, [t[0].arg, 0]);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, x$3, x$4, x$5, $s};return $f;
		}; })(t), $externalize(new $Int64(diff.$high + 0, diff.$low + 1), $Int64));
		$s = -1; return;
		/* */ } return; } var $f = {$blk: startTimer, $c: true, $r, _r$1, diff, t, x$1, x$2, $s};return $f;
	};
	stopTimer = function(t) {
		var t, wasActive;
		$global.clearTimeout(t.timeout);
		wasActive = t.active;
		t.active = false;
		return wasActive;
	};
	modTimer = function(t, when$1, period, f, arg, seq) {
		var {arg, f, period, seq, t, when$1, $s, $r, $c} = $restore(this, {t, when$1, period, f, arg, seq});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		stopTimer(t);
		t.when = when$1;
		t.period = period;
		t.f = f;
		t.arg = arg;
		t.seq = seq;
		$r = startTimer(t); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: modTimer, $c: true, $r, arg, f, period, seq, t, when$1, $s};return $f;
	};
	resetTimer = function(t, when$1) {
		var {t, wasActive, when$1, $s, $r, $c} = $restore(this, {t, when$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		wasActive = t.active;
		$r = modTimer(t, when$1, t.period, t.f, t.arg, t.seq); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return wasActive;
		/* */ } return; } var $f = {$blk: resetTimer, $c: true, $r, t, wasActive, when$1, $s};return $f;
	};
	startsWithLowerCase = function(str) {
		var c, str;
		if (str.length === 0) {
			return false;
		}
		c = str.charCodeAt(0);
		return 97 <= c && c <= 122;
	};
	nextStdChunk = function(layout) {
		var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$87, _tmp$88, _tmp$89, _tmp$9, _tmp$90, _tmp$91, _tmp$92, c, ch, code, i, j, layout, prefix, std, std$1, suffix, x$1;
		prefix = "";
		std = 0;
		suffix = "";
		i = 0;
		while (true) {
			if (!(i < layout.length)) { break; }
			c = ((layout.charCodeAt(i) >> 0));
			_1 = c;
			if (_1 === (74)) {
				if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") {
					if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") {
						_tmp = $substring(layout, 0, i);
						_tmp$1 = 257;
						_tmp$2 = $substring(layout, (i + 7 >> 0));
						prefix = _tmp;
						std = _tmp$1;
						suffix = _tmp$2;
						return [prefix, std, suffix];
					}
					if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) {
						_tmp$3 = $substring(layout, 0, i);
						_tmp$4 = 258;
						_tmp$5 = $substring(layout, (i + 3 >> 0));
						prefix = _tmp$3;
						std = _tmp$4;
						suffix = _tmp$5;
						return [prefix, std, suffix];
					}
				}
			} else if (_1 === (77)) {
				if (layout.length >= (i + 3 >> 0)) {
					if ($substring(layout, i, (i + 3 >> 0)) === "Mon") {
						if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") {
							_tmp$6 = $substring(layout, 0, i);
							_tmp$7 = 261;
							_tmp$8 = $substring(layout, (i + 6 >> 0));
							prefix = _tmp$6;
							std = _tmp$7;
							suffix = _tmp$8;
							return [prefix, std, suffix];
						}
						if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) {
							_tmp$9 = $substring(layout, 0, i);
							_tmp$10 = 262;
							_tmp$11 = $substring(layout, (i + 3 >> 0));
							prefix = _tmp$9;
							std = _tmp$10;
							suffix = _tmp$11;
							return [prefix, std, suffix];
						}
					}
					if ($substring(layout, i, (i + 3 >> 0)) === "MST") {
						_tmp$12 = $substring(layout, 0, i);
						_tmp$13 = 23;
						_tmp$14 = $substring(layout, (i + 3 >> 0));
						prefix = _tmp$12;
						std = _tmp$13;
						suffix = _tmp$14;
						return [prefix, std, suffix];
					}
				}
			} else if (_1 === (48)) {
				if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) {
					_tmp$15 = $substring(layout, 0, i);
					_tmp$16 = (x$1 = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x$1 < 0 || x$1 >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x$1]));
					_tmp$17 = $substring(layout, (i + 2 >> 0));
					prefix = _tmp$15;
					std = _tmp$16;
					suffix = _tmp$17;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 3 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 48) && (layout.charCodeAt((i + 2 >> 0)) === 50)) {
					_tmp$18 = $substring(layout, 0, i);
					_tmp$19 = 267;
					_tmp$20 = $substring(layout, (i + 3 >> 0));
					prefix = _tmp$18;
					std = _tmp$19;
					suffix = _tmp$20;
					return [prefix, std, suffix];
				}
			} else if (_1 === (49)) {
				if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) {
					_tmp$21 = $substring(layout, 0, i);
					_tmp$22 = 524;
					_tmp$23 = $substring(layout, (i + 2 >> 0));
					prefix = _tmp$21;
					std = _tmp$22;
					suffix = _tmp$23;
					return [prefix, std, suffix];
				}
				_tmp$24 = $substring(layout, 0, i);
				_tmp$25 = 259;
				_tmp$26 = $substring(layout, (i + 1 >> 0));
				prefix = _tmp$24;
				std = _tmp$25;
				suffix = _tmp$26;
				return [prefix, std, suffix];
			} else if (_1 === (50)) {
				if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") {
					_tmp$27 = $substring(layout, 0, i);
					_tmp$28 = 275;
					_tmp$29 = $substring(layout, (i + 4 >> 0));
					prefix = _tmp$27;
					std = _tmp$28;
					suffix = _tmp$29;
					return [prefix, std, suffix];
				}
				_tmp$30 = $substring(layout, 0, i);
				_tmp$31 = 263;
				_tmp$32 = $substring(layout, (i + 1 >> 0));
				prefix = _tmp$30;
				std = _tmp$31;
				suffix = _tmp$32;
				return [prefix, std, suffix];
			} else if (_1 === (95)) {
				if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) {
					if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") {
						_tmp$33 = $substring(layout, 0, (i + 1 >> 0));
						_tmp$34 = 275;
						_tmp$35 = $substring(layout, (i + 5 >> 0));
						prefix = _tmp$33;
						std = _tmp$34;
						suffix = _tmp$35;
						return [prefix, std, suffix];
					}
					_tmp$36 = $substring(layout, 0, i);
					_tmp$37 = 264;
					_tmp$38 = $substring(layout, (i + 2 >> 0));
					prefix = _tmp$36;
					std = _tmp$37;
					suffix = _tmp$38;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 3 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 95) && (layout.charCodeAt((i + 2 >> 0)) === 50)) {
					_tmp$39 = $substring(layout, 0, i);
					_tmp$40 = 266;
					_tmp$41 = $substring(layout, (i + 3 >> 0));
					prefix = _tmp$39;
					std = _tmp$40;
					suffix = _tmp$41;
					return [prefix, std, suffix];
				}
			} else if (_1 === (51)) {
				_tmp$42 = $substring(layout, 0, i);
				_tmp$43 = 525;
				_tmp$44 = $substring(layout, (i + 1 >> 0));
				prefix = _tmp$42;
				std = _tmp$43;
				suffix = _tmp$44;
				return [prefix, std, suffix];
			} else if (_1 === (52)) {
				_tmp$45 = $substring(layout, 0, i);
				_tmp$46 = 527;
				_tmp$47 = $substring(layout, (i + 1 >> 0));
				prefix = _tmp$45;
				std = _tmp$46;
				suffix = _tmp$47;
				return [prefix, std, suffix];
			} else if (_1 === (53)) {
				_tmp$48 = $substring(layout, 0, i);
				_tmp$49 = 529;
				_tmp$50 = $substring(layout, (i + 1 >> 0));
				prefix = _tmp$48;
				std = _tmp$49;
				suffix = _tmp$50;
				return [prefix, std, suffix];
			} else if (_1 === (80)) {
				if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) {
					_tmp$51 = $substring(layout, 0, i);
					_tmp$52 = 533;
					_tmp$53 = $substring(layout, (i + 2 >> 0));
					prefix = _tmp$51;
					std = _tmp$52;
					suffix = _tmp$53;
					return [prefix, std, suffix];
				}
			} else if (_1 === (112)) {
				if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) {
					_tmp$54 = $substring(layout, 0, i);
					_tmp$55 = 534;
					_tmp$56 = $substring(layout, (i + 2 >> 0));
					prefix = _tmp$54;
					std = _tmp$55;
					suffix = _tmp$56;
					return [prefix, std, suffix];
				}
			} else if (_1 === (45)) {
				if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") {
					_tmp$57 = $substring(layout, 0, i);
					_tmp$58 = 30;
					_tmp$59 = $substring(layout, (i + 7 >> 0));
					prefix = _tmp$57;
					std = _tmp$58;
					suffix = _tmp$59;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") {
					_tmp$60 = $substring(layout, 0, i);
					_tmp$61 = 33;
					_tmp$62 = $substring(layout, (i + 9 >> 0));
					prefix = _tmp$60;
					std = _tmp$61;
					suffix = _tmp$62;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") {
					_tmp$63 = $substring(layout, 0, i);
					_tmp$64 = 29;
					_tmp$65 = $substring(layout, (i + 5 >> 0));
					prefix = _tmp$63;
					std = _tmp$64;
					suffix = _tmp$65;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") {
					_tmp$66 = $substring(layout, 0, i);
					_tmp$67 = 32;
					_tmp$68 = $substring(layout, (i + 6 >> 0));
					prefix = _tmp$66;
					std = _tmp$67;
					suffix = _tmp$68;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") {
					_tmp$69 = $substring(layout, 0, i);
					_tmp$70 = 31;
					_tmp$71 = $substring(layout, (i + 3 >> 0));
					prefix = _tmp$69;
					std = _tmp$70;
					suffix = _tmp$71;
					return [prefix, std, suffix];
				}
			} else if (_1 === (90)) {
				if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") {
					_tmp$72 = $substring(layout, 0, i);
					_tmp$73 = 25;
					_tmp$74 = $substring(layout, (i + 7 >> 0));
					prefix = _tmp$72;
					std = _tmp$73;
					suffix = _tmp$74;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") {
					_tmp$75 = $substring(layout, 0, i);
					_tmp$76 = 28;
					_tmp$77 = $substring(layout, (i + 9 >> 0));
					prefix = _tmp$75;
					std = _tmp$76;
					suffix = _tmp$77;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") {
					_tmp$78 = $substring(layout, 0, i);
					_tmp$79 = 24;
					_tmp$80 = $substring(layout, (i + 5 >> 0));
					prefix = _tmp$78;
					std = _tmp$79;
					suffix = _tmp$80;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") {
					_tmp$81 = $substring(layout, 0, i);
					_tmp$82 = 27;
					_tmp$83 = $substring(layout, (i + 6 >> 0));
					prefix = _tmp$81;
					std = _tmp$82;
					suffix = _tmp$83;
					return [prefix, std, suffix];
				}
				if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") {
					_tmp$84 = $substring(layout, 0, i);
					_tmp$85 = 26;
					_tmp$86 = $substring(layout, (i + 3 >> 0));
					prefix = _tmp$84;
					std = _tmp$85;
					suffix = _tmp$86;
					return [prefix, std, suffix];
				}
			} else if ((_1 === (46)) || (_1 === (44))) {
				if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) {
					ch = layout.charCodeAt((i + 1 >> 0));
					j = i + 1 >> 0;
					while (true) {
						if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; }
						j = j + (1) >> 0;
					}
					if (!isDigit(layout, j)) {
						code = 34;
						if (layout.charCodeAt((i + 1 >> 0)) === 57) {
							code = 35;
						}
						std$1 = stdFracSecond(code, j - ((i + 1 >> 0)) >> 0, c);
						_tmp$87 = $substring(layout, 0, i);
						_tmp$88 = std$1;
						_tmp$89 = $substring(layout, j);
						prefix = _tmp$87;
						std = _tmp$88;
						suffix = _tmp$89;
						return [prefix, std, suffix];
					}
				}
			}
			i = i + (1) >> 0;
		}
		_tmp$90 = layout;
		_tmp$91 = 0;
		_tmp$92 = "";
		prefix = _tmp$90;
		std = _tmp$91;
		suffix = _tmp$92;
		return [prefix, std, suffix];
	};
	match = function(s1, s2) {
		var c1, c2, i, s1, s2;
		i = 0;
		while (true) {
			if (!(i < s1.length)) { break; }
			c1 = s1.charCodeAt(i);
			c2 = s2.charCodeAt(i);
			if (!((c1 === c2))) {
				c1 = (c1 | (32)) >>> 0;
				c2 = (c2 | (32)) >>> 0;
				if (!((c1 === c2)) || c1 < 97 || c1 > 122) {
					return false;
				}
			}
			i = i + (1) >> 0;
		}
		return true;
	};
	lookup = function(tab, val) {
		var _i, _ref, i, tab, v, val;
		_ref = tab;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			if (val.length >= v.length && match($substring(val, 0, v.length), v)) {
				return [i, $substring(val, v.length), $ifaceNil];
			}
			_i++;
		}
		return [-1, val, errBad];
	};
	appendInt = function(b, x$1, width) {
		var _q, b, buf, i, q, u, w, width, x$1;
		u = ((x$1 >>> 0));
		if (x$1 < 0) {
			b = $append(b, 45);
			u = ((-x$1 >>> 0));
		}
		buf = arrayType$3.zero();
		i = 20;
		while (true) {
			if (!(u >= 10)) { break; }
			i = i - (1) >> 0;
			q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
			((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24)));
			u = q;
		}
		i = i - (1) >> 0;
		((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24)));
		w = 20 - i >> 0;
		while (true) {
			if (!(w < width)) { break; }
			b = $append(b, 48);
			w = w + (1) >> 0;
		}
		return $appendSlice(b, $subslice(new sliceType$3(buf), i));
	};
	atoi = function(s) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x$1;
		x$1 = 0;
		err = $ifaceNil;
		neg = false;
		if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) {
			neg = s.charCodeAt(0) === 45;
			s = $substring(s, 1);
		}
		_tuple = leadingInt(s);
		q = _tuple[0];
		rem = _tuple[1];
		err = _tuple[2];
		x$1 = ((q.$low >> 0));
		if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) {
			_tmp = 0;
			_tmp$1 = atoiError;
			x$1 = _tmp;
			err = _tmp$1;
			return [x$1, err];
		}
		if (neg) {
			x$1 = -x$1;
		}
		_tmp$2 = x$1;
		_tmp$3 = $ifaceNil;
		x$1 = _tmp$2;
		err = _tmp$3;
		return [x$1, err];
	};
	stdFracSecond = function(code, n, c) {
		var c, code, n;
		if (c === 46) {
			return code | ((((n & 4095)) << 16 >> 0));
		}
		return (code | ((((n & 4095)) << 16 >> 0))) | 268435456;
	};
	digitsLen = function(std) {
		var std;
		return ((std >> 16 >> 0)) & 4095;
	};
	separator = function(std) {
		var std;
		if (((std >> 28 >> 0)) === 0) {
			return 46;
		}
		return 44;
	};
	formatNano = function(b, nanosec, std) {
		var _q, _r$1, b, buf, n, nanosec, separator$1, start, std, trim, u, x$1;
		n = digitsLen(std);
		separator$1 = separator(std);
		trim = (std & 65535) === 35;
		u = nanosec;
		buf = arrayType$4.zero();
		start = 9;
		while (true) {
			if (!(start > 0)) { break; }
			start = start - (1) >> 0;
			((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r$1 = u % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24)));
			u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
		}
		if (n > 9) {
			n = 9;
		}
		if (trim) {
			while (true) {
				if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$1])) === 48))) { break; }
				n = n - (1) >> 0;
			}
			if (n === 0) {
				return b;
			}
		}
		b = $append(b, separator$1);
		return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n));
	};
	Time.ptr.prototype.String = function() {
		var {_r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		s = _r$1;
		if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) {
			m2 = ((x$3 = t.ext, new $Uint64(x$3.$high, x$3.$low)));
			sign = 43;
			if ((x$4 = t.ext, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) {
				sign = 45;
				m2 = new $Uint64(-m2.$high, -m2.$low);
			}
			_tmp = $div64(m2, new $Uint64(0, 1000000000), false);
			_tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true);
			m1 = _tmp;
			m2 = _tmp$1;
			_tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false);
			_tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true);
			m0 = _tmp$2;
			m1 = _tmp$3;
			buf = $makeSlice(sliceType$3, 0, 24);
			buf = $appendSlice(buf, " m=");
			buf = $append(buf, sign);
			wid = 0;
			if (!((m0.$high === 0 && m0.$low === 0))) {
				buf = appendInt(buf, ((m0.$low >> 0)), 0);
				wid = 9;
			}
			buf = appendInt(buf, ((m1.$low >> 0)), wid);
			buf = $append(buf, 46);
			buf = appendInt(buf, ((m2.$low >> 0)), 9);
			s = s + (($bytesToString(buf)));
		}
		$s = -1; return s;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.String, $c: true, $r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s};return $f;
	};
	Time.prototype.String = function() { return this.$val.String(); };
	Time.ptr.prototype.GoString = function() {
		var {_1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, buf, loc, month, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		buf = $makeSlice(sliceType$3, 0, 70);
		buf = $appendSlice(buf, "time.Date(");
		_arg = buf;
		_r$1 = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = appendInt(_arg, _arg$1, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		buf = _r$2;
		_r$3 = $clone(t, Time).Month(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		month = _r$3;
		/* */ if (1 <= month && month <= 12) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (1 <= month && month <= 12) { */ case 4:
			buf = $appendSlice(buf, ", time.");
			_arg$2 = buf;
			_r$4 = $clone(t, Time).Month(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			_r$5 = new Month(_r$4).String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
			_arg$3 = _r$5;
			buf = $appendSlice(_arg$2, _arg$3);
			$s = 6; continue;
		/* } else { */ case 5:
			buf = appendInt(buf, ((month >> 0)), 0);
		/* } */ case 6:
		buf = $appendSlice(buf, ", ");
		_arg$4 = buf;
		_r$6 = $clone(t, Time).Day(); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$5 = _r$6;
		_r$7 = appendInt(_arg$4, _arg$5, 0); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		buf = _r$7;
		buf = $appendSlice(buf, ", ");
		_arg$6 = buf;
		_r$8 = $clone(t, Time).Hour(); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$7 = _r$8;
		_r$9 = appendInt(_arg$6, _arg$7, 0); /* */ $s = 12; case 12: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		buf = _r$9;
		buf = $appendSlice(buf, ", ");
		_arg$8 = buf;
		_r$10 = $clone(t, Time).Minute(); /* */ $s = 13; case 13: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_arg$9 = _r$10;
		_r$11 = appendInt(_arg$8, _arg$9, 0); /* */ $s = 14; case 14: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
		buf = _r$11;
		buf = $appendSlice(buf, ", ");
		_arg$10 = buf;
		_r$12 = $clone(t, Time).Second(); /* */ $s = 15; case 15: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
		_arg$11 = _r$12;
		_r$13 = appendInt(_arg$10, _arg$11, 0); /* */ $s = 16; case 16: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
		buf = _r$13;
		buf = $appendSlice(buf, ", ");
		buf = appendInt(buf, $clone(t, Time).Nanosecond(), 0);
		buf = $appendSlice(buf, ", ");
		loc = $clone(t, Time).Location();
		_1 = loc;
		if (_1 === ($pkg.UTC) || _1 === ptrType$2.nil) {
			buf = $appendSlice(buf, "time.UTC");
		} else if (_1 === ($pkg.Local)) {
			buf = $appendSlice(buf, "time.Local");
		} else {
			buf = $appendSlice(buf, "time.Location(");
			buf = $appendSlice(buf, (new sliceType$3($stringToBytes(quote(loc.name)))));
			buf = $appendSlice(buf, ")");
		}
		buf = $append(buf, 41);
		$s = -1; return ($bytesToString(buf));
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.GoString, $c: true, $r, _1, _arg, _arg$1, _arg$10, _arg$11, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, buf, loc, month, t, $s};return $f;
	};
	Time.prototype.GoString = function() { return this.$val.GoString(); };
	Time.ptr.prototype.Format = function(layout) {
		var {_r$1, b, buf, layout, max, t, $s, $r, $c} = $restore(this, {layout});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		b = sliceType$3.nil;
		max = layout.length + 10 >> 0;
		if (max < 64) {
			buf = arrayType$5.zero();
			b = $subslice(new sliceType$3(buf), 0, 0);
		} else {
			b = $makeSlice(sliceType$3, 0, max);
		}
		_r$1 = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		b = _r$1;
		$s = -1; return ($bytesToString(b));
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.Format, $c: true, $r, _r$1, b, buf, layout, max, t, $s};return $f;
	};
	Time.prototype.Format = function(layout) { return this.$val.Format(layout); };
	Time.ptr.prototype.AppendFormat = function(b, layout) {
		var {_1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, yday, year, zone$1, zone$2, $s, $r, $c} = $restore(this, {b, layout});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		_r$1 = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		name = _tuple[0];
		offset = _tuple[1];
		abs = _tuple[2];
		year = -1;
		month = 0;
		day = 0;
		yday = 0;
		hour = -1;
		min = 0;
		sec = 0;
		while (true) {
			if (!(!(layout === ""))) { break; }
			_tuple$1 = nextStdChunk(layout);
			prefix = _tuple$1[0];
			std = _tuple$1[1];
			suffix = _tuple$1[2];
			if (!(prefix === "")) {
				b = $appendSlice(b, prefix);
			}
			if (std === 0) {
				break;
			}
			layout = suffix;
			if (year < 0 && !(((std & 256) === 0))) {
				_tuple$2 = absDate(abs, true);
				year = _tuple$2[0];
				month = _tuple$2[1];
				day = _tuple$2[2];
				yday = _tuple$2[3];
				yday = yday + (1) >> 0;
			}
			if (hour < 0 && !(((std & 512) === 0))) {
				_tuple$3 = absClock(abs);
				hour = _tuple$3[0];
				min = _tuple$3[1];
				sec = _tuple$3[2];
			}
			switch (0) { default:
				_1 = std & 65535;
				if (_1 === (276)) {
					y = year;
					if (y < 0) {
						y = -y;
					}
					b = appendInt(b, (_r$2 = y % 100, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")), 2);
				} else if (_1 === (275)) {
					b = appendInt(b, year, 4);
				} else if (_1 === (258)) {
					b = $appendSlice(b, $substring(new Month(month).String(), 0, 3));
				} else if (_1 === (257)) {
					m = new Month(month).String();
					b = $appendSlice(b, m);
				} else if (_1 === (259)) {
					b = appendInt(b, ((month >> 0)), 0);
				} else if (_1 === (260)) {
					b = appendInt(b, ((month >> 0)), 2);
				} else if (_1 === (262)) {
					b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3));
				} else if (_1 === (261)) {
					s = new Weekday(absWeekday(abs)).String();
					b = $appendSlice(b, s);
				} else if (_1 === (263)) {
					b = appendInt(b, day, 0);
				} else if (_1 === (264)) {
					if (day < 10) {
						b = $append(b, 32);
					}
					b = appendInt(b, day, 0);
				} else if (_1 === (265)) {
					b = appendInt(b, day, 2);
				} else if (_1 === (266)) {
					if (yday < 100) {
						b = $append(b, 32);
						if (yday < 10) {
							b = $append(b, 32);
						}
					}
					b = appendInt(b, yday, 0);
				} else if (_1 === (267)) {
					b = appendInt(b, yday, 3);
				} else if (_1 === (524)) {
					b = appendInt(b, hour, 2);
				} else if (_1 === (525)) {
					hr = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero"));
					if (hr === 0) {
						hr = 12;
					}
					b = appendInt(b, hr, 0);
				} else if (_1 === (526)) {
					hr$1 = (_r$4 = hour % 12, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero"));
					if (hr$1 === 0) {
						hr$1 = 12;
					}
					b = appendInt(b, hr$1, 2);
				} else if (_1 === (527)) {
					b = appendInt(b, min, 0);
				} else if (_1 === (528)) {
					b = appendInt(b, min, 2);
				} else if (_1 === (529)) {
					b = appendInt(b, sec, 0);
				} else if (_1 === (530)) {
					b = appendInt(b, sec, 2);
				} else if (_1 === (533)) {
					if (hour >= 12) {
						b = $appendSlice(b, "PM");
					} else {
						b = $appendSlice(b, "AM");
					}
				} else if (_1 === (534)) {
					if (hour >= 12) {
						b = $appendSlice(b, "pm");
					} else {
						b = $appendSlice(b, "am");
					}
				} else if ((_1 === (24)) || (_1 === (27)) || (_1 === (25)) || (_1 === (26)) || (_1 === (28)) || (_1 === (29)) || (_1 === (32)) || (_1 === (30)) || (_1 === (31)) || (_1 === (33))) {
					if ((offset === 0) && ((std === 24) || (std === 27) || (std === 25) || (std === 26) || (std === 28))) {
						b = $append(b, 90);
						break;
					}
					zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
					absoffset = offset;
					if (zone$1 < 0) {
						b = $append(b, 45);
						zone$1 = -zone$1;
						absoffset = -absoffset;
					} else {
						b = $append(b, 43);
					}
					b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2);
					if ((std === 27) || (std === 32) || (std === 28) || (std === 33)) {
						b = $append(b, 58);
					}
					if (!((std === 31)) && !((std === 26))) {
						b = appendInt(b, (_r$5 = zone$1 % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2);
					}
					if ((std === 25) || (std === 30) || (std === 33) || (std === 28)) {
						if ((std === 33) || (std === 28)) {
							b = $append(b, 58);
						}
						b = appendInt(b, (_r$6 = absoffset % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2);
					}
				} else if (_1 === (23)) {
					if (!(name === "")) {
						b = $appendSlice(b, name);
						break;
					}
					zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"));
					if (zone$2 < 0) {
						b = $append(b, 45);
						zone$2 = -zone$2;
					} else {
						b = $append(b, 43);
					}
					b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2);
					b = appendInt(b, (_r$7 = zone$2 % 60, _r$7 === _r$7 ? _r$7 : $throwRuntimeError("integer divide by zero")), 2);
				} else if ((_1 === (34)) || (_1 === (35))) {
					b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std);
				}
			}
		}
		$s = -1; return b;
		/* */ } return; } var $f = {$blk: Time.ptr.prototype.AppendFormat, $c: true, $r, _1, _q, _q$1, _q$2, _q$3, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, yday, year, zone$1, zone$2, $s};return $f;
	};
	Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); };
	quote = function(s) {
		var _i, _ref, _rune, buf, c, i, j, s, width;
		buf = $makeSlice(sliceType$3, 1, (s.length + 2 >> 0));
		(0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0] = 34);
		_ref = s;
		_i = 0;
		while (true) {
			if (!(_i < _ref.length)) { break; }
			_rune = $decodeRune(_ref, _i);
			i = _i;
			c = _rune[0];
			if (c >= 128 || c < 32) {
				width = 0;
				if (c === 65533) {
					width = 1;
					if ((i + 2 >> 0) < s.length && $substring(s, i, (i + 3 >> 0)) === "\xEF\xBF\xBD") {
						width = 3;
					}
				} else {
					width = ($encodeRune(c)).length;
				}
				j = 0;
				while (true) {
					if (!(j < width)) { break; }
					buf = $appendSlice(buf, "\\x");
					buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt((i + j >> 0)) >>> 4 << 24 >>> 24)));
					buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt((i + j >> 0)) & 15) >>> 0)));
					j = j + (1) >> 0;
				}
			} else {
				if ((c === 34) || (c === 92)) {
					buf = $append(buf, 92);
				}
				buf = $appendSlice(buf, ($encodeRune(c)));
			}
			_i += _rune[1];
		}
		buf = $append(buf, 34);
		return ($bytesToString(buf));
	};
	ParseError.ptr.prototype.Error = function() {
		var e;
		e = this;
		if (e.Message === "") {
			return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem);
		}
		return "parsing time " + quote(e.Value) + e.Message;
	};
	ParseError.prototype.Error = function() { return this.$val.Error(); };
	isDigit = function(s, i) {
		var c, i, s;
		if (s.length <= i) {
			return false;
		}
		c = s.charCodeAt(i);
		return 48 <= c && c <= 57;
	};
	getnum = function(s, fixed) {
		var fixed, s;
		if (!isDigit(s, 0)) {
			return [0, s, errBad];
		}
		if (!isDigit(s, 1)) {
			if (fixed) {
				return [0, s, errBad];
			}
			return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil];
		}
		return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil];
	};
	getnum3 = function(s, fixed) {
		var _tmp, _tmp$1, fixed, i, n, s;
		_tmp = 0;
		_tmp$1 = 0;
		n = _tmp;
		i = _tmp$1;
		i = 0;
		while (true) {
			if (!(i < 3 && isDigit(s, i))) { break; }
			n = ($imul(n, 10)) + (((s.charCodeAt(i) - 48 << 24 >>> 24) >> 0)) >> 0;
			i = i + (1) >> 0;
		}
		if ((i === 0) || fixed && !((i === 3))) {
			return [0, s, errBad];
		}
		return [n, $substring(s, i), $ifaceNil];
	};
	cutspace = function(s) {
		var s;
		while (true) {
			if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; }
			s = $substring(s, 1);
		}
		return s;
	};
	skip = function(value, prefix) {
		var prefix, value;
		while (true) {
			if (!(prefix.length > 0)) { break; }
			if (prefix.charCodeAt(0) === 32) {
				if (value.length > 0 && !((value.charCodeAt(0) === 32))) {
					return [value, errBad];
				}
				prefix = cutspace(prefix);
				value = cutspace(value);
				continue;
			}
			if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) {
				return [value, errBad];
			}
			prefix = $substring(prefix, 1);
			value = $substring(value, 1);
		}
		return [value, $ifaceNil];
	};
	Parse = function(layout, value) {
		var {$24r, _r$1, layout, value, $s, $r, $c} = $restore(this, {layout, value});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Parse, $c: true, $r, $24r, _r$1, layout, value, $s};return $f;
	};
	$pkg.Parse = Parse;
	parse = function(layout, value, defaultLocation, local) {
		var {$24r, $24r$1, _1, _2, _3, _4, _q, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, d, day, defaultLocation, err, hold, hour, hour$1, hr, i, i$1, layout, local, m, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, x$3, yday, year, z, zoneName, zoneOffset, $s, $r, $c} = $restore(this, {layout, value, defaultLocation, local});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_tmp = layout;
		_tmp$1 = value;
		alayout = _tmp;
		avalue = _tmp$1;
		rangeErrString = "";
		amSet = false;
		pmSet = false;
		year = 0;
		month = -1;
		day = -1;
		yday = -1;
		hour = 0;
		min = 0;
		sec = 0;
		nsec = 0;
		z = ptrType$2.nil;
		zoneOffset = -1;
		zoneName = "";
		while (true) {
			err = $ifaceNil;
			_tuple = nextStdChunk(layout);
			prefix = _tuple[0];
			std = _tuple[1];
			suffix = _tuple[2];
			stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0));
			_tuple$1 = skip(value, prefix);
			value = _tuple$1[0];
			err = _tuple$1[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")];
			}
			if (std === 0) {
				if (!((value.length === 0))) {
					$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + quote(value))];
				}
				break;
			}
			layout = suffix;
			p = "";
			switch (0) { default:
				_1 = std & 65535;
				if (_1 === (276)) {
					if (value.length < 2) {
						err = errBad;
						break;
					}
					hold = value;
					_tmp$2 = $substring(value, 0, 2);
					_tmp$3 = $substring(value, 2);
					p = _tmp$2;
					value = _tmp$3;
					_tuple$2 = atoi(p);
					year = _tuple$2[0];
					err = _tuple$2[1];
					if (!($interfaceIsEqual(err, $ifaceNil))) {
						value = hold;
					} else if (year >= 69) {
						year = year + (1900) >> 0;
					} else {
						year = year + (2000) >> 0;
					}
				} else if (_1 === (275)) {
					if (value.length < 4 || !isDigit(value, 0)) {
						err = errBad;
						break;
					}
					_tmp$4 = $substring(value, 0, 4);
					_tmp$5 = $substring(value, 4);
					p = _tmp$4;
					value = _tmp$5;
					_tuple$3 = atoi(p);
					year = _tuple$3[0];
					err = _tuple$3[1];
				} else if (_1 === (258)) {
					_tuple$4 = lookup(shortMonthNames, value);
					month = _tuple$4[0];
					value = _tuple$4[1];
					err = _tuple$4[2];
					month = month + (1) >> 0;
				} else if (_1 === (257)) {
					_tuple$5 = lookup(longMonthNames, value);
					month = _tuple$5[0];
					value = _tuple$5[1];
					err = _tuple$5[2];
					month = month + (1) >> 0;
				} else if ((_1 === (259)) || (_1 === (260))) {
					_tuple$6 = getnum(value, std === 260);
					month = _tuple$6[0];
					value = _tuple$6[1];
					err = _tuple$6[2];
					if ($interfaceIsEqual(err, $ifaceNil) && (month <= 0 || 12 < month)) {
						rangeErrString = "month";
					}
				} else if (_1 === (262)) {
					_tuple$7 = lookup(shortDayNames, value);
					value = _tuple$7[1];
					err = _tuple$7[2];
				} else if (_1 === (261)) {
					_tuple$8 = lookup(longDayNames, value);
					value = _tuple$8[1];
					err = _tuple$8[2];
				} else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) {
					if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) {
						value = $substring(value, 1);
					}
					_tuple$9 = getnum(value, std === 265);
					day = _tuple$9[0];
					value = _tuple$9[1];
					err = _tuple$9[2];
				} else if ((_1 === (266)) || (_1 === (267))) {
					i = 0;
					while (true) {
						if (!(i < 2)) { break; }
						if ((std === 266) && value.length > 0 && (value.charCodeAt(0) === 32)) {
							value = $substring(value, 1);
						}
						i = i + (1) >> 0;
					}
					_tuple$10 = getnum3(value, std === 267);
					yday = _tuple$10[0];
					value = _tuple$10[1];
					err = _tuple$10[2];
				} else if (_1 === (524)) {
					_tuple$11 = getnum(value, false);
					hour = _tuple$11[0];
					value = _tuple$11[1];
					err = _tuple$11[2];
					if (hour < 0 || 24 <= hour) {
						rangeErrString = "hour";
					}
				} else if ((_1 === (525)) || (_1 === (526))) {
					_tuple$12 = getnum(value, std === 526);
					hour = _tuple$12[0];
					value = _tuple$12[1];
					err = _tuple$12[2];
					if (hour < 0 || 12 < hour) {
						rangeErrString = "hour";
					}
				} else if ((_1 === (527)) || (_1 === (528))) {
					_tuple$13 = getnum(value, std === 528);
					min = _tuple$13[0];
					value = _tuple$13[1];
					err = _tuple$13[2];
					if (min < 0 || 60 <= min) {
						rangeErrString = "minute";
					}
				} else if ((_1 === (529)) || (_1 === (530))) {
					_tuple$14 = getnum(value, std === 530);
					sec = _tuple$14[0];
					value = _tuple$14[1];
					err = _tuple$14[2];
					if (sec < 0 || 60 <= sec) {
						rangeErrString = "second";
						break;
					}
					if (value.length >= 2 && commaOrPeriod(value.charCodeAt(0)) && isDigit(value, 1)) {
						_tuple$15 = nextStdChunk(layout);
						std = _tuple$15[1];
						std = std & (65535);
						if ((std === 34) || (std === 35)) {
							break;
						}
						n = 2;
						while (true) {
							if (!(n < value.length && isDigit(value, n))) { break; }
							n = n + (1) >> 0;
						}
						_tuple$16 = parseNanoseconds(value, n);
						nsec = _tuple$16[0];
						rangeErrString = _tuple$16[1];
						err = _tuple$16[2];
						value = $substring(value, n);
					}
				} else if (_1 === (533)) {
					if (value.length < 2) {
						err = errBad;
						break;
					}
					_tmp$6 = $substring(value, 0, 2);
					_tmp$7 = $substring(value, 2);
					p = _tmp$6;
					value = _tmp$7;
					_2 = p;
					if (_2 === ("PM")) {
						pmSet = true;
					} else if (_2 === ("AM")) {
						amSet = true;
					} else {
						err = errBad;
					}
				} else if (_1 === (534)) {
					if (value.length < 2) {
						err = errBad;
						break;
					}
					_tmp$8 = $substring(value, 0, 2);
					_tmp$9 = $substring(value, 2);
					p = _tmp$8;
					value = _tmp$9;
					_3 = p;
					if (_3 === ("pm")) {
						pmSet = true;
					} else if (_3 === ("am")) {
						amSet = true;
					} else {
						err = errBad;
					}
				} else if ((_1 === (24)) || (_1 === (27)) || (_1 === (25)) || (_1 === (26)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31)) || (_1 === (32)) || (_1 === (30)) || (_1 === (33))) {
					if (((std === 24) || (std === 26) || (std === 27)) && value.length >= 1 && (value.charCodeAt(0) === 90)) {
						value = $substring(value, 1);
						z = $pkg.UTC;
						break;
					}
					_tmp$10 = "";
					_tmp$11 = "";
					_tmp$12 = "";
					_tmp$13 = "";
					sign = _tmp$10;
					hour$1 = _tmp$11;
					min$1 = _tmp$12;
					seconds = _tmp$13;
					if ((std === 27) || (std === 32)) {
						if (value.length < 6) {
							err = errBad;
							break;
						}
						if (!((value.charCodeAt(3) === 58))) {
							err = errBad;
							break;
						}
						_tmp$14 = $substring(value, 0, 1);
						_tmp$15 = $substring(value, 1, 3);
						_tmp$16 = $substring(value, 4, 6);
						_tmp$17 = "00";
						_tmp$18 = $substring(value, 6);
						sign = _tmp$14;
						hour$1 = _tmp$15;
						min$1 = _tmp$16;
						seconds = _tmp$17;
						value = _tmp$18;
					} else if ((std === 31) || (std === 26)) {
						if (value.length < 3) {
							err = errBad;
							break;
						}
						_tmp$19 = $substring(value, 0, 1);
						_tmp$20 = $substring(value, 1, 3);
						_tmp$21 = "00";
						_tmp$22 = "00";
						_tmp$23 = $substring(value, 3);
						sign = _tmp$19;
						hour$1 = _tmp$20;
						min$1 = _tmp$21;
						seconds = _tmp$22;
						value = _tmp$23;
					} else if ((std === 28) || (std === 33)) {
						if (value.length < 9) {
							err = errBad;
							break;
						}
						if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) {
							err = errBad;
							break;
						}
						_tmp$24 = $substring(value, 0, 1);
						_tmp$25 = $substring(value, 1, 3);
						_tmp$26 = $substring(value, 4, 6);
						_tmp$27 = $substring(value, 7, 9);
						_tmp$28 = $substring(value, 9);
						sign = _tmp$24;
						hour$1 = _tmp$25;
						min$1 = _tmp$26;
						seconds = _tmp$27;
						value = _tmp$28;
					} else if ((std === 25) || (std === 30)) {
						if (value.length < 7) {
							err = errBad;
							break;
						}
						_tmp$29 = $substring(value, 0, 1);
						_tmp$30 = $substring(value, 1, 3);
						_tmp$31 = $substring(value, 3, 5);
						_tmp$32 = $substring(value, 5, 7);
						_tmp$33 = $substring(value, 7);
						sign = _tmp$29;
						hour$1 = _tmp$30;
						min$1 = _tmp$31;
						seconds = _tmp$32;
						value = _tmp$33;
					} else {
						if (value.length < 5) {
							err = errBad;
							break;
						}
						_tmp$34 = $substring(value, 0, 1);
						_tmp$35 = $substring(value, 1, 3);
						_tmp$36 = $substring(value, 3, 5);
						_tmp$37 = "00";
						_tmp$38 = $substring(value, 5);
						sign = _tmp$34;
						hour$1 = _tmp$35;
						min$1 = _tmp$36;
						seconds = _tmp$37;
						value = _tmp$38;
					}
					_tmp$39 = 0;
					_tmp$40 = 0;
					_tmp$41 = 0;
					hr = _tmp$39;
					mm = _tmp$40;
					ss = _tmp$41;
					_tuple$17 = atoi(hour$1);
					hr = _tuple$17[0];
					err = _tuple$17[1];
					if ($interfaceIsEqual(err, $ifaceNil)) {
						_tuple$18 = atoi(min$1);
						mm = _tuple$18[0];
						err = _tuple$18[1];
					}
					if ($interfaceIsEqual(err, $ifaceNil)) {
						_tuple$19 = atoi(seconds);
						ss = _tuple$19[0];
						err = _tuple$19[1];
					}
					zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0;
					_4 = sign.charCodeAt(0);
					if (_4 === (43)) {
					} else if (_4 === (45)) {
						zoneOffset = -zoneOffset;
					} else {
						err = errBad;
					}
				} else if (_1 === (23)) {
					if (value.length >= 3 && $substring(value, 0, 3) === "UTC") {
						z = $pkg.UTC;
						value = $substring(value, 3);
						break;
					}
					_tuple$20 = parseTimeZone(value);
					n$1 = _tuple$20[0];
					ok = _tuple$20[1];
					if (!ok) {
						err = errBad;
						break;
					}
					_tmp$42 = $substring(value, 0, n$1);
					_tmp$43 = $substring(value, n$1);
					zoneName = _tmp$42;
					value = _tmp$43;
				} else if (_1 === (34)) {
					ndigit = 1 + digitsLen(std) >> 0;
					if (value.length < ndigit) {
						err = errBad;
						break;
					}
					_tuple$21 = parseNanoseconds(value, ndigit);
					nsec = _tuple$21[0];
					rangeErrString = _tuple$21[1];
					err = _tuple$21[2];
					value = $substring(value, ndigit);
				} else if (_1 === (35)) {
					if (value.length < 2 || !commaOrPeriod(value.charCodeAt(0)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) {
						break;
					}
					i$1 = 0;
					while (true) {
						if (!(i$1 < 9 && (i$1 + 1 >> 0) < value.length && 48 <= value.charCodeAt((i$1 + 1 >> 0)) && value.charCodeAt((i$1 + 1 >> 0)) <= 57)) { break; }
						i$1 = i$1 + (1) >> 0;
					}
					_tuple$22 = parseNanoseconds(value, 1 + i$1 >> 0);
					nsec = _tuple$22[0];
					rangeErrString = _tuple$22[1];
					err = _tuple$22[2];
					value = $substring(value, (1 + i$1 >> 0));
				}
			}
			if (!(rangeErrString === "")) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")];
			}
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")];
			}
		}
		if (pmSet && hour < 12) {
			hour = hour + (12) >> 0;
		} else if (amSet && (hour === 12)) {
			hour = 0;
		}
		if (yday >= 0) {
			d = 0;
			m = 0;
			if (isLeap(year)) {
				if (yday === 60) {
					m = 2;
					d = 29;
				} else if (yday > 60) {
					yday = yday - (1) >> 0;
				}
			}
			if (yday < 1 || yday > 365) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year out of range")];
			}
			if (m === 0) {
				m = (_q = ((yday - 1 >> 0)) / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0;
				if (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) >> 0)) < yday) {
					m = m + (1) >> 0;
				}
				d = yday - (((x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0)) >> 0;
			}
			if (month >= 0 && !((month === m))) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year does not match month")];
			}
			month = m;
			if (day >= 0 && !((day === d))) {
				$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day-of-year does not match day")];
			}
			day = d;
		} else {
			if (month < 0) {
				month = 1;
			}
			if (day < 0) {
				day = 1;
			}
		}
		if (day < 1 || day > daysIn(((month >> 0)), year)) {
			$s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")];
		}
		/* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(z === ptrType$2.nil)) { */ case 1:
			_r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			$24r = [_r$1, $ifaceNil];
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		/* */ if (!((zoneOffset === -1))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!((zoneOffset === -1))) { */ case 5:
			_r$2 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			t = $clone(_r$2, Time);
			t.addSec((x$2 = (new $Int64(0, zoneOffset)), new $Int64(-x$2.$high, -x$2.$low)));
			_r$3 = local.lookup(t.unixSec()); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple$23 = _r$3;
			name = _tuple$23[0];
			offset = _tuple$23[1];
			if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) {
				t.setLoc(local);
				$s = -1; return [t, $ifaceNil];
			}
			t.setLoc(FixedZone(zoneName, zoneOffset));
			$s = -1; return [t, $ifaceNil];
		/* } */ case 6:
		/* */ if (!(zoneName === "")) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (!(zoneName === "")) { */ case 9:
			_r$4 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			t$1 = $clone(_r$4, Time);
			_r$5 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
			_tuple$24 = _r$5;
			offset$1 = _tuple$24[0];
			ok$1 = _tuple$24[1];
			if (ok$1) {
				t$1.addSec((x$3 = (new $Int64(0, offset$1)), new $Int64(-x$3.$high, -x$3.$low)));
				t$1.setLoc(local);
				$s = -1; return [t$1, $ifaceNil];
			}
			if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") {
				_tuple$25 = atoi($substring(zoneName, 3));
				offset$1 = _tuple$25[0];
				offset$1 = $imul(offset$1, (3600));
			}
			t$1.setLoc(FixedZone(zoneName, offset$1));
			$s = -1; return [t$1, $ifaceNil];
		/* } */ case 10:
		_r$6 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		$24r$1 = [_r$6, $ifaceNil];
		$s = 14; case 14: return $24r$1;
		/* */ } return; } var $f = {$blk: parse, $c: true, $r, $24r, $24r$1, _1, _2, _3, _4, _q, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$25, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, d, day, defaultLocation, err, hold, hour, hour$1, hr, i, i$1, layout, local, m, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, x$3, yday, year, z, zoneName, zoneOffset, $s};return $f;
	};
	parseTimeZone = function(value) {
		var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, ok$1, value;
		length = 0;
		ok = false;
		if (value.length < 3) {
			_tmp = 0;
			_tmp$1 = false;
			length = _tmp;
			ok = _tmp$1;
			return [length, ok];
		}
		if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) {
			_tmp$2 = 4;
			_tmp$3 = true;
			length = _tmp$2;
			ok = _tmp$3;
			return [length, ok];
		}
		if ($substring(value, 0, 3) === "GMT") {
			length = parseGMT(value);
			_tmp$4 = length;
			_tmp$5 = true;
			length = _tmp$4;
			ok = _tmp$5;
			return [length, ok];
		}
		if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) {
			length = parseSignedOffset(value);
			ok$1 = length > 0;
			_tmp$6 = length;
			_tmp$7 = ok$1;
			length = _tmp$6;
			ok = _tmp$7;
			return [length, ok];
		}
		nUpper = 0;
		nUpper = 0;
		while (true) {
			if (!(nUpper < 6)) { break; }
			if (nUpper >= value.length) {
				break;
			}
			c = value.charCodeAt(nUpper);
			if (c < 65 || 90 < c) {
				break;
			}
			nUpper = nUpper + (1) >> 0;
		}
		_1 = nUpper;
		if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) {
			_tmp$8 = 0;
			_tmp$9 = false;
			length = _tmp$8;
			ok = _tmp$9;
			return [length, ok];
		} else if (_1 === (5)) {
			if (value.charCodeAt(4) === 84) {
				_tmp$10 = 5;
				_tmp$11 = true;
				length = _tmp$10;
				ok = _tmp$11;
				return [length, ok];
			}
		} else if (_1 === (4)) {
			if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") {
				_tmp$12 = 4;
				_tmp$13 = true;
				length = _tmp$12;
				ok = _tmp$13;
				return [length, ok];
			}
		} else if (_1 === (3)) {
			_tmp$14 = 3;
			_tmp$15 = true;
			length = _tmp$14;
			ok = _tmp$15;
			return [length, ok];
		}
		_tmp$16 = 0;
		_tmp$17 = false;
		length = _tmp$16;
		ok = _tmp$17;
		return [length, ok];
	};
	parseGMT = function(value) {
		var value;
		value = $substring(value, 3);
		if (value.length === 0) {
			return 3;
		}
		return 3 + parseSignedOffset(value) >> 0;
	};
	parseSignedOffset = function(value) {
		var _tuple, err, rem, sign, value, x$1;
		sign = value.charCodeAt(0);
		if (!((sign === 45)) && !((sign === 43))) {
			return 0;
		}
		_tuple = leadingInt($substring(value, 1));
		x$1 = _tuple[0];
		rem = _tuple[1];
		err = _tuple[2];
		if (!($interfaceIsEqual(err, $ifaceNil)) || $substring(value, 1) === rem) {
			return 0;
		}
		if ((x$1.$high > 0 || (x$1.$high === 0 && x$1.$low > 23))) {
			return 0;
		}
		return value.length - rem.length >> 0;
	};
	commaOrPeriod = function(b) {
		var b;
		return (b === 46) || (b === 44);
	};
	parseNanoseconds = function(value, nbytes) {
		var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value;
		ns = 0;
		rangeErrString = "";
		err = $ifaceNil;
		if (!commaOrPeriod(value.charCodeAt(0))) {
			err = errBad;
			return [ns, rangeErrString, err];
		}
		if (nbytes > 10) {
			value = $substring(value, 0, 10);
			nbytes = 10;
		}
		_tuple = atoi($substring(value, 1, nbytes));
		ns = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			return [ns, rangeErrString, err];
		}
		if (ns < 0) {
			rangeErrString = "fractional second";
			return [ns, rangeErrString, err];
		}
		scaleDigits = 10 - nbytes >> 0;
		i = 0;
		while (true) {
			if (!(i < scaleDigits)) { break; }
			ns = $imul(ns, (10));
			i = i + (1) >> 0;
		}
		return [ns, rangeErrString, err];
	};
	leadingInt = function(s) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x$1, x$2, x$3, x$4;
		x$1 = new $Uint64(0, 0);
		rem = "";
		err = $ifaceNil;
		i = 0;
		while (true) {
			if (!(i < s.length)) { break; }
			c = s.charCodeAt(i);
			if (c < 48 || c > 57) {
				break;
			}
			if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) {
				_tmp = new $Uint64(0, 0);
				_tmp$1 = "";
				_tmp$2 = errLeadingInt;
				x$1 = _tmp;
				rem = _tmp$1;
				err = _tmp$2;
				return [x$1, rem, err];
			}
			x$1 = (x$2 = (x$3 = $mul64(x$1, new $Uint64(0, 10)), x$4 = (new $Uint64(0, c)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Uint64(x$2.$high - 0, x$2.$low - 48));
			if ((x$1.$high > 2147483648 || (x$1.$high === 2147483648 && x$1.$low > 0))) {
				_tmp$3 = new $Uint64(0, 0);
				_tmp$4 = "";
				_tmp$5 = errLeadingInt;
				x$1 = _tmp$3;
				rem = _tmp$4;
				err = _tmp$5;
				return [x$1, rem, err];
			}
			i = i + (1) >> 0;
		}
		_tmp$6 = x$1;
		_tmp$7 = $substring(s, i);
		_tmp$8 = $ifaceNil;
		x$1 = _tmp$6;
		rem = _tmp$7;
		err = _tmp$8;
		return [x$1, rem, err];
	};
	ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64, $Bool], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}];
	Time.methods = [{prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMilli", name: "UnixMilli", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixMicro", name: "UnixMicro", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "IsDST", name: "IsDST", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}];
	ptrType$4.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}];
	Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Microseconds", name: "Microseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Milliseconds", name: "Milliseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}];
	ptrType$6.methods = [{prop: "Stop", name: "Stop", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Duration], [$Bool], false)}];
	ptrType$8.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "extend", name: "extend", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]);
	zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	rule.init("time", [{prop: "kind", name: "kind", embedded: false, exported: false, typ: ruleKind, tag: ""}, {prop: "day", name: "day", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "week", name: "week", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mon", name: "mon", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "time", name: "time", embedded: false, exported: false, typ: $Int, tag: ""}]);
	Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
	Timer.init("time", [{prop: "C", name: "C", embedded: false, exported: true, typ: chanType$1, tag: ""}, {prop: "r", name: "r", embedded: false, exported: false, typ: runtimeTimer, tag: ""}]);
	runtimeTimer.init("time", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "period", name: "period", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "f", name: "f", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "seq", name: "seq", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "timeout", name: "timeout", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]);
	$pkg.$initLinknames = function() {
		runtimeNano = $linknames["runtime.nanotime"];
};
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js$1.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil);
		localOnce = new nosync.Once.ptr(false, false);
		badData = errors.New("malformed time zone information");
		$unused(new sliceType$2(["/usr/share/zoneinfo/", "/usr/share/lib/zoneinfo/", "/usr/lib/locale/TZ/", runtime.GOROOT() + "/lib/time/zoneinfo.zip"]));
		utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, "", new $Int64(0, 0), new $Int64(0, 0), ptrType.nil);
		$pkg.UTC = utcLoc;
		$pkg.Local = localLoc;
		errLocation = errors.New("time: invalid location name");
		daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]);
		_r = runtimeNano(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		startNano = (x = _r, new $Int64(x.$high - 0, x.$low - 1));
		zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]);
		std0x = $toNativeArray($kindInt, [260, 265, 526, 528, 530, 276]);
		longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]);
		shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]);
		shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
		longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
		atoiError = errors.New("time: invalid number");
		errBad = errors.New("bad value for field");
		errLeadingInt = errors.New("time: bad [0-9]*");
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["context"] = (function() {
	var $pkg = {}, $init, errors, reflectlite, sync, atomic, time, Context, deadlineExceededError, emptyCtx, CancelFunc, canceler, cancelCtx, stringer, timerCtx, valueCtx, ptrType, structType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, chanType, ptrType$5, ptrType$6, ptrType$7, chanType$1, mapType, background, todo, goroutines, goroutines$24ptr, cancelCtxKey, cancelCtxKey$24ptr, closedchan, x, Background, WithCancel, newCancelCtx, propagateCancel, parentCancelCtx, removeChild, init, contextName, WithDeadline, WithTimeout, stringify, value;
	errors = $packages["errors"];
	reflectlite = $packages["internal/reflectlite"];
	sync = $packages["sync"];
	atomic = $packages["sync/atomic"];
	time = $packages["time"];
	Context = $pkg.Context = $newType(8, $kindInterface, "context.Context", true, "context", true, null);
	deadlineExceededError = $pkg.deadlineExceededError = $newType(0, $kindStruct, "context.deadlineExceededError", true, "context", false, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	emptyCtx = $pkg.emptyCtx = $newType(4, $kindInt, "context.emptyCtx", true, "context", false, null);
	CancelFunc = $pkg.CancelFunc = $newType(4, $kindFunc, "context.CancelFunc", true, "context", true, null);
	canceler = $pkg.canceler = $newType(8, $kindInterface, "context.canceler", true, "context", false, null);
	cancelCtx = $pkg.cancelCtx = $newType(0, $kindStruct, "context.cancelCtx", true, "context", false, function(Context_, mu_, done_, children_, err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Context = $ifaceNil;
			this.mu = new sync.Mutex.ptr(0, 0);
			this.done = new atomic.Value.ptr($ifaceNil);
			this.children = false;
			this.err = $ifaceNil;
			return;
		}
		this.Context = Context_;
		this.mu = mu_;
		this.done = done_;
		this.children = children_;
		this.err = err_;
	});
	stringer = $pkg.stringer = $newType(8, $kindInterface, "context.stringer", true, "context", false, null);
	timerCtx = $pkg.timerCtx = $newType(0, $kindStruct, "context.timerCtx", true, "context", false, function(cancelCtx_, timer_, deadline_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.cancelCtx = new cancelCtx.ptr($ifaceNil, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil);
			this.timer = ptrType$5.nil;
			this.deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil);
			return;
		}
		this.cancelCtx = cancelCtx_;
		this.timer = timer_;
		this.deadline = deadline_;
	});
	valueCtx = $pkg.valueCtx = $newType(0, $kindStruct, "context.valueCtx", true, "context", false, function(Context_, key_, val_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Context = $ifaceNil;
			this.key = $ifaceNil;
			this.val = $ifaceNil;
			return;
		}
		this.Context = Context_;
		this.key = key_;
		this.val = val_;
	});
	ptrType = $ptrType(emptyCtx);
	structType = $structType("", []);
	ptrType$1 = $ptrType(time.Location);
	ptrType$2 = $ptrType($Int32);
	ptrType$3 = $ptrType(cancelCtx);
	ptrType$4 = $ptrType($Int);
	chanType = $chanType(structType, false, false);
	ptrType$5 = $ptrType(time.Timer);
	ptrType$6 = $ptrType(valueCtx);
	ptrType$7 = $ptrType(timerCtx);
	chanType$1 = $chanType(structType, false, true);
	mapType = $mapType(canceler, structType);
	deadlineExceededError.ptr.prototype.Error = function() {
		return "context deadline exceeded";
	};
	deadlineExceededError.prototype.Error = function() { return this.$val.Error(); };
	deadlineExceededError.ptr.prototype.Timeout = function() {
		return true;
	};
	deadlineExceededError.prototype.Timeout = function() { return this.$val.Timeout(); };
	deadlineExceededError.ptr.prototype.Temporary = function() {
		return true;
	};
	deadlineExceededError.prototype.Temporary = function() { return this.$val.Temporary(); };
	$ptrType(emptyCtx).prototype.Deadline = function() {
		var deadline, ok;
		deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil);
		ok = false;
		return [deadline, ok];
	};
	$ptrType(emptyCtx).prototype.Done = function() {
		return $chanNil;
	};
	$ptrType(emptyCtx).prototype.Err = function() {
		return $ifaceNil;
	};
	$ptrType(emptyCtx).prototype.Value = function(key) {
		var key;
		return $ifaceNil;
	};
	$ptrType(emptyCtx).prototype.String = function() {
		var _1, e;
		e = this;
		_1 = e;
		if (_1 === (background)) {
			return "context.Background";
		} else if (_1 === (todo)) {
			return "context.TODO";
		}
		return "unknown empty Context";
	};
	Background = function() {
		return background;
	};
	$pkg.Background = Background;
	WithCancel = function(parent) {
		var {_tmp, _tmp$1, c, cancel, ctx, parent, $s, $r, $c} = $restore(this, {parent});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = [c];
		ctx = $ifaceNil;
		cancel = $throwNilPointerError;
		if ($interfaceIsEqual(parent, $ifaceNil)) {
			$panic(new $String("cannot create context from nil parent"));
		}
		c[0] = $clone(newCancelCtx(parent), cancelCtx);
		$r = propagateCancel(parent, c[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_tmp = c[0];
		_tmp$1 = (function(c) { return function $b() {
			var {$s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = c[0].cancel(true, $pkg.Canceled); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
		}; })(c);
		ctx = _tmp;
		cancel = _tmp$1;
		$s = -1; return [ctx, cancel];
		/* */ } return; } var $f = {$blk: WithCancel, $c: true, $r, _tmp, _tmp$1, c, cancel, ctx, parent, $s};return $f;
	};
	$pkg.WithCancel = WithCancel;
	newCancelCtx = function(parent) {
		var parent;
		return new cancelCtx.ptr(parent, new sync.Mutex.ptr(0, 0), new atomic.Value.ptr($ifaceNil), false, $ifaceNil);
	};
	propagateCancel = function(parent, child) {
		var {_arg, _key, _r, _r$1, _r$2, _selection, _tuple, child, done, ok, p, parent, $s, $r, $c} = $restore(this, {parent, child});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		child = [child];
		parent = [parent];
		_r = parent[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		done = _r;
		if (done === $chanNil) {
			$s = -1; return;
		}
		_selection = $select([[done], []]);
		/* */ if (_selection[0] === 0) { $s = 2; continue; }
		/* */ if (_selection[0] === 1) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (_selection[0] === 0) { */ case 2:
			_r$1 = parent[0].Err(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_arg = _r$1;
			$r = child[0].cancel(false, _arg); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
		/* } else if (_selection[0] === 1) { */ case 3:
		/* } */ case 4:
		_r$2 = parentCancelCtx(parent[0]); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		p = _tuple[0];
		ok = _tuple[1];
		/* */ if (ok) { $s = 8; continue; }
		/* */ $s = 9; continue;
		/* if (ok) { */ case 8:
			$r = p.mu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* */ if (!($interfaceIsEqual(p.err, $ifaceNil))) { $s = 12; continue; }
			/* */ $s = 13; continue;
			/* if (!($interfaceIsEqual(p.err, $ifaceNil))) { */ case 12:
				$r = child[0].cancel(false, p.err); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 14; continue;
			/* } else { */ case 13:
				if (p.children === false) {
					p.children = new $global.Map();
				}
				_key = child[0]; (p.children || $throwRuntimeError("assignment to entry in nil map")).set(canceler.keyFor(_key), { k: _key, v: new structType.ptr() });
			/* } */ case 14:
			$r = p.mu.Unlock(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 10; continue;
		/* } else { */ case 9:
			atomic.AddInt32((goroutines$24ptr || (goroutines$24ptr = new ptrType$2(function() { return goroutines; }, function($v) { goroutines = $v; }))), 1);
			$go((function(child, parent) { return function $b() {
				var {_arg$1, _r$3, _r$4, _r$5, _r$6, _selection$1, $s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				_r$3 = parent[0].Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				_r$4 = child[0].Done(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_r$5 = $select([[_r$3], [_r$4]]); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				_selection$1 = _r$5;
				/* */ if (_selection$1[0] === 0) { $s = 4; continue; }
				/* */ if (_selection$1[0] === 1) { $s = 5; continue; }
				/* */ $s = 6; continue;
				/* if (_selection$1[0] === 0) { */ case 4:
					_r$6 = parent[0].Err(); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					_arg$1 = _r$6;
					$r = child[0].cancel(false, _arg$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 6; continue;
				/* } else if (_selection$1[0] === 1) { */ case 5:
				/* } */ case 6:
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg$1, _r$3, _r$4, _r$5, _r$6, _selection$1, $s};return $f;
			}; })(child, parent), []);
		/* } */ case 10:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: propagateCancel, $c: true, $r, _arg, _key, _r, _r$1, _r$2, _selection, _tuple, child, done, ok, p, parent, $s};return $f;
	};
	parentCancelCtx = function(parent) {
		var {_r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s, $r, $c} = $restore(this, {parent});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = parent.Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		done = _r;
		if (done === closedchan || done === $chanNil) {
			$s = -1; return [ptrType$3.nil, false];
		}
		_r$1 = parent.Value((cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$4(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; })))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = $assertType(_r$1, ptrType$3, true);
		p = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			$s = -1; return [ptrType$3.nil, false];
		}
		_tuple$1 = $assertType(p.done.Load(), chanType, true);
		pdone = _tuple$1[0];
		if (!(pdone === done)) {
			$s = -1; return [ptrType$3.nil, false];
		}
		$s = -1; return [p, true];
		/* */ } return; } var $f = {$blk: parentCancelCtx, $c: true, $r, _r, _r$1, _tuple, _tuple$1, done, ok, p, parent, pdone, $s};return $f;
	};
	removeChild = function(parent, child) {
		var {_r, _tuple, child, ok, p, parent, $s, $r, $c} = $restore(this, {parent, child});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = parentCancelCtx(parent); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		p = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			$s = -1; return;
		}
		$r = p.mu.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (!(p.children === false)) {
			$mapDelete(p.children, canceler.keyFor(child));
		}
		$r = p.mu.Unlock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: removeChild, $c: true, $r, _r, _tuple, child, ok, p, parent, $s};return $f;
	};
	init = function() {
		$close(closedchan);
	};
	cancelCtx.ptr.prototype.Value = function(key) {
		var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$4(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) {
			$s = -1; return c;
		}
		_r = value(c.Context, key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cancelCtx.ptr.prototype.Value, $c: true, $r, $24r, _r, c, key, $s};return $f;
	};
	cancelCtx.prototype.Value = function(key) { return this.$val.Value(key); };
	cancelCtx.ptr.prototype.Done = function() {
		var {$24r, $24r$1, c, d, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		c = this;
		d = c.done.Load();
		/* */ if (!($interfaceIsEqual(d, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(d, $ifaceNil))) { */ case 1:
			$24r = $assertType(d, chanType);
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$r = c.mu.Lock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$deferred.push([$methodVal(c.mu, "Unlock"), []]);
		d = c.done.Load();
		if ($interfaceIsEqual(d, $ifaceNil)) {
			d = new chanType(new $Chan(structType, 0));
			c.done.Store(d);
		}
		$24r$1 = $assertType(d, chanType);
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $chanNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: cancelCtx.ptr.prototype.Done, $c: true, $r, $24r, $24r$1, c, d, $s, $deferred};return $f; } }
	};
	cancelCtx.prototype.Done = function() { return this.$val.Done(); };
	cancelCtx.ptr.prototype.Err = function() {
		var {c, err, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		$r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		err = c.err;
		$r = c.mu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: cancelCtx.ptr.prototype.Err, $c: true, $r, c, err, $s};return $f;
	};
	cancelCtx.prototype.Err = function() { return this.$val.Err(); };
	contextName = function(c) {
		var {$24r, $24r$1, _r, _r$1, _tuple, c, ok, s, $s, $r, $c} = $restore(this, {c});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_tuple = $assertType(c, stringer, true);
		s = _tuple[0];
		ok = _tuple[1];
		/* */ if (ok) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (ok) { */ case 1:
			_r = s.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		_r$1 = reflectlite.TypeOf(c).String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r$1 = _r$1;
		$s = 6; case 6: return $24r$1;
		/* */ } return; } var $f = {$blk: contextName, $c: true, $r, $24r, $24r$1, _r, _r$1, _tuple, c, ok, s, $s};return $f;
	};
	cancelCtx.ptr.prototype.String = function() {
		var {$24r, _r, c, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_r = contextName(c.Context); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r + ".WithCancel";
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cancelCtx.ptr.prototype.String, $c: true, $r, $24r, _r, c, $s};return $f;
	};
	cancelCtx.prototype.String = function() { return this.$val.String(); };
	cancelCtx.ptr.prototype.cancel = function(removeFromParent, err) {
		var {_entry, _i, _key, _keys, _ref, _size, _tuple, c, child, d, err, removeFromParent, $s, $r, $c} = $restore(this, {removeFromParent, err});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		if ($interfaceIsEqual(err, $ifaceNil)) {
			$panic(new $String("context: internal error: missing cancel error"));
		}
		$r = c.mu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ if (!($interfaceIsEqual(c.err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(c.err, $ifaceNil))) { */ case 2:
			$r = c.mu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
		/* } */ case 3:
		c.err = err;
		_tuple = $assertType(c.done.Load(), chanType, true);
		d = _tuple[0];
		if (d === $chanNil) {
			c.done.Store(new chanType(closedchan));
		} else {
			$close(d);
		}
		_ref = c.children;
		_i = 0;
		_keys = _ref ? _ref.keys() : undefined;
		_size = _ref ? _ref.size : 0;
		/* while (true) { */ case 5:
			/* if (!(_i < _size)) { break; } */ if(!(_i < _size)) { $s = 6; continue; }
			_key = _keys.next().value;
			_entry = _ref.get(_key);
			if (_entry === undefined) {
				_i++;
				/* continue; */ $s = 5; continue;
			}
			child = _entry.k;
			$r = child.cancel(false, err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 5; continue;
		case 6:
		c.children = false;
		$r = c.mu.Unlock(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ if (removeFromParent) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (removeFromParent) { */ case 9:
			$r = removeChild(c.Context, c); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 10:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: cancelCtx.ptr.prototype.cancel, $c: true, $r, _entry, _i, _key, _keys, _ref, _size, _tuple, c, child, d, err, removeFromParent, $s};return $f;
	};
	cancelCtx.prototype.cancel = function(removeFromParent, err) { return this.$val.cancel(removeFromParent, err); };
	WithDeadline = function(parent, d) {
		var {$24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, c, cur, d, dur, ok, parent, $s, $deferred, $r, $c} = $restore(this, {parent, d});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		c = [c];
		if ($interfaceIsEqual(parent, $ifaceNil)) {
			$panic(new $String("cannot create context from nil parent"));
		}
		_r = parent.Deadline(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		cur = $clone(_tuple[0], time.Time);
		ok = _tuple[1];
		/* */ if (ok && $clone(cur, time.Time).Before($clone(d, time.Time))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (ok && $clone(cur, time.Time).Before($clone(d, time.Time))) { */ case 2:
			_r$1 = WithCancel(parent); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			$24r = _r$1;
			$s = 5; case 5: return $24r;
		/* } */ case 3:
		c[0] = new timerCtx.ptr($clone(newCancelCtx(parent), cancelCtx), ptrType$5.nil, $clone(d, time.Time));
		$r = propagateCancel(parent, c[0]); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r$2 = time.Until($clone(d, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		dur = _r$2;
		/* */ if ((dur.$high < 0 || (dur.$high === 0 && dur.$low <= 0))) { $s = 8; continue; }
		/* */ $s = 9; continue;
		/* if ((dur.$high < 0 || (dur.$high === 0 && dur.$low <= 0))) { */ case 8:
			$r = c[0].cancel(true, $pkg.DeadlineExceeded); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$24r$1 = [c[0], (function(c) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = c[0].cancel(false, $pkg.Canceled); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(c)];
			$s = 11; case 11: return $24r$1;
		/* } */ case 9:
		$r = c[0].cancelCtx.mu.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$deferred.push([$methodVal(c[0].cancelCtx.mu, "Unlock"), []]);
		/* */ if ($interfaceIsEqual(c[0].cancelCtx.err, $ifaceNil)) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if ($interfaceIsEqual(c[0].cancelCtx.err, $ifaceNil)) { */ case 13:
			_r$3 = time.AfterFunc(dur, (function(c) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = c[0].cancel(true, $pkg.DeadlineExceeded); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(c)); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			c[0].timer = _r$3;
		/* } */ case 14:
		$24r$2 = [c[0], (function(c) { return function $b() {
			var {$s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = c[0].cancel(true, $pkg.Canceled); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
		}; })(c)];
		$s = 16; case 16: return $24r$2;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [$ifaceNil, $throwNilPointerError]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: WithDeadline, $c: true, $r, $24r, $24r$1, $24r$2, _r, _r$1, _r$2, _r$3, _tuple, c, cur, d, dur, ok, parent, $s, $deferred};return $f; } }
	};
	$pkg.WithDeadline = WithDeadline;
	timerCtx.ptr.prototype.Deadline = function() {
		var _tmp, _tmp$1, c, deadline, ok;
		deadline = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$1.nil);
		ok = false;
		c = this;
		_tmp = $clone(c.deadline, time.Time);
		_tmp$1 = true;
		time.Time.copy(deadline, _tmp);
		ok = _tmp$1;
		return [deadline, ok];
	};
	timerCtx.prototype.Deadline = function() { return this.$val.Deadline(); };
	timerCtx.ptr.prototype.String = function() {
		var {$24r, _r, _r$1, _r$2, _r$3, c, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_r = contextName(c.cancelCtx.Context); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = $clone(c.deadline, time.Time).String(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = time.Until($clone(c.deadline, time.Time)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_r$3 = _r$2.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r + ".WithDeadline(" + _r$1 + " [" + _r$3 + "])";
		$s = 5; case 5: return $24r;
		/* */ } return; } var $f = {$blk: timerCtx.ptr.prototype.String, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, c, $s};return $f;
	};
	timerCtx.prototype.String = function() { return this.$val.String(); };
	timerCtx.ptr.prototype.cancel = function(removeFromParent, err) {
		var {c, err, removeFromParent, $s, $r, $c} = $restore(this, {removeFromParent, err});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		$r = c.cancelCtx.cancel(false, err); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ if (removeFromParent) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (removeFromParent) { */ case 2:
			$r = removeChild(c.cancelCtx.Context, c); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 3:
		$r = c.cancelCtx.mu.Lock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (!(c.timer === ptrType$5.nil)) {
			c.timer.Stop();
			c.timer = ptrType$5.nil;
		}
		$r = c.cancelCtx.mu.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: timerCtx.ptr.prototype.cancel, $c: true, $r, c, err, removeFromParent, $s};return $f;
	};
	timerCtx.prototype.cancel = function(removeFromParent, err) { return this.$val.cancel(removeFromParent, err); };
	WithTimeout = function(parent, timeout) {
		var {$24r, _arg, _arg$1, _r, _r$1, _r$2, parent, timeout, $s, $r, $c} = $restore(this, {parent, timeout});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = parent;
		_r = time.Now(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = $clone(_r, time.Time).Add(timeout); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = $clone(_r$1, time.Time);
		_r$2 = WithDeadline(_arg, _arg$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: WithTimeout, $c: true, $r, $24r, _arg, _arg$1, _r, _r$1, _r$2, parent, timeout, $s};return $f;
	};
	$pkg.WithTimeout = WithTimeout;
	stringify = function(v) {
		var {$24r, _r, _ref, s, s$1, v, $s, $r, $c} = $restore(this, {v});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_ref = v;
		/* */ if ($assertType(_ref, stringer, true)[1]) { $s = 1; continue; }
		/* */ if ($assertType(_ref, $String, true)[1]) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if ($assertType(_ref, stringer, true)[1]) { */ case 1:
			s = _ref;
			_r = s.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 5; case 5: return $24r;
		/* } else if ($assertType(_ref, $String, true)[1]) { */ case 2:
			s$1 = _ref.$val;
			$s = -1; return s$1;
		/* } */ case 3:
		$s = -1; return "<not Stringer>";
		/* */ } return; } var $f = {$blk: stringify, $c: true, $r, $24r, _r, _ref, s, s$1, v, $s};return $f;
	};
	valueCtx.ptr.prototype.String = function() {
		var {$24r, _r, _r$1, _r$2, c, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_r = contextName(c.Context); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = reflectlite.TypeOf(c.key).String(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = stringify(c.val); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r + ".WithValue(type " + _r$1 + ", val " + _r$2 + ")";
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: valueCtx.ptr.prototype.String, $c: true, $r, $24r, _r, _r$1, _r$2, c, $s};return $f;
	};
	valueCtx.prototype.String = function() { return this.$val.String(); };
	valueCtx.ptr.prototype.Value = function(key) {
		var {$24r, _r, c, key, $s, $r, $c} = $restore(this, {key});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		if ($interfaceIsEqual(c.key, key)) {
			$s = -1; return c.val;
		}
		_r = value(c.Context, key); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: valueCtx.ptr.prototype.Value, $c: true, $r, $24r, _r, c, key, $s};return $f;
	};
	valueCtx.prototype.Value = function(key) { return this.$val.Value(key); };
	value = function(c, key) {
		var {$24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, key, $s, $r, $c} = $restore(this, {c, key});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* while (true) { */ case 1:
			_ref = c;
			/* */ if ($assertType(_ref, ptrType$6, true)[1]) { $s = 3; continue; }
			/* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 4; continue; }
			/* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 5; continue; }
			/* */ if ($assertType(_ref, ptrType, true)[1]) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if ($assertType(_ref, ptrType$6, true)[1]) { */ case 3:
				ctx = _ref.$val;
				if ($interfaceIsEqual(key, ctx.key)) {
					$s = -1; return ctx.val;
				}
				c = ctx.Context;
				$s = 8; continue;
			/* } else if ($assertType(_ref, ptrType$3, true)[1]) { */ case 4:
				ctx$1 = _ref.$val;
				if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$4(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) {
					$s = -1; return c;
				}
				c = ctx$1.Context;
				$s = 8; continue;
			/* } else if ($assertType(_ref, ptrType$7, true)[1]) { */ case 5:
				ctx$2 = _ref.$val;
				if ($interfaceIsEqual(key, (cancelCtxKey$24ptr || (cancelCtxKey$24ptr = new ptrType$4(function() { return cancelCtxKey; }, function($v) { cancelCtxKey = $v; }))))) {
					$s = -1; return ctx$2.cancelCtx;
				}
				c = ctx$2.cancelCtx.Context;
				$s = 8; continue;
			/* } else if ($assertType(_ref, ptrType, true)[1]) { */ case 6:
				ctx$3 = _ref.$val;
				$s = -1; return $ifaceNil;
			/* } else { */ case 7:
				ctx$4 = _ref;
				_r = c.Value(key); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 10; case 10: return $24r;
			/* } */ case 8:
		$s = 1; continue;
		case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: value, $c: true, $r, $24r, _r, _ref, c, ctx, ctx$1, ctx$2, ctx$3, ctx$4, key, $s};return $f;
	};
	deadlineExceededError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
	ptrType.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$3.methods = [{prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error], [], false)}];
	ptrType$7.methods = [{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error], [], false)}];
	ptrType$6.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}];
	Context.init([{prop: "Deadline", name: "Deadline", pkg: "", typ: $funcType([], [time.Time, $Bool], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface], false)}]);
	deadlineExceededError.init("", []);
	CancelFunc.init([], [], false);
	canceler.init([{prop: "Done", name: "Done", pkg: "", typ: $funcType([], [chanType$1], false)}, {prop: "cancel", name: "cancel", pkg: "context", typ: $funcType([$Bool, $error], [], false)}]);
	cancelCtx.init("context", [{prop: "Context", name: "Context", embedded: true, exported: true, typ: Context, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: atomic.Value, tag: ""}, {prop: "children", name: "children", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
	stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]);
	timerCtx.init("context", [{prop: "cancelCtx", name: "cancelCtx", embedded: true, exported: false, typ: cancelCtx, tag: ""}, {prop: "timer", name: "timer", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "deadline", name: "deadline", embedded: false, exported: false, typ: time.Time, tag: ""}]);
	valueCtx.init("context", [{prop: "Context", name: "Context", embedded: true, exported: true, typ: Context, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "val", name: "val", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = reflectlite.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = time.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		goroutines = 0;
		cancelCtxKey = 0;
		$pkg.Canceled = errors.New("context canceled");
		$pkg.DeadlineExceeded = (x = new deadlineExceededError.ptr(), new x.constructor.elem(x));
		background = $newDataPointer(0, ptrType);
		todo = $newDataPointer(0, ptrType);
		closedchan = new $Chan(structType, 0);
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["io"] = (function() {
	var $pkg = {}, $init, errors, sync, Reader, Writer, ReaderFrom, WriterTo, RuneScanner, LimitedReader, sliceType, sliceType$1, ptrType$1, ptrType$3, errInvalidWrite, errWhence, errOffset, blackHolePool, Copy, copyBuffer;
	errors = $packages["errors"];
	sync = $packages["sync"];
	Reader = $pkg.Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null);
	Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null);
	ReaderFrom = $pkg.ReaderFrom = $newType(8, $kindInterface, "io.ReaderFrom", true, "io", true, null);
	WriterTo = $pkg.WriterTo = $newType(8, $kindInterface, "io.WriterTo", true, "io", true, null);
	RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null);
	LimitedReader = $pkg.LimitedReader = $newType(0, $kindStruct, "io.LimitedReader", true, "io", true, function(R_, N_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.R = $ifaceNil;
			this.N = new $Int64(0, 0);
			return;
		}
		this.R = R_;
		this.N = N_;
	});
	sliceType = $sliceType($emptyInterface);
	sliceType$1 = $sliceType($Uint8);
	ptrType$1 = $ptrType(sliceType$1);
	ptrType$3 = $ptrType(LimitedReader);
	Copy = function(dst, src) {
		var {$24r, _r, _tuple, dst, err, src, written, $s, $r, $c} = $restore(this, {dst, src});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		written = new $Int64(0, 0);
		err = $ifaceNil;
		_r = copyBuffer(dst, src, sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		written = _tuple[0];
		err = _tuple[1];
		$24r = [written, err];
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Copy, $c: true, $r, $24r, _r, _tuple, dst, err, src, written, $s};return $f;
	};
	$pkg.Copy = Copy;
	copyBuffer = function(dst, src, buf) {
		var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, buf, dst, er, err, ew, l, nr, nw, ok, ok$1, ok$2, rt, size, src, written, wt, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {dst, src, buf});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		written = new $Int64(0, 0);
		err = $ifaceNil;
		_tuple = $assertType(src, WriterTo, true);
		wt = _tuple[0];
		ok = _tuple[1];
		/* */ if (ok) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (ok) { */ case 1:
			_r = wt.WriteTo(dst); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_tuple$1 = _r;
			written = _tuple$1[0];
			err = _tuple$1[1];
			$24r = [written, err];
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		_tuple$2 = $assertType(dst, ReaderFrom, true);
		rt = _tuple$2[0];
		ok$1 = _tuple$2[1];
		/* */ if (ok$1) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (ok$1) { */ case 5:
			_r$1 = rt.ReadFrom(src); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple$3 = _r$1;
			written = _tuple$3[0];
			err = _tuple$3[1];
			$24r$1 = [written, err];
			$s = 8; case 8: return $24r$1;
		/* } */ case 6:
		if (buf === sliceType$1.nil) {
			size = 32768;
			_tuple$4 = $assertType(src, ptrType$3, true);
			l = _tuple$4[0];
			ok$2 = _tuple$4[1];
			if (ok$2 && (x$2 = (new $Int64(0, size)), x$3 = l.N, (x$2.$high > x$3.$high || (x$2.$high === x$3.$high && x$2.$low > x$3.$low)))) {
				if ((x$4 = l.N, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 1)))) {
					size = 1;
				} else {
					size = (((x$5 = l.N, x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0));
				}
			}
			buf = $makeSlice(sliceType$1, size);
		}
		/* while (true) { */ case 9:
			_r$2 = src.Read(buf); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			_tuple$5 = _r$2;
			nr = _tuple$5[0];
			er = _tuple$5[1];
			/* */ if (nr > 0) { $s = 12; continue; }
			/* */ $s = 13; continue;
			/* if (nr > 0) { */ case 12:
				_r$3 = dst.Write($subslice(buf, 0, nr)); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				_tuple$6 = _r$3;
				nw = _tuple$6[0];
				ew = _tuple$6[1];
				if (nw < 0 || nr < nw) {
					nw = 0;
					if ($interfaceIsEqual(ew, $ifaceNil)) {
						ew = errInvalidWrite;
					}
				}
				written = (x$6 = (new $Int64(0, nw)), new $Int64(written.$high + x$6.$high, written.$low + x$6.$low));
				if (!($interfaceIsEqual(ew, $ifaceNil))) {
					err = ew;
					/* break; */ $s = 10; continue;
				}
				if (!((nr === nw))) {
					err = $pkg.ErrShortWrite;
					/* break; */ $s = 10; continue;
				}
			/* } */ case 13:
			if (!($interfaceIsEqual(er, $ifaceNil))) {
				if (!($interfaceIsEqual(er, $pkg.EOF))) {
					err = er;
				}
				/* break; */ $s = 10; continue;
			}
		$s = 9; continue;
		case 10:
		_tmp = written;
		_tmp$1 = err;
		written = _tmp;
		err = _tmp$1;
		$s = -1; return [written, err];
		/* */ } return; } var $f = {$blk: copyBuffer, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, buf, dst, er, err, ew, l, nr, nw, ok, ok$1, ok$2, rt, size, src, written, wt, x$2, x$3, x$4, x$5, x$6, $s};return $f;
	};
	LimitedReader.ptr.prototype.Read = function(p) {
		var {_r, _tmp, _tmp$1, _tuple, err, l, n, p, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {p});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		l = this;
		if ((x$2 = l.N, (x$2.$high < 0 || (x$2.$high === 0 && x$2.$low <= 0)))) {
			_tmp = 0;
			_tmp$1 = $pkg.EOF;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		if ((x$3 = (new $Int64(0, p.$length)), x$4 = l.N, (x$3.$high > x$4.$high || (x$3.$high === x$4.$high && x$3.$low > x$4.$low)))) {
			p = $subslice(p, 0, $flatten64(l.N));
		}
		_r = l.R.Read(p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		n = _tuple[0];
		err = _tuple[1];
		l.N = (x$5 = l.N, x$6 = (new $Int64(0, n)), new $Int64(x$5.$high - x$6.$high, x$5.$low - x$6.$low));
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: LimitedReader.ptr.prototype.Read, $c: true, $r, _r, _tmp, _tmp$1, _tuple, err, l, n, p, x$2, x$3, x$4, x$5, x$6, $s};return $f;
	};
	LimitedReader.prototype.Read = function(p) { return this.$val.Read(p); };
	ptrType$3.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}];
	Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]);
	Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}]);
	ReaderFrom.init([{prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([Reader], [$Int64, $error], false)}]);
	WriterTo.init([{prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([Writer], [$Int64, $error], false)}]);
	RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]);
	LimitedReader.init("", [{prop: "R", name: "R", embedded: false, exported: true, typ: Reader, tag: ""}, {prop: "N", name: "N", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe");
		$pkg.ErrShortWrite = errors.New("short write");
		errInvalidWrite = errors.New("invalid write result");
		$pkg.ErrShortBuffer = errors.New("short buffer");
		$pkg.EOF = errors.New("EOF");
		$pkg.ErrUnexpectedEOF = errors.New("unexpected EOF");
		$pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error");
		errWhence = errors.New("Seek: invalid whence");
		errOffset = errors.New("Seek: invalid offset");
		blackHolePool = new sync.Pool.ptr(sliceType.nil, (function() {
			var b, b$24ptr;
			b = $makeSlice(sliceType$1, 8192);
			return (b$24ptr || (b$24ptr = new ptrType$1(function() { return b; }, function($v) { b = $convertSliceType($v, sliceType$1); })));
		}));
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["hash"] = (function() {
	var $pkg = {}, $init, io, Hash, sliceType;
	io = $packages["io"];
	Hash = $pkg.Hash = $newType(8, $kindInterface, "hash.Hash", true, "hash", true, null);
	sliceType = $sliceType($Uint8);
	Hash.init([{prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = io.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/cpu"] = (function() {
	var $pkg = {}, $init;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/bytealg"] = (function() {
	var $pkg = {}, $init, cpu, IndexByteString;
	cpu = $packages["internal/cpu"];
	IndexByteString = function(s, c) {
		var c, i, s;
		i = 0;
		while (true) {
			if (!(i < s.length)) { break; }
			if (s.charCodeAt(i) === c) {
				return i;
			}
			i = i + (1) >> 0;
		}
		return -1;
	};
	$pkg.IndexByteString = IndexByteString;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["math/bits"] = (function() {
	var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, TrailingZeros, TrailingZeros32, TrailingZeros64, RotateLeft32, Len32, Len64, Add64, Mul64;
	TrailingZeros = function(x) {
		var x;
		if (true) {
			return TrailingZeros32(((x >>> 0)));
		}
		return TrailingZeros64((new $Uint64(0, x)));
	};
	$pkg.TrailingZeros = TrailingZeros;
	TrailingZeros32 = function(x) {
		var x, x$1;
		if (x === 0) {
			return 32;
		}
		return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0));
	};
	$pkg.TrailingZeros32 = TrailingZeros32;
	TrailingZeros64 = function(x) {
		var x, x$1, x$2;
		if ((x.$high === 0 && x.$low === 0)) {
			return 64;
		}
		return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0));
	};
	$pkg.TrailingZeros64 = TrailingZeros64;
	RotateLeft32 = function(x, k) {
		var k, s, x, y, y$1;
		s = (((k >>> 0)) & 31) >>> 0;
		return (((y = s, y < 32 ? (x << y) : 0) >>> 0) | ((y$1 = ((32 - s >>> 0)), y$1 < 32 ? (x >>> y$1) : 0) >>> 0)) >>> 0;
	};
	$pkg.RotateLeft32 = RotateLeft32;
	Len32 = function(x) {
		var n, x, y, y$1;
		n = 0;
		if (x >= 65536) {
			x = (y = (16), y < 32 ? (x >>> y) : 0) >>> 0;
			n = 16;
		}
		if (x >= 256) {
			x = (y$1 = (8), y$1 < 32 ? (x >>> y$1) : 0) >>> 0;
			n = n + (8) >> 0;
		}
		n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt(x) >> 0)) >> 0;
		return n;
	};
	$pkg.Len32 = Len32;
	Len64 = function(x) {
		var n, x;
		n = 0;
		if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) {
			x = $shiftRightUint64(x, (32));
			n = 32;
		}
		if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) {
			x = $shiftRightUint64(x, (16));
			n = n + (16) >> 0;
		}
		if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) {
			x = $shiftRightUint64(x, (8));
			n = n + (8) >> 0;
		}
		n = n + (("\x00\x01\x02\x02\x03\x03\x03\x03\x04\x04\x04\x04\x04\x04\x04\x04\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b".charCodeAt($flatten64(x)) >> 0)) >> 0;
		return n;
	};
	$pkg.Len64 = Len64;
	Add64 = function(x, y, carry) {
		var carry, carryOut, sum, x, x$1, x$2, x$3, x$4, y;
		sum = new $Uint64(0, 0);
		carryOut = new $Uint64(0, 0);
		sum = (x$1 = new $Uint64(x.$high + y.$high, x.$low + y.$low), new $Uint64(x$1.$high + carry.$high, x$1.$low + carry.$low));
		carryOut = $shiftRightUint64(((x$2 = new $Uint64(x.$high & y.$high, (x.$low & y.$low) >>> 0), x$3 = (x$4 = new $Uint64(x.$high | y.$high, (x.$low | y.$low) >>> 0), new $Uint64(x$4.$high & ~sum.$high, (x$4.$low & ~sum.$low) >>> 0)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0))), 63);
		return [sum, carryOut];
	};
	$pkg.Add64 = Add64;
	Mul64 = function(x, y) {
		var hi, lo, t, w0, w1, w2, x, x$1, x$2, x$3, x$4, x$5, x$6, x0, x1, y, y0, y1;
		hi = new $Uint64(0, 0);
		lo = new $Uint64(0, 0);
		x0 = new $Uint64(x.$high & 0, (x.$low & 4294967295) >>> 0);
		x1 = $shiftRightUint64(x, 32);
		y0 = new $Uint64(y.$high & 0, (y.$low & 4294967295) >>> 0);
		y1 = $shiftRightUint64(y, 32);
		w0 = $mul64(x0, y0);
		t = (x$1 = $mul64(x1, y0), x$2 = $shiftRightUint64(w0, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
		w1 = new $Uint64(t.$high & 0, (t.$low & 4294967295) >>> 0);
		w2 = $shiftRightUint64(t, 32);
		w1 = (x$3 = $mul64(x0, y1), new $Uint64(w1.$high + x$3.$high, w1.$low + x$3.$low));
		hi = (x$4 = (x$5 = $mul64(x1, y1), new $Uint64(x$5.$high + w2.$high, x$5.$low + w2.$low)), x$6 = $shiftRightUint64(w1, 32), new $Uint64(x$4.$high + x$6.$high, x$4.$low + x$6.$low));
		lo = $mul64(x, y);
		return [hi, lo];
	};
	$pkg.Mul64 = Mul64;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]);
		deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["math"] = (function() {
	var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, math, nan, buf, init, Float32bits, Float64bits;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	bits = $packages["math/bits"];
	arrayType = $arrayType($Uint32, 2);
	arrayType$1 = $arrayType($Float32, 2);
	arrayType$2 = $arrayType($Float64, 1);
	structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]);
	init = function() {
		var ab;
		ab = new ($global.ArrayBuffer)(8);
		buf.uint32array = new ($global.Uint32Array)(ab);
		buf.float32array = new ($global.Float32Array)(ab);
		buf.float64array = new ($global.Float64Array)(ab);
	};
	Float32bits = function(f) {
		var f;
		buf.float32array[0] = f;
		return buf.uint32array[0];
	};
	$pkg.Float32bits = Float32bits;
	Float64bits = function(f) {
		var f, x, x$1;
		buf.float64array[0] = f;
		return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low));
	};
	$pkg.Float64bits = Float64bits;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero());
		math = $global.Math;
		nan = $parseFloat($NaN);
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["unicode/utf8"] = (function() {
	var $pkg = {}, $init, acceptRange, first, acceptRanges, DecodeRune, DecodeRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, ValidString, ValidRune;
	acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.lo = 0;
			this.hi = 0;
			return;
		}
		this.lo = lo_;
		this.hi = hi_;
	});
	DecodeRune = function(p) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1;
		r = 0;
		size = 0;
		n = p.$length;
		if (n < 1) {
			_tmp = 65533;
			_tmp$1 = 0;
			r = _tmp;
			size = _tmp$1;
			return [r, size];
		}
		p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]);
		x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]);
		if (x >= 240) {
			mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0;
			_tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask);
			_tmp$3 = 1;
			r = _tmp$2;
			size = _tmp$3;
			return [r, size];
		}
		sz = ((((x & 7) >>> 0) >> 0));
		accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
		if (n < sz) {
			_tmp$4 = 65533;
			_tmp$5 = 1;
			r = _tmp$4;
			size = _tmp$5;
			return [r, size];
		}
		b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]);
		if (b1 < accept.lo || accept.hi < b1) {
			_tmp$6 = 65533;
			_tmp$7 = 1;
			r = _tmp$6;
			size = _tmp$7;
			return [r, size];
		}
		if (sz <= 2) {
			_tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0));
			_tmp$9 = 2;
			r = _tmp$8;
			size = _tmp$9;
			return [r, size];
		}
		b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]);
		if (b2 < 128 || 191 < b2) {
			_tmp$10 = 65533;
			_tmp$11 = 1;
			r = _tmp$10;
			size = _tmp$11;
			return [r, size];
		}
		if (sz <= 3) {
			_tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0));
			_tmp$13 = 3;
			r = _tmp$12;
			size = _tmp$13;
			return [r, size];
		}
		b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]);
		if (b3 < 128 || 191 < b3) {
			_tmp$14 = 65533;
			_tmp$15 = 1;
			r = _tmp$14;
			size = _tmp$15;
			return [r, size];
		}
		_tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0));
		_tmp$17 = 4;
		r = _tmp$16;
		size = _tmp$17;
		return [r, size];
	};
	$pkg.DecodeRune = DecodeRune;
	DecodeRuneInString = function(s) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1;
		r = 0;
		size = 0;
		n = s.length;
		if (n < 1) {
			_tmp = 65533;
			_tmp$1 = 0;
			r = _tmp;
			size = _tmp$1;
			return [r, size];
		}
		s0 = s.charCodeAt(0);
		x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]);
		if (x >= 240) {
			mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0;
			_tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask);
			_tmp$3 = 1;
			r = _tmp$2;
			size = _tmp$3;
			return [r, size];
		}
		sz = ((((x & 7) >>> 0) >> 0));
		accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
		if (n < sz) {
			_tmp$4 = 65533;
			_tmp$5 = 1;
			r = _tmp$4;
			size = _tmp$5;
			return [r, size];
		}
		s1 = s.charCodeAt(1);
		if (s1 < accept.lo || accept.hi < s1) {
			_tmp$6 = 65533;
			_tmp$7 = 1;
			r = _tmp$6;
			size = _tmp$7;
			return [r, size];
		}
		if (sz <= 2) {
			_tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0));
			_tmp$9 = 2;
			r = _tmp$8;
			size = _tmp$9;
			return [r, size];
		}
		s2 = s.charCodeAt(2);
		if (s2 < 128 || 191 < s2) {
			_tmp$10 = 65533;
			_tmp$11 = 1;
			r = _tmp$10;
			size = _tmp$11;
			return [r, size];
		}
		if (sz <= 3) {
			_tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0));
			_tmp$13 = 3;
			r = _tmp$12;
			size = _tmp$13;
			return [r, size];
		}
		s3 = s.charCodeAt(3);
		if (s3 < 128 || 191 < s3) {
			_tmp$14 = 65533;
			_tmp$15 = 1;
			r = _tmp$14;
			size = _tmp$15;
			return [r, size];
		}
		_tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0));
		_tmp$17 = 4;
		r = _tmp$16;
		size = _tmp$17;
		return [r, size];
	};
	$pkg.DecodeRuneInString = DecodeRuneInString;
	RuneLen = function(r) {
		var r;
		if (r < 0) {
			return -1;
		} else if (r <= 127) {
			return 1;
		} else if (r <= 2047) {
			return 2;
		} else if (55296 <= r && r <= 57343) {
			return -1;
		} else if (r <= 65535) {
			return 3;
		} else if (r <= 1114111) {
			return 4;
		}
		return -1;
	};
	$pkg.RuneLen = RuneLen;
	EncodeRune = function(p, r) {
		var i, p, r;
		i = ((r >>> 0));
		if (i <= 127) {
			(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24)));
			return 1;
		} else if (i <= 2047) {
			$unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]));
			(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0));
			(1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			return 2;
		} else if ((i > 1114111) || (55296 <= i && i <= 57343)) {
			r = 65533;
			$unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]));
			(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0));
			(1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			(2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			return 3;
		} else if (i <= 65535) {
			$unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]));
			(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0));
			(1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			(2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			return 3;
		} else {
			$unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]));
			(0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0));
			(1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			(2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			(3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0));
			return 4;
		}
	};
	$pkg.EncodeRune = EncodeRune;
	RuneCount = function(p) {
		var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4;
		np = p.$length;
		n = 0;
		i = 0;
		while (true) {
			if (!(i < np)) { break; }
			n = n + (1) >> 0;
			c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]);
			if (c < 128) {
				i = i + (1) >> 0;
				continue;
			}
			x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]);
			if (x === 241) {
				i = i + (1) >> 0;
				continue;
			}
			size = ((((x & 7) >>> 0) >> 0));
			if ((i + size >> 0) > np) {
				i = i + (1) >> 0;
				continue;
			}
			accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
			c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2]));
			if (c$1 < accept.lo || accept.hi < c$1) {
				size = 1;
			} else if (size === 2) {
			} else {
				c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3]));
				if (c$2 < 128 || 191 < c$2) {
					size = 1;
				} else if (size === 3) {
				} else {
					c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4]));
					if (c$3 < 128 || 191 < c$3) {
						size = 1;
					}
				}
			}
			i = i + (size) >> 0;
		}
		return n;
	};
	$pkg.RuneCount = RuneCount;
	RuneCountInString = function(s) {
		var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1;
		n = 0;
		ns = s.length;
		i = 0;
		while (true) {
			if (!(i < ns)) { break; }
			c = s.charCodeAt(i);
			if (c < 128) {
				i = i + (1) >> 0;
				n = n + (1) >> 0;
				continue;
			}
			x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]);
			if (x === 241) {
				i = i + (1) >> 0;
				n = n + (1) >> 0;
				continue;
			}
			size = ((((x & 7) >>> 0) >> 0));
			if ((i + size >> 0) > ns) {
				i = i + (1) >> 0;
				n = n + (1) >> 0;
				continue;
			}
			accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
			c$1 = s.charCodeAt((i + 1 >> 0));
			if (c$1 < accept.lo || accept.hi < c$1) {
				size = 1;
			} else if (size === 2) {
			} else {
				c$2 = s.charCodeAt((i + 2 >> 0));
				if (c$2 < 128 || 191 < c$2) {
					size = 1;
				} else if (size === 3) {
				} else {
					c$3 = s.charCodeAt((i + 3 >> 0));
					if (c$3 < 128 || 191 < c$3) {
						size = 1;
					}
				}
			}
			i = i + (size) >> 0;
			n = n + (1) >> 0;
		}
		n = n;
		return n;
	};
	$pkg.RuneCountInString = RuneCountInString;
	ValidString = function(s) {
		var accept, c, c$1, c$2, first32, i, n, s, second32, si, size, x, x$1;
		while (true) {
			if (!(s.length >= 8)) { break; }
			first32 = (((((((s.charCodeAt(0) >>> 0)) | (((s.charCodeAt(1) >>> 0)) << 8 >>> 0)) >>> 0) | (((s.charCodeAt(2) >>> 0)) << 16 >>> 0)) >>> 0) | (((s.charCodeAt(3) >>> 0)) << 24 >>> 0)) >>> 0;
			second32 = (((((((s.charCodeAt(4) >>> 0)) | (((s.charCodeAt(5) >>> 0)) << 8 >>> 0)) >>> 0) | (((s.charCodeAt(6) >>> 0)) << 16 >>> 0)) >>> 0) | (((s.charCodeAt(7) >>> 0)) << 24 >>> 0)) >>> 0;
			if (!(((((((first32 | second32) >>> 0)) & 2155905152) >>> 0) === 0))) {
				break;
			}
			s = $substring(s, 8);
		}
		n = s.length;
		i = 0;
		while (true) {
			if (!(i < n)) { break; }
			si = s.charCodeAt(i);
			if (si < 128) {
				i = i + (1) >> 0;
				continue;
			}
			x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]);
			if (x === 241) {
				return false;
			}
			size = ((((x & 7) >>> 0) >> 0));
			if ((i + size >> 0) > n) {
				return false;
			}
			accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange);
			c = s.charCodeAt((i + 1 >> 0));
			if (c < accept.lo || accept.hi < c) {
				return false;
			} else if (size === 2) {
			} else {
				c$1 = s.charCodeAt((i + 2 >> 0));
				if (c$1 < 128 || 191 < c$1) {
					return false;
				} else if (size === 3) {
				} else {
					c$2 = s.charCodeAt((i + 3 >> 0));
					if (c$2 < 128 || 191 < c$2) {
						return false;
					}
				}
			}
			i = i + (size) >> 0;
		}
		return true;
	};
	$pkg.ValidString = ValidString;
	ValidRune = function(r) {
		var r;
		if (0 <= r && r < 55296) {
			return true;
		} else if (57343 < r && r <= 1114111) {
			return true;
		}
		return false;
	};
	$pkg.ValidRune = ValidRune;
	acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]);
		acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0), new acceptRange.ptr(0, 0)]);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["strconv"] = (function() {
	var $pkg = {}, $init, errors, js, bytealg, math, bits, utf8, floatInfo, decimalSlice, decimal, leftCheat, NumError, sliceType, sliceType$1, arrayType, sliceType$2, sliceType$6, arrayType$1, arrayType$2, ptrType, arrayType$3, arrayType$4, arrayType$5, ptrType$1, ptrType$2, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, detailedPowersOfTen, leftcheats, optimize, contains, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, unquote, bsearch16, bsearch32, IsPrint, isInGraphicList, FormatInt, small, formatBits, isPowerOfTwo, Itoa, Atoi, ryuFtoaFixed32, ryuFtoaFixed64, formatDecimal, ryuFtoaShortest, mulByLog2Log10, mulByLog10Log2, computeBounds, ryuDigits, ryuDigits32, mult64bitPow10, mult128bitPow10, divisibleByPower5, divmod1e9, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, fmtX, min, max, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, index, lower, syntaxError, rangeError, baseError, bitSizeError, ParseUint, underscoreOK;
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	bytealg = $packages["internal/bytealg"];
	math = $packages["math"];
	bits = $packages["math/bits"];
	utf8 = $packages["unicode/utf8"];
	floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.mantbits = 0;
			this.expbits = 0;
			this.bias = 0;
			return;
		}
		this.mantbits = mantbits_;
		this.expbits = expbits_;
		this.bias = bias_;
	});
	decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.d = sliceType$6.nil;
			this.nd = 0;
			this.dp = 0;
			this.neg = false;
			return;
		}
		this.d = d_;
		this.nd = nd_;
		this.dp = dp_;
		this.neg = neg_;
	});
	decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.d = arrayType$5.zero();
			this.nd = 0;
			this.dp = 0;
			this.neg = false;
			this.trunc = false;
			return;
		}
		this.d = d_;
		this.nd = nd_;
		this.dp = dp_;
		this.neg = neg_;
		this.trunc = trunc_;
	});
	leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.delta = 0;
			this.cutoff = "";
			return;
		}
		this.delta = delta_;
		this.cutoff = cutoff_;
	});
	NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Func = "";
			this.Num = "";
			this.Err = $ifaceNil;
			return;
		}
		this.Func = Func_;
		this.Num = Num_;
		this.Err = Err_;
	});
	sliceType = $sliceType($Uint16);
	sliceType$1 = $sliceType($Uint32);
	arrayType = $arrayType($Uint64, 2);
	sliceType$2 = $sliceType(leftCheat);
	sliceType$6 = $sliceType($Uint8);
	arrayType$1 = $arrayType($Uint8, 4);
	arrayType$2 = $arrayType($Uint8, 65);
	ptrType = $ptrType(floatInfo);
	arrayType$3 = $arrayType($Uint8, 32);
	arrayType$4 = $arrayType($Uint8, 24);
	arrayType$5 = $arrayType($Uint8, 800);
	ptrType$1 = $ptrType(NumError);
	ptrType$2 = $ptrType(decimal);
	contains = function(s, c) {
		var c, s;
		return !((index(s, c) === -1));
	};
	quoteWith = function(s, quote, ASCIIonly, graphicOnly) {
		var ASCIIonly, _q, graphicOnly, quote, s;
		return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly)));
	};
	appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) {
		var ASCIIonly, _tuple, buf, graphicOnly, nBuf, quote, r, s, width;
		if ((buf.$capacity - buf.$length >> 0) < s.length) {
			nBuf = $makeSlice(sliceType$6, buf.$length, (((buf.$length + 1 >> 0) + s.length >> 0) + 1 >> 0));
			$copySlice(nBuf, buf);
			buf = nBuf;
		}
		buf = $append(buf, quote);
		width = 0;
		while (true) {
			if (!(s.length > 0)) { break; }
			r = ((s.charCodeAt(0) >> 0));
			width = 1;
			if (r >= 128) {
				_tuple = utf8.DecodeRuneInString(s);
				r = _tuple[0];
				width = _tuple[1];
			}
			if ((width === 1) && (r === 65533)) {
				buf = $appendSlice(buf, "\\x");
				buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24)));
				buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0)));
				s = $substring(s, width);
				continue;
			}
			buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly);
			s = $substring(s, width);
		}
		buf = $append(buf, quote);
		return buf;
	};
	appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) {
		var ASCIIonly, buf, graphicOnly, quote, r;
		buf = $append(buf, quote);
		if (!utf8.ValidRune(r)) {
			r = 65533;
		}
		buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly);
		buf = $append(buf, quote);
		return buf;
	};
	appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) {
		var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1;
		runeTmp = arrayType$1.zero();
		if ((r === ((quote >> 0))) || (r === 92)) {
			buf = $append(buf, 92);
			buf = $append(buf, ((r << 24 >>> 24)));
			return buf;
		}
		if (ASCIIonly) {
			if (r < 128 && IsPrint(r)) {
				buf = $append(buf, ((r << 24 >>> 24)));
				return buf;
			}
		} else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) {
			n = utf8.EncodeRune(new sliceType$6(runeTmp), r);
			buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n));
			return buf;
		}
		_1 = r;
		if (_1 === (7)) {
			buf = $appendSlice(buf, "\\a");
		} else if (_1 === (8)) {
			buf = $appendSlice(buf, "\\b");
		} else if (_1 === (12)) {
			buf = $appendSlice(buf, "\\f");
		} else if (_1 === (10)) {
			buf = $appendSlice(buf, "\\n");
		} else if (_1 === (13)) {
			buf = $appendSlice(buf, "\\r");
		} else if (_1 === (9)) {
			buf = $appendSlice(buf, "\\t");
		} else if (_1 === (11)) {
			buf = $appendSlice(buf, "\\v");
		} else {
			if (r < 32) {
				buf = $appendSlice(buf, "\\x");
				buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24)));
				buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0)));
			} else if (!utf8.ValidRune(r)) {
				r = 65533;
				buf = $appendSlice(buf, "\\u");
				s = 12;
				while (true) {
					if (!(s >= 0)) { break; }
					buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15)));
					s = s - (4) >> 0;
				}
			} else if (r < 65536) {
				buf = $appendSlice(buf, "\\u");
				s = 12;
				while (true) {
					if (!(s >= 0)) { break; }
					buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15)));
					s = s - (4) >> 0;
				}
			} else {
				buf = $appendSlice(buf, "\\U");
				s$1 = 28;
				while (true) {
					if (!(s$1 >= 0)) { break; }
					buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15)));
					s$1 = s$1 - (4) >> 0;
				}
			}
		}
		return buf;
	};
	Quote = function(s) {
		var s;
		return quoteWith(s, 34, false, false);
	};
	$pkg.Quote = Quote;
	AppendQuote = function(dst, s) {
		var dst, s;
		return appendQuotedWith(dst, s, 34, false, false);
	};
	$pkg.AppendQuote = AppendQuote;
	AppendQuoteToASCII = function(dst, s) {
		var dst, s;
		return appendQuotedWith(dst, s, 34, true, false);
	};
	$pkg.AppendQuoteToASCII = AppendQuoteToASCII;
	AppendQuoteRune = function(dst, r) {
		var dst, r;
		return appendQuotedRuneWith(dst, r, 39, false, false);
	};
	$pkg.AppendQuoteRune = AppendQuoteRune;
	AppendQuoteRuneToASCII = function(dst, r) {
		var dst, r;
		return appendQuotedRuneWith(dst, r, 39, true, false);
	};
	$pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII;
	CanBackquote = function(s) {
		var _tuple, r, s, wid;
		while (true) {
			if (!(s.length > 0)) { break; }
			_tuple = utf8.DecodeRuneInString(s);
			r = _tuple[0];
			wid = _tuple[1];
			s = $substring(s, wid);
			if (wid > 1) {
				if (r === 65279) {
					return false;
				}
				continue;
			}
			if (r === 65533) {
				return false;
			}
			if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) {
				return false;
			}
		}
		return true;
	};
	$pkg.CanBackquote = CanBackquote;
	unhex = function(b) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v;
		v = 0;
		ok = false;
		c = ((b >> 0));
		if (48 <= c && c <= 57) {
			_tmp = c - 48 >> 0;
			_tmp$1 = true;
			v = _tmp;
			ok = _tmp$1;
			return [v, ok];
		} else if (97 <= c && c <= 102) {
			_tmp$2 = (c - 97 >> 0) + 10 >> 0;
			_tmp$3 = true;
			v = _tmp$2;
			ok = _tmp$3;
			return [v, ok];
		} else if (65 <= c && c <= 70) {
			_tmp$4 = (c - 65 >> 0) + 10 >> 0;
			_tmp$5 = true;
			v = _tmp$4;
			ok = _tmp$5;
			return [v, ok];
		}
		return [v, ok];
	};
	UnquoteChar = function(s, quote) {
		var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1;
		value = 0;
		multibyte = false;
		tail = "";
		err = $ifaceNil;
		if (s.length === 0) {
			err = $pkg.ErrSyntax;
			return [value, multibyte, tail, err];
		}
		c = s.charCodeAt(0);
		if ((c === quote) && ((quote === 39) || (quote === 34))) {
			err = $pkg.ErrSyntax;
			return [value, multibyte, tail, err];
		} else if (c >= 128) {
			_tuple = utf8.DecodeRuneInString(s);
			r = _tuple[0];
			size = _tuple[1];
			_tmp = r;
			_tmp$1 = true;
			_tmp$2 = $substring(s, size);
			_tmp$3 = $ifaceNil;
			value = _tmp;
			multibyte = _tmp$1;
			tail = _tmp$2;
			err = _tmp$3;
			return [value, multibyte, tail, err];
		} else if (!((c === 92))) {
			_tmp$4 = ((s.charCodeAt(0) >> 0));
			_tmp$5 = false;
			_tmp$6 = $substring(s, 1);
			_tmp$7 = $ifaceNil;
			value = _tmp$4;
			multibyte = _tmp$5;
			tail = _tmp$6;
			err = _tmp$7;
			return [value, multibyte, tail, err];
		}
		if (s.length <= 1) {
			err = $pkg.ErrSyntax;
			return [value, multibyte, tail, err];
		}
		c$1 = s.charCodeAt(1);
		s = $substring(s, 2);
		switch (0) { default:
			_1 = c$1;
			if (_1 === (97)) {
				value = 7;
			} else if (_1 === (98)) {
				value = 8;
			} else if (_1 === (102)) {
				value = 12;
			} else if (_1 === (110)) {
				value = 10;
			} else if (_1 === (114)) {
				value = 13;
			} else if (_1 === (116)) {
				value = 9;
			} else if (_1 === (118)) {
				value = 11;
			} else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) {
				n = 0;
				_2 = c$1;
				if (_2 === (120)) {
					n = 2;
				} else if (_2 === (117)) {
					n = 4;
				} else if (_2 === (85)) {
					n = 8;
				}
				v = 0;
				if (s.length < n) {
					err = $pkg.ErrSyntax;
					return [value, multibyte, tail, err];
				}
				j = 0;
				while (true) {
					if (!(j < n)) { break; }
					_tuple$1 = unhex(s.charCodeAt(j));
					x = _tuple$1[0];
					ok = _tuple$1[1];
					if (!ok) {
						err = $pkg.ErrSyntax;
						return [value, multibyte, tail, err];
					}
					v = (v << 4 >> 0) | x;
					j = j + (1) >> 0;
				}
				s = $substring(s, n);
				if (c$1 === 120) {
					value = v;
					break;
				}
				if (!utf8.ValidRune(v)) {
					err = $pkg.ErrSyntax;
					return [value, multibyte, tail, err];
				}
				value = v;
				multibyte = true;
			} else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) {
				v$1 = ((c$1 >> 0)) - 48 >> 0;
				if (s.length < 2) {
					err = $pkg.ErrSyntax;
					return [value, multibyte, tail, err];
				}
				j$1 = 0;
				while (true) {
					if (!(j$1 < 2)) { break; }
					x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0;
					if (x$1 < 0 || x$1 > 7) {
						err = $pkg.ErrSyntax;
						return [value, multibyte, tail, err];
					}
					v$1 = ((v$1 << 3 >> 0)) | x$1;
					j$1 = j$1 + (1) >> 0;
				}
				s = $substring(s, 2);
				if (v$1 > 255) {
					err = $pkg.ErrSyntax;
					return [value, multibyte, tail, err];
				}
				value = v$1;
			} else if (_1 === (92)) {
				value = 92;
			} else if ((_1 === (39)) || (_1 === (34))) {
				if (!((c$1 === quote))) {
					err = $pkg.ErrSyntax;
					return [value, multibyte, tail, err];
				}
				value = ((c$1 >> 0));
			} else {
				err = $pkg.ErrSyntax;
				return [value, multibyte, tail, err];
			}
		}
		tail = s;
		return [value, multibyte, tail, err];
	};
	$pkg.UnquoteChar = UnquoteChar;
	Unquote = function(s) {
		var _tuple, err, out, rem, s;
		_tuple = unquote(s, true);
		out = _tuple[0];
		rem = _tuple[1];
		err = _tuple[2];
		if (rem.length > 0) {
			return ["", $pkg.ErrSyntax];
		}
		return [out, err];
	};
	$pkg.Unquote = Unquote;
	unquote = function(in$1, unescape) {
		var _1, _2, _q, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, arr, buf, buf$1, end, err, err$1, i, in$1, in0, multibyte, n, n$1, out, quote, r, r$1, rem, rem$1, unescape, valid;
		out = "";
		rem = "";
		err = $ifaceNil;
		if (in$1.length < 2) {
			_tmp = "";
			_tmp$1 = in$1;
			_tmp$2 = $pkg.ErrSyntax;
			out = _tmp;
			rem = _tmp$1;
			err = _tmp$2;
			return [out, rem, err];
		}
		quote = in$1.charCodeAt(0);
		end = index($substring(in$1, 1), quote);
		if (end < 0) {
			_tmp$3 = "";
			_tmp$4 = in$1;
			_tmp$5 = $pkg.ErrSyntax;
			out = _tmp$3;
			rem = _tmp$4;
			err = _tmp$5;
			return [out, rem, err];
		}
		end = end + (2) >> 0;
		_1 = quote;
		if (_1 === (96)) {
			if (!unescape) {
				out = $substring(in$1, 0, end);
			} else if (!contains($substring(in$1, 0, end), 13)) {
				out = $substring(in$1, 1, (end - 1 >> 0));
			} else {
				buf = $makeSlice(sliceType$6, 0, (((end - 1 >> 0) - 1 >> 0) - 1 >> 0));
				i = 1;
				while (true) {
					if (!(i < (end - 1 >> 0))) { break; }
					if (!((in$1.charCodeAt(i) === 13))) {
						buf = $append(buf, in$1.charCodeAt(i));
					}
					i = i + (1) >> 0;
				}
				out = ($bytesToString(buf));
			}
			_tmp$6 = out;
			_tmp$7 = $substring(in$1, end);
			_tmp$8 = $ifaceNil;
			out = _tmp$6;
			rem = _tmp$7;
			err = _tmp$8;
			return [out, rem, err];
		} else if ((_1 === (34)) || (_1 === (39))) {
			if (!contains($substring(in$1, 0, end), 92) && !contains($substring(in$1, 0, end), 10)) {
				valid = false;
				_2 = quote;
				if (_2 === (34)) {
					valid = utf8.ValidString($substring(in$1, 1, (end - 1 >> 0)));
				} else if (_2 === (39)) {
					_tuple = utf8.DecodeRuneInString($substring(in$1, 1, (end - 1 >> 0)));
					r = _tuple[0];
					n = _tuple[1];
					valid = (((1 + n >> 0) + 1 >> 0) === end) && (!((r === 65533)) || !((n === 1)));
				}
				if (valid) {
					out = $substring(in$1, 0, end);
					if (unescape) {
						out = $substring(out, 1, (end - 1 >> 0));
					}
					_tmp$9 = out;
					_tmp$10 = $substring(in$1, end);
					_tmp$11 = $ifaceNil;
					out = _tmp$9;
					rem = _tmp$10;
					err = _tmp$11;
					return [out, rem, err];
				}
			}
			buf$1 = sliceType$6.nil;
			in0 = in$1;
			in$1 = $substring(in$1, 1);
			if (unescape) {
				buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, end)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")));
			}
			while (true) {
				if (!(in$1.length > 0 && !((in$1.charCodeAt(0) === quote)))) { break; }
				_tuple$1 = UnquoteChar(in$1, quote);
				r$1 = _tuple$1[0];
				multibyte = _tuple$1[1];
				rem$1 = _tuple$1[2];
				err$1 = _tuple$1[3];
				if ((in$1.charCodeAt(0) === 10) || !($interfaceIsEqual(err$1, $ifaceNil))) {
					_tmp$12 = "";
					_tmp$13 = in0;
					_tmp$14 = $pkg.ErrSyntax;
					out = _tmp$12;
					rem = _tmp$13;
					err = _tmp$14;
					return [out, rem, err];
				}
				in$1 = rem$1;
				if (unescape) {
					if (r$1 < 128 || !multibyte) {
						buf$1 = $append(buf$1, ((r$1 << 24 >>> 24)));
					} else {
						arr = arrayType$1.zero();
						n$1 = utf8.EncodeRune(new sliceType$6(arr), r$1);
						buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(arr), 0, n$1));
					}
				}
				if (quote === 39) {
					break;
				}
			}
			if (!(in$1.length > 0 && (in$1.charCodeAt(0) === quote))) {
				_tmp$15 = "";
				_tmp$16 = in0;
				_tmp$17 = $pkg.ErrSyntax;
				out = _tmp$15;
				rem = _tmp$16;
				err = _tmp$17;
				return [out, rem, err];
			}
			in$1 = $substring(in$1, 1);
			if (unescape) {
				_tmp$18 = ($bytesToString(buf$1));
				_tmp$19 = in$1;
				_tmp$20 = $ifaceNil;
				out = _tmp$18;
				rem = _tmp$19;
				err = _tmp$20;
				return [out, rem, err];
			}
			_tmp$21 = $substring(in0, 0, (in0.length - in$1.length >> 0));
			_tmp$22 = in$1;
			_tmp$23 = $ifaceNil;
			out = _tmp$21;
			rem = _tmp$22;
			err = _tmp$23;
			return [out, rem, err];
		} else {
			_tmp$24 = "";
			_tmp$25 = in$1;
			_tmp$26 = $pkg.ErrSyntax;
			out = _tmp$24;
			rem = _tmp$25;
			err = _tmp$26;
			return [out, rem, err];
		}
	};
	bsearch16 = function(a, x) {
		var _tmp, _tmp$1, a, h, i, j, x;
		_tmp = 0;
		_tmp$1 = a.$length;
		i = _tmp;
		j = _tmp$1;
		while (true) {
			if (!(i < j)) { break; }
			h = i + (((j - i >> 0)) >> 1 >> 0) >> 0;
			if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) {
				i = h + 1 >> 0;
			} else {
				j = h;
			}
		}
		return i;
	};
	bsearch32 = function(a, x) {
		var _tmp, _tmp$1, a, h, i, j, x;
		_tmp = 0;
		_tmp$1 = a.$length;
		i = _tmp;
		j = _tmp$1;
		while (true) {
			if (!(i < j)) { break; }
			h = i + (((j - i >> 0)) >> 1 >> 0) >> 0;
			if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) {
				i = h + 1 >> 0;
			} else {
				j = h;
			}
		}
		return i;
	};
	IsPrint = function(r) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3;
		if (r <= 255) {
			if (32 <= r && r <= 126) {
				return true;
			}
			if (161 <= r && r <= 255) {
				return !((r === 173));
			}
			return false;
		}
		if (0 <= r && r < 65536) {
			_tmp = ((r << 16 >>> 16));
			_tmp$1 = isPrint16;
			_tmp$2 = isNotPrint16;
			rr = _tmp;
			isPrint = _tmp$1;
			isNotPrint = _tmp$2;
			i = bsearch16(isPrint, rr);
			if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) {
				return false;
			}
			j = bsearch16(isNotPrint, rr);
			return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr));
		}
		_tmp$3 = ((r >>> 0));
		_tmp$4 = isPrint32;
		_tmp$5 = isNotPrint32;
		rr$1 = _tmp$3;
		isPrint$1 = _tmp$4;
		isNotPrint$1 = _tmp$5;
		i$1 = bsearch32(isPrint$1, rr$1);
		if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) {
			return false;
		}
		if (r >= 131072) {
			return true;
		}
		r = r - (65536) >> 0;
		j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16)));
		return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16))));
	};
	$pkg.IsPrint = IsPrint;
	isInGraphicList = function(r) {
		var i, r, rr;
		if (r > 65535) {
			return false;
		}
		rr = ((r << 16 >>> 16));
		i = bsearch16(isGraphic, rr);
		return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i]));
	};
	FormatInt = function(i, base) {
		var _tuple, base, i, s;
		if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) {
			return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0)));
		}
		_tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false);
		s = _tuple[1];
		return s;
	};
	$pkg.FormatInt = FormatInt;
	small = function(i) {
		var i;
		if (i < 10) {
			return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0));
		}
		return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0));
	};
	formatBits = function(dst, u, base, neg, append_) {
		var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5;
		d = sliceType$6.nil;
		s = "";
		if (base < 2 || base > 36) {
			$panic(new $String("strconv: illegal AppendInt/FormatInt base"));
		}
		a = arrayType$2.zero();
		i = 65;
		if (neg) {
			u = new $Uint64(-u.$high, -u.$low);
		}
		if (base === 10) {
			if (true) {
				while (true) {
					if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; }
					q = $div64(u, new $Uint64(0, 1000000000), false);
					us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0));
					j = 4;
					while (true) {
						if (!(j > 0)) { break; }
						is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0;
						us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
						i = i - (2) >> 0;
						(x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0))));
						(x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0))));
						j = j - (1) >> 0;
					}
					i = i - (1) >> 0;
					((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0)));
					u = q;
				}
			}
			us$1 = ((u.$low >>> 0));
			while (true) {
				if (!(us$1 >= 100)) { break; }
				is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0;
				us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
				i = i - (2) >> 0;
				(x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0))));
				(x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0))));
			}
			is$2 = us$1 * 2 >>> 0;
			i = i - (1) >> 0;
			((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0)));
			if (us$1 >= 10) {
				i = i - (1) >> 0;
				((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2));
			}
		} else if (isPowerOfTwo(base)) {
			shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 7) >>> 0;
			b = (new $Uint64(0, base));
			m = ((base >>> 0)) - 1 >>> 0;
			while (true) {
				if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; }
				i = i - (1) >> 0;
				((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0)));
				u = $shiftRightUint64(u, (shift));
			}
			i = i - (1) >> 0;
			((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0))));
		} else {
			b$1 = (new $Uint64(0, base));
			while (true) {
				if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; }
				i = i - (1) >> 0;
				q$1 = $div64(u, b$1, false);
				((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0))));
				u = q$1;
			}
			i = i - (1) >> 0;
			((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0))));
		}
		if (neg) {
			i = i - (1) >> 0;
			((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45);
		}
		if (append_) {
			d = $appendSlice(dst, $subslice(new sliceType$6(a), i));
			return [d, s];
		}
		s = ($bytesToString($subslice(new sliceType$6(a), i)));
		return [d, s];
	};
	isPowerOfTwo = function(x) {
		var x;
		return (x & ((x - 1 >> 0))) === 0;
	};
	Itoa = function(i) {
		var i;
		return $internalize(i.toString(), $String);
	};
	$pkg.Itoa = Itoa;
	Atoi = function(s) {
		var floatval, i, jsValue, s, v;
		if (s.length === 0) {
			return [0, syntaxError("Atoi", s)];
		}
		i = 0;
		while (true) {
			if (!(i < s.length)) { break; }
			v = s.charCodeAt(i);
			if (v < 48 || v > 57) {
				if (!((v === 43)) && !((v === 45))) {
					return [0, syntaxError("Atoi", s)];
				}
			}
			i = i + (1) >> 0;
		}
		jsValue = $global.Number($externalize(s, $String), 10);
		if (!!!($global.isFinite(jsValue))) {
			return [0, syntaxError("Atoi", s)];
		}
		floatval = $parseFloat(jsValue);
		if (floatval > 2.147483647e+09) {
			return [2147483647, rangeError("Atoi", s)];
		} else if (floatval < -2.147483648e+09) {
			return [-2147483648, rangeError("Atoi", s)];
		}
		return [$parseInt(jsValue) >> 0, $ifaceNil];
	};
	$pkg.Atoi = Atoi;
	ryuFtoaFixed32 = function(d, mant, exp, prec) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, d, d0, dexp2, dfrac, di, e2, exact, exp, extra, extraMask, mant, prec, q, roundUp, y, y$1, y$2, y$3, y$4, y$5, y$6;
		if (prec < 0) {
			$panic(new $String("ryuFtoaFixed32 called with negative prec"));
		}
		if (prec > 9) {
			$panic(new $String("ryuFtoaFixed32 called with prec > 9"));
		}
		if (mant === 0) {
			_tmp = 0;
			_tmp$1 = 0;
			d.nd = _tmp;
			d.dp = _tmp$1;
			return;
		}
		e2 = exp;
		b = bits.Len32(mant);
		if (b < 25) {
			mant = (y = ((((25 - b >> 0) >>> 0))), y < 32 ? (mant << y) : 0) >>> 0;
			e2 = e2 + (((b) - 25 >> 0)) >> 0;
		}
		q = (-mulByLog2Log10(e2 + 24 >> 0) + prec >> 0) - 1 >> 0;
		exact = q <= 27 && q >= 0;
		_tuple = mult64bitPow10(mant, e2, q);
		di = _tuple[0];
		dexp2 = _tuple[1];
		d0 = _tuple[2];
		if (dexp2 >= 0) {
			$panic(new $String("not enough significant bits after mult64bitPow10"));
		}
		if (q < 0 && q >= -10 && divisibleByPower5((new $Uint64(0, mant)), -q)) {
			exact = true;
			d0 = true;
		}
		extra = ((-dexp2 >>> 0));
		extraMask = ((((y$1 = extra, y$1 < 32 ? (1 << y$1) : 0) >>> 0) - 1 >>> 0));
		_tmp$2 = (y$2 = extra, y$2 < 32 ? (di >>> y$2) : 0) >>> 0;
		_tmp$3 = (di & extraMask) >>> 0;
		di = _tmp$2;
		dfrac = _tmp$3;
		roundUp = false;
		if (exact) {
			roundUp = dfrac > ((y$3 = ((extra - 1 >>> 0)), y$3 < 32 ? (1 << y$3) : 0) >>> 0) || ((dfrac === ((y$4 = ((extra - 1 >>> 0)), y$4 < 32 ? (1 << y$4) : 0) >>> 0)) && !d0) || ((dfrac === ((y$5 = ((extra - 1 >>> 0)), y$5 < 32 ? (1 << y$5) : 0) >>> 0)) && d0 && (((di & 1) >>> 0) === 1));
		} else {
			roundUp = ((y$6 = ((extra - 1 >>> 0)), y$6 < 32 ? (dfrac >>> y$6) : 0) >>> 0) === 1;
		}
		if (!((dfrac === 0))) {
			d0 = false;
		}
		formatDecimal(d, (new $Uint64(0, di)), !d0, roundUp, prec);
		d.dp = d.dp - (q) >> 0;
	};
	ryuFtoaFixed64 = function(d, mant, exp, prec) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, d, d0, dexp2, dfrac, di, e2, exact, exp, extra, extraMask, mant, prec, q, roundUp, x, x$1, x$2, x$3, x$4, x$5;
		if (prec > 18) {
			$panic(new $String("ryuFtoaFixed64 called with prec > 18"));
		}
		if ((mant.$high === 0 && mant.$low === 0)) {
			_tmp = 0;
			_tmp$1 = 0;
			d.nd = _tmp;
			d.dp = _tmp$1;
			return;
		}
		e2 = exp;
		b = bits.Len64(mant);
		if (b < 55) {
			mant = $shiftLeft64(mant, (((55 - b >> 0) >>> 0)));
			e2 = e2 + (((b) - 55 >> 0)) >> 0;
		}
		q = (-mulByLog2Log10(e2 + 54 >> 0) + prec >> 0) - 1 >> 0;
		exact = q <= 55 && q >= 0;
		_tuple = mult128bitPow10(mant, e2, q);
		di = _tuple[0];
		dexp2 = _tuple[1];
		d0 = _tuple[2];
		if (dexp2 >= 0) {
			$panic(new $String("not enough significant bits after mult128bitPow10"));
		}
		if (q < 0 && q >= -22 && divisibleByPower5(mant, -q)) {
			exact = true;
			d0 = true;
		}
		extra = ((-dexp2 >>> 0));
		extraMask = ((x = $shiftLeft64(new $Uint64(0, 1), extra), new $Uint64(x.$high - 0, x.$low - 1)));
		_tmp$2 = $shiftRightUint64(di, extra);
		_tmp$3 = new $Uint64(di.$high & extraMask.$high, (di.$low & extraMask.$low) >>> 0);
		di = _tmp$2;
		dfrac = _tmp$3;
		roundUp = false;
		if (exact) {
			roundUp = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high > x$1.$high || (dfrac.$high === x$1.$high && dfrac.$low > x$1.$low))) || ((x$2 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high === x$2.$high && dfrac.$low === x$2.$low)) && !d0) || ((x$3 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (dfrac.$high === x$3.$high && dfrac.$low === x$3.$low)) && d0 && (x$4 = new $Uint64(di.$high & 0, (di.$low & 1) >>> 0), (x$4.$high === 0 && x$4.$low === 1)));
		} else {
			roundUp = (x$5 = $shiftRightUint64(dfrac, ((extra - 1 >>> 0))), (x$5.$high === 0 && x$5.$low === 1));
		}
		if (!((dfrac.$high === 0 && dfrac.$low === 0))) {
			d0 = false;
		}
		formatDecimal(d, di, !d0, roundUp, prec);
		d.dp = d.dp - (q) >> 0;
	};
	formatDecimal = function(d, m, trunc, roundUp, prec) {
		var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, a, b, d, m, max$1, n, prec, roundUp, trimmed, trunc, v, v1, v2, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		max$1 = ((prec < 0 || prec >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[prec]);
		trimmed = 0;
		while (true) {
			if (!((m.$high > max$1.$high || (m.$high === max$1.$high && m.$low >= max$1.$low)))) { break; }
			_tmp = $div64(m, new $Uint64(0, 10), false);
			_tmp$1 = $div64(m, new $Uint64(0, 10), true);
			a = _tmp;
			b = _tmp$1;
			m = a;
			trimmed = trimmed + (1) >> 0;
			if ((b.$high > 0 || (b.$high === 0 && b.$low > 5))) {
				roundUp = true;
			} else if ((b.$high < 0 || (b.$high === 0 && b.$low < 5))) {
				roundUp = false;
			} else {
				roundUp = trunc || (x = new $Uint64(m.$high & 0, (m.$low & 1) >>> 0), (x.$high === 0 && x.$low === 1));
			}
			if (!((b.$high === 0 && b.$low === 0))) {
				trunc = true;
			}
		}
		if (roundUp) {
			m = (x$1 = new $Uint64(0, 1), new $Uint64(m.$high + x$1.$high, m.$low + x$1.$low));
		}
		if ((m.$high > max$1.$high || (m.$high === max$1.$high && m.$low >= max$1.$low))) {
			m = $div64(m, (new $Uint64(0, 10)), false);
			trimmed = trimmed + (1) >> 0;
		}
		n = ((prec >>> 0));
		d.nd = (prec);
		v = m;
		while (true) {
			if (!((v.$high > 0 || (v.$high === 0 && v.$low >= 100)))) { break; }
			_tmp$2 = new $Uint64(0, 0);
			_tmp$3 = new $Uint64(0, 0);
			v1 = _tmp$2;
			v2 = _tmp$3;
			if ((x$2 = $shiftRightUint64(v, 32), (x$2.$high === 0 && x$2.$low === 0))) {
				_tmp$4 = (new $Uint64(0, (_q = ((v.$low >>> 0)) / 100, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))));
				_tmp$5 = (new $Uint64(0, (_r = ((v.$low >>> 0)) % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))));
				v1 = _tmp$4;
				v2 = _tmp$5;
			} else {
				_tmp$6 = $div64(v, new $Uint64(0, 100), false);
				_tmp$7 = $div64(v, new $Uint64(0, 100), true);
				v1 = _tmp$6;
				v2 = _tmp$7;
			}
			n = n - (2) >>> 0;
			(x$4 = d.d, x$5 = n + 1 >>> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$3 = $mul64(new $Uint64(0, 2), v2), new $Uint64(x$3.$high + 0, x$3.$low + 1))))));
			(x$7 = d.d, x$8 = n + 0 >>> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$6 = $mul64(new $Uint64(0, 2), v2), new $Uint64(x$6.$high + 0, x$6.$low + 0))))));
			v = v1;
		}
		if ((v.$high > 0 || (v.$high === 0 && v.$low > 0))) {
			n = n - (1) >>> 0;
			(x$10 = d.d, ((n < 0 || n >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64((x$9 = $mul64(new $Uint64(0, 2), v), new $Uint64(x$9.$high + 0, x$9.$low + 1))))));
		}
		if ((v.$high > 0 || (v.$high === 0 && v.$low >= 10))) {
			n = n - (1) >>> 0;
			(x$11 = d.d, ((n < 0 || n >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt($flatten64($mul64(new $Uint64(0, 2), v)))));
		}
		while (true) {
			if (!((x$12 = d.d, x$13 = d.nd - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])) === 48)) { break; }
			d.nd = d.nd - (1) >> 0;
			trimmed = trimmed + (1) >> 0;
		}
		d.dp = d.nd + trimmed >> 0;
	};
	ryuFtoaShortest = function(d, mant, exp, flt) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, c0, cup, d, dc, dc0, dc32, dl, dl0, dl32, du, du0, du32, e2, exp, extra, extraMask, flt, fracc, fracl, fracu, lok, mant, mc, ml, mu, q, uok, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
		if ((mant.$high === 0 && mant.$low === 0)) {
			_tmp = 0;
			_tmp$1 = 0;
			d.nd = _tmp;
			d.dp = _tmp$1;
			return;
		}
		if (exp <= 0 && bits.TrailingZeros64(mant) >= -exp) {
			mant = $shiftRightUint64(mant, (((-exp >>> 0))));
			ryuDigits(d, mant, mant, mant, true, false);
			return;
		}
		_tuple = computeBounds(mant, exp, flt);
		ml = _tuple[0];
		mc = _tuple[1];
		mu = _tuple[2];
		e2 = _tuple[3];
		if (e2 === 0) {
			ryuDigits(d, ml, mc, mu, true, false);
			return;
		}
		q = mulByLog2Log10(-e2) + 1 >> 0;
		_tmp$2 = new $Uint64(0, 0);
		_tmp$3 = new $Uint64(0, 0);
		_tmp$4 = new $Uint64(0, 0);
		dl = _tmp$2;
		dc = _tmp$3;
		du = _tmp$4;
		_tmp$5 = false;
		_tmp$6 = false;
		_tmp$7 = false;
		dl0 = _tmp$5;
		dc0 = _tmp$6;
		du0 = _tmp$7;
		if (flt === float32info) {
			_tmp$8 = 0;
			_tmp$9 = 0;
			_tmp$10 = 0;
			dl32 = _tmp$8;
			dc32 = _tmp$9;
			du32 = _tmp$10;
			_tuple$1 = mult64bitPow10(((ml.$low >>> 0)), e2, q);
			dl32 = _tuple$1[0];
			dl0 = _tuple$1[2];
			_tuple$2 = mult64bitPow10(((mc.$low >>> 0)), e2, q);
			dc32 = _tuple$2[0];
			dc0 = _tuple$2[2];
			_tuple$3 = mult64bitPow10(((mu.$low >>> 0)), e2, q);
			du32 = _tuple$3[0];
			e2 = _tuple$3[1];
			du0 = _tuple$3[2];
			_tmp$11 = (new $Uint64(0, dl32));
			_tmp$12 = (new $Uint64(0, dc32));
			_tmp$13 = (new $Uint64(0, du32));
			dl = _tmp$11;
			dc = _tmp$12;
			du = _tmp$13;
		} else {
			_tuple$4 = mult128bitPow10(ml, e2, q);
			dl = _tuple$4[0];
			dl0 = _tuple$4[2];
			_tuple$5 = mult128bitPow10(mc, e2, q);
			dc = _tuple$5[0];
			dc0 = _tuple$5[2];
			_tuple$6 = mult128bitPow10(mu, e2, q);
			du = _tuple$6[0];
			e2 = _tuple$6[1];
			du0 = _tuple$6[2];
		}
		if (e2 >= 0) {
			$panic(new $String("not enough significant bits after mult128bitPow10"));
		}
		if (q > 55) {
			_tmp$14 = false;
			_tmp$15 = false;
			_tmp$16 = false;
			dl0 = _tmp$14;
			dc0 = _tmp$15;
			du0 = _tmp$16;
		}
		if (q < 0 && q >= -24) {
			if (divisibleByPower5(ml, -q)) {
				dl0 = true;
			}
			if (divisibleByPower5(mc, -q)) {
				dc0 = true;
			}
			if (divisibleByPower5(mu, -q)) {
				du0 = true;
			}
		}
		extra = ((-e2 >>> 0));
		extraMask = ((x = $shiftLeft64(new $Uint64(0, 1), extra), new $Uint64(x.$high - 0, x.$low - 1)));
		_tmp$17 = $shiftRightUint64(dl, extra);
		_tmp$18 = new $Uint64(dl.$high & extraMask.$high, (dl.$low & extraMask.$low) >>> 0);
		dl = _tmp$17;
		fracl = _tmp$18;
		_tmp$19 = $shiftRightUint64(dc, extra);
		_tmp$20 = new $Uint64(dc.$high & extraMask.$high, (dc.$low & extraMask.$low) >>> 0);
		dc = _tmp$19;
		fracc = _tmp$20;
		_tmp$21 = $shiftRightUint64(du, extra);
		_tmp$22 = new $Uint64(du.$high & extraMask.$high, (du.$low & extraMask.$low) >>> 0);
		du = _tmp$21;
		fracu = _tmp$22;
		uok = !du0 || (fracu.$high > 0 || (fracu.$high === 0 && fracu.$low > 0));
		if (du0 && (fracu.$high === 0 && fracu.$low === 0)) {
			uok = (x$1 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), (x$1.$high === 0 && x$1.$low === 0));
		}
		if (!uok) {
			du = (x$2 = new $Uint64(0, 1), new $Uint64(du.$high - x$2.$high, du.$low - x$2.$low));
		}
		cup = false;
		if (dc0) {
			cup = (x$3 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (fracc.$high > x$3.$high || (fracc.$high === x$3.$high && fracc.$low > x$3.$low))) || ((x$4 = $shiftLeft64(new $Uint64(0, 1), ((extra - 1 >>> 0))), (fracc.$high === x$4.$high && fracc.$low === x$4.$low)) && (x$5 = new $Uint64(dc.$high & 0, (dc.$low & 1) >>> 0), (x$5.$high === 0 && x$5.$low === 1)));
		} else {
			cup = (x$6 = $shiftRightUint64(fracc, ((extra - 1 >>> 0))), (x$6.$high === 0 && x$6.$low === 1));
		}
		lok = dl0 && (fracl.$high === 0 && fracl.$low === 0) && ((x$7 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), (x$7.$high === 0 && x$7.$low === 0)));
		if (!lok) {
			dl = (x$8 = new $Uint64(0, 1), new $Uint64(dl.$high + x$8.$high, dl.$low + x$8.$low));
		}
		c0 = dc0 && (fracc.$high === 0 && fracc.$low === 0);
		ryuDigits(d, dl, dc, du, c0, cup);
		d.dp = d.dp - (q) >> 0;
	};
	mulByLog2Log10 = function(x) {
		var x;
		return (($imul(x, 78913))) >> 18 >> 0;
	};
	mulByLog10Log2 = function(x) {
		var x;
		return (($imul(x, 108853))) >> 15 >> 0;
	};
	computeBounds = function(mant, exp, flt) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, central, e2, exp, flt, lower$1, mant, upper, x, x$1, x$2, x$3, x$4;
		lower$1 = new $Uint64(0, 0);
		central = new $Uint64(0, 0);
		upper = new $Uint64(0, 0);
		e2 = 0;
		if (!((x = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x.$high && mant.$low === x.$low))) || (exp === ((flt.bias + 1 >> 0) - ((flt.mantbits >> 0)) >> 0))) {
			_tmp = (x$1 = $mul64(new $Uint64(0, 2), mant), new $Uint64(x$1.$high - 0, x$1.$low - 1));
			_tmp$1 = $mul64(new $Uint64(0, 2), mant);
			_tmp$2 = (x$2 = $mul64(new $Uint64(0, 2), mant), new $Uint64(x$2.$high + 0, x$2.$low + 1));
			lower$1 = _tmp;
			central = _tmp$1;
			upper = _tmp$2;
			e2 = exp - 1 >> 0;
			return [lower$1, central, upper, e2];
		} else {
			_tmp$3 = (x$3 = $mul64(new $Uint64(0, 4), mant), new $Uint64(x$3.$high - 0, x$3.$low - 1));
			_tmp$4 = $mul64(new $Uint64(0, 4), mant);
			_tmp$5 = (x$4 = $mul64(new $Uint64(0, 4), mant), new $Uint64(x$4.$high + 0, x$4.$low + 2));
			lower$1 = _tmp$3;
			central = _tmp$4;
			upper = _tmp$5;
			e2 = exp - 2 >> 0;
			return [lower$1, central, upper, e2];
		}
	};
	ryuDigits = function(d, lower$1, central, upper, c0, cup) {
		var _q, _r, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, c0, central, chi, clo, cup, d, lhi, llo, lower$1, n, uhi, ulo, upper, v, v1, v2, x, x$1, x$2, x$3;
		_tuple = divmod1e9(lower$1);
		lhi = _tuple[0];
		llo = _tuple[1];
		_tuple$1 = divmod1e9(central);
		chi = _tuple$1[0];
		clo = _tuple$1[1];
		_tuple$2 = divmod1e9(upper);
		uhi = _tuple$2[0];
		ulo = _tuple$2[1];
		if (uhi === 0) {
			ryuDigits32(d, llo, clo, ulo, c0, cup, 8);
		} else if (lhi < uhi) {
			if (!((llo === 0))) {
				lhi = lhi + (1) >>> 0;
			}
			c0 = c0 && (clo === 0);
			cup = (clo > 500000000) || ((clo === 500000000) && cup);
			ryuDigits32(d, lhi, chi, uhi, c0, cup, 8);
			d.dp = d.dp + (9) >> 0;
		} else {
			d.nd = 0;
			n = 9;
			v = chi;
			while (true) {
				if (!(v > 0)) { break; }
				_tmp = (_q = v / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
				_tmp$1 = (_r = v % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero"));
				v1 = _tmp;
				v2 = _tmp$1;
				v = v1;
				n = n - (1) >>> 0;
				(x = d.d, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n] = (((v2 + 48 >>> 0) << 24 >>> 24))));
			}
			d.d = $subslice(d.d, n);
			d.nd = (((9 - n >>> 0) >> 0));
			ryuDigits32(d, llo, clo, ulo, c0, cup, d.nd + 8 >> 0);
		}
		while (true) {
			if (!(d.nd > 0 && ((x$1 = d.d, x$2 = d.nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 48))) { break; }
			d.nd = d.nd - (1) >> 0;
		}
		while (true) {
			if (!(d.nd > 0 && ((x$3 = d.d, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 48))) { break; }
			d.nd = d.nd - (1) >> 0;
			d.dp = d.dp - (1) >> 0;
			d.d = $subslice(d.d, 1);
		}
	};
	ryuDigits32 = function(d, lower$1, central, upper, c0, cup, endindex) {
		var _q, _q$1, _q$2, _q$3, _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, c, c0, cNextDigit, cdigit, central, cup, d, endindex, l, lower$1, n, trimmed, u, upper, v, v1, v2, x, x$1, x$2, x$3;
		if (upper === 0) {
			d.dp = endindex + 1 >> 0;
			return;
		}
		trimmed = 0;
		cNextDigit = 0;
		while (true) {
			if (!(upper > 0)) { break; }
			l = (_q = ((lower$1 + 9 >>> 0)) / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
			_tmp = (_q$1 = central / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
			_tmp$1 = (_r = central % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero"));
			c = _tmp;
			cdigit = _tmp$1;
			u = (_q$2 = upper / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >>> 0 : $throwRuntimeError("integer divide by zero"));
			if (l > u) {
				break;
			}
			if ((l === (c + 1 >>> 0)) && c < u) {
				c = c + (1) >>> 0;
				cdigit = 0;
				cup = false;
			}
			trimmed = trimmed + (1) >> 0;
			c0 = c0 && (cNextDigit === 0);
			cNextDigit = ((cdigit >> 0));
			_tmp$2 = l;
			_tmp$3 = c;
			_tmp$4 = u;
			lower$1 = _tmp$2;
			central = _tmp$3;
			upper = _tmp$4;
		}
		if (trimmed > 0) {
			cup = cNextDigit > 5 || ((cNextDigit === 5) && !c0) || ((cNextDigit === 5) && c0 && (((central & 1) >>> 0) === 1));
		}
		if (central < upper && cup) {
			central = central + (1) >>> 0;
		}
		endindex = endindex - (trimmed) >> 0;
		v = central;
		n = endindex;
		while (true) {
			if (!(n > d.nd)) { break; }
			_tmp$5 = (_q$3 = v / 100, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >>> 0 : $throwRuntimeError("integer divide by zero"));
			_tmp$6 = (_r$1 = v % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"));
			v1 = _tmp$5;
			v2 = _tmp$6;
			(x = d.d, ((n < 0 || n >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + n] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2, v2) >>> 0) + 1 >>> 0))));
			(x$1 = d.d, x$2 = n - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((($imul(2, v2) >>> 0) + 0 >>> 0))));
			n = n - (2) >> 0;
			v = v1;
		}
		if (n === d.nd) {
			(x$3 = d.d, ((n < 0 || n >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + n] = (((v + 48 >>> 0) << 24 >>> 24))));
		}
		d.nd = endindex + 1 >> 0;
		d.dp = d.nd + trimmed >> 0;
	};
	mult64bitPow10 = function(m, e2, q) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e2, exact, hi, lo, m, pow, q, resE, resM, x, x$1, x$2, x$3, x$4;
		resM = 0;
		resE = 0;
		exact = false;
		if (q === 0) {
			_tmp = m << 6 >>> 0;
			_tmp$1 = e2 - 6 >> 0;
			_tmp$2 = true;
			resM = _tmp;
			resE = _tmp$1;
			exact = _tmp$2;
			return [resM, resE, exact];
		}
		if (q < -348 || 347 < q) {
			$panic(new $String("mult64bitPow10: power of 10 is out of range"));
		}
		pow = (x = q - -348 >> 0, ((x < 0 || x >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x]))[1];
		if (q < 0) {
			pow = (x$1 = new $Uint64(0, 1), new $Uint64(pow.$high + x$1.$high, pow.$low + x$1.$low));
		}
		_tuple = bits.Mul64((new $Uint64(0, m)), pow);
		hi = _tuple[0];
		lo = _tuple[1];
		e2 = e2 + (((mulByLog10Log2(q) - 63 >> 0) + 57 >> 0)) >> 0;
		_tmp$3 = (((x$2 = $shiftLeft64(hi, 7), x$3 = $shiftRightUint64(lo, 57), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)).$low >>> 0));
		_tmp$4 = e2;
		_tmp$5 = (x$4 = $shiftLeft64(lo, 7), (x$4.$high === 0 && x$4.$low === 0));
		resM = _tmp$3;
		resE = _tmp$4;
		exact = _tmp$5;
		return [resM, resE, exact];
	};
	mult128bitPow10 = function(m, e2, q) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, carry, e2, exact, h0, h1, l0, l1, m, mid, pow, q, resE, resM, x, x$1, x$2, x$3, x$4, x$5, x$6;
		resM = new $Uint64(0, 0);
		resE = 0;
		exact = false;
		if (q === 0) {
			_tmp = $shiftLeft64(m, 8);
			_tmp$1 = e2 - 8 >> 0;
			_tmp$2 = true;
			resM = _tmp;
			resE = _tmp$1;
			exact = _tmp$2;
			return [resM, resE, exact];
		}
		if (q < -348 || 347 < q) {
			$panic(new $String("mult128bitPow10: power of 10 is out of range"));
		}
		pow = $clone((x = q - -348 >> 0, ((x < 0 || x >= detailedPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : detailedPowersOfTen[x])), arrayType);
		if (q < 0) {
			pow[0] = (x$1 = pow[0], x$2 = new $Uint64(0, 1), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low));
		}
		e2 = e2 + (((mulByLog10Log2(q) - 127 >> 0) + 119 >> 0)) >> 0;
		_tuple = bits.Mul64(m, pow[0]);
		l1 = _tuple[0];
		l0 = _tuple[1];
		_tuple$1 = bits.Mul64(m, pow[1]);
		h1 = _tuple$1[0];
		h0 = _tuple$1[1];
		_tuple$2 = bits.Add64(l1, h0, new $Uint64(0, 0));
		mid = _tuple$2[0];
		carry = _tuple$2[1];
		h1 = (x$3 = carry, new $Uint64(h1.$high + x$3.$high, h1.$low + x$3.$low));
		_tmp$3 = (x$4 = $shiftLeft64(h1, 9), x$5 = $shiftRightUint64(mid, 55), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0));
		_tmp$4 = e2;
		_tmp$5 = (x$6 = $shiftLeft64(mid, 9), (x$6.$high === 0 && x$6.$low === 0)) && (l0.$high === 0 && l0.$low === 0);
		resM = _tmp$3;
		resE = _tmp$4;
		exact = _tmp$5;
		return [resM, resE, exact];
	};
	divisibleByPower5 = function(m, k) {
		var i, k, m, x;
		if ((m.$high === 0 && m.$low === 0)) {
			return true;
		}
		i = 0;
		while (true) {
			if (!(i < k)) { break; }
			if (!((x = $div64(m, new $Uint64(0, 5), true), (x.$high === 0 && x.$low === 0)))) {
				return false;
			}
			m = $div64(m, (new $Uint64(0, 5)), false);
			i = i + (1) >> 0;
		}
		return true;
	};
	divmod1e9 = function(x) {
		var _tuple, hi, q, x, x$1;
		if (false) {
			return [(($div64(x, new $Uint64(0, 1000000000), false).$low >>> 0)), (($div64(x, new $Uint64(0, 1000000000), true).$low >>> 0))];
		}
		_tuple = bits.Mul64($shiftRightUint64(x, 1), new $Uint64(2305843009, 917808536));
		hi = _tuple[0];
		q = $shiftRightUint64(hi, 28);
		return [((q.$low >>> 0)), (((x$1 = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(x.$high - x$1.$high, x.$low - x$1.$low)).$low >>> 0))];
	};
	AppendFloat = function(dst, f, fmt, prec, bitSize) {
		var bitSize, dst, f, fmt, prec;
		return genericFtoa(dst, f, fmt, prec, bitSize);
	};
	$pkg.AppendFloat = AppendFloat;
	genericFtoa = function(dst, val, fmt, prec, bitSize) {
		var _1, _2, _3, _4, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, flt, fmt, mant, neg, ok, prec, s, shortest, val, x, x$1, x$2, x$3, y, y$1;
		bits$1 = new $Uint64(0, 0);
		flt = ptrType.nil;
		_1 = bitSize;
		if (_1 === (32)) {
			bits$1 = (new $Uint64(0, math.Float32bits(($fround(val)))));
			flt = float32info;
		} else if (_1 === (64)) {
			bits$1 = math.Float64bits(val);
			flt = float64info;
		} else {
			$panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize"));
		}
		neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0)));
		exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0));
		mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0));
		_2 = exp;
		if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) {
			s = "";
			if (!((mant.$high === 0 && mant.$low === 0))) {
				s = "NaN";
			} else if (neg) {
				s = "-Inf";
			} else {
				s = "+Inf";
			}
			return $appendSlice(dst, s);
		} else if (_2 === (0)) {
			exp = exp + (1) >> 0;
		} else {
			mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0));
		}
		exp = exp + (flt.bias) >> 0;
		if (fmt === 98) {
			return fmtB(dst, neg, mant, exp, flt);
		}
		if ((fmt === 120) || (fmt === 88)) {
			return fmtX(dst, prec, fmt, neg, mant, exp, flt);
		}
		if (!optimize) {
			return bigFtoa(dst, prec, fmt, neg, mant, exp, flt);
		}
		digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false);
		ok = false;
		shortest = prec < 0;
		if (shortest) {
			buf = arrayType$3.zero();
			digs.d = new sliceType$6(buf);
			ryuFtoaShortest(digs, mant, exp - ((flt.mantbits >> 0)) >> 0, flt);
			ok = true;
			_3 = fmt;
			if ((_3 === (101)) || (_3 === (69))) {
				prec = max(digs.nd - 1 >> 0, 0);
			} else if (_3 === (102)) {
				prec = max(digs.nd - digs.dp >> 0, 0);
			} else if ((_3 === (103)) || (_3 === (71))) {
				prec = digs.nd;
			}
		} else if (!((fmt === 102))) {
			digits = prec;
			_4 = fmt;
			if ((_4 === (101)) || (_4 === (69))) {
				digits = digits + (1) >> 0;
			} else if ((_4 === (103)) || (_4 === (71))) {
				if (prec === 0) {
					prec = 1;
				}
				digits = prec;
			}
			buf$1 = arrayType$4.zero();
			if ((bitSize === 32) && digits <= 9) {
				digs.d = new sliceType$6(buf$1);
				ryuFtoaFixed32(digs, ((mant.$low >>> 0)), exp - ((flt.mantbits >> 0)) >> 0, digits);
				ok = true;
			} else if (digits <= 18) {
				digs.d = new sliceType$6(buf$1);
				ryuFtoaFixed64(digs, mant, exp - ((flt.mantbits >> 0)) >> 0, digits);
				ok = true;
			}
		}
		if (!ok) {
			return bigFtoa(dst, prec, fmt, neg, mant, exp, flt);
		}
		return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt);
	};
	bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) {
		var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest;
		d = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false);
		d.Assign(mant);
		d.Shift(exp - ((flt.mantbits >> 0)) >> 0);
		digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false);
		shortest = prec < 0;
		if (shortest) {
			roundShortest(d, mant, exp, flt);
			decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false));
			_1 = fmt;
			if ((_1 === (101)) || (_1 === (69))) {
				prec = digs.nd - 1 >> 0;
			} else if (_1 === (102)) {
				prec = max(digs.nd - digs.dp >> 0, 0);
			} else if ((_1 === (103)) || (_1 === (71))) {
				prec = digs.nd;
			}
		} else {
			_2 = fmt;
			if ((_2 === (101)) || (_2 === (69))) {
				d.Round(prec + 1 >> 0);
			} else if (_2 === (102)) {
				d.Round(d.dp + prec >> 0);
			} else if ((_2 === (103)) || (_2 === (71))) {
				if (prec === 0) {
					prec = 1;
				}
				d.Round(prec);
			}
			decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false));
		}
		return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt);
	};
	formatDigits = function(dst, shortest, neg, digs, prec, fmt) {
		var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest;
		_1 = fmt;
		if ((_1 === (101)) || (_1 === (69))) {
			return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt);
		} else if (_1 === (102)) {
			return fmtF(dst, neg, $clone(digs, decimalSlice), prec);
		} else if ((_1 === (103)) || (_1 === (71))) {
			eprec = prec;
			if (eprec > digs.nd && digs.nd >= digs.dp) {
				eprec = digs.nd;
			}
			if (shortest) {
				eprec = 6;
			}
			exp = digs.dp - 1 >> 0;
			if (exp < -4 || exp >= eprec) {
				if (prec > digs.nd) {
					prec = digs.nd;
				}
				return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24);
			}
			if (prec > digs.dp) {
				prec = digs.nd;
			}
			return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0));
		}
		return $append(dst, 37, fmt);
	};
	roundShortest = function(d, mant, exp, flt) {
		var d, exp, explo, flt, inclusive, l, li, lower$1, m, mant, mantlo, mi, minexp, okdown, okup, u, ui, upper, upperdelta, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7;
		if ((mant.$high === 0 && mant.$low === 0)) {
			d.nd = 0;
			return;
		}
		minexp = flt.bias + 1 >> 0;
		if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) {
			return;
		}
		upper = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false);
		upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1)));
		upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0);
		mantlo = new $Uint64(0, 0);
		explo = 0;
		if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) {
			mantlo = new $Uint64(mant.$high - 0, mant.$low - 1);
			explo = exp;
		} else {
			mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1));
			explo = exp - 1 >> 0;
		}
		lower$1 = new decimal.ptr(arrayType$5.zero(), 0, 0, false, false);
		lower$1.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1)));
		lower$1.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0);
		inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0));
		upperdelta = 0;
		ui = 0;
		while (true) {
			mi = (ui - upper.dp >> 0) + d.dp >> 0;
			if (mi >= d.nd) {
				break;
			}
			li = (ui - upper.dp >> 0) + lower$1.dp >> 0;
			l = 48;
			if (li >= 0 && li < lower$1.nd) {
				l = (x$5 = lower$1.d, ((li < 0 || li >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[li]));
			}
			m = 48;
			if (mi >= 0) {
				m = (x$6 = d.d, ((mi < 0 || mi >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[mi]));
			}
			u = 48;
			if (ui < upper.nd) {
				u = (x$7 = upper.d, ((ui < 0 || ui >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[ui]));
			}
			okdown = !((l === m)) || inclusive && ((li + 1 >> 0) === lower$1.nd);
			if ((upperdelta === 0) && (m + 1 << 24 >>> 24) < u) {
				upperdelta = 2;
			} else if ((upperdelta === 0) && !((m === u))) {
				upperdelta = 1;
			} else if ((upperdelta === 1) && (!((m === 57)) || !((u === 48)))) {
				upperdelta = 2;
			}
			okup = upperdelta > 0 && (inclusive || upperdelta > 1 || (ui + 1 >> 0) < upper.nd);
			if (okdown && okup) {
				d.Round(mi + 1 >> 0);
				return;
			} else if (okdown) {
				d.RoundDown(mi + 1 >> 0);
				return;
			} else if (okup) {
				d.RoundUp(mi + 1 >> 0);
				return;
			}
			ui = ui + (1) >> 0;
		}
	};
	fmtE = function(dst, neg, d, prec, fmt) {
		var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x;
		if (neg) {
			dst = $append(dst, 45);
		}
		ch = 48;
		if (!((d.nd === 0))) {
			ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]));
		}
		dst = $append(dst, ch);
		if (prec > 0) {
			dst = $append(dst, 46);
			i = 1;
			m = min(d.nd, prec + 1 >> 0);
			if (i < m) {
				dst = $appendSlice(dst, $subslice(d.d, i, m));
				i = m;
			}
			while (true) {
				if (!(i <= prec)) { break; }
				dst = $append(dst, 48);
				i = i + (1) >> 0;
			}
		}
		dst = $append(dst, fmt);
		exp = d.dp - 1 >> 0;
		if (d.nd === 0) {
			exp = 0;
		}
		if (exp < 0) {
			ch = 45;
			exp = -exp;
		} else {
			ch = 43;
		}
		dst = $append(dst, ch);
		if (exp < 10) {
			dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24);
		} else if (exp < 100) {
			dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
		} else {
			dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
		}
		return dst;
	};
	fmtF = function(dst, neg, d, prec) {
		var ch, d, dst, i, j, m, neg, prec, x;
		if (neg) {
			dst = $append(dst, 45);
		}
		if (d.dp > 0) {
			m = min(d.nd, d.dp);
			dst = $appendSlice(dst, $subslice(d.d, 0, m));
			while (true) {
				if (!(m < d.dp)) { break; }
				dst = $append(dst, 48);
				m = m + (1) >> 0;
			}
		} else {
			dst = $append(dst, 48);
		}
		if (prec > 0) {
			dst = $append(dst, 46);
			i = 0;
			while (true) {
				if (!(i < prec)) { break; }
				ch = 48;
				j = d.dp + i >> 0;
				if (0 <= j && j < d.nd) {
					ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
				}
				dst = $append(dst, ch);
				i = i + (1) >> 0;
			}
		}
		return dst;
	};
	fmtB = function(dst, neg, mant, exp, flt) {
		var _tuple, _tuple$1, dst, exp, flt, mant, neg;
		if (neg) {
			dst = $append(dst, 45);
		}
		_tuple = formatBits(dst, mant, 10, false, true);
		dst = _tuple[0];
		dst = $append(dst, 112);
		exp = exp - (((flt.mantbits >> 0))) >> 0;
		if (exp >= 0) {
			dst = $append(dst, 43);
		}
		_tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true);
		dst = _tuple$1[0];
		return dst;
	};
	fmtX = function(dst, prec, fmt, neg, mant, exp, flt) {
		var _q, _q$1, _q$2, _q$3, _q$4, _q$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, ch, dst, exp, extra, flt, fmt, hex, i, mant, neg, prec, shift, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
		if ((mant.$high === 0 && mant.$low === 0)) {
			exp = 0;
		}
		mant = $shiftLeft64(mant, ((60 - flt.mantbits >>> 0)));
		while (true) {
			if (!(!((mant.$high === 0 && mant.$low === 0)) && (x = new $Uint64(mant.$high & 268435456, (mant.$low & 0) >>> 0), (x.$high === 0 && x.$low === 0)))) { break; }
			mant = $shiftLeft64(mant, (1));
			exp = exp - (1) >> 0;
		}
		if (prec >= 0 && prec < 15) {
			shift = ((($imul(prec, 4)) >>> 0));
			extra = (x$1 = $shiftLeft64(mant, shift), new $Uint64(x$1.$high & 268435455, (x$1.$low & 4294967295) >>> 0));
			mant = $shiftRightUint64(mant, ((60 - shift >>> 0)));
			if ((x$2 = (x$3 = new $Uint64(mant.$high & 0, (mant.$low & 1) >>> 0), new $Uint64(extra.$high | x$3.$high, (extra.$low | x$3.$low) >>> 0)), (x$2.$high > 134217728 || (x$2.$high === 134217728 && x$2.$low > 0)))) {
				mant = (x$4 = new $Uint64(0, 1), new $Uint64(mant.$high + x$4.$high, mant.$low + x$4.$low));
			}
			mant = $shiftLeft64(mant, ((60 - shift >>> 0)));
			if (!((x$5 = new $Uint64(mant.$high & 536870912, (mant.$low & 0) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) {
				mant = $shiftRightUint64(mant, (1));
				exp = exp + (1) >> 0;
			}
		}
		hex = "0123456789abcdef";
		if (fmt === 88) {
			hex = "0123456789ABCDEF";
		}
		if (neg) {
			dst = $append(dst, 45);
		}
		dst = $append(dst, 48, fmt, 48 + (((x$6 = $shiftRightUint64(mant, 60), new $Uint64(x$6.$high & 0, (x$6.$low & 1) >>> 0)).$low << 24 >>> 24)) << 24 >>> 24);
		mant = $shiftLeft64(mant, (4));
		if (prec < 0 && !((mant.$high === 0 && mant.$low === 0))) {
			dst = $append(dst, 46);
			while (true) {
				if (!(!((mant.$high === 0 && mant.$low === 0)))) { break; }
				dst = $append(dst, hex.charCodeAt($flatten64((x$7 = $shiftRightUint64(mant, 60), new $Uint64(x$7.$high & 0, (x$7.$low & 15) >>> 0)))));
				mant = $shiftLeft64(mant, (4));
			}
		} else if (prec > 0) {
			dst = $append(dst, 46);
			i = 0;
			while (true) {
				if (!(i < prec)) { break; }
				dst = $append(dst, hex.charCodeAt($flatten64((x$8 = $shiftRightUint64(mant, 60), new $Uint64(x$8.$high & 0, (x$8.$low & 15) >>> 0)))));
				mant = $shiftLeft64(mant, (4));
				i = i + (1) >> 0;
			}
		}
		ch = 80;
		if (fmt === lower(fmt)) {
			ch = 112;
		}
		dst = $append(dst, ch);
		if (exp < 0) {
			ch = 45;
			exp = -exp;
		} else {
			ch = 43;
		}
		dst = $append(dst, ch);
		if (exp < 100) {
			dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
		} else if (exp < 1000) {
			dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$1 = ((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
		} else {
			dst = $append(dst, (((_q$3 = exp / 1000, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$3 = (((_q$4 = exp / 100, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$4 = ((_q$5 = exp / 10, (_q$5 === _q$5 && _q$5 !== 1/0 && _q$5 !== -1/0) ? _q$5 >> 0 : $throwRuntimeError("integer divide by zero"))) % 10, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r$5 = exp % 10, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24);
		}
		return dst;
	};
	min = function(a, b) {
		var a, b;
		if (a < b) {
			return a;
		}
		return b;
	};
	max = function(a, b) {
		var a, b;
		if (a > b) {
			return a;
		}
		return b;
	};
	decimal.ptr.prototype.String = function() {
		var a, buf, n, w;
		a = this;
		n = 10 + a.nd >> 0;
		if (a.dp > 0) {
			n = n + (a.dp) >> 0;
		}
		if (a.dp < 0) {
			n = n + (-a.dp) >> 0;
		}
		buf = $makeSlice(sliceType$6, n);
		w = 0;
		if ((a.nd === 0)) {
			return "0";
		} else if (a.dp <= 0) {
			((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48);
			w = w + (1) >> 0;
			((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
			w = w + (1) >> 0;
			w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0;
			w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0;
		} else if (a.dp < a.nd) {
			w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0;
			((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46);
			w = w + (1) >> 0;
			w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0;
		} else {
			w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0;
			w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0;
		}
		return ($bytesToString($subslice(buf, 0, w)));
	};
	decimal.prototype.String = function() { return this.$val.String(); };
	digitZero = function(dst) {
		var _i, _ref, dst, i;
		_ref = dst;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48);
			_i++;
		}
		return dst.$length;
	};
	trim = function(a) {
		var a, x, x$1;
		while (true) {
			if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; }
			a.nd = a.nd - (1) >> 0;
		}
		if (a.nd === 0) {
			a.dp = 0;
		}
	};
	decimal.ptr.prototype.Assign = function(v) {
		var a, buf, n, v, v1, x, x$1, x$2;
		a = this;
		buf = arrayType$4.zero();
		n = 0;
		while (true) {
			if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; }
			v1 = $div64(v, new $Uint64(0, 10), false);
			v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low));
			((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24)));
			n = n + (1) >> 0;
			v = v1;
		}
		a.nd = 0;
		n = n - (1) >> 0;
		while (true) {
			if (!(n >= 0)) { break; }
			(x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n])));
			a.nd = a.nd + (1) >> 0;
			n = n - (1) >> 0;
		}
		a.dp = a.nd;
		trim(a);
	};
	decimal.prototype.Assign = function(v) { return this.$val.Assign(v); };
	rightShift = function(a, k) {
		var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4;
		r = 0;
		w = 0;
		n = 0;
		while (true) {
			if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; }
			if (r >= a.nd) {
				if (n === 0) {
					a.nd = 0;
					return;
				}
				while (true) {
					if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; }
					n = n * 10 >>> 0;
					r = r + (1) >> 0;
				}
				break;
			}
			c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0));
			n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0;
			r = r + (1) >> 0;
		}
		a.dp = a.dp - ((r - 1 >> 0)) >> 0;
		mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0;
		while (true) {
			if (!(r < a.nd)) { break; }
			c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0));
			dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0;
			n = (n & (mask)) >>> 0;
			(x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24))));
			w = w + (1) >> 0;
			n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0;
			r = r + (1) >> 0;
		}
		while (true) {
			if (!(n > 0)) { break; }
			dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0;
			n = (n & (mask)) >>> 0;
			if (w < 800) {
				(x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24))));
				w = w + (1) >> 0;
			} else if (dig$1 > 0) {
				a.trunc = true;
			}
			n = n * 10 >>> 0;
		}
		a.nd = w;
		trim(a);
	};
	prefixIsLessThan = function(b, s) {
		var b, i, s;
		i = 0;
		while (true) {
			if (!(i < s.length)) { break; }
			if (i >= b.$length) {
				return true;
			}
			if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) {
				return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i);
			}
			i = i + (1) >> 0;
		}
		return false;
	};
	leftShift = function(a, k) {
		var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y;
		delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta;
		if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) {
			delta = delta - (1) >> 0;
		}
		r = a.nd;
		w = a.nd + delta >> 0;
		n = 0;
		r = r - (1) >> 0;
		while (true) {
			if (!(r >= 0)) { break; }
			n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0;
			quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"));
			rem = n - (10 * quo >>> 0) >>> 0;
			w = w - (1) >> 0;
			if (w < 800) {
				(x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24))));
			} else if (!((rem === 0))) {
				a.trunc = true;
			}
			n = quo;
			r = r - (1) >> 0;
		}
		while (true) {
			if (!(n > 0)) { break; }
			quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero"));
			rem$1 = n - (10 * quo$1 >>> 0) >>> 0;
			w = w - (1) >> 0;
			if (w < 800) {
				(x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24))));
			} else if (!((rem$1 === 0))) {
				a.trunc = true;
			}
			n = quo$1;
		}
		a.nd = a.nd + (delta) >> 0;
		if (a.nd >= 800) {
			a.nd = 800;
		}
		a.dp = a.dp + (delta) >> 0;
		trim(a);
	};
	decimal.ptr.prototype.Shift = function(k) {
		var a, k;
		a = this;
		if ((a.nd === 0)) {
		} else if (k > 0) {
			while (true) {
				if (!(k > 28)) { break; }
				leftShift(a, 28);
				k = k - (28) >> 0;
			}
			leftShift(a, ((k >>> 0)));
		} else if (k < 0) {
			while (true) {
				if (!(k < -28)) { break; }
				rightShift(a, 28);
				k = k + (28) >> 0;
			}
			rightShift(a, ((-k >>> 0)));
		}
	};
	decimal.prototype.Shift = function(k) { return this.$val.Shift(k); };
	shouldRoundUp = function(a, nd) {
		var _r, a, nd, x, x$1, x$2, x$3;
		if (nd < 0 || nd >= a.nd) {
			return false;
		}
		if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) {
			if (a.trunc) {
				return true;
			}
			return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0));
		}
		return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53;
	};
	decimal.ptr.prototype.Round = function(nd) {
		var a, nd;
		a = this;
		if (nd < 0 || nd >= a.nd) {
			return;
		}
		if (shouldRoundUp(a, nd)) {
			a.RoundUp(nd);
		} else {
			a.RoundDown(nd);
		}
	};
	decimal.prototype.Round = function(nd) { return this.$val.Round(nd); };
	decimal.ptr.prototype.RoundDown = function(nd) {
		var a, nd;
		a = this;
		if (nd < 0 || nd >= a.nd) {
			return;
		}
		a.nd = nd;
		trim(a);
	};
	decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); };
	decimal.ptr.prototype.RoundUp = function(nd) {
		var a, c, i, nd, x, x$1, x$2;
		a = this;
		if (nd < 0 || nd >= a.nd) {
			return;
		}
		i = nd - 1 >> 0;
		while (true) {
			if (!(i >= 0)) { break; }
			c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]));
			if (c < 57) {
				(x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24)));
				a.nd = i + 1 >> 0;
				return;
			}
			i = i - (1) >> 0;
		}
		a.d[0] = 49;
		a.nd = 1;
		a.dp = a.dp + (1) >> 0;
	};
	decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); };
	decimal.ptr.prototype.RoundedInteger = function() {
		var a, i, n, x, x$1, x$2, x$3;
		a = this;
		if (a.dp > 20) {
			return new $Uint64(4294967295, 4294967295);
		}
		i = 0;
		n = new $Uint64(0, 0);
		i = 0;
		while (true) {
			if (!(i < a.dp && i < a.nd)) { break; }
			n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low));
			i = i + (1) >> 0;
		}
		while (true) {
			if (!(i < a.dp)) { break; }
			n = $mul64(n, (new $Uint64(0, 10)));
			i = i + (1) >> 0;
		}
		if (shouldRoundUp(a, a.dp)) {
			n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low));
		}
		return n;
	};
	decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); };
	index = function(s, c) {
		var c, s;
		return bytealg.IndexByteString(s, c);
	};
	lower = function(c) {
		var c;
		return (c | 32) >>> 0;
	};
	NumError.ptr.prototype.Error = function() {
		var {$24r, _r, e, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: NumError.ptr.prototype.Error, $c: true, $r, $24r, _r, e, $s};return $f;
	};
	NumError.prototype.Error = function() { return this.$val.Error(); };
	NumError.ptr.prototype.Unwrap = function() {
		var e;
		e = this;
		return e.Err;
	};
	NumError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
	syntaxError = function(fn, str) {
		var fn, str;
		return new NumError.ptr(fn, str, $pkg.ErrSyntax);
	};
	rangeError = function(fn, str) {
		var fn, str;
		return new NumError.ptr(fn, str, $pkg.ErrRange);
	};
	baseError = function(fn, str, base) {
		var base, fn, str;
		return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base)));
	};
	bitSizeError = function(fn, str, bitSize) {
		var bitSize, fn, str;
		return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize)));
	};
	ParseUint = function(s, base, bitSize) {
		var _1, _i, _ref, base, base0, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, underscores, x, x$1, x$2;
		if (s === "") {
			return [new $Uint64(0, 0), syntaxError("ParseUint", s)];
		}
		base0 = base === 0;
		s0 = s;
		if (2 <= base && base <= 36) {
		} else if ((base === 0)) {
			base = 10;
			if (s.charCodeAt(0) === 48) {
				if (s.length >= 3 && (lower(s.charCodeAt(1)) === 98)) {
					base = 2;
					s = $substring(s, 2);
				} else if (s.length >= 3 && (lower(s.charCodeAt(1)) === 111)) {
					base = 8;
					s = $substring(s, 2);
				} else if (s.length >= 3 && (lower(s.charCodeAt(1)) === 120)) {
					base = 16;
					s = $substring(s, 2);
				} else {
					base = 8;
					s = $substring(s, 1);
				}
			}
		} else {
			return [new $Uint64(0, 0), baseError("ParseUint", s0, base)];
		}
		if (bitSize === 0) {
			bitSize = 32;
		} else if (bitSize < 0 || bitSize > 64) {
			return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)];
		}
		cutoff = new $Uint64(0, 0);
		_1 = base;
		if (_1 === (10)) {
			cutoff = new $Uint64(429496729, 2576980378);
		} else if (_1 === (16)) {
			cutoff = new $Uint64(268435456, 0);
		} else {
			cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1));
		}
		maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1));
		underscores = false;
		n = new $Uint64(0, 0);
		_ref = (new sliceType$6($stringToBytes(s)));
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			d = 0;
			if ((c === 95) && base0) {
				underscores = true;
				_i++;
				continue;
			} else if (48 <= c && c <= 57) {
				d = c - 48 << 24 >>> 24;
			} else if (97 <= lower(c) && lower(c) <= 122) {
				d = (lower(c) - 97 << 24 >>> 24) + 10 << 24 >>> 24;
			} else {
				return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
			}
			if (d >= ((base << 24 >>> 24))) {
				return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
			}
			if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) {
				return [maxVal, rangeError("ParseUint", s0)];
			}
			n = $mul64(n, ((new $Uint64(0, base))));
			n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low));
			if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) {
				return [maxVal, rangeError("ParseUint", s0)];
			}
			n = n1;
			_i++;
		}
		if (underscores && !underscoreOK(s0)) {
			return [new $Uint64(0, 0), syntaxError("ParseUint", s0)];
		}
		return [n, $ifaceNil];
	};
	$pkg.ParseUint = ParseUint;
	underscoreOK = function(s) {
		var hex, i, s, saw;
		saw = 94;
		i = 0;
		if (s.length >= 1 && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) {
			s = $substring(s, 1);
		}
		hex = false;
		if (s.length >= 2 && (s.charCodeAt(0) === 48) && ((lower(s.charCodeAt(1)) === 98) || (lower(s.charCodeAt(1)) === 111) || (lower(s.charCodeAt(1)) === 120))) {
			i = 2;
			saw = 48;
			hex = lower(s.charCodeAt(1)) === 120;
		}
		while (true) {
			if (!(i < s.length)) { break; }
			if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57 || hex && 97 <= lower(s.charCodeAt(i)) && lower(s.charCodeAt(i)) <= 102) {
				saw = 48;
				i = i + (1) >> 0;
				continue;
			}
			if (s.charCodeAt(i) === 95) {
				if (!((saw === 48))) {
					return false;
				}
				saw = 95;
				i = i + (1) >> 0;
				continue;
			}
			if (saw === 95) {
				return false;
			}
			saw = 33;
			i = i + (1) >> 0;
		}
		return !((saw === 95));
	};
	ptrType$2.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType], [$Uint64, $Bool], false)}];
	ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}];
	floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]);
	decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType$5, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]);
	NumError.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		isPrint16 = new sliceType([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1519, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2045, 2093, 2096, 2139, 2142, 2154, 2208, 2247, 2259, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2558, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2678, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3191, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6848, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7312, 7354, 7357, 7367, 7376, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11858, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12771, 12784, 40956, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42943, 42946, 42954, 42997, 43052, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43883, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]);
		isNotPrint16 = new sliceType([173, 907, 909, 930, 1328, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3085, 3089, 3113, 3141, 3145, 3159, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3341, 3345, 3397, 3401, 3456, 3460, 3506, 3516, 3541, 3543, 3715, 3717, 3723, 3748, 3750, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11158, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12592, 12687, 12831, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]);
		isPrint32 = new sliceType$1([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65948, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68149, 68152, 68154, 68159, 68168, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68903, 68912, 68921, 69216, 69293, 69296, 69297, 69376, 69415, 69424, 69465, 69552, 69579, 69600, 69622, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69959, 69968, 70006, 70016, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70753, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71487, 71680, 71739, 71840, 71922, 71935, 71942, 71945, 71945, 71948, 71992, 71995, 72006, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72164, 72192, 72263, 72272, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73056, 73112, 73120, 73129, 73440, 73464, 73648, 73648, 73664, 73713, 73727, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93760, 93850, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119520, 119539, 119552, 119638, 119648, 119672, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123215, 123584, 123641, 123647, 123647, 124928, 125124, 125127, 125142, 125184, 125259, 125264, 125273, 125278, 125279, 126065, 126132, 126209, 126269, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127405, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128727, 128736, 128748, 128752, 128764, 128768, 128883, 128896, 128984, 128992, 129003, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129200, 129201, 129280, 129619, 129632, 129645, 129648, 129652, 129656, 129658, 129664, 129670, 129680, 129704, 129712, 129718, 129728, 129730, 129744, 129750, 129792, 129994, 130032, 130041, 131072, 173789, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999]);
		isNotPrint32 = new sliceType([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 3711, 3754, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 4922, 5212, 6420, 6423, 6454, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 7526, 7529, 7567, 7570, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 63865, 63948, 64403]);
		isGraphic = new sliceType([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]);
		uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]);
		float32info = new floatInfo.ptr(23, 8, -127);
		float64info = new floatInfo.ptr(52, 11, -1023);
		detailedPowersOfTen = $toNativeArray($kindArray, [$toNativeArray($kindUint64, [new $Uint64(389204073, 3445679187), new $Uint64(4203730336, 136053384)]), $toNativeArray($kindUint64, [new $Uint64(243252546, 542936756), new $Uint64(2627331460, 85033365)]), $toNativeArray($kindUint64, [new $Uint64(1377807506, 2826154593), new $Uint64(3284164325, 106291706)]), $toNativeArray($kindUint64, [new $Uint64(3869743031, 1385209593), new $Uint64(4105205406, 1206606456)]), $toNativeArray($kindUint64, [new $Uint64(2418589394, 2476368732), new $Uint64(2565753378, 3975354507)]), $toNativeArray($kindUint64, [new $Uint64(1949494919, 947977267), new $Uint64(3207191723, 2821709486)]), $toNativeArray($kindUint64, [new $Uint64(289385001, 111229759), new $Uint64(4008989654, 2453395034)]), $toNativeArray($kindUint64, [new $Uint64(1254607449, 2753873159), new $Uint64(2505618534, 459630072)]), $toNativeArray($kindUint64, [new $Uint64(1568259312, 221115977), new $Uint64(3132023167, 2722021238)]), $toNativeArray($kindUint64, [new $Uint64(4107807788, 276394972), new $Uint64(3915028959, 2328784723)]), $toNativeArray($kindUint64, [new $Uint64(2030508955, 2320230505), new $Uint64(2446893099, 3066103188)]), $toNativeArray($kindUint64, [new $Uint64(2538136194, 1826546308), new $Uint64(3058616374, 2758887161)]), $toNativeArray($kindUint64, [new $Uint64(4246412067, 135699237), new $Uint64(3823270468, 1301125303)]), $toNativeArray($kindUint64, [new $Uint64(4264620277, 3842908407), new $Uint64(2389544042, 2960686962)]), $toNativeArray($kindUint64, [new $Uint64(3183291699, 1582410037), new $Uint64(2986930053, 1553375055)]), $toNativeArray($kindUint64, [new $Uint64(2905372800, 904270722), new $Uint64(3733662566, 3015460643)]), $toNativeArray($kindUint64, [new $Uint64(1278987088, 565169201), new $Uint64(2333539104, 810921078)]), $toNativeArray($kindUint64, [new $Uint64(3746217508, 706461501), new $Uint64(2916923880, 1013651347)]), $toNativeArray($kindUint64, [new $Uint64(3609030061, 883076877), new $Uint64(3646154850, 1267064184)]), $toNativeArray($kindUint64, [new $Uint64(2255643788, 1088793960), new $Uint64(2278846781, 1865656939)]), $toNativeArray($kindUint64, [new $Uint64(1745812911, 1360992450), new $Uint64(2848558476, 3405812998)]), $toNativeArray($kindUint64, [new $Uint64(34782491, 627498738), new $Uint64(3560698095, 4257266248)]), $toNativeArray($kindUint64, [new $Uint64(21739056, 4150283095), new $Uint64(2225436309, 4271404141)]), $toNativeArray($kindUint64, [new $Uint64(1100915645, 892886573), new $Uint64(2781795387, 2118029704)]), $toNativeArray($kindUint64, [new $Uint64(1376144556, 2189850041), new $Uint64(3477244234, 1573795306)]), $toNativeArray($kindUint64, [new $Uint64(1933832171, 3516139923), new $Uint64(2173277646, 2057363890)]), $toNativeArray($kindUint64, [new $Uint64(269806566, 3321433080), new $Uint64(2716597058, 424221215)]), $toNativeArray($kindUint64, [new $Uint64(3558483680, 2004307702), new $Uint64(3395746322, 2677760166)]), $toNativeArray($kindUint64, [new $Uint64(2300620952, 2505384628), new $Uint64(4244682903, 1199716560)]), $toNativeArray($kindUint64, [new $Uint64(1437888095, 1565865392), new $Uint64(2652926814, 2360435586)]), $toNativeArray($kindUint64, [new $Uint64(3944843767, 883589917), new $Uint64(3316158518, 803060834)]), $toNativeArray($kindUint64, [new $Uint64(2783571061, 30745572), new $Uint64(4145198147, 3151309691)]), $toNativeArray($kindUint64, [new $Uint64(1202861001, 556086894), new $Uint64(2590748842, 1432697645)]), $toNativeArray($kindUint64, [new $Uint64(2577318075, 1768850442), new $Uint64(3238436052, 3938355704)]), $toNativeArray($kindUint64, [new $Uint64(3221647594, 1137321229), new $Uint64(4048045066, 627977334)]), $toNativeArray($kindUint64, [new $Uint64(939787922, 1784567592), new $Uint64(2530028166, 1466227658)]), $toNativeArray($kindUint64, [new $Uint64(3322218551, 83225842), new $Uint64(3162535207, 3980268220)]), $toNativeArray($kindUint64, [new $Uint64(4152773188, 3325257774), new $Uint64(3953169009, 3901593451)]), $toNativeArray($kindUint64, [new $Uint64(2058612330, 4225769757), new $Uint64(2470730631, 827883171)]), $toNativeArray($kindUint64, [new $Uint64(1499523589, 3134728548), new $Uint64(3088413288, 4256079436)]), $toNativeArray($kindUint64, [new $Uint64(1874404487, 697185213), new $Uint64(3860516611, 1025131999)]), $toNativeArray($kindUint64, [new $Uint64(2782115540, 2046353494), new $Uint64(2412822882, 103836587)]), $toNativeArray($kindUint64, [new $Uint64(2403902601, 2557941868), new $Uint64(3016028602, 2277279382)]), $toNativeArray($kindUint64, [new $Uint64(857394603, 4271169159), new $Uint64(3770035753, 699115580)]), $toNativeArray($kindUint64, [new $Uint64(2683355275, 2132609812), new $Uint64(2356272345, 3121301797)]), $toNativeArray($kindUint64, [new $Uint64(132968622, 1592020441), new $Uint64(2945340432, 680401775)]), $toNativeArray($kindUint64, [new $Uint64(3387436249, 4137509200), new $Uint64(3681675540, 850502218)]), $toNativeArray($kindUint64, [new $Uint64(3190889480, 975330514), new $Uint64(2301047212, 2679047534)]), $toNativeArray($kindUint64, [new $Uint64(1841128202, 1219163142), new $Uint64(2876309015, 3348809418)]), $toNativeArray($kindUint64, [new $Uint64(153926604, 3671437576), new $Uint64(3595386269, 3112269949)]), $toNativeArray($kindUint64, [new $Uint64(633075040, 147164837), new $Uint64(2247116418, 2482039630)]), $toNativeArray($kindUint64, [new $Uint64(2938827448, 183956046), new $Uint64(2808895523, 955065889)]), $toNativeArray($kindUint64, [new $Uint64(452308838, 229945057), new $Uint64(3511119404, 120090538)]), $toNativeArray($kindUint64, [new $Uint64(1356434847, 3364941133), new $Uint64(2194449627, 2222540234)]), $toNativeArray($kindUint64, [new $Uint64(3843027207, 3132434592), new $Uint64(2743062034, 1704433468)]), $toNativeArray($kindUint64, [new $Uint64(508816713, 2841801416), new $Uint64(3428827542, 4278025484)]), $toNativeArray($kindUint64, [new $Uint64(636020892, 331026298), new $Uint64(4286034428, 3200048207)]), $toNativeArray($kindUint64, [new $Uint64(2008125793, 2354375084), new $Uint64(2678771517, 4147513777)]), $toNativeArray($kindUint64, [new $Uint64(3583899065, 4016710679), new $Uint64(3348464397, 1963166749)]), $toNativeArray($kindUint64, [new $Uint64(1258648360, 1799662877), new $Uint64(4185580496, 3527700261)]), $toNativeArray($kindUint64, [new $Uint64(1323526137, 1124789298), new $Uint64(2615987810, 2204812663)]), $toNativeArray($kindUint64, [new $Uint64(580665847, 2479728447), new $Uint64(3269984763, 608532181)]), $toNativeArray($kindUint64, [new $Uint64(1799574133, 2025918735), new $Uint64(4087480953, 3981890698)]), $toNativeArray($kindUint64, [new $Uint64(2198475657, 1803070121), new $Uint64(2554675596, 878068950)]), $toNativeArray($kindUint64, [new $Uint64(600610923, 3327579475), new $Uint64(3193344495, 1097586188)]), $toNativeArray($kindUint64, [new $Uint64(750763654, 3085732520), new $Uint64(3991680619, 298240911)]), $toNativeArray($kindUint64, [new $Uint64(2079840020, 854841001), new $Uint64(2494800386, 3944496953)]), $toNativeArray($kindUint64, [new $Uint64(3673541849, 1068551251), new $Uint64(3118500483, 2783137543)]), $toNativeArray($kindUint64, [new $Uint64(3518185487, 2409430888), new $Uint64(3898125604, 2405180105)]), $toNativeArray($kindUint64, [new $Uint64(588253193, 3116507041), new $Uint64(2436328502, 3650721214)]), $toNativeArray($kindUint64, [new $Uint64(2882800140, 674408330), new $Uint64(3045410628, 2415917869)]), $toNativeArray($kindUint64, [new $Uint64(382274703, 843010412), new $Uint64(3806763285, 3019897337)]), $toNativeArray($kindUint64, [new $Uint64(2923276249, 2137494243), new $Uint64(2379227053, 2424306747)]), $toNativeArray($kindUint64, [new $Uint64(2580353487, 3745609628), new $Uint64(2974033816, 4104125258)]), $toNativeArray($kindUint64, [new $Uint64(1077958211, 3608270211), new $Uint64(3717542271, 835189277)]), $toNativeArray($kindUint64, [new $Uint64(1210594794, 1718297970), new $Uint64(2323463919, 2132606034)]), $toNativeArray($kindUint64, [new $Uint64(3660727141, 388815), new $Uint64(2904329899, 1592015718)]), $toNativeArray($kindUint64, [new $Uint64(2428425278, 1074227842), new $Uint64(3630412374, 916277824)]), $toNativeArray($kindUint64, [new $Uint64(1517765798, 3892617873), new $Uint64(2269007733, 3793899112)]), $toNativeArray($kindUint64, [new $Uint64(1897207248, 2718288694), new $Uint64(2836259667, 1521148418)]), $toNativeArray($kindUint64, [new $Uint64(224025412, 3397860867), new $Uint64(3545324584, 827693699)]), $toNativeArray($kindUint64, [new $Uint64(3898112266, 4271146690), new $Uint64(2215827865, 517308561)]), $toNativeArray($kindUint64, [new $Uint64(1651414861, 3191449714), new $Uint64(2769784831, 1720377526)]), $toNativeArray($kindUint64, [new $Uint64(4211752225, 768086671), new $Uint64(3462231039, 1076730083)]), $toNativeArray($kindUint64, [new $Uint64(2095474228, 3164408729), new $Uint64(2163894399, 2283569038)]), $toNativeArray($kindUint64, [new $Uint64(471859137, 3955510912), new $Uint64(2704867999, 1780719474)]), $toNativeArray($kindUint64, [new $Uint64(2737307570, 1723163168), new $Uint64(3381084999, 1152157518)]), $toNativeArray($kindUint64, [new $Uint64(1274150815, 6470312), new $Uint64(4226356249, 366455074)]), $toNativeArray($kindUint64, [new $Uint64(1870086083, 1614656681), new $Uint64(2641472655, 2913388981)]), $toNativeArray($kindUint64, [new $Uint64(3411349428, 944579027), new $Uint64(3301840819, 2567994402)]), $toNativeArray($kindUint64, [new $Uint64(2116703137, 1180723784), new $Uint64(4127301024, 2136251179)]), $toNativeArray($kindUint64, [new $Uint64(786068548, 3422306925), new $Uint64(2579563140, 1335156987)]), $toNativeArray($kindUint64, [new $Uint64(4203811157, 4277883656), new $Uint64(3224453925, 1668946233)]), $toNativeArray($kindUint64, [new $Uint64(2033538475, 2126129098), new $Uint64(4030567406, 3159924616)]), $toNativeArray($kindUint64, [new $Uint64(1270961547, 791959774), new $Uint64(2519104629, 901211061)]), $toNativeArray($kindUint64, [new $Uint64(2662443757, 4211175190), new $Uint64(3148880786, 2200255650)]), $toNativeArray($kindUint64, [new $Uint64(1180571049, 2042743516), new $Uint64(3936100983, 602835915)]), $toNativeArray($kindUint64, [new $Uint64(200985993, 3961069257), new $Uint64(2460063114, 1987385183)]), $toNativeArray($kindUint64, [new $Uint64(3472457964, 1730111099), new $Uint64(3075078893, 336747830)]), $toNativeArray($kindUint64, [new $Uint64(2193088807, 2162638874), new $Uint64(3843848616, 1494676612)]), $toNativeArray($kindUint64, [new $Uint64(3518164152, 2962262032), new $Uint64(2402405385, 934172882)]), $toNativeArray($kindUint64, [new $Uint64(2250221542, 3702827541), new $Uint64(3003006731, 2241457927)]), $toNativeArray($kindUint64, [new $Uint64(1739035104, 2481050778), new $Uint64(3753758414, 1728080585)]), $toNativeArray($kindUint64, [new $Uint64(3771251500, 1550656736), new $Uint64(2346099009, 6308541)]), $toNativeArray($kindUint64, [new $Uint64(1492838903, 1938320920), new $Uint64(2932623761, 1081627501)]), $toNativeArray($kindUint64, [new $Uint64(2939790453, 1349159326), new $Uint64(3665779701, 2425776200)]), $toNativeArray($kindUint64, [new $Uint64(1837369033, 1380095491), new $Uint64(2291112313, 2052981037)]), $toNativeArray($kindUint64, [new $Uint64(3370453115, 2798861187), new $Uint64(2863890391, 3639968120)]), $toNativeArray($kindUint64, [new $Uint64(4213066394, 2424834660), new $Uint64(3579862989, 3476218326)]), $toNativeArray($kindUint64, [new $Uint64(1559424672, 2589263487), new $Uint64(2237414368, 2709507366)]), $toNativeArray($kindUint64, [new $Uint64(4096764488, 3236579358), new $Uint64(2796767960, 3386884207)]), $toNativeArray($kindUint64, [new $Uint64(4047213786, 4045724198), new $Uint64(3495959950, 4233605259)]), $toNativeArray($kindUint64, [new $Uint64(1992637704, 3602319448), new $Uint64(2184974969, 1572261463)]), $toNativeArray($kindUint64, [new $Uint64(1417055307, 207932014), new $Uint64(2731218711, 3039068653)]), $toNativeArray($kindUint64, [new $Uint64(2845060957, 3481140489), new $Uint64(3414023389, 2725093992)]), $toNativeArray($kindUint64, [new $Uint64(3556326197, 1130200140), new $Uint64(4267529237, 185142018)]), $toNativeArray($kindUint64, [new $Uint64(3296445697, 1243245999), new $Uint64(2667205773, 652584673)]), $toNativeArray($kindUint64, [new $Uint64(899331649, 2627799323), new $Uint64(3334007216, 1889472666)]), $toNativeArray($kindUint64, [new $Uint64(3271648210, 63523682), new $Uint64(4167509020, 2361840832)]), $toNativeArray($kindUint64, [new $Uint64(2044780131, 1113444125), new $Uint64(2604693137, 3623634168)]), $toNativeArray($kindUint64, [new $Uint64(2555975164, 318063332), new $Uint64(3255866422, 1308317238)]), $toNativeArray($kindUint64, [new $Uint64(1047485307, 397579165), new $Uint64(4069833027, 3782880196)]), $toNativeArray($kindUint64, [new $Uint64(2802161964, 4006583362), new $Uint64(2543645642, 1827429210)]), $toNativeArray($kindUint64, [new $Uint64(1355218808, 713261907), new $Uint64(3179557053, 136802865)]), $toNativeArray($kindUint64, [new $Uint64(2767765334, 891577384), new $Uint64(3974446316, 1244745405)]), $toNativeArray($kindUint64, [new $Uint64(2266724245, 3778461337), new $Uint64(2484028947, 2925449526)]), $toNativeArray($kindUint64, [new $Uint64(685921659, 1501851199), new $Uint64(3105036184, 2583070084)]), $toNativeArray($kindUint64, [new $Uint64(857402074, 803572175), new $Uint64(3881295230, 3228837605)]), $toNativeArray($kindUint64, [new $Uint64(1072747208, 1575974433), new $Uint64(2425809519, 944281679)]), $toNativeArray($kindUint64, [new $Uint64(267192186, 1969968041), new $Uint64(3032261899, 106610275)]), $toNativeArray($kindUint64, [new $Uint64(3555215705, 314976404), new $Uint64(3790327373, 3354488315)]), $toNativeArray($kindUint64, [new $Uint64(1685138903, 2881214812), new $Uint64(2368954608, 2633426109)]), $toNativeArray($kindUint64, [new $Uint64(3180165453, 2527776691), new $Uint64(2961193260, 3291782636)]), $toNativeArray($kindUint64, [new $Uint64(3975206816, 4233462688), new $Uint64(3701491575, 4114728295)]), $toNativeArray($kindUint64, [new $Uint64(4095116996, 2645914180), new $Uint64(2313432234, 4182317920)]), $toNativeArray($kindUint64, [new $Uint64(823928949, 3307392725), new $Uint64(2891790293, 3080413753)]), $toNativeArray($kindUint64, [new $Uint64(2103653011, 913015435), new $Uint64(3614737867, 629291719)]), $toNativeArray($kindUint64, [new $Uint64(2925395868, 33763735), new $Uint64(2259211166, 4151403708)]), $toNativeArray($kindUint64, [new $Uint64(3656744835, 42204668), new $Uint64(2824013958, 3041770987)]), $toNativeArray($kindUint64, [new $Uint64(3497189219, 3273981307), new $Uint64(3530017448, 1654730086)]), $toNativeArray($kindUint64, [new $Uint64(1112001438, 1509367405), new $Uint64(2206260905, 1034206304)]), $toNativeArray($kindUint64, [new $Uint64(1390001797, 4034192904), new $Uint64(2757826131, 2366499704)]), $toNativeArray($kindUint64, [new $Uint64(1737502247, 1821515659), new $Uint64(3447282664, 1884382806)]), $toNativeArray($kindUint64, [new $Uint64(12197080, 2749060022), new $Uint64(2154551665, 1177739254)]), $toNativeArray($kindUint64, [new $Uint64(2162729998, 3436325028), new $Uint64(2693189581, 2545915891)]), $toNativeArray($kindUint64, [new $Uint64(1629670674, 2147922637), new $Uint64(3366486976, 4256136688)]), $toNativeArray($kindUint64, [new $Uint64(2037088343, 537419649), new $Uint64(4208108721, 1025203564)]), $toNativeArray($kindUint64, [new $Uint64(3420663862, 1946500016), new $Uint64(2630067950, 3325106787)]), $toNativeArray($kindUint64, [new $Uint64(3202088004, 285641372), new $Uint64(3287584938, 2008899836)]), $toNativeArray($kindUint64, [new $Uint64(4002610005, 357051716), new $Uint64(4109481173, 363641147)]), $toNativeArray($kindUint64, [new $Uint64(1964760341, 760028234), new $Uint64(2568425733, 764146629)]), $toNativeArray($kindUint64, [new $Uint64(3529692250, 2023777117), new $Uint64(3210532166, 2028925110)]), $toNativeArray($kindUint64, [new $Uint64(2264631665, 382237748), new $Uint64(4013165208, 388672740)]), $toNativeArray($kindUint64, [new $Uint64(3562878438, 2923253152), new $Uint64(2508228255, 242920462)]), $toNativeArray($kindUint64, [new $Uint64(2306114400, 1506582793), new $Uint64(3135285318, 3524876050)]), $toNativeArray($kindUint64, [new $Uint64(735159352, 1883228491), new $Uint64(3919106648, 2258611415)]), $toNativeArray($kindUint64, [new $Uint64(2070087331, 1177017807), new $Uint64(2449441655, 1411632134)]), $toNativeArray($kindUint64, [new $Uint64(440125516, 397530434), new $Uint64(3061802069, 690798344)]), $toNativeArray($kindUint64, [new $Uint64(550156895, 496913043), new $Uint64(3827252586, 1937239754)]), $toNativeArray($kindUint64, [new $Uint64(1417589883, 1921183388), new $Uint64(2392032866, 2284516670)]), $toNativeArray($kindUint64, [new $Uint64(3919471002, 1327737411), new $Uint64(2990041083, 708162189)]), $toNativeArray($kindUint64, [new $Uint64(1678113280, 3807155412), new $Uint64(3737551353, 4106428209)]), $toNativeArray($kindUint64, [new $Uint64(3733175360, 2379472132), new $Uint64(2335969596, 955904894)]), $toNativeArray($kindUint64, [new $Uint64(2518985552, 2974340165), new $Uint64(2919961995, 1194881118)]), $toNativeArray($kindUint64, [new $Uint64(1001248292, 3717925207), new $Uint64(3649952494, 419859574)]), $toNativeArray($kindUint64, [new $Uint64(3847005655, 176219606), new $Uint64(2281220308, 3483637705)]), $toNativeArray($kindUint64, [new $Uint64(1587531596, 3441499980), new $Uint64(2851525386, 59579836)]), $toNativeArray($kindUint64, [new $Uint64(1984414496, 6907679), new $Uint64(3564406732, 2221958443)]), $toNativeArray($kindUint64, [new $Uint64(703388148, 4317299), new $Uint64(2227754207, 3536207675)]), $toNativeArray($kindUint64, [new $Uint64(4100460657, 5396624), new $Uint64(2784692759, 3346517769)]), $toNativeArray($kindUint64, [new $Uint64(1904350349, 1080487604), new $Uint64(3480865949, 3109405388)]), $toNativeArray($kindUint64, [new $Uint64(3337702616, 1212175664), new $Uint64(2175541218, 2480249279)]), $toNativeArray($kindUint64, [new $Uint64(3098386446, 1515219580), new $Uint64(2719426523, 952827951)]), $toNativeArray($kindUint64, [new $Uint64(2799241233, 4041508124), new $Uint64(3399283154, 117293115)]), $toNativeArray($kindUint64, [new $Uint64(2425309718, 1830659683), new $Uint64(4249103942, 2294100042)]), $toNativeArray($kindUint64, [new $Uint64(2589560398, 70420478), new $Uint64(2655689964, 360070702)]), $toNativeArray($kindUint64, [new $Uint64(1089466849, 2235509245), new $Uint64(3319612455, 450088378)]), $toNativeArray($kindUint64, [new $Uint64(3509317209, 3868128380), new $Uint64(4149515568, 3783835944)]), $toNativeArray($kindUint64, [new $Uint64(2193323256, 806967502), new $Uint64(2593447230, 2364897465)]), $toNativeArray($kindUint64, [new $Uint64(3815395894, 1008709377), new $Uint64(3241809038, 808638183)]), $toNativeArray($kindUint64, [new $Uint64(3695503043, 3408370369), new $Uint64(4052261297, 3158281377)]), $toNativeArray($kindUint64, [new $Uint64(699076666, 1593360569), new $Uint64(2532663311, 363313125)]), $toNativeArray($kindUint64, [new $Uint64(1947587656, 4139184359), new $Uint64(3165829138, 3675366878)]), $toNativeArray($kindUint64, [new $Uint64(287000923, 879013153), new $Uint64(3957286423, 2446724950)]), $toNativeArray($kindUint64, [new $Uint64(3400601049, 12512308), new $Uint64(2473304014, 3139815829)]), $toNativeArray($kindUint64, [new $Uint64(1029525839, 1089382210), new $Uint64(3091630018, 1777286139)]), $toNativeArray($kindUint64, [new $Uint64(213165475, 287985938), new $Uint64(3864537523, 74124026)]), $toNativeArray($kindUint64, [new $Uint64(1206970245, 3938087595), new $Uint64(2415335951, 3804423900)]), $toNativeArray($kindUint64, [new $Uint64(1508712807, 1701384022), new $Uint64(3019169939, 3681788051)]), $toNativeArray($kindUint64, [new $Uint64(812149185, 1052988204), new $Uint64(3773962424, 3528493240)]), $toNativeArray($kindUint64, [new $Uint64(507593240, 3342472187), new $Uint64(2358726515, 2205308275)]), $toNativeArray($kindUint64, [new $Uint64(3855717022, 4178090234), new $Uint64(2948408144, 1682893519)]), $toNativeArray($kindUint64, [new $Uint64(3745904454, 3075129145), new $Uint64(3685510180, 2103616899)]), $toNativeArray($kindUint64, [new $Uint64(1804319372, 848213891), new $Uint64(2303443862, 3462244210)]), $toNativeArray($kindUint64, [new $Uint64(107915567, 1060267364), new $Uint64(2879304828, 2180321615)]), $toNativeArray($kindUint64, [new $Uint64(3356119931, 251592381), new $Uint64(3599131035, 2725402018)]), $toNativeArray($kindUint64, [new $Uint64(3171316780, 3915341622), new $Uint64(2249456897, 1166505349)]), $toNativeArray($kindUint64, [new $Uint64(742920504, 599209732), new $Uint64(2811821121, 2531873511)]), $toNativeArray($kindUint64, [new $Uint64(4149876102, 749012165), new $Uint64(3514776401, 4238583712)]), $toNativeArray($kindUint64, [new $Uint64(2593672563, 3689358075), new $Uint64(2196735251, 1038502084)]), $toNativeArray($kindUint64, [new $Uint64(3242090704, 3537955770), new $Uint64(2745919064, 224385781)]), $toNativeArray($kindUint64, [new $Uint64(831387909, 127477416), new $Uint64(3432398830, 280482227)]), $toNativeArray($kindUint64, [new $Uint64(4260460358, 1233088594), new $Uint64(4290498537, 2498086431)]), $toNativeArray($kindUint64, [new $Uint64(4273400459, 3991905843), new $Uint64(2681561585, 4245658579)]), $toNativeArray($kindUint64, [new $Uint64(4268008750, 3916140480), new $Uint64(3351951982, 2085847752)]), $toNativeArray($kindUint64, [new $Uint64(1040043642, 2747691952), new $Uint64(4189939978, 459826043)]), $toNativeArray($kindUint64, [new $Uint64(113156364, 2791049294), new $Uint64(2618712486, 1361133101)]), $toNativeArray($kindUint64, [new $Uint64(1215187279, 3488811618), new $Uint64(3273390607, 3848900024)]), $toNativeArray($kindUint64, [new $Uint64(1518984099, 3287272698), new $Uint64(4091738259, 3737383206)]), $toNativeArray($kindUint64, [new $Uint64(4170590534, 1517674524), new $Uint64(2557336412, 1798993591)]), $toNativeArray($kindUint64, [new $Uint64(4139496343, 4044576803), new $Uint64(3196670515, 2248741989)]), $toNativeArray($kindUint64, [new $Uint64(1953144957, 3981979180), new $Uint64(3995838144, 1737185663)]), $toNativeArray($kindUint64, [new $Uint64(2831328334, 3025607900), new $Uint64(2497398840, 1085741039)]), $toNativeArray($kindUint64, [new $Uint64(2465418594, 1634526227), new $Uint64(3121748550, 1357176299)]), $toNativeArray($kindUint64, [new $Uint64(2008031418, 4190641431), new $Uint64(3902185687, 3843954022)]), $toNativeArray($kindUint64, [new $Uint64(181277812, 3692892718), new $Uint64(2438866054, 4013084000)]), $toNativeArray($kindUint64, [new $Uint64(226597266, 321148602), new $Uint64(3048582568, 2868871352)]), $toNativeArray($kindUint64, [new $Uint64(283246582, 2548919401), new $Uint64(3810728210, 3586089190)]), $toNativeArray($kindUint64, [new $Uint64(3398254586, 519332801), new $Uint64(2381705131, 3315047567)]), $toNativeArray($kindUint64, [new $Uint64(3174076408, 2796649650), new $Uint64(2977131414, 3070067635)]), $toNativeArray($kindUint64, [new $Uint64(2893853686, 3495812062), new $Uint64(3721414268, 1690100896)]), $toNativeArray($kindUint64, [new $Uint64(1808658554, 1111140715), new $Uint64(2325883917, 3203796708)]), $toNativeArray($kindUint64, [new $Uint64(2260823192, 3536409542), new $Uint64(2907354897, 783520413)]), $toNativeArray($kindUint64, [new $Uint64(3899770815, 125544631), new $Uint64(3634193621, 2053142340)]), $toNativeArray($kindUint64, [new $Uint64(289873111, 1689078130), new $Uint64(2271371013, 1820084875)]), $toNativeArray($kindUint64, [new $Uint64(3583566861, 1037605839), new $Uint64(2839213766, 3348847917)]), $toNativeArray($kindUint64, [new $Uint64(1258233104, 2370749123), new $Uint64(3549017208, 2038576249)]), $toNativeArray($kindUint64, [new $Uint64(3470750250, 1481718202), new $Uint64(2218135755, 1274110155)]), $toNativeArray($kindUint64, [new $Uint64(3264695988, 3999631400), new $Uint64(2772669694, 518895870)]), $toNativeArray($kindUint64, [new $Uint64(1933386338, 704571954), new $Uint64(3465837117, 2796103486)]), $toNativeArray($kindUint64, [new $Uint64(134624637, 1514099295), new $Uint64(2166148198, 2284435591)]), $toNativeArray($kindUint64, [new $Uint64(3389506268, 2966365943), new $Uint64(2707685248, 708060840)]), $toNativeArray($kindUint64, [new $Uint64(4236882835, 3707957429), new $Uint64(3384606560, 885076050)]), $toNativeArray($kindUint64, [new $Uint64(3148619896, 3561204962), new $Uint64(4230758200, 1106345063)]), $toNativeArray($kindUint64, [new $Uint64(3578500171, 2225753101), new $Uint64(2644223875, 691465664)]), $toNativeArray($kindUint64, [new $Uint64(178157918, 1708449553), new $Uint64(3305279843, 4085557553)]), $toNativeArray($kindUint64, [new $Uint64(1296439221, 4283045589), new $Uint64(4131599804, 4033205117)]), $toNativeArray($kindUint64, [new $Uint64(1347145425, 3213774405), new $Uint64(2582249878, 373269550)]), $toNativeArray($kindUint64, [new $Uint64(3831415430, 795992534), new $Uint64(3227812347, 2614070585)]), $toNativeArray($kindUint64, [new $Uint64(1568043815, 3142474316), new $Uint64(4034765434, 2193846408)]), $toNativeArray($kindUint64, [new $Uint64(980027384, 3574659183), new $Uint64(2521728396, 2444895829)]), $toNativeArray($kindUint64, [new $Uint64(2298776055, 173356683), new $Uint64(3152160495, 3056119786)]), $toNativeArray($kindUint64, [new $Uint64(725986420, 3437921326), new $Uint64(3940200619, 2746407909)]), $toNativeArray($kindUint64, [new $Uint64(990612425, 1217181), new $Uint64(2462625387, 1179634031)]), $toNativeArray($kindUint64, [new $Uint64(164523707, 1075263300), new $Uint64(3078281734, 400800715)]), $toNativeArray($kindUint64, [new $Uint64(3426880106, 270337301), new $Uint64(3847852167, 2648484541)]), $toNativeArray($kindUint64, [new $Uint64(2678670978, 1242702637), new $Uint64(2404907604, 3265915574)]), $toNativeArray($kindUint64, [new $Uint64(1200855074, 3700861945), new $Uint64(3006134505, 4082394468)]), $toNativeArray($kindUint64, [new $Uint64(1501068843, 2478593783), new $Uint64(3757668132, 1881767613)]), $toNativeArray($kindUint64, [new $Uint64(1475038939, 1012250202), new $Uint64(2348542582, 3323588406)]), $toNativeArray($kindUint64, [new $Uint64(3991282322, 191570929), new $Uint64(2935678228, 2007001859)]), $toNativeArray($kindUint64, [new $Uint64(3915361078, 2386947309), new $Uint64(3669597785, 2508752324)]), $toNativeArray($kindUint64, [new $Uint64(299617026, 418100244), new $Uint64(2293498615, 4252324763)]), $toNativeArray($kindUint64, [new $Uint64(3595746754, 2670108953), new $Uint64(2866873269, 4241664129)]), $toNativeArray($kindUint64, [new $Uint64(1273457971, 1190152543), new $Uint64(3583591587, 2080854690)]), $toNativeArray($kindUint64, [new $Uint64(1869653056, 206974427), new $Uint64(2239744742, 763663269)]), $toNativeArray($kindUint64, [new $Uint64(3410808144, 258718034), new $Uint64(2799680927, 3102062734)]), $toNativeArray($kindUint64, [new $Uint64(2116026532, 323397543), new $Uint64(3499601159, 2803836594)]), $toNativeArray($kindUint64, [new $Uint64(2396258406, 2349607112), new $Uint64(2187250724, 3363010607)]), $toNativeArray($kindUint64, [new $Uint64(1921581184, 789525242), new $Uint64(2734063405, 4203763259)]), $toNativeArray($kindUint64, [new $Uint64(1328234656, 986906553), new $Uint64(3417579257, 2033478602)]), $toNativeArray($kindUint64, [new $Uint64(3807776968, 1233633192), new $Uint64(4271974071, 3615590076)]), $toNativeArray($kindUint64, [new $Uint64(232376957, 771020745), new $Uint64(2669983794, 3870356534)]), $toNativeArray($kindUint64, [new $Uint64(2437954844, 2037517755), new $Uint64(3337479743, 2690462019)]), $toNativeArray($kindUint64, [new $Uint64(1973701731, 2546897194), new $Uint64(4171849679, 2289335700)]), $toNativeArray($kindUint64, [new $Uint64(3381047230, 1054939834), new $Uint64(2607406049, 3041447548)]), $toNativeArray($kindUint64, [new $Uint64(4226309037, 3466158440), new $Uint64(3259257562, 580583963)]), $toNativeArray($kindUint64, [new $Uint64(4209144473, 1111472579), new $Uint64(4074071952, 2873213602)]), $toNativeArray($kindUint64, [new $Uint64(3704457119, 3379024922), new $Uint64(2546294970, 1795758501)]), $toNativeArray($kindUint64, [new $Uint64(1409345927, 3150039328), new $Uint64(3182868713, 97214479)]), $toNativeArray($kindUint64, [new $Uint64(687940585, 2863807336), new $Uint64(3978585891, 1195259923)]), $toNativeArray($kindUint64, [new $Uint64(4188059250, 179266849), new $Uint64(2486616182, 210166539)]), $toNativeArray($kindUint64, [new $Uint64(4161332238, 2371567209), new $Uint64(3108270227, 2410191822)]), $toNativeArray($kindUint64, [new $Uint64(3054181650, 816975364), new $Uint64(3885337784, 1938997954)]), $toNativeArray($kindUint64, [new $Uint64(2982605355, 1584351426), new $Uint64(2428336115, 1211873721)]), $toNativeArray($kindUint64, [new $Uint64(507031222, 906697459), new $Uint64(3035420144, 441100328)]), $toNativeArray($kindUint64, [new $Uint64(633789027, 3280855472), new $Uint64(3794275180, 551375410)]), $toNativeArray($kindUint64, [new $Uint64(1469859966, 1513663758), new $Uint64(2371421987, 2492093279)]), $toNativeArray($kindUint64, [new $Uint64(763583133, 4039563345), new $Uint64(2964277484, 2041374775)]), $toNativeArray($kindUint64, [new $Uint64(4175704389, 1828228709), new $Uint64(3705346855, 2551718468)]), $toNativeArray($kindUint64, [new $Uint64(462331595, 1679513855), new $Uint64(2315841784, 3205436779)]), $toNativeArray($kindUint64, [new $Uint64(3799139966, 1025650495), new $Uint64(2894802230, 4006795973)]), $toNativeArray($kindUint64, [new $Uint64(1527699485, 3429546767), new $Uint64(3618502788, 2861011319)]), $toNativeArray($kindUint64, [new $Uint64(2565424914, 2680337641), new $Uint64(2261564242, 3935615722)]), $toNativeArray($kindUint64, [new $Uint64(1059297495, 1202938404), new $Uint64(2826955303, 2772036005)]), $toNativeArray($kindUint64, [new $Uint64(2397863693, 429931181), new $Uint64(3533694129, 2391303182)]), $toNativeArray($kindUint64, [new $Uint64(424922984, 805577900), new $Uint64(2208558830, 4178919049)]), $toNativeArray($kindUint64, [new $Uint64(1604895554, 1006972375), new $Uint64(2760698538, 3076165163)]), $toNativeArray($kindUint64, [new $Uint64(932377618, 3406199117), new $Uint64(3450873173, 1697722806)]), $toNativeArray($kindUint64, [new $Uint64(3803961483, 3202616272), new $Uint64(2156795733, 1597947665)]), $toNativeArray($kindUint64, [new $Uint64(1533726382, 2929528516), new $Uint64(2695994666, 3071176406)]), $toNativeArray($kindUint64, [new $Uint64(4064641626, 1514426997), new $Uint64(3369993333, 1691486859)]), $toNativeArray($kindUint64, [new $Uint64(4007060208, 4040517394), new $Uint64(4212491666, 3188100398)]), $toNativeArray($kindUint64, [new $Uint64(1430670806, 2525323371), new $Uint64(2632807291, 3066304573)]), $toNativeArray($kindUint64, [new $Uint64(2862080332, 1009170566), new $Uint64(3291009114, 2759138892)]), $toNativeArray($kindUint64, [new $Uint64(3577600415, 1261463208), new $Uint64(4113761393, 1301439967)]), $toNativeArray($kindUint64, [new $Uint64(3846612995, 2399027241), new $Uint64(2571100870, 3497754539)]), $toNativeArray($kindUint64, [new $Uint64(3734524420, 1925042227), new $Uint64(3213876088, 2224709526)]), $toNativeArray($kindUint64, [new $Uint64(2520671877, 2406302784), new $Uint64(4017345110, 2780886908)]), $toNativeArray($kindUint64, [new $Uint64(3722903571, 2040810152), new $Uint64(2510840694, 664312493)]), $toNativeArray($kindUint64, [new $Uint64(1432403992, 1477270866), new $Uint64(3138550867, 2977874265)]), $toNativeArray($kindUint64, [new $Uint64(2864246814, 1846588582), new $Uint64(3923188584, 2648601007)]), $toNativeArray($kindUint64, [new $Uint64(3400766995, 80376040), new $Uint64(2451992865, 1655375629)]), $toNativeArray($kindUint64, [new $Uint64(1029733271, 3321695522), new $Uint64(3064991081, 3142961361)]), $toNativeArray($kindUint64, [new $Uint64(2360908413, 3078377578), new $Uint64(3831238852, 707476229)]), $toNativeArray($kindUint64, [new $Uint64(2012438670, 2460856898), new $Uint64(2394524282, 2589656291)]), $toNativeArray($kindUint64, [new $Uint64(1441806514, 928587475), new $Uint64(2993155353, 1089586716)]), $toNativeArray($kindUint64, [new $Uint64(1802258142, 3308217992), new $Uint64(3741444191, 2435725219)]), $toNativeArray($kindUint64, [new $Uint64(589540427, 993894421), new $Uint64(2338402619, 3132940998)]), $toNativeArray($kindUint64, [new $Uint64(2884409182, 168626202), new $Uint64(2923003274, 2842434423)]), $toNativeArray($kindUint64, [new $Uint64(2531769653, 2358266401), new $Uint64(3653754093, 1405559381)]), $toNativeArray($kindUint64, [new $Uint64(2119226945, 2010787412), new $Uint64(2283596308, 1415345525)]), $toNativeArray($kindUint64, [new $Uint64(3722775505, 3587226089), new $Uint64(2854495385, 1769181906)]), $toNativeArray($kindUint64, [new $Uint64(2505985734, 1262807140), new $Uint64(3568119231, 3285219207)]), $toNativeArray($kindUint64, [new $Uint64(3176853819, 4010479934), new $Uint64(2230074519, 3663874740)]), $toNativeArray($kindUint64, [new $Uint64(3971067274, 3939358094), new $Uint64(2787593149, 3506101601)]), $toNativeArray($kindUint64, [new $Uint64(1742608621, 2776713970), new $Uint64(3484491437, 1161401530)]), $toNativeArray($kindUint64, [new $Uint64(2162872212, 2272317143), new $Uint64(2177807148, 1262746868)]), $toNativeArray($kindUint64, [new $Uint64(2703590265, 2840396429), new $Uint64(2722258935, 1578433585)]), $toNativeArray($kindUint64, [new $Uint64(158262360, 329270064), new $Uint64(3402823669, 899300158)]), $toNativeArray($kindUint64, [new $Uint64(2345311598, 411587580), new $Uint64(4253529586, 2197867021)]), $toNativeArray($kindUint64, [new $Uint64(2002690660, 3478467709), new $Uint64(2658455991, 2447408712)]), $toNativeArray($kindUint64, [new $Uint64(2503363326, 53117341), new $Uint64(3323069989, 1985519066)]), $toNativeArray($kindUint64, [new $Uint64(981720509, 2213880324), new $Uint64(4153837486, 3555640657)]), $toNativeArray($kindUint64, [new $Uint64(3297929878, 1920546114), new $Uint64(2596148429, 1148533586)]), $toNativeArray($kindUint64, [new $Uint64(1974928700, 253198995), new $Uint64(3245185536, 2509408807)]), $toNativeArray($kindUint64, [new $Uint64(1394919051, 316498744), new $Uint64(4056481920, 3136761009)]), $toNativeArray($kindUint64, [new $Uint64(3556178966, 3955908099), new $Uint64(2535301200, 1960475630)]), $toNativeArray($kindUint64, [new $Uint64(2297740060, 2797401476), new $Uint64(3169126500, 2450594538)]), $toNativeArray($kindUint64, [new $Uint64(724691427, 3496751845), new $Uint64(3961408125, 3063243173)]), $toNativeArray($kindUint64, [new $Uint64(989803054, 1648598991), new $Uint64(2475880078, 2451397895)]), $toNativeArray($kindUint64, [new $Uint64(163511993, 4208232386), new $Uint64(3094850098, 916763721)]), $toNativeArray($kindUint64, [new $Uint64(1278131816, 2039065011), new $Uint64(3868562622, 3293438299)]), $toNativeArray($kindUint64, [new $Uint64(261961473, 1274415632), new $Uint64(2417851639, 984657113)]), $toNativeArray($kindUint64, [new $Uint64(1401193665, 2666761364), new $Uint64(3022314549, 157079567)]), $toNativeArray($kindUint64, [new $Uint64(677750258, 112226233), new $Uint64(3777893186, 1270091283)]), $toNativeArray($kindUint64, [new $Uint64(4181690295, 1143883219), new $Uint64(2361183241, 1867548875)]), $toNativeArray($kindUint64, [new $Uint64(4153371045, 356112200), new $Uint64(2951479051, 3408177918)]), $toNativeArray($kindUint64, [new $Uint64(3044230158, 1518882075), new $Uint64(3689348814, 3186480574)]), $toNativeArray($kindUint64, [new $Uint64(828902024, 4170526768), new $Uint64(2305843009, 917808535)]), $toNativeArray($kindUint64, [new $Uint64(4257353003, 918191165), new $Uint64(2882303761, 2221002492)]), $toNativeArray($kindUint64, [new $Uint64(1026723958, 73997132), new $Uint64(3602879701, 3849994940)]), $toNativeArray($kindUint64, [new $Uint64(2789186121, 3267473679), new $Uint64(2251799813, 2943117749)]), $toNativeArray($kindUint64, [new $Uint64(265257180, 863116627), new $Uint64(2814749767, 457671715)]), $toNativeArray($kindUint64, [new $Uint64(3552796947, 1078895784), new $Uint64(3518437208, 3793315115)]), $toNativeArray($kindUint64, [new $Uint64(1683627180, 137438953), new $Uint64(2199023255, 2370821947)]), $toNativeArray($kindUint64, [new $Uint64(1030792151, 171798691), new $Uint64(2748779069, 1889785610)]), $toNativeArray($kindUint64, [new $Uint64(3435973836, 3435973836), new $Uint64(3435973836, 3435973836)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2147483648, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2684354560, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3355443200, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4194304000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2621440000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3276800000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4096000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2560000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3200000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(4000000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2500000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3125000000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3906250000, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2441406250, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3051757812, 2147483648)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3814697265, 2684354560)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2384185791, 67108864)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2980232238, 3305111552)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3725290298, 1983905792)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2328306436, 2313682944)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2910383045, 2892103680)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3637978807, 393904128)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2273736754, 1856802816)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2842170943, 173519872)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3552713678, 3438125312)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2220446049, 1075086496)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(2775557561, 2417599944)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(3469446951, 4095741754)]), $toNativeArray($kindUint64, [new $Uint64(1073741824, 0), new $Uint64(2168404344, 4170451332)]), $toNativeArray($kindUint64, [new $Uint64(1342177280, 0), new $Uint64(2710505431, 918096869)]), $toNativeArray($kindUint64, [new $Uint64(2751463424, 0), new $Uint64(3388131789, 73879262)]), $toNativeArray($kindUint64, [new $Uint64(1291845632, 0), new $Uint64(4235164736, 1166090902)]), $toNativeArray($kindUint64, [new $Uint64(4028628992, 0), new $Uint64(2646977960, 728806813)]), $toNativeArray($kindUint64, [new $Uint64(1814560768, 0), new $Uint64(3308722450, 911008517)]), $toNativeArray($kindUint64, [new $Uint64(3341942784, 0), new $Uint64(4135903062, 3286244294)]), $toNativeArray($kindUint64, [new $Uint64(1014972416, 0), new $Uint64(2584939414, 980160860)]), $toNativeArray($kindUint64, [new $Uint64(1268715520, 0), new $Uint64(3231174267, 3372684723)]), $toNativeArray($kindUint64, [new $Uint64(512152576, 0), new $Uint64(4038967834, 3142114080)]), $toNativeArray($kindUint64, [new $Uint64(320095360, 0), new $Uint64(2524354896, 3037563124)]), $toNativeArray($kindUint64, [new $Uint64(400119200, 0), new $Uint64(3155443620, 3796953905)]), $toNativeArray($kindUint64, [new $Uint64(1573890824, 0), new $Uint64(3944304526, 451225085)]), $toNativeArray($kindUint64, [new $Uint64(1520552677, 0), new $Uint64(2465190328, 3503241150)]), $toNativeArray($kindUint64, [new $Uint64(4048174494, 1073741824), new $Uint64(3081487911, 84084141)]), $toNativeArray($kindUint64, [new $Uint64(1838992645, 3489660928), new $Uint64(3851859888, 3326330649)]), $toNativeArray($kindUint64, [new $Uint64(3833724963, 2717908992), new $Uint64(2407412430, 2078956655)]), $toNativeArray($kindUint64, [new $Uint64(3718414380, 2323644416), new $Uint64(3009265538, 451212171)]), $toNativeArray($kindUint64, [new $Uint64(3574276151, 2904555520), new $Uint64(3761581922, 2711498862)]), $toNativeArray($kindUint64, [new $Uint64(1160180770, 3425959936), new $Uint64(2350988701, 2768428613)]), $toNativeArray($kindUint64, [new $Uint64(2523967787, 2134966272), new $Uint64(2938735877, 239310294)]), $toNativeArray($kindUint64, [new $Uint64(1007476086, 1594966016), new $Uint64(3673419846, 1372879692)]), $toNativeArray($kindUint64, [new $Uint64(2777156201, 4218079232), new $Uint64(2295887403, 4079275279)]), $toNativeArray($kindUint64, [new $Uint64(2397703428, 2051373568), new $Uint64(2869859254, 4025352275)]), $toNativeArray($kindUint64, [new $Uint64(1923387461, 2564216960), new $Uint64(3587324068, 2884206696)]), $toNativeArray($kindUint64, [new $Uint64(1202117163, 2139506512), new $Uint64(2242077542, 3950112833)]), $toNativeArray($kindUint64, [new $Uint64(2576388278, 1600641316), new $Uint64(2802596928, 2790157393)]), $toNativeArray($kindUint64, [new $Uint64(4294227171, 4148285293), new $Uint64(3503246160, 3487696741)]), $toNativeArray($kindUint64, [new $Uint64(3220762894, 2055807396), new $Uint64(2189528850, 2179810463)]), $toNativeArray($kindUint64, [new $Uint64(2952211794, 422275597), new $Uint64(2736911063, 577279431)]), $toNativeArray($kindUint64, [new $Uint64(2616522918, 2675328144), new $Uint64(3421138828, 3942824761)]), $toNativeArray($kindUint64, [new $Uint64(49428176, 1196676532), new $Uint64(4276423536, 633563656)]), $toNativeArray($kindUint64, [new $Uint64(30892610, 747922832), new $Uint64(2672764710, 395977285)]), $toNativeArray($kindUint64, [new $Uint64(1112357586, 3082387189), new $Uint64(3340955887, 2642455254)]), $toNativeArray($kindUint64, [new $Uint64(3537930631, 1705500338), new $Uint64(4176194859, 2229327243)]), $toNativeArray($kindUint64, [new $Uint64(1674335732, 2676550447), new $Uint64(2610121787, 856458615)]), $toNativeArray($kindUint64, [new $Uint64(1019177841, 3345688059), new $Uint64(3262652233, 4291798741)]), $toNativeArray($kindUint64, [new $Uint64(2347714126, 960884602), new $Uint64(4078315292, 2143522954)]), $toNativeArray($kindUint64, [new $Uint64(2541063152, 3821778348), new $Uint64(2548947057, 3487185494)]), $toNativeArray($kindUint64, [new $Uint64(1028845293, 482255639), new $Uint64(3186183822, 1137756396)]), $toNativeArray($kindUint64, [new $Uint64(1286056616, 1676561373), new $Uint64(3982729777, 3569679143)]), $toNativeArray($kindUint64, [new $Uint64(2414398121, 1047850858), new $Uint64(2489206111, 620436728)]), $toNativeArray($kindUint64, [new $Uint64(3017997651, 2383555396), new $Uint64(3111507638, 3996771382)]), $toNativeArray($kindUint64, [new $Uint64(1625013416, 1905702422), new $Uint64(3889384548, 2848480580)]), $toNativeArray($kindUint64, [new $Uint64(3163117033, 1191064013), new $Uint64(2430865342, 3927784010)]), $toNativeArray($kindUint64, [new $Uint64(1806412643, 2562571841), new $Uint64(3038581678, 2762246365)]), $toNativeArray($kindUint64, [new $Uint64(3331757628, 2129472977), new $Uint64(3798227098, 1305324308)]), $toNativeArray($kindUint64, [new $Uint64(4229832165, 3478404258), new $Uint64(2373891936, 1889569516)]), $toNativeArray($kindUint64, [new $Uint64(992322911, 1126779851), new $Uint64(2967364920, 2361961896)]), $toNativeArray($kindUint64, [new $Uint64(1240403639, 334732990), new $Uint64(3709206150, 2952452370)]), $toNativeArray($kindUint64, [new $Uint64(1848994098, 1819820855), new $Uint64(2318253844, 771540907)]), $toNativeArray($kindUint64, [new $Uint64(1237500799, 127292420), new $Uint64(2897817305, 964426134)]), $toNativeArray($kindUint64, [new $Uint64(3694359646, 3380340998), new $Uint64(3622271631, 2279274491)]), $toNativeArray($kindUint64, [new $Uint64(1772103867, 1038971299), new $Uint64(2263919769, 3035159293)]), $toNativeArray($kindUint64, [new $Uint64(3288871658, 224972300), new $Uint64(2829899712, 572723644)]), $toNativeArray($kindUint64, [new $Uint64(4111089572, 2428699024), new $Uint64(3537374640, 715904555)]), $toNativeArray($kindUint64, [new $Uint64(2032560070, 3665420538), new $Uint64(2210859150, 447440347)]), $toNativeArray($kindUint64, [new $Uint64(1466958264, 2434292024), new $Uint64(2763573937, 2706784082)]), $toNativeArray($kindUint64, [new $Uint64(3981181478, 3042865030), new $Uint64(3454467422, 162254630)]), $toNativeArray($kindUint64, [new $Uint64(1414496600, 828048820), new $Uint64(2159042138, 3322634616)]), $toNativeArray($kindUint64, [new $Uint64(1768120750, 1035061025), new $Uint64(2698802673, 2005809622)]), $toNativeArray($kindUint64, [new $Uint64(62667289, 3441309929), new $Uint64(3373503341, 3581003852)]), $toNativeArray($kindUint64, [new $Uint64(78334112, 1080411939), new $Uint64(4216879177, 1255029343)]), $toNativeArray($kindUint64, [new $Uint64(1659571556, 675257462), new $Uint64(2635549485, 3468747899)]), $toNativeArray($kindUint64, [new $Uint64(1000722621, 844071828), new $Uint64(3294436857, 1114709402)]), $toNativeArray($kindUint64, [new $Uint64(3398386924, 2128831609), new $Uint64(4118046071, 2467128576)]), $toNativeArray($kindUint64, [new $Uint64(2123991827, 3478003403), new $Uint64(2573778794, 3152568096)]), $toNativeArray($kindUint64, [new $Uint64(2654989784, 3273762430), new $Uint64(3217223493, 1793226472)]), $toNativeArray($kindUint64, [new $Uint64(3318737230, 4092203038), new $Uint64(4021529366, 3315274914)]), $toNativeArray($kindUint64, [new $Uint64(3147952593, 1483885074), new $Uint64(2513455854, 998304997)]), $toNativeArray($kindUint64, [new $Uint64(713715269, 2928598167), new $Uint64(3141819817, 3395364895)]), $toNativeArray($kindUint64, [new $Uint64(4113369559, 439522237), new $Uint64(3927274772, 1022980646)]), $toNativeArray($kindUint64, [new $Uint64(1497114150, 1885314134), new $Uint64(2454546732, 2786846552)]), $toNativeArray($kindUint64, [new $Uint64(1871392688, 209159020), new $Uint64(3068183415, 3483558190)]), $toNativeArray($kindUint64, [new $Uint64(191757212, 261448775), new $Uint64(3835229269, 3280705914)]), $toNativeArray($kindUint64, [new $Uint64(1193590081, 2310889132), new $Uint64(2397018293, 2587312108)]), $toNativeArray($kindUint64, [new $Uint64(1491987601, 3962353239), new $Uint64(2996272867, 12914663)]), $toNativeArray($kindUint64, [new $Uint64(791242678, 1731716077), new $Uint64(3745341083, 3237368801)]), $toNativeArray($kindUint64, [new $Uint64(3178881234, 8580724), new $Uint64(2340838177, 1486484588)]), $toNativeArray($kindUint64, [new $Uint64(3973601542, 2158209553), new $Uint64(2926047721, 2931847559)]), $toNativeArray($kindUint64, [new $Uint64(3893260104, 550278293), new $Uint64(3657559652, 443583977)]), $toNativeArray($kindUint64, [new $Uint64(822674829, 343923933), new $Uint64(2285974782, 2424723634)]), $toNativeArray($kindUint64, [new $Uint64(3175827184, 1503646741), new $Uint64(2857468478, 883420894)]), $toNativeArray($kindUint64, [new $Uint64(1822300332, 1879558426), new $Uint64(3571835597, 3251759766)]), $toNativeArray($kindUint64, [new $Uint64(65195883, 3322207664), new $Uint64(2232397248, 2569220766)]), $toNativeArray($kindUint64, [new $Uint64(2228978502, 3079017756), new $Uint64(2790496560, 3211525957)]), $toNativeArray($kindUint64, [new $Uint64(3859964952, 1701288547), new $Uint64(3488120700, 4014407446)]), $toNativeArray($kindUint64, [new $Uint64(1338736271, 1063305342), new $Uint64(2180075438, 361521006)]), $toNativeArray($kindUint64, [new $Uint64(3820903987, 255389853), new $Uint64(2725094297, 2599384905)]), $toNativeArray($kindUint64, [new $Uint64(1554904511, 3540462789), new $Uint64(3406367872, 28005660)]), $toNativeArray($kindUint64, [new $Uint64(1943630639, 3351836662), new $Uint64(4257959840, 35007075)]), $toNativeArray($kindUint64, [new $Uint64(677898237, 3705510650), new $Uint64(2661224900, 21879422)]), $toNativeArray($kindUint64, [new $Uint64(2994856445, 1410662840), new $Uint64(3326531125, 27349277)]), $toNativeArray($kindUint64, [new $Uint64(522345084, 2837070374), new $Uint64(4158163906, 1107928421)]), $toNativeArray($kindUint64, [new $Uint64(863336589, 3920652632), new $Uint64(2598852441, 1766197087)]), $toNativeArray($kindUint64, [new $Uint64(5428913, 1679590318), new $Uint64(3248565551, 3281488183)]), $toNativeArray($kindUint64, [new $Uint64(3228011613, 3173229722), new $Uint64(4060706939, 3028118404)]), $toNativeArray($kindUint64, [new $Uint64(4164990906, 2520139488), new $Uint64(2537941837, 1355703090)]), $toNativeArray($kindUint64, [new $Uint64(3058754985, 1002690712), new $Uint64(3172427296, 2768370687)]), $toNativeArray($kindUint64, [new $Uint64(2749701907, 2327105214), new $Uint64(3965534120, 3460463359)]), $toNativeArray($kindUint64, [new $Uint64(3329176428, 917569847), new $Uint64(2478458825, 2162789599)]), $toNativeArray($kindUint64, [new $Uint64(3087728711, 1146962308), new $Uint64(3098073531, 3777228823)]), $toNativeArray($kindUint64, [new $Uint64(2785919065, 359961061), new $Uint64(3872591914, 3647794205)]), $toNativeArray($kindUint64, [new $Uint64(2278070327, 2909330223), new $Uint64(2420369946, 3353613202)]), $toNativeArray($kindUint64, [new $Uint64(700104261, 2562920955), new $Uint64(3025462433, 2044532855)]), $toNativeArray($kindUint64, [new $Uint64(4096355798, 4277393018), new $Uint64(3781828041, 3629407892)]), $toNativeArray($kindUint64, [new $Uint64(412738726, 1599628812), new $Uint64(2363642526, 657767197)]), $toNativeArray($kindUint64, [new $Uint64(1589665231, 4147019663), new $Uint64(2954553157, 2969692644)]), $toNativeArray($kindUint64, [new $Uint64(1987081539, 4110032755), new $Uint64(3693191447, 490890333)]), $toNativeArray($kindUint64, [new $Uint64(1778796874, 2031899560), new $Uint64(2308244654, 1917419194)]), $toNativeArray($kindUint64, [new $Uint64(76012445, 392390802), new $Uint64(2885305818, 249290345)]), $toNativeArray($kindUint64, [new $Uint64(1168757380, 1564230326), new $Uint64(3606632272, 2459096579)]), $toNativeArray($kindUint64, [new $Uint64(193602450, 3125127602), new $Uint64(2254145170, 1536935362)]), $toNativeArray($kindUint64, [new $Uint64(2389486711, 1758925854), new $Uint64(2817681462, 4068652850)]), $toNativeArray($kindUint64, [new $Uint64(839374741, 1124915494), new $Uint64(3522101828, 2938332415)]), $toNativeArray($kindUint64, [new $Uint64(2135221949, 1239943096), new $Uint64(2201313642, 3983941407)]), $toNativeArray($kindUint64, [new $Uint64(1595285612, 2623670694), new $Uint64(2751642053, 2832443111)]), $toNativeArray($kindUint64, [new $Uint64(920365191, 3279588367), new $Uint64(3439552567, 319328417)]), $toNativeArray($kindUint64, [new $Uint64(3259582804, 3660355465), new $Uint64(2149720354, 1810192996)]), $toNativeArray($kindUint64, [new $Uint64(4074478506, 280477036), new $Uint64(2687150443, 115257597)]), $toNativeArray($kindUint64, [new $Uint64(1871872660, 2498079943), new $Uint64(3358938053, 3365297469)]), $toNativeArray($kindUint64, [new $Uint64(3413582649, 3122599929), new $Uint64(4198672567, 985396364)]), $toNativeArray($kindUint64, [new $Uint64(4280972804, 341012219), new $Uint64(2624170354, 2226485463)]), $toNativeArray($kindUint64, [new $Uint64(4277474181, 426265274), new $Uint64(3280212943, 635623181)]), $toNativeArray($kindUint64, [new $Uint64(2125617254, 1606573417), new $Uint64(4100266178, 4015754449)]), $toNativeArray($kindUint64, [new $Uint64(4012865343, 4225333857), new $Uint64(2562666361, 3583588354)]), $toNativeArray($kindUint64, [new $Uint64(2868598031, 4207925498), new $Uint64(3203332952, 1258259971)]), $toNativeArray($kindUint64, [new $Uint64(2512005715, 4186165048), new $Uint64(4004166190, 1572824964)]), $toNativeArray($kindUint64, [new $Uint64(3717487220, 2079482243), new $Uint64(2502603868, 4204241074)]), $toNativeArray($kindUint64, [new $Uint64(2499375377, 2599352804), new $Uint64(3128254836, 960334047)]), $toNativeArray($kindUint64, [new $Uint64(2050477398, 27965533), new $Uint64(3910318545, 1200417559)]), $toNativeArray($kindUint64, [new $Uint64(2892161109, 3238703930), new $Uint64(2443949090, 3434615534)]), $toNativeArray($kindUint64, [new $Uint64(1467717739, 827154441), new $Uint64(3054936363, 2145785770)]), $toNativeArray($kindUint64, [new $Uint64(3982130821, 4255168523), new $Uint64(3818670454, 1608490388)]), $toNativeArray($kindUint64, [new $Uint64(341348115, 3196351239), new $Uint64(2386669033, 4226531965)]), $toNativeArray($kindUint64, [new $Uint64(1500426968, 2921697224), new $Uint64(2983336292, 2061939484)]), $toNativeArray($kindUint64, [new $Uint64(1875533710, 3652121531), new $Uint64(3729170365, 2577424355)]), $toNativeArray($kindUint64, [new $Uint64(635337657, 1208834132), new $Uint64(2330731478, 2147761134)]), $toNativeArray($kindUint64, [new $Uint64(2941655719, 2584784490), new $Uint64(2913414348, 537217769)]), $toNativeArray($kindUint64, [new $Uint64(455844177, 2157238788), new $Uint64(3641767935, 671522212)]), $toNativeArray($kindUint64, [new $Uint64(2432386258, 4032628802), new $Uint64(2276104959, 2030314118)]), $toNativeArray($kindUint64, [new $Uint64(892999175, 2893302355), new $Uint64(2845131199, 1464150824)]), $toNativeArray($kindUint64, [new $Uint64(1116248969, 2542886120), new $Uint64(3556413999, 756446706)]), $toNativeArray($kindUint64, [new $Uint64(1771397429, 4273658385), new $Uint64(2222758749, 2083391927)]), $toNativeArray($kindUint64, [new $Uint64(1140504963, 2120847509), new $Uint64(2778448436, 3677981733)]), $toNativeArray($kindUint64, [new $Uint64(2499373028, 1577317563), new $Uint64(3473060546, 302509870)]), $toNativeArray($kindUint64, [new $Uint64(488366318, 3133307125), new $Uint64(2170662841, 1262810493)]), $toNativeArray($kindUint64, [new $Uint64(1684199722, 1769150258), new $Uint64(2713328551, 2652254940)]), $toNativeArray($kindUint64, [new $Uint64(2105249653, 63954174), new $Uint64(3391660689, 2241576851)]), $toNativeArray($kindUint64, [new $Uint64(1557820242, 1153684542), new $Uint64(4239575861, 3875712888)]), $toNativeArray($kindUint64, [new $Uint64(973637651, 1794794663), new $Uint64(2649734913, 2959191467)]), $toNativeArray($kindUint64, [new $Uint64(143305240, 1169751504), new $Uint64(3312168642, 477763862)]), $toNativeArray($kindUint64, [new $Uint64(2326615198, 1462189381), new $Uint64(4140210802, 2744688475)]), $toNativeArray($kindUint64, [new $Uint64(917263586, 4135093835), new $Uint64(2587631751, 2789172121)]), $toNativeArray($kindUint64, [new $Uint64(2220321307, 3021383645), new $Uint64(3234539689, 2412723327)]), $toNativeArray($kindUint64, [new $Uint64(1701659810, 2702987733), new $Uint64(4043174611, 4089645983)]), $toNativeArray($kindUint64, [new $Uint64(2674150117, 2763109157), new $Uint64(2526984132, 2019157827)]), $toNativeArray($kindUint64, [new $Uint64(2268945823, 232660974), new $Uint64(3158730165, 2523947284)]), $toNativeArray($kindUint64, [new $Uint64(2836182278, 3512051690), new $Uint64(3948412706, 4228675929)]), $toNativeArray($kindUint64, [new $Uint64(162001188, 1121290482), new $Uint64(2467757941, 3716664280)]), $toNativeArray($kindUint64, [new $Uint64(202501485, 1401613103), new $Uint64(3084697427, 1424604878)]), $toNativeArray($kindUint64, [new $Uint64(2400610504, 2825758202), new $Uint64(3855871784, 707014273)]), $toNativeArray($kindUint64, [new $Uint64(4184736125, 1766098876), new $Uint64(2409919865, 441883920)]), $toNativeArray($kindUint64, [new $Uint64(935952860, 3281365420), new $Uint64(3012399831, 1626096725)]), $toNativeArray($kindUint64, [new $Uint64(2243682899, 4101706775), new $Uint64(3765499789, 958879082)]), $toNativeArray($kindUint64, [new $Uint64(2476043636, 2026695822), new $Uint64(2353437368, 1136170338)]), $toNativeArray($kindUint64, [new $Uint64(947570897, 2533369778), new $Uint64(2941796710, 1420212923)]), $toNativeArray($kindUint64, [new $Uint64(110721797, 4240454046), new $Uint64(3677245887, 3922749802)]), $toNativeArray($kindUint64, [new $Uint64(1142942947, 3187154691), new $Uint64(2298278679, 4062331362)]), $toNativeArray($kindUint64, [new $Uint64(3576162332, 2910201539), new $Uint64(2872848349, 4004172378)]), $toNativeArray($kindUint64, [new $Uint64(2322719267, 3637751924), new $Uint64(3591060437, 1783990001)]), $toNativeArray($kindUint64, [new $Uint64(4136054102, 1736724041), new $Uint64(2244412773, 1651864662)]), $toNativeArray($kindUint64, [new $Uint64(3022583980, 23421403), new $Uint64(2805515966, 3138572652)]), $toNativeArray($kindUint64, [new $Uint64(3778229975, 29276754), new $Uint64(3506894958, 1775732167)]), $toNativeArray($kindUint64, [new $Uint64(3972006470, 1628910707), new $Uint64(2191809349, 36090780)]), $toNativeArray($kindUint64, [new $Uint64(670040791, 4183622032), new $Uint64(2739761686, 1118855300)]), $toNativeArray($kindUint64, [new $Uint64(837550989, 4155785716), new $Uint64(3424702107, 3546052773)]), $toNativeArray($kindUint64, [new $Uint64(2120680561, 1973506673), new $Uint64(4280877634, 3358824142)]), $toNativeArray($kindUint64, [new $Uint64(251683526, 3917796230), new $Uint64(2675548521, 3173006913)]), $toNativeArray($kindUint64, [new $Uint64(1388346232, 2749761640), new $Uint64(3344435652, 745033169)]), $toNativeArray($kindUint64, [new $Uint64(2809174614, 3437202050), new $Uint64(4180544565, 931291461)]), $toNativeArray($kindUint64, [new $Uint64(2292605046, 1074509457), new $Uint64(2612840353, 1118928075)]), $toNativeArray($kindUint64, [new $Uint64(1792014483, 3490620469), new $Uint64(3266050441, 2472401918)]), $toNativeArray($kindUint64, [new $Uint64(92534456, 3289533763), new $Uint64(4082563051, 4164244222)]), $toNativeArray($kindUint64, [new $Uint64(3279059507, 2055958602), new $Uint64(2551601907, 2065781726)]), $toNativeArray($kindUint64, [new $Uint64(1951340736, 1496206428), new $Uint64(3189502384, 1508485334)]), $toNativeArray($kindUint64, [new $Uint64(291692272, 1870258035), new $Uint64(3986877980, 1885606668)]), $toNativeArray($kindUint64, [new $Uint64(2329791318, 1168911272), new $Uint64(2491798737, 3325987815)]), $toNativeArray($kindUint64, [new $Uint64(1838497323, 3608622738), new $Uint64(3114748422, 936259297)]), $toNativeArray($kindUint64, [new $Uint64(3371863478, 3437036599), new $Uint64(3893435527, 3317807769)]), $toNativeArray($kindUint64, [new $Uint64(496801938, 1074406050), new $Uint64(2433397204, 3684242592)]), $toNativeArray($kindUint64, [new $Uint64(621002422, 3490491211), new $Uint64(3041746506, 310335944)]), $toNativeArray($kindUint64, [new $Uint64(776253028, 2215630365), new $Uint64(3802183132, 2535403578)]), $toNativeArray($kindUint64, [new $Uint64(1558899966, 3532252626), new $Uint64(2376364457, 3732110884)]), $toNativeArray($kindUint64, [new $Uint64(1948624958, 2267832135), new $Uint64(2970455572, 1443913133)]), $toNativeArray($kindUint64, [new $Uint64(3509523022, 687306521), new $Uint64(3713069465, 1804891416)]), $toNativeArray($kindUint64, [new $Uint64(2193451888, 3650792047), new $Uint64(2320668415, 3812411695)]), $toNativeArray($kindUint64, [new $Uint64(1668073037, 268522763), new $Uint64(2900835519, 3691772795)]), $toNativeArray($kindUint64, [new $Uint64(1011349472, 1409395278), new $Uint64(3626044399, 3540974170)]), $toNativeArray($kindUint64, [new $Uint64(1705835244, 880872049), new $Uint64(2266277749, 3823721592)]), $toNativeArray($kindUint64, [new $Uint64(2132294055, 1101090061), new $Uint64(2832847187, 1558426518)]), $toNativeArray($kindUint64, [new $Uint64(517883921, 302620752), new $Uint64(3541058984, 874291324)]), $toNativeArray($kindUint64, [new $Uint64(2471161098, 2873492530), new $Uint64(2213161865, 546432077)]), $toNativeArray($kindUint64, [new $Uint64(4162693197, 1444382015), new $Uint64(2766452331, 1756781920)]), $toNativeArray($kindUint64, [new $Uint64(908399200, 2879219342), new $Uint64(3458065414, 1122235577)]), $toNativeArray($kindUint64, [new $Uint64(3252104060, 1799512089), new $Uint64(2161290883, 3922622707)]), $toNativeArray($kindUint64, [new $Uint64(2991388251, 2249390111), new $Uint64(2701613604, 3829536560)]), $toNativeArray($kindUint64, [new $Uint64(3739235314, 1737995815), new $Uint64(3377017006, 491953404)]), $toNativeArray($kindUint64, [new $Uint64(379076847, 25011121), new $Uint64(4221271257, 2762425404)]), $toNativeArray($kindUint64, [new $Uint64(2384406677, 1626244686), new $Uint64(2638294536, 115903141)]), $toNativeArray($kindUint64, [new $Uint64(4054250170, 3106547682), new $Uint64(3297868170, 144878926)]), $toNativeArray($kindUint64, [new $Uint64(2920329065, 1735700955), new $Uint64(4122335212, 2328582306)]), $toNativeArray($kindUint64, [new $Uint64(2898947489, 3769167657), new $Uint64(2576459507, 3602847589)]), $toNativeArray($kindUint64, [new $Uint64(402458890, 1490234099), new $Uint64(3220574384, 3429817663)]), $toNativeArray($kindUint64, [new $Uint64(3724299084, 4010276272), new $Uint64(4025717980, 4287272078)]), $toNativeArray($kindUint64, [new $Uint64(1253945104, 358939022), new $Uint64(2516073738, 532061401)]), $toNativeArray($kindUint64, [new $Uint64(2641173204, 448673777), new $Uint64(3145092172, 2812560399)]), $toNativeArray($kindUint64, [new $Uint64(2227724681, 560842221), new $Uint64(3931365215, 3515700499)]), $toNativeArray($kindUint64, [new $Uint64(855457013, 3034880948), new $Uint64(2457103259, 3807925548)]), $toNativeArray($kindUint64, [new $Uint64(1069321267, 572375713), new $Uint64(3071379074, 3686165111)]), $toNativeArray($kindUint64, [new $Uint64(262909759, 3936695114), new $Uint64(3839223843, 2460222741)]), $toNativeArray($kindUint64, [new $Uint64(701189511, 4071047182), new $Uint64(2399514902, 1000768301)]), $toNativeArray($kindUint64, [new $Uint64(1950228713, 4015067154), new $Uint64(2999393627, 3398444024)]), $toNativeArray($kindUint64, [new $Uint64(2437785892, 1797608470), new $Uint64(3749242034, 3174313206)]), $toNativeArray($kindUint64, [new $Uint64(449874358, 3270988942), new $Uint64(2343276271, 3057687578)]), $toNativeArray($kindUint64, [new $Uint64(2709826596, 1941252529), new $Uint64(2929095339, 2748367648)]), $toNativeArray($kindUint64, [new $Uint64(3387283245, 2426565662), new $Uint64(3661369174, 2361717736)]), $toNativeArray($kindUint64, [new $Uint64(2117052028, 2053474450), new $Uint64(2288355734, 402331761)]), $toNativeArray($kindUint64, [new $Uint64(3720056859, 2566843063), new $Uint64(2860444667, 2650398349)]), $toNativeArray($kindUint64, [new $Uint64(1428845602, 2134812005), new $Uint64(3575555834, 2239256113)]), $toNativeArray($kindUint64, [new $Uint64(3577383061, 2407999327), new $Uint64(2234722396, 2473276894)]), $toNativeArray($kindUint64, [new $Uint64(2324245178, 4083740983), new $Uint64(2793402995, 3091596118)]), $toNativeArray($kindUint64, [new $Uint64(757822825, 2957192581), new $Uint64(3491753744, 2790753324)]), $toNativeArray($kindUint64, [new $Uint64(2621122914, 237632627), new $Uint64(2182346090, 1744220827)]), $toNativeArray($kindUint64, [new $Uint64(2202661818, 2444524431), new $Uint64(2727932613, 32792386)]), $toNativeArray($kindUint64, [new $Uint64(605843625, 908171891), new $Uint64(3409915766, 1114732307)]), $toNativeArray($kindUint64, [new $Uint64(3978530003, 2208956688), new $Uint64(4262394707, 3540899031)]), $toNativeArray($kindUint64, [new $Uint64(4097193988, 843727018), new $Uint64(2663996692, 1676190982)]), $toNativeArray($kindUint64, [new $Uint64(2974008837, 1054658773), new $Uint64(3329995865, 2095238728)]), $toNativeArray($kindUint64, [new $Uint64(3717511046, 2392065290), new $Uint64(4162494831, 3692790234)]), $toNativeArray($kindUint64, [new $Uint64(3397186228, 421298982), new $Uint64(2601559269, 3918606632)]), $toNativeArray($kindUint64, [new $Uint64(4246482785, 526623728), new $Uint64(3251949087, 1677032818)]), $toNativeArray($kindUint64, [new $Uint64(3160619833, 1732021484), new $Uint64(4064936359, 1022549199)]), $toNativeArray($kindUint64, [new $Uint64(3586000131, 3766867987), new $Uint64(2540585224, 2249705985)]), $toNativeArray($kindUint64, [new $Uint64(1261274692, 3634843160), new $Uint64(3175731530, 2812132482)]), $toNativeArray($kindUint64, [new $Uint64(3724077014, 248586654), new $Uint64(3969664413, 1367681954)]), $toNativeArray($kindUint64, [new $Uint64(3401289957, 3376592131), new $Uint64(2481040258, 1391672133)]), $toNativeArray($kindUint64, [new $Uint64(1030386975, 999514691), new $Uint64(3101300322, 3887073815)]), $toNativeArray($kindUint64, [new $Uint64(214241895, 175651540), new $Uint64(3876625403, 2711358621)]), $toNativeArray($kindUint64, [new $Uint64(670772096, 1720394949), new $Uint64(2422890877, 1157728226)]), $toNativeArray($kindUint64, [new $Uint64(2985948768, 2150493686), new $Uint64(3028613596, 2520902106)]), $toNativeArray($kindUint64, [new $Uint64(1584952312, 2688117107), new $Uint64(3785766995, 3151127633)]), $toNativeArray($kindUint64, [new $Uint64(3674949755, 1680073192), new $Uint64(2366104372, 1432583858)]), $toNativeArray($kindUint64, [new $Uint64(2446203546, 1026349666), new $Uint64(2957630465, 1790729823)]), $toNativeArray($kindUint64, [new $Uint64(1984012608, 3430420731), new $Uint64(3697038081, 3312154103)]), $toNativeArray($kindUint64, [new $Uint64(2850620616, 2144012957), new $Uint64(2310648801, 459483578)]), $toNativeArray($kindUint64, [new $Uint64(1415792122, 2680016196), new $Uint64(2888311001, 1648096297)]), $toNativeArray($kindUint64, [new $Uint64(2843481977, 1202536597), new $Uint64(3610388751, 3133862195)]), $toNativeArray($kindUint64, [new $Uint64(1240305323, 3435939933), new $Uint64(2256492969, 3569276608)]), $toNativeArray($kindUint64, [new $Uint64(1550381654, 3221183092), new $Uint64(2820616212, 1240370288)]), $toNativeArray($kindUint64, [new $Uint64(1937977068, 1878995217), new $Uint64(3525770265, 1550462860)]), $toNativeArray($kindUint64, [new $Uint64(3358719315, 3321855659), new $Uint64(2203606415, 3653393847)]), $toNativeArray($kindUint64, [new $Uint64(3124657320, 3078577749), new $Uint64(2754508019, 3493000485)]), $toNativeArray($kindUint64, [new $Uint64(684596178, 3848222187), new $Uint64(3443135024, 3292508783)]), $toNativeArray($kindUint64, [new $Uint64(2038485347, 3478880691), new $Uint64(2151959390, 2057817989)]), $toNativeArray($kindUint64, [new $Uint64(3621848508, 3274859039), new $Uint64(2689949238, 424788838)]), $toNativeArray($kindUint64, [new $Uint64(2379826987, 4093573799), new $Uint64(3362436547, 2678469696)]), $toNativeArray($kindUint64, [new $Uint64(2974783734, 4043225425), new $Uint64(4203045684, 2274345296)]), $toNativeArray($kindUint64, [new $Uint64(1859239834, 1453274067), new $Uint64(2626903552, 3568949458)]), $toNativeArray($kindUint64, [new $Uint64(176566144, 3964076232), new $Uint64(3283629441, 166219527)]), $toNativeArray($kindUint64, [new $Uint64(3441933153, 660127994), new $Uint64(4104536801, 1281516232)]), $toNativeArray($kindUint64, [new $Uint64(2151208220, 3096934556), new $Uint64(2565335500, 3485302205)]), $toNativeArray($kindUint64, [new $Uint64(3762752099, 3871168195), new $Uint64(3206669376, 61660460)]), $toNativeArray($kindUint64, [new $Uint64(408472828, 3765218420), new $Uint64(4008336720, 77075576)]), $toNativeArray($kindUint64, [new $Uint64(255295518, 205777864), new $Uint64(2505210450, 48172235)]), $toNativeArray($kindUint64, [new $Uint64(3540344869, 2404705978), new $Uint64(3131513062, 2207698941)]), $toNativeArray($kindUint64, [new $Uint64(1204205614, 4079624297), new $Uint64(3914391328, 612140029)]), $toNativeArray($kindUint64, [new $Uint64(1289499421, 1476023361), new $Uint64(2446494580, 382587518)]), $toNativeArray($kindUint64, [new $Uint64(3759357924, 2918771026), new $Uint64(3058118225, 478234397)]), $toNativeArray($kindUint64, [new $Uint64(1477971933, 3648463782), new $Uint64(3822647781, 1671534821)]), $toNativeArray($kindUint64, [new $Uint64(1460603370, 2817160776), new $Uint64(2389154863, 1581580175)]), $toNativeArray($kindUint64, [new $Uint64(752012389, 1373967322), new $Uint64(2986443579, 903233395)]), $toNativeArray($kindUint64, [new $Uint64(4161240958, 2791200977), new $Uint64(3733054474, 55299919)]), $toNativeArray($kindUint64, [new $Uint64(4211388335, 670758786), new $Uint64(2333159046, 1108304273)]), $toNativeArray($kindUint64, [new $Uint64(2043009946, 4059673955), new $Uint64(2916448807, 3532863990)]), $toNativeArray($kindUint64, [new $Uint64(406278785, 2927108796), new $Uint64(3645561009, 3342338164)]), $toNativeArray($kindUint64, [new $Uint64(2401407889, 218830261), new $Uint64(2278475631, 478348616)]), $toNativeArray($kindUint64, [new $Uint64(3001759861, 1347279650), new $Uint64(2848094538, 3819161242)]), $toNativeArray($kindUint64, [new $Uint64(1604716178, 2757841387), new $Uint64(3560118173, 2626467905)]), $toNativeArray($kindUint64, [new $Uint64(3687302171, 2797392691), new $Uint64(2225073858, 2178413352)]), $toNativeArray($kindUint64, [new $Uint64(314160418, 2422999040), new $Uint64(2781342323, 575533043)]), $toNativeArray($kindUint64, [new $Uint64(3613925995, 881265152), new $Uint64(3476677903, 3940641775)]), $toNativeArray($kindUint64, [new $Uint64(3869316483, 13919808), new $Uint64(2172923689, 4073513845)]), $toNativeArray($kindUint64, [new $Uint64(1615420131, 3238625232), new $Uint64(2716154612, 1870666835)]), $toNativeArray($kindUint64, [new $Uint64(945533340, 2974539716), new $Uint64(3395193265, 2338333544)]), $toNativeArray($kindUint64, [new $Uint64(1181916675, 3718174645), new $Uint64(4243991581, 3996658754)]), $toNativeArray($kindUint64, [new $Uint64(1812439746, 1786988241), new $Uint64(2652494738, 3034782633)]), $toNativeArray($kindUint64, [new $Uint64(3339291507, 86251653), new $Uint64(3315618423, 1645994643)]), $toNativeArray($kindUint64, [new $Uint64(3100372559, 3329040039), new $Uint64(4144523029, 983751480)]), $toNativeArray($kindUint64, [new $Uint64(1937732849, 3691262760), new $Uint64(2590326893, 1151715587)]), $toNativeArray($kindUint64, [new $Uint64(1348424238, 1392852978), new $Uint64(3237908616, 2513386308)]), $toNativeArray($kindUint64, [new $Uint64(1685530297, 3888549871), new $Uint64(4047385770, 3141732885)]), $toNativeArray($kindUint64, [new $Uint64(1590327348, 819730933), new $Uint64(2529616106, 3037324877)]), $toNativeArray($kindUint64, [new $Uint64(3061651009, 1024663666), new $Uint64(3162020133, 1649172448)]), $toNativeArray($kindUint64, [new $Uint64(3827063761, 2354571407), new $Uint64(3952525166, 3135207384)]), $toNativeArray($kindUint64, [new $Uint64(2391914850, 4155961689), new $Uint64(2470328229, 885762791)]), $toNativeArray($kindUint64, [new $Uint64(1916151739, 3047468464), new $Uint64(3087910286, 2180945313)]), $toNativeArray($kindUint64, [new $Uint64(3468931498, 2735593756), new $Uint64(3859887858, 578697993)]), $toNativeArray($kindUint64, [new $Uint64(557469450, 2783487921), new $Uint64(2412429911, 1435428070)]), $toNativeArray($kindUint64, [new $Uint64(2844320461, 1331876253), new $Uint64(3015537389, 720543263)]), $toNativeArray($kindUint64, [new $Uint64(2481658752, 2738587141), new $Uint64(3769421736, 1974420903)]), $toNativeArray($kindUint64, [new $Uint64(3161649456, 1711616963), new $Uint64(2355888585, 1234013064)]), $toNativeArray($kindUint64, [new $Uint64(3952061820, 2139521204), new $Uint64(2944860731, 2616258154)]), $toNativeArray($kindUint64, [new $Uint64(2792593627, 2674401505), new $Uint64(3681075914, 2196580869)]), $toNativeArray($kindUint64, [new $Uint64(2282241929, 1134630028), new $Uint64(2300672446, 2446604867)]), $toNativeArray($kindUint64, [new $Uint64(1779060587, 2492029360), new $Uint64(2875840558, 910772436)]), $toNativeArray($kindUint64, [new $Uint64(2223825734, 2041294876), new $Uint64(3594800697, 3285949193)]), $toNativeArray($kindUint64, [new $Uint64(4074245644, 202067473), new $Uint64(2246750436, 443105509)]), $toNativeArray($kindUint64, [new $Uint64(1871581583, 252584341), new $Uint64(2808438045, 553881887)]), $toNativeArray($kindUint64, [new $Uint64(1265735154, 3536955899), new $Uint64(3510547556, 1766094183)])]);
		leftcheats = new sliceType$2([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]);
		$pkg.ErrRange = errors.New("value out of range");
		$pkg.ErrSyntax = errors.New("invalid syntax");
		optimize = true;
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["crypto"] = (function() {
	var $pkg = {}, $init, hash, io, strconv, funcType, sliceType$1, hashes, RegisterHash;
	hash = $packages["hash"];
	io = $packages["io"];
	strconv = $packages["strconv"];
	funcType = $funcType([], [hash.Hash], false);
	sliceType$1 = $sliceType(funcType);
	RegisterHash = function(h, f) {
		var f, h;
		if (h >= 20) {
			$panic(new $String("crypto: RegisterHash of unknown hash function"));
		}
		((h < 0 || h >= hashes.$length) ? ($throwRuntimeError("index out of range"), undefined) : hashes.$array[hashes.$offset + h] = f);
	};
	$pkg.RegisterHash = RegisterHash;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = hash.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		hashes = $makeSlice(sliceType$1, 20);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/abi"] = (function() {
	var $pkg = {}, $init, goarch, FuncPCABI0;
	goarch = $packages["internal/goarch"];
	FuncPCABI0 = function() {
		$throwRuntimeError("native function not implemented: internal/abi.FuncPCABI0");
	};
	$pkg.FuncPCABI0 = FuncPCABI0;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = goarch.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/goexperiment"] = (function() {
	var $pkg = {}, $init;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["unicode"] = (function() {
	var $pkg = {}, $init, CaseRange, d, sliceType$3, arrayType, _CaseRanges, To, ToLower, to;
	CaseRange = $pkg.CaseRange = $newType(0, $kindStruct, "unicode.CaseRange", true, "unicode", true, function(Lo_, Hi_, Delta_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Lo = 0;
			this.Hi = 0;
			this.Delta = arrayType.zero();
			return;
		}
		this.Lo = Lo_;
		this.Hi = Hi_;
		this.Delta = Delta_;
	});
	d = $pkg.d = $newType(12, $kindArray, "unicode.d", true, "unicode", false, null);
	sliceType$3 = $sliceType(CaseRange);
	arrayType = $arrayType($Int32, 3);
	To = function(_case, r) {
		var _case, _tuple, r;
		_tuple = to(_case, r, $pkg.CaseRanges);
		r = _tuple[0];
		return r;
	};
	$pkg.To = To;
	ToLower = function(r) {
		var r;
		if (r <= 127) {
			if (65 <= r && r <= 90) {
				r = r + (32) >> 0;
			}
			return r;
		}
		return To(1, r);
	};
	$pkg.ToLower = ToLower;
	to = function(_case, r, caseRange) {
		var _case, _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, caseRange, cr, delta, foundMapping, hi, lo, m, mappedRune, r, x;
		mappedRune = 0;
		foundMapping = false;
		if (_case < 0 || 3 <= _case) {
			_tmp = 65533;
			_tmp$1 = false;
			mappedRune = _tmp;
			foundMapping = _tmp$1;
			return [mappedRune, foundMapping];
		}
		lo = 0;
		hi = caseRange.$length;
		while (true) {
			if (!(lo < hi)) { break; }
			m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
			cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]);
			if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) {
				delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case])));
				if (delta > 1114111) {
					_tmp$2 = ((cr.Lo >> 0)) + ((((((r - ((cr.Lo >> 0)) >> 0)) & ~1) >> 0) | (((_case & 1) >> 0)))) >> 0;
					_tmp$3 = true;
					mappedRune = _tmp$2;
					foundMapping = _tmp$3;
					return [mappedRune, foundMapping];
				}
				_tmp$4 = r + delta >> 0;
				_tmp$5 = true;
				mappedRune = _tmp$4;
				foundMapping = _tmp$5;
				return [mappedRune, foundMapping];
			}
			if (r < ((cr.Lo >> 0))) {
				hi = m;
			} else {
				lo = m + 1 >> 0;
			}
		}
		_tmp$6 = r;
		_tmp$7 = false;
		mappedRune = _tmp$6;
		foundMapping = _tmp$7;
		return [mappedRune, foundMapping];
	};
	CaseRange.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Delta", name: "Delta", embedded: false, exported: true, typ: d, tag: ""}]);
	d.init($Int32, 3);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		_CaseRanges = new sliceType$3([new CaseRange.ptr(65, 90, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(97, 122, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(181, 181, $toNativeArray($kindInt32, [743, 0, 743])), new CaseRange.ptr(192, 214, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(216, 222, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(224, 246, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(248, 254, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(255, 255, $toNativeArray($kindInt32, [121, 0, 121])), new CaseRange.ptr(256, 303, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(304, 304, $toNativeArray($kindInt32, [0, -199, 0])), new CaseRange.ptr(305, 305, $toNativeArray($kindInt32, [-232, 0, -232])), new CaseRange.ptr(306, 311, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(313, 328, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(330, 375, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(376, 376, $toNativeArray($kindInt32, [0, -121, 0])), new CaseRange.ptr(377, 382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(383, 383, $toNativeArray($kindInt32, [-300, 0, -300])), new CaseRange.ptr(384, 384, $toNativeArray($kindInt32, [195, 0, 195])), new CaseRange.ptr(385, 385, $toNativeArray($kindInt32, [0, 210, 0])), new CaseRange.ptr(386, 389, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(390, 390, $toNativeArray($kindInt32, [0, 206, 0])), new CaseRange.ptr(391, 392, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(393, 394, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(395, 396, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(398, 398, $toNativeArray($kindInt32, [0, 79, 0])), new CaseRange.ptr(399, 399, $toNativeArray($kindInt32, [0, 202, 0])), new CaseRange.ptr(400, 400, $toNativeArray($kindInt32, [0, 203, 0])), new CaseRange.ptr(401, 402, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(403, 403, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(404, 404, $toNativeArray($kindInt32, [0, 207, 0])), new CaseRange.ptr(405, 405, $toNativeArray($kindInt32, [97, 0, 97])), new CaseRange.ptr(406, 406, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(407, 407, $toNativeArray($kindInt32, [0, 209, 0])), new CaseRange.ptr(408, 409, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(410, 410, $toNativeArray($kindInt32, [163, 0, 163])), new CaseRange.ptr(412, 412, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(413, 413, $toNativeArray($kindInt32, [0, 213, 0])), new CaseRange.ptr(414, 414, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(415, 415, $toNativeArray($kindInt32, [0, 214, 0])), new CaseRange.ptr(416, 421, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(422, 422, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(423, 424, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(425, 425, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(428, 429, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(430, 430, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(431, 432, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(433, 434, $toNativeArray($kindInt32, [0, 217, 0])), new CaseRange.ptr(435, 438, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(439, 439, $toNativeArray($kindInt32, [0, 219, 0])), new CaseRange.ptr(440, 441, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(444, 445, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(447, 447, $toNativeArray($kindInt32, [56, 0, 56])), new CaseRange.ptr(452, 452, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(453, 453, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(454, 454, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(455, 455, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(456, 456, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(457, 457, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(458, 458, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(459, 459, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(460, 460, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(461, 476, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(477, 477, $toNativeArray($kindInt32, [-79, 0, -79])), new CaseRange.ptr(478, 495, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(497, 497, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(498, 498, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(499, 499, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(500, 501, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(502, 502, $toNativeArray($kindInt32, [0, -97, 0])), new CaseRange.ptr(503, 503, $toNativeArray($kindInt32, [0, -56, 0])), new CaseRange.ptr(504, 543, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(544, 544, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(546, 563, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(570, 570, $toNativeArray($kindInt32, [0, 10795, 0])), new CaseRange.ptr(571, 572, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(573, 573, $toNativeArray($kindInt32, [0, -163, 0])), new CaseRange.ptr(574, 574, $toNativeArray($kindInt32, [0, 10792, 0])), new CaseRange.ptr(575, 576, $toNativeArray($kindInt32, [10815, 0, 10815])), new CaseRange.ptr(577, 578, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(579, 579, $toNativeArray($kindInt32, [0, -195, 0])), new CaseRange.ptr(580, 580, $toNativeArray($kindInt32, [0, 69, 0])), new CaseRange.ptr(581, 581, $toNativeArray($kindInt32, [0, 71, 0])), new CaseRange.ptr(582, 591, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(592, 592, $toNativeArray($kindInt32, [10783, 0, 10783])), new CaseRange.ptr(593, 593, $toNativeArray($kindInt32, [10780, 0, 10780])), new CaseRange.ptr(594, 594, $toNativeArray($kindInt32, [10782, 0, 10782])), new CaseRange.ptr(595, 595, $toNativeArray($kindInt32, [-210, 0, -210])), new CaseRange.ptr(596, 596, $toNativeArray($kindInt32, [-206, 0, -206])), new CaseRange.ptr(598, 599, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(601, 601, $toNativeArray($kindInt32, [-202, 0, -202])), new CaseRange.ptr(603, 603, $toNativeArray($kindInt32, [-203, 0, -203])), new CaseRange.ptr(604, 604, $toNativeArray($kindInt32, [42319, 0, 42319])), new CaseRange.ptr(608, 608, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(609, 609, $toNativeArray($kindInt32, [42315, 0, 42315])), new CaseRange.ptr(611, 611, $toNativeArray($kindInt32, [-207, 0, -207])), new CaseRange.ptr(613, 613, $toNativeArray($kindInt32, [42280, 0, 42280])), new CaseRange.ptr(614, 614, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(616, 616, $toNativeArray($kindInt32, [-209, 0, -209])), new CaseRange.ptr(617, 617, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(618, 618, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(619, 619, $toNativeArray($kindInt32, [10743, 0, 10743])), new CaseRange.ptr(620, 620, $toNativeArray($kindInt32, [42305, 0, 42305])), new CaseRange.ptr(623, 623, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(625, 625, $toNativeArray($kindInt32, [10749, 0, 10749])), new CaseRange.ptr(626, 626, $toNativeArray($kindInt32, [-213, 0, -213])), new CaseRange.ptr(629, 629, $toNativeArray($kindInt32, [-214, 0, -214])), new CaseRange.ptr(637, 637, $toNativeArray($kindInt32, [10727, 0, 10727])), new CaseRange.ptr(640, 640, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(642, 642, $toNativeArray($kindInt32, [42307, 0, 42307])), new CaseRange.ptr(643, 643, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(647, 647, $toNativeArray($kindInt32, [42282, 0, 42282])), new CaseRange.ptr(648, 648, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(649, 649, $toNativeArray($kindInt32, [-69, 0, -69])), new CaseRange.ptr(650, 651, $toNativeArray($kindInt32, [-217, 0, -217])), new CaseRange.ptr(652, 652, $toNativeArray($kindInt32, [-71, 0, -71])), new CaseRange.ptr(658, 658, $toNativeArray($kindInt32, [-219, 0, -219])), new CaseRange.ptr(669, 669, $toNativeArray($kindInt32, [42261, 0, 42261])), new CaseRange.ptr(670, 670, $toNativeArray($kindInt32, [42258, 0, 42258])), new CaseRange.ptr(837, 837, $toNativeArray($kindInt32, [84, 0, 84])), new CaseRange.ptr(880, 883, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(886, 887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(891, 893, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(895, 895, $toNativeArray($kindInt32, [0, 116, 0])), new CaseRange.ptr(902, 902, $toNativeArray($kindInt32, [0, 38, 0])), new CaseRange.ptr(904, 906, $toNativeArray($kindInt32, [0, 37, 0])), new CaseRange.ptr(908, 908, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(910, 911, $toNativeArray($kindInt32, [0, 63, 0])), new CaseRange.ptr(913, 929, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(931, 939, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(940, 940, $toNativeArray($kindInt32, [-38, 0, -38])), new CaseRange.ptr(941, 943, $toNativeArray($kindInt32, [-37, 0, -37])), new CaseRange.ptr(945, 961, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(962, 962, $toNativeArray($kindInt32, [-31, 0, -31])), new CaseRange.ptr(963, 971, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(972, 972, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(973, 974, $toNativeArray($kindInt32, [-63, 0, -63])), new CaseRange.ptr(975, 975, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(976, 976, $toNativeArray($kindInt32, [-62, 0, -62])), new CaseRange.ptr(977, 977, $toNativeArray($kindInt32, [-57, 0, -57])), new CaseRange.ptr(981, 981, $toNativeArray($kindInt32, [-47, 0, -47])), new CaseRange.ptr(982, 982, $toNativeArray($kindInt32, [-54, 0, -54])), new CaseRange.ptr(983, 983, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(984, 1007, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1008, 1008, $toNativeArray($kindInt32, [-86, 0, -86])), new CaseRange.ptr(1009, 1009, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1010, 1010, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(1011, 1011, $toNativeArray($kindInt32, [-116, 0, -116])), new CaseRange.ptr(1012, 1012, $toNativeArray($kindInt32, [0, -60, 0])), new CaseRange.ptr(1013, 1013, $toNativeArray($kindInt32, [-96, 0, -96])), new CaseRange.ptr(1015, 1016, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1017, 1017, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(1018, 1019, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1021, 1023, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(1024, 1039, $toNativeArray($kindInt32, [0, 80, 0])), new CaseRange.ptr(1040, 1071, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(1072, 1103, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(1104, 1119, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1120, 1153, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1162, 1215, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1216, 1216, $toNativeArray($kindInt32, [0, 15, 0])), new CaseRange.ptr(1217, 1230, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1231, 1231, $toNativeArray($kindInt32, [-15, 0, -15])), new CaseRange.ptr(1232, 1327, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1329, 1366, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(1377, 1414, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(4256, 4293, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4295, 4295, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4301, 4301, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4304, 4346, $toNativeArray($kindInt32, [3008, 0, 0])), new CaseRange.ptr(4349, 4351, $toNativeArray($kindInt32, [3008, 0, 0])), new CaseRange.ptr(5024, 5103, $toNativeArray($kindInt32, [0, 38864, 0])), new CaseRange.ptr(5104, 5109, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(5112, 5117, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(7296, 7296, $toNativeArray($kindInt32, [-6254, 0, -6254])), new CaseRange.ptr(7297, 7297, $toNativeArray($kindInt32, [-6253, 0, -6253])), new CaseRange.ptr(7298, 7298, $toNativeArray($kindInt32, [-6244, 0, -6244])), new CaseRange.ptr(7299, 7300, $toNativeArray($kindInt32, [-6242, 0, -6242])), new CaseRange.ptr(7301, 7301, $toNativeArray($kindInt32, [-6243, 0, -6243])), new CaseRange.ptr(7302, 7302, $toNativeArray($kindInt32, [-6236, 0, -6236])), new CaseRange.ptr(7303, 7303, $toNativeArray($kindInt32, [-6181, 0, -6181])), new CaseRange.ptr(7304, 7304, $toNativeArray($kindInt32, [35266, 0, 35266])), new CaseRange.ptr(7312, 7354, $toNativeArray($kindInt32, [0, -3008, 0])), new CaseRange.ptr(7357, 7359, $toNativeArray($kindInt32, [0, -3008, 0])), new CaseRange.ptr(7545, 7545, $toNativeArray($kindInt32, [35332, 0, 35332])), new CaseRange.ptr(7549, 7549, $toNativeArray($kindInt32, [3814, 0, 3814])), new CaseRange.ptr(7566, 7566, $toNativeArray($kindInt32, [35384, 0, 35384])), new CaseRange.ptr(7680, 7829, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7835, 7835, $toNativeArray($kindInt32, [-59, 0, -59])), new CaseRange.ptr(7838, 7838, $toNativeArray($kindInt32, [0, -7615, 0])), new CaseRange.ptr(7840, 7935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7936, 7943, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7944, 7951, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7952, 7957, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7960, 7965, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7968, 7975, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7976, 7983, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7984, 7991, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7992, 7999, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8000, 8005, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8008, 8013, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8017, 8017, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8019, 8019, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8021, 8021, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8023, 8023, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8025, 8025, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8027, 8027, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8029, 8029, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8031, 8031, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8032, 8039, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8040, 8047, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8048, 8049, $toNativeArray($kindInt32, [74, 0, 74])), new CaseRange.ptr(8050, 8053, $toNativeArray($kindInt32, [86, 0, 86])), new CaseRange.ptr(8054, 8055, $toNativeArray($kindInt32, [100, 0, 100])), new CaseRange.ptr(8056, 8057, $toNativeArray($kindInt32, [128, 0, 128])), new CaseRange.ptr(8058, 8059, $toNativeArray($kindInt32, [112, 0, 112])), new CaseRange.ptr(8060, 8061, $toNativeArray($kindInt32, [126, 0, 126])), new CaseRange.ptr(8064, 8071, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8072, 8079, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8080, 8087, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8088, 8095, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8096, 8103, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8104, 8111, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8112, 8113, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8115, 8115, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8120, 8121, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8122, 8123, $toNativeArray($kindInt32, [0, -74, 0])), new CaseRange.ptr(8124, 8124, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8126, 8126, $toNativeArray($kindInt32, [-7205, 0, -7205])), new CaseRange.ptr(8131, 8131, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8136, 8139, $toNativeArray($kindInt32, [0, -86, 0])), new CaseRange.ptr(8140, 8140, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8144, 8145, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8152, 8153, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8154, 8155, $toNativeArray($kindInt32, [0, -100, 0])), new CaseRange.ptr(8160, 8161, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8165, 8165, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(8168, 8169, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8170, 8171, $toNativeArray($kindInt32, [0, -112, 0])), new CaseRange.ptr(8172, 8172, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(8179, 8179, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8184, 8185, $toNativeArray($kindInt32, [0, -128, 0])), new CaseRange.ptr(8186, 8187, $toNativeArray($kindInt32, [0, -126, 0])), new CaseRange.ptr(8188, 8188, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8486, 8486, $toNativeArray($kindInt32, [0, -7517, 0])), new CaseRange.ptr(8490, 8490, $toNativeArray($kindInt32, [0, -8383, 0])), new CaseRange.ptr(8491, 8491, $toNativeArray($kindInt32, [0, -8262, 0])), new CaseRange.ptr(8498, 8498, $toNativeArray($kindInt32, [0, 28, 0])), new CaseRange.ptr(8526, 8526, $toNativeArray($kindInt32, [-28, 0, -28])), new CaseRange.ptr(8544, 8559, $toNativeArray($kindInt32, [0, 16, 0])), new CaseRange.ptr(8560, 8575, $toNativeArray($kindInt32, [-16, 0, -16])), new CaseRange.ptr(8579, 8580, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(9398, 9423, $toNativeArray($kindInt32, [0, 26, 0])), new CaseRange.ptr(9424, 9449, $toNativeArray($kindInt32, [-26, 0, -26])), new CaseRange.ptr(11264, 11310, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(11312, 11358, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(11360, 11361, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11362, 11362, $toNativeArray($kindInt32, [0, -10743, 0])), new CaseRange.ptr(11363, 11363, $toNativeArray($kindInt32, [0, -3814, 0])), new CaseRange.ptr(11364, 11364, $toNativeArray($kindInt32, [0, -10727, 0])), new CaseRange.ptr(11365, 11365, $toNativeArray($kindInt32, [-10795, 0, -10795])), new CaseRange.ptr(11366, 11366, $toNativeArray($kindInt32, [-10792, 0, -10792])), new CaseRange.ptr(11367, 11372, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11373, 11373, $toNativeArray($kindInt32, [0, -10780, 0])), new CaseRange.ptr(11374, 11374, $toNativeArray($kindInt32, [0, -10749, 0])), new CaseRange.ptr(11375, 11375, $toNativeArray($kindInt32, [0, -10783, 0])), new CaseRange.ptr(11376, 11376, $toNativeArray($kindInt32, [0, -10782, 0])), new CaseRange.ptr(11378, 11379, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11381, 11382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11390, 11391, $toNativeArray($kindInt32, [0, -10815, 0])), new CaseRange.ptr(11392, 11491, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11499, 11502, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11506, 11507, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11520, 11557, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11559, 11559, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11565, 11565, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(42560, 42605, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42624, 42651, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42786, 42799, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42802, 42863, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42873, 42876, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42877, 42877, $toNativeArray($kindInt32, [0, -35332, 0])), new CaseRange.ptr(42878, 42887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42891, 42892, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42893, 42893, $toNativeArray($kindInt32, [0, -42280, 0])), new CaseRange.ptr(42896, 42899, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42900, 42900, $toNativeArray($kindInt32, [48, 0, 48])), new CaseRange.ptr(42902, 42921, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42922, 42922, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42923, 42923, $toNativeArray($kindInt32, [0, -42319, 0])), new CaseRange.ptr(42924, 42924, $toNativeArray($kindInt32, [0, -42315, 0])), new CaseRange.ptr(42925, 42925, $toNativeArray($kindInt32, [0, -42305, 0])), new CaseRange.ptr(42926, 42926, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42928, 42928, $toNativeArray($kindInt32, [0, -42258, 0])), new CaseRange.ptr(42929, 42929, $toNativeArray($kindInt32, [0, -42282, 0])), new CaseRange.ptr(42930, 42930, $toNativeArray($kindInt32, [0, -42261, 0])), new CaseRange.ptr(42931, 42931, $toNativeArray($kindInt32, [0, 928, 0])), new CaseRange.ptr(42932, 42943, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42946, 42947, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42948, 42948, $toNativeArray($kindInt32, [0, -48, 0])), new CaseRange.ptr(42949, 42949, $toNativeArray($kindInt32, [0, -42307, 0])), new CaseRange.ptr(42950, 42950, $toNativeArray($kindInt32, [0, -35384, 0])), new CaseRange.ptr(42951, 42954, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42997, 42998, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(43859, 43859, $toNativeArray($kindInt32, [-928, 0, -928])), new CaseRange.ptr(43888, 43967, $toNativeArray($kindInt32, [-38864, 0, -38864])), new CaseRange.ptr(65313, 65338, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(65345, 65370, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(66560, 66599, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66600, 66639, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(66736, 66771, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66776, 66811, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(68736, 68786, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(68800, 68850, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(71840, 71871, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(71872, 71903, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(93760, 93791, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(93792, 93823, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(125184, 125217, $toNativeArray($kindInt32, [0, 34, 0])), new CaseRange.ptr(125218, 125251, $toNativeArray($kindInt32, [-34, 0, -34]))]);
		$pkg.CaseRanges = _CaseRanges;
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["reflect"] = (function() {
	var $pkg = {}, $init, errors, js, abi, bytealg, goarch, goexperiment, itoa, unsafeheader, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, sliceType$4, ptrType$2, funcType$1, sliceType$6, ptrType$4, sliceType$7, ptrType$7, ptrType$8, sliceType$9, sliceType$10, ptrType$9, sliceType$11, ptrType$10, ptrType$11, sliceType$12, ptrType$12, ptrType$13, funcType$2, sliceType$14, sliceType$15, ptrType$17, structType$3, sliceType$16, ptrType$18, ptrType$19, sliceType$17, sliceType$18, funcType$3, ptrType$22, arrayType$7, ptrType$23, funcType$4, funcType$5, ptrType$25, ptrType$26, uint8Type, kindNames, initialized, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, methodName, copyVal, overflowFloat32, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, methodValueCallCodePtr, methodValueCall, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, methodNameSkip, verifyNotInHeapPtr;
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	abi = $packages["internal/abi"];
	bytealg = $packages["internal/bytealg"];
	goarch = $packages["internal/goarch"];
	goexperiment = $packages["internal/goexperiment"];
	itoa = $packages["internal/itoa"];
	unsafeheader = $packages["internal/unsafeheader"];
	math = $packages["math"];
	runtime = $packages["runtime"];
	strconv = $packages["strconv"];
	sync = $packages["sync"];
	unicode = $packages["unicode"];
	utf8 = $packages["unicode/utf8"];
	Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.typ = ptrType$1.nil;
			this.ptr = 0;
			this.flag = 0;
			return;
		}
		this.typ = typ_;
		this.ptr = ptr_;
		this.flag = flag_;
	});
	flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null);
	ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Method = "";
			this.Kind = 0;
			return;
		}
		this.Method = Method_;
		this.Kind = Kind_;
	});
	MapIter = $pkg.MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, hiter_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.m = new Value.ptr(ptrType$1.nil, 0, 0);
			this.hiter = new hiter.ptr($ifaceNil, null, null, 0, null);
			return;
		}
		this.m = m_;
		this.hiter = hiter_;
	});
	Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null);
	Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null);
	tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null);
	rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, equal_, gcdata_, str_, ptrToThis_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.size = 0;
			this.ptrdata = 0;
			this.hash = 0;
			this.tflag = 0;
			this.align = 0;
			this.fieldAlign = 0;
			this.kind = 0;
			this.equal = $throwNilPointerError;
			this.gcdata = ptrType$13.nil;
			this.str = 0;
			this.ptrToThis = 0;
			return;
		}
		this.size = size_;
		this.ptrdata = ptrdata_;
		this.hash = hash_;
		this.tflag = tflag_;
		this.align = align_;
		this.fieldAlign = fieldAlign_;
		this.kind = kind_;
		this.equal = equal_;
		this.gcdata = gcdata_;
		this.str = str_;
		this.ptrToThis = ptrToThis_;
	});
	method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = 0;
			this.mtyp = 0;
			this.ifn = 0;
			this.tfn = 0;
			return;
		}
		this.name = name_;
		this.mtyp = mtyp_;
		this.ifn = ifn_;
		this.tfn = tfn_;
	});
	ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null);
	arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.elem = ptrType$1.nil;
			this.slice = ptrType$1.nil;
			this.len = 0;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
		this.slice = slice_;
		this.len = len_;
	});
	chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.elem = ptrType$1.nil;
			this.dir = 0;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
		this.dir = dir_;
	});
	imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = 0;
			this.typ = 0;
			return;
		}
		this.name = name_;
		this.typ = typ_;
	});
	interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.pkgPath = new name.ptr(ptrType$13.nil);
			this.methods = sliceType$14.nil;
			return;
		}
		this.rtype = rtype_;
		this.pkgPath = pkgPath_;
		this.methods = methods_;
	});
	mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, hasher_, keysize_, valuesize_, bucketsize_, flags_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.key = ptrType$1.nil;
			this.elem = ptrType$1.nil;
			this.bucket = ptrType$1.nil;
			this.hasher = $throwNilPointerError;
			this.keysize = 0;
			this.valuesize = 0;
			this.bucketsize = 0;
			this.flags = 0;
			return;
		}
		this.rtype = rtype_;
		this.key = key_;
		this.elem = elem_;
		this.bucket = bucket_;
		this.hasher = hasher_;
		this.keysize = keysize_;
		this.valuesize = valuesize_;
		this.bucketsize = bucketsize_;
		this.flags = flags_;
	});
	ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.elem = ptrType$1.nil;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
	});
	sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.elem = ptrType$1.nil;
			return;
		}
		this.rtype = rtype_;
		this.elem = elem_;
	});
	structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetEmbed_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = new name.ptr(ptrType$13.nil);
			this.typ = ptrType$1.nil;
			this.offsetEmbed = 0;
			return;
		}
		this.name = name_;
		this.typ = typ_;
		this.offsetEmbed = offsetEmbed_;
	});
	structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.pkgPath = new name.ptr(ptrType$13.nil);
			this.fields = sliceType$15.nil;
			return;
		}
		this.rtype = rtype_;
		this.pkgPath = pkgPath_;
		this.fields = fields_;
	});
	Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.PkgPath = "";
			this.Type = $ifaceNil;
			this.Func = new Value.ptr(ptrType$1.nil, 0, 0);
			this.Index = 0;
			return;
		}
		this.Name = Name_;
		this.PkgPath = PkgPath_;
		this.Type = Type_;
		this.Func = Func_;
		this.Index = Index_;
	});
	nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null);
	typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null);
	textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null);
	StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.PkgPath = "";
			this.Type = $ifaceNil;
			this.Tag = "";
			this.Offset = 0;
			this.Index = sliceType$6.nil;
			this.Anonymous = false;
			return;
		}
		this.Name = Name_;
		this.PkgPath = PkgPath_;
		this.Type = Type_;
		this.Tag = Tag_;
		this.Offset = Offset_;
		this.Index = Index_;
		this.Anonymous = Anonymous_;
	});
	StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null);
	fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.typ = ptrType$12.nil;
			this.index = sliceType$6.nil;
			return;
		}
		this.typ = typ_;
		this.index = index_;
	});
	uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.pkgPath = 0;
			this.mcount = 0;
			this.xcount = 0;
			this.moff = 0;
			this._methods = sliceType$11.nil;
			return;
		}
		this.pkgPath = pkgPath_;
		this.mcount = mcount_;
		this.xcount = xcount_;
		this.moff = moff_;
		this._methods = _methods_;
	});
	funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
			this.inCount = 0;
			this.outCount = 0;
			this._in = sliceType$2.nil;
			this._out = sliceType$2.nil;
			return;
		}
		this.rtype = rtype_;
		this.inCount = inCount_;
		this.outCount = outCount_;
		this._in = _in_;
		this._out = _out_;
	});
	name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.bytes = ptrType$13.nil;
			return;
		}
		this.bytes = bytes_;
	});
	nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_, pkgPath_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.tag = "";
			this.exported = false;
			this.pkgPath = "";
			return;
		}
		this.name = name_;
		this.tag = tag_;
		this.exported = exported_;
		this.pkgPath = pkgPath_;
	});
	hiter = $pkg.hiter = $newType(0, $kindStruct, "reflect.hiter", true, "reflect", false, function(t_, m_, keys_, i_, last_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.t = $ifaceNil;
			this.m = null;
			this.keys = null;
			this.i = 0;
			this.last = null;
			return;
		}
		this.t = t_;
		this.m = m_;
		this.keys = keys_;
		this.i = i_;
		this.last = last_;
	});
	sliceType$1 = $sliceType(name);
	ptrType$1 = $ptrType(rtype);
	sliceType$2 = $sliceType(ptrType$1);
	sliceType$3 = $sliceType($String);
	sliceType$4 = $sliceType($emptyInterface);
	ptrType$2 = $ptrType(js.Object);
	funcType$1 = $funcType([sliceType$4], [ptrType$2], true);
	sliceType$6 = $sliceType($Int);
	ptrType$4 = $ptrType(runtime.Func);
	sliceType$7 = $sliceType(Value);
	ptrType$7 = $ptrType($UnsafePointer);
	ptrType$8 = $ptrType(unsafeheader.Slice);
	sliceType$9 = $sliceType($Uint8);
	sliceType$10 = $sliceType($Int32);
	ptrType$9 = $ptrType(uncommonType);
	sliceType$11 = $sliceType(method);
	ptrType$10 = $ptrType(interfaceType);
	ptrType$11 = $ptrType(imethod);
	sliceType$12 = $sliceType(fieldScan);
	ptrType$12 = $ptrType(structType);
	ptrType$13 = $ptrType($Uint8);
	funcType$2 = $funcType([], [], false);
	sliceType$14 = $sliceType(imethod);
	sliceType$15 = $sliceType(structField);
	ptrType$17 = $ptrType(nameData);
	structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]);
	sliceType$16 = $sliceType(ptrType$2);
	ptrType$18 = $ptrType($String);
	ptrType$19 = $ptrType(funcType);
	sliceType$17 = $sliceType(Type);
	sliceType$18 = $sliceType(sliceType$16);
	funcType$3 = $funcType([$String], [$Bool], false);
	ptrType$22 = $ptrType(MapIter);
	arrayType$7 = $arrayType($Uintptr, 2);
	ptrType$23 = $ptrType(ValueError);
	funcType$4 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false);
	funcType$5 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false);
	ptrType$25 = $ptrType(structField);
	ptrType$26 = $ptrType(hiter);
	flag.prototype.kind = function() {
		var f;
		f = this.$val;
		return ((((f & 31) >>> 0) >>> 0));
	};
	$ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); };
	flag.prototype.ro = function() {
		var f;
		f = this.$val;
		if (!((((f & 96) >>> 0) === 0))) {
			return 32;
		}
		return 0;
	};
	$ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); };
	Value.ptr.prototype.pointer = function() {
		var v;
		v = this;
		if (!((v.typ.size === 4)) || !v.typ.pointers()) {
			$panic(new $String("can't call pointer on a non-pointer Value"));
		}
		if (!((((v.flag & 128) >>> 0) === 0))) {
			return (v.ptr).$get();
		}
		return v.ptr;
	};
	Value.prototype.pointer = function() { return this.$val.pointer(); };
	ValueError.ptr.prototype.Error = function() {
		var e;
		e = this;
		if (e.Kind === 0) {
			return "reflect: call of " + e.Method + " on zero Value";
		}
		return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value";
	};
	ValueError.prototype.Error = function() { return this.$val.Error(); };
	methodName = function() {
		var _tuple, f, pc;
		_tuple = runtime.Caller(2);
		pc = _tuple[0];
		f = runtime.FuncForPC(pc);
		if (f === ptrType$4.nil) {
			return "unknown method";
		}
		return f.Name();
	};
	flag.prototype.mustBe = function(expected) {
		var expected, f;
		f = this.$val;
		if (!((((((f & 31) >>> 0) >>> 0)) === expected))) {
			$panic(new ValueError.ptr(methodName(), new flag(f).kind()));
		}
	};
	$ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); };
	flag.prototype.mustBeExported = function() {
		var f;
		f = this.$val;
		if ((f === 0) || !((((f & 96) >>> 0) === 0))) {
			new flag(f).mustBeExportedSlow();
		}
	};
	$ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); };
	flag.prototype.mustBeExportedSlow = function() {
		var f;
		f = this.$val;
		if (f === 0) {
			$panic(new ValueError.ptr(methodNameSkip(), 0));
		}
		if (!((((f & 96) >>> 0) === 0))) {
			$panic(new $String("reflect: " + methodNameSkip() + " using value obtained using unexported field"));
		}
	};
	$ptrType(flag).prototype.mustBeExportedSlow = function() { return new flag(this.$get()).mustBeExportedSlow(); };
	flag.prototype.mustBeAssignable = function() {
		var f;
		f = this.$val;
		if (!((((f & 96) >>> 0) === 0)) || (((f & 256) >>> 0) === 0)) {
			new flag(f).mustBeAssignableSlow();
		}
	};
	$ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); };
	flag.prototype.mustBeAssignableSlow = function() {
		var f;
		f = this.$val;
		if (f === 0) {
			$panic(new ValueError.ptr(methodNameSkip(), 0));
		}
		if (!((((f & 96) >>> 0) === 0))) {
			$panic(new $String("reflect: " + methodNameSkip() + " using value obtained using unexported field"));
		}
		if (((f & 256) >>> 0) === 0) {
			$panic(new $String("reflect: " + methodNameSkip() + " using unaddressable value"));
		}
	};
	$ptrType(flag).prototype.mustBeAssignableSlow = function() { return new flag(this.$get()).mustBeAssignableSlow(); };
	Value.ptr.prototype.Addr = function() {
		var fl, v;
		v = this;
		if (((v.flag & 256) >>> 0) === 0) {
			$panic(new $String("reflect.Value.Addr of unaddressable value"));
		}
		fl = (v.flag & 96) >>> 0;
		return new Value.ptr(v.typ.ptrTo(), v.ptr, (fl | 22) >>> 0);
	};
	Value.prototype.Addr = function() { return this.$val.Addr(); };
	Value.ptr.prototype.Bool = function() {
		var v;
		v = this;
		new flag(v.flag).mustBe(1);
		return (v.ptr).$get();
	};
	Value.prototype.Bool = function() { return this.$val.Bool(); };
	Value.ptr.prototype.Bytes = function() {
		var {_r, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(23);
		_r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 8))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 8))) { */ case 1:
			$panic(new $String("reflect.Value.Bytes of non-byte slice"));
		/* } */ case 2:
		$s = -1; return (v.ptr).$get();
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Bytes, $c: true, $r, _r, v, $s};return $f;
	};
	Value.prototype.Bytes = function() { return this.$val.Bytes(); };
	Value.ptr.prototype.runes = function() {
		var {_r, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(23);
		_r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 5))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 5))) { */ case 1:
			$panic(new $String("reflect.Value.Bytes of non-rune slice"));
		/* } */ case 2:
		$s = -1; return (v.ptr).$get();
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.runes, $c: true, $r, _r, v, $s};return $f;
	};
	Value.prototype.runes = function() { return this.$val.runes(); };
	Value.ptr.prototype.CanAddr = function() {
		var v;
		v = this;
		return !((((v.flag & 256) >>> 0) === 0));
	};
	Value.prototype.CanAddr = function() { return this.$val.CanAddr(); };
	Value.ptr.prototype.CanSet = function() {
		var v;
		v = this;
		return ((v.flag & 352) >>> 0) === 256;
	};
	Value.prototype.CanSet = function() { return this.$val.CanSet(); };
	Value.ptr.prototype.Call = function(in$1) {
		var {$24r, _r, in$1, v, $s, $r, $c} = $restore(this, {in$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(19);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Call, $c: true, $r, $24r, _r, in$1, v, $s};return $f;
	};
	Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); };
	Value.ptr.prototype.CallSlice = function(in$1) {
		var {$24r, _r, in$1, v, $s, $r, $c} = $restore(this, {in$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(19);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.CallSlice, $c: true, $r, $24r, _r, in$1, v, $s};return $f;
	};
	Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); };
	Value.ptr.prototype.CanComplex = function() {
		var _1, v;
		v = this;
		_1 = new flag(v.flag).kind();
		if ((_1 === (15)) || (_1 === (16))) {
			return true;
		} else {
			return false;
		}
	};
	Value.prototype.CanComplex = function() { return this.$val.CanComplex(); };
	Value.ptr.prototype.Complex = function() {
		var _1, k, v, x;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (15)) {
			return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag)));
		} else if (_1 === (16)) {
			return (v.ptr).$get();
		}
		$panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind()));
	};
	Value.prototype.Complex = function() { return this.$val.Complex(); };
	Value.ptr.prototype.FieldByIndex = function(index) {
		var {$24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		/* */ if (index.$length === 1) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (index.$length === 1) { */ case 1:
			_r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		new flag(v.flag).mustBe(25);
		_ref = index;
		_i = 0;
		/* while (true) { */ case 5:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; }
			i = _i;
			x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			/* */ if (i > 0) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (i > 0) { */ case 7:
				if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; }
				_r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_v = _r$1 === 25; case 11:
				/* */ if (_v) { $s = 9; continue; }
				/* */ $s = 10; continue;
				/* if (_v) { */ case 9:
					if ($clone(v, Value).IsNil()) {
						$panic(new $String("reflect: indirection through nil pointer to embedded struct"));
					}
					_r$2 = $clone(v, Value).Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					v = _r$2;
				/* } */ case 10:
			/* } */ case 8:
			_r$3 = $clone(v, Value).Field(x); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			v = _r$3;
			_i++;
		$s = 5; continue;
		case 6:
		$s = -1; return v;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.FieldByIndex, $c: true, $r, $24r, _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s};return $f;
	};
	Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
	Value.ptr.prototype.FieldByIndexErr = function(index) {
		var {$24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s, $r, $c} = $restore(this, {index});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		/* */ if (index.$length === 1) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (index.$length === 1) { */ case 1:
			_r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = [_r, $ifaceNil];
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		new flag(v.flag).mustBe(25);
		_ref = index;
		_i = 0;
		/* while (true) { */ case 5:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; }
			i = _i;
			x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			/* */ if (i > 0) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (i > 0) { */ case 7:
				if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 11; continue s; }
				_r$1 = v.typ.Elem().Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_v = _r$1 === 25; case 11:
				/* */ if (_v) { $s = 9; continue; }
				/* */ $s = 10; continue;
				/* if (_v) { */ case 9:
					/* */ if ($clone(v, Value).IsNil()) { $s = 13; continue; }
					/* */ $s = 14; continue;
					/* if ($clone(v, Value).IsNil()) { */ case 13:
						_r$2 = v.typ.Elem().Name(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						_r$3 = errors.New("reflect: indirection through nil pointer to embedded struct field " + _r$2); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						$24r$1 = [new Value.ptr(ptrType$1.nil, 0, 0), _r$3];
						$s = 17; case 17: return $24r$1;
					/* } */ case 14:
					_r$4 = $clone(v, Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					v = _r$4;
				/* } */ case 10:
			/* } */ case 8:
			_r$5 = $clone(v, Value).Field(x); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
			v = _r$5;
			_i++;
		$s = 5; continue;
		case 6:
		$s = -1; return [v, $ifaceNil];
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.FieldByIndexErr, $c: true, $r, $24r, $24r$1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _v, i, index, v, x, $s};return $f;
	};
	Value.prototype.FieldByIndexErr = function(index) { return this.$val.FieldByIndexErr(index); };
	Value.ptr.prototype.FieldByName = function(name$1) {
		var {$24r, _r, _r$1, _tuple, f, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(25);
		_r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		f = $clone(_tuple[0], StructField);
		ok = _tuple[1];
		/* */ if (ok) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (ok) { */ case 2:
			_r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			$24r = _r$1;
			$s = 5; case 5: return $24r;
		/* } */ case 3:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.FieldByName, $c: true, $r, $24r, _r, _r$1, _tuple, f, name$1, ok, v, $s};return $f;
	};
	Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
	Value.ptr.prototype.FieldByNameFunc = function(match) {
		var {$24r, _r, _r$1, _tuple, f, match, ok, v, $s, $r, $c} = $restore(this, {match});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		_r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		f = $clone(_tuple[0], StructField);
		ok = _tuple[1];
		/* */ if (ok) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (ok) { */ case 2:
			_r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			$24r = _r$1;
			$s = 5; case 5: return $24r;
		/* } */ case 3:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.FieldByNameFunc, $c: true, $r, $24r, _r, _r$1, _tuple, f, match, ok, v, $s};return $f;
	};
	Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
	Value.ptr.prototype.CanFloat = function() {
		var _1, v;
		v = this;
		_1 = new flag(v.flag).kind();
		if ((_1 === (13)) || (_1 === (14))) {
			return true;
		} else {
			return false;
		}
	};
	Value.prototype.CanFloat = function() { return this.$val.CanFloat(); };
	Value.ptr.prototype.Float = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (13)) {
			return ((v.ptr).$get());
		} else if (_1 === (14)) {
			return (v.ptr).$get();
		}
		$panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind()));
	};
	Value.prototype.Float = function() { return this.$val.Float(); };
	Value.ptr.prototype.CanInt = function() {
		var _1, v;
		v = this;
		_1 = new flag(v.flag).kind();
		if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) {
			return true;
		} else {
			return false;
		}
	};
	Value.prototype.CanInt = function() { return this.$val.CanInt(); };
	Value.ptr.prototype.Int = function() {
		var _1, k, p, v;
		v = this;
		k = new flag(v.flag).kind();
		p = v.ptr;
		_1 = k;
		if (_1 === (2)) {
			return (new $Int64(0, (p).$get()));
		} else if (_1 === (3)) {
			return (new $Int64(0, (p).$get()));
		} else if (_1 === (4)) {
			return (new $Int64(0, (p).$get()));
		} else if (_1 === (5)) {
			return (new $Int64(0, (p).$get()));
		} else if (_1 === (6)) {
			return (p).$get();
		}
		$panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind()));
	};
	Value.prototype.Int = function() { return this.$val.Int(); };
	Value.ptr.prototype.CanInterface = function() {
		var v;
		v = this;
		if (v.flag === 0) {
			$panic(new ValueError.ptr("reflect.Value.CanInterface", 0));
		}
		return ((v.flag & 96) >>> 0) === 0;
	};
	Value.prototype.CanInterface = function() { return this.$val.CanInterface(); };
	Value.ptr.prototype.Interface = function() {
		var {$24r, _r, i, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		i = $ifaceNil;
		v = this;
		_r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		i = _r;
		$24r = i;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Interface, $c: true, $r, $24r, _r, i, v, $s};return $f;
	};
	Value.prototype.Interface = function() { return this.$val.Interface(); };
	Value.ptr.prototype.IsValid = function() {
		var v;
		v = this;
		return !((v.flag === 0));
	};
	Value.prototype.IsValid = function() { return this.$val.IsValid(); };
	Value.ptr.prototype.IsZero = function() {
		var {_1, _r, _r$1, _r$2, _r$3, c, i, i$1, v, x, x$1, x$2, x$3, x$4, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
			_1 = new flag(v.flag).kind();
			/* */ if (_1 === (1)) { $s = 2; continue; }
			/* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 3; continue; }
			/* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 4; continue; }
			/* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; }
			/* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; }
			/* */ if (_1 === (17)) { $s = 7; continue; }
			/* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 8; continue; }
			/* */ if (_1 === (24)) { $s = 9; continue; }
			/* */ if (_1 === (25)) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_1 === (1)) { */ case 2:
				$s = -1; return !$clone(v, Value).Bool();
			/* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 3:
				$s = -1; return (x = $clone(v, Value).Int(), (x.$high === 0 && x.$low === 0));
			/* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 4:
				$s = -1; return (x$1 = $clone(v, Value).Uint(), (x$1.$high === 0 && x$1.$low === 0));
			/* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5:
				$s = -1; return (x$2 = math.Float64bits($clone(v, Value).Float()), (x$2.$high === 0 && x$2.$low === 0));
			/* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6:
				c = $clone(v, Value).Complex();
				$s = -1; return (x$3 = math.Float64bits(c.$real), (x$3.$high === 0 && x$3.$low === 0)) && (x$4 = math.Float64bits(c.$imag), (x$4.$high === 0 && x$4.$low === 0));
			/* } else if (_1 === (17)) { */ case 7:
				i = 0;
				/* while (true) { */ case 13:
					/* if (!(i < $clone(v, Value).Len())) { break; } */ if(!(i < $clone(v, Value).Len())) { $s = 14; continue; }
					_r = $clone(v, Value).Index(i); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					_r$1 = $clone(_r, Value).IsZero(); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					/* */ if (!_r$1) { $s = 15; continue; }
					/* */ $s = 16; continue;
					/* if (!_r$1) { */ case 15:
						$s = -1; return false;
					/* } */ case 16:
					i = i + (1) >> 0;
				$s = 13; continue;
				case 14:
				$s = -1; return true;
			/* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 8:
				$s = -1; return $clone(v, Value).IsNil();
			/* } else if (_1 === (24)) { */ case 9:
				$s = -1; return $clone(v, Value).Len() === 0;
			/* } else if (_1 === (25)) { */ case 10:
				i$1 = 0;
				/* while (true) { */ case 19:
					/* if (!(i$1 < $clone(v, Value).NumField())) { break; } */ if(!(i$1 < $clone(v, Value).NumField())) { $s = 20; continue; }
					_r$2 = $clone(v, Value).Field(i$1); /* */ $s = 23; case 23: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					_r$3 = $clone(_r$2, Value).IsZero(); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					/* */ if (!_r$3) { $s = 21; continue; }
					/* */ $s = 22; continue;
					/* if (!_r$3) { */ case 21:
						$s = -1; return false;
					/* } */ case 22:
					i$1 = i$1 + (1) >> 0;
				$s = 19; continue;
				case 20:
				$s = -1; return true;
			/* } else { */ case 11:
				$panic(new ValueError.ptr("reflect.Value.IsZero", $clone(v, Value).Kind()));
			/* } */ case 12:
		case 1:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.IsZero, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, c, i, i$1, v, x, x$1, x$2, x$3, x$4, $s};return $f;
	};
	Value.prototype.IsZero = function() { return this.$val.IsZero(); };
	Value.ptr.prototype.Kind = function() {
		var v;
		v = this;
		return new flag(v.flag).kind();
	};
	Value.prototype.Kind = function() { return this.$val.Kind(); };
	Value.ptr.prototype.MapIndex = function(key) {
		var {_r, e, fl, k, k$1, key, tt, typ, v, $s, $r, $c} = $restore(this, {key});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(21);
		tt = (v.typ.kindType);
		e = 0;
		/* */ if ((new flag(key.flag).kind() === 24) && (tt.key.Kind() === 24) && tt.elem.size <= 128) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((new flag(key.flag).kind() === 24) && (tt.key.Kind() === 24) && tt.elem.size <= 128) { */ case 1:
			k = (key.ptr).$get();
			e = mapaccess_faststr(v.typ, $clone(v, Value).pointer(), k);
			$s = 3; continue;
		/* } else { */ case 2:
			_r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			key = _r;
			k$1 = 0;
			if (!((((key.flag & 128) >>> 0) === 0))) {
				k$1 = key.ptr;
			} else {
				k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key))));
			}
			e = mapaccess(v.typ, $clone(v, Value).pointer(), k$1);
		/* } */ case 3:
		if (e === 0) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		typ = tt.elem;
		fl = new flag((((v.flag | key.flag) >>> 0))).ro();
		fl = (fl | (((typ.Kind() >>> 0)))) >>> 0;
		$s = -1; return copyVal(typ, fl, e);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.MapIndex, $c: true, $r, _r, e, fl, k, k$1, key, tt, typ, v, $s};return $f;
	};
	Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); };
	Value.ptr.prototype.MapKeys = function() {
		var {_r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		it = [it];
		v = this;
		new flag(v.flag).mustBe(21);
		tt = (v.typ.kindType);
		keyType = tt.key;
		fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0;
		m = $clone(v, Value).pointer();
		mlen = 0;
		if (!(m === 0)) {
			mlen = maplen(m);
		}
		it[0] = new hiter.ptr($ifaceNil, null, null, 0, null);
		mapiterinit(v.typ, m, it[0]);
		a = $makeSlice(sliceType$7, mlen);
		i = 0;
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; }
			_r = mapiterkey(it[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			key = _r;
			if (key === 0) {
				/* break; */ $s = 2; continue;
			}
			((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key));
			mapiternext(it[0]);
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return $subslice(a, 0, i);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.MapKeys, $c: true, $r, _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s};return $f;
	};
	Value.prototype.MapKeys = function() { return this.$val.MapKeys(); };
	hiter.ptr.prototype.initialized = function() {
		var h;
		h = this;
		return !($interfaceIsEqual(h.t, $ifaceNil));
	};
	hiter.prototype.initialized = function() { return this.$val.initialized(); };
	MapIter.ptr.prototype.Key = function() {
		var {_r, iter, iterkey, ktype, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		iter = this;
		if (!iter.hiter.initialized()) {
			$panic(new $String("MapIter.Key called before Next"));
		}
		_r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		iterkey = _r;
		if (iterkey === 0) {
			$panic(new $String("MapIter.Key called on exhausted iterator"));
		}
		t = (iter.m.typ.kindType);
		ktype = t.key;
		$s = -1; return copyVal(ktype, (new flag(iter.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0, iterkey);
		/* */ } return; } var $f = {$blk: MapIter.ptr.prototype.Key, $c: true, $r, _r, iter, iterkey, ktype, t, $s};return $f;
	};
	MapIter.prototype.Key = function() { return this.$val.Key(); };
	Value.ptr.prototype.SetIterKey = function(iter) {
		var {_r, _r$1, iter, iterkey, key, ktype, t, target, v, $s, $r, $c} = $restore(this, {iter});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		if (!iter.hiter.initialized()) {
			$panic(new $String("reflect: Value.SetIterKey called before Next"));
		}
		_r = mapiterkey(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		iterkey = _r;
		if (iterkey === 0) {
			$panic(new $String("reflect: Value.SetIterKey called on exhausted iterator"));
		}
		new flag(v.flag).mustBeAssignable();
		target = 0;
		if (new flag(v.flag).kind() === 20) {
			target = v.ptr;
		}
		t = (iter.m.typ.kindType);
		ktype = t.key;
		key = new Value.ptr(ktype, iterkey, (((iter.m.flag | ((ktype.Kind() >>> 0))) >>> 0) | 128) >>> 0);
		_r$1 = $clone(key, Value).assignTo("reflect.MapIter.SetKey", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		key = _r$1;
		typedmemmove(v.typ, v.ptr, key.ptr);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.SetIterKey, $c: true, $r, _r, _r$1, iter, iterkey, key, ktype, t, target, v, $s};return $f;
	};
	Value.prototype.SetIterKey = function(iter) { return this.$val.SetIterKey(iter); };
	MapIter.ptr.prototype.Value = function() {
		var {_r, iter, iterelem, t, vtype, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		iter = this;
		if (!iter.hiter.initialized()) {
			$panic(new $String("MapIter.Value called before Next"));
		}
		_r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		iterelem = _r;
		if (iterelem === 0) {
			$panic(new $String("MapIter.Value called on exhausted iterator"));
		}
		t = (iter.m.typ.kindType);
		vtype = t.elem;
		$s = -1; return copyVal(vtype, (new flag(iter.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0, iterelem);
		/* */ } return; } var $f = {$blk: MapIter.ptr.prototype.Value, $c: true, $r, _r, iter, iterelem, t, vtype, $s};return $f;
	};
	MapIter.prototype.Value = function() { return this.$val.Value(); };
	Value.ptr.prototype.SetIterValue = function(iter) {
		var {_r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s, $r, $c} = $restore(this, {iter});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		if (!iter.hiter.initialized()) {
			$panic(new $String("reflect: Value.SetIterValue called before Next"));
		}
		_r = mapiterelem(iter.hiter); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		iterelem = _r;
		if (iterelem === 0) {
			$panic(new $String("reflect: Value.SetIterValue called on exhausted iterator"));
		}
		new flag(v.flag).mustBeAssignable();
		target = 0;
		if (new flag(v.flag).kind() === 20) {
			target = v.ptr;
		}
		t = (iter.m.typ.kindType);
		vtype = t.elem;
		elem = new Value.ptr(vtype, iterelem, (((iter.m.flag | ((vtype.Kind() >>> 0))) >>> 0) | 128) >>> 0);
		_r$1 = $clone(elem, Value).assignTo("reflect.MapIter.SetValue", v.typ, target); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		elem = _r$1;
		typedmemmove(v.typ, v.ptr, elem.ptr);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.SetIterValue, $c: true, $r, _r, _r$1, elem, iter, iterelem, t, target, v, vtype, $s};return $f;
	};
	Value.prototype.SetIterValue = function(iter) { return this.$val.SetIterValue(iter); };
	MapIter.ptr.prototype.Next = function() {
		var {$24r, _r, _r$1, iter, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		iter = this;
		if (!$clone(iter.m, Value).IsValid()) {
			$panic(new $String("MapIter.Next called on an iterator that does not have an associated map Value"));
		}
		/* */ if (!iter.hiter.initialized()) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!iter.hiter.initialized()) { */ case 1:
			mapiterinit(iter.m.typ, $clone(iter.m, Value).pointer(), iter.hiter);
			$s = 3; continue;
		/* } else { */ case 2:
			_r = mapiterkey(iter.hiter); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* */ if (_r === 0) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_r === 0) { */ case 4:
				$panic(new $String("MapIter.Next called on exhausted iterator"));
			/* } */ case 5:
			mapiternext(iter.hiter);
		/* } */ case 3:
		_r$1 = mapiterkey(iter.hiter); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = !(_r$1 === 0);
		$s = 8; case 8: return $24r;
		/* */ } return; } var $f = {$blk: MapIter.ptr.prototype.Next, $c: true, $r, $24r, _r, _r$1, iter, $s};return $f;
	};
	MapIter.prototype.Next = function() { return this.$val.Next(); };
	MapIter.ptr.prototype.Reset = function(v) {
		var iter, v;
		iter = this;
		if ($clone(v, Value).IsValid()) {
			new flag(v.flag).mustBe(21);
		}
		iter.m = v;
		hiter.copy(iter.hiter, new hiter.ptr($ifaceNil, null, null, 0, null));
	};
	MapIter.prototype.Reset = function(v) { return this.$val.Reset(v); };
	Value.ptr.prototype.MapRange = function() {
		var v;
		v = this;
		new flag(v.flag).mustBe(21);
		return new MapIter.ptr($clone(v, Value), new hiter.ptr($ifaceNil, null, null, 0, null));
	};
	Value.prototype.MapRange = function() { return this.$val.MapRange(); };
	copyVal = function(typ, fl, ptr) {
		var c, fl, ptr, typ;
		if (ifaceIndir(typ)) {
			c = unsafe_New(typ);
			typedmemmove(typ, c, ptr);
			return new Value.ptr(typ, c, (fl | 128) >>> 0);
		}
		return new Value.ptr(typ, (ptr).$get(), fl);
	};
	Value.ptr.prototype.Method = function(i) {
		var fl, i, v;
		v = this;
		if (v.typ === ptrType$1.nil) {
			$panic(new ValueError.ptr("reflect.Value.Method", 0));
		}
		if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) {
			$panic(new $String("reflect: Method index out of range"));
		}
		if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) {
			$panic(new $String("reflect: Method on nil interface value"));
		}
		fl = (new flag(v.flag).ro() | (((v.flag & 128) >>> 0))) >>> 0;
		fl = (fl | (19)) >>> 0;
		fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0;
		return new Value.ptr(v.typ, v.ptr, fl);
	};
	Value.prototype.Method = function(i) { return this.$val.Method(i); };
	Value.ptr.prototype.NumMethod = function() {
		var v;
		v = this;
		if (v.typ === ptrType$1.nil) {
			$panic(new ValueError.ptr("reflect.Value.NumMethod", 0));
		}
		if (!((((v.flag & 512) >>> 0) === 0))) {
			return 0;
		}
		return v.typ.NumMethod();
	};
	Value.prototype.NumMethod = function() { return this.$val.NumMethod(); };
	Value.ptr.prototype.MethodByName = function(name$1) {
		var {_r, _tuple, m, name$1, ok, v, $s, $r, $c} = $restore(this, {name$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		if (v.typ === ptrType$1.nil) {
			$panic(new ValueError.ptr("reflect.Value.MethodByName", 0));
		}
		if (!((((v.flag & 512) >>> 0) === 0))) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		_r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		m = $clone(_tuple[0], Method);
		ok = _tuple[1];
		if (!ok) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		$s = -1; return $clone(v, Value).Method(m.Index);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.MethodByName, $c: true, $r, _r, _tuple, m, name$1, ok, v, $s};return $f;
	};
	Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
	Value.ptr.prototype.NumField = function() {
		var tt, v;
		v = this;
		new flag(v.flag).mustBe(25);
		tt = (v.typ.kindType);
		return tt.fields.$length;
	};
	Value.prototype.NumField = function() { return this.$val.NumField(); };
	Value.ptr.prototype.OverflowComplex = function(x) {
		var _1, k, v, x;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (15)) {
			return overflowFloat32(x.$real) || overflowFloat32(x.$imag);
		} else if (_1 === (16)) {
			return false;
		}
		$panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind()));
	};
	Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); };
	Value.ptr.prototype.OverflowFloat = function(x) {
		var _1, k, v, x;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (13)) {
			return overflowFloat32(x);
		} else if (_1 === (14)) {
			return false;
		}
		$panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind()));
	};
	Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); };
	overflowFloat32 = function(x) {
		var x;
		if (x < 0) {
			x = -x;
		}
		return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308;
	};
	Value.ptr.prototype.OverflowInt = function(x) {
		var _1, bitSize, k, trunc, v, x;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) {
			bitSize = $imul(v.typ.size, 8) >>> 0;
			trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0)));
			return !((x.$high === trunc.$high && x.$low === trunc.$low));
		}
		$panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind()));
	};
	Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); };
	Value.ptr.prototype.OverflowUint = function(x) {
		var _1, bitSize, k, trunc, v, x;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) {
			bitSize = $imul(v.typ.size, 8) >>> 0;
			trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0)));
			return !((x.$high === trunc.$high && x.$low === trunc.$low));
		}
		$panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind()));
	};
	Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); };
	Value.ptr.prototype.Recv = function() {
		var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		x = new Value.ptr(ptrType$1.nil, 0, 0);
		ok = false;
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		x = _tuple[0];
		ok = _tuple[1];
		$24r = [x, ok];
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Recv, $c: true, $r, $24r, _r, _tuple, ok, v, x, $s};return $f;
	};
	Value.prototype.Recv = function() { return this.$val.Recv(); };
	Value.ptr.prototype.recv = function(nb) {
		var {_r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r, $c} = $restore(this, {nb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		val = new Value.ptr(ptrType$1.nil, 0, 0);
		ok = false;
		v = this;
		tt = (v.typ.kindType);
		if ((((tt.dir >> 0)) & 1) === 0) {
			$panic(new $String("reflect: recv on send-only channel"));
		}
		t = tt.elem;
		val = new Value.ptr(t, 0, ((t.Kind() >>> 0)));
		p = 0;
		if (ifaceIndir(t)) {
			p = unsafe_New(t);
			val.ptr = p;
			val.flag = (val.flag | (128)) >>> 0;
		} else {
			p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val))));
		}
		_r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		selected = _tuple[0];
		ok = _tuple[1];
		if (!selected) {
			val = new Value.ptr(ptrType$1.nil, 0, 0);
		}
		$s = -1; return [val, ok];
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.recv, $c: true, $r, _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s};return $f;
	};
	Value.prototype.recv = function(nb) { return this.$val.recv(nb); };
	Value.ptr.prototype.Send = function(x) {
		var {_r, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r;
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Send, $c: true, $r, _r, v, x, $s};return $f;
	};
	Value.prototype.Send = function(x) { return this.$val.Send(x); };
	Value.ptr.prototype.send = function(x, nb) {
		var {$24r, _r, _r$1, nb, p, selected, tt, v, x, $s, $r, $c} = $restore(this, {x, nb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		selected = false;
		v = this;
		tt = (v.typ.kindType);
		if ((((tt.dir >> 0)) & 2) === 0) {
			$panic(new $String("reflect: send on recv-only channel"));
		}
		new flag(x.flag).mustBeExported();
		_r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		x = _r;
		p = 0;
		if (!((((x.flag & 128) >>> 0) === 0))) {
			p = x.ptr;
		} else {
			p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x))));
		}
		_r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		selected = _r$1;
		$24r = selected;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.send, $c: true, $r, $24r, _r, _r$1, nb, p, selected, tt, v, x, $s};return $f;
	};
	Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); };
	Value.ptr.prototype.SetBool = function(x) {
		var v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(1);
		(v.ptr).$set(x);
	};
	Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); };
	Value.ptr.prototype.setRunes = function(x) {
		var {_r, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		_r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 5))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 5))) { */ case 1:
			$panic(new $String("reflect.Value.setRunes of non-rune slice"));
		/* } */ case 2:
		(v.ptr).$set(x);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.setRunes, $c: true, $r, _r, v, x, $s};return $f;
	};
	Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); };
	Value.ptr.prototype.SetComplex = function(x) {
		var _1, k, v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (15)) {
			(v.ptr).$set((new $Complex64(x.$real, x.$imag)));
		} else if (_1 === (16)) {
			(v.ptr).$set(x);
		} else {
			$panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind()));
		}
	};
	Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); };
	Value.ptr.prototype.SetFloat = function(x) {
		var _1, k, v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (13)) {
			(v.ptr).$set(($fround(x)));
		} else if (_1 === (14)) {
			(v.ptr).$set(x);
		} else {
			$panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind()));
		}
	};
	Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); };
	Value.ptr.prototype.SetInt = function(x) {
		var _1, k, v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (2)) {
			(v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)));
		} else if (_1 === (3)) {
			(v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24)));
		} else if (_1 === (4)) {
			(v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16)));
		} else if (_1 === (5)) {
			(v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)));
		} else if (_1 === (6)) {
			(v.ptr).$set(x);
		} else {
			$panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind()));
		}
	};
	Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); };
	Value.ptr.prototype.SetMapIndex = function(key, elem) {
		var {_r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s, $r, $c} = $restore(this, {key, elem});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(21);
		new flag(v.flag).mustBeExported();
		new flag(key.flag).mustBeExported();
		tt = (v.typ.kindType);
		/* */ if ((new flag(key.flag).kind() === 24) && (tt.key.Kind() === 24) && tt.elem.size <= 128) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((new flag(key.flag).kind() === 24) && (tt.key.Kind() === 24) && tt.elem.size <= 128) { */ case 1:
			k = (key.ptr).$get();
			if (elem.typ === ptrType$1.nil) {
				mapdelete_faststr(v.typ, $clone(v, Value).pointer(), k);
				$s = -1; return;
			}
			new flag(elem.flag).mustBeExported();
			_r = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			elem = _r;
			e = 0;
			if (!((((elem.flag & 128) >>> 0) === 0))) {
				e = elem.ptr;
			} else {
				e = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem))));
			}
			$r = mapassign_faststr(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
		/* } */ case 2:
		_r$1 = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		key = _r$1;
		k$1 = 0;
		if (!((((key.flag & 128) >>> 0) === 0))) {
			k$1 = key.ptr;
		} else {
			k$1 = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key))));
		}
		if (elem.typ === ptrType$1.nil) {
			mapdelete(v.typ, $clone(v, Value).pointer(), k$1);
			$s = -1; return;
		}
		new flag(elem.flag).mustBeExported();
		_r$2 = $clone(elem, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		elem = _r$2;
		e$1 = 0;
		if (!((((elem.flag & 128) >>> 0) === 0))) {
			e$1 = elem.ptr;
		} else {
			e$1 = ((elem.$ptr_ptr || (elem.$ptr_ptr = new ptrType$7(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, elem))));
		}
		$r = mapassign(v.typ, $clone(v, Value).pointer(), k$1, e$1); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.SetMapIndex, $c: true, $r, _r, _r$1, _r$2, e, e$1, elem, k, k$1, key, tt, v, $s};return $f;
	};
	Value.prototype.SetMapIndex = function(key, elem) { return this.$val.SetMapIndex(key, elem); };
	Value.ptr.prototype.SetUint = function(x) {
		var _1, k, v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (7)) {
			(v.ptr).$set(((x.$low >>> 0)));
		} else if (_1 === (8)) {
			(v.ptr).$set(((x.$low << 24 >>> 24)));
		} else if (_1 === (9)) {
			(v.ptr).$set(((x.$low << 16 >>> 16)));
		} else if (_1 === (10)) {
			(v.ptr).$set(((x.$low >>> 0)));
		} else if (_1 === (11)) {
			(v.ptr).$set(x);
		} else if (_1 === (12)) {
			(v.ptr).$set(((x.$low >>> 0)));
		} else {
			$panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind()));
		}
	};
	Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); };
	Value.ptr.prototype.SetPointer = function(x) {
		var v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(26);
		(v.ptr).$set(x);
	};
	Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); };
	Value.ptr.prototype.SetString = function(x) {
		var v, x;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(24);
		(v.ptr).$set(x);
	};
	Value.prototype.SetString = function(x) { return this.$val.SetString(x); };
	Value.ptr.prototype.String = function() {
		var {$24r, _1, _r, k, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (0)) {
			$s = -1; return "<invalid Value>";
		} else if (_1 === (24)) {
			$s = -1; return (v.ptr).$get();
		}
		_r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = "<" + _r + " Value>";
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.String, $c: true, $r, $24r, _1, _r, k, v, $s};return $f;
	};
	Value.prototype.String = function() { return this.$val.String(); };
	Value.ptr.prototype.TryRecv = function() {
		var {$24r, _r, _tuple, ok, v, x, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		x = new Value.ptr(ptrType$1.nil, 0, 0);
		ok = false;
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		x = _tuple[0];
		ok = _tuple[1];
		$24r = [x, ok];
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.TryRecv, $c: true, $r, $24r, _r, _tuple, ok, v, x, $s};return $f;
	};
	Value.prototype.TryRecv = function() { return this.$val.TryRecv(); };
	Value.ptr.prototype.TrySend = function(x) {
		var {$24r, _r, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		_r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.TrySend, $c: true, $r, $24r, _r, v, x, $s};return $f;
	};
	Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); };
	Value.ptr.prototype.Type = function() {
		var f, i, m, m$1, ms, tt, v, x;
		v = this;
		f = v.flag;
		if (f === 0) {
			$panic(new ValueError.ptr("reflect.Value.Type", 0));
		}
		if (((f & 512) >>> 0) === 0) {
			return v.typ;
		}
		i = ((v.flag >> 0)) >> 10 >> 0;
		if (v.typ.Kind() === 20) {
			tt = (v.typ.kindType);
			if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) {
				$panic(new $String("reflect: internal error: invalid method index"));
			}
			m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
			return v.typ.typeOff(m.typ);
		}
		ms = v.typ.exportedMethods();
		if (((i >>> 0)) >= ((ms.$length >>> 0))) {
			$panic(new $String("reflect: internal error: invalid method index"));
		}
		m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method);
		return v.typ.typeOff(m$1.mtyp);
	};
	Value.prototype.Type = function() { return this.$val.Type(); };
	Value.ptr.prototype.CanUint = function() {
		var _1, v;
		v = this;
		_1 = new flag(v.flag).kind();
		if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) {
			return true;
		} else {
			return false;
		}
	};
	Value.prototype.CanUint = function() { return this.$val.CanUint(); };
	Value.ptr.prototype.Uint = function() {
		var _1, k, p, v, x;
		v = this;
		k = new flag(v.flag).kind();
		p = v.ptr;
		_1 = k;
		if (_1 === (7)) {
			return (new $Uint64(0, (p).$get()));
		} else if (_1 === (8)) {
			return (new $Uint64(0, (p).$get()));
		} else if (_1 === (9)) {
			return (new $Uint64(0, (p).$get()));
		} else if (_1 === (10)) {
			return (new $Uint64(0, (p).$get()));
		} else if (_1 === (11)) {
			return (p).$get();
		} else if (_1 === (12)) {
			return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1)));
		}
		$panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind()));
	};
	Value.prototype.Uint = function() { return this.$val.Uint(); };
	Value.ptr.prototype.UnsafeAddr = function() {
		var v;
		v = this;
		if (v.typ === ptrType$1.nil) {
			$panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0));
		}
		if (((v.flag & 256) >>> 0) === 0) {
			$panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));
		}
		return (v.ptr);
	};
	Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); };
	Value.ptr.prototype.UnsafePointer = function() {
		var {_1, _r, code, k, p, v, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		code = [code];
		v = this;
		k = new flag(v.flag).kind();
			_1 = k;
			/* */ if (_1 === (22)) { $s = 2; continue; }
			/* */ if ((_1 === (18)) || (_1 === (21)) || (_1 === (26))) { $s = 3; continue; }
			/* */ if (_1 === (19)) { $s = 4; continue; }
			/* */ if (_1 === (23)) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if (_1 === (22)) { */ case 2:
				if (v.typ.ptrdata === 0) {
					if (!verifyNotInHeapPtr((v.ptr).$get())) {
						$panic(new $String("reflect: reflect.Value.UnsafePointer on an invalid notinheap pointer"));
					}
					$s = -1; return (v.ptr).$get();
				}
				$s = -1; return $clone(v, Value).pointer();
			/* } else if ((_1 === (18)) || (_1 === (21)) || (_1 === (26))) { */ case 3:
				$s = -1; return $clone(v, Value).pointer();
			/* } else if (_1 === (19)) { */ case 4:
				/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 7:
					_r = methodValueCallCodePtr(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					code[0] = _r;
					$s = -1; return code[0];
				/* } */ case 8:
				p = $clone(v, Value).pointer();
				if (!(p === 0)) {
					p = (p).$get();
				}
				$s = -1; return p;
			/* } else if (_1 === (23)) { */ case 5:
				$s = -1; return ($pointerOfStructConversion(v.ptr, ptrType$8)).Data;
			/* } */ case 6:
		case 1:
		$panic(new ValueError.ptr("reflect.Value.UnsafePointer", new flag(v.flag).kind()));
		$s = -1; return 0;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.UnsafePointer, $c: true, $r, _1, _r, code, k, p, v, $s};return $f;
	};
	Value.prototype.UnsafePointer = function() { return this.$val.UnsafePointer(); };
	Value.ptr.prototype.Convert = function(t) {
		var {$24r, _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
			_r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			v = _r;
		/* } */ case 2:
		_r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		op = _r$2;
		/* */ if (op === $throwNilPointerError) { $s = 6; continue; }
		/* */ $s = 7; continue;
		/* if (op === $throwNilPointerError) { */ case 6:
			_r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			$panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3));
		/* } */ case 7:
		_r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		$24r = _r$4;
		$s = 10; case 10: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Convert, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s};return $f;
	};
	Value.prototype.Convert = function(t) { return this.$val.Convert(t); };
	Value.ptr.prototype.CanConvert = function(t) {
		var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, _v$1, n, t, v, vt, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		vt = $clone(v, Value).Type();
		_r = vt.ConvertibleTo(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!_r) { */ case 1:
			$s = -1; return false;
		/* } */ case 2:
		_r$1 = vt.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		if (!(_r$1 === 23)) { _v$1 = false; $s = 7; continue s; }
		_r$2 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_v$1 = _r$2 === 22; case 7:
		if (!(_v$1)) { _v = false; $s = 6; continue s; }
		_r$3 = t.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_r$4 = _r$3.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_v = _r$4 === 17; case 6:
		/* */ if (_v) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (_v) { */ case 4:
			_r$5 = t.Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
			_r$6 = _r$5.Len(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
			n = _r$6;
			if (n > $clone(v, Value).Len()) {
				$s = -1; return false;
			}
		/* } */ case 5:
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.CanConvert, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, _v$1, n, t, v, vt, $s};return $f;
	};
	Value.prototype.CanConvert = function(t) { return this.$val.CanConvert(t); };
	convertOp = function(dst, src) {
		var {_1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s, $r, $c} = $restore(this, {dst, src});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_1 = src.Kind();
			/* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; }
			/* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; }
			/* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; }
			/* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; }
			/* */ if (_1 === (24)) { $s = 6; continue; }
			/* */ if (_1 === (23)) { $s = 7; continue; }
			/* */ if (_1 === (18)) { $s = 8; continue; }
			/* */ $s = 9; continue;
			/* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2:
				_2 = dst.Kind();
				if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) {
					$s = -1; return cvtInt;
				} else if ((_2 === (13)) || (_2 === (14))) {
					$s = -1; return cvtIntFloat;
				} else if (_2 === (24)) {
					$s = -1; return cvtIntString;
				}
				$s = 9; continue;
			/* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3:
				_3 = dst.Kind();
				if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) {
					$s = -1; return cvtUint;
				} else if ((_3 === (13)) || (_3 === (14))) {
					$s = -1; return cvtUintFloat;
				} else if (_3 === (24)) {
					$s = -1; return cvtUintString;
				}
				$s = 9; continue;
			/* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4:
				_4 = dst.Kind();
				if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) {
					$s = -1; return cvtFloatInt;
				} else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) {
					$s = -1; return cvtFloatUint;
				} else if ((_4 === (13)) || (_4 === (14))) {
					$s = -1; return cvtFloat;
				}
				$s = 9; continue;
			/* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5:
				_5 = dst.Kind();
				if ((_5 === (15)) || (_5 === (16))) {
					$s = -1; return cvtComplex;
				}
				$s = 9; continue;
			/* } else if (_1 === (24)) { */ case 6:
				if (!(dst.Kind() === 23)) { _v = false; $s = 12; continue s; }
				_r = dst.Elem().PkgPath(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_v = _r === ""; case 12:
				/* */ if (_v) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (_v) { */ case 10:
						_r$1 = dst.Elem().Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
						_6 = _r$1;
						if (_6 === (8)) {
							$s = -1; return cvtStringBytes;
						} else if (_6 === (5)) {
							$s = -1; return cvtStringRunes;
						}
					case 14:
				/* } */ case 11:
				$s = 9; continue;
			/* } else if (_1 === (23)) { */ case 7:
				if (!(dst.Kind() === 24)) { _v$1 = false; $s = 18; continue s; }
				_r$2 = src.Elem().PkgPath(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_v$1 = _r$2 === ""; case 18:
				/* */ if (_v$1) { $s = 16; continue; }
				/* */ $s = 17; continue;
				/* if (_v$1) { */ case 16:
						_r$3 = src.Elem().Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						_7 = _r$3;
						if (_7 === (8)) {
							$s = -1; return cvtBytesString;
						} else if (_7 === (5)) {
							$s = -1; return cvtRunesString;
						}
					case 20:
				/* } */ case 17:
				if (!(dst.Kind() === 22)) { _v$3 = false; $s = 25; continue s; }
				_r$4 = dst.Elem().Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_v$3 = _r$4 === 17; case 25:
				if (!(_v$3)) { _v$2 = false; $s = 24; continue s; }
				_r$5 = dst.Elem().Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				_v$2 = $interfaceIsEqual(src.Elem(), _r$5); case 24:
				/* */ if (_v$2) { $s = 22; continue; }
				/* */ $s = 23; continue;
				/* if (_v$2) { */ case 22:
					$s = -1; return cvtSliceArrayPtr;
				/* } */ case 23:
				$s = 9; continue;
			/* } else if (_1 === (18)) { */ case 8:
				if (!(dst.Kind() === 18)) { _v$4 = false; $s = 30; continue s; }
				_r$6 = specialChannelAssignability(dst, src); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				_v$4 = _r$6; case 30:
				/* */ if (_v$4) { $s = 28; continue; }
				/* */ $s = 29; continue;
				/* if (_v$4) { */ case 28:
					$s = -1; return cvtDirect;
				/* } */ case 29:
			/* } */ case 9:
		case 1:
		_r$7 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 34; case 34: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		/* */ if (_r$7) { $s = 32; continue; }
		/* */ $s = 33; continue;
		/* if (_r$7) { */ case 32:
			$s = -1; return cvtDirect;
		/* } */ case 33:
		if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$5 = false; $s = 37; continue s; }
		_r$8 = dst.Elem().common(); /* */ $s = 38; case 38: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg = _r$8;
		_r$9 = src.Elem().common(); /* */ $s = 39; case 39: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$1 = _r$9;
		_r$10 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 40; case 40: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_v$5 = _r$10; case 37:
		/* */ if (_v$5) { $s = 35; continue; }
		/* */ $s = 36; continue;
		/* if (_v$5) { */ case 35:
			$s = -1; return cvtDirect;
		/* } */ case 36:
		if (implements$1(dst, src)) {
			if (src.Kind() === 20) {
				$s = -1; return cvtI2I;
			}
			$s = -1; return cvtT2I;
		}
		$s = -1; return $throwNilPointerError;
		/* */ } return; } var $f = {$blk: convertOp, $c: true, $r, _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, _v$1, _v$2, _v$3, _v$4, _v$5, dst, src, $s};return $f;
	};
	makeFloat = function(f, v, t) {
		var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		typ = _r;
		ptr = unsafe_New(typ);
		_1 = typ.size;
		if (_1 === (4)) {
			(ptr).$set(($fround(v)));
		} else if (_1 === (8)) {
			(ptr).$set(v);
		}
		$s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
		/* */ } return; } var $f = {$blk: makeFloat, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f;
	};
	makeFloat32 = function(f, v, t) {
		var {_r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		typ = _r;
		ptr = unsafe_New(typ);
		(ptr).$set(v);
		$s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
		/* */ } return; } var $f = {$blk: makeFloat32, $c: true, $r, _r, f, ptr, t, typ, v, $s};return $f;
	};
	makeComplex = function(f, v, t) {
		var {_1, _r, f, ptr, t, typ, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		typ = _r;
		ptr = unsafe_New(typ);
		_1 = typ.size;
		if (_1 === (8)) {
			(ptr).$set((new $Complex64(v.$real, v.$imag)));
		} else if (_1 === (16)) {
			(ptr).$set(v);
		}
		$s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
		/* */ } return; } var $f = {$blk: makeComplex, $c: true, $r, _1, _r, f, ptr, t, typ, v, $s};return $f;
	};
	makeString = function(f, v, t) {
		var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		ret = _r;
		$clone(ret, Value).SetString(v);
		ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
		$s = -1; return ret;
		/* */ } return; } var $f = {$blk: makeString, $c: true, $r, _r, f, ret, t, v, $s};return $f;
	};
	makeBytes = function(f, v, t) {
		var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		ret = _r;
		$r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
		$s = -1; return ret;
		/* */ } return; } var $f = {$blk: makeBytes, $c: true, $r, _r, f, ret, t, v, $s};return $f;
	};
	makeRunes = function(f, v, t) {
		var {_r, f, ret, t, v, $s, $r, $c} = $restore(this, {f, v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		ret = _r;
		$r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0;
		$s = -1; return ret;
		/* */ } return; } var $f = {$blk: makeRunes, $c: true, $r, _r, f, ret, t, v, $s};return $f;
	};
	cvtInt = function(v, t) {
		var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtInt, $c: true, $r, $24r, _r, t, v, x, $s};return $f;
	};
	cvtUint = function(v, t) {
		var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtUint, $c: true, $r, $24r, _r, t, v, $s};return $f;
	};
	cvtFloatInt = function(v, t) {
		var {$24r, _r, t, v, x, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtFloatInt, $c: true, $r, $24r, _r, t, v, x, $s};return $f;
	};
	cvtFloatUint = function(v, t) {
		var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtFloatUint, $c: true, $r, $24r, _r, t, v, $s};return $f;
	};
	cvtIntFloat = function(v, t) {
		var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtIntFloat, $c: true, $r, $24r, _r, t, v, $s};return $f;
	};
	cvtUintFloat = function(v, t) {
		var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtUintFloat, $c: true, $r, $24r, _r, t, v, $s};return $f;
	};
	cvtFloat = function(v, t) {
		var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _v, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(v, Value).Type().Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		if (!(_r === 13)) { _v = false; $s = 3; continue s; }
		_r$1 = t.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_v = _r$1 === 13; case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			_r$2 = makeFloat32(new flag(v.flag).ro(), (v.ptr).$get(), t); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			$24r = _r$2;
			$s = 7; case 7: return $24r;
		/* } */ case 2:
		_r$3 = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r$1 = _r$3;
		$s = 9; case 9: return $24r$1;
		/* */ } return; } var $f = {$blk: cvtFloat, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _v, t, v, $s};return $f;
	};
	cvtComplex = function(v, t) {
		var {$24r, _r, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtComplex, $c: true, $r, $24r, _r, t, v, $s};return $f;
	};
	cvtIntString = function(v, t) {
		var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = "\xEF\xBF\xBD";
		x = $clone(v, Value).Int();
		if ((x$1 = (new $Int64(0, (((x.$low + ((x.$high >> 31) * 4294967296)) >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) {
			s = ($encodeRune((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))));
		}
		_r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtIntString, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f;
	};
	cvtUintString = function(v, t) {
		var {$24r, _r, s, t, v, x, x$1, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = "\xEF\xBF\xBD";
		x = $clone(v, Value).Uint();
		if ((x$1 = (new $Uint64(0, ((x.$low >> 0)))), (x$1.$high === x.$high && x$1.$low === x.$low))) {
			s = ($encodeRune(((x.$low >> 0))));
		}
		_r = makeString(new flag(v.flag).ro(), s, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: cvtUintString, $c: true, $r, $24r, _r, s, t, v, x, x$1, $s};return $f;
	};
	cvtBytesString = function(v, t) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = new flag(v.flag).ro();
		_r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = ($bytesToString(_r));
		_arg$2 = t;
		_r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: cvtBytesString, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f;
	};
	cvtStringBytes = function(v, t) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = new flag(v.flag).ro();
		_r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = (new sliceType$9($stringToBytes(_r)));
		_arg$2 = t;
		_r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: cvtStringBytes, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f;
	};
	cvtRunesString = function(v, t) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = new flag(v.flag).ro();
		_r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = ($runesToString(_r));
		_arg$2 = t;
		_r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: cvtRunesString, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f;
	};
	cvtStringRunes = function(v, t) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = new flag(v.flag).ro();
		_r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = (new sliceType$10($stringToRunes(_r)));
		_arg$2 = t;
		_r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: cvtStringRunes, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s};return $f;
	};
	cvtT2I = function(v, typ) {
		var {$24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r, $c} = $restore(this, {v, typ});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		target = _r$1;
		_r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		x = _r$2;
		_r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		/* */ if (_r$3 === 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (_r$3 === 0) { */ case 4:
			(target).$set(x);
			$s = 6; continue;
		/* } else { */ case 5:
			ifaceE2I($assertType(typ, ptrType$1), x, target);
		/* } */ case 6:
		_r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		$24r = new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0);
		$s = 9; case 9: return $24r;
		/* */ } return; } var $f = {$blk: cvtT2I, $c: true, $r, $24r, _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s};return $f;
	};
	cvtI2I = function(v, typ) {
		var {$24r, _r, _r$1, _r$2, ret, typ, v, $s, $r, $c} = $restore(this, {v, typ});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ($clone(v, Value).IsNil()) { */ case 1:
			_r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			ret = _r;
			ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0;
			$s = -1; return ret;
		/* } */ case 2:
		_r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 6; case 6: return $24r;
		/* */ } return; } var $f = {$blk: cvtI2I, $c: true, $r, $24r, _r, _r$1, _r$2, ret, typ, v, $s};return $f;
	};
	structField.ptr.prototype.offset = function() {
		var f;
		f = this;
		return f.offsetEmbed >>> 1 >>> 0;
	};
	structField.prototype.offset = function() { return this.$val.offset(); };
	structField.ptr.prototype.embedded = function() {
		var f;
		f = this;
		return !((((f.offsetEmbed & 1) >>> 0) === 0));
	};
	structField.prototype.embedded = function() { return this.$val.embedded(); };
	Method.ptr.prototype.IsExported = function() {
		var m;
		m = this;
		return m.PkgPath === "";
	};
	Method.prototype.IsExported = function() { return this.$val.IsExported(); };
	Kind.prototype.String = function() {
		var k;
		k = this.$val;
		if (((k >> 0)) < kindNames.$length) {
			return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]);
		}
		return "kind" + strconv.Itoa(((k >> 0)));
	};
	$ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); };
	rtype.ptr.prototype.String = function() {
		var s, t;
		t = this;
		s = $clone(t.nameOff(t.str), name).name();
		if (!((((t.tflag & 2) >>> 0) === 0))) {
			return $substring(s, 1);
		}
		return s;
	};
	rtype.prototype.String = function() { return this.$val.String(); };
	rtype.ptr.prototype.Size = function() {
		var t;
		t = this;
		return t.size;
	};
	rtype.prototype.Size = function() { return this.$val.Size(); };
	rtype.ptr.prototype.Bits = function() {
		var k, t;
		t = this;
		if (t === ptrType$1.nil) {
			$panic(new $String("reflect: Bits of nil Type"));
		}
		k = t.Kind();
		if (k < 2 || k > 16) {
			$panic(new $String("reflect: Bits of non-arithmetic Type " + t.String()));
		}
		return $imul(((t.size >> 0)), 8);
	};
	rtype.prototype.Bits = function() { return this.$val.Bits(); };
	rtype.ptr.prototype.Align = function() {
		var t;
		t = this;
		return ((t.align >> 0));
	};
	rtype.prototype.Align = function() { return this.$val.Align(); };
	rtype.ptr.prototype.FieldAlign = function() {
		var t;
		t = this;
		return ((t.fieldAlign >> 0));
	};
	rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); };
	rtype.ptr.prototype.Kind = function() {
		var t;
		t = this;
		return ((((t.kind & 31) >>> 0) >>> 0));
	};
	rtype.prototype.Kind = function() { return this.$val.Kind(); };
	rtype.ptr.prototype.common = function() {
		var t;
		t = this;
		return t;
	};
	rtype.prototype.common = function() { return this.$val.common(); };
	rtype.ptr.prototype.exportedMethods = function() {
		var t, ut;
		t = this;
		ut = t.uncommon();
		if (ut === ptrType$9.nil) {
			return sliceType$11.nil;
		}
		return ut.exportedMethods();
	};
	rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
	rtype.ptr.prototype.NumMethod = function() {
		var t, tt;
		t = this;
		if (t.Kind() === 20) {
			tt = (t.kindType);
			return tt.NumMethod();
		}
		return t.exportedMethods().$length;
	};
	rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); };
	rtype.ptr.prototype.MethodByName = function(name$1) {
		var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r, $c} = $restore(this, {name$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		ok = false;
		t = this;
		if (t.Kind() === 20) {
			tt = (t.kindType);
			_tuple = tt.MethodByName(name$1);
			Method.copy(m, _tuple[0]);
			ok = _tuple[1];
			$s = -1; return [m, ok];
		}
		ut = t.uncommon();
		if (ut === ptrType$9.nil) {
			_tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
			_tmp$1 = false;
			Method.copy(m, _tmp);
			ok = _tmp$1;
			$s = -1; return [m, ok];
		}
		_ref = ut.exportedMethods();
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			i = _i;
			p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method);
			/* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3:
				_r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_tmp$2 = $clone(_r, Method);
				_tmp$3 = true;
				Method.copy(m, _tmp$2);
				ok = _tmp$3;
				$24r = [m, ok];
				$s = 6; case 6: return $24r;
			/* } */ case 4:
			_i++;
		$s = 1; continue;
		case 2:
		_tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		_tmp$5 = false;
		Method.copy(m, _tmp$4);
		ok = _tmp$5;
		$s = -1; return [m, ok];
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.MethodByName, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s};return $f;
	};
	rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
	rtype.ptr.prototype.PkgPath = function() {
		var t, ut;
		t = this;
		if (((t.tflag & 4) >>> 0) === 0) {
			return "";
		}
		ut = t.uncommon();
		if (ut === ptrType$9.nil) {
			return "";
		}
		return $clone(t.nameOff(ut.pkgPath), name).name();
	};
	rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); };
	rtype.ptr.prototype.hasName = function() {
		var t;
		t = this;
		return !((((t.tflag & 4) >>> 0) === 0));
	};
	rtype.prototype.hasName = function() { return this.$val.hasName(); };
	rtype.ptr.prototype.Name = function() {
		var _1, i, s, sqBrackets, t;
		t = this;
		if (!t.hasName()) {
			return "";
		}
		s = t.String();
		i = s.length - 1 >> 0;
		sqBrackets = 0;
		while (true) {
			if (!(i >= 0 && (!((s.charCodeAt(i) === 46)) || !((sqBrackets === 0))))) { break; }
			_1 = s.charCodeAt(i);
			if (_1 === (93)) {
				sqBrackets = sqBrackets + (1) >> 0;
			} else if (_1 === (91)) {
				sqBrackets = sqBrackets - (1) >> 0;
			}
			i = i - (1) >> 0;
		}
		return $substring(s, (i + 1 >> 0));
	};
	rtype.prototype.Name = function() { return this.$val.Name(); };
	rtype.ptr.prototype.ChanDir = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 18))) {
			$panic(new $String("reflect: ChanDir of non-chan type " + t.String()));
		}
		tt = (t.kindType);
		return ((tt.dir >> 0));
	};
	rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); };
	rtype.ptr.prototype.IsVariadic = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: IsVariadic of non-func type " + t.String()));
		}
		tt = (t.kindType);
		return !((((tt.outCount & 32768) >>> 0) === 0));
	};
	rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); };
	rtype.ptr.prototype.Elem = function() {
		var _1, t, tt, tt$1, tt$2, tt$3, tt$4;
		t = this;
		_1 = t.Kind();
		if (_1 === (17)) {
			tt = (t.kindType);
			return toType(tt.elem);
		} else if (_1 === (18)) {
			tt$1 = (t.kindType);
			return toType(tt$1.elem);
		} else if (_1 === (21)) {
			tt$2 = (t.kindType);
			return toType(tt$2.elem);
		} else if (_1 === (22)) {
			tt$3 = (t.kindType);
			return toType(tt$3.elem);
		} else if (_1 === (23)) {
			tt$4 = (t.kindType);
			return toType(tt$4.elem);
		}
		$panic(new $String("reflect: Elem of invalid type " + t.String()));
	};
	rtype.prototype.Elem = function() { return this.$val.Elem(); };
	rtype.ptr.prototype.Field = function(i) {
		var i, t, tt;
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: Field of non-struct type " + t.String()));
		}
		tt = (t.kindType);
		return tt.Field(i);
	};
	rtype.prototype.Field = function(i) { return this.$val.Field(i); };
	rtype.ptr.prototype.FieldByIndex = function(index) {
		var {$24r, _r, index, t, tt, $s, $r, $c} = $restore(this, {index});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: FieldByIndex of non-struct type " + t.String()));
		}
		tt = (t.kindType);
		_r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.FieldByIndex, $c: true, $r, $24r, _r, index, t, tt, $s};return $f;
	};
	rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
	rtype.ptr.prototype.FieldByName = function(name$1) {
		var {$24r, _r, name$1, t, tt, $s, $r, $c} = $restore(this, {name$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: FieldByName of non-struct type " + t.String()));
		}
		tt = (t.kindType);
		_r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.FieldByName, $c: true, $r, $24r, _r, name$1, t, tt, $s};return $f;
	};
	rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
	rtype.ptr.prototype.FieldByNameFunc = function(match) {
		var {$24r, _r, match, t, tt, $s, $r, $c} = $restore(this, {match});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: FieldByNameFunc of non-struct type " + t.String()));
		}
		tt = (t.kindType);
		_r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.FieldByNameFunc, $c: true, $r, $24r, _r, match, t, tt, $s};return $f;
	};
	rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
	rtype.ptr.prototype.In = function(i) {
		var i, t, tt, x;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: In of non-func type " + t.String()));
		}
		tt = (t.kindType);
		return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
	};
	rtype.prototype.In = function(i) { return this.$val.In(i); };
	rtype.ptr.prototype.Key = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 21))) {
			$panic(new $String("reflect: Key of non-map type " + t.String()));
		}
		tt = (t.kindType);
		return toType(tt.key);
	};
	rtype.prototype.Key = function() { return this.$val.Key(); };
	rtype.ptr.prototype.Len = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 17))) {
			$panic(new $String("reflect: Len of non-array type " + t.String()));
		}
		tt = (t.kindType);
		return ((tt.len >> 0));
	};
	rtype.prototype.Len = function() { return this.$val.Len(); };
	rtype.ptr.prototype.NumField = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 25))) {
			$panic(new $String("reflect: NumField of non-struct type " + t.String()));
		}
		tt = (t.kindType);
		return tt.fields.$length;
	};
	rtype.prototype.NumField = function() { return this.$val.NumField(); };
	rtype.ptr.prototype.NumIn = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: NumIn of non-func type " + t.String()));
		}
		tt = (t.kindType);
		return ((tt.inCount >> 0));
	};
	rtype.prototype.NumIn = function() { return this.$val.NumIn(); };
	rtype.ptr.prototype.NumOut = function() {
		var t, tt;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: NumOut of non-func type " + t.String()));
		}
		tt = (t.kindType);
		return tt.out().$length;
	};
	rtype.prototype.NumOut = function() { return this.$val.NumOut(); };
	rtype.ptr.prototype.Out = function(i) {
		var i, t, tt, x;
		t = this;
		if (!((t.Kind() === 19))) {
			$panic(new $String("reflect: Out of non-func type " + t.String()));
		}
		tt = (t.kindType);
		return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])));
	};
	rtype.prototype.Out = function(i) { return this.$val.Out(i); };
	ChanDir.prototype.String = function() {
		var _1, d;
		d = this.$val;
		_1 = d;
		if (_1 === (2)) {
			return "chan<-";
		} else if (_1 === (1)) {
			return "<-chan";
		} else if (_1 === (3)) {
			return "chan";
		}
		return "ChanDir" + strconv.Itoa(((d >> 0)));
	};
	$ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); };
	interfaceType.ptr.prototype.Method = function(i) {
		var i, m, p, pname, t, x;
		m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		t = this;
		if (i < 0 || i >= t.methods.$length) {
			return m;
		}
		p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
		pname = $clone(t.rtype.nameOff(p.name), name);
		m.Name = $clone(pname, name).name();
		if (!$clone(pname, name).isExported()) {
			m.PkgPath = $clone(pname, name).pkgPath();
			if (m.PkgPath === "") {
				m.PkgPath = $clone(t.pkgPath, name).name();
			}
		}
		m.Type = toType(t.rtype.typeOff(p.typ));
		m.Index = i;
		return m;
	};
	interfaceType.prototype.Method = function(i) { return this.$val.Method(i); };
	interfaceType.ptr.prototype.NumMethod = function() {
		var t;
		t = this;
		return t.methods.$length;
	};
	interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); };
	interfaceType.ptr.prototype.MethodByName = function(name$1) {
		var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x;
		m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		ok = false;
		t = this;
		if (t === ptrType$10.nil) {
			return [m, ok];
		}
		p = ptrType$11.nil;
		_ref = t.methods;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
			if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) {
				_tmp = $clone(t.Method(i), Method);
				_tmp$1 = true;
				Method.copy(m, _tmp);
				ok = _tmp$1;
				return [m, ok];
			}
			_i++;
		}
		return [m, ok];
	};
	interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); };
	StructField.ptr.prototype.IsExported = function() {
		var f;
		f = this;
		return f.PkgPath === "";
	};
	StructField.prototype.IsExported = function() { return this.$val.IsExported(); };
	StructTag.prototype.Get = function(key) {
		var _tuple, key, tag, v;
		tag = this.$val;
		_tuple = new StructTag(tag).Lookup(key);
		v = _tuple[0];
		return v;
	};
	$ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); };
	StructTag.prototype.Lookup = function(key) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1;
		value = "";
		ok = false;
		tag = this.$val;
		while (true) {
			if (!(!(tag === ""))) { break; }
			i = 0;
			while (true) {
				if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; }
				i = i + (1) >> 0;
			}
			tag = $substring(tag, i);
			if (tag === "") {
				break;
			}
			i = 0;
			while (true) {
				if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; }
				i = i + (1) >> 0;
			}
			if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) {
				break;
			}
			name$1 = ($substring(tag, 0, i));
			tag = $substring(tag, (i + 1 >> 0));
			i = 1;
			while (true) {
				if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; }
				if (tag.charCodeAt(i) === 92) {
					i = i + (1) >> 0;
				}
				i = i + (1) >> 0;
			}
			if (i >= tag.length) {
				break;
			}
			qvalue = ($substring(tag, 0, (i + 1 >> 0)));
			tag = $substring(tag, (i + 1 >> 0));
			if (key === name$1) {
				_tuple = strconv.Unquote(qvalue);
				value$1 = _tuple[0];
				err = _tuple[1];
				if (!($interfaceIsEqual(err, $ifaceNil))) {
					break;
				}
				_tmp = value$1;
				_tmp$1 = true;
				value = _tmp;
				ok = _tmp$1;
				return [value, ok];
			}
		}
		_tmp$2 = "";
		_tmp$3 = false;
		value = _tmp$2;
		ok = _tmp$3;
		return [value, ok];
	};
	$ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); };
	structType.ptr.prototype.Field = function(i) {
		var f, i, p, t, tag, x;
		f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false);
		t = this;
		if (i < 0 || i >= t.fields.$length) {
			$panic(new $String("reflect: Field index out of bounds"));
		}
		p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
		f.Type = toType(p.typ);
		f.Name = $clone(p.name, name).name();
		f.Anonymous = p.embedded();
		if (!$clone(p.name, name).isExported()) {
			f.PkgPath = $clone(t.pkgPath, name).name();
		}
		tag = $clone(p.name, name).tag();
		if (!(tag === "")) {
			f.Tag = (tag);
		}
		f.Offset = p.offset();
		f.Index = new sliceType$6([i]);
		return f;
	};
	structType.prototype.Field = function(i) { return this.$val.Field(i); };
	structType.ptr.prototype.FieldByIndex = function(index) {
		var {_i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r, $c} = $restore(this, {index});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false);
		t = this;
		f.Type = toType(t.rtype);
		_ref = index;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			i = _i;
			x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			/* */ if (i > 0) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (i > 0) { */ case 3:
				ft = f.Type;
				_r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				if (!(_r === 22)) { _v = false; $s = 7; continue s; }
				_r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_v = _r$2 === 25; case 7:
				/* */ if (_v) { $s = 5; continue; }
				/* */ $s = 6; continue;
				/* if (_v) { */ case 5:
					_r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					ft = _r$3;
				/* } */ case 6:
				f.Type = ft;
			/* } */ case 4:
			_r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			StructField.copy(f, _r$4);
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return f;
		/* */ } return; } var $f = {$blk: structType.ptr.prototype.FieldByIndex, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s};return $f;
	};
	structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); };
	structType.ptr.prototype.FieldByNameFunc = function(match) {
		var {_entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r, $c} = $restore(this, {match});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false);
		ok = false;
		t = this;
		current = new sliceType$12([]);
		next = new sliceType$12([new fieldScan.ptr(t, sliceType$6.nil)]);
		nextCount = false;
		visited = $makeMap(ptrType$12.keyFor, []);
		/* while (true) { */ case 1:
			/* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; }
			_tmp = next;
			_tmp$1 = $subslice(current, 0, 0);
			current = _tmp;
			next = _tmp$1;
			count = nextCount;
			nextCount = false;
			_ref = current;
			_i = 0;
			/* while (true) { */ case 3:
				/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; }
				scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan);
				t$1 = scan.typ;
				if ((_entry = $mapIndex(visited,ptrType$12.keyFor(t$1)), _entry !== undefined ? _entry.v : false)) {
					_i++;
					/* continue; */ $s = 3; continue;
				}
				_key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key), { k: _key, v: true });
				_ref$1 = t$1.fields;
				_i$1 = 0;
				/* while (true) { */ case 5:
					/* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 6; continue; }
					i = _i$1;
					f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
					fname = $clone(f.name, name).name();
					ntyp = ptrType$1.nil;
					/* */ if (f.embedded()) { $s = 7; continue; }
					/* */ $s = 8; continue;
					/* if (f.embedded()) { */ case 7:
						ntyp = f.typ;
						/* */ if (ntyp.Kind() === 22) { $s = 9; continue; }
						/* */ $s = 10; continue;
						/* if (ntyp.Kind() === 22) { */ case 9:
							_r = ntyp.Elem().common(); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
							ntyp = _r;
						/* } */ case 10:
					/* } */ case 8:
					_r$1 = match(fname); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					/* */ if (_r$1) { $s = 12; continue; }
					/* */ $s = 13; continue;
					/* if (_r$1) { */ case 12:
						if ((_entry$1 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) {
							_tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false);
							_tmp$3 = false;
							StructField.copy(result, _tmp$2);
							ok = _tmp$3;
							$s = -1; return [result, ok];
						}
						StructField.copy(result, t$1.Field(i));
						result.Index = sliceType$6.nil;
						result.Index = $appendSlice(result.Index, scan.index);
						result.Index = $append(result.Index, i);
						ok = true;
						_i$1++;
						/* continue; */ $s = 5; continue;
					/* } */ case 13:
					if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) {
						_i$1++;
						/* continue; */ $s = 5; continue;
					}
					styp = (ntyp.kindType);
					if ((_entry$2 = $mapIndex(nextCount,ptrType$12.keyFor(styp)), _entry$2 !== undefined ? _entry$2.v : 0) > 0) {
						_key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$1), { k: _key$1, v: 2 });
						_i$1++;
						/* continue; */ $s = 5; continue;
					}
					if (nextCount === false) {
						nextCount = $makeMap(ptrType$12.keyFor, []);
					}
					_key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$2), { k: _key$2, v: 1 });
					if ((_entry$3 = $mapIndex(count,ptrType$12.keyFor(t$1)), _entry$3 !== undefined ? _entry$3.v : 0) > 1) {
						_key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$12.keyFor(_key$3), { k: _key$3, v: 2 });
					}
					index = sliceType$6.nil;
					index = $appendSlice(index, scan.index);
					index = $append(index, i);
					next = $append(next, new fieldScan.ptr(styp, index));
					_i$1++;
				$s = 5; continue;
				case 6:
				_i++;
			$s = 3; continue;
			case 4:
			if (ok) {
				/* break; */ $s = 2; continue;
			}
		$s = 1; continue;
		case 2:
		$s = -1; return [result, ok];
		/* */ } return; } var $f = {$blk: structType.ptr.prototype.FieldByNameFunc, $c: true, $r, _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s};return $f;
	};
	structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); };
	structType.ptr.prototype.FieldByName = function(name$1) {
		var {$24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r, $c} = $restore(this, {name$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		name$1 = [name$1];
		f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$6.nil, false);
		present = false;
		t = this;
		hasEmbeds = false;
		if (!(name$1[0] === "")) {
			_ref = t.fields;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				i = _i;
				tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
				if ($clone(tf.name, name).name() === name$1[0]) {
					_tmp = $clone(t.Field(i), StructField);
					_tmp$1 = true;
					StructField.copy(f, _tmp);
					present = _tmp$1;
					$s = -1; return [f, present];
				}
				if (tf.embedded()) {
					hasEmbeds = true;
				}
				_i++;
			}
		}
		if (!hasEmbeds) {
			$s = -1; return [f, present];
		}
		_r = t.FieldByNameFunc((function(name$1) { return function(s) {
			var s;
			return s === name$1[0];
		}; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		StructField.copy(f, _tuple[0]);
		present = _tuple[1];
		$24r = [f, present];
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: structType.ptr.prototype.FieldByName, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s};return $f;
	};
	structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); };
	PtrTo = function(t) {
		var t;
		return PointerTo(t);
	};
	$pkg.PtrTo = PtrTo;
	PointerTo = function(t) {
		var t;
		return $assertType(t, ptrType$1).ptrTo();
	};
	$pkg.PointerTo = PointerTo;
	rtype.ptr.prototype.Implements = function(u) {
		var {_r, t, u, $s, $r, $c} = $restore(this, {u});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if ($interfaceIsEqual(u, $ifaceNil)) {
			$panic(new $String("reflect: nil type passed to Type.Implements"));
		}
		_r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 20))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 20))) { */ case 1:
			$panic(new $String("reflect: non-interface type passed to Type.Implements"));
		/* } */ case 2:
		$s = -1; return implements$1($assertType(u, ptrType$1), t);
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Implements, $c: true, $r, _r, t, u, $s};return $f;
	};
	rtype.prototype.Implements = function(u) { return this.$val.Implements(u); };
	rtype.ptr.prototype.AssignableTo = function(u) {
		var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if ($interfaceIsEqual(u, $ifaceNil)) {
			$panic(new $String("reflect: nil type passed to Type.AssignableTo"));
		}
		uu = $assertType(u, ptrType$1);
		_r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r || implements$1(uu, t);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.AssignableTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f;
	};
	rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); };
	rtype.ptr.prototype.ConvertibleTo = function(u) {
		var {$24r, _r, t, u, uu, $s, $r, $c} = $restore(this, {u});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
		if ($interfaceIsEqual(u, $ifaceNil)) {
			$panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));
		}
		uu = $assertType(u, ptrType$1);
		_r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = !(_r === $throwNilPointerError);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.ConvertibleTo, $c: true, $r, $24r, _r, t, u, uu, $s};return $f;
	};
	rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); };
	implements$1 = function(T, V) {
		var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2;
		if (!((T.Kind() === 20))) {
			return false;
		}
		t = (T.kindType);
		if (t.methods.$length === 0) {
			return true;
		}
		if (V.Kind() === 20) {
			v = (V.kindType);
			i = 0;
			j = 0;
			while (true) {
				if (!(j < v.methods.$length)) { break; }
				tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
				tmName = $clone(t.rtype.nameOff(tm.name), name);
				vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j]));
				vmName = $clone(V.nameOff(vm.name), name);
				if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) {
					if (!$clone(tmName, name).isExported()) {
						tmPkgPath = $clone(tmName, name).pkgPath();
						if (tmPkgPath === "") {
							tmPkgPath = $clone(t.pkgPath, name).name();
						}
						vmPkgPath = $clone(vmName, name).pkgPath();
						if (vmPkgPath === "") {
							vmPkgPath = $clone(v.pkgPath, name).name();
						}
						if (!(tmPkgPath === vmPkgPath)) {
							j = j + (1) >> 0;
							continue;
						}
					}
					i = i + (1) >> 0;
					if (i >= t.methods.$length) {
						return true;
					}
				}
				j = j + (1) >> 0;
			}
			return false;
		}
		v$1 = V.uncommon();
		if (v$1 === ptrType$9.nil) {
			return false;
		}
		i$1 = 0;
		vmethods = v$1.methods();
		j$1 = 0;
		while (true) {
			if (!(j$1 < ((v$1.mcount >> 0)))) { break; }
			tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]));
			tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name);
			vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method);
			vmName$1 = $clone(V.nameOff(vm$1.name), name);
			if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) {
				if (!$clone(tmName$1, name).isExported()) {
					tmPkgPath$1 = $clone(tmName$1, name).pkgPath();
					if (tmPkgPath$1 === "") {
						tmPkgPath$1 = $clone(t.pkgPath, name).name();
					}
					vmPkgPath$1 = $clone(vmName$1, name).pkgPath();
					if (vmPkgPath$1 === "") {
						vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name();
					}
					if (!(tmPkgPath$1 === vmPkgPath$1)) {
						j$1 = j$1 + (1) >> 0;
						continue;
					}
				}
				i$1 = i$1 + (1) >> 0;
				if (i$1 >= t.methods.$length) {
					return true;
				}
			}
			j$1 = j$1 + (1) >> 0;
		}
		return false;
	};
	specialChannelAssignability = function(T, V) {
		var {$24r, T, V, _r, _v, $s, $r, $c} = $restore(this, {T, V});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (!((V.ChanDir() === 3) && (T.Name() === "" || V.Name() === ""))) { _v = false; $s = 1; continue s; }
		_r = haveIdenticalType(T.Elem(), V.Elem(), true); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_v = _r; case 1:
		$24r = _v;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: specialChannelAssignability, $c: true, $r, $24r, T, V, _r, _v, $s};return $f;
	};
	directlyAssignable = function(T, V) {
		var {$24r, T, V, _r, _r$1, _v, $s, $r, $c} = $restore(this, {T, V});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (T === V) {
			$s = -1; return true;
		}
		if (T.hasName() && V.hasName() || !((T.Kind() === V.Kind()))) {
			$s = -1; return false;
		}
		if (!(T.Kind() === 18)) { _v = false; $s = 3; continue s; }
		_r = specialChannelAssignability(T, V); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_v = _r; case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			$s = -1; return true;
		/* } */ case 2:
		_r$1 = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 6; case 6: return $24r;
		/* */ } return; } var $f = {$blk: directlyAssignable, $c: true, $r, $24r, T, V, _r, _r$1, _v, $s};return $f;
	};
	haveIdenticalType = function(T, V, cmpTags) {
		var {$24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s, $r, $c} = $restore(this, {T, V, cmpTags});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (cmpTags) {
			$s = -1; return $interfaceIsEqual(T, V);
		}
		_r = T.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = V.Name(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		if (!(_r === _r$1)) { _v$1 = true; $s = 4; continue s; }
		_r$2 = T.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_r$3 = V.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v$1 = !((_r$2 === _r$3)); case 4:
		if (_v$1) { _v = true; $s = 3; continue s; }
		_r$4 = T.PkgPath(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_r$5 = V.PkgPath(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_v = !(_r$4 === _r$5); case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			$s = -1; return false;
		/* } */ case 2:
		_r$6 = T.common(); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg = _r$6;
		_r$7 = V.common(); /* */ $s = 12; case 12: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$1 = _r$7;
		_r$8 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		$24r = _r$8;
		$s = 14; case 14: return $24r;
		/* */ } return; } var $f = {$blk: haveIdenticalType, $c: true, $r, $24r, T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _v, _v$1, cmpTags, $s};return $f;
	};
	haveIdenticalUnderlyingType = function(T, V, cmpTags) {
		var {$24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r, $c} = $restore(this, {T, V, cmpTags});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (T === V) {
			$s = -1; return true;
		}
		kind = T.Kind();
		if (!((kind === V.Kind()))) {
			$s = -1; return false;
		}
		if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) {
			$s = -1; return true;
		}
			_1 = kind;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (18)) { $s = 3; continue; }
			/* */ if (_1 === (19)) { $s = 4; continue; }
			/* */ if (_1 === (20)) { $s = 5; continue; }
			/* */ if (_1 === (21)) { $s = 6; continue; }
			/* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; }
			/* */ if (_1 === (25)) { $s = 8; continue; }
			/* */ $s = 9; continue;
			/* if (_1 === (17)) { */ case 2:
				if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; }
				_r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_v = _r; case 10:
				$24r = _v;
				$s = 12; case 12: return $24r;
			/* } else if (_1 === (18)) { */ case 3:
				if (!(V.ChanDir() === T.ChanDir())) { _v$1 = false; $s = 13; continue s; }
				_r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_v$1 = _r$1; case 13:
				$24r$1 = _v$1;
				$s = 15; case 15: return $24r$1;
			/* } else if (_1 === (19)) { */ case 4:
				t = (T.kindType);
				v = (V.kindType);
				if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) {
					$s = -1; return false;
				}
				i = 0;
				/* while (true) { */ case 16:
					/* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 17; continue; }
					_r$2 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					/* */ if (!_r$2) { $s = 18; continue; }
					/* */ $s = 19; continue;
					/* if (!_r$2) { */ case 18:
						$s = -1; return false;
					/* } */ case 19:
					i = i + (1) >> 0;
				$s = 16; continue;
				case 17:
				i$1 = 0;
				/* while (true) { */ case 21:
					/* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 22; continue; }
					_r$3 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					/* */ if (!_r$3) { $s = 23; continue; }
					/* */ $s = 24; continue;
					/* if (!_r$3) { */ case 23:
						$s = -1; return false;
					/* } */ case 24:
					i$1 = i$1 + (1) >> 0;
				$s = 21; continue;
				case 22:
				$s = -1; return true;
			/* } else if (_1 === (20)) { */ case 5:
				t$1 = (T.kindType);
				v$1 = (V.kindType);
				if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) {
					$s = -1; return true;
				}
				$s = -1; return false;
			/* } else if (_1 === (21)) { */ case 6:
				_r$4 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				if (!(_r$4)) { _v$2 = false; $s = 26; continue s; }
				_r$5 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 28; case 28: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				_v$2 = _r$5; case 26:
				$24r$2 = _v$2;
				$s = 29; case 29: return $24r$2;
			/* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7:
				_r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				$24r$3 = _r$6;
				$s = 31; case 31: return $24r$3;
			/* } else if (_1 === (25)) { */ case 8:
				t$2 = (T.kindType);
				v$2 = (V.kindType);
				if (!((t$2.fields.$length === v$2.fields.$length))) {
					$s = -1; return false;
				}
				if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) {
					$s = -1; return false;
				}
				_ref = t$2.fields;
				_i = 0;
				/* while (true) { */ case 32:
					/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; }
					i$2 = _i;
					tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2]));
					vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2]));
					if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) {
						$s = -1; return false;
					}
					_r$7 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					/* */ if (!_r$7) { $s = 34; continue; }
					/* */ $s = 35; continue;
					/* if (!_r$7) { */ case 34:
						$s = -1; return false;
					/* } */ case 35:
					if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) {
						$s = -1; return false;
					}
					if (!((tf.offsetEmbed === vf.offsetEmbed))) {
						$s = -1; return false;
					}
					_i++;
				$s = 32; continue;
				case 33:
				$s = -1; return true;
			/* } */ case 9:
		case 1:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: haveIdenticalUnderlyingType, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _v, _v$1, _v$2, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s};return $f;
	};
	toType = function(t) {
		var t;
		if (t === ptrType$1.nil) {
			return $ifaceNil;
		}
		return t;
	};
	ifaceIndir = function(t) {
		var t;
		return ((t.kind & 32) >>> 0) === 0;
	};
	methodValueCallCodePtr = function() {
		var {$24r, _r, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = abi.FuncPCABI0(new funcType$2(methodValueCall)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: methodValueCallCodePtr, $c: true, $r, $24r, _r, $s};return $f;
	};
	methodValueCall = function() {
		$throwRuntimeError("native function not implemented: reflect.methodValueCall");
	};
	init = function() {
		var {used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		used = (function(i) {
			var i;
		});
		$r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$11.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$14.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), new name.ptr(ptrType$13.nil), sliceType$15.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = used((x$12 = new structField.ptr(new name.ptr(ptrType$13.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		initialized = true;
		uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: init, $c: true, $r, used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f;
	};
	New = function(typ) {
		var fl, pt, ptr, t, typ;
		if ($interfaceIsEqual(typ, $ifaceNil)) {
			$panic(new $String("reflect: New(nil)"));
		}
		t = $assertType(typ, ptrType$1);
		pt = t.ptrTo();
		ptr = unsafe_New(t);
		fl = 22;
		return new Value.ptr(pt, ptr, fl);
	};
	$pkg.New = New;
	jsType = function(typ) {
		var typ;
		return typ.jsType;
	};
	reflectType = function(typ) {
		var _1, _i, _i$1, _i$2, _i$3, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount;
		if (typ.reflectType === undefined) {
			rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), $throwNilPointerError, ptrType$13.nil, resolveReflectName($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0);
			rt.jsType = typ;
			typ.reflectType = rt;
			methodSet = $methodSet(typ);
			if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) {
				rt.tflag = (rt.tflag | (1)) >>> 0;
				if (!!(typ.named)) {
					rt.tflag = (rt.tflag | (4)) >>> 0;
				}
				reflectMethods = sliceType$11.nil;
				i = 0;
				while (true) {
					if (!(i < $parseInt(methodSet.length))) { break; }
					m = methodSet[i];
					exported = internalStr(m.pkg) === "";
					if (!exported) {
						i = i + (1) >> 0;
						continue;
					}
					reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m), name)), newTypeOff(reflectType(m.typ)), 0, 0));
					i = i + (1) >> 0;
				}
				xcount = ((reflectMethods.$length << 16 >>> 16));
				i$1 = 0;
				while (true) {
					if (!(i$1 < $parseInt(methodSet.length))) { break; }
					m$1 = methodSet[i$1];
					exported$1 = internalStr(m$1.pkg) === "";
					if (exported$1) {
						i$1 = i$1 + (1) >> 0;
						continue;
					}
					reflectMethods = $append(reflectMethods, new method.ptr(resolveReflectName($clone(newMethodName(m$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0));
					i$1 = i$1 + (1) >> 0;
				}
				ut = new uncommonType.ptr(resolveReflectName($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods);
				ut.jsType = typ;
				rt.uncommonType = ut;
			}
			_1 = rt.Kind();
			if (_1 === (17)) {
				setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0))));
			} else if (_1 === (18)) {
				dir = 3;
				if (!!(typ.sendOnly)) {
					dir = 2;
				}
				if (!!(typ.recvOnly)) {
					dir = 1;
				}
				setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0))));
			} else if (_1 === (19)) {
				params = typ.params;
				in$1 = $makeSlice(sliceType$2, $parseInt(params.length));
				_ref = in$1;
				_i = 0;
				while (true) {
					if (!(_i < _ref.$length)) { break; }
					i$2 = _i;
					((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2]));
					_i++;
				}
				results = typ.results;
				out = $makeSlice(sliceType$2, $parseInt(results.length));
				_ref$1 = out;
				_i$1 = 0;
				while (true) {
					if (!(_i$1 < _ref$1.$length)) { break; }
					i$3 = _i$1;
					((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3]));
					_i$1++;
				}
				outCount = (($parseInt(results.length) << 16 >>> 16));
				if (!!(typ.variadic)) {
					outCount = (outCount | (32768)) >>> 0;
				}
				setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out));
			} else if (_1 === (20)) {
				methods = typ.methods;
				imethods = $makeSlice(sliceType$14, $parseInt(methods.length));
				_ref$2 = imethods;
				_i$2 = 0;
				while (true) {
					if (!(_i$2 < _ref$2.$length)) { break; }
					i$4 = _i$2;
					m$2 = methods[i$4];
					imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(resolveReflectName($clone(newMethodName(m$2), name)), newTypeOff(reflectType(m$2.typ))));
					_i$2++;
				}
				setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods));
			} else if (_1 === (21)) {
				setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, $throwNilPointerError, 0, 0, 0, 0));
			} else if (_1 === (22)) {
				setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem)));
			} else if (_1 === (23)) {
				setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0), reflectType(typ.elem)));
			} else if (_1 === (25)) {
				fields = typ.fields;
				reflectFields = $makeSlice(sliceType$15, $parseInt(fields.length));
				_ref$3 = reflectFields;
				_i$3 = 0;
				while (true) {
					if (!(_i$3 < _ref$3.$length)) { break; }
					i$5 = _i$3;
					f = fields[i$5];
					offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0;
					if (!!(f.embedded)) {
						offsetEmbed = (offsetEmbed | (1)) >>> 0;
					}
					structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed));
					_i$3++;
				}
				setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields));
			}
		}
		return ((typ.reflectType));
	};
	setKindType = function(rt, kindType) {
		var kindType, rt;
		rt.kindType = kindType;
		kindType.rtype = rt;
	};
	uncommonType.ptr.prototype.methods = function() {
		var t;
		t = this;
		return t._methods;
	};
	uncommonType.prototype.methods = function() { return this.$val.methods(); };
	uncommonType.ptr.prototype.exportedMethods = function() {
		var t;
		t = this;
		return $subslice(t._methods, 0, t.xcount, t.xcount);
	};
	uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); };
	rtype.ptr.prototype.uncommon = function() {
		var obj, t;
		t = this;
		obj = t.uncommonType;
		if (obj === undefined) {
			return ptrType$9.nil;
		}
		return ((obj));
	};
	rtype.prototype.uncommon = function() { return this.$val.uncommon(); };
	funcType.ptr.prototype.in$ = function() {
		var t;
		t = this;
		return t._in;
	};
	funcType.prototype.in$ = function() { return this.$val.in$(); };
	funcType.ptr.prototype.out = function() {
		var t;
		t = this;
		return t._out;
	};
	funcType.prototype.out = function() { return this.$val.out(); };
	name.ptr.prototype.name = function() {
		var _entry, n, s;
		s = "";
		n = this;
		s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).name;
		return s;
	};
	name.prototype.name = function() { return this.$val.name(); };
	name.ptr.prototype.tag = function() {
		var _entry, n, s;
		s = "";
		n = this;
		s = (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).tag;
		return s;
	};
	name.prototype.tag = function() { return this.$val.tag(); };
	name.ptr.prototype.pkgPath = function() {
		var _entry, n;
		n = this;
		return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).pkgPath;
	};
	name.prototype.pkgPath = function() { return this.$val.pkgPath(); };
	name.ptr.prototype.isExported = function() {
		var _entry, n;
		n = this;
		return (_entry = $mapIndex(nameMap,ptrType$13.keyFor(n.bytes)), _entry !== undefined ? _entry.v : ptrType$17.nil).exported;
	};
	name.prototype.isExported = function() { return this.$val.isExported(); };
	newName = function(n, tag, exported) {
		var _key, b, exported, n, tag;
		b = $newDataPointer(0, ptrType$13);
		_key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(n, tag, exported, "") });
		return new name.ptr(b);
	};
	newMethodName = function(m) {
		var _key, b, m;
		b = $newDataPointer(0, ptrType$13);
		_key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map")).set(ptrType$13.keyFor(_key), { k: _key, v: new nameData.ptr(internalStr(m.name), "", internalStr(m.pkg) === "", internalStr(m.pkg)) });
		return new name.ptr(b);
	};
	rtype.ptr.prototype.nameOff = function(off) {
		var off, t, x;
		t = this;
		return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x]));
	};
	rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); };
	resolveReflectName = function(n) {
		var i, n;
		i = nameOffList.$length;
		nameOffList = $append(nameOffList, n);
		return ((i >> 0));
	};
	rtype.ptr.prototype.typeOff = function(off) {
		var off, t, x;
		t = this;
		return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x]));
	};
	rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); };
	newTypeOff = function(t) {
		var i, t;
		i = typeOffList.$length;
		typeOffList = $append(typeOffList, t);
		return ((i >> 0));
	};
	internalStr = function(strObj) {
		var c, strObj;
		c = new structType$3.ptr("");
		c.str = strObj;
		return c.str;
	};
	isWrapped = function(typ) {
		var typ;
		return !!(jsType(typ).wrapped);
	};
	copyStruct = function(dst, src, typ) {
		var dst, fields, i, prop, src, typ;
		fields = jsType(typ).fields;
		i = 0;
		while (true) {
			if (!(i < $parseInt(fields.length))) { break; }
			prop = $internalize(fields[i].prop, $String);
			dst[$externalize(prop, $String)] = src[$externalize(prop, $String)];
			i = i + (1) >> 0;
		}
	};
	makeValue = function(t, v, fl) {
		var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r, $c} = $restore(this, {t, v, fl});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		rt = _r;
		_r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; }
		_r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_v$1 = _r$2 === 25; case 5:
		if (_v$1) { _v = true; $s = 4; continue s; }
		_r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = _r$3 === 22; case 4:
		/* */ if (_v) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (_v) { */ case 2:
			_r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			$24r = new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0);
			$s = 10; case 10: return $24r;
		/* } */ case 3:
		_r$5 = t.Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		$24r$1 = new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0);
		$s = 12; case 12: return $24r$1;
		/* */ } return; } var $f = {$blk: makeValue, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s};return $f;
	};
	MakeSlice = function(typ, len, cap) {
		var {$24r, _r, _r$1, cap, len, typ, $s, $r, $c} = $restore(this, {typ, len, cap});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		typ = [typ];
		_r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 23))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 23))) { */ case 1:
			$panic(new $String("reflect.MakeSlice of non-slice type"));
		/* } */ case 2:
		if (len < 0) {
			$panic(new $String("reflect.MakeSlice: negative len"));
		}
		if (cap < 0) {
			$panic(new $String("reflect.MakeSlice: negative cap"));
		}
		if (len > cap) {
			$panic(new $String("reflect.MakeSlice: len > cap"));
		}
		_r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() {
			var {$24r, _r$1, _r$2, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			$24r = _r$2.zero();
			$s = 3; case 3: return $24r;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _r$1, _r$2, $s};return $f;
		}; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 5; case 5: return $24r;
		/* */ } return; } var $f = {$blk: MakeSlice, $c: true, $r, $24r, _r, _r$1, cap, len, typ, $s};return $f;
	};
	$pkg.MakeSlice = MakeSlice;
	TypeOf = function(i) {
		var i;
		if (!initialized) {
			return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, $throwNilPointerError, ptrType$13.nil, 0, 0);
		}
		if ($interfaceIsEqual(i, $ifaceNil)) {
			return $ifaceNil;
		}
		return reflectType(i.constructor);
	};
	$pkg.TypeOf = TypeOf;
	ValueOf = function(i) {
		var {$24r, _r, i, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if ($interfaceIsEqual(i, $ifaceNil)) {
			$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		}
		_r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: ValueOf, $c: true, $r, $24r, _r, i, $s};return $f;
	};
	$pkg.ValueOf = ValueOf;
	FuncOf = function(in$1, out, variadic) {
		var {_i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r, $c} = $restore(this, {in$1, out, variadic});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (!(variadic)) { _v = false; $s = 3; continue s; }
		if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; }
		_r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_v$1 = !((_r === 23)); case 4:
		_v = _v$1; case 3:
		/* */ if (_v) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_v) { */ case 1:
			$panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));
		/* } */ case 2:
		jsIn = $makeSlice(sliceType$16, in$1.$length);
		_ref = in$1;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v));
			_i++;
		}
		jsOut = $makeSlice(sliceType$16, out.$length);
		_ref$1 = out;
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.$length)) { break; }
			i$1 = _i$1;
			v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
			((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1));
			_i$1++;
		}
		$s = -1; return reflectType($funcType($externalize(jsIn, sliceType$16), $externalize(jsOut, sliceType$16), $externalize(variadic, $Bool)));
		/* */ } return; } var $f = {$blk: FuncOf, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s};return $f;
	};
	$pkg.FuncOf = FuncOf;
	rtype.ptr.prototype.ptrTo = function() {
		var t;
		t = this;
		return reflectType($ptrType(jsType(t)));
	};
	rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); };
	SliceOf = function(t) {
		var t;
		return reflectType($sliceType(jsType(t)));
	};
	$pkg.SliceOf = SliceOf;
	Zero = function(typ) {
		var {$24r, _r, typ, $s, $r, $c} = $restore(this, {typ});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Zero, $c: true, $r, $24r, _r, typ, $s};return $f;
	};
	$pkg.Zero = Zero;
	unsafe_New = function(typ) {
		var _1, typ;
		_1 = typ.Kind();
		if (_1 === (25)) {
			return (new (jsType(typ).ptr)());
		} else if (_1 === (17)) {
			return (jsType(typ).zero());
		} else {
			return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo())));
		}
	};
	makeInt = function(f, bits, t) {
		var {_1, _r, bits, f, ptr, t, typ, $s, $r, $c} = $restore(this, {f, bits, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		typ = _r;
		ptr = unsafe_New(typ);
		_1 = typ.Kind();
		if (_1 === (3)) {
			(ptr).$set(((bits.$low << 24 >> 24)));
		} else if (_1 === (4)) {
			(ptr).$set(((bits.$low << 16 >> 16)));
		} else if ((_1 === (2)) || (_1 === (5))) {
			(ptr).$set(((bits.$low >> 0)));
		} else if (_1 === (6)) {
			(ptr).$set((new $Int64(bits.$high, bits.$low)));
		} else if (_1 === (8)) {
			(ptr).$set(((bits.$low << 24 >>> 24)));
		} else if (_1 === (9)) {
			(ptr).$set(((bits.$low << 16 >>> 16)));
		} else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) {
			(ptr).$set(((bits.$low >>> 0)));
		} else if (_1 === (11)) {
			(ptr).$set((bits));
		}
		$s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0);
		/* */ } return; } var $f = {$blk: makeInt, $c: true, $r, _1, _r, bits, f, ptr, t, typ, $s};return $f;
	};
	typedmemmove = function(t, dst, src) {
		var dst, src, t;
		dst.$set(src.$get());
	};
	keyFor = function(t, key) {
		var k, key, kv, t;
		kv = key;
		if (!(kv.$get === undefined)) {
			kv = kv.$get();
		}
		k = jsType(t.Key()).keyFor(kv);
		return [kv, k];
	};
	mapaccess = function(t, m, key) {
		var _tuple, entry, k, key, m, t;
		if (!!!(m)) {
			return 0;
		}
		_tuple = keyFor(t, key);
		k = _tuple[1];
		entry = m.get(k);
		if (entry === undefined) {
			return 0;
		}
		return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem()))));
	};
	mapassign = function(t, m, key, val) {
		var {_r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r, $c} = $restore(this, {t, m, key, val});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_tuple = keyFor(t, key);
		kv = _tuple[0];
		k = _tuple[1];
		jsVal = val.$get();
		et = t.Elem();
		_r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (_r === 25) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_r === 25) { */ case 1:
			newVal = jsType(et).zero();
			copyStruct(newVal, jsVal, et);
			jsVal = newVal;
		/* } */ case 2:
		entry = new ($global.Object)();
		entry.k = kv;
		entry.v = jsVal;
		m.set(k, entry);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: mapassign, $c: true, $r, _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s};return $f;
	};
	mapdelete = function(t, m, key) {
		var _tuple, k, key, m, t;
		_tuple = keyFor(t, key);
		k = _tuple[1];
		if (!!!(m)) {
			return;
		}
		m.delete(k);
	};
	mapaccess_faststr = function(t, m, key) {
		var key, key$24ptr, m, t, val;
		val = 0;
		val = mapaccess(t, m, ((key$24ptr || (key$24ptr = new ptrType$18(function() { return key; }, function($v) { key = $v; })))));
		return val;
	};
	mapassign_faststr = function(t, m, key, val) {
		var {key, m, t, val, $s, $r, $c} = $restore(this, {t, m, key, val});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		key = [key];
		$r = mapassign(t, m, ((key.$ptr || (key.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, key)))), val); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: mapassign_faststr, $c: true, $r, key, m, t, val, $s};return $f;
	};
	mapdelete_faststr = function(t, m, key) {
		var key, key$24ptr, m, t;
		mapdelete(t, m, ((key$24ptr || (key$24ptr = new ptrType$18(function() { return key; }, function($v) { key = $v; })))));
	};
	hiter.ptr.prototype.skipUntilValidKey = function() {
		var entry, iter, k;
		iter = this;
		while (true) {
			if (!(iter.i < $parseInt(iter.keys.length))) { break; }
			k = iter.keys[iter.i];
			entry = iter.m.get(k);
			if (!(entry === undefined)) {
				break;
			}
			iter.i = iter.i + (1) >> 0;
		}
	};
	hiter.prototype.skipUntilValidKey = function() { return this.$val.skipUntilValidKey(); };
	mapiterinit = function(t, m, it) {
		var it, keys, keysIter, m, mapObj, t;
		mapObj = m;
		keys = new ($global.Array)();
		if (!(mapObj.keys === undefined)) {
			keysIter = mapObj.keys();
			if (!(mapObj.keys === undefined)) {
				keys = $global.Array.from(keysIter);
			}
		}
		hiter.copy(it, new hiter.ptr(t, mapObj, keys, 0, null));
	};
	mapiterkey = function(it) {
		var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		kv = null;
		if (!(it.last === null)) {
			kv = it.last;
		} else {
			it.skipUntilValidKey();
			if (it.i === $parseInt(it.keys.length)) {
				$s = -1; return 0;
			}
			k = it.keys[it.i];
			kv = it.m.get(k);
			it.last = kv;
		}
		_r = it.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = ($newDataPointer(kv.k, _r$2));
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: mapiterkey, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f;
	};
	mapiterelem = function(it) {
		var {$24r, _r, _r$1, _r$2, it, k, kv, $s, $r, $c} = $restore(this, {it});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		kv = null;
		if (!(it.last === null)) {
			kv = it.last;
		} else {
			it.skipUntilValidKey();
			if (it.i === $parseInt(it.keys.length)) {
				$s = -1; return 0;
			}
			k = it.keys[it.i];
			kv = it.m.get(k);
			it.last = kv;
		}
		_r = it.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = ($newDataPointer(kv.v, _r$2));
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: mapiterelem, $c: true, $r, $24r, _r, _r$1, _r$2, it, k, kv, $s};return $f;
	};
	mapiternext = function(it) {
		var it;
		it.last = null;
		it.i = it.i + (1) >> 0;
	};
	maplen = function(m) {
		var m;
		return $parseInt(m.size) >> 0;
	};
	cvtDirect = function(v, typ) {
		var {$24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r, $c} = $restore(this, {v, typ});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		srcVal = $clone(v, Value).object();
		/* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (srcVal === jsType(v.typ).nil) { */ case 1:
			_r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		val = null;
			_r$1 = typ.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			k = _r$1;
			_1 = k;
			/* */ if (_1 === (23)) { $s = 7; continue; }
			/* */ if (_1 === (22)) { $s = 8; continue; }
			/* */ if (_1 === (25)) { $s = 9; continue; }
			/* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_1 === (23)) { */ case 7:
				slice = new (jsType(typ))(srcVal.$array);
				slice.$offset = srcVal.$offset;
				slice.$length = srcVal.$length;
				slice.$capacity = srcVal.$capacity;
				val = $newDataPointer(slice, jsType(PtrTo(typ)));
				$s = 12; continue;
			/* } else if (_1 === (22)) { */ case 8:
					_r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					_r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					_2 = _r$3;
					/* */ if (_2 === (25)) { $s = 16; continue; }
					/* */ if (_2 === (17)) { $s = 17; continue; }
					/* */ $s = 18; continue;
					/* if (_2 === (25)) { */ case 16:
						_r$4 = typ.Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
						/* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 20; continue; }
						/* */ $s = 21; continue;
						/* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 20:
							val = srcVal;
							/* break; */ $s = 13; continue;
						/* } */ case 21:
						val = new (jsType(typ))();
						_arg = val;
						_arg$1 = srcVal;
						_r$5 = typ.Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
						_arg$2 = _r$5;
						$r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						$s = 19; continue;
					/* } else if (_2 === (17)) { */ case 17:
						val = srcVal;
						$s = 19; continue;
					/* } else { */ case 18:
						val = new (jsType(typ))(srcVal.$get, srcVal.$set);
					/* } */ case 19:
				case 13:
				$s = 12; continue;
			/* } else if (_1 === (25)) { */ case 9:
				val = new (jsType(typ).ptr)();
				copyStruct(val, srcVal, typ);
				$s = 12; continue;
			/* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24)) || (_1 === (26))) { */ case 10:
				val = v.ptr;
				$s = 12; continue;
			/* } else { */ case 11:
				$panic(new ValueError.ptr("reflect.Convert", k));
			/* } */ case 12:
		case 5:
		_r$6 = typ.common(); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_r$7 = typ.Kind(); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		$24r$1 = new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0);
		$s = 27; case 27: return $24r$1;
		/* */ } return; } var $f = {$blk: cvtDirect, $c: true, $r, $24r, $24r$1, _1, _2, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s};return $f;
	};
	cvtSliceArrayPtr = function(v, t) {
		var {$24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s, $r, $c} = $restore(this, {v, t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		slice = $clone(v, Value).object();
		slen = $parseInt(slice.$length) >> 0;
		_r = t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = _r.Len(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		alen = _r$1;
		if (alen > slen) {
			$panic(new $String("reflect: cannot convert slice with length " + itoa.Itoa(slen) + " to pointer to array with length " + itoa.Itoa(alen)));
		}
		array = $sliceToGoArray(slice, jsType(t));
		_r$2 = t.common(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = new Value.ptr(_r$2, (array), (((v.flag & ~415) >>> 0) | 22) >>> 0);
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: cvtSliceArrayPtr, $c: true, $r, $24r, _r, _r$1, _r$2, alen, array, slen, slice, t, v, $s};return $f;
	};
	methodReceiver = function(op, v, i) {
		var _$49, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x;
		_$49 = ptrType$1.nil;
		t = ptrType$19.nil;
		fn = 0;
		prop = "";
		if (v.typ.Kind() === 20) {
			tt = (v.typ.kindType);
			if (i < 0 || i >= tt.methods.$length) {
				$panic(new $String("reflect: internal error: invalid method index"));
			}
			m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
			if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) {
				$panic(new $String("reflect: " + op + " of unexported method"));
			}
			t = (tt.rtype.typeOff(m.typ).kindType);
			prop = $clone(tt.rtype.nameOff(m.name), name).name();
		} else {
			ms = v.typ.exportedMethods();
			if (((i >>> 0)) >= ((ms.$length >>> 0))) {
				$panic(new $String("reflect: internal error: invalid method index"));
			}
			m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method);
			if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) {
				$panic(new $String("reflect: " + op + " of unexported method"));
			}
			t = (v.typ.typeOff(m$1.mtyp).kindType);
			prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String);
		}
		rcvr = $clone(v, Value).object();
		if (isWrapped(v.typ)) {
			rcvr = new (jsType(v.typ))(rcvr);
		}
		fn = (rcvr[$externalize(prop, $String)]);
		return [_$49, t, fn];
	};
	valueInterface = function(v, safe) {
		var {_r, cv, safe, v, $s, $r, $c} = $restore(this, {v, safe});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (v.flag === 0) {
			$panic(new ValueError.ptr("reflect.Value.Interface", 0));
		}
		if (safe && !((((v.flag & 96) >>> 0) === 0))) {
			$panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));
		}
		/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
			_r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			v = _r;
		/* } */ case 2:
		if (isWrapped(v.typ)) {
			if (!((((v.flag & 128) >>> 0) === 0)) && ($clone(v, Value).Kind() === 25)) {
				cv = jsType(v.typ).zero();
				copyStruct(cv, $clone(v, Value).object(), v.typ);
				$s = -1; return ((new (jsType(v.typ))(cv)));
			}
			$s = -1; return ((new (jsType(v.typ))($clone(v, Value).object())));
		}
		$s = -1; return (($clone(v, Value).object()));
		/* */ } return; } var $f = {$blk: valueInterface, $c: true, $r, _r, cv, safe, v, $s};return $f;
	};
	ifaceE2I = function(t, src, dst) {
		var dst, src, t;
		dst.$set(src);
	};
	makeMethodValue = function(op, v) {
		var {$24r, _r, _tuple, fn, fv, op, rcvr, v, $s, $r, $c} = $restore(this, {op, v});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fn = [fn];
		rcvr = [rcvr];
		if (((v.flag & 512) >>> 0) === 0) {
			$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));
		}
		_tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0);
		fn[0] = _tuple[2];
		rcvr[0] = $clone(v, Value).object();
		if (isWrapped(v.typ)) {
			rcvr[0] = new (jsType(v.typ))(rcvr[0]);
		}
		fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) {
			var arguments$1, this$1;
			return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$16)));
		}; })(fn, rcvr));
		_r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: makeMethodValue, $c: true, $r, $24r, _r, _tuple, fn, fv, op, rcvr, v, $s};return $f;
	};
	rtype.ptr.prototype.pointers = function() {
		var _1, t;
		t = this;
		_1 = t.Kind();
		if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) {
			return true;
		} else {
			return false;
		}
	};
	rtype.prototype.pointers = function() { return this.$val.pointers(); };
	rtype.ptr.prototype.Comparable = function() {
		var {$24r, _1, _r, _r$1, i, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = this;
			_1 = t.Kind();
			/* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; }
			/* */ if (_1 === (17)) { $s = 3; continue; }
			/* */ if (_1 === (25)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2:
				$s = -1; return false;
			/* } else if (_1 === (17)) { */ case 3:
				_r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 7; case 7: return $24r;
			/* } else if (_1 === (25)) { */ case 4:
				i = 0;
				/* while (true) { */ case 8:
					/* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 9; continue; }
					_r$1 = t.Field(i).Type.Comparable(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					/* */ if (!_r$1) { $s = 10; continue; }
					/* */ $s = 11; continue;
					/* if (!_r$1) { */ case 10:
						$s = -1; return false;
					/* } */ case 11:
					i = i + (1) >> 0;
				$s = 8; continue;
				case 9:
			/* } */ case 5:
		case 1:
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Comparable, $c: true, $r, $24r, _1, _r, _r$1, i, t, $s};return $f;
	};
	rtype.prototype.Comparable = function() { return this.$val.Comparable(); };
	rtype.ptr.prototype.Method = function(i) {
		var {_i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		prop = [prop];
		m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0);
		t = this;
		if (t.Kind() === 20) {
			tt = (t.kindType);
			Method.copy(m, tt.Method(i));
			$s = -1; return m;
		}
		methods = t.exportedMethods();
		if (i < 0 || i >= methods.$length) {
			$panic(new $String("reflect: Method index out of range"));
		}
		p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method);
		pname = $clone(t.nameOff(p.name), name);
		m.Name = $clone(pname, name).name();
		fl = 19;
		mtyp = t.typeOff(p.mtyp);
		ft = (mtyp.kindType);
		in$1 = $makeSlice(sliceType$17, 0, (1 + ft.in$().$length >> 0));
		in$1 = $append(in$1, t);
		_ref = ft.in$();
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			in$1 = $append(in$1, arg);
			_i++;
		}
		out = $makeSlice(sliceType$17, 0, ft.out().$length);
		_ref$1 = ft.out();
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.$length)) { break; }
			ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
			out = $append(out, ret);
			_i$1++;
		}
		_r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		mt = _r;
		m.Type = mt;
		prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String);
		fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) {
			var arguments$1, rcvr, this$1;
			rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]);
			return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$16)));
		}; })(prop));
		m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl);
		m.Index = i;
		Method.copy(m, m);
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: rtype.ptr.prototype.Method, $c: true, $r, _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s};return $f;
	};
	rtype.prototype.Method = function(i) { return this.$val.Method(i); };
	Value.ptr.prototype.object = function() {
		var _1, newVal, v, val;
		v = this;
		if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) {
			return v.ptr;
		}
		if (!((((v.flag & 128) >>> 0) === 0))) {
			val = v.ptr.$get();
			if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) {
				switch (0) { default:
					_1 = v.typ.Kind();
					if ((_1 === (11)) || (_1 === (6))) {
						val = new (jsType(v.typ))(val.$high, val.$low);
					} else if ((_1 === (15)) || (_1 === (16))) {
						val = new (jsType(v.typ))(val.$real, val.$imag);
					} else if (_1 === (23)) {
						if (val === val.constructor.nil) {
							val = jsType(v.typ).nil;
							break;
						}
						newVal = new (jsType(v.typ))(val.$array);
						newVal.$offset = val.$offset;
						newVal.$length = val.$length;
						newVal.$capacity = val.$capacity;
						val = newVal;
					}
				}
			}
			return val;
		}
		return v.ptr;
	};
	Value.prototype.object = function() { return this.$val.object(); };
	Value.ptr.prototype.assignTo = function(context, dst, target) {
		var {_r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r, $c} = $restore(this, {context, dst, target});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		/* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1:
			_r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			v = _r;
		/* } */ case 2:
			_r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (_r$1) { $s = 5; continue; }
			/* */ if (implements$1(dst, v.typ)) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (_r$1) { */ case 5:
				fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0;
				fl = (fl | (((dst.Kind() >>> 0)))) >>> 0;
				$s = -1; return new Value.ptr(dst, v.ptr, fl);
			/* } else if (implements$1(dst, v.typ)) { */ case 6:
				if (target === 0) {
					target = unsafe_New(dst);
				}
				_r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				x = _r$2;
				if (dst.NumMethod() === 0) {
					(target).$set(x);
				} else {
					ifaceE2I(dst, x, target);
				}
				$s = -1; return new Value.ptr(dst, target, 148);
			/* } */ case 7:
		case 4:
		$panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String()));
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.assignTo, $c: true, $r, _r, _r$1, _r$2, context, dst, fl, target, v, x, $s};return $f;
	};
	Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); };
	Value.ptr.prototype.call = function(op, in$1) {
		var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r, $c} = $restore(this, {op, in$1});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		t = ptrType$19.nil;
		fn = 0;
		rcvr = null;
		if (!((((v.flag & 512) >>> 0) === 0))) {
			_tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0);
			t = _tuple[1];
			fn = _tuple[2];
			rcvr = $clone(v, Value).object();
			if (isWrapped(v.typ)) {
				rcvr = new (jsType(v.typ))(rcvr);
			}
		} else {
			t = (v.typ.kindType);
			fn = ($clone(v, Value).object());
			rcvr = undefined;
		}
		if (fn === 0) {
			$panic(new $String("reflect.Value.Call: call of nil function"));
		}
		isSlice = op === "CallSlice";
		n = t.rtype.NumIn();
		if (isSlice) {
			if (!t.rtype.IsVariadic()) {
				$panic(new $String("reflect: CallSlice of non-variadic function"));
			}
			if (in$1.$length < n) {
				$panic(new $String("reflect: CallSlice with too few input arguments"));
			}
			if (in$1.$length > n) {
				$panic(new $String("reflect: CallSlice with too many input arguments"));
			}
		} else {
			if (t.rtype.IsVariadic()) {
				n = n - (1) >> 0;
			}
			if (in$1.$length < n) {
				$panic(new $String("reflect: Call with too few input arguments"));
			}
			if (!t.rtype.IsVariadic() && in$1.$length > n) {
				$panic(new $String("reflect: Call with too many input arguments"));
			}
		}
		_ref = in$1;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			if ($clone(x, Value).Kind() === 0) {
				$panic(new $String("reflect: " + op + " using zero Value argument"));
			}
			_i++;
		}
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; }
			_tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type();
			_tmp$1 = t.rtype.In(i);
			xt = _tmp;
			targ = _tmp$1;
			_r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* */ if (!_r) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!_r) { */ case 3:
				_r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2));
			/* } */ case 4:
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		/* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; }
		/* */ $s = 9; continue;
		/* if (!isSlice && t.rtype.IsVariadic()) { */ case 8:
			m = in$1.$length - n >> 0;
			_r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			slice = _r$3;
			_r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			elem = _r$4;
			i$1 = 0;
			/* while (true) { */ case 12:
				/* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; }
				x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1]));
				xt$1 = $clone(x$2, Value).Type();
				_r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				/* */ if (!_r$5) { $s = 14; continue; }
				/* */ $s = 15; continue;
				/* if (!_r$5) { */ case 14:
					_r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					_r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					$panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op));
				/* } */ case 15:
				_r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				$r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				i$1 = i$1 + (1) >> 0;
			$s = 12; continue;
			case 13:
			origIn = in$1;
			in$1 = $makeSlice(sliceType$7, (n + 1 >> 0));
			$copySlice($subslice(in$1, 0, n), origIn);
			((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice);
		/* } */ case 9:
		nin = in$1.$length;
		if (!((nin === t.rtype.NumIn()))) {
			$panic(new $String("reflect.Value.Call: wrong argument count"));
		}
		nout = t.rtype.NumOut();
		argsArray = new ($global.Array)(t.rtype.NumIn());
		_ref$1 = in$1;
		_i$1 = 0;
		/* while (true) { */ case 21:
			/* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; }
			i$2 = _i$1;
			arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
			_arg = t.rtype.In(i$2);
			_r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
			_arg$1 = _r$9;
			_arg$2 = 0;
			_r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
			_r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
			_arg$3 = _r$11;
			_r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
			argsArray[i$2] = _r$12;
			_i$1++;
		$s = 21; continue;
		case 22:
		_r$13 = callHelper(new sliceType$4([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
		results = _r$13;
			_1 = nout;
			/* */ if (_1 === (0)) { $s = 29; continue; }
			/* */ if (_1 === (1)) { $s = 30; continue; }
			/* */ $s = 31; continue;
			/* if (_1 === (0)) { */ case 29:
				$s = -1; return sliceType$7.nil;
			/* } else if (_1 === (1)) { */ case 30:
				_r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
				$24r = new sliceType$7([$clone(_r$14, Value)]);
				$s = 34; case 34: return $24r;
			/* } else { */ case 31:
				ret = $makeSlice(sliceType$7, nout);
				_ref$2 = ret;
				_i$2 = 0;
				/* while (true) { */ case 35:
					/* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 36; continue; }
					i$3 = _i$2;
					_r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
					((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15);
					_i$2++;
				$s = 35; continue;
				case 36:
				$s = -1; return ret;
			/* } */ case 32:
		case 28:
		$s = -1; return sliceType$7.nil;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.call, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s};return $f;
	};
	Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); };
	Value.ptr.prototype.Cap = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if (_1 === (17)) {
			return v.typ.Len();
		} else if ((_1 === (18)) || (_1 === (23))) {
			return $parseInt($clone(v, Value).object().$capacity) >> 0;
		}
		$panic(new ValueError.ptr("reflect.Value.Cap", k));
	};
	Value.prototype.Cap = function() { return this.$val.Cap(); };
	wrapJsObject = function(typ, val) {
		var typ, val;
		if ($interfaceIsEqual(typ, jsObjectPtr)) {
			return new (jsType(jsObjectPtr))(val);
		}
		return val;
	};
	unwrapJsObject = function(typ, val) {
		var typ, val;
		if ($interfaceIsEqual(typ, jsObjectPtr)) {
			return val.object;
		}
		return val;
	};
	Value.ptr.prototype.Elem = function() {
		var {$24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
			k = new flag(v.flag).kind();
			_1 = k;
			/* */ if (_1 === (20)) { $s = 2; continue; }
			/* */ if (_1 === (22)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (_1 === (20)) { */ case 2:
				val = $clone(v, Value).object();
				if (val === $ifaceNil) {
					$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
				}
				typ = reflectType(val.constructor);
				_r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 7; case 7: return $24r;
			/* } else if (_1 === (22)) { */ case 3:
				if ($clone(v, Value).IsNil()) {
					$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
				}
				val$1 = $clone(v, Value).object();
				tt = (v.typ.kindType);
				fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0;
				fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0;
				$s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl);
			/* } else { */ case 4:
				$panic(new ValueError.ptr("reflect.Value.Elem", k));
			/* } */ case 5:
		case 1:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Elem, $c: true, $r, $24r, _1, _r, fl, k, tt, typ, v, val, val$1, $s};return $f;
	};
	Value.prototype.Elem = function() { return this.$val.Elem(); };
	Value.ptr.prototype.Field = function(i) {
		var {$24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		jsTag = [jsTag];
		prop = [prop];
		s = [s];
		typ = [typ];
		v = this;
		if (!((new flag(v.flag).kind() === 25))) {
			$panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind()));
		}
		tt = (v.typ.kindType);
		if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) {
			$panic(new $String("reflect: Field index out of range"));
		}
		prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String);
		field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]));
		typ[0] = field.typ;
		fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
		if (!$clone(field.name, name).isExported()) {
			if (field.embedded()) {
				fl = (fl | (64)) >>> 0;
			} else {
				fl = (fl | (32)) >>> 0;
			}
		}
		tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag();
		/* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(tag === "") && !((i === 0))) { */ case 1:
			jsTag[0] = getJsTag(tag);
			/* */ if (!(jsTag[0] === "")) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!(jsTag[0] === "")) { */ case 3:
				/* while (true) { */ case 5:
					o = [o];
					_r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					v = _r;
					/* */ if (v.typ === jsObjectPtr) { $s = 8; continue; }
					/* */ $s = 9; continue;
					/* if (v.typ === jsObjectPtr) { */ case 8:
						o[0] = $clone(v, Value).object().object;
						$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() {
							return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0]));
						}; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) {
							var x$2;
							o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0]));
						}; })(jsTag, o, prop, s, typ))), fl);
					/* } */ case 9:
					/* */ if (v.typ.Kind() === 22) { $s = 10; continue; }
					/* */ $s = 11; continue;
					/* if (v.typ.Kind() === 22) { */ case 10:
						_r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
						v = _r$1;
					/* } */ case 11:
				$s = 5; continue;
				case 6:
			/* } */ case 4:
		/* } */ case 2:
		s[0] = v.ptr;
		/* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13:
			$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() {
				return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]);
			}; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) {
				var x$2;
				s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2);
			}; })(jsTag, prop, s, typ))), fl);
		/* } */ case 14:
		_r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 16; case 16: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Field, $c: true, $r, $24r, _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s};return $f;
	};
	Value.prototype.Field = function(i) { return this.$val.Field(i); };
	getJsTag = function(tag) {
		var _tuple, i, name$1, qvalue, tag, value;
		while (true) {
			if (!(!(tag === ""))) { break; }
			i = 0;
			while (true) {
				if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; }
				i = i + (1) >> 0;
			}
			tag = $substring(tag, i);
			if (tag === "") {
				break;
			}
			i = 0;
			while (true) {
				if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; }
				i = i + (1) >> 0;
			}
			if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) {
				break;
			}
			name$1 = ($substring(tag, 0, i));
			tag = $substring(tag, (i + 1 >> 0));
			i = 1;
			while (true) {
				if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; }
				if (tag.charCodeAt(i) === 92) {
					i = i + (1) >> 0;
				}
				i = i + (1) >> 0;
			}
			if (i >= tag.length) {
				break;
			}
			qvalue = ($substring(tag, 0, (i + 1 >> 0)));
			tag = $substring(tag, (i + 1 >> 0));
			if (name$1 === "js") {
				_tuple = strconv.Unquote(qvalue);
				value = _tuple[0];
				return value;
			}
		}
		return "";
	};
	Value.ptr.prototype.Index = function(i) {
		var {$24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r, $c} = $restore(this, {i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		a = [a];
		a$1 = [a$1];
		c = [c];
		i = [i];
		typ = [typ];
		typ$1 = [typ$1];
		v = this;
			k = new flag(v.flag).kind();
			_1 = k;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (23)) { $s = 3; continue; }
			/* */ if (_1 === (24)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_1 === (17)) { */ case 2:
				tt = (v.typ.kindType);
				if (i[0] < 0 || i[0] > ((tt.len >> 0))) {
					$panic(new $String("reflect: array index out of range"));
				}
				typ[0] = tt.elem;
				fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0;
				a[0] = v.ptr;
				/* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7:
					$s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
						return wrapJsObject(typ[0], a[0][i[0]]);
					}; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
						var x;
						a[0][i[0]] = unwrapJsObject(typ[0], x);
					}; })(a, a$1, c, i, typ, typ$1))), fl);
				/* } */ case 8:
				_r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 10; case 10: return $24r;
			/* } else if (_1 === (23)) { */ case 3:
				s = $clone(v, Value).object();
				if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) {
					$panic(new $String("reflect: slice index out of range"));
				}
				tt$1 = (v.typ.kindType);
				typ$1[0] = tt$1.elem;
				fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0;
				i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0;
				a$1[0] = s.$array;
				/* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 11; continue; }
				/* */ $s = 12; continue;
				/* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 11:
					$s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() {
						return wrapJsObject(typ$1[0], a$1[0][i[0]]);
					}; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) {
						var x;
						a$1[0][i[0]] = unwrapJsObject(typ$1[0], x);
					}; })(a, a$1, c, i, typ, typ$1))), fl$1);
				/* } */ case 12:
				_r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$24r$1 = _r$1;
				$s = 14; case 14: return $24r$1;
			/* } else if (_1 === (24)) { */ case 4:
				str = (v.ptr).$get();
				if (i[0] < 0 || i[0] >= str.length) {
					$panic(new $String("reflect: string index out of range"));
				}
				fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0;
				c[0] = str.charCodeAt(i[0]);
				$s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2);
			/* } else { */ case 5:
				$panic(new ValueError.ptr("reflect.Value.Index", k));
			/* } */ case 6:
		case 1:
		$s = -1; return new Value.ptr(ptrType$1.nil, 0, 0);
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Index, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s};return $f;
	};
	Value.prototype.Index = function(i) { return this.$val.Index(i); };
	Value.ptr.prototype.InterfaceData = function() {
		var v;
		v = this;
		$panic(errors.New("InterfaceData is not supported by GopherJS"));
	};
	Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); };
	Value.ptr.prototype.IsNil = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (22)) || (_1 === (23))) {
			return $clone(v, Value).object() === jsType(v.typ).nil;
		} else if (_1 === (18)) {
			return $clone(v, Value).object() === $chanNil;
		} else if (_1 === (19)) {
			return $clone(v, Value).object() === $throwNilPointerError;
		} else if (_1 === (21)) {
			return $clone(v, Value).object() === false;
		} else if (_1 === (20)) {
			return $clone(v, Value).object() === $ifaceNil;
		} else if (_1 === (26)) {
			return $clone(v, Value).object() === 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.IsNil", k));
		}
	};
	Value.prototype.IsNil = function() { return this.$val.IsNil(); };
	Value.ptr.prototype.Len = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (17)) || (_1 === (24))) {
			return $parseInt($clone(v, Value).object().length);
		} else if (_1 === (23)) {
			return $parseInt($clone(v, Value).object().$length) >> 0;
		} else if (_1 === (18)) {
			return $parseInt($clone(v, Value).object().$buffer.length) >> 0;
		} else if (_1 === (21)) {
			return $parseInt($clone(v, Value).object().size) >> 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Len", k));
		}
	};
	Value.prototype.Len = function() { return this.$val.Len(); };
	Value.ptr.prototype.Pointer = function() {
		var _1, k, v;
		v = this;
		k = new flag(v.flag).kind();
		_1 = k;
		if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return $clone(v, Value).object();
		} else if (_1 === (19)) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return 1;
		} else if (_1 === (23)) {
			if ($clone(v, Value).IsNil()) {
				return 0;
			}
			return $clone(v, Value).object().$array;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Pointer", k));
		}
	};
	Value.prototype.Pointer = function() { return this.$val.Pointer(); };
	Value.ptr.prototype.Set = function(x) {
		var {_1, _r, _r$1, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(x.flag).mustBeExported();
		_r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		x = _r;
		/* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2:
				_1 = v.typ.Kind();
				/* */ if ((_1 === (17)) || (_1 === (25))) { $s = 5; continue; }
				/* */ if (_1 === (20)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if ((_1 === (17)) || (_1 === (25))) { */ case 5:
					jsType(v.typ).copy(v.ptr, x.ptr);
					$s = 8; continue;
				/* } else if (_1 === (20)) { */ case 6:
					_r$1 = valueInterface($clone(x, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					v.ptr.$set(_r$1);
					$s = 8; continue;
				/* } else { */ case 7:
					v.ptr.$set($clone(x, Value).object());
				/* } */ case 8:
			case 4:
			$s = -1; return;
		/* } */ case 3:
		v.ptr = x.ptr;
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Set, $c: true, $r, _1, _r, _r$1, v, x, $s};return $f;
	};
	Value.prototype.Set = function(x) { return this.$val.Set(x); };
	Value.ptr.prototype.SetBytes = function(x) {
		var {_r, _r$1, _v, slice, typedSlice, v, x, $s, $r, $c} = $restore(this, {x});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		_r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 8))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 8))) { */ case 1:
			$panic(new $String("reflect.Value.SetBytes of non-byte slice"));
		/* } */ case 2:
		slice = x;
		if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; }
		_r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_v = !(_r$1 === ""); case 6:
		/* */ if (_v) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (_v) { */ case 4:
			typedSlice = new (jsType(v.typ))(slice.$array);
			typedSlice.$offset = slice.$offset;
			typedSlice.$length = slice.$length;
			typedSlice.$capacity = slice.$capacity;
			slice = typedSlice;
		/* } */ case 5:
		v.ptr.$set(slice);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.SetBytes, $c: true, $r, _r, _r$1, _v, slice, typedSlice, v, x, $s};return $f;
	};
	Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); };
	Value.ptr.prototype.SetCap = function(n) {
		var n, newSlice, s, v;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		s = v.ptr.$get();
		if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) {
			$panic(new $String("reflect: slice capacity out of range in SetCap"));
		}
		newSlice = new (jsType(v.typ))(s.$array);
		newSlice.$offset = s.$offset;
		newSlice.$length = s.$length;
		newSlice.$capacity = n;
		v.ptr.$set(newSlice);
	};
	Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); };
	Value.ptr.prototype.SetLen = function(n) {
		var n, newSlice, s, v;
		v = this;
		new flag(v.flag).mustBeAssignable();
		new flag(v.flag).mustBe(23);
		s = v.ptr.$get();
		if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) {
			$panic(new $String("reflect: slice length out of range in SetLen"));
		}
		newSlice = new (jsType(v.typ))(s.$array);
		newSlice.$offset = s.$offset;
		newSlice.$length = n;
		newSlice.$capacity = s.$capacity;
		v.ptr.$set(newSlice);
	};
	Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); };
	Value.ptr.prototype.Slice = function(i, j) {
		var {$24r, $24r$1, _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r, $c} = $restore(this, {i, j});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		cap = 0;
		typ = $ifaceNil;
		s = null;
			kind = new flag(v.flag).kind();
			_1 = kind;
			/* */ if (_1 === (17)) { $s = 2; continue; }
			/* */ if (_1 === (23)) { $s = 3; continue; }
			/* */ if (_1 === (24)) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_1 === (17)) { */ case 2:
				if (((v.flag & 256) >>> 0) === 0) {
					$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
				}
				tt = (v.typ.kindType);
				cap = ((tt.len >> 0));
				typ = SliceOf(tt.elem);
				s = new (jsType(typ))($clone(v, Value).object());
				$s = 6; continue;
			/* } else if (_1 === (23)) { */ case 3:
				typ = v.typ;
				s = $clone(v, Value).object();
				cap = $parseInt(s.$capacity) >> 0;
				$s = 6; continue;
			/* } else if (_1 === (24)) { */ case 4:
				str = (v.ptr).$get();
				if (i < 0 || j < i || j > str.length) {
					$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));
				}
				_r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$24r = _r;
				$s = 8; case 8: return $24r;
			/* } else { */ case 5:
				$panic(new ValueError.ptr("reflect.Value.Slice", kind));
			/* } */ case 6:
		case 1:
		if (i < 0 || j < i || j > cap) {
			$panic(new $String("reflect.Value.Slice: slice index out of bounds"));
		}
		_r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r$1 = _r$1;
		$s = 10; case 10: return $24r$1;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Slice, $c: true, $r, $24r, $24r$1, _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s};return $f;
	};
	Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); };
	Value.ptr.prototype.Slice3 = function(i, j, k) {
		var {$24r, _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r, $c} = $restore(this, {i, j, k});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		v = this;
		cap = 0;
		typ = $ifaceNil;
		s = null;
		kind = new flag(v.flag).kind();
		_1 = kind;
		if (_1 === (17)) {
			if (((v.flag & 256) >>> 0) === 0) {
				$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));
			}
			tt = (v.typ.kindType);
			cap = ((tt.len >> 0));
			typ = SliceOf(tt.elem);
			s = new (jsType(typ))($clone(v, Value).object());
		} else if (_1 === (23)) {
			typ = v.typ;
			s = $clone(v, Value).object();
			cap = $parseInt(s.$capacity) >> 0;
		} else {
			$panic(new ValueError.ptr("reflect.Value.Slice3", kind));
		}
		if (i < 0 || j < i || k < j || k > cap) {
			$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));
		}
		_r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Value.ptr.prototype.Slice3, $c: true, $r, $24r, _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s};return $f;
	};
	Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); };
	Value.ptr.prototype.Close = function() {
		var v;
		v = this;
		new flag(v.flag).mustBe(18);
		new flag(v.flag).mustBeExported();
		$close($clone(v, Value).object());
	};
	Value.prototype.Close = function() { return this.$val.Close(); };
	chanrecv = function(ch, nb, val) {
		var {_r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r, $c} = $restore(this, {ch, nb, val});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		selected = false;
		received = false;
		comms = new sliceType$18([new sliceType$16([ch])]);
		if (nb) {
			comms = $append(comms, new sliceType$16([]));
		}
		_r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		selectRes = _r;
		if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) {
			_tmp = false;
			_tmp$1 = false;
			selected = _tmp;
			received = _tmp$1;
			$s = -1; return [selected, received];
		}
		recvRes = selectRes[1];
		val.$set(recvRes[0]);
		_tmp$2 = true;
		_tmp$3 = !!(recvRes[1]);
		selected = _tmp$2;
		received = _tmp$3;
		$s = -1; return [selected, received];
		/* */ } return; } var $f = {$blk: chanrecv, $c: true, $r, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s};return $f;
	};
	chansend = function(ch, val, nb) {
		var {_r, ch, comms, nb, selectRes, val, $s, $r, $c} = $restore(this, {ch, val, nb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		comms = new sliceType$18([new sliceType$16([ch, val.$get()])]);
		if (nb) {
			comms = $append(comms, new sliceType$16([]));
		}
		_r = selectHelper(new sliceType$4([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		selectRes = _r;
		if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) {
			$s = -1; return false;
		}
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: chansend, $c: true, $r, _r, ch, comms, nb, selectRes, val, $s};return $f;
	};
	methodNameSkip = function() {
		var _tuple, f, idx, name$1, pc;
		_tuple = runtime.Caller(3);
		pc = _tuple[0];
		f = runtime.FuncForPC(pc);
		if (f === ptrType$4.nil) {
			return "unknown method";
		}
		name$1 = f.Name();
		idx = name$1.length - 1 >> 0;
		while (true) {
			if (!(idx > 0)) { break; }
			if (name$1.charCodeAt(idx) === 46) {
				break;
			}
			idx = idx - (1) >> 0;
		}
		if (idx < 0) {
			return name$1;
		}
		return "Value" + $substring(name$1, idx);
	};
	verifyNotInHeapPtr = function(p) {
		var p;
		return true;
	};
	Value.methods = [{prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$10], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$7], [sliceType$7], false)}, {prop: "CanComplex", name: "CanComplex", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [Value], false)}, {prop: "FieldByIndexErr", name: "FieldByIndexErr", pkg: "", typ: $funcType([sliceType$6], [Value, $error], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "CanFloat", name: "CanFloat", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "CanInt", name: "CanInt", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$7], false)}, {prop: "SetIterKey", name: "SetIterKey", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "SetIterValue", name: "SetIterValue", pkg: "", typ: $funcType([ptrType$22], [], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$22], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$10], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "CanUint", name: "CanUint", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "UnsafePointer", name: "UnsafePointer", pkg: "", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}, {prop: "CanConvert", name: "CanConvert", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$7], [sliceType$7], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$7], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$9], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}];
	flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeExportedSlow", name: "mustBeExportedSlow", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignableSlow", name: "mustBeAssignableSlow", pkg: "reflect", typ: $funcType([], [], false)}];
	ptrType$23.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$22.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([Value], [], false)}];
	Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$1.methods = [{prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "hasName", name: "hasName", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "gcSlice", name: "gcSlice", pkg: "reflect", typ: $funcType([$Uintptr, $Uintptr], [sliceType$9], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}];
	ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$10.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}];
	ptrType$25.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}];
	ptrType$12.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}];
	Method.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}];
	StructField.methods = [{prop: "IsExported", name: "IsExported", pkg: "", typ: $funcType([], [$Bool], false)}];
	StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}];
	ptrType$9.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$11], false)}];
	ptrType$19.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}];
	name.methods = [{prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$13], false)}, {prop: "hasTag", name: "hasTag", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "readVarint", name: "readVarint", pkg: "reflect", typ: $funcType([$Int], [$Int, $Int], false)}, {prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}];
	ptrType$26.methods = [{prop: "initialized", name: "initialized", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}];
	Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]);
	ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]);
	MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "hiter", name: "hiter", embedded: false, exported: false, typ: hiter, tag: ""}]);
	Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$6], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$9], false)}]);
	rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$13, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]);
	method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]);
	arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]);
	interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$14, tag: ""}]);
	mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "hasher", name: "hasher", embedded: false, exported: false, typ: funcType$5, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
	ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
	sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
	structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]);
	structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$15, tag: ""}]);
	Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]);
	StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$6, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$12, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$6, tag: ""}]);
	uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$11, tag: ""}]);
	funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]);
	name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$13, tag: ""}]);
	nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: $String, tag: ""}]);
	hiter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = abi.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bytealg.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = goarch.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = goexperiment.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = itoa.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unsafeheader.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = math.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unicode.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		nameOffList = sliceType$1.nil;
		typeOffList = sliceType$2.nil;
		kindNames = new sliceType$3(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]);
		initialized = false;
		nameMap = new $global.Map();
		uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1);
		callHelper = $assertType($internalize($call, $emptyInterface), funcType$1);
		jsObjectPtr = reflectType($jsObjectPtr);
		selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1);
		$r = init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["encoding/binary"] = (function() {
	var $pkg = {}, $init, errors, io, math, reflect, sync, littleEndian, bigEndian, sliceType, overflow;
	errors = $packages["errors"];
	io = $packages["io"];
	math = $packages["math"];
	reflect = $packages["reflect"];
	sync = $packages["sync"];
	littleEndian = $pkg.littleEndian = $newType(0, $kindStruct, "binary.littleEndian", true, "encoding/binary", false, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	bigEndian = $pkg.bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	sliceType = $sliceType($Uint8);
	littleEndian.ptr.prototype.Uint16 = function(b) {
		var b;
		$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
		return ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0;
	};
	littleEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); };
	littleEndian.ptr.prototype.PutUint16 = function(b, v) {
		var b, v;
		$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24)));
	};
	littleEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); };
	littleEndian.ptr.prototype.Uint32 = function(b) {
		var b;
		$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
		return ((((((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) << 24 >>> 0)) >>> 0;
	};
	littleEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); };
	littleEndian.ptr.prototype.PutUint32 = function(b, v) {
		var b, v;
		$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 8 >>> 0) << 24 >>> 24)));
		(2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 16 >>> 0) << 24 >>> 24)));
		(3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (((v >>> 24 >>> 0) << 24 >>> 24)));
	};
	littleEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); };
	littleEndian.ptr.prototype.Uint64 = function(b) {
		var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
		return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$7 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0));
	};
	littleEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); };
	littleEndian.ptr.prototype.PutUint64 = function(b, v) {
		var b, v;
		$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = ((v.$low << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 8).$low << 24 >>> 24)));
		(2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 16).$low << 24 >>> 24)));
		(3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 24).$low << 24 >>> 24)));
		(4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 32).$low << 24 >>> 24)));
		(5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 40).$low << 24 >>> 24)));
		(6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 48).$low << 24 >>> 24)));
		(7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = (($shiftRightUint64(v, 56).$low << 24 >>> 24)));
	};
	littleEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); };
	littleEndian.ptr.prototype.String = function() {
		return "LittleEndian";
	};
	littleEndian.prototype.String = function() { return this.$val.String(); };
	littleEndian.ptr.prototype.GoString = function() {
		return "binary.LittleEndian";
	};
	littleEndian.prototype.GoString = function() { return this.$val.GoString(); };
	bigEndian.ptr.prototype.Uint16 = function(b) {
		var b;
		$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
		return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0;
	};
	bigEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); };
	bigEndian.ptr.prototype.PutUint16 = function(b, v) {
		var b, v;
		$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24)));
	};
	bigEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); };
	bigEndian.ptr.prototype.Uint32 = function(b) {
		var b;
		$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
		return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0;
	};
	bigEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); };
	bigEndian.ptr.prototype.PutUint32 = function(b, v) {
		var b, v;
		$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24)));
		(2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24)));
		(3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24)));
	};
	bigEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); };
	bigEndian.ptr.prototype.Uint64 = function(b) {
		var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
		return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0));
	};
	bigEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); };
	bigEndian.ptr.prototype.PutUint64 = function(b, v) {
		var b, v;
		$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
		(0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24)));
		(1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24)));
		(2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24)));
		(3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24)));
		(4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24)));
		(5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24)));
		(6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24)));
		(7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24)));
	};
	bigEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); };
	bigEndian.ptr.prototype.String = function() {
		return "BigEndian";
	};
	bigEndian.prototype.String = function() { return this.$val.String(); };
	bigEndian.ptr.prototype.GoString = function() {
		return "binary.BigEndian";
	};
	bigEndian.prototype.GoString = function() { return this.$val.GoString(); };
	littleEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}];
	bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}];
	littleEndian.init("", []);
	bigEndian.init("", []);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.LittleEndian = new littleEndian.ptr();
		$pkg.BigEndian = new bigEndian.ptr();
		overflow = errors.New("binary: varint overflows a 64-bit integer");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["crypto/md5"] = (function() {
	var $pkg = {}, $init, crypto, binary, errors, hash, bits, digest, sliceType, arrayType, arrayType$1, arrayType$2, arrayType$3, arrayType$4, ptrType, block, blockGeneric, init, appendUint64, appendUint32, consumeUint64, consumeUint32, New, Sum;
	crypto = $packages["crypto"];
	binary = $packages["encoding/binary"];
	errors = $packages["errors"];
	hash = $packages["hash"];
	bits = $packages["math/bits"];
	digest = $pkg.digest = $newType(0, $kindStruct, "md5.digest", true, "crypto/md5", false, function(s_, x_, nx_, len_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.s = arrayType$2.zero();
			this.x = arrayType$3.zero();
			this.nx = 0;
			this.len = new $Uint64(0, 0);
			return;
		}
		this.s = s_;
		this.x = x_;
		this.nx = nx_;
		this.len = len_;
	});
	sliceType = $sliceType($Uint8);
	arrayType = $arrayType($Uint8, 8);
	arrayType$1 = $arrayType($Uint8, 4);
	arrayType$2 = $arrayType($Uint32, 4);
	arrayType$3 = $arrayType($Uint8, 64);
	arrayType$4 = $arrayType($Uint8, 16);
	ptrType = $ptrType(digest);
	block = function(dig, p) {
		var dig, p;
		blockGeneric(dig, p);
	};
	blockGeneric = function(dig, p) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, a, aa, b, bb, c, cc, d, dd, dig, i, p, q, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, xa, xb, xc, xd, xe, xf;
		_tmp = dig.s[0];
		_tmp$1 = dig.s[1];
		_tmp$2 = dig.s[2];
		_tmp$3 = dig.s[3];
		a = _tmp;
		b = _tmp$1;
		c = _tmp$2;
		d = _tmp$3;
		i = 0;
		while (true) {
			if (!(i <= (p.$length - 64 >> 0))) { break; }
			q = $subslice(p, i);
			q = $subslice(q, 0, 64, 64);
			_tmp$4 = a;
			_tmp$5 = b;
			_tmp$6 = c;
			_tmp$7 = d;
			aa = _tmp$4;
			bb = _tmp$5;
			cc = _tmp$6;
			dd = _tmp$7;
			x0 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 0));
			x1 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 4));
			x2 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 8));
			x3 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 12));
			x4 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 16));
			x5 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 20));
			x6 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 24));
			x7 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 28));
			x8 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 32));
			x9 = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 36));
			xa = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 40));
			xb = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 44));
			xc = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 48));
			xd = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 52));
			xe = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 56));
			xf = $clone(binary.LittleEndian, binary.littleEndian).Uint32($subslice(q, 60));
			a = b + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & b) >>> 0)) ^ d) >>> 0)) + a >>> 0) + x0 >>> 0) + 3614090360 >>> 0, 7) >>> 0;
			d = a + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & a) >>> 0)) ^ c) >>> 0)) + d >>> 0) + x1 >>> 0) + 3905402710 >>> 0, 12) >>> 0;
			c = d + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & d) >>> 0)) ^ b) >>> 0)) + c >>> 0) + x2 >>> 0) + 606105819 >>> 0, 17) >>> 0;
			b = c + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & c) >>> 0)) ^ a) >>> 0)) + b >>> 0) + x3 >>> 0) + 3250441966 >>> 0, 22) >>> 0;
			a = b + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & b) >>> 0)) ^ d) >>> 0)) + a >>> 0) + x4 >>> 0) + 4118548399 >>> 0, 7) >>> 0;
			d = a + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & a) >>> 0)) ^ c) >>> 0)) + d >>> 0) + x5 >>> 0) + 1200080426 >>> 0, 12) >>> 0;
			c = d + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & d) >>> 0)) ^ b) >>> 0)) + c >>> 0) + x6 >>> 0) + 2821735955 >>> 0, 17) >>> 0;
			b = c + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & c) >>> 0)) ^ a) >>> 0)) + b >>> 0) + x7 >>> 0) + 4249261313 >>> 0, 22) >>> 0;
			a = b + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & b) >>> 0)) ^ d) >>> 0)) + a >>> 0) + x8 >>> 0) + 1770035416 >>> 0, 7) >>> 0;
			d = a + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & a) >>> 0)) ^ c) >>> 0)) + d >>> 0) + x9 >>> 0) + 2336552879 >>> 0, 12) >>> 0;
			c = d + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & d) >>> 0)) ^ b) >>> 0)) + c >>> 0) + xa >>> 0) + 4294925233 >>> 0, 17) >>> 0;
			b = c + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & c) >>> 0)) ^ a) >>> 0)) + b >>> 0) + xb >>> 0) + 2304563134 >>> 0, 22) >>> 0;
			a = b + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & b) >>> 0)) ^ d) >>> 0)) + a >>> 0) + xc >>> 0) + 1804603682 >>> 0, 7) >>> 0;
			d = a + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & a) >>> 0)) ^ c) >>> 0)) + d >>> 0) + xd >>> 0) + 4254626195 >>> 0, 12) >>> 0;
			c = d + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & d) >>> 0)) ^ b) >>> 0)) + c >>> 0) + xe >>> 0) + 2792965006 >>> 0, 17) >>> 0;
			b = c + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & c) >>> 0)) ^ a) >>> 0)) + b >>> 0) + xf >>> 0) + 1236535329 >>> 0, 22) >>> 0;
			a = b + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & d) >>> 0)) ^ c) >>> 0)) + a >>> 0) + x1 >>> 0) + 4129170786 >>> 0, 5) >>> 0;
			d = a + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & c) >>> 0)) ^ b) >>> 0)) + d >>> 0) + x6 >>> 0) + 3225465664 >>> 0, 9) >>> 0;
			c = d + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & b) >>> 0)) ^ a) >>> 0)) + c >>> 0) + xb >>> 0) + 643717713 >>> 0, 14) >>> 0;
			b = c + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & a) >>> 0)) ^ d) >>> 0)) + b >>> 0) + x0 >>> 0) + 3921069994 >>> 0, 20) >>> 0;
			a = b + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & d) >>> 0)) ^ c) >>> 0)) + a >>> 0) + x5 >>> 0) + 3593408605 >>> 0, 5) >>> 0;
			d = a + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & c) >>> 0)) ^ b) >>> 0)) + d >>> 0) + xa >>> 0) + 38016083 >>> 0, 9) >>> 0;
			c = d + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & b) >>> 0)) ^ a) >>> 0)) + c >>> 0) + xf >>> 0) + 3634488961 >>> 0, 14) >>> 0;
			b = c + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & a) >>> 0)) ^ d) >>> 0)) + b >>> 0) + x4 >>> 0) + 3889429448 >>> 0, 20) >>> 0;
			a = b + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & d) >>> 0)) ^ c) >>> 0)) + a >>> 0) + x9 >>> 0) + 568446438 >>> 0, 5) >>> 0;
			d = a + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & c) >>> 0)) ^ b) >>> 0)) + d >>> 0) + xe >>> 0) + 3275163606 >>> 0, 9) >>> 0;
			c = d + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & b) >>> 0)) ^ a) >>> 0)) + c >>> 0) + x3 >>> 0) + 4107603335 >>> 0, 14) >>> 0;
			b = c + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & a) >>> 0)) ^ d) >>> 0)) + b >>> 0) + x8 >>> 0) + 1163531501 >>> 0, 20) >>> 0;
			a = b + bits.RotateLeft32((((((((((((b ^ c) >>> 0)) & d) >>> 0)) ^ c) >>> 0)) + a >>> 0) + xd >>> 0) + 2850285829 >>> 0, 5) >>> 0;
			d = a + bits.RotateLeft32((((((((((((a ^ b) >>> 0)) & c) >>> 0)) ^ b) >>> 0)) + d >>> 0) + x2 >>> 0) + 4243563512 >>> 0, 9) >>> 0;
			c = d + bits.RotateLeft32((((((((((((d ^ a) >>> 0)) & b) >>> 0)) ^ a) >>> 0)) + c >>> 0) + x7 >>> 0) + 1735328473 >>> 0, 14) >>> 0;
			b = c + bits.RotateLeft32((((((((((((c ^ d) >>> 0)) & a) >>> 0)) ^ d) >>> 0)) + b >>> 0) + xc >>> 0) + 2368359562 >>> 0, 20) >>> 0;
			a = b + bits.RotateLeft32((((((((b ^ c) >>> 0) ^ d) >>> 0)) + a >>> 0) + x5 >>> 0) + 4294588738 >>> 0, 4) >>> 0;
			d = a + bits.RotateLeft32((((((((a ^ b) >>> 0) ^ c) >>> 0)) + d >>> 0) + x8 >>> 0) + 2272392833 >>> 0, 11) >>> 0;
			c = d + bits.RotateLeft32((((((((d ^ a) >>> 0) ^ b) >>> 0)) + c >>> 0) + xb >>> 0) + 1839030562 >>> 0, 16) >>> 0;
			b = c + bits.RotateLeft32((((((((c ^ d) >>> 0) ^ a) >>> 0)) + b >>> 0) + xe >>> 0) + 4259657740 >>> 0, 23) >>> 0;
			a = b + bits.RotateLeft32((((((((b ^ c) >>> 0) ^ d) >>> 0)) + a >>> 0) + x1 >>> 0) + 2763975236 >>> 0, 4) >>> 0;
			d = a + bits.RotateLeft32((((((((a ^ b) >>> 0) ^ c) >>> 0)) + d >>> 0) + x4 >>> 0) + 1272893353 >>> 0, 11) >>> 0;
			c = d + bits.RotateLeft32((((((((d ^ a) >>> 0) ^ b) >>> 0)) + c >>> 0) + x7 >>> 0) + 4139469664 >>> 0, 16) >>> 0;
			b = c + bits.RotateLeft32((((((((c ^ d) >>> 0) ^ a) >>> 0)) + b >>> 0) + xa >>> 0) + 3200236656 >>> 0, 23) >>> 0;
			a = b + bits.RotateLeft32((((((((b ^ c) >>> 0) ^ d) >>> 0)) + a >>> 0) + xd >>> 0) + 681279174 >>> 0, 4) >>> 0;
			d = a + bits.RotateLeft32((((((((a ^ b) >>> 0) ^ c) >>> 0)) + d >>> 0) + x0 >>> 0) + 3936430074 >>> 0, 11) >>> 0;
			c = d + bits.RotateLeft32((((((((d ^ a) >>> 0) ^ b) >>> 0)) + c >>> 0) + x3 >>> 0) + 3572445317 >>> 0, 16) >>> 0;
			b = c + bits.RotateLeft32((((((((c ^ d) >>> 0) ^ a) >>> 0)) + b >>> 0) + x6 >>> 0) + 76029189 >>> 0, 23) >>> 0;
			a = b + bits.RotateLeft32((((((((b ^ c) >>> 0) ^ d) >>> 0)) + a >>> 0) + x9 >>> 0) + 3654602809 >>> 0, 4) >>> 0;
			d = a + bits.RotateLeft32((((((((a ^ b) >>> 0) ^ c) >>> 0)) + d >>> 0) + xc >>> 0) + 3873151461 >>> 0, 11) >>> 0;
			c = d + bits.RotateLeft32((((((((d ^ a) >>> 0) ^ b) >>> 0)) + c >>> 0) + xf >>> 0) + 530742520 >>> 0, 16) >>> 0;
			b = c + bits.RotateLeft32((((((((c ^ d) >>> 0) ^ a) >>> 0)) + b >>> 0) + x2 >>> 0) + 3299628645 >>> 0, 23) >>> 0;
			a = b + bits.RotateLeft32((((((c ^ (((b | (~d >>> 0)) >>> 0))) >>> 0)) + a >>> 0) + x0 >>> 0) + 4096336452 >>> 0, 6) >>> 0;
			d = a + bits.RotateLeft32((((((b ^ (((a | (~c >>> 0)) >>> 0))) >>> 0)) + d >>> 0) + x7 >>> 0) + 1126891415 >>> 0, 10) >>> 0;
			c = d + bits.RotateLeft32((((((a ^ (((d | (~b >>> 0)) >>> 0))) >>> 0)) + c >>> 0) + xe >>> 0) + 2878612391 >>> 0, 15) >>> 0;
			b = c + bits.RotateLeft32((((((d ^ (((c | (~a >>> 0)) >>> 0))) >>> 0)) + b >>> 0) + x5 >>> 0) + 4237533241 >>> 0, 21) >>> 0;
			a = b + bits.RotateLeft32((((((c ^ (((b | (~d >>> 0)) >>> 0))) >>> 0)) + a >>> 0) + xc >>> 0) + 1700485571 >>> 0, 6) >>> 0;
			d = a + bits.RotateLeft32((((((b ^ (((a | (~c >>> 0)) >>> 0))) >>> 0)) + d >>> 0) + x3 >>> 0) + 2399980690 >>> 0, 10) >>> 0;
			c = d + bits.RotateLeft32((((((a ^ (((d | (~b >>> 0)) >>> 0))) >>> 0)) + c >>> 0) + xa >>> 0) + 4293915773 >>> 0, 15) >>> 0;
			b = c + bits.RotateLeft32((((((d ^ (((c | (~a >>> 0)) >>> 0))) >>> 0)) + b >>> 0) + x1 >>> 0) + 2240044497 >>> 0, 21) >>> 0;
			a = b + bits.RotateLeft32((((((c ^ (((b | (~d >>> 0)) >>> 0))) >>> 0)) + a >>> 0) + x8 >>> 0) + 1873313359 >>> 0, 6) >>> 0;
			d = a + bits.RotateLeft32((((((b ^ (((a | (~c >>> 0)) >>> 0))) >>> 0)) + d >>> 0) + xf >>> 0) + 4264355552 >>> 0, 10) >>> 0;
			c = d + bits.RotateLeft32((((((a ^ (((d | (~b >>> 0)) >>> 0))) >>> 0)) + c >>> 0) + x6 >>> 0) + 2734768916 >>> 0, 15) >>> 0;
			b = c + bits.RotateLeft32((((((d ^ (((c | (~a >>> 0)) >>> 0))) >>> 0)) + b >>> 0) + xd >>> 0) + 1309151649 >>> 0, 21) >>> 0;
			a = b + bits.RotateLeft32((((((c ^ (((b | (~d >>> 0)) >>> 0))) >>> 0)) + a >>> 0) + x4 >>> 0) + 4149444226 >>> 0, 6) >>> 0;
			d = a + bits.RotateLeft32((((((b ^ (((a | (~c >>> 0)) >>> 0))) >>> 0)) + d >>> 0) + xb >>> 0) + 3174756917 >>> 0, 10) >>> 0;
			c = d + bits.RotateLeft32((((((a ^ (((d | (~b >>> 0)) >>> 0))) >>> 0)) + c >>> 0) + x2 >>> 0) + 718787259 >>> 0, 15) >>> 0;
			b = c + bits.RotateLeft32((((((d ^ (((c | (~a >>> 0)) >>> 0))) >>> 0)) + b >>> 0) + x9 >>> 0) + 3951481745 >>> 0, 21) >>> 0;
			a = a + (aa) >>> 0;
			b = b + (bb) >>> 0;
			c = c + (cc) >>> 0;
			d = d + (dd) >>> 0;
			i = i + (64) >> 0;
		}
		_tmp$8 = a;
		_tmp$9 = b;
		_tmp$10 = c;
		_tmp$11 = d;
		dig.s[0] = _tmp$8;
		dig.s[1] = _tmp$9;
		dig.s[2] = _tmp$10;
		dig.s[3] = _tmp$11;
	};
	init = function() {
		crypto.RegisterHash(2, New);
	};
	digest.ptr.prototype.Reset = function() {
		var d;
		d = this;
		d.s[0] = 1732584193;
		d.s[1] = 4023233417;
		d.s[2] = 2562383102;
		d.s[3] = 271733878;
		d.nx = 0;
		d.len = new $Uint64(0, 0);
	};
	digest.prototype.Reset = function() { return this.$val.Reset(); };
	digest.ptr.prototype.MarshalBinary = function() {
		var b, d;
		d = this;
		b = $makeSlice(sliceType, 0, 92);
		b = $appendSlice(b, "md5\x01");
		b = appendUint32(b, d.s[0]);
		b = appendUint32(b, d.s[1]);
		b = appendUint32(b, d.s[2]);
		b = appendUint32(b, d.s[3]);
		b = $appendSlice(b, $subslice(new sliceType(d.x), 0, d.nx));
		b = $subslice(b, 0, ((b.$length + 64 >> 0) - d.nx >> 0));
		b = appendUint64(b, d.len);
		return [b, $ifaceNil];
	};
	digest.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); };
	digest.ptr.prototype.UnmarshalBinary = function(b) {
		var _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, d;
		d = this;
		if (b.$length < 4 || !(($bytesToString($subslice(b, 0, 4))) === "md5\x01")) {
			return errors.New("crypto/md5: invalid hash state identifier");
		}
		if (!((b.$length === 92))) {
			return errors.New("crypto/md5: invalid hash state size");
		}
		b = $subslice(b, 4);
		_tuple = consumeUint32(b);
		b = _tuple[0];
		d.s[0] = _tuple[1];
		_tuple$1 = consumeUint32(b);
		b = _tuple$1[0];
		d.s[1] = _tuple$1[1];
		_tuple$2 = consumeUint32(b);
		b = _tuple$2[0];
		d.s[2] = _tuple$2[1];
		_tuple$3 = consumeUint32(b);
		b = _tuple$3[0];
		d.s[3] = _tuple$3[1];
		b = $subslice(b, $copySlice(new sliceType(d.x), b));
		_tuple$4 = consumeUint64(b);
		b = _tuple$4[0];
		d.len = _tuple$4[1];
		d.nx = (($div64(d.len, new $Uint64(0, 64), true).$low >> 0));
		return $ifaceNil;
	};
	digest.prototype.UnmarshalBinary = function(b) { return this.$val.UnmarshalBinary(b); };
	appendUint64 = function(b, x) {
		var a, b, x;
		a = arrayType.zero();
		$clone(binary.BigEndian, binary.bigEndian).PutUint64(new sliceType(a), x);
		return $appendSlice(b, new sliceType(a));
	};
	appendUint32 = function(b, x) {
		var a, b, x;
		a = arrayType$1.zero();
		$clone(binary.BigEndian, binary.bigEndian).PutUint32(new sliceType(a), x);
		return $appendSlice(b, new sliceType(a));
	};
	consumeUint64 = function(b) {
		var b;
		return [$subslice(b, 8), $clone(binary.BigEndian, binary.bigEndian).Uint64($subslice(b, 0, 8))];
	};
	consumeUint32 = function(b) {
		var b;
		return [$subslice(b, 4), $clone(binary.BigEndian, binary.bigEndian).Uint32($subslice(b, 0, 4))];
	};
	New = function() {
		var d;
		d = new digest.ptr(arrayType$2.zero(), arrayType$3.zero(), 0, new $Uint64(0, 0));
		d.Reset();
		return d;
	};
	$pkg.New = New;
	digest.ptr.prototype.Size = function() {
		var d;
		d = this;
		return 16;
	};
	digest.prototype.Size = function() { return this.$val.Size(); };
	digest.ptr.prototype.BlockSize = function() {
		var d;
		d = this;
		return 64;
	};
	digest.prototype.BlockSize = function() { return this.$val.BlockSize(); };
	digest.ptr.prototype.Write = function(p) {
		var d, err, n, n$1, nn, p, x, x$1;
		nn = 0;
		err = $ifaceNil;
		d = this;
		nn = p.$length;
		d.len = (x = d.len, x$1 = (new $Uint64(0, nn)), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low));
		if (d.nx > 0) {
			n = $copySlice($subslice(new sliceType(d.x), d.nx), p);
			d.nx = d.nx + (n) >> 0;
			if (d.nx === 64) {
				if (false) {
					block(d, new sliceType(d.x));
				} else {
					blockGeneric(d, new sliceType(d.x));
				}
				d.nx = 0;
			}
			p = $subslice(p, n);
		}
		if (p.$length >= 64) {
			n$1 = (p.$length & ~63) >> 0;
			if (false) {
				block(d, $subslice(p, 0, n$1));
			} else {
				blockGeneric(d, $subslice(p, 0, n$1));
			}
			p = $subslice(p, n$1);
		}
		if (p.$length > 0) {
			d.nx = $copySlice(new sliceType(d.x), p);
		}
		return [nn, err];
	};
	digest.prototype.Write = function(p) { return this.$val.Write(p); };
	digest.ptr.prototype.Sum = function(in$1) {
		var d, d0, hash$1, in$1;
		d = this;
		d0 = $clone(d, digest);
		hash$1 = $clone(d0.checkSum(), arrayType$4);
		return $appendSlice(in$1, new sliceType(hash$1));
	};
	digest.prototype.Sum = function(in$1) { return this.$val.Sum(in$1); };
	digest.ptr.prototype.checkSum = function() {
		var d, digest$1, pad, tmp, x, x$1;
		d = this;
		tmp = $toNativeArray($kindUint8, [128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
		pad = $div64(((x = d.len, new $Uint64(0 - x.$high, 55 - x.$low))), new $Uint64(0, 64), true);
		$clone(binary.LittleEndian, binary.littleEndian).PutUint64($subslice(new sliceType(tmp), $flatten64(new $Uint64(0 + pad.$high, 1 + pad.$low))), $shiftLeft64(d.len, 3));
		d.Write($subslice(new sliceType(tmp), 0, $flatten64((x$1 = new $Uint64(0 + pad.$high, 1 + pad.$low), new $Uint64(x$1.$high + 0, x$1.$low + 8)))));
		if (!((d.nx === 0))) {
			$panic(new $String("d.nx != 0"));
		}
		digest$1 = arrayType$4.zero();
		$clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(new sliceType(digest$1), 0), d.s[0]);
		$clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(new sliceType(digest$1), 4), d.s[1]);
		$clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(new sliceType(digest$1), 8), d.s[2]);
		$clone(binary.LittleEndian, binary.littleEndian).PutUint32($subslice(new sliceType(digest$1), 12), d.s[3]);
		return digest$1;
	};
	digest.prototype.checkSum = function() { return this.$val.checkSum(); };
	Sum = function(data) {
		var d, data;
		d = new digest.ptr(arrayType$2.zero(), arrayType$3.zero(), 0, new $Uint64(0, 0));
		d.Reset();
		d.Write(data);
		return d.checkSum();
	};
	$pkg.Sum = Sum;
	ptrType.methods = [{prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "BlockSize", name: "BlockSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Sum", name: "Sum", pkg: "", typ: $funcType([sliceType], [sliceType], false)}, {prop: "checkSum", name: "checkSum", pkg: "crypto/md5", typ: $funcType([], [arrayType$4], false)}];
	digest.init("crypto/md5", [{prop: "s", name: "s", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "x", name: "x", embedded: false, exported: false, typ: arrayType$3, tag: ""}, {prop: "nx", name: "nx", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uint64, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = crypto.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = binary.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = errors.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hash.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bits.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		init();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["sort"] = (function() {
	var $pkg = {}, $init, reflectlite, insertionSort, swapRange, Stable, stable, symMerge, rotate;
	reflectlite = $packages["internal/reflectlite"];
	insertionSort = function(data, a, b) {
		var {_r, _v, a, b, data, i, j, $s, $r, $c} = $restore(this, {data, a, b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		i = a + 1 >> 0;
		/* while (true) { */ case 1:
			/* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; }
			j = i;
			/* while (true) { */ case 3:
				if (!(j > a)) { _v = false; $s = 5; continue s; }
				_r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_v = _r; case 5:
				/* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; }
				$r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				j = j - (1) >> 0;
			$s = 3; continue;
			case 4:
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: insertionSort, $c: true, $r, _r, _v, a, b, data, i, j, $s};return $f;
	};
	swapRange = function(data, a, b, n) {
		var {a, b, data, i, n, $s, $r, $c} = $restore(this, {data, a, b, n});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; }
			$r = data.Swap(a + i >> 0, b + i >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: swapRange, $c: true, $r, a, b, data, i, n, $s};return $f;
	};
	Stable = function(data) {
		var {_arg, _arg$1, _r, data, $s, $r, $c} = $restore(this, {data});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = data;
		_r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		$r = stable(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Stable, $c: true, $r, _arg, _arg$1, _r, data, $s};return $f;
	};
	$pkg.Stable = Stable;
	stable = function(data, n) {
		var {_tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s, $r, $c} = $restore(this, {data, n});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		blockSize = 20;
		_tmp = 0;
		_tmp$1 = blockSize;
		a = _tmp;
		b = _tmp$1;
		/* while (true) { */ case 1:
			/* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 2; continue; }
			$r = insertionSort(data, a, b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			a = b;
			b = b + (blockSize) >> 0;
		$s = 1; continue;
		case 2:
		$r = insertionSort(data, a, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* while (true) { */ case 5:
			/* if (!(blockSize < n)) { break; } */ if(!(blockSize < n)) { $s = 6; continue; }
			_tmp$2 = 0;
			_tmp$3 = $imul(2, blockSize);
			a = _tmp$2;
			b = _tmp$3;
			/* while (true) { */ case 7:
				/* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 8; continue; }
				$r = symMerge(data, a, a + blockSize >> 0, b); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				a = b;
				b = b + (($imul(2, blockSize))) >> 0;
			$s = 7; continue;
			case 8:
			m = a + blockSize >> 0;
			/* */ if (m < n) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (m < n) { */ case 10:
				$r = symMerge(data, a, m, n); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 11:
			blockSize = $imul(blockSize, (2));
		$s = 5; continue;
		case 6:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: stable, $c: true, $r, _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s};return $f;
	};
	symMerge = function(data, a, m, b) {
		var {_r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s, $r, $c} = $restore(this, {data, a, m, b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* */ if ((m - a >> 0) === 1) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((m - a >> 0) === 1) { */ case 1:
			i = m;
			j = b;
			/* while (true) { */ case 3:
				/* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 4; continue; }
				h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
				_r = data.Less(h, a); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				/* */ if (_r) { $s = 5; continue; }
				/* */ $s = 6; continue;
				/* if (_r) { */ case 5:
					i = h + 1 >> 0;
					$s = 7; continue;
				/* } else { */ case 6:
					j = h;
				/* } */ case 7:
			$s = 3; continue;
			case 4:
			k = a;
			/* while (true) { */ case 9:
				/* if (!(k < (i - 1 >> 0))) { break; } */ if(!(k < (i - 1 >> 0))) { $s = 10; continue; }
				$r = data.Swap(k, k + 1 >> 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				k = k + (1) >> 0;
			$s = 9; continue;
			case 10:
			$s = -1; return;
		/* } */ case 2:
		/* */ if ((b - m >> 0) === 1) { $s = 12; continue; }
		/* */ $s = 13; continue;
		/* if ((b - m >> 0) === 1) { */ case 12:
			i$1 = a;
			j$1 = m;
			/* while (true) { */ case 14:
				/* if (!(i$1 < j$1)) { break; } */ if(!(i$1 < j$1)) { $s = 15; continue; }
				h$1 = ((((((i$1 + j$1 >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
				_r$1 = data.Less(m, h$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				/* */ if (!_r$1) { $s = 16; continue; }
				/* */ $s = 17; continue;
				/* if (!_r$1) { */ case 16:
					i$1 = h$1 + 1 >> 0;
					$s = 18; continue;
				/* } else { */ case 17:
					j$1 = h$1;
				/* } */ case 18:
			$s = 14; continue;
			case 15:
			k$1 = m;
			/* while (true) { */ case 20:
				/* if (!(k$1 > i$1)) { break; } */ if(!(k$1 > i$1)) { $s = 21; continue; }
				$r = data.Swap(k$1, k$1 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				k$1 = k$1 - (1) >> 0;
			$s = 20; continue;
			case 21:
			$s = -1; return;
		/* } */ case 13:
		mid = ((((((a + b >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
		n = mid + m >> 0;
		_tmp = 0;
		_tmp$1 = 0;
		start = _tmp;
		r = _tmp$1;
		if (m > mid) {
			start = n - b >> 0;
			r = mid;
		} else {
			start = a;
			r = m;
		}
		p = n - 1 >> 0;
		/* while (true) { */ case 23:
			/* if (!(start < r)) { break; } */ if(!(start < r)) { $s = 24; continue; }
			c = ((((((start + r >> 0) >>> 0)) >>> 1 >>> 0) >> 0));
			_r$2 = data.Less(p - c >> 0, c); /* */ $s = 28; case 28: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			/* */ if (!_r$2) { $s = 25; continue; }
			/* */ $s = 26; continue;
			/* if (!_r$2) { */ case 25:
				start = c + 1 >> 0;
				$s = 27; continue;
			/* } else { */ case 26:
				r = c;
			/* } */ case 27:
		$s = 23; continue;
		case 24:
		end = n - start >> 0;
		/* */ if (start < m && m < end) { $s = 29; continue; }
		/* */ $s = 30; continue;
		/* if (start < m && m < end) { */ case 29:
			$r = rotate(data, start, m, end); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 30:
		/* */ if (a < start && start < mid) { $s = 32; continue; }
		/* */ $s = 33; continue;
		/* if (a < start && start < mid) { */ case 32:
			$r = symMerge(data, a, start, mid); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 33:
		/* */ if (mid < end && end < b) { $s = 35; continue; }
		/* */ $s = 36; continue;
		/* if (mid < end && end < b) { */ case 35:
			$r = symMerge(data, mid, end, b); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 36:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: symMerge, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s};return $f;
	};
	rotate = function(data, a, m, b) {
		var {a, b, data, i, j, m, $s, $r, $c} = $restore(this, {data, a, m, b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		i = m - a >> 0;
		j = b - m >> 0;
		/* while (true) { */ case 1:
			/* if (!(!((i === j)))) { break; } */ if(!(!((i === j)))) { $s = 2; continue; }
			/* */ if (i > j) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (i > j) { */ case 3:
				$r = swapRange(data, m - i >> 0, m, j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				i = i - (j) >> 0;
				$s = 5; continue;
			/* } else { */ case 4:
				$r = swapRange(data, m - i >> 0, (m + j >> 0) - i >> 0, i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				j = j - (i) >> 0;
			/* } */ case 5:
		$s = 1; continue;
		case 2:
		$r = swapRange(data, m - i >> 0, m, i); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: rotate, $c: true, $r, a, b, data, i, j, m, $s};return $f;
	};
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = reflectlite.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/fmtsort"] = (function() {
	var $pkg = {}, $init, reflect, sort, SortedMap, ptrType, sliceType, Sort, compare, nilCompare, floatCompare, isNaN;
	reflect = $packages["reflect"];
	sort = $packages["sort"];
	SortedMap = $pkg.SortedMap = $newType(0, $kindStruct, "fmtsort.SortedMap", true, "internal/fmtsort", true, function(Key_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Key = sliceType.nil;
			this.Value = sliceType.nil;
			return;
		}
		this.Key = Key_;
		this.Value = Value_;
	});
	ptrType = $ptrType(SortedMap);
	sliceType = $sliceType(reflect.Value);
	SortedMap.ptr.prototype.Len = function() {
		var o;
		o = this;
		return o.Key.$length;
	};
	SortedMap.prototype.Len = function() { return this.$val.Len(); };
	SortedMap.ptr.prototype.Less = function(i, j) {
		var {$24r, _r, i, j, o, x, x$1, $s, $r, $c} = $restore(this, {i, j});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		o = this;
		_r = compare($clone((x = o.Key, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), reflect.Value), $clone((x$1 = o.Key, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r < 0;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: SortedMap.ptr.prototype.Less, $c: true, $r, $24r, _r, i, j, o, x, x$1, $s};return $f;
	};
	SortedMap.prototype.Less = function(i, j) { return this.$val.Less(i, j); };
	SortedMap.ptr.prototype.Swap = function(i, j) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, o, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7;
		o = this;
		_tmp = (x = o.Key, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]));
		_tmp$1 = (x$1 = o.Key, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]));
		(x$2 = o.Key, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _tmp));
		(x$3 = o.Key, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j] = _tmp$1));
		_tmp$2 = (x$4 = o.Value, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j]));
		_tmp$3 = (x$5 = o.Value, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i]));
		(x$6 = o.Value, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = _tmp$2));
		(x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3));
	};
	SortedMap.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); };
	Sort = function(mapValue) {
		var {_r, _r$1, _r$2, _r$3, iter, key, mapValue, n, sorted, value, $s, $r, $c} = $restore(this, {mapValue});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 21))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 21))) { */ case 1:
			$s = -1; return ptrType.nil;
		/* } */ case 2:
		n = $clone(mapValue, reflect.Value).Len();
		key = $makeSlice(sliceType, 0, n);
		value = $makeSlice(sliceType, 0, n);
		iter = $clone(mapValue, reflect.Value).MapRange();
		/* while (true) { */ case 4:
			_r$1 = iter.Next(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 5; continue; }
			_r$2 = iter.Key(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			key = $append(key, _r$2);
			_r$3 = iter.Value(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			value = $append(value, _r$3);
		$s = 4; continue;
		case 5:
		sorted = new SortedMap.ptr(key, value);
		$r = sort.Stable(sorted); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return sorted;
		/* */ } return; } var $f = {$blk: Sort, $c: true, $r, _r, _r$1, _r$2, _r$3, iter, key, mapValue, n, sorted, value, $s};return $f;
	};
	$pkg.Sort = Sort;
	compare = function(aVal, bVal) {
		var {$24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r, $c} = $restore(this, {aVal, bVal});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_tmp = $clone(aVal, reflect.Value).Type();
		_tmp$1 = $clone(bVal, reflect.Value).Type();
		aType = _tmp;
		bType = _tmp$1;
		if (!($interfaceIsEqual(aType, bType))) {
			$s = -1; return -1;
		}
			_1 = $clone(aVal, reflect.Value).Kind();
			/* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; }
			/* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; }
			/* */ if (_1 === (24)) { $s = 4; continue; }
			/* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; }
			/* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; }
			/* */ if (_1 === (1)) { $s = 7; continue; }
			/* */ if ((_1 === (22)) || (_1 === (26))) { $s = 8; continue; }
			/* */ if (_1 === (18)) { $s = 9; continue; }
			/* */ if (_1 === (25)) { $s = 10; continue; }
			/* */ if (_1 === (17)) { $s = 11; continue; }
			/* */ if (_1 === (20)) { $s = 12; continue; }
			/* */ $s = 13; continue;
			/* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2:
				_tmp$2 = $clone(aVal, reflect.Value).Int();
				_tmp$3 = $clone(bVal, reflect.Value).Int();
				a = _tmp$2;
				b = _tmp$3;
				if ((a.$high < b.$high || (a.$high === b.$high && a.$low < b.$low))) {
					$s = -1; return -1;
				} else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) {
					$s = -1; return 1;
				} else {
					$s = -1; return 0;
				}
				$s = 14; continue;
			/* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3:
				_tmp$4 = $clone(aVal, reflect.Value).Uint();
				_tmp$5 = $clone(bVal, reflect.Value).Uint();
				a$1 = _tmp$4;
				b$1 = _tmp$5;
				if ((a$1.$high < b$1.$high || (a$1.$high === b$1.$high && a$1.$low < b$1.$low))) {
					$s = -1; return -1;
				} else if ((a$1.$high > b$1.$high || (a$1.$high === b$1.$high && a$1.$low > b$1.$low))) {
					$s = -1; return 1;
				} else {
					$s = -1; return 0;
				}
				$s = 14; continue;
			/* } else if (_1 === (24)) { */ case 4:
				_r = $clone(aVal, reflect.Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_tmp$6 = _r;
				_r$1 = $clone(bVal, reflect.Value).String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_tmp$7 = _r$1;
				a$2 = _tmp$6;
				b$2 = _tmp$7;
				if (a$2 < b$2) {
					$s = -1; return -1;
				} else if (a$2 > b$2) {
					$s = -1; return 1;
				} else {
					$s = -1; return 0;
				}
				$s = 14; continue;
			/* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5:
				$s = -1; return floatCompare($clone(aVal, reflect.Value).Float(), $clone(bVal, reflect.Value).Float());
			/* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6:
				_tmp$8 = $clone(aVal, reflect.Value).Complex();
				_tmp$9 = $clone(bVal, reflect.Value).Complex();
				a$3 = _tmp$8;
				b$3 = _tmp$9;
				c = floatCompare(a$3.$real, b$3.$real);
				if (!((c === 0))) {
					$s = -1; return c;
				}
				$s = -1; return floatCompare(a$3.$imag, b$3.$imag);
			/* } else if (_1 === (1)) { */ case 7:
				_tmp$10 = $clone(aVal, reflect.Value).Bool();
				_tmp$11 = $clone(bVal, reflect.Value).Bool();
				a$4 = _tmp$10;
				b$4 = _tmp$11;
				if (a$4 === b$4) {
					$s = -1; return 0;
				} else if (a$4) {
					$s = -1; return 1;
				} else {
					$s = -1; return -1;
				}
				$s = 14; continue;
			/* } else if ((_1 === (22)) || (_1 === (26))) { */ case 8:
				_tmp$12 = $clone(aVal, reflect.Value).Pointer();
				_tmp$13 = $clone(bVal, reflect.Value).Pointer();
				a$5 = _tmp$12;
				b$5 = _tmp$13;
				if (a$5 < b$5) {
					$s = -1; return -1;
				} else if (a$5 > b$5) {
					$s = -1; return 1;
				} else {
					$s = -1; return 0;
				}
				$s = 14; continue;
			/* } else if (_1 === (18)) { */ case 9:
				_tuple = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value));
				c$1 = _tuple[0];
				ok = _tuple[1];
				if (ok) {
					$s = -1; return c$1;
				}
				_tmp$14 = $clone(aVal, reflect.Value).Pointer();
				_tmp$15 = $clone(bVal, reflect.Value).Pointer();
				ap = _tmp$14;
				bp = _tmp$15;
				if (ap < bp) {
					$s = -1; return -1;
				} else if (ap > bp) {
					$s = -1; return 1;
				} else {
					$s = -1; return 0;
				}
				$s = 14; continue;
			/* } else if (_1 === (25)) { */ case 10:
				i = 0;
				/* while (true) { */ case 17:
					/* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; }
					_r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					_arg = $clone(_r$2, reflect.Value);
					_r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					_arg$1 = $clone(_r$3, reflect.Value);
					_r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					c$2 = _r$4;
					if (!((c$2 === 0))) {
						$s = -1; return c$2;
					}
					i = i + (1) >> 0;
				$s = 17; continue;
				case 18:
				$s = -1; return 0;
			/* } else if (_1 === (17)) { */ case 11:
				i$1 = 0;
				/* while (true) { */ case 22:
					/* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(aVal, reflect.Value).Len())) { $s = 23; continue; }
					_r$5 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					_arg$2 = $clone(_r$5, reflect.Value);
					_r$6 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					_arg$3 = $clone(_r$6, reflect.Value);
					_r$7 = compare(_arg$2, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					c$3 = _r$7;
					if (!((c$3 === 0))) {
						$s = -1; return c$3;
					}
					i$1 = i$1 + (1) >> 0;
				$s = 22; continue;
				case 23:
				$s = -1; return 0;
			/* } else if (_1 === (20)) { */ case 12:
				_tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value));
				c$4 = _tuple$1[0];
				ok$1 = _tuple$1[1];
				if (ok$1) {
					$s = -1; return c$4;
				}
				_r$8 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				_r$9 = $clone(_r$8, reflect.Value).Type(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
				_r$10 = reflect.ValueOf(_r$9); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
				_arg$4 = $clone(_r$10, reflect.Value);
				_r$11 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
				_r$12 = $clone(_r$11, reflect.Value).Type(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
				_r$13 = reflect.ValueOf(_r$12); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
				_arg$5 = $clone(_r$13, reflect.Value);
				_r$14 = compare(_arg$4, _arg$5); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
				c$5 = _r$14;
				if (!((c$5 === 0))) {
					$s = -1; return c$5;
				}
				_r$15 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
				_arg$6 = $clone(_r$15, reflect.Value);
				_r$16 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
				_arg$7 = $clone(_r$16, reflect.Value);
				_r$17 = compare(_arg$6, _arg$7); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
				$24r = _r$17;
				$s = 37; case 37: return $24r;
			/* } else { */ case 13:
				_r$18 = aType.String(); /* */ $s = 38; case 38: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
				$panic(new $String("bad type in compare: " + _r$18));
			/* } */ case 14:
		case 1:
		$s = -1; return 0;
		/* */ } return; } var $f = {$blk: compare, $c: true, $r, $24r, _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s};return $f;
	};
	nilCompare = function(aVal, bVal) {
		var aVal, bVal;
		if ($clone(aVal, reflect.Value).IsNil()) {
			if ($clone(bVal, reflect.Value).IsNil()) {
				return [0, true];
			}
			return [-1, true];
		}
		if ($clone(bVal, reflect.Value).IsNil()) {
			return [1, true];
		}
		return [0, false];
	};
	floatCompare = function(a, b) {
		var a, b;
		if (isNaN(a)) {
			return -1;
		} else if (isNaN(b)) {
			return 1;
		} else if (a < b) {
			return -1;
		} else if (a > b) {
			return 1;
		}
		return 0;
	};
	isNaN = function(a) {
		var a;
		return !((a === a));
	};
	ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}];
	SortedMap.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/syscall/unix"] = (function() {
	var $pkg = {}, $init, syscall, IsNonblock, RecvfromInet4, RecvfromInet6, SendtoInet4, SendtoInet6, SendmsgNInet4, SendmsgNInet6, RecvmsgInet4, RecvmsgInet6;
	syscall = $packages["syscall"];
	IsNonblock = function(fd) {
		var _tmp, _tmp$1, err, fd, nonblocking;
		nonblocking = false;
		err = $ifaceNil;
		_tmp = false;
		_tmp$1 = $ifaceNil;
		nonblocking = _tmp;
		err = _tmp$1;
		return [nonblocking, err];
	};
	$pkg.IsNonblock = IsNonblock;
	RecvfromInet4 = function(fd, p, flags, from) {
		var fd, flags, from, p;
		return [0, new syscall.Errno(38)];
	};
	$pkg.RecvfromInet4 = RecvfromInet4;
	RecvfromInet6 = function(fd, p, flags, from) {
		var _tmp, _tmp$1, err, fd, flags, from, n, p;
		n = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = new syscall.Errno(38);
		n = _tmp;
		err = _tmp$1;
		return [n, err];
	};
	$pkg.RecvfromInet6 = RecvfromInet6;
	SendtoInet4 = function(fd, p, flags, to) {
		var err, fd, flags, p, to;
		err = $ifaceNil;
		err = new syscall.Errno(38);
		return err;
	};
	$pkg.SendtoInet4 = SendtoInet4;
	SendtoInet6 = function(fd, p, flags, to) {
		var err, fd, flags, p, to;
		err = $ifaceNil;
		err = new syscall.Errno(38);
		return err;
	};
	$pkg.SendtoInet6 = SendtoInet6;
	SendmsgNInet4 = function(fd, p, oob, to, flags) {
		var _tmp, _tmp$1, err, fd, flags, n, oob, p, to;
		n = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = new syscall.Errno(38);
		n = _tmp;
		err = _tmp$1;
		return [n, err];
	};
	$pkg.SendmsgNInet4 = SendmsgNInet4;
	SendmsgNInet6 = function(fd, p, oob, to, flags) {
		var _tmp, _tmp$1, err, fd, flags, n, oob, p, to;
		n = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = new syscall.Errno(38);
		n = _tmp;
		err = _tmp$1;
		return [n, err];
	};
	$pkg.SendmsgNInet6 = SendmsgNInet6;
	RecvmsgInet4 = function(fd, p, oob, flags, from) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, from, n, oob, oobn, p, recvflags;
		n = 0;
		oobn = 0;
		recvflags = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = 0;
		_tmp$2 = 0;
		_tmp$3 = new syscall.Errno(38);
		n = _tmp;
		oobn = _tmp$1;
		recvflags = _tmp$2;
		err = _tmp$3;
		return [n, oobn, recvflags, err];
	};
	$pkg.RecvmsgInet4 = RecvmsgInet4;
	RecvmsgInet6 = function(fd, p, oob, flags, from) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, err, fd, flags, from, n, oob, oobn, p, recvflags;
		n = 0;
		oobn = 0;
		recvflags = 0;
		err = $ifaceNil;
		_tmp = 0;
		_tmp$1 = 0;
		_tmp$2 = 0;
		_tmp$3 = new syscall.Errno(38);
		n = _tmp;
		oobn = _tmp$1;
		recvflags = _tmp$2;
		err = _tmp$3;
		return [n, oobn, recvflags, err];
	};
	$pkg.RecvmsgInet6 = RecvmsgInet6;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/poll"] = (function() {
	var $pkg = {}, $init, errors, unix, io, atomic, syscall, time, FD, pollDesc, fdMutex, errNetClosing, DeadlineExceededError, ptrType, ptrType$1, ptrType$2, ptrType$3, sliceType, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, funcType, funcType$1, ptrType$8, ptrType$9, ptrType$10, tryDupCloexec, tryDupCloexec$24ptr, accept, runtime_Semacquire, runtime_Semrelease, DupCloseOnExec, dupCloseOnExecOld, ignoringEINTRIO, ignoringEINTR, setDeadlineImpl, errClosing, fcntl;
	errors = $packages["errors"];
	unix = $packages["internal/syscall/unix"];
	io = $packages["io"];
	atomic = $packages["sync/atomic"];
	syscall = $packages["syscall"];
	time = $packages["time"];
	FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0);
			this.Sysfd = 0;
			this.pd = new pollDesc.ptr(ptrType$2.nil, false);
			this.iovecs = ptrType$4.nil;
			this.csema = 0;
			this.isBlocking = 0;
			this.IsStream = false;
			this.ZeroReadIsEOF = false;
			this.isFile = false;
			return;
		}
		this.fdmu = fdmu_;
		this.Sysfd = Sysfd_;
		this.pd = pd_;
		this.iovecs = iovecs_;
		this.csema = csema_;
		this.isBlocking = isBlocking_;
		this.IsStream = IsStream_;
		this.ZeroReadIsEOF = ZeroReadIsEOF_;
		this.isFile = isFile_;
	});
	pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(fd_, closing_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.fd = ptrType$2.nil;
			this.closing = false;
			return;
		}
		this.fd = fd_;
		this.closing = closing_;
	});
	fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.state = new $Uint64(0, 0);
			this.rsema = 0;
			this.wsema = 0;
			return;
		}
		this.state = state_;
		this.rsema = rsema_;
		this.wsema = wsema_;
	});
	errNetClosing = $pkg.errNetClosing = $newType(0, $kindStruct, "poll.errNetClosing", true, "internal/poll", false, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	DeadlineExceededError = $pkg.DeadlineExceededError = $newType(0, $kindStruct, "poll.DeadlineExceededError", true, "internal/poll", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	ptrType = $ptrType($Uint32);
	ptrType$1 = $ptrType($Int32);
	ptrType$2 = $ptrType(FD);
	ptrType$3 = $ptrType($Uint64);
	sliceType = $sliceType(syscall.Iovec);
	ptrType$4 = $ptrType(sliceType);
	sliceType$1 = $sliceType($Uint8);
	ptrType$5 = $ptrType(syscall.SockaddrInet4);
	ptrType$6 = $ptrType(syscall.SockaddrInet6);
	ptrType$7 = $ptrType(syscall.Stat_t);
	funcType = $funcType([$Uintptr], [$Bool], false);
	funcType$1 = $funcType([$Uintptr], [], false);
	ptrType$8 = $ptrType(pollDesc);
	ptrType$9 = $ptrType(fdMutex);
	ptrType$10 = $ptrType(DeadlineExceededError);
	accept = function(s) {
		var {_r, _r$1, _tuple, err, ns, s, sa, $s, $r, $c} = $restore(this, {s});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $pkg.AcceptFunc(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		ns = _tuple[0];
		sa = _tuple[1];
		err = _tuple[2];
		if ($interfaceIsEqual(err, $ifaceNil)) {
			syscall.CloseOnExec(ns);
		}
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [-1, $ifaceNil, "accept", err];
		}
		err = syscall.SetNonblock(ns, true);
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			_r$1 = $pkg.CloseFunc(ns); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$1;
			$s = -1; return [-1, $ifaceNil, "setnonblock", err];
		/* } */ case 3:
		$s = -1; return [ns, sa, "", $ifaceNil];
		/* */ } return; } var $f = {$blk: accept, $c: true, $r, _r, _r$1, _tuple, err, ns, s, sa, $s};return $f;
	};
	runtime_Semacquire = function() {
		$throwRuntimeError("native function not implemented: internal/poll.runtime_Semacquire");
	};
	runtime_Semrelease = function() {
		$throwRuntimeError("native function not implemented: internal/poll.runtime_Semrelease");
	};
	FD.ptr.prototype.Init = function(net, pollable) {
		var err, fd, net, pollable;
		fd = this;
		if (net === "file") {
			fd.isFile = true;
		}
		if (!pollable) {
			fd.isBlocking = 1;
			return $ifaceNil;
		}
		err = fd.pd.init(fd);
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			fd.isBlocking = 1;
		}
		return err;
	};
	FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); };
	FD.ptr.prototype.destroy = function() {
		var {_r, err, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		fd.pd.close();
		_r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		fd.Sysfd = -1;
		$r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.destroy, $c: true, $r, _r, err, fd, $s};return $f;
	};
	FD.prototype.destroy = function() { return this.$val.destroy(); };
	FD.ptr.prototype.Close = function() {
		var {_r, _r$1, err, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!_r) { */ case 1:
			$s = -1; return errClosing(fd.isFile);
		/* } */ case 2:
		fd.pd.evict();
		_r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		/* */ if (fd.isBlocking === 0) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (fd.isBlocking === 0) { */ case 5:
			$r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 6:
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.Close, $c: true, $r, _r, _r$1, err, fd, $s};return $f;
	};
	FD.prototype.Close = function() { return this.$val.Close(); };
	FD.ptr.prototype.SetBlocking = function() {
		var {$24r, $24r$1, err, fd, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1);
		$24r$1 = syscall.SetNonblock(fd.Sysfd, false);
		$s = 4; case 4: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.SetBlocking, $c: true, $r, $24r, $24r$1, err, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.SetBlocking = function() { return this.$val.SetBlocking(); };
	FD.ptr.prototype.Read = function(p) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r, $c} = $restore(this, {p});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		/* */ if (p.$length === 0) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (p.$length === 0) { */ case 5:
			$24r$1 = [0, $ifaceNil];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 8; continue; }
		/* */ $s = 9; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 8:
			$24r$2 = [0, err$1];
			$s = 10; case 10: return $24r$2;
		/* } */ case 9:
		if (fd.IsStream && p.$length > 1073741824) {
			p = $subslice(p, 0, 1073741824);
		}
		/* while (true) { */ case 11:
			_r$1 = ignoringEINTRIO(syscall.Read, fd.Sysfd, p); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			n = _tuple[0];
			err$2 = _tuple[1];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				n = 0;
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 11; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$3 = [n, err$2];
			$s = 14; case 14: return $24r$3;
		case 12:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Read, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred};return $f; } }
	};
	FD.prototype.Read = function(p) { return this.$val.Read(p); };
	FD.ptr.prototype.Pread = function(p, off) {
		var {_r, _r$1, _tuple, err, err$1, fd, n, off, p, $s, $r, $c} = $restore(this, {p, off});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		err = fd.incref();
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [0, err];
		}
		if (fd.IsStream && p.$length > 1073741824) {
			p = $subslice(p, 0, 1073741824);
		}
		n = 0;
		err$1 = $ifaceNil;
		/* while (true) { */ case 1:
			_r = syscall.Pread(fd.Sysfd, p, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_tuple = _r;
			n = _tuple[0];
			err$1 = _tuple[1];
			if (!($interfaceIsEqual(err$1, new syscall.Errno(4)))) {
				/* break; */ $s = 2; continue;
			}
		$s = 1; continue;
		case 2:
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			n = 0;
		}
		_r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$1;
		err$1 = fd.eofError(n, err$1);
		$s = -1; return [n, err$1];
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.Pread, $c: true, $r, _r, _r$1, _tuple, err, err$1, fd, n, off, p, $s};return $f;
	};
	FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); };
	FD.ptr.prototype.ReadFrom = function(p) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r, $c} = $restore(this, {p});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, $ifaceNil, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, $ifaceNil, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = syscall.Recvfrom(fd.Sysfd, p, 0);
			n = _tuple[0];
			sa = _tuple[1];
			err$2 = _tuple[2];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				n = 0;
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, sa, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, $ifaceNil, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadFrom, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); };
	FD.ptr.prototype.ReadFromInet4 = function(p, from) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred, $r, $c} = $restore(this, {p, from});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.RecvfromInet4(fd.Sysfd, p, 0, from);
			n = _tuple[0];
			err$2 = _tuple[1];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				n = 0;
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadFromInet4, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadFromInet4 = function(p, from) { return this.$val.ReadFromInet4(p, from); };
	FD.ptr.prototype.ReadFromInet6 = function(p, from) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred, $r, $c} = $restore(this, {p, from});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.RecvfromInet6(fd.Sysfd, p, 0, from);
			n = _tuple[0];
			err$2 = _tuple[1];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				n = 0;
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadFromInet6, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, from, n, p, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadFromInet6 = function(p, from) { return this.$val.ReadFromInet6(p, from); };
	FD.ptr.prototype.ReadMsg = function(p, oob, flags) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, 0, $ifaceNil, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, 0, $ifaceNil, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = syscall.Recvmsg(fd.Sysfd, p, oob, flags);
			n = _tuple[0];
			oobn = _tuple[1];
			sysflags = _tuple[2];
			sa = _tuple[3];
			err$2 = _tuple[4];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, oobn, sysflags, sa, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadMsg, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, sysflags, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadMsg = function(p, oob, flags) { return this.$val.ReadMsg(p, oob, flags); };
	FD.ptr.prototype.ReadMsgInet4 = function(p, oob, flags, sa4) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa4, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags, sa4});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, 0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, 0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.RecvmsgInet4(fd.Sysfd, p, oob, flags, sa4);
			n = _tuple[0];
			oobn = _tuple[1];
			sysflags = _tuple[2];
			err$2 = _tuple[3];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, oobn, sysflags, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, 0, 0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadMsgInet4, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa4, sysflags, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadMsgInet4 = function(p, oob, flags, sa4) { return this.$val.ReadMsgInet4(p, oob, flags, sa4); };
	FD.ptr.prototype.ReadMsgInet6 = function(p, oob, flags, sa6) {
		var {$24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa6, sysflags, $s, $deferred, $r, $c} = $restore(this, {p, oob, flags, sa6});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, 0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, 0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.RecvmsgInet6(fd.Sysfd, p, oob, flags, sa6);
			n = _tuple[0];
			oobn = _tuple[1];
			sysflags = _tuple[2];
			err$2 = _tuple[3];
			if (!($interfaceIsEqual(err$2, $ifaceNil))) {
				if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
					/* continue; */ $s = 8; continue;
				}
				if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			}
			err$2 = fd.eofError(n, err$2);
			$24r$2 = [n, oobn, sysflags, err$2];
			$s = 10; case 10: return $24r$2;
		case 9:
		$s = -1; return [0, 0, 0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadMsgInet6, $c: true, $r, $24r, $24r$1, $24r$2, _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa6, sysflags, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadMsgInet6 = function(p, oob, flags, sa6) { return this.$val.ReadMsgInet6(p, oob, flags, sa6); };
	FD.ptr.prototype.Write = function(p) {
		var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r, $c} = $restore(this, {p});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		nn = 0;
		/* while (true) { */ case 8:
			max = p.$length;
			if (fd.IsStream && (max - nn >> 0) > 1073741824) {
				max = nn + 1073741824 >> 0;
			}
			_r$1 = ignoringEINTRIO(syscall.Write, fd.Sysfd, $subslice(p, nn, max)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			n = _tuple[0];
			err$2 = _tuple[1];
			if (n > 0) {
				nn = nn + (n) >> 0;
			}
			/* */ if (nn === p.$length) { $s = 11; continue; }
			/* */ $s = 12; continue;
			/* if (nn === p.$length) { */ case 11:
				$24r$2 = [nn, err$2];
				$s = 13; case 13: return $24r$2;
			/* } */ case 12:
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 14; continue; }
			/* */ $s = 15; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 14:
				$24r$3 = [nn, err$2];
				$s = 16; case 16: return $24r$3;
			/* } */ case 15:
			/* */ if (n === 0) { $s = 17; continue; }
			/* */ $s = 18; continue;
			/* if (n === 0) { */ case 17:
				$24r$4 = [nn, io.ErrUnexpectedEOF];
				$s = 19; case 19: return $24r$4;
			/* } */ case 18:
		$s = 8; continue;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Write, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred};return $f; } }
	};
	FD.prototype.Write = function(p) { return this.$val.Write(p); };
	FD.ptr.prototype.Pwrite = function(p, off) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r, $c} = $restore(this, {p, off});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = [0, err];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		nn = 0;
		/* while (true) { */ case 4:
			max = p.$length;
			if (fd.IsStream && (max - nn >> 0) > 1073741824) {
				max = nn + 1073741824 >> 0;
			}
			_r = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_tuple = _r;
			n = _tuple[0];
			err$1 = _tuple[1];
			if ($interfaceIsEqual(err$1, new syscall.Errno(4))) {
				/* continue; */ $s = 4; continue;
			}
			if (n > 0) {
				nn = nn + (n) >> 0;
			}
			/* */ if (nn === p.$length) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (nn === p.$length) { */ case 7:
				$24r$1 = [nn, err$1];
				$s = 9; case 9: return $24r$1;
			/* } */ case 8:
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 10:
				$24r$2 = [nn, err$1];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			/* */ if (n === 0) { $s = 13; continue; }
			/* */ $s = 14; continue;
			/* if (n === 0) { */ case 13:
				$24r$3 = [nn, io.ErrUnexpectedEOF];
				$s = 15; case 15: return $24r$3;
			/* } */ case 14:
		$s = 4; continue;
		case 5:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Pwrite, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred};return $f; } }
	};
	FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); };
	FD.ptr.prototype.WriteToInet4 = function(p, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			err$2 = unix.SendtoInet4(fd.Sysfd, p, 0, sa);
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [p.$length, $ifaceNil];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteToInet4, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteToInet4 = function(p, sa) { return this.$val.WriteToInet4(p, sa); };
	FD.ptr.prototype.WriteToInet6 = function(p, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			err$2 = unix.SendtoInet6(fd.Sysfd, p, 0, sa);
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [p.$length, $ifaceNil];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteToInet6, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteToInet6 = function(p, sa) { return this.$val.WriteToInet6(p, sa); };
	FD.ptr.prototype.WriteTo = function(p, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			err$2 = syscall.Sendto(fd.Sysfd, p, 0, sa);
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [p.$length, $ifaceNil];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteTo, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, err, err$1, err$2, fd, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); };
	FD.ptr.prototype.WriteMsg = function(p, oob, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0);
			n = _tuple[0];
			err$2 = _tuple[1];
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [n, 0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [n, oob.$length, err$2];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, 0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteMsg, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); };
	FD.ptr.prototype.WriteMsgInet4 = function(p, oob, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.SendmsgNInet4(fd.Sysfd, p, oob, sa, 0);
			n = _tuple[0];
			err$2 = _tuple[1];
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [n, 0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [n, oob.$length, err$2];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, 0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteMsgInet4, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteMsgInet4 = function(p, oob, sa) { return this.$val.WriteMsgInet4(p, oob, sa); };
	FD.ptr.prototype.WriteMsgInet6 = function(p, oob, sa) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r, $c} = $restore(this, {p, oob, sa});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, 0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [0, 0, err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_tuple = unix.SendmsgNInet6(fd.Sysfd, p, oob, sa, 0);
			n = _tuple[0];
			err$2 = _tuple[1];
			if ($interfaceIsEqual(err$2, new syscall.Errno(4))) {
				/* continue; */ $s = 8; continue;
			}
			if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) {
				err$2 = fd.pd.waitWrite(fd.isFile);
				if ($interfaceIsEqual(err$2, $ifaceNil)) {
					/* continue; */ $s = 8; continue;
				}
			}
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10:
				$24r$2 = [n, 0, err$2];
				$s = 12; case 12: return $24r$2;
			/* } */ case 11:
			$24r$3 = [n, oob.$length, err$2];
			$s = 13; case 13: return $24r$3;
		case 9:
		$s = -1; return [0, 0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteMsgInet6, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteMsgInet6 = function(p, oob, sa) { return this.$val.WriteMsgInet6(p, oob, sa); };
	FD.ptr.prototype.Accept = function() {
		var {$24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [-1, $ifaceNil, "", err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = [-1, $ifaceNil, "", err$1];
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_r$1 = accept(fd.Sysfd); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			s = _tuple[0];
			rsa = _tuple[1];
			errcall = _tuple[2];
			err$2 = _tuple[3];
			/* */ if ($interfaceIsEqual(err$2, $ifaceNil)) { $s = 11; continue; }
			/* */ $s = 12; continue;
			/* if ($interfaceIsEqual(err$2, $ifaceNil)) { */ case 11:
				$24r$2 = [s, rsa, "", err$2];
				$s = 13; case 13: return $24r$2;
			/* } */ case 12:
			_1 = err$2;
			if ($interfaceIsEqual(_1, new syscall.Errno((4)))) {
				/* continue; */ $s = 8; continue;
			} else if ($interfaceIsEqual(_1, new syscall.Errno((11)))) {
				if (fd.pd.pollable()) {
					err$2 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$2, $ifaceNil)) {
						/* continue; */ $s = 8; continue;
					}
				}
			} else if ($interfaceIsEqual(_1, new syscall.Errno((103)))) {
				/* continue; */ $s = 8; continue;
			}
			$24r$3 = [-1, $ifaceNil, errcall, err$2];
			$s = 14; case 14: return $24r$3;
		case 9:
		$s = -1; return [0, $ifaceNil, "", $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Accept, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred};return $f; } }
	};
	FD.prototype.Accept = function() { return this.$val.Accept(); };
	FD.ptr.prototype.Seek = function(offset, whence) {
		var {$24r, $24r$1, _r, err, fd, offset, whence, $s, $deferred, $r, $c} = $restore(this, {offset, whence});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = [new $Int64(0, 0), err];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		_r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Seek, $c: true, $r, $24r, $24r$1, _r, err, fd, offset, whence, $s, $deferred};return $f; } }
	};
	FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); };
	FD.ptr.prototype.ReadDirent = function(buf) {
		var {$24r, $24r$1, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r, $c} = $restore(this, {buf});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = [0, err];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		/* while (true) { */ case 4:
			_r = ignoringEINTRIO(syscall.ReadDirent, fd.Sysfd, buf); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_tuple = _r;
			n = _tuple[0];
			err$1 = _tuple[1];
			if (!($interfaceIsEqual(err$1, $ifaceNil))) {
				n = 0;
				if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) {
					err$1 = fd.pd.waitRead(fd.isFile);
					if ($interfaceIsEqual(err$1, $ifaceNil)) {
						/* continue; */ $s = 4; continue;
					}
				}
			}
			$24r$1 = [n, err$1];
			$s = 7; case 7: return $24r$1;
		case 5:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.ReadDirent, $c: true, $r, $24r, $24r$1, _r, _tuple, buf, err, err$1, fd, n, $s, $deferred};return $f; } }
	};
	FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); };
	FD.ptr.prototype.Fchmod = function(mode) {
		var {$24r, $24r$1, _r, err, fd, mode, $s, $deferred, $r, $c} = $restore(this, {mode});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = [fd];
		mode = [mode];
		fd[0] = this;
		err = fd[0].incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd[0], "decref"), []]);
		_r = ignoringEINTR((function(fd, mode) { return function $b() {
			var {$24r$1, _r, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r = syscall.Fchmod(fd[0].Sysfd, mode[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r$1 = _r;
			$s = 2; case 2: return $24r$1;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r$1, _r, $s};return $f;
		}; })(fd, mode)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Fchmod, $c: true, $r, $24r, $24r$1, _r, err, fd, mode, $s, $deferred};return $f; } }
	};
	FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); };
	FD.ptr.prototype.Fchdir = function() {
		var {$24r, $24r$1, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		_r = syscall.Fchdir(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Fchdir, $c: true, $r, $24r, $24r$1, _r, err, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.Fchdir = function() { return this.$val.Fchdir(); };
	FD.ptr.prototype.Fstat = function(s) {
		var {$24r, $24r$1, _r, err, fd, s, $s, $deferred, $r, $c} = $restore(this, {s});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = [fd];
		s = [s];
		fd[0] = this;
		err = fd[0].incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd[0], "decref"), []]);
		_r = ignoringEINTR((function(fd, s) { return function $b() {
			var {$24r$1, _r, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r = syscall.Fstat(fd[0].Sysfd, s[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r$1 = _r;
			$s = 2; case 2: return $24r$1;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r$1, _r, $s};return $f;
		}; })(fd, s)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Fstat, $c: true, $r, $24r, $24r$1, _r, err, fd, s, $s, $deferred};return $f; } }
	};
	FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); };
	DupCloseOnExec = function(fd) {
		var {$24r, _1, _r, _tuple, e1, fd, r0, $s, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if (true && (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1)) {
			_tuple = fcntl(fd, 1, 0);
			r0 = _tuple[0];
			e1 = _tuple[1];
			if ($interfaceIsEqual(e1, $ifaceNil)) {
				$s = -1; return [r0, "", $ifaceNil];
			}
			_1 = $assertType(e1, syscall.Errno);
			if ((_1 === (22)) || (_1 === (38))) {
				atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$1(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0);
			} else {
				$s = -1; return [-1, "fcntl", e1];
			}
		}
		_r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: DupCloseOnExec, $c: true, $r, $24r, _1, _r, _tuple, e1, fd, r0, $s};return $f;
	};
	$pkg.DupCloseOnExec = DupCloseOnExec;
	dupCloseOnExecOld = function(fd) {
		var {$24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred, $r, $c} = $restore(this, {fd});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		$r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]);
		_tuple = syscall.Dup(fd);
		newfd = _tuple[0];
		err = _tuple[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [-1, "dup", err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		syscall.CloseOnExec(newfd);
		$24r$1 = [newfd, "", $ifaceNil];
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dupCloseOnExecOld, $c: true, $r, $24r, $24r$1, _tuple, err, fd, newfd, $s, $deferred};return $f; } }
	};
	FD.ptr.prototype.Dup = function() {
		var {$24r, $24r$1, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = [-1, "", err];
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		_r = DupCloseOnExec(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Dup, $c: true, $r, $24r, $24r$1, _r, err, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.Dup = function() { return this.$val.Dup(); };
	FD.ptr.prototype.WaitWrite = function() {
		var fd;
		fd = this;
		return fd.pd.waitWrite(fd.isFile);
	};
	FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); };
	FD.ptr.prototype.WriteOnce = function(p) {
		var {$24r, $24r$1, _r, _r$1, err, fd, p, $s, $deferred, $r, $c} = $restore(this, {p});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = [0, err];
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		_r$1 = ignoringEINTRIO(syscall.Write, fd.Sysfd, p); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r$1 = _r$1;
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.WriteOnce, $c: true, $r, $24r, $24r$1, _r, _r$1, err, fd, p, $s, $deferred};return $f; } }
	};
	FD.prototype.WriteOnce = function(p) { return this.$val.WriteOnce(p); };
	FD.ptr.prototype.RawRead = function(f) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = err;
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "readUnlock"), []]);
		err$1 = fd.pd.prepareRead(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = err$1;
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (_r$1) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_r$1) { */ case 10:
				$24r$2 = $ifaceNil;
				$s = 13; case 13: return $24r$2;
			/* } */ case 11:
			err$2 = fd.pd.waitRead(fd.isFile);
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 14; continue; }
			/* */ $s = 15; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 14:
				$24r$3 = err$2;
				$s = 16; case 16: return $24r$3;
			/* } */ case 15:
		$s = 8; continue;
		case 9:
		$s = -1; return $ifaceNil;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.RawRead, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); };
	FD.ptr.prototype.RawWrite = function(f) {
		var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		_r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		err = _r;
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
			$24r = err;
			$s = 4; case 4: return $24r;
		/* } */ case 3:
		$deferred.push([$methodVal(fd, "writeUnlock"), []]);
		err$1 = fd.pd.prepareWrite(fd.isFile);
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
			$24r$1 = err$1;
			$s = 7; case 7: return $24r$1;
		/* } */ case 6:
		/* while (true) { */ case 8:
			_r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (_r$1) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_r$1) { */ case 10:
				$24r$2 = $ifaceNil;
				$s = 13; case 13: return $24r$2;
			/* } */ case 11:
			err$2 = fd.pd.waitWrite(fd.isFile);
			/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 14; continue; }
			/* */ $s = 15; continue;
			/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 14:
				$24r$3 = err$2;
				$s = 16; case 16: return $24r$3;
			/* } */ case 15:
		$s = 8; continue;
		case 9:
		$s = -1; return $ifaceNil;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.RawWrite, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); };
	ignoringEINTRIO = function(fn, fd, p) {
		var {_r, _tuple, err, fd, fn, n, p, $s, $r, $c} = $restore(this, {fn, fd, p});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* while (true) { */ case 1:
			_r = fn(fd, p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			_tuple = _r;
			n = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, new syscall.Errno(4)))) {
				$s = -1; return [n, err];
			}
		$s = 1; continue;
		case 2:
		$s = -1; return [0, $ifaceNil];
		/* */ } return; } var $f = {$blk: ignoringEINTRIO, $c: true, $r, _r, _tuple, err, fd, fn, n, p, $s};return $f;
	};
	FD.ptr.prototype.eofError = function(n, err) {
		var err, fd, n;
		fd = this;
		if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) {
			return io.EOF;
		}
		return err;
	};
	FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); };
	FD.ptr.prototype.Shutdown = function(how) {
		var {$24r, $24r$1, err, fd, how, $s, $deferred, $r, $c} = $restore(this, {how});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		$24r$1 = syscall.Shutdown(fd.Sysfd, how);
		$s = 4; case 4: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Shutdown, $c: true, $r, $24r, $24r$1, err, fd, how, $s, $deferred};return $f; } }
	};
	FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); };
	FD.ptr.prototype.Fchown = function(uid, gid) {
		var {$24r, $24r$1, _r, err, fd, gid, uid, $s, $deferred, $r, $c} = $restore(this, {uid, gid});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = [fd];
		gid = [gid];
		uid = [uid];
		fd[0] = this;
		err = fd[0].incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd[0], "decref"), []]);
		_r = ignoringEINTR((function(fd, gid, uid) { return function $b() {
			var {$24r$1, _r, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r = syscall.Fchown(fd[0].Sysfd, uid[0], gid[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r$1 = _r;
			$s = 2; case 2: return $24r$1;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r$1, _r, $s};return $f;
		}; })(fd, gid, uid)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Fchown, $c: true, $r, $24r, $24r$1, _r, err, fd, gid, uid, $s, $deferred};return $f; } }
	};
	FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); };
	FD.ptr.prototype.Ftruncate = function(size) {
		var {$24r, $24r$1, _r, err, fd, size, $s, $deferred, $r, $c} = $restore(this, {size});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = [fd];
		size = [size];
		fd[0] = this;
		err = fd[0].incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd[0], "decref"), []]);
		_r = ignoringEINTR((function(fd, size) { return function $b() {
			var {$24r$1, _r, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r = syscall.Ftruncate(fd[0].Sysfd, size[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r$1 = _r;
			$s = 2; case 2: return $24r$1;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r$1, _r, $s};return $f;
		}; })(fd, size)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Ftruncate, $c: true, $r, $24r, $24r$1, _r, err, fd, size, $s, $deferred};return $f; } }
	};
	FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); };
	FD.ptr.prototype.RawControl = function(f) {
		var {$24r, $24r$1, err, f, fd, $s, $deferred, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = this;
		err = fd.incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd, "decref"), []]);
		$r = f(((fd.Sysfd >>> 0))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$24r$1 = $ifaceNil;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.RawControl, $c: true, $r, $24r, $24r$1, err, f, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); };
	ignoringEINTR = function(fn) {
		var {_r, err, fn, $s, $r, $c} = $restore(this, {fn});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* while (true) { */ case 1:
			_r = fn(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			err = _r;
			if (!($interfaceIsEqual(err, new syscall.Errno(4)))) {
				$s = -1; return err;
			}
		$s = 1; continue;
		case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: ignoringEINTR, $c: true, $r, _r, err, fn, $s};return $f;
	};
	pollDesc.ptr.prototype.init = function(fd) {
		var fd, pd;
		pd = this;
		pd.fd = fd;
		return $ifaceNil;
	};
	pollDesc.prototype.init = function(fd) { return this.$val.init(fd); };
	pollDesc.ptr.prototype.close = function() {
		var pd;
		pd = this;
	};
	pollDesc.prototype.close = function() { return this.$val.close(); };
	pollDesc.ptr.prototype.evict = function() {
		var pd;
		pd = this;
		pd.closing = true;
		if (!(pd.fd === ptrType$2.nil)) {
			syscall.StopIO(pd.fd.Sysfd);
		}
	};
	pollDesc.prototype.evict = function() { return this.$val.evict(); };
	pollDesc.ptr.prototype.prepare = function(mode, isFile) {
		var isFile, mode, pd;
		pd = this;
		if (pd.closing) {
			return errClosing(isFile);
		}
		return $ifaceNil;
	};
	pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); };
	pollDesc.ptr.prototype.prepareRead = function(isFile) {
		var isFile, pd;
		pd = this;
		return pd.prepare(114, isFile);
	};
	pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); };
	pollDesc.ptr.prototype.prepareWrite = function(isFile) {
		var isFile, pd;
		pd = this;
		return pd.prepare(119, isFile);
	};
	pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); };
	pollDesc.ptr.prototype.wait = function(mode, isFile) {
		var isFile, mode, pd;
		pd = this;
		if (pd.closing) {
			return errClosing(isFile);
		}
		if (isFile) {
			return $ifaceNil;
		}
		return $pkg.ErrDeadlineExceeded;
	};
	pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); };
	pollDesc.ptr.prototype.waitRead = function(isFile) {
		var isFile, pd;
		pd = this;
		return pd.wait(114, isFile);
	};
	pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); };
	pollDesc.ptr.prototype.waitWrite = function(isFile) {
		var isFile, pd;
		pd = this;
		return pd.wait(119, isFile);
	};
	pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); };
	pollDesc.ptr.prototype.pollable = function() {
		var pd;
		pd = this;
		return true;
	};
	pollDesc.prototype.pollable = function() { return this.$val.pollable(); };
	FD.ptr.prototype.SetDeadline = function(t) {
		var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = setDeadlineImpl(fd, $clone(t, time.Time), 233); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.SetDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f;
	};
	FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
	FD.ptr.prototype.SetReadDeadline = function(t) {
		var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = setDeadlineImpl(fd, $clone(t, time.Time), 114); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.SetReadDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f;
	};
	FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
	FD.ptr.prototype.SetWriteDeadline = function(t) {
		var {$24r, _r, fd, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = setDeadlineImpl(fd, $clone(t, time.Time), 119); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.SetWriteDeadline, $c: true, $r, $24r, _r, fd, t, $s};return $f;
	};
	FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
	setDeadlineImpl = function(fd, t, mode) {
		var {_1, _r, d, err, fd, mode, t, $s, $r, $c} = $restore(this, {fd, t, mode});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		d = $clone(t, time.Time).UnixNano();
		if ($clone(t, time.Time).IsZero()) {
			d = new $Int64(0, 0);
		}
		err = fd.incref();
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_1 = mode;
		if (_1 === (114)) {
			syscall.SetReadDeadline(fd.Sysfd, d);
		} else if (_1 === (119)) {
			syscall.SetWriteDeadline(fd.Sysfd, d);
		} else if (_1 === (233)) {
			syscall.SetReadDeadline(fd.Sysfd, d);
			syscall.SetWriteDeadline(fd.Sysfd, d);
		}
		_r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r;
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: setDeadlineImpl, $c: true, $r, _1, _r, d, err, fd, mode, t, $s};return $f;
	};
	fdMutex.ptr.prototype.incref = function() {
		var mu, new$1, old, x, x$1;
		mu = this;
		while (true) {
			old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
			if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
				return false;
			}
			new$1 = new $Uint64(old.$high + 0, old.$low + 8);
			if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
				$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
			}
			if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) {
				return true;
			}
		}
	};
	fdMutex.prototype.incref = function() { return this.$val.incref(); };
	fdMutex.ptr.prototype.increfAndClose = function() {
		var {mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		mu = this;
		/* while (true) { */ case 1:
			old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
			if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
				$s = -1; return false;
			}
			new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8));
			if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) {
				$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
			}
			new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0));
			/* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
				/* while (true) { */ case 5:
					/* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; }
					old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low));
					$r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 5; continue;
				case 6:
				/* while (true) { */ case 8:
					/* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; }
					old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low));
					$r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 8; continue;
				case 9:
				$s = -1; return true;
			/* } */ case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: fdMutex.ptr.prototype.increfAndClose, $c: true, $r, mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f;
	};
	fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); };
	fdMutex.ptr.prototype.decref = function() {
		var mu, new$1, old, x, x$1;
		mu = this;
		while (true) {
			old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
			if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) {
				$panic(new $String("inconsistent poll.fdMutex"));
			}
			new$1 = new $Uint64(old.$high - 0, old.$low - 8);
			if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) {
				return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1));
			}
		}
	};
	fdMutex.prototype.decref = function() { return this.$val.decref(); };
	fdMutex.ptr.prototype.rwlock = function(read) {
		var {_tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {read});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		mu = this;
		_tmp = new $Uint64(0, 0);
		_tmp$1 = new $Uint64(0, 0);
		_tmp$2 = new $Uint64(0, 0);
		mutexBit = _tmp;
		mutexWait = _tmp$1;
		mutexMask = _tmp$2;
		mutexSema = ptrType.nil;
		if (read) {
			mutexBit = new $Uint64(0, 2);
			mutexWait = new $Uint64(0, 8388608);
			mutexMask = new $Uint64(2047, 4286578688);
			mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)));
		} else {
			mutexBit = new $Uint64(0, 4);
			mutexWait = new $Uint64(2048, 0);
			mutexMask = new $Uint64(2147481600, 0);
			mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)));
		}
		/* while (true) { */ case 1:
			old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
			if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) {
				$s = -1; return false;
			}
			new$1 = new $Uint64(0, 0);
			if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
				new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8));
				if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) {
					$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
				}
			} else {
				new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low);
				if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) {
					$panic(new $String("too many concurrent operations on a single file or socket (max 1048575)"));
				}
			}
			/* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
				if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) {
					$s = -1; return true;
				}
				$r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: fdMutex.ptr.prototype.rwlock, $c: true, $r, _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s};return $f;
	};
	fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); };
	fdMutex.ptr.prototype.rwunlock = function(read) {
		var {_tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r, $c} = $restore(this, {read});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		mu = this;
		_tmp = new $Uint64(0, 0);
		_tmp$1 = new $Uint64(0, 0);
		_tmp$2 = new $Uint64(0, 0);
		mutexBit = _tmp;
		mutexWait = _tmp$1;
		mutexMask = _tmp$2;
		mutexSema = ptrType.nil;
		if (read) {
			mutexBit = new $Uint64(0, 2);
			mutexWait = new $Uint64(0, 8388608);
			mutexMask = new $Uint64(2047, 4286578688);
			mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)));
		} else {
			mutexBit = new $Uint64(0, 4);
			mutexWait = new $Uint64(2048, 0);
			mutexMask = new $Uint64(2147481600, 0);
			mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)));
		}
		/* while (true) { */ case 1:
			old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))));
			if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) {
				$panic(new $String("inconsistent poll.fdMutex"));
			}
			new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8));
			if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) {
				new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low));
			}
			/* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$3(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3:
				/* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; }
				/* */ $s = 6; continue;
				/* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5:
					$r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 6:
				$s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1));
			/* } */ case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return false;
		/* */ } return; } var $f = {$blk: fdMutex.ptr.prototype.rwunlock, $c: true, $r, _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s};return $f;
	};
	fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); };
	FD.ptr.prototype.incref = function() {
		var fd;
		fd = this;
		if (!fd.fdmu.incref()) {
			return errClosing(fd.isFile);
		}
		return $ifaceNil;
	};
	FD.prototype.incref = function() { return this.$val.incref(); };
	FD.ptr.prototype.decref = function() {
		var {$24r, _r, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		/* */ if (fd.fdmu.decref()) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (fd.fdmu.decref()) { */ case 1:
			_r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.decref, $c: true, $r, $24r, _r, fd, $s};return $f;
	};
	FD.prototype.decref = function() { return this.$val.decref(); };
	FD.ptr.prototype.readLock = function() {
		var {_r, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!_r) { */ case 1:
			$s = -1; return errClosing(fd.isFile);
		/* } */ case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.readLock, $c: true, $r, _r, fd, $s};return $f;
	};
	FD.prototype.readLock = function() { return this.$val.readLock(); };
	FD.ptr.prototype.readUnlock = function() {
		var {_r, _r$1, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_r) { */ case 1:
			_r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$1;
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.readUnlock, $c: true, $r, _r, _r$1, fd, $s};return $f;
	};
	FD.prototype.readUnlock = function() { return this.$val.readUnlock(); };
	FD.ptr.prototype.writeLock = function() {
		var {_r, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!_r) { */ case 1:
			$s = -1; return errClosing(fd.isFile);
		/* } */ case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.writeLock, $c: true, $r, _r, fd, $s};return $f;
	};
	FD.prototype.writeLock = function() { return this.$val.writeLock(); };
	FD.ptr.prototype.writeUnlock = function() {
		var {_r, _r$1, fd, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fd = this;
		_r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_r) { */ case 1:
			_r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$1;
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: FD.ptr.prototype.writeUnlock, $c: true, $r, _r, _r$1, fd, $s};return $f;
	};
	FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); };
	FD.ptr.prototype.Fsync = function() {
		var {$24r, $24r$1, _r, err, fd, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		fd = [fd];
		fd[0] = this;
		err = fd[0].incref();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			$24r = err;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		$deferred.push([$methodVal(fd[0], "decref"), []]);
		_r = ignoringEINTR((function(fd) { return function $b() {
			var {$24r$1, _r, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r = syscall.Fsync(fd[0].Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r$1 = _r;
			$s = 2; case 2: return $24r$1;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r$1, _r, $s};return $f;
		}; })(fd)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r$1 = _r;
		$s = 5; case 5: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: FD.ptr.prototype.Fsync, $c: true, $r, $24r, $24r$1, _r, err, fd, $s, $deferred};return $f; } }
	};
	FD.prototype.Fsync = function() { return this.$val.Fsync(); };
	errNetClosing.ptr.prototype.Error = function() {
		var e;
		e = this;
		return "use of closed network connection";
	};
	errNetClosing.prototype.Error = function() { return this.$val.Error(); };
	errNetClosing.ptr.prototype.Timeout = function() {
		var e;
		e = this;
		return false;
	};
	errNetClosing.prototype.Timeout = function() { return this.$val.Timeout(); };
	errNetClosing.ptr.prototype.Temporary = function() {
		var e;
		e = this;
		return false;
	};
	errNetClosing.prototype.Temporary = function() { return this.$val.Temporary(); };
	errClosing = function(isFile) {
		var isFile;
		if (isFile) {
			return $pkg.ErrFileClosing;
		}
		return new $pkg.ErrNetClosing.constructor.elem($pkg.ErrNetClosing);
	};
	DeadlineExceededError.ptr.prototype.Error = function() {
		var e;
		e = this;
		return "i/o timeout";
	};
	DeadlineExceededError.prototype.Error = function() { return this.$val.Error(); };
	DeadlineExceededError.ptr.prototype.Timeout = function() {
		var e;
		e = this;
		return true;
	};
	DeadlineExceededError.prototype.Timeout = function() { return this.$val.Timeout(); };
	DeadlineExceededError.ptr.prototype.Temporary = function() {
		var e;
		e = this;
		return true;
	};
	DeadlineExceededError.prototype.Temporary = function() { return this.$val.Temporary(); };
	fcntl = function(fd, cmd, arg) {
		var arg, cmd, fd;
		return [0, new syscall.Errno(38)];
	};
	ptrType$2.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$1, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$1], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadFromInet4", name: "ReadFromInet4", pkg: "", typ: $funcType([sliceType$1, ptrType$5], [$Int, $error], false)}, {prop: "ReadFromInet6", name: "ReadFromInet6", pkg: "", typ: $funcType([sliceType$1, ptrType$6], [$Int, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Int], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsgInet4", name: "ReadMsgInet4", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$5], [$Int, $Int, $Int, $error], false)}, {prop: "ReadMsgInet6", name: "ReadMsgInet6", pkg: "", typ: $funcType([sliceType$1, sliceType$1, $Int, ptrType$6], [$Int, $Int, $Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$1, $Int64], [$Int, $error], false)}, {prop: "WriteToInet4", name: "WriteToInet4", pkg: "", typ: $funcType([sliceType$1, ptrType$5], [$Int, $error], false)}, {prop: "WriteToInet6", name: "WriteToInet6", pkg: "", typ: $funcType([sliceType$1, ptrType$6], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$1, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$1, sliceType$1, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet4", name: "WriteMsgInet4", pkg: "", typ: $funcType([sliceType$1, sliceType$1, ptrType$5], [$Int, $Int, $error], false)}, {prop: "WriteMsgInet6", name: "WriteMsgInet6", pkg: "", typ: $funcType([sliceType$1, sliceType$1, ptrType$6], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$7], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}];
	ptrType$8.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$2], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}];
	ptrType$9.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}];
	errNetClosing.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
	ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}];
	FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	pollDesc.init("internal/poll", [{prop: "fd", name: "fd", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]);
	errNetClosing.init("", []);
	DeadlineExceededError.init("", []);
	$pkg.$initLinknames = function() {
		runtime_Semacquire = $linknames["sync.runtime_Semacquire"];
		runtime_Semrelease = $linknames["sync.runtime_Semrelease"];
};
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unix.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.CloseFunc = syscall.Close;
		$pkg.AcceptFunc = syscall.Accept;
		tryDupCloexec = 1;
		$pkg.ErrNetClosing = new errNetClosing.ptr();
		$pkg.ErrFileClosing = errors.New("use of closed file");
		$pkg.ErrNoDeadline = errors.New("file type does not support deadline");
		$pkg.ErrDeadlineExceeded = new DeadlineExceededError.ptr();
		$pkg.ErrNotPollable = errors.New("not pollable");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/syscall/execenv"] = (function() {
	var $pkg = {}, $init, syscall;
	syscall = $packages["syscall"];
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["internal/testlog"] = (function() {
	var $pkg = {}, $init, sync, atomic, Interface, ptrType, logger, Logger, Stat;
	sync = $packages["sync"];
	atomic = $packages["sync/atomic"];
	Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null);
	ptrType = $ptrType(Interface);
	Logger = function() {
		var impl;
		impl = logger.Load();
		if ($interfaceIsEqual(impl, $ifaceNil)) {
			return $ifaceNil;
		}
		return $assertType(impl, ptrType).$get();
	};
	$pkg.Logger = Logger;
	Stat = function(name) {
		var {log, name, $s, $r, $c} = $restore(this, {name});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		log = Logger();
		/* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1:
			$r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Stat, $c: true, $r, log, name, $s};return $f;
	};
	$pkg.Stat = Stat;
	Interface.init([{prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false)}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = sync.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		logger = new atomic.Value.ptr($ifaceNil);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["path"] = (function() {
	var $pkg = {}, $init, errors, bytealg, utf8;
	errors = $packages["errors"];
	bytealg = $packages["internal/bytealg"];
	utf8 = $packages["unicode/utf8"];
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ErrBadPattern = errors.New("syntax error in pattern");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["io/fs"] = (function() {
	var $pkg = {}, $init, errors, oserror, io, path, sort, time, utf8, DirEntry, FileInfo, FileMode, PathError, ptrType, sliceType$2, arrayType, interfaceType, errInvalid, errPermission, errExist, errNotExist, errClosed;
	errors = $packages["errors"];
	oserror = $packages["internal/oserror"];
	io = $packages["io"];
	path = $packages["path"];
	sort = $packages["sort"];
	time = $packages["time"];
	utf8 = $packages["unicode/utf8"];
	DirEntry = $pkg.DirEntry = $newType(8, $kindInterface, "fs.DirEntry", true, "io/fs", true, null);
	FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "fs.FileInfo", true, "io/fs", true, null);
	FileMode = $pkg.FileMode = $newType(4, $kindUint32, "fs.FileMode", true, "io/fs", true, null);
	PathError = $pkg.PathError = $newType(0, $kindStruct, "fs.PathError", true, "io/fs", true, function(Op_, Path_, Err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Op = "";
			this.Path = "";
			this.Err = $ifaceNil;
			return;
		}
		this.Op = Op_;
		this.Path = Path_;
		this.Err = Err_;
	});
	ptrType = $ptrType(PathError);
	sliceType$2 = $sliceType($Uint8);
	arrayType = $arrayType($Uint8, 32);
	interfaceType = $interfaceType([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]);
	errInvalid = function() {
		return oserror.ErrInvalid;
	};
	errPermission = function() {
		return oserror.ErrPermission;
	};
	errExist = function() {
		return oserror.ErrExist;
	};
	errNotExist = function() {
		return oserror.ErrNotExist;
	};
	errClosed = function() {
		return oserror.ErrClosed;
	};
	FileMode.prototype.String = function() {
		var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1;
		m = this.$val;
		buf = arrayType.zero();
		w = 0;
		_ref = "dalTLDpSugct?";
		_i = 0;
		while (true) {
			if (!(_i < _ref.length)) { break; }
			_rune = $decodeRune(_ref, _i);
			i = _i;
			c = _rune[0];
			if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) {
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24)));
				w = w + (1) >> 0;
			}
			_i += _rune[1];
		}
		if (w === 0) {
			((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
			w = w + (1) >> 0;
		}
		_ref$1 = "rwxrwxrwx";
		_i$1 = 0;
		while (true) {
			if (!(_i$1 < _ref$1.length)) { break; }
			_rune$1 = $decodeRune(_ref$1, _i$1);
			i$1 = _i$1;
			c$1 = _rune$1[0];
			if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) {
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24)));
			} else {
				((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45);
			}
			w = w + (1) >> 0;
			_i$1 += _rune$1[1];
		}
		return ($bytesToString($subslice(new sliceType$2(buf), 0, w)));
	};
	$ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); };
	FileMode.prototype.IsDir = function() {
		var m;
		m = this.$val;
		return !((((m & 2147483648) >>> 0) === 0));
	};
	$ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); };
	FileMode.prototype.IsRegular = function() {
		var m;
		m = this.$val;
		return ((m & 2401763328) >>> 0) === 0;
	};
	$ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); };
	FileMode.prototype.Perm = function() {
		var m;
		m = this.$val;
		return (m & 511) >>> 0;
	};
	$ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); };
	FileMode.prototype.Type = function() {
		var m;
		m = this.$val;
		return (m & 2401763328) >>> 0;
	};
	$ptrType(FileMode).prototype.Type = function() { return new FileMode(this.$get()).Type(); };
	PathError.ptr.prototype.Error = function() {
		var {$24r, _r, e, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = e.Op + " " + e.Path + ": " + _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: PathError.ptr.prototype.Error, $c: true, $r, $24r, _r, e, $s};return $f;
	};
	PathError.prototype.Error = function() { return this.$val.Error(); };
	PathError.ptr.prototype.Unwrap = function() {
		var e;
		e = this;
		return e.Err;
	};
	PathError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
	PathError.ptr.prototype.Timeout = function() {
		var {$24r, _r, _tuple, _v, e, ok, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_tuple = $assertType(e.Err, interfaceType, true);
		t = _tuple[0];
		ok = _tuple[1];
		if (!(ok)) { _v = false; $s = 1; continue s; }
		_r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_v = _r; case 1:
		$24r = _v;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: PathError.ptr.prototype.Timeout, $c: true, $r, $24r, _r, _tuple, _v, e, ok, t, $s};return $f;
	};
	PathError.prototype.Timeout = function() { return this.$val.Timeout(); };
	FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}];
	ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
	DirEntry.init([{prop: "Info", name: "Info", pkg: "", typ: $funcType([], [FileInfo, $error], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [FileMode], false)}]);
	FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]);
	PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = oserror.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = path.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.SkipDir = errors.New("skip this directory");
		$pkg.ErrInvalid = errInvalid();
		$pkg.ErrPermission = errPermission();
		$pkg.ErrExist = errExist();
		$pkg.ErrNotExist = errNotExist();
		$pkg.ErrClosed = errClosed();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["os"] = (function() {
	var $pkg = {}, $init, errors, js, itoa, oserror, poll, execenv, unix, testlog, unsafeheader, io, fs, runtime, sort, sync, atomic, syscall, time, fileStat, File, rawConn, file, unixDirent, LinkError, onlyWriter, timeout, SyscallError, dirInfo, readdirMode, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$5, ptrType$6, sliceType$4, ptrType$7, ptrType$8, ptrType$9, funcType, ptrType$17, ptrType$18, sliceType$7, sliceType$8, funcType$2, funcType$3, ptrType$19, ptrType$20, errPatternHasSeparator, errWriteAtInAppendMode, lstat, dirBufPool, testingForceReadDirLstat, _r, _r$1, _r$2, lstatNolog, fillFileStatFromSys, timespecToTime, Lstat, newRawConn, init, IsPathSeparator, basename, runtime_args, init$1, NewFile, newFile, epipecheck, newUnixDirent, sigpipe, syscallMode, ignoringEINTR, genericReadFrom, errNoDeadline, errDeadlineExceeded, IsNotExist, underlyingErrorIs, underlyingError, direntIno, direntReclen, direntNamlen, direntType, readInt, readIntBE, readIntLE;
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	itoa = $packages["internal/itoa"];
	oserror = $packages["internal/oserror"];
	poll = $packages["internal/poll"];
	execenv = $packages["internal/syscall/execenv"];
	unix = $packages["internal/syscall/unix"];
	testlog = $packages["internal/testlog"];
	unsafeheader = $packages["internal/unsafeheader"];
	io = $packages["io"];
	fs = $packages["io/fs"];
	runtime = $packages["runtime"];
	sort = $packages["sort"];
	sync = $packages["sync"];
	atomic = $packages["sync/atomic"];
	syscall = $packages["syscall"];
	time = $packages["time"];
	fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.name = "";
			this.size = new $Int64(0, 0);
			this.mode = 0;
			this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil);
			this.sys = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0));
			return;
		}
		this.name = name_;
		this.size = size_;
		this.mode = mode_;
		this.modTime = modTime_;
		this.sys = sys_;
	});
	File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.file = ptrType$9.nil;
			return;
		}
		this.file = file_;
	});
	rawConn = $pkg.rawConn = $newType(0, $kindStruct, "os.rawConn", true, "os", false, function(file_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.file = ptrType$2.nil;
			return;
		}
		this.file = file_;
	});
	file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_, appendMode_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, false, false, false);
			this.name = "";
			this.dirinfo = ptrType$8.nil;
			this.nonblock = false;
			this.stdoutOrErr = false;
			this.appendMode = false;
			return;
		}
		this.pfd = pfd_;
		this.name = name_;
		this.dirinfo = dirinfo_;
		this.nonblock = nonblock_;
		this.stdoutOrErr = stdoutOrErr_;
		this.appendMode = appendMode_;
	});
	unixDirent = $pkg.unixDirent = $newType(0, $kindStruct, "os.unixDirent", true, "os", false, function(parent_, name_, typ_, info_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.parent = "";
			this.name = "";
			this.typ = 0;
			this.info = $ifaceNil;
			return;
		}
		this.parent = parent_;
		this.name = name_;
		this.typ = typ_;
		this.info = info_;
	});
	LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Op = "";
			this.Old = "";
			this.New = "";
			this.Err = $ifaceNil;
			return;
		}
		this.Op = Op_;
		this.Old = Old_;
		this.New = New_;
		this.Err = Err_;
	});
	onlyWriter = $pkg.onlyWriter = $newType(0, $kindStruct, "os.onlyWriter", true, "os", false, function(Writer_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Writer = $ifaceNil;
			return;
		}
		this.Writer = Writer_;
	});
	timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null);
	SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Syscall = "";
			this.Err = $ifaceNil;
			return;
		}
		this.Syscall = Syscall_;
		this.Err = Err_;
	});
	dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.buf = ptrType.nil;
			this.nbuf = 0;
			this.bufp = 0;
			return;
		}
		this.buf = buf_;
		this.nbuf = nbuf_;
		this.bufp = bufp_;
	});
	readdirMode = $pkg.readdirMode = $newType(4, $kindInt, "os.readdirMode", true, "os", false, null);
	sliceType = $sliceType($String);
	sliceType$1 = $sliceType($emptyInterface);
	sliceType$2 = $sliceType($Uint8);
	ptrType = $ptrType(sliceType$2);
	ptrType$1 = $ptrType(fileStat);
	ptrType$2 = $ptrType(File);
	ptrType$3 = $ptrType(time.Location);
	ptrType$5 = $ptrType(fs.PathError);
	ptrType$6 = $ptrType(poll.FD);
	sliceType$4 = $sliceType(syscall.Iovec);
	ptrType$7 = $ptrType(sliceType$4);
	ptrType$8 = $ptrType(dirInfo);
	ptrType$9 = $ptrType(file);
	funcType = $funcType([ptrType$9], [$error], false);
	ptrType$17 = $ptrType(LinkError);
	ptrType$18 = $ptrType(SyscallError);
	sliceType$7 = $sliceType(fs.DirEntry);
	sliceType$8 = $sliceType(fs.FileInfo);
	funcType$2 = $funcType([$Uintptr], [], false);
	funcType$3 = $funcType([$Uintptr], [$Bool], false);
	ptrType$19 = $ptrType(rawConn);
	ptrType$20 = $ptrType(unixDirent);
	fileStat.ptr.prototype.Size = function() {
		var fs$1;
		fs$1 = this;
		return fs$1.size;
	};
	fileStat.prototype.Size = function() { return this.$val.Size(); };
	fileStat.ptr.prototype.Mode = function() {
		var fs$1;
		fs$1 = this;
		return fs$1.mode;
	};
	fileStat.prototype.Mode = function() { return this.$val.Mode(); };
	fileStat.ptr.prototype.ModTime = function() {
		var fs$1;
		fs$1 = this;
		return fs$1.modTime;
	};
	fileStat.prototype.ModTime = function() { return this.$val.ModTime(); };
	fileStat.ptr.prototype.Sys = function() {
		var fs$1;
		fs$1 = this;
		return fs$1.sys;
	};
	fileStat.prototype.Sys = function() { return this.$val.Sys(); };
	fileStat.ptr.prototype.Name = function() {
		var fs$1;
		fs$1 = this;
		return fs$1.name;
	};
	fileStat.prototype.Name = function() { return this.$val.Name(); };
	fileStat.ptr.prototype.IsDir = function() {
		var fs$1;
		fs$1 = this;
		return new fs.FileMode(fs$1.Mode()).IsDir();
	};
	fileStat.prototype.IsDir = function() { return this.$val.IsDir(); };
	File.ptr.prototype.Stat = function() {
		var {_r$3, err, f, fs$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fs$1 = [fs$1];
		f = this;
		if (f === ptrType$2.nil) {
			$s = -1; return [$ifaceNil, $pkg.ErrInvalid];
		}
		fs$1[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)));
		_r$3 = f.file.pfd.Fstat(fs$1[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		err = _r$3;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [$ifaceNil, new fs.PathError.ptr("stat", f.file.name, err)];
		}
		fillFileStatFromSys(fs$1[0], f.file.name);
		$s = -1; return [fs$1[0], $ifaceNil];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Stat, $c: true, $r, _r$3, err, f, fs$1, $s};return $f;
	};
	File.prototype.Stat = function() { return this.$val.Stat(); };
	lstatNolog = function(name) {
		var {_r$3, err, fs$1, name, $s, $r, $c} = $restore(this, {name});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fs$1 = [fs$1];
		name = [name];
		fs$1[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$3.nil), new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0)));
		_r$3 = ignoringEINTR((function(fs$1, name) { return function $b() {
			var {$24r, _r$3, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$3 = syscall.Lstat(name[0], fs$1[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			$24r = _r$3;
			$s = 2; case 2: return $24r;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _r$3, $s};return $f;
		}; })(fs$1, name)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		err = _r$3;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [$ifaceNil, new fs.PathError.ptr("lstat", name[0], err)];
		}
		fillFileStatFromSys(fs$1[0], name[0]);
		$s = -1; return [fs$1[0], $ifaceNil];
		/* */ } return; } var $f = {$blk: lstatNolog, $c: true, $r, _r$3, err, fs$1, name, $s};return $f;
	};
	fillFileStatFromSys = function(fs$1, name) {
		var _1, fs$1, name;
		fs$1.name = basename(name);
		fs$1.size = fs$1.sys.Size;
		time.Time.copy(fs$1.modTime, timespecToTime(fs$1.sys.Mtime, fs$1.sys.MtimeNsec));
		fs$1.mode = ((((fs$1.sys.Mode & 511) >>> 0) >>> 0));
		_1 = (fs$1.sys.Mode & 126976) >>> 0;
		if (_1 === (24576)) {
			fs$1.mode = (fs$1.mode | (67108864)) >>> 0;
		} else if (_1 === (8192)) {
			fs$1.mode = (fs$1.mode | (69206016)) >>> 0;
		} else if (_1 === (16384)) {
			fs$1.mode = (fs$1.mode | (2147483648)) >>> 0;
		} else if (_1 === (4096)) {
			fs$1.mode = (fs$1.mode | (33554432)) >>> 0;
		} else if (_1 === (40960)) {
			fs$1.mode = (fs$1.mode | (134217728)) >>> 0;
		} else if (_1 === (32768)) {
		} else if (_1 === (49152)) {
			fs$1.mode = (fs$1.mode | (16777216)) >>> 0;
		}
		if (!((((fs$1.sys.Mode & 1024) >>> 0) === 0))) {
			fs$1.mode = (fs$1.mode | (4194304)) >>> 0;
		}
		if (!((((fs$1.sys.Mode & 2048) >>> 0) === 0))) {
			fs$1.mode = (fs$1.mode | (8388608)) >>> 0;
		}
		if (!((((fs$1.sys.Mode & 512) >>> 0) === 0))) {
			fs$1.mode = (fs$1.mode | (1048576)) >>> 0;
		}
	};
	timespecToTime = function(sec, nsec) {
		var nsec, sec;
		return time.Unix(sec, nsec);
	};
	Lstat = function(name) {
		var {$24r, _r$3, name, $s, $r, $c} = $restore(this, {name});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r$3 = lstatNolog(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Lstat, $c: true, $r, $24r, _r$3, name, $s};return $f;
	};
	$pkg.Lstat = Lstat;
	File.ptr.prototype.readFrom = function(r) {
		var _tmp, _tmp$1, _tmp$2, err, f, handled, n, r;
		n = new $Int64(0, 0);
		handled = false;
		err = $ifaceNil;
		f = this;
		_tmp = new $Int64(0, 0);
		_tmp$1 = false;
		_tmp$2 = $ifaceNil;
		n = _tmp;
		handled = _tmp$1;
		err = _tmp$2;
		return [n, handled, err];
	};
	File.prototype.readFrom = function(r) { return this.$val.readFrom(r); };
	rawConn.ptr.prototype.Control = function(f) {
		var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		err = c.file.checkValid("SyscallConn.Control");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = c.file.file.pfd.RawControl(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		err$1 = _r$3;
		runtime.KeepAlive(c.file);
		$s = -1; return err$1;
		/* */ } return; } var $f = {$blk: rawConn.ptr.prototype.Control, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f;
	};
	rawConn.prototype.Control = function(f) { return this.$val.Control(f); };
	rawConn.ptr.prototype.Read = function(f) {
		var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		err = c.file.checkValid("SyscallConn.Read");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = c.file.file.pfd.RawRead(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		err$1 = _r$3;
		runtime.KeepAlive(c.file);
		$s = -1; return err$1;
		/* */ } return; } var $f = {$blk: rawConn.ptr.prototype.Read, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f;
	};
	rawConn.prototype.Read = function(f) { return this.$val.Read(f); };
	rawConn.ptr.prototype.Write = function(f) {
		var {_r$3, c, err, err$1, f, $s, $r, $c} = $restore(this, {f});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		err = c.file.checkValid("SyscallConn.Write");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = c.file.file.pfd.RawWrite(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		err$1 = _r$3;
		runtime.KeepAlive(c.file);
		$s = -1; return err$1;
		/* */ } return; } var $f = {$blk: rawConn.ptr.prototype.Write, $c: true, $r, _r$3, c, err, err$1, f, $s};return $f;
	};
	rawConn.prototype.Write = function(f) { return this.$val.Write(f); };
	newRawConn = function(file$1) {
		var file$1;
		return [new rawConn.ptr(file$1), $ifaceNil];
	};
	init = function() {
		if (false) {
			return;
		}
		$pkg.Args = runtime_args();
	};
	IsPathSeparator = function(c) {
		var c;
		return 47 === c;
	};
	$pkg.IsPathSeparator = IsPathSeparator;
	basename = function(name) {
		var i, name;
		i = name.length - 1 >> 0;
		while (true) {
			if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; }
			name = $substring(name, 0, i);
			i = i - (1) >> 0;
		}
		i = i - (1) >> 0;
		while (true) {
			if (!(i >= 0)) { break; }
			if (name.charCodeAt(i) === 47) {
				name = $substring(name, (i + 1 >> 0));
				break;
			}
			i = i - (1) >> 0;
		}
		return name;
	};
	runtime_args = function() {
		return $pkg.Args;
	};
	init$1 = function() {
		var argv, i, process;
		process = $global.process;
		if (!(process === undefined)) {
			argv = process.argv;
			if (!(argv === undefined) && $parseInt(argv.length) >= 1) {
				$pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0));
				i = 0;
				while (true) {
					if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; }
					((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String));
					i = i + (1) >> 0;
				}
			}
		}
		if ($pkg.Args.$length === 0) {
			$pkg.Args = new sliceType(["?"]);
		}
	};
	File.ptr.prototype.WriteString = function(s) {
		var {$24r, _r$3, _tuple, err, f, n, s, $s, $r, $c} = $restore(this, {s});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		_r$3 = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		err = _tuple[1];
		$24r = [n, err];
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.WriteString, $c: true, $r, $24r, _r$3, _tuple, err, f, n, s, $s};return $f;
	};
	File.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
	File.ptr.prototype.Fd = function() {
		var {_r$3, f, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		if (f === ptrType$2.nil) {
			$s = -1; return 4294967295;
		}
		/* */ if (f.file.nonblock) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (f.file.nonblock) { */ case 1:
			_r$3 = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_r$3;
		/* } */ case 2:
		$s = -1; return ((f.file.pfd.Sysfd >>> 0));
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Fd, $c: true, $r, _r$3, f, $s};return $f;
	};
	File.prototype.Fd = function() { return this.$val.Fd(); };
	NewFile = function(fd, name) {
		var {$24r, _r$3, _tuple, err, fd, kind, name, nb, $s, $r, $c} = $restore(this, {fd, name});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		kind = 0;
		_tuple = unix.IsNonblock(((fd >> 0)));
		nb = _tuple[0];
		err = _tuple[1];
		if ($interfaceIsEqual(err, $ifaceNil) && nb) {
			kind = 3;
		}
		_r$3 = newFile(fd, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: NewFile, $c: true, $r, $24r, _r$3, _tuple, err, fd, kind, name, nb, $s};return $f;
	};
	$pkg.NewFile = NewFile;
	newFile = function(fd, name, kind) {
		var {_1, _r$3, err, err$1, err$2, f, fd, fdi, kind, name, pollable, st, typ, $s, $r, $c} = $restore(this, {fd, name, kind});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		fdi = [fdi];
		st = [st];
		fdi[0] = ((fd >> 0));
		if (fdi[0] < 0) {
			$s = -1; return ptrType$2.nil;
		}
		f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi[0], new poll.pollDesc.ptr(ptrType$6.nil, false), ptrType$7.nil, 0, 0, true, true, false), name, ptrType$8.nil, false, (fdi[0] === 1) || (fdi[0] === 2), false));
		pollable = (kind === 1) || (kind === 2) || (kind === 3);
		/* */ if (kind === 1) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (kind === 1) { */ case 1:
				_1 = "js";
				/* */ if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { $s = 4; continue; }
				/* */ $s = 5; continue;
				/* if (_1 === ("darwin") || _1 === ("ios") || _1 === ("dragonfly") || _1 === ("freebsd") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 4:
					st[0] = new syscall.Stat_t.ptr(new $Int64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Int64(0, 0), new $Int64(0, 0), 0, 0, new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0));
					_r$3 = ignoringEINTR((function(fdi, st) { return function $b() {
						var {$24r, _r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = syscall.Fstat(fdi[0], st[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						$24r = _r$3;
						$s = 2; case 2: return $24r;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _r$3, $s};return $f;
					}; })(fdi, st)); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					err = _r$3;
					typ = (st[0].Mode & 126976) >>> 0;
					if ($interfaceIsEqual(err, $ifaceNil) && ((typ === 32768) || (typ === 16384))) {
						pollable = false;
					}
					if (false && (typ === 4096)) {
						pollable = false;
					}
				/* } */ case 5:
			case 3:
		/* } */ case 2:
		err$1 = f.file.pfd.Init("file", pollable);
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
		} else if (pollable) {
			err$2 = syscall.SetNonblock(fdi[0], true);
			if ($interfaceIsEqual(err$2, $ifaceNil)) {
				f.file.nonblock = true;
			}
		}
		runtime.SetFinalizer(f.file, new funcType($methodExpr(ptrType$9, "close")));
		$s = -1; return f;
		/* */ } return; } var $f = {$blk: newFile, $c: true, $r, _1, _r$3, err, err$1, err$2, f, fd, fdi, kind, name, pollable, st, typ, $s};return $f;
	};
	epipecheck = function(file$1, e) {
		var {e, file$1, $s, $r, $c} = $restore(this, {file$1, e});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* */ if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { */ case 1:
			$r = sigpipe(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: epipecheck, $c: true, $r, e, file$1, $s};return $f;
	};
	file.ptr.prototype.close = function() {
		var {_r$3, e, err, file$1, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		file$1 = this;
		if (file$1 === ptrType$9.nil) {
			$s = -1; return new syscall.Errno(22);
		}
		if (!(file$1.dirinfo === ptrType$8.nil)) {
			file$1.dirinfo.close();
			file$1.dirinfo = ptrType$8.nil;
		}
		err = $ifaceNil;
		_r$3 = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			if ($interfaceIsEqual(e, poll.ErrFileClosing)) {
				e = $pkg.ErrClosed;
			}
			err = new fs.PathError.ptr("close", file$1.name, e);
		}
		runtime.SetFinalizer(file$1, $ifaceNil);
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: file.ptr.prototype.close, $c: true, $r, _r$3, e, err, file$1, $s};return $f;
	};
	file.prototype.close = function() { return this.$val.close(); };
	File.ptr.prototype.seek = function(offset, whence) {
		var {_r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r, $c} = $restore(this, {offset, whence});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		ret = new $Int64(0, 0);
		err = $ifaceNil;
		f = this;
		if (!(f.file.dirinfo === ptrType$8.nil)) {
			f.file.dirinfo.close();
			f.file.dirinfo = ptrType$8.nil;
		}
		_r$3 = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		ret = _tuple[0];
		err = _tuple[1];
		runtime.KeepAlive(f);
		_tmp = ret;
		_tmp$1 = err;
		ret = _tmp;
		err = _tmp$1;
		$s = -1; return [ret, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s};return $f;
	};
	File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); };
	unixDirent.ptr.prototype.Name = function() {
		var d;
		d = this;
		return d.name;
	};
	unixDirent.prototype.Name = function() { return this.$val.Name(); };
	unixDirent.ptr.prototype.IsDir = function() {
		var d;
		d = this;
		return new fs.FileMode(d.typ).IsDir();
	};
	unixDirent.prototype.IsDir = function() { return this.$val.IsDir(); };
	unixDirent.ptr.prototype.Type = function() {
		var d;
		d = this;
		return d.typ;
	};
	unixDirent.prototype.Type = function() { return this.$val.Type(); };
	unixDirent.ptr.prototype.Info = function() {
		var {$24r, _r$3, d, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		d = this;
		if (!($interfaceIsEqual(d.info, $ifaceNil))) {
			$s = -1; return [d.info, $ifaceNil];
		}
		_r$3 = lstat(d.parent + "/" + d.name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: unixDirent.ptr.prototype.Info, $c: true, $r, $24r, _r$3, d, $s};return $f;
	};
	unixDirent.prototype.Info = function() { return this.$val.Info(); };
	newUnixDirent = function(parent, name, typ) {
		var {_r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s, $r, $c} = $restore(this, {parent, name, typ});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		ude = new unixDirent.ptr(parent, name, typ, $ifaceNil);
		if (!((typ === 4294967295)) && !testingForceReadDirLstat) {
			$s = -1; return [ude, $ifaceNil];
		}
		_r$3 = lstat(parent + "/" + name); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		info = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [$ifaceNil, err];
		}
		_r$4 = info.Mode(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_r$5 = new fs.FileMode(_r$4).Type(); /* */ $s = 3; case 3: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		ude.typ = _r$5;
		ude.info = info;
		$s = -1; return [ude, $ifaceNil];
		/* */ } return; } var $f = {$blk: newUnixDirent, $c: true, $r, _r$3, _r$4, _r$5, _tuple, err, info, name, parent, typ, ude, $s};return $f;
	};
	sigpipe = function() {
		$throwRuntimeError("native function not implemented: os.sigpipe");
	};
	File.ptr.prototype.Close = function() {
		var {$24r, _r$3, f, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		if (f === ptrType$2.nil) {
			$s = -1; return $pkg.ErrInvalid;
		}
		_r$3 = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Close, $c: true, $r, $24r, _r$3, f, $s};return $f;
	};
	File.prototype.Close = function() { return this.$val.Close(); };
	File.ptr.prototype.read = function(b) {
		var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r, $c} = $restore(this, {b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		_r$3 = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		err = _tuple[1];
		runtime.KeepAlive(f);
		_tmp = n;
		_tmp$1 = err;
		n = _tmp;
		err = _tmp$1;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.read, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s};return $f;
	};
	File.prototype.read = function(b) { return this.$val.read(b); };
	File.ptr.prototype.pread = function(b, off) {
		var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r, $c} = $restore(this, {b, off});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		_r$3 = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		err = _tuple[1];
		runtime.KeepAlive(f);
		_tmp = n;
		_tmp$1 = err;
		n = _tmp;
		err = _tmp$1;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.pread, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s};return $f;
	};
	File.prototype.pread = function(b, off) { return this.$val.pread(b, off); };
	File.ptr.prototype.write = function(b) {
		var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r, $c} = $restore(this, {b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		_r$3 = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		err = _tuple[1];
		runtime.KeepAlive(f);
		_tmp = n;
		_tmp$1 = err;
		n = _tmp;
		err = _tmp$1;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.write, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s};return $f;
	};
	File.prototype.write = function(b) { return this.$val.write(b); };
	File.ptr.prototype.pwrite = function(b, off) {
		var {_r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r, $c} = $restore(this, {b, off});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		_r$3 = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		err = _tuple[1];
		runtime.KeepAlive(f);
		_tmp = n;
		_tmp$1 = err;
		n = _tmp;
		err = _tmp$1;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.pwrite, $c: true, $r, _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s};return $f;
	};
	File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); };
	syscallMode = function(i) {
		var i, o;
		o = 0;
		o = (o | (((new fs.FileMode(i).Perm() >>> 0)))) >>> 0;
		if (!((((i & 8388608) >>> 0) === 0))) {
			o = (o | (2048)) >>> 0;
		}
		if (!((((i & 4194304) >>> 0) === 0))) {
			o = (o | (1024)) >>> 0;
		}
		if (!((((i & 1048576) >>> 0) === 0))) {
			o = (o | (512)) >>> 0;
		}
		return o;
	};
	File.ptr.prototype.chmod = function(mode) {
		var {_r$3, e, err, f, mode, $s, $r, $c} = $restore(this, {mode});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("chmod");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			$s = -1; return f.wrapErr("chmod", e);
		}
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.chmod, $c: true, $r, _r$3, e, err, f, mode, $s};return $f;
	};
	File.prototype.chmod = function(mode) { return this.$val.chmod(mode); };
	File.ptr.prototype.Chown = function(uid, gid) {
		var {_r$3, e, err, f, gid, uid, $s, $r, $c} = $restore(this, {uid, gid});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("chown");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			$s = -1; return f.wrapErr("chown", e);
		}
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Chown, $c: true, $r, _r$3, e, err, f, gid, uid, $s};return $f;
	};
	File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); };
	File.ptr.prototype.Truncate = function(size) {
		var {_r$3, e, err, f, size, $s, $r, $c} = $restore(this, {size});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("truncate");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			$s = -1; return f.wrapErr("truncate", e);
		}
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Truncate, $c: true, $r, _r$3, e, err, f, size, $s};return $f;
	};
	File.prototype.Truncate = function(size) { return this.$val.Truncate(size); };
	File.ptr.prototype.Sync = function() {
		var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("sync");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			$s = -1; return f.wrapErr("sync", e);
		}
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Sync, $c: true, $r, _r$3, e, err, f, $s};return $f;
	};
	File.prototype.Sync = function() { return this.$val.Sync(); };
	File.ptr.prototype.Chdir = function() {
		var {_r$3, e, err, f, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("chdir");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		e = _r$3;
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			$s = -1; return f.wrapErr("chdir", e);
		}
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Chdir, $c: true, $r, _r$3, e, err, f, $s};return $f;
	};
	File.prototype.Chdir = function() { return this.$val.Chdir(); };
	File.ptr.prototype.setDeadline = function(t) {
		var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("SetDeadline");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.SetDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.setDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f;
	};
	File.prototype.setDeadline = function(t) { return this.$val.setDeadline(t); };
	File.ptr.prototype.setReadDeadline = function(t) {
		var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("SetReadDeadline");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.SetReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.setReadDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f;
	};
	File.prototype.setReadDeadline = function(t) { return this.$val.setReadDeadline(t); };
	File.ptr.prototype.setWriteDeadline = function(t) {
		var {$24r, _r$3, err, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		err = f.checkValid("SetWriteDeadline");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return err;
		}
		_r$3 = f.file.pfd.SetWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.setWriteDeadline, $c: true, $r, $24r, _r$3, err, f, t, $s};return $f;
	};
	File.prototype.setWriteDeadline = function(t) { return this.$val.setWriteDeadline(t); };
	File.ptr.prototype.checkValid = function(op) {
		var f, op;
		f = this;
		if (f === ptrType$2.nil) {
			return $pkg.ErrInvalid;
		}
		return $ifaceNil;
	};
	File.prototype.checkValid = function(op) { return this.$val.checkValid(op); };
	ignoringEINTR = function(fn) {
		var {_r$3, err, fn, $s, $r, $c} = $restore(this, {fn});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		/* while (true) { */ case 1:
			_r$3 = fn(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			err = _r$3;
			if (!($interfaceIsEqual(err, new syscall.Errno(4)))) {
				$s = -1; return err;
			}
		$s = 1; continue;
		case 2:
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: ignoringEINTR, $c: true, $r, _r$3, err, fn, $s};return $f;
	};
	File.ptr.prototype.Name = function() {
		var f;
		f = this;
		return f.file.name;
	};
	File.prototype.Name = function() { return this.$val.Name(); };
	LinkError.ptr.prototype.Error = function() {
		var {$24r, _r$3, e, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = e.Op + " " + e.Old + " " + e.New + ": " + _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: LinkError.ptr.prototype.Error, $c: true, $r, $24r, _r$3, e, $s};return $f;
	};
	LinkError.prototype.Error = function() { return this.$val.Error(); };
	LinkError.ptr.prototype.Unwrap = function() {
		var e;
		e = this;
		return e.Err;
	};
	LinkError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
	File.ptr.prototype.Read = function(b) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("read");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = 0;
			_tmp$1 = err$1;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		_r$3 = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		e = _tuple[1];
		_tmp$2 = n;
		_tmp$3 = f.wrapErr("read", e);
		n = _tmp$2;
		err = _tmp$3;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Read, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f;
	};
	File.prototype.Read = function(b) { return this.$val.Read(b); };
	File.ptr.prototype.ReadAt = function(b, off) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("read");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = 0;
			_tmp$1 = err$1;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) {
			_tmp$2 = 0;
			_tmp$3 = new fs.PathError.ptr("readat", f.file.name, errors.New("negative offset"));
			n = _tmp$2;
			err = _tmp$3;
			$s = -1; return [n, err];
		}
		/* while (true) { */ case 1:
			/* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; }
			_r$3 = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple = _r$3;
			m = _tuple[0];
			e = _tuple[1];
			if (!($interfaceIsEqual(e, $ifaceNil))) {
				err = f.wrapErr("read", e);
				/* break; */ $s = 2; continue;
			}
			n = n + (m) >> 0;
			b = $subslice(b, m);
			off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low));
		$s = 1; continue;
		case 2:
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.ReadAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f;
	};
	File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); };
	File.ptr.prototype.ReadFrom = function(r) {
		var {$24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s, $r, $c} = $restore(this, {r});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = new $Int64(0, 0);
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("write");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = new $Int64(0, 0);
			_tmp$1 = err$1;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		_tuple = f.readFrom(r);
		n = _tuple[0];
		handled = _tuple[1];
		e = _tuple[2];
		/* */ if (!handled) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!handled) { */ case 1:
			_r$3 = genericReadFrom(f, r); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple$1 = _r$3;
			n = _tuple$1[0];
			err = _tuple$1[1];
			$24r = [n, err];
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		_tmp$2 = n;
		_tmp$3 = f.wrapErr("write", e);
		n = _tmp$2;
		err = _tmp$3;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.ReadFrom, $c: true, $r, $24r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, e, err, err$1, f, handled, n, r, $s};return $f;
	};
	File.prototype.ReadFrom = function(r) { return this.$val.ReadFrom(r); };
	genericReadFrom = function(f, r) {
		var {$24r, _r$3, f, r, x, $s, $r, $c} = $restore(this, {f, r});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$3 = io.Copy((x = new onlyWriter.ptr(f), new x.constructor.elem(x)), r); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: genericReadFrom, $c: true, $r, $24r, _r$3, f, r, x, $s};return $f;
	};
	File.ptr.prototype.Write = function(b) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r, $c} = $restore(this, {b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("write");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = 0;
			_tmp$1 = err$1;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		_r$3 = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		n = _tuple[0];
		e = _tuple[1];
		if (n < 0) {
			n = 0;
		}
		if (!((n === b.$length))) {
			err = io.ErrShortWrite;
		}
		$r = epipecheck(f, e); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			err = f.wrapErr("write", e);
		}
		_tmp$2 = n;
		_tmp$3 = err;
		n = _tmp$2;
		err = _tmp$3;
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Write, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s};return $f;
	};
	File.prototype.Write = function(b) { return this.$val.Write(b); };
	File.ptr.prototype.WriteAt = function(b, off) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r, $c} = $restore(this, {b, off});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		n = 0;
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("write");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = 0;
			_tmp$1 = err$1;
			n = _tmp;
			err = _tmp$1;
			$s = -1; return [n, err];
		}
		if (f.file.appendMode) {
			_tmp$2 = 0;
			_tmp$3 = errWriteAtInAppendMode;
			n = _tmp$2;
			err = _tmp$3;
			$s = -1; return [n, err];
		}
		if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) {
			_tmp$4 = 0;
			_tmp$5 = new fs.PathError.ptr("writeat", f.file.name, errors.New("negative offset"));
			n = _tmp$4;
			err = _tmp$5;
			$s = -1; return [n, err];
		}
		/* while (true) { */ case 1:
			/* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; }
			_r$3 = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple = _r$3;
			m = _tuple[0];
			e = _tuple[1];
			if (!($interfaceIsEqual(e, $ifaceNil))) {
				err = f.wrapErr("write", e);
				/* break; */ $s = 2; continue;
			}
			n = n + (m) >> 0;
			b = $subslice(b, m);
			off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low));
		$s = 1; continue;
		case 2:
		$s = -1; return [n, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.WriteAt, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, err$1, f, m, n, off, x, $s};return $f;
	};
	File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); };
	File.ptr.prototype.Seek = function(offset, whence) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r, $c} = $restore(this, {offset, whence});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		ret = new $Int64(0, 0);
		err = $ifaceNil;
		f = this;
		err$1 = f.checkValid("seek");
		if (!($interfaceIsEqual(err$1, $ifaceNil))) {
			_tmp = new $Int64(0, 0);
			_tmp$1 = err$1;
			ret = _tmp;
			err = _tmp$1;
			$s = -1; return [ret, err];
		}
		_r$3 = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		r = _tuple[0];
		e = _tuple[1];
		if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$8.nil) && !((r.$high === 0 && r.$low === 0))) {
			e = new syscall.Errno(21);
		}
		if (!($interfaceIsEqual(e, $ifaceNil))) {
			_tmp$2 = new $Int64(0, 0);
			_tmp$3 = f.wrapErr("seek", e);
			ret = _tmp$2;
			err = _tmp$3;
			$s = -1; return [ret, err];
		}
		_tmp$4 = r;
		_tmp$5 = $ifaceNil;
		ret = _tmp$4;
		err = _tmp$5;
		$s = -1; return [ret, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Seek, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s};return $f;
	};
	File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); };
	File.ptr.prototype.wrapErr = function(op, err) {
		var err, f, op;
		f = this;
		if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) {
			return err;
		}
		if ($interfaceIsEqual(err, poll.ErrFileClosing)) {
			err = $pkg.ErrClosed;
		}
		return new fs.PathError.ptr(op, f.file.name, err);
	};
	File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); };
	File.ptr.prototype.Chmod = function(mode) {
		var {$24r, _r$3, f, mode, $s, $r, $c} = $restore(this, {mode});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		_r$3 = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Chmod, $c: true, $r, $24r, _r$3, f, mode, $s};return $f;
	};
	File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); };
	File.ptr.prototype.SetDeadline = function(t) {
		var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		_r$3 = f.setDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.SetDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f;
	};
	File.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); };
	File.ptr.prototype.SetReadDeadline = function(t) {
		var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		_r$3 = f.setReadDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.SetReadDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f;
	};
	File.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); };
	File.ptr.prototype.SetWriteDeadline = function(t) {
		var {$24r, _r$3, f, t, $s, $r, $c} = $restore(this, {t});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		_r$3 = f.setWriteDeadline($clone(t, time.Time)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: File.ptr.prototype.SetWriteDeadline, $c: true, $r, $24r, _r$3, f, t, $s};return $f;
	};
	File.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); };
	File.ptr.prototype.SyscallConn = function() {
		var _returncast, err, f;
		f = this;
		err = f.checkValid("SyscallConn");
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			return [$ifaceNil, err];
		}
		_returncast = newRawConn(f);
		return [_returncast[0], _returncast[1]];
	};
	File.prototype.SyscallConn = function() { return this.$val.SyscallConn(); };
	errNoDeadline = function() {
		return poll.ErrNoDeadline;
	};
	errDeadlineExceeded = function() {
		return poll.ErrDeadlineExceeded;
	};
	SyscallError.ptr.prototype.Error = function() {
		var {$24r, _r$3, e, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		$24r = e.Syscall + ": " + _r$3;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: SyscallError.ptr.prototype.Error, $c: true, $r, $24r, _r$3, e, $s};return $f;
	};
	SyscallError.prototype.Error = function() { return this.$val.Error(); };
	SyscallError.ptr.prototype.Unwrap = function() {
		var e;
		e = this;
		return e.Err;
	};
	SyscallError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
	SyscallError.ptr.prototype.Timeout = function() {
		var {$24r, _r$3, _tuple, _v, e, ok, t, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		e = this;
		_tuple = $assertType(e.Err, timeout, true);
		t = _tuple[0];
		ok = _tuple[1];
		if (!(ok)) { _v = false; $s = 1; continue s; }
		_r$3 = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = _r$3; case 1:
		$24r = _v;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: SyscallError.ptr.prototype.Timeout, $c: true, $r, $24r, _r$3, _tuple, _v, e, ok, t, $s};return $f;
	};
	SyscallError.prototype.Timeout = function() { return this.$val.Timeout(); };
	IsNotExist = function(err) {
		var err;
		return underlyingErrorIs(err, $pkg.ErrNotExist);
	};
	$pkg.IsNotExist = IsNotExist;
	underlyingErrorIs = function(err, target) {
		var _tuple, e, err, ok, target;
		err = underlyingError(err);
		if ($interfaceIsEqual(err, target)) {
			return true;
		}
		_tuple = $assertType(err, syscall.Errno, true);
		e = _tuple[0];
		ok = _tuple[1];
		return ok && new syscall.Errno(e).Is(target);
	};
	underlyingError = function(err) {
		var _ref, err, err$1, err$2, err$3;
		_ref = err;
		if ($assertType(_ref, ptrType$5, true)[1]) {
			err$1 = _ref.$val;
			return err$1.Err;
		} else if ($assertType(_ref, ptrType$17, true)[1]) {
			err$2 = _ref.$val;
			return err$2.Err;
		} else if ($assertType(_ref, ptrType$18, true)[1]) {
			err$3 = _ref.$val;
			return err$3.Err;
		}
		return err;
	};
	direntIno = function(buf) {
		var buf;
		return [new $Uint64(0, 1), true];
	};
	direntReclen = function(buf) {
		var buf;
		return readInt(buf, 0, 2);
	};
	direntNamlen = function(buf) {
		var _tuple, buf, ok, reclen;
		_tuple = direntReclen(buf);
		reclen = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			return [new $Uint64(0, 0), false];
		}
		return [new $Uint64(reclen.$high - 0, reclen.$low - 2), true];
	};
	direntType = function(buf) {
		var buf;
		return 4294967295;
	};
	dirInfo.ptr.prototype.close = function() {
		var d;
		d = this;
		if (!(d.buf === ptrType.nil)) {
			dirBufPool.Put(d.buf);
			d.buf = ptrType.nil;
		}
	};
	dirInfo.prototype.close = function() { return this.$val.close(); };
	File.ptr.prototype.readdir = function(n, mode) {
		var {_i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s, $r, $c} = $restore(this, {n, mode});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		names = sliceType.nil;
		dirents = sliceType$7.nil;
		infos = sliceType$8.nil;
		err = $ifaceNil;
		f = this;
		/* */ if (f.file.dirinfo === ptrType$8.nil) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (f.file.dirinfo === ptrType$8.nil) { */ case 1:
			f.file.dirinfo = new dirInfo.ptr(ptrType.nil, 0, 0);
			_r$3 = dirBufPool.Get(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			f.file.dirinfo.buf = $assertType(_r$3, ptrType);
		/* } */ case 2:
		d = f.file.dirinfo;
		if (n === 0) {
			n = -1;
		}
		/* while (true) { */ case 4:
			/* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 5; continue; }
			/* */ if (d.bufp >= d.nbuf) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (d.bufp >= d.nbuf) { */ case 6:
				d.bufp = 0;
				errno = $ifaceNil;
				_r$4 = f.file.pfd.ReadDirent(d.buf.$get()); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_tuple = _r$4;
				d.nbuf = _tuple[0];
				errno = _tuple[1];
				runtime.KeepAlive(f);
				if (!($interfaceIsEqual(errno, $ifaceNil))) {
					_tmp = names;
					_tmp$1 = dirents;
					_tmp$2 = infos;
					_tmp$3 = new fs.PathError.ptr("readdirent", f.file.name, errno);
					names = _tmp;
					dirents = _tmp$1;
					infos = _tmp$2;
					err = _tmp$3;
					$s = -1; return [names, dirents, infos, err];
				}
				if (d.nbuf <= 0) {
					/* break; */ $s = 5; continue;
				}
			/* } */ case 7:
			buf = $subslice((d.buf.$get()), d.bufp, d.nbuf);
			_tuple$1 = direntReclen(buf);
			reclen = _tuple$1[0];
			ok = _tuple$1[1];
			if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) {
				/* break; */ $s = 5; continue;
			}
			rec = $subslice(buf, 0, $flatten64(reclen));
			d.bufp = d.bufp + (((reclen.$low >> 0))) >> 0;
			_tuple$2 = direntIno(rec);
			ino = _tuple$2[0];
			ok = _tuple$2[1];
			if (!ok) {
				/* break; */ $s = 5; continue;
			}
			if ((ino.$high === 0 && ino.$low === 0)) {
				/* continue; */ $s = 4; continue;
			}
			_tuple$3 = direntNamlen(rec);
			namlen = _tuple$3[0];
			ok = _tuple$3[1];
			if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 2 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) {
				/* break; */ $s = 5; continue;
			}
			name = $subslice(rec, 2, $flatten64(new $Uint64(0 + namlen.$high, 2 + namlen.$low)));
			_ref = name;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				i = _i;
				c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				if (c === 0) {
					name = $subslice(name, 0, i);
					break;
				}
				_i++;
			}
			if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") {
				/* continue; */ $s = 4; continue;
			}
			if (n > 0) {
				n = n - (1) >> 0;
			}
			/* */ if (mode === 0) { $s = 9; continue; }
			/* */ if (mode === 1) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (mode === 0) { */ case 9:
				names = $append(names, ($bytesToString(name)));
				$s = 12; continue;
			/* } else if (mode === 1) { */ case 10:
				_r$5 = newUnixDirent(f.file.name, ($bytesToString(name)), direntType(rec)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				_tuple$4 = _r$5;
				de = _tuple$4[0];
				err$1 = _tuple$4[1];
				if (IsNotExist(err$1)) {
					/* continue; */ $s = 4; continue;
				}
				if (!($interfaceIsEqual(err$1, $ifaceNil))) {
					_tmp$4 = sliceType.nil;
					_tmp$5 = dirents;
					_tmp$6 = sliceType$8.nil;
					_tmp$7 = err$1;
					names = _tmp$4;
					dirents = _tmp$5;
					infos = _tmp$6;
					err = _tmp$7;
					$s = -1; return [names, dirents, infos, err];
				}
				dirents = $append(dirents, de);
				$s = 12; continue;
			/* } else { */ case 11:
				_r$6 = lstat(f.file.name + "/" + ($bytesToString(name))); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				_tuple$5 = _r$6;
				info = _tuple$5[0];
				err$2 = _tuple$5[1];
				if (IsNotExist(err$2)) {
					/* continue; */ $s = 4; continue;
				}
				if (!($interfaceIsEqual(err$2, $ifaceNil))) {
					_tmp$8 = sliceType.nil;
					_tmp$9 = sliceType$7.nil;
					_tmp$10 = infos;
					_tmp$11 = err$2;
					names = _tmp$8;
					dirents = _tmp$9;
					infos = _tmp$10;
					err = _tmp$11;
					$s = -1; return [names, dirents, infos, err];
				}
				infos = $append(infos, info);
			/* } */ case 12:
		$s = 4; continue;
		case 5:
		if (n > 0 && (((names.$length + dirents.$length >> 0) + infos.$length >> 0) === 0)) {
			_tmp$12 = sliceType.nil;
			_tmp$13 = sliceType$7.nil;
			_tmp$14 = sliceType$8.nil;
			_tmp$15 = io.EOF;
			names = _tmp$12;
			dirents = _tmp$13;
			infos = _tmp$14;
			err = _tmp$15;
			$s = -1; return [names, dirents, infos, err];
		}
		_tmp$16 = names;
		_tmp$17 = dirents;
		_tmp$18 = infos;
		_tmp$19 = $ifaceNil;
		names = _tmp$16;
		dirents = _tmp$17;
		infos = _tmp$18;
		err = _tmp$19;
		$s = -1; return [names, dirents, infos, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.readdir, $c: true, $r, _i, _r$3, _r$4, _r$5, _r$6, _ref, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, buf, c, d, de, dirents, err, err$1, err$2, errno, f, i, info, infos, ino, mode, n, name, names, namlen, ok, rec, reclen, x, x$1, x$2, $s};return $f;
	};
	File.prototype.readdir = function(n, mode) { return this.$val.readdir(n, mode); };
	readInt = function(b, off, size) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u;
		u = new $Uint64(0, 0);
		ok = false;
		if (b.$length < (((off + size >>> 0) >> 0))) {
			_tmp = new $Uint64(0, 0);
			_tmp$1 = false;
			u = _tmp;
			ok = _tmp$1;
			return [u, ok];
		}
		if (false) {
			_tmp$2 = readIntBE($subslice(b, off), size);
			_tmp$3 = true;
			u = _tmp$2;
			ok = _tmp$3;
			return [u, ok];
		}
		_tmp$4 = readIntLE($subslice(b, off), size);
		_tmp$5 = true;
		u = _tmp$4;
		ok = _tmp$5;
		return [u, ok];
	};
	readIntBE = function(b, size) {
		var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		_1 = size;
		if (_1 === (1)) {
			return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0])));
		} else if (_1 === (2)) {
			$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
			return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0));
		} else if (_1 === (4)) {
			$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
			return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0));
		} else if (_1 === (8)) {
			$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
			return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0));
		} else {
			$panic(new $String("syscall: readInt with unsupported size"));
		}
	};
	readIntLE = function(b, size) {
		var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9;
		_1 = size;
		if (_1 === (1)) {
			return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0])));
		} else if (_1 === (2)) {
			$unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]));
			return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0));
		} else if (_1 === (4)) {
			$unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]));
			return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0));
		} else if (_1 === (8)) {
			$unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]));
			return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0));
		} else {
			$panic(new $String("syscall: readInt with unsupported size"));
		}
	};
	File.ptr.prototype.Readdir = function(n) {
		var {_r$3, _tuple, err, f, infos, n, $s, $r, $c} = $restore(this, {n});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		if (f === ptrType$2.nil) {
			$s = -1; return [sliceType$8.nil, $pkg.ErrInvalid];
		}
		_r$3 = f.readdir(n, 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		infos = _tuple[2];
		err = _tuple[3];
		if (infos === sliceType$8.nil) {
			infos = new sliceType$8([]);
		}
		$s = -1; return [infos, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Readdir, $c: true, $r, _r$3, _tuple, err, f, infos, n, $s};return $f;
	};
	File.prototype.Readdir = function(n) { return this.$val.Readdir(n); };
	File.ptr.prototype.Readdirnames = function(n) {
		var {_r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s, $r, $c} = $restore(this, {n});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		names = sliceType.nil;
		err = $ifaceNil;
		f = this;
		if (f === ptrType$2.nil) {
			_tmp = sliceType.nil;
			_tmp$1 = $pkg.ErrInvalid;
			names = _tmp;
			err = _tmp$1;
			$s = -1; return [names, err];
		}
		_r$3 = f.readdir(n, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		names = _tuple[0];
		err = _tuple[3];
		if (names === sliceType.nil) {
			names = new sliceType([]);
		}
		_tmp$2 = names;
		_tmp$3 = err;
		names = _tmp$2;
		err = _tmp$3;
		$s = -1; return [names, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.Readdirnames, $c: true, $r, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, f, n, names, $s};return $f;
	};
	File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); };
	File.ptr.prototype.ReadDir = function(n) {
		var {_r$3, _tuple, dirents, err, f, n, $s, $r, $c} = $restore(this, {n});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		f = this;
		if (f === ptrType$2.nil) {
			$s = -1; return [sliceType$7.nil, $pkg.ErrInvalid];
		}
		_r$3 = f.readdir(n, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple = _r$3;
		dirents = _tuple[1];
		err = _tuple[3];
		if (dirents === sliceType$7.nil) {
			dirents = new sliceType$7([]);
		}
		$s = -1; return [dirents, err];
		/* */ } return; } var $f = {$blk: File.ptr.prototype.ReadDir, $c: true, $r, _r$3, _tuple, dirents, err, f, n, $s};return $f;
	};
	File.prototype.ReadDir = function(n) { return this.$val.ReadDir(n); };
	ptrType$1.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}];
	ptrType$2.methods = [{prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}, {prop: "readFrom", name: "readFrom", pkg: "os", typ: $funcType([io.Reader], [$Int64, $Bool, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([fs.FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int, readdirMode], [sliceType, sliceType$7, sliceType$8, $error], false)}, {prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$8, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "ReadDir", name: "ReadDir", pkg: "", typ: $funcType([$Int], [sliceType$7, $error], false)}];
	ptrType$19.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}];
	ptrType$9.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}];
	ptrType$20.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [fs.FileMode], false)}, {prop: "Info", name: "Info", pkg: "", typ: $funcType([], [fs.FileInfo, $error], false)}];
	ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}];
	ptrType$18.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}];
	ptrType$8.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false)}];
	fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]);
	File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$9, tag: ""}]);
	rawConn.init("os", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
	file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "appendMode", name: "appendMode", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	unixDirent.init("os", [{prop: "parent", name: "parent", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: fs.FileMode, tag: ""}, {prop: "info", name: "info", embedded: false, exported: false, typ: fs.FileInfo, tag: ""}]);
	LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
	onlyWriter.init("", [{prop: "Writer", name: "Writer", embedded: true, exported: true, typ: io.Writer, tag: ""}]);
	timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]);
	SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]);
	dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = itoa.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = oserror.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = poll.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = execenv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unix.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = testlog.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unsafeheader.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = fs.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sort.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = atomic.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = syscall.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = time.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.Args = sliceType.nil;
		testingForceReadDirLstat = false;
		errPatternHasSeparator = errors.New("pattern contains path separator");
		errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file opened with O_APPEND");
		lstat = Lstat;
		$pkg.ErrProcessDone = errors.New("os: process already finished");
		$pkg.ErrInvalid = fs.ErrInvalid;
		$pkg.ErrNotExist = fs.ErrNotExist;
		$pkg.ErrClosed = fs.ErrClosed;
		$pkg.ErrNoDeadline = errNoDeadline();
		$pkg.ErrDeadlineExceeded = errDeadlineExceeded();
		dirBufPool = new sync.Pool.ptr(sliceType$1.nil, (function() {
			var buf, buf$24ptr;
			buf = $makeSlice(sliceType$2, 8192);
			return (buf$24ptr || (buf$24ptr = new ptrType(function() { return buf; }, function($v) { buf = $convertSliceType($v, sliceType$2); })));
		}));
		_r = NewFile(0, "/dev/stdin"); /* */ $s = 18; case 18: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$pkg.Stdin = _r;
		_r$1 = NewFile(1, "/dev/stdout"); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$pkg.Stdout = _r$1;
		_r$2 = NewFile(2, "/dev/stderr"); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$pkg.Stderr = _r$2;
		init();
		init$1();
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["fmt"] = (function() {
	var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, strconv, sync, utf8, scanError, ss, ssave, State, Formatter, Stringer, GoStringer, buffer, pp, fmtFlags, fmt, wrapError, arrayType, sliceType, sliceType$1, ptrType, ptrType$1, arrayType$1, sliceType$2, ptrType$4, ptrType$24, arrayType$3, funcType, ptrType$26, ptrType$27, space, ssFree, complexError, boolError, ppFree, isSpace, notSpace, indexRune, newPrinter, Sprintf, getField, tooLarge, parsenum, intFromArg, parseArgNumber, Errorf;
	errors = $packages["errors"];
	fmtsort = $packages["internal/fmtsort"];
	io = $packages["io"];
	math = $packages["math"];
	os = $packages["os"];
	reflect = $packages["reflect"];
	strconv = $packages["strconv"];
	sync = $packages["sync"];
	utf8 = $packages["unicode/utf8"];
	scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.err = $ifaceNil;
			return;
		}
		this.err = err_;
	});
	ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.rs = $ifaceNil;
			this.buf = buffer.nil;
			this.count = 0;
			this.atEOF = false;
			this.ssave = new ssave.ptr(false, false, false, 0, 0, 0);
			return;
		}
		this.rs = rs_;
		this.buf = buf_;
		this.count = count_;
		this.atEOF = atEOF_;
		this.ssave = ssave_;
	});
	ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.validSave = false;
			this.nlIsEnd = false;
			this.nlIsSpace = false;
			this.argLimit = 0;
			this.limit = 0;
			this.maxWid = 0;
			return;
		}
		this.validSave = validSave_;
		this.nlIsEnd = nlIsEnd_;
		this.nlIsSpace = nlIsSpace_;
		this.argLimit = argLimit_;
		this.limit = limit_;
		this.maxWid = maxWid_;
	});
	State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null);
	Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null);
	Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null);
	GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null);
	buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null);
	pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_, wrapErrs_, wrappedErr_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.buf = buffer.nil;
			this.arg = $ifaceNil;
			this.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
			this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero());
			this.reordered = false;
			this.goodArgNum = false;
			this.panicking = false;
			this.erroring = false;
			this.wrapErrs = false;
			this.wrappedErr = $ifaceNil;
			return;
		}
		this.buf = buf_;
		this.arg = arg_;
		this.value = value_;
		this.fmt = fmt_;
		this.reordered = reordered_;
		this.goodArgNum = goodArgNum_;
		this.panicking = panicking_;
		this.erroring = erroring_;
		this.wrapErrs = wrapErrs_;
		this.wrappedErr = wrappedErr_;
	});
	fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.widPresent = false;
			this.precPresent = false;
			this.minus = false;
			this.plus = false;
			this.sharp = false;
			this.space = false;
			this.zero = false;
			this.plusV = false;
			this.sharpV = false;
			return;
		}
		this.widPresent = widPresent_;
		this.precPresent = precPresent_;
		this.minus = minus_;
		this.plus = plus_;
		this.sharp = sharp_;
		this.space = space_;
		this.zero = zero_;
		this.plusV = plusV_;
		this.sharpV = sharpV_;
	});
	fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.buf = ptrType$1.nil;
			this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false);
			this.wid = 0;
			this.prec = 0;
			this.intbuf = arrayType$1.zero();
			return;
		}
		this.buf = buf_;
		this.fmtFlags = fmtFlags_;
		this.wid = wid_;
		this.prec = prec_;
		this.intbuf = intbuf_;
	});
	wrapError = $pkg.wrapError = $newType(0, $kindStruct, "fmt.wrapError", true, "fmt", false, function(msg_, err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.msg = "";
			this.err = $ifaceNil;
			return;
		}
		this.msg = msg_;
		this.err = err_;
	});
	arrayType = $arrayType($Uint16, 2);
	sliceType = $sliceType(arrayType);
	sliceType$1 = $sliceType($emptyInterface);
	ptrType = $ptrType(reflect.rtype);
	ptrType$1 = $ptrType(buffer);
	arrayType$1 = $arrayType($Uint8, 68);
	sliceType$2 = $sliceType($Uint8);
	ptrType$4 = $ptrType(ss);
	ptrType$24 = $ptrType(pp);
	arrayType$3 = $arrayType($Uint8, 6);
	funcType = $funcType([$Int32], [$Bool], false);
	ptrType$26 = $ptrType(fmt);
	ptrType$27 = $ptrType(wrapError);
	ss.ptr.prototype.Read = function(buf) {
		var _tmp, _tmp$1, buf, err, n, s;
		n = 0;
		err = $ifaceNil;
		s = this;
		_tmp = 0;
		_tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune");
		n = _tmp;
		err = _tmp$1;
		return [n, err];
	};
	ss.prototype.Read = function(buf) { return this.$val.Read(buf); };
	ss.ptr.prototype.ReadRune = function() {
		var {_r, _tuple, err, r, s, size, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		r = 0;
		size = 0;
		err = $ifaceNil;
		s = this;
		if (s.atEOF || s.count >= s.ssave.argLimit) {
			err = io.EOF;
			$s = -1; return [r, size, err];
		}
		_r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		r = _tuple[0];
		size = _tuple[1];
		err = _tuple[2];
		if ($interfaceIsEqual(err, $ifaceNil)) {
			s.count = s.count + (1) >> 0;
			if (s.ssave.nlIsEnd && (r === 10)) {
				s.atEOF = true;
			}
		} else if ($interfaceIsEqual(err, io.EOF)) {
			s.atEOF = true;
		}
		$s = -1; return [r, size, err];
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.ReadRune, $c: true, $r, _r, _tuple, err, r, s, size, $s};return $f;
	};
	ss.prototype.ReadRune = function() { return this.$val.ReadRune(); };
	ss.ptr.prototype.Width = function() {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid;
		wid = 0;
		ok = false;
		s = this;
		if (s.ssave.maxWid === 1073741824) {
			_tmp = 0;
			_tmp$1 = false;
			wid = _tmp;
			ok = _tmp$1;
			return [wid, ok];
		}
		_tmp$2 = s.ssave.maxWid;
		_tmp$3 = true;
		wid = _tmp$2;
		ok = _tmp$3;
		return [wid, ok];
	};
	ss.prototype.Width = function() { return this.$val.Width(); };
	ss.ptr.prototype.getRune = function() {
		var {_r, _tuple, err, r, s, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		r = 0;
		s = this;
		_r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		r = _tuple[0];
		err = _tuple[2];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			if ($interfaceIsEqual(err, io.EOF)) {
				r = -1;
				$s = -1; return r;
			}
			s.error(err);
		}
		$s = -1; return r;
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.getRune, $c: true, $r, _r, _tuple, err, r, s, $s};return $f;
	};
	ss.prototype.getRune = function() { return this.$val.getRune(); };
	ss.ptr.prototype.UnreadRune = function() {
		var {_r, s, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = this;
		_r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r;
		s.atEOF = false;
		s.count = s.count - (1) >> 0;
		$s = -1; return $ifaceNil;
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.UnreadRune, $c: true, $r, _r, s, $s};return $f;
	};
	ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); };
	ss.ptr.prototype.error = function(err) {
		var err, s, x;
		s = this;
		$panic((x = new scanError.ptr(err), new x.constructor.elem(x)));
	};
	ss.prototype.error = function(err) { return this.$val.error(err); };
	ss.ptr.prototype.errorString = function(err) {
		var err, s, x;
		s = this;
		$panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x)));
	};
	ss.prototype.errorString = function(err) { return this.$val.errorString(err); };
	ss.ptr.prototype.Token = function(skipSpace, f) {
		var {$24r, _r, err, f, s, skipSpace, tok, $s, $deferred, $r, $c} = $restore(this, {skipSpace, f});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		tok = sliceType$2.nil;
		err[0] = $ifaceNil;
		s = this;
		$deferred.push([(function(err) { return function() {
			var _tuple, e, ok, se;
			e = $recover();
			if (!($interfaceIsEqual(e, $ifaceNil))) {
				_tuple = $assertType(e, scanError, true);
				se = $clone(_tuple[0], scanError);
				ok = _tuple[1];
				if (ok) {
					err[0] = se.err;
				} else {
					$panic(e);
				}
			}
		}; })(err), []]);
		if (f === $throwNilPointerError) {
			f = notSpace;
		}
		s.buf = $subslice(s.buf, 0, 0);
		_r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		tok = _r;
		$24r = [tok, err[0]];
		$s = 2; case 2: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [tok, err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: ss.ptr.prototype.Token, $c: true, $r, $24r, _r, err, f, s, skipSpace, tok, $s, $deferred};return $f; } }
	};
	ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); };
	isSpace = function(r) {
		var _i, _ref, r, rng, rx;
		if (r >= 65536) {
			return false;
		}
		rx = ((r << 16 >>> 16));
		_ref = space;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType);
			if (rx < rng[0]) {
				return false;
			}
			if (rx <= rng[1]) {
				return true;
			}
			_i++;
		}
		return false;
	};
	notSpace = function(r) {
		var r;
		return !isSpace(r);
	};
	ss.ptr.prototype.free = function(old) {
		var old, s;
		s = this;
		if (old.validSave) {
			ssave.copy(s.ssave, old);
			return;
		}
		if (s.buf.$capacity > 1024) {
			return;
		}
		s.buf = $subslice(s.buf, 0, 0);
		s.rs = $ifaceNil;
		ssFree.Put(s);
	};
	ss.prototype.free = function(old) { return this.$val.free(old); };
	ss.ptr.prototype.SkipSpace = function() {
		var {_r, _r$1, _r$2, _v, r, s, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = this;
		/* while (true) { */ case 1:
			_r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			r = _r;
			if (r === -1) {
				$s = -1; return;
			}
			if (!(r === 13)) { _v = false; $s = 6; continue s; }
			_r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_v = _r$1; case 6:
			/* */ if (_v) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_v) { */ case 4:
				/* continue; */ $s = 1; continue;
			/* } */ case 5:
			if (r === 10) {
				if (s.ssave.nlIsSpace) {
					/* continue; */ $s = 1; continue;
				}
				s.errorString("unexpected newline");
				$s = -1; return;
			}
			/* */ if (!isSpace(r)) { $s = 8; continue; }
			/* */ $s = 9; continue;
			/* if (!isSpace(r)) { */ case 8:
				_r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_r$2;
				/* break; */ $s = 2; continue;
			/* } */ case 9:
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.SkipSpace, $c: true, $r, _r, _r$1, _r$2, _v, r, s, $s};return $f;
	};
	ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); };
	ss.ptr.prototype.token = function(skipSpace, f) {
		var {_r, _r$1, _r$2, f, r, s, skipSpace, $s, $r, $c} = $restore(this, {skipSpace, f});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = this;
		/* */ if (skipSpace) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (skipSpace) { */ case 1:
			$r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* while (true) { */ case 4:
			_r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			r = _r;
			if (r === -1) {
				/* break; */ $s = 5; continue;
			}
			_r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (!_r$1) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (!_r$1) { */ case 7:
				_r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_r$2;
				/* break; */ $s = 5; continue;
			/* } */ case 8:
			(s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).writeRune(r);
		$s = 4; continue;
		case 5:
		$s = -1; return $convertSliceType(s.buf, sliceType$2);
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.token, $c: true, $r, _r, _r$1, _r$2, f, r, s, skipSpace, $s};return $f;
	};
	ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); };
	indexRune = function(s, r) {
		var _i, _ref, _rune, c, i, r, s;
		_ref = s;
		_i = 0;
		while (true) {
			if (!(_i < _ref.length)) { break; }
			_rune = $decodeRune(_ref, _i);
			i = _i;
			c = _rune[0];
			if (c === r) {
				return i;
			}
			_i += _rune[1];
		}
		return -1;
	};
	ss.ptr.prototype.peek = function(ok) {
		var {_r, _r$1, ok, r, s, $s, $r, $c} = $restore(this, {ok});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		s = this;
		_r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		r = _r;
		/* */ if (!((r === -1))) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (!((r === -1))) { */ case 2:
			_r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$1;
		/* } */ case 3:
		$s = -1; return indexRune(ok, r) >= 0;
		/* */ } return; } var $f = {$blk: ss.ptr.prototype.peek, $c: true, $r, _r, _r$1, ok, r, s, $s};return $f;
	};
	ss.prototype.peek = function(ok) { return this.$val.peek(ok); };
	$ptrType(buffer).prototype.write = function(p) {
		var b, p;
		b = this;
		b.$set($appendSlice(b.$get(), p));
	};
	$ptrType(buffer).prototype.writeString = function(s) {
		var b, s;
		b = this;
		b.$set($appendSlice(b.$get(), s));
	};
	$ptrType(buffer).prototype.writeByte = function(c) {
		var b, c;
		b = this;
		b.$set($append(b.$get(), c));
	};
	$ptrType(buffer).prototype.writeRune = function(r) {
		var b, bp, n, r, w;
		bp = this;
		if (r < 128) {
			bp.$set($append(bp.$get(), ((r << 24 >>> 24))));
			return;
		}
		b = bp.$get();
		n = b.$length;
		while (true) {
			if (!((n + 4 >> 0) > b.$capacity)) { break; }
			b = $append(b, 0);
		}
		w = utf8.EncodeRune($convertSliceType($subslice(b, n, (n + 4 >> 0)), sliceType$2), r);
		bp.$set($subslice(b, 0, (n + w >> 0)));
	};
	newPrinter = function() {
		var {_r, p, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		p = $assertType(_r, ptrType$24);
		p.panicking = false;
		p.erroring = false;
		p.wrapErrs = false;
		p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))));
		$s = -1; return p;
		/* */ } return; } var $f = {$blk: newPrinter, $c: true, $r, _r, p, $s};return $f;
	};
	pp.ptr.prototype.free = function() {
		var p;
		p = this;
		if (p.buf.$capacity > 65536) {
			return;
		}
		p.buf = $subslice(p.buf, 0, 0);
		p.arg = $ifaceNil;
		p.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
		p.wrappedErr = $ifaceNil;
		ppFree.Put(p);
	};
	pp.prototype.free = function() { return this.$val.free(); };
	pp.ptr.prototype.Width = function() {
		var _tmp, _tmp$1, ok, p, wid;
		wid = 0;
		ok = false;
		p = this;
		_tmp = p.fmt.wid;
		_tmp$1 = p.fmt.fmtFlags.widPresent;
		wid = _tmp;
		ok = _tmp$1;
		return [wid, ok];
	};
	pp.prototype.Width = function() { return this.$val.Width(); };
	pp.ptr.prototype.Precision = function() {
		var _tmp, _tmp$1, ok, p, prec;
		prec = 0;
		ok = false;
		p = this;
		_tmp = p.fmt.prec;
		_tmp$1 = p.fmt.fmtFlags.precPresent;
		prec = _tmp;
		ok = _tmp$1;
		return [prec, ok];
	};
	pp.prototype.Precision = function() { return this.$val.Precision(); };
	pp.ptr.prototype.Flag = function(b) {
		var _1, b, p;
		p = this;
		_1 = b;
		if (_1 === (45)) {
			return p.fmt.fmtFlags.minus;
		} else if (_1 === (43)) {
			return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV;
		} else if (_1 === (35)) {
			return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV;
		} else if (_1 === (32)) {
			return p.fmt.fmtFlags.space;
		} else if (_1 === (48)) {
			return p.fmt.fmtFlags.zero;
		}
		return false;
	};
	pp.prototype.Flag = function(b) { return this.$val.Flag(b); };
	pp.ptr.prototype.Write = function(b) {
		var _tmp, _tmp$1, b, err, p, ret;
		ret = 0;
		err = $ifaceNil;
		p = this;
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).write(b);
		_tmp = b.$length;
		_tmp$1 = $ifaceNil;
		ret = _tmp;
		err = _tmp$1;
		return [ret, err];
	};
	pp.prototype.Write = function(b) { return this.$val.Write(b); };
	pp.ptr.prototype.WriteString = function(s) {
		var _tmp, _tmp$1, err, p, ret, s;
		ret = 0;
		err = $ifaceNil;
		p = this;
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(s);
		_tmp = s.length;
		_tmp$1 = $ifaceNil;
		ret = _tmp;
		err = _tmp$1;
		return [ret, err];
	};
	pp.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
	Sprintf = function(format, a) {
		var {_r, a, format, p, s, $s, $r, $c} = $restore(this, {format, a});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		p = _r;
		$r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		s = ($bytesToString(p.buf));
		p.free();
		$s = -1; return s;
		/* */ } return; } var $f = {$blk: Sprintf, $c: true, $r, _r, a, format, p, s, $s};return $f;
	};
	$pkg.Sprintf = Sprintf;
	getField = function(v, i) {
		var {_r, _r$1, i, v, val, $s, $r, $c} = $restore(this, {v, i});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		val = _r;
		/* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2:
			_r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			val = _r$1;
		/* } */ case 3:
		$s = -1; return val;
		/* */ } return; } var $f = {$blk: getField, $c: true, $r, _r, _r$1, i, v, val, $s};return $f;
	};
	tooLarge = function(x) {
		var x;
		return x > 1000000 || x < -1000000;
	};
	parsenum = function(s, start, end) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start;
		num = 0;
		isnum = false;
		newi = 0;
		if (start >= end) {
			_tmp = 0;
			_tmp$1 = false;
			_tmp$2 = end;
			num = _tmp;
			isnum = _tmp$1;
			newi = _tmp$2;
			return [num, isnum, newi];
		}
		newi = start;
		while (true) {
			if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; }
			if (tooLarge(num)) {
				_tmp$3 = 0;
				_tmp$4 = false;
				_tmp$5 = end;
				num = _tmp$3;
				isnum = _tmp$4;
				newi = _tmp$5;
				return [num, isnum, newi];
			}
			num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0;
			isnum = true;
			newi = newi + (1) >> 0;
		}
		return [num, isnum, newi];
	};
	pp.ptr.prototype.unknownType = function(v) {
		var {_r, p, v, $s, $r, $c} = $restore(this, {v});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		if (!$clone(v, reflect.Value).IsValid()) {
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
			$s = -1; return;
		}
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63);
		_r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(63);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.unknownType, $c: true, $r, _r, p, v, $s};return $f;
	};
	pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); };
	pp.ptr.prototype.badVerb = function(verb) {
		var {_r, _r$1, p, verb, $s, $r, $c} = $restore(this, {verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		p.erroring = true;
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!");
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb);
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40);
			/* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; }
			/* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2:
				_r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61);
				$r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 5; continue;
			/* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3:
				_r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61);
				$r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 5; continue;
			/* } else { */ case 4:
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
			/* } */ case 5:
		case 1:
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41);
		p.erroring = false;
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.badVerb, $c: true, $r, _r, _r$1, p, verb, $s};return $f;
	};
	pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); };
	pp.ptr.prototype.fmtBool = function(v, verb) {
		var {_1, p, v, verb, $s, $r, $c} = $restore(this, {v, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if ((_1 === (116)) || (_1 === (118))) { */ case 2:
				p.fmt.fmtBoolean(v);
				$s = 4; continue;
			/* } else { */ case 3:
				$r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 4:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtBool, $c: true, $r, _1, p, v, verb, $s};return $f;
	};
	pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); };
	pp.ptr.prototype.fmt0x64 = function(v, leading0x) {
		var leading0x, p, sharp, v;
		p = this;
		sharp = p.fmt.fmtFlags.sharp;
		p.fmt.fmtFlags.sharp = leading0x;
		p.fmt.fmtInteger(v, 16, false, 118, "0123456789abcdefx");
		p.fmt.fmtFlags.sharp = sharp;
	};
	pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); };
	pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) {
		var {_1, isSigned, p, v, verb, $s, $r, $c} = $restore(this, {v, isSigned, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if (_1 === (118)) { $s = 2; continue; }
			/* */ if (_1 === (100)) { $s = 3; continue; }
			/* */ if (_1 === (98)) { $s = 4; continue; }
			/* */ if ((_1 === (111)) || (_1 === (79))) { $s = 5; continue; }
			/* */ if (_1 === (120)) { $s = 6; continue; }
			/* */ if (_1 === (88)) { $s = 7; continue; }
			/* */ if (_1 === (99)) { $s = 8; continue; }
			/* */ if (_1 === (113)) { $s = 9; continue; }
			/* */ if (_1 === (85)) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_1 === (118)) { */ case 2:
				if (p.fmt.fmtFlags.sharpV && !isSigned) {
					p.fmt0x64(v, true);
				} else {
					p.fmt.fmtInteger(v, 10, isSigned, verb, "0123456789abcdefx");
				}
				$s = 12; continue;
			/* } else if (_1 === (100)) { */ case 3:
				p.fmt.fmtInteger(v, 10, isSigned, verb, "0123456789abcdefx");
				$s = 12; continue;
			/* } else if (_1 === (98)) { */ case 4:
				p.fmt.fmtInteger(v, 2, isSigned, verb, "0123456789abcdefx");
				$s = 12; continue;
			/* } else if ((_1 === (111)) || (_1 === (79))) { */ case 5:
				p.fmt.fmtInteger(v, 8, isSigned, verb, "0123456789abcdefx");
				$s = 12; continue;
			/* } else if (_1 === (120)) { */ case 6:
				p.fmt.fmtInteger(v, 16, isSigned, verb, "0123456789abcdefx");
				$s = 12; continue;
			/* } else if (_1 === (88)) { */ case 7:
				p.fmt.fmtInteger(v, 16, isSigned, verb, "0123456789ABCDEFX");
				$s = 12; continue;
			/* } else if (_1 === (99)) { */ case 8:
				p.fmt.fmtC(v);
				$s = 12; continue;
			/* } else if (_1 === (113)) { */ case 9:
				p.fmt.fmtQc(v);
				$s = 12; continue;
			/* } else if (_1 === (85)) { */ case 10:
				p.fmt.fmtUnicode(v);
				$s = 12; continue;
			/* } else { */ case 11:
				$r = p.badVerb(verb); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 12:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtInteger, $c: true, $r, _1, isSigned, p, v, verb, $s};return $f;
	};
	pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); };
	pp.ptr.prototype.fmtFloat = function(v, size, verb) {
		var {_1, p, size, v, verb, $s, $r, $c} = $restore(this, {v, size, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if (_1 === (118)) { $s = 2; continue; }
			/* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88))) { $s = 3; continue; }
			/* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; }
			/* */ if (_1 === (70)) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if (_1 === (118)) { */ case 2:
				p.fmt.fmtFloat(v, size, 103, -1);
				$s = 7; continue;
			/* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88))) { */ case 3:
				p.fmt.fmtFloat(v, size, verb, -1);
				$s = 7; continue;
			/* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4:
				p.fmt.fmtFloat(v, size, verb, 6);
				$s = 7; continue;
			/* } else if (_1 === (70)) { */ case 5:
				p.fmt.fmtFloat(v, size, 102, 6);
				$s = 7; continue;
			/* } else { */ case 6:
				$r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 7:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtFloat, $c: true, $r, _1, p, size, v, verb, $s};return $f;
	};
	pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); };
	pp.ptr.prototype.fmtComplex = function(v, size, verb) {
		var {_1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r, $c} = $restore(this, {v, size, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120)) || (_1 === (88)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2:
				oldPlus = p.fmt.fmtFlags.plus;
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40);
				$r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				p.fmt.fmtFlags.plus = true;
				$r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("i)");
				p.fmt.fmtFlags.plus = oldPlus;
				$s = 4; continue;
			/* } else { */ case 3:
				$r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 4:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtComplex, $c: true, $r, _1, _q, _q$1, oldPlus, p, size, v, verb, $s};return $f;
	};
	pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); };
	pp.ptr.prototype.fmtString = function(v, verb) {
		var {_1, p, v, verb, $s, $r, $c} = $restore(this, {v, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if (_1 === (118)) { $s = 2; continue; }
			/* */ if (_1 === (115)) { $s = 3; continue; }
			/* */ if (_1 === (120)) { $s = 4; continue; }
			/* */ if (_1 === (88)) { $s = 5; continue; }
			/* */ if (_1 === (113)) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (_1 === (118)) { */ case 2:
				if (p.fmt.fmtFlags.sharpV) {
					p.fmt.fmtQ(v);
				} else {
					p.fmt.fmtS(v);
				}
				$s = 8; continue;
			/* } else if (_1 === (115)) { */ case 3:
				p.fmt.fmtS(v);
				$s = 8; continue;
			/* } else if (_1 === (120)) { */ case 4:
				p.fmt.fmtSx(v, "0123456789abcdefx");
				$s = 8; continue;
			/* } else if (_1 === (88)) { */ case 5:
				p.fmt.fmtSx(v, "0123456789ABCDEFX");
				$s = 8; continue;
			/* } else if (_1 === (113)) { */ case 6:
				p.fmt.fmtQ(v);
				$s = 8; continue;
			/* } else { */ case 7:
				$r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 8:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtString, $c: true, $r, _1, p, v, verb, $s};return $f;
	};
	pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); };
	pp.ptr.prototype.fmtBytes = function(v, verb, typeString) {
		var {_1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r, $c} = $restore(this, {v, verb, typeString});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
			_1 = verb;
			/* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; }
			/* */ if (_1 === (115)) { $s = 3; continue; }
			/* */ if (_1 === (120)) { $s = 4; continue; }
			/* */ if (_1 === (88)) { $s = 5; continue; }
			/* */ if (_1 === (113)) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if ((_1 === (118)) || (_1 === (100))) { */ case 2:
				if (p.fmt.fmtFlags.sharpV) {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(typeString);
					if (v === sliceType$2.nil) {
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)");
						$s = -1; return;
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123);
					_ref = v;
					_i = 0;
					while (true) {
						if (!(_i < _ref.$length)) { break; }
						i = _i;
						c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
						if (i > 0) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", ");
						}
						p.fmt0x64((new $Uint64(0, c)), true);
						_i++;
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125);
				} else {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91);
					_ref$1 = v;
					_i$1 = 0;
					while (true) {
						if (!(_i$1 < _ref$1.$length)) { break; }
						i$1 = _i$1;
						c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
						if (i$1 > 0) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32);
						}
						p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, verb, "0123456789abcdefx");
						_i$1++;
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93);
				}
				$s = 8; continue;
			/* } else if (_1 === (115)) { */ case 3:
				p.fmt.fmtBs(v);
				$s = 8; continue;
			/* } else if (_1 === (120)) { */ case 4:
				p.fmt.fmtBx(v, "0123456789abcdefx");
				$s = 8; continue;
			/* } else if (_1 === (88)) { */ case 5:
				p.fmt.fmtBx(v, "0123456789ABCDEFX");
				$s = 8; continue;
			/* } else if (_1 === (113)) { */ case 6:
				p.fmt.fmtQ(($bytesToString(v)));
				$s = 8; continue;
			/* } else { */ case 7:
				_r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 8:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtBytes, $c: true, $r, _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s};return $f;
	};
	pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); };
	pp.ptr.prototype.fmtPointer = function(value, verb) {
		var {_1, _2, _r, p, u, value, verb, $s, $r, $c} = $restore(this, {value, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		u = 0;
			_1 = $clone(value, reflect.Value).Kind();
			/* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2:
				u = $clone(value, reflect.Value).Pointer();
				$s = 4; continue;
			/* } else { */ case 3:
				$r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 4:
		case 1:
			_2 = verb;
			/* */ if (_2 === (118)) { $s = 7; continue; }
			/* */ if (_2 === (112)) { $s = 8; continue; }
			/* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; }
			/* */ $s = 10; continue;
			/* if (_2 === (118)) { */ case 7:
				/* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; }
				/* */ $s = 13; continue;
				/* if (p.fmt.fmtFlags.sharpV) { */ case 12:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(40);
					_r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(")(");
					if (u === 0) {
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("nil");
					} else {
						p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true);
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41);
					$s = 14; continue;
				/* } else { */ case 13:
					if (u === 0) {
						p.fmt.padString("<nil>");
					} else {
						p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp);
					}
				/* } */ case 14:
				$s = 11; continue;
			/* } else if (_2 === (112)) { */ case 8:
				p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp);
				$s = 11; continue;
			/* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9:
				$r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 11; continue;
			/* } else { */ case 10:
				$r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 11:
		case 6:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.fmtPointer, $c: true, $r, _1, _2, _r, p, u, value, verb, $s};return $f;
	};
	pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); };
	pp.ptr.prototype.catchPanic = function(arg, verb, method) {
		var {_r, arg, err, method, oldFlags, p, v, verb, $s, $r, $c} = $restore(this, {arg, verb, method});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		err = $recover();
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1:
			_r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			v = _r;
			if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) {
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
				$s = -1; return;
			}
			if (p.panicking) {
				$panic(err);
			}
			oldFlags = $clone(p.fmt.fmtFlags, fmtFlags);
			p.fmt.clearflags();
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!");
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb);
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(PANIC=");
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(method);
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(" method: ");
			p.panicking = true;
			$r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			p.panicking = false;
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41);
			fmtFlags.copy(p.fmt.fmtFlags, oldFlags);
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.catchPanic, $c: true, $r, _r, arg, err, method, oldFlags, p, v, verb, $s};return $f;
	};
	pp.prototype.catchPanic = function(arg, verb, method) { return this.$val.catchPanic(arg, verb, method); };
	pp.ptr.prototype.handleMethods = function(verb) {
		var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred, $r, $c} = $restore(this, {verb});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		handled = false;
		p = this;
		/* */ if (p.erroring) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (p.erroring) { */ case 1:
			$24r = handled;
			$s = 3; case 3: return $24r;
		/* } */ case 2:
		/* */ if (verb === 119) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (verb === 119) { */ case 4:
			_tuple = $assertType(p.arg, $error, true);
			err = _tuple[0];
			ok = _tuple[1];
			/* */ if (!ok || !p.wrapErrs || !($interfaceIsEqual(p.wrappedErr, $ifaceNil))) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (!ok || !p.wrapErrs || !($interfaceIsEqual(p.wrappedErr, $ifaceNil))) { */ case 6:
				p.wrappedErr = $ifaceNil;
				p.wrapErrs = false;
				$r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				handled = true;
				$24r$1 = handled;
				$s = 9; case 9: return $24r$1;
			/* } */ case 7:
			p.wrappedErr = err;
			verb = 118;
		/* } */ case 5:
		_tuple$1 = $assertType(p.arg, Formatter, true);
		formatter = _tuple$1[0];
		ok$1 = _tuple$1[1];
		/* */ if (ok$1) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (ok$1) { */ case 10:
			handled = true;
			$deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Format"]]);
			$r = formatter.Format(p, verb); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$24r$2 = handled;
			$s = 13; case 13: return $24r$2;
		/* } */ case 11:
		/* */ if (p.fmt.fmtFlags.sharpV) { $s = 14; continue; }
		/* */ $s = 15; continue;
		/* if (p.fmt.fmtFlags.sharpV) { */ case 14:
			_tuple$2 = $assertType(p.arg, GoStringer, true);
			stringer = _tuple$2[0];
			ok$2 = _tuple$2[1];
			/* */ if (ok$2) { $s = 17; continue; }
			/* */ $s = 18; continue;
			/* if (ok$2) { */ case 17:
				handled = true;
				$deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "GoString"]]);
				_r = stringer.GoString(); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$r = p.fmt.fmtS(_r); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$24r$3 = handled;
				$s = 21; case 21: return $24r$3;
			/* } */ case 18:
			$s = 16; continue;
		/* } else { */ case 15:
				_1 = verb;
				/* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 23; continue; }
				/* */ $s = 24; continue;
				/* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 23:
					_ref = p.arg;
					/* */ if ($assertType(_ref, $error, true)[1]) { $s = 25; continue; }
					/* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 26; continue; }
					/* */ $s = 27; continue;
					/* if ($assertType(_ref, $error, true)[1]) { */ case 25:
						v = _ref;
						handled = true;
						$deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Error"]]);
						_r$1 = v.Error(); /* */ $s = 28; case 28: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
						$r = p.fmtString(_r$1, verb); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						$24r$4 = handled;
						$s = 30; case 30: return $24r$4;
					/* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 26:
						v$1 = _ref;
						handled = true;
						$deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "String"]]);
						_r$2 = v$1.String(); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						$r = p.fmtString(_r$2, verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						$24r$5 = handled;
						$s = 33; case 33: return $24r$5;
					/* } */ case 27:
				/* } */ case 24:
			case 22:
		/* } */ case 16:
		handled = false;
		$24r$6 = handled;
		$s = 34; case 34: return $24r$6;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  handled; } if($curGoroutine.asleep) { var $f = {$blk: pp.ptr.prototype.handleMethods, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, err, formatter, handled, ok, ok$1, ok$2, p, stringer, v, v$1, verb, $s, $deferred};return $f; } }
	};
	pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); };
	pp.ptr.prototype.printArg = function(arg, verb) {
		var {_1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r, $c} = $restore(this, {arg, verb});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		p.arg = arg;
		p.value = new reflect.Value.ptr(ptrType.nil, 0, 0);
		/* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1:
				_1 = verb;
				/* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; }
				/* */ $s = 5; continue;
				/* if ((_1 === (84)) || (_1 === (118))) { */ case 4:
					p.fmt.padString("<nil>");
					$s = 6; continue;
				/* } else { */ case 5:
					$r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 6:
			case 3:
			$s = -1; return;
		/* } */ case 2:
			_2 = verb;
			/* */ if (_2 === (84)) { $s = 9; continue; }
			/* */ if (_2 === (112)) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_2 === (84)) { */ case 9:
				_r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				$r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } else if (_2 === (112)) { */ case 10:
				_r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 11:
		case 8:
		_ref = arg;
		/* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; }
		/* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; }
		/* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; }
		/* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; }
		/* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; }
		/* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; }
		/* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; }
		/* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; }
		/* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; }
		/* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; }
		/* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; }
		/* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; }
		/* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; }
		/* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; }
		/* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; }
		/* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; }
		/* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; }
		/* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; }
		/* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; }
		/* */ $s = 35; continue;
		/* if ($assertType(_ref, $Bool, true)[1]) { */ case 16:
			f = _ref.$val;
			$r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17:
			f$1 = _ref.$val;
			$r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18:
			f$2 = _ref.$val;
			$r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19:
			f$3 = _ref.$val;
			$r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20:
			f$4 = _ref.$val;
			$r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21:
			f$5 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22:
			f$6 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23:
			f$7 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24:
			f$8 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25:
			f$9 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26:
			f$10 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27:
			f$11 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28:
			f$12 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29:
			f$13 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30:
			f$14 = _ref.$val;
			$r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31:
			f$15 = _ref.$val;
			$r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, $String, true)[1]) { */ case 32:
			f$16 = _ref.$val;
			$r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33:
			f$17 = _ref.$val;
			$r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34:
			f$18 = _ref.$val;
			/* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; }
			/* */ $s = 56; continue;
			/* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55:
				_r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				p.arg = _r$2;
				_r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				/* */ if (_r$3) { $s = 58; continue; }
				/* */ $s = 59; continue;
				/* if (_r$3) { */ case 58:
					$s = -1; return;
				/* } */ case 59:
			/* } */ case 56:
			$r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = 36; continue;
		/* } else { */ case 35:
			f$19 = _ref;
			_r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			/* */ if (!_r$4) { $s = 62; continue; }
			/* */ $s = 63; continue;
			/* if (!_r$4) { */ case 62:
				_r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				$r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 63:
		/* } */ case 36:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.printArg, $c: true, $r, _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s};return $f;
	};
	pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); };
	pp.ptr.prototype.printValue = function(value, verb, depth) {
		var {_1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r, $c} = $restore(this, {value, verb, depth});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		/* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1:
			_r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			p.arg = _r;
			_r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* */ if (_r$1) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (_r$1) { */ case 4:
				$s = -1; return;
			/* } */ case 5:
		/* } */ case 2:
		p.arg = $ifaceNil;
		p.value = value;
			f = value;
			_1 = $clone(value, reflect.Value).Kind();
			/* */ if (_1 === (0)) { $s = 8; continue; }
			/* */ if (_1 === (1)) { $s = 9; continue; }
			/* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; }
			/* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; }
			/* */ if (_1 === (13)) { $s = 12; continue; }
			/* */ if (_1 === (14)) { $s = 13; continue; }
			/* */ if (_1 === (15)) { $s = 14; continue; }
			/* */ if (_1 === (16)) { $s = 15; continue; }
			/* */ if (_1 === (24)) { $s = 16; continue; }
			/* */ if (_1 === (21)) { $s = 17; continue; }
			/* */ if (_1 === (25)) { $s = 18; continue; }
			/* */ if (_1 === (20)) { $s = 19; continue; }
			/* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; }
			/* */ if (_1 === (22)) { $s = 21; continue; }
			/* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; }
			/* */ $s = 23; continue;
			/* if (_1 === (0)) { */ case 8:
				/* */ if (depth === 0) { $s = 25; continue; }
				/* */ $s = 26; continue;
				/* if (depth === 0) { */ case 25:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<invalid reflect.Value>");
					$s = 27; continue;
				/* } else { */ case 26:
						_2 = verb;
						/* */ if (_2 === (118)) { $s = 29; continue; }
						/* */ $s = 30; continue;
						/* if (_2 === (118)) { */ case 29:
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
							$s = 31; continue;
						/* } else { */ case 30:
							$r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						/* } */ case 31:
					case 28:
				/* } */ case 27:
				$s = 24; continue;
			/* } else if (_1 === (1)) { */ case 9:
				$r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10:
				$r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11:
				$r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (13)) { */ case 12:
				$r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (14)) { */ case 13:
				$r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (15)) { */ case 14:
				$r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (16)) { */ case 15:
				$r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (24)) { */ case 16:
				_r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if (_1 === (21)) { */ case 17:
				/* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; }
				/* */ $s = 43; continue;
				/* if (p.fmt.fmtFlags.sharpV) { */ case 42:
					_r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					if ($clone(f, reflect.Value).IsNil()) {
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)");
						$s = -1; return;
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123);
					$s = 44; continue;
				/* } else { */ case 43:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("map[");
				/* } */ case 44:
				_r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				sorted = _r$4;
				_ref = sorted.Key;
				_i = 0;
				/* while (true) { */ case 48:
					/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; }
					i = _i;
					key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
					if (i > 0) {
						if (p.fmt.fmtFlags.sharpV) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", ");
						} else {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32);
						}
					}
					$r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58);
					$r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					_i++;
				$s = 48; continue;
				case 49:
				if (p.fmt.fmtFlags.sharpV) {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125);
				} else {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93);
				}
				$s = 24; continue;
			/* } else if (_1 === (25)) { */ case 18:
				/* */ if (p.fmt.fmtFlags.sharpV) { $s = 52; continue; }
				/* */ $s = 53; continue;
				/* if (p.fmt.fmtFlags.sharpV) { */ case 52:
					_r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 53:
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123);
				i$1 = 0;
				/* while (true) { */ case 56:
					/* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; }
					if (i$1 > 0) {
						if (p.fmt.fmtFlags.sharpV) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", ");
						} else {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32);
						}
					}
					/* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; }
					/* */ $s = 59; continue;
					/* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 58:
						_r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						name = _r$6.Name;
						if (!(name === "")) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(name);
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(58);
						}
					/* } */ case 59:
					_r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					$r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					i$1 = i$1 + (1) >> 0;
				$s = 56; continue;
				case 57:
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125);
				$s = 24; continue;
			/* } else if (_1 === (20)) { */ case 19:
				_r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				value$1 = _r$8;
				/* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; }
				/* */ $s = 65; continue;
				/* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64:
					/* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; }
					/* */ $s = 68; continue;
					/* if (p.fmt.fmtFlags.sharpV) { */ case 67:
						_r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
						$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)");
						$s = 69; continue;
					/* } else { */ case 68:
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
					/* } */ case 69:
					$s = 66; continue;
				/* } else { */ case 65:
					$r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 66:
				$s = 24; continue;
			/* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20:
					_3 = verb;
					/* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; }
					/* */ $s = 75; continue;
					/* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74:
						t = $clone(f, reflect.Value).Type();
						_r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
						_r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
						/* */ if (_r$11 === 8) { $s = 76; continue; }
						/* */ $s = 77; continue;
						/* if (_r$11 === 8) { */ case 76:
							bytes = sliceType$2.nil;
							/* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; }
							/* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; }
							/* */ $s = 82; continue;
							/* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80:
								_r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
								bytes = _r$12;
								$s = 83; continue;
							/* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81:
								_r$13 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
								_r$14 = $clone(_r$13, reflect.Value).Bytes(); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
								bytes = _r$14;
								$s = 83; continue;
							/* } else { */ case 82:
								bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len());
								_ref$1 = bytes;
								_i$1 = 0;
								/* while (true) { */ case 87:
									/* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 88; continue; }
									i$2 = _i$1;
									_r$15 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 89; case 89: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
									_r$16 = $clone(_r$15, reflect.Value).Uint(); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
									((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$16.$low << 24 >>> 24)));
									_i$1++;
								$s = 87; continue;
								case 88:
							/* } */ case 83:
							_arg = bytes;
							_arg$1 = verb;
							_r$17 = t.String(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
							_arg$2 = _r$17;
							$r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
							$s = -1; return;
						/* } */ case 77:
					/* } */ case 75:
				case 73:
				/* */ if (p.fmt.fmtFlags.sharpV) { $s = 93; continue; }
				/* */ $s = 94; continue;
				/* if (p.fmt.fmtFlags.sharpV) { */ case 93:
					_r$18 = $clone(f, reflect.Value).Type().String(); /* */ $s = 96; case 96: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
					$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$18); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) {
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(nil)");
						$s = -1; return;
					}
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(123);
					i$3 = 0;
					/* while (true) { */ case 98:
						/* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 99; continue; }
						if (i$3 > 0) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", ");
						}
						_r$19 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 100; case 100: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
						$r = p.printValue($clone(_r$19, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						i$3 = i$3 + (1) >> 0;
					$s = 98; continue;
					case 99:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(125);
					$s = 95; continue;
				/* } else { */ case 94:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(91);
					i$4 = 0;
					/* while (true) { */ case 102:
						/* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 103; continue; }
						if (i$4 > 0) {
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(32);
						}
						_r$20 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
						$r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						i$4 = i$4 + (1) >> 0;
					$s = 102; continue;
					case 103:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(93);
				/* } */ case 95:
				$s = 24; continue;
			/* } else if (_1 === (22)) { */ case 21:
				/* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 106; continue; }
				/* */ $s = 107; continue;
				/* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 106:
						_r$21 = $clone(f, reflect.Value).Elem(); /* */ $s = 109; case 109: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
						a = _r$21;
						_4 = $clone(a, reflect.Value).Kind();
						/* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 110; continue; }
						/* */ $s = 111; continue;
						/* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 110:
							(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(38);
							$r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
							$s = -1; return;
						/* } */ case 111:
					case 108:
				/* } */ case 107:
				$r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22:
				$r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 24; continue;
			/* } else { */ case 23:
				$r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 24:
		case 7:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.printValue, $c: true, $r, _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s};return $f;
	};
	pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); };
	intFromArg = function(a, argNum) {
		var {_1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r, $c} = $restore(this, {a, argNum});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		num = 0;
		isInt = false;
		newArgNum = 0;
		newArgNum = argNum;
		/* */ if (argNum < a.$length) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (argNum < a.$length) { */ case 1:
			_tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true);
			num = _tuple[0];
			isInt = _tuple[1];
			/* */ if (!isInt) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!isInt) { */ case 3:
					_r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
					v = _r;
					_1 = $clone(v, reflect.Value).Kind();
					if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) {
						n = $clone(v, reflect.Value).Int();
						if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) {
							num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0));
							isInt = true;
						}
					} else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) {
						n$1 = $clone(v, reflect.Value).Uint();
						if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) {
							num = ((n$1.$low >> 0));
							isInt = true;
						}
					}
				case 5:
			/* } */ case 4:
			newArgNum = argNum + 1 >> 0;
			if (tooLarge(num)) {
				num = 0;
				isInt = false;
			}
		/* } */ case 2:
		$s = -1; return [num, isInt, newArgNum];
		/* */ } return; } var $f = {$blk: intFromArg, $c: true, $r, _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s};return $f;
	};
	parseArgNumber = function(format) {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width;
		index = 0;
		wid = 0;
		ok = false;
		if (format.length < 3) {
			_tmp = 0;
			_tmp$1 = 1;
			_tmp$2 = false;
			index = _tmp;
			wid = _tmp$1;
			ok = _tmp$2;
			return [index, wid, ok];
		}
		i = 1;
		while (true) {
			if (!(i < format.length)) { break; }
			if (format.charCodeAt(i) === 93) {
				_tuple = parsenum(format, 1, i);
				width = _tuple[0];
				ok$1 = _tuple[1];
				newi = _tuple[2];
				if (!ok$1 || !((newi === i))) {
					_tmp$3 = 0;
					_tmp$4 = i + 1 >> 0;
					_tmp$5 = false;
					index = _tmp$3;
					wid = _tmp$4;
					ok = _tmp$5;
					return [index, wid, ok];
				}
				_tmp$6 = width - 1 >> 0;
				_tmp$7 = i + 1 >> 0;
				_tmp$8 = true;
				index = _tmp$6;
				wid = _tmp$7;
				ok = _tmp$8;
				return [index, wid, ok];
			}
			i = i + (1) >> 0;
		}
		_tmp$9 = 0;
		_tmp$10 = 1;
		_tmp$11 = false;
		index = _tmp$9;
		wid = _tmp$10;
		ok = _tmp$11;
		return [index, wid, ok];
	};
	pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) {
		var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid;
		newArgNum = 0;
		newi = 0;
		found = false;
		p = this;
		if (format.length <= i || !((format.charCodeAt(i) === 91))) {
			_tmp = argNum;
			_tmp$1 = i;
			_tmp$2 = false;
			newArgNum = _tmp;
			newi = _tmp$1;
			found = _tmp$2;
			return [newArgNum, newi, found];
		}
		p.reordered = true;
		_tuple = parseArgNumber($substring(format, i));
		index = _tuple[0];
		wid = _tuple[1];
		ok = _tuple[2];
		if (ok && 0 <= index && index < numArgs) {
			_tmp$3 = index;
			_tmp$4 = i + wid >> 0;
			_tmp$5 = true;
			newArgNum = _tmp$3;
			newi = _tmp$4;
			found = _tmp$5;
			return [newArgNum, newi, found];
		}
		p.goodArgNum = false;
		_tmp$6 = argNum;
		_tmp$7 = i + wid >> 0;
		_tmp$8 = ok;
		newArgNum = _tmp$6;
		newi = _tmp$7;
		found = _tmp$8;
		return [newArgNum, newi, found];
	};
	pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); };
	pp.ptr.prototype.badArgNum = function(verb) {
		var p, verb;
		p = this;
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!");
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb);
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(BADINDEX)");
	};
	pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); };
	pp.ptr.prototype.missingArg = function(verb) {
		var p, verb;
		p = this;
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!");
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeRune(verb);
		(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("(MISSING)");
	};
	pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); };
	pp.ptr.prototype.doPrintf = function(format, a) {
		var {_1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r, $c} = $restore(this, {format, a});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		end = format.length;
		argNum = 0;
		afterIndex = false;
		p.reordered = false;
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; }
			p.goodArgNum = true;
			lasti = i;
			while (true) {
				if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; }
				i = i + (1) >> 0;
			}
			if (i > lasti) {
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString($substring(format, lasti, i));
			}
			if (i >= end) {
				/* break; */ $s = 2; continue;
			}
			i = i + (1) >> 0;
			p.fmt.clearflags();
			/* while (true) { */ case 3:
				/* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; }
				c = format.charCodeAt(i);
					_1 = c;
					/* */ if (_1 === (35)) { $s = 6; continue; }
					/* */ if (_1 === (48)) { $s = 7; continue; }
					/* */ if (_1 === (43)) { $s = 8; continue; }
					/* */ if (_1 === (45)) { $s = 9; continue; }
					/* */ if (_1 === (32)) { $s = 10; continue; }
					/* */ $s = 11; continue;
					/* if (_1 === (35)) { */ case 6:
						p.fmt.fmtFlags.sharp = true;
						$s = 12; continue;
					/* } else if (_1 === (48)) { */ case 7:
						p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus;
						$s = 12; continue;
					/* } else if (_1 === (43)) { */ case 8:
						p.fmt.fmtFlags.plus = true;
						$s = 12; continue;
					/* } else if (_1 === (45)) { */ case 9:
						p.fmt.fmtFlags.minus = true;
						p.fmt.fmtFlags.zero = false;
						$s = 12; continue;
					/* } else if (_1 === (32)) { */ case 10:
						p.fmt.fmtFlags.space = true;
						$s = 12; continue;
					/* } else { */ case 11:
						/* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; }
						/* */ $s = 14; continue;
						/* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13:
							if (c === 118) {
								p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp;
								p.fmt.fmtFlags.sharp = false;
								p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus;
								p.fmt.fmtFlags.plus = false;
							}
							$r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
							argNum = argNum + (1) >> 0;
							i = i + (1) >> 0;
							/* continue formatLoop; */ $s = 1; continue s;
						/* } */ case 14:
						/* break simpleFormat; */ $s = 4; continue s;
					/* } */ case 12:
				case 5:
				i = i + (1) >> 0;
			$s = 3; continue;
			case 4:
			_tuple = p.argNumber(argNum, format, i, a.$length);
			argNum = _tuple[0];
			i = _tuple[1];
			afterIndex = _tuple[2];
			/* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; }
			/* */ $s = 17; continue;
			/* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16:
				i = i + (1) >> 0;
				_r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
				_tuple$1 = _r;
				p.fmt.wid = _tuple$1[0];
				p.fmt.fmtFlags.widPresent = _tuple$1[1];
				argNum = _tuple$1[2];
				if (!p.fmt.fmtFlags.widPresent) {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADWIDTH)");
				}
				if (p.fmt.wid < 0) {
					p.fmt.wid = -p.fmt.wid;
					p.fmt.fmtFlags.minus = true;
					p.fmt.fmtFlags.zero = false;
				}
				afterIndex = false;
				$s = 18; continue;
			/* } else { */ case 17:
				_tuple$2 = parsenum(format, i, end);
				p.fmt.wid = _tuple$2[0];
				p.fmt.fmtFlags.widPresent = _tuple$2[1];
				i = _tuple$2[2];
				if (afterIndex && p.fmt.fmtFlags.widPresent) {
					p.goodArgNum = false;
				}
			/* } */ case 18:
			/* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; }
			/* */ $s = 21; continue;
			/* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20:
				i = i + (1) >> 0;
				if (afterIndex) {
					p.goodArgNum = false;
				}
				_tuple$3 = p.argNumber(argNum, format, i, a.$length);
				argNum = _tuple$3[0];
				i = _tuple$3[1];
				afterIndex = _tuple$3[2];
				/* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; }
				/* */ $s = 23; continue;
				/* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22:
					i = i + (1) >> 0;
					_r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
					_tuple$4 = _r$1;
					p.fmt.prec = _tuple$4[0];
					p.fmt.fmtFlags.precPresent = _tuple$4[1];
					argNum = _tuple$4[2];
					if (p.fmt.prec < 0) {
						p.fmt.prec = 0;
						p.fmt.fmtFlags.precPresent = false;
					}
					if (!p.fmt.fmtFlags.precPresent) {
						(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(BADPREC)");
					}
					afterIndex = false;
					$s = 24; continue;
				/* } else { */ case 23:
					_tuple$5 = parsenum(format, i, end);
					p.fmt.prec = _tuple$5[0];
					p.fmt.fmtFlags.precPresent = _tuple$5[1];
					i = _tuple$5[2];
					if (!p.fmt.fmtFlags.precPresent) {
						p.fmt.prec = 0;
						p.fmt.fmtFlags.precPresent = true;
					}
				/* } */ case 24:
			/* } */ case 21:
			if (!afterIndex) {
				_tuple$6 = p.argNumber(argNum, format, i, a.$length);
				argNum = _tuple$6[0];
				i = _tuple$6[1];
				afterIndex = _tuple$6[2];
			}
			if (i >= end) {
				(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(NOVERB)");
				/* break; */ $s = 2; continue;
			}
			_tmp = ((format.charCodeAt(i) >> 0));
			_tmp$1 = 1;
			verb = _tmp;
			size = _tmp$1;
			if (verb >= 128) {
				_tuple$7 = utf8.DecodeRuneInString($substring(format, i));
				verb = _tuple$7[0];
				size = _tuple$7[1];
			}
			i = i + (size) >> 0;
				/* */ if ((verb === 37)) { $s = 27; continue; }
				/* */ if (!p.goodArgNum) { $s = 28; continue; }
				/* */ if (argNum >= a.$length) { $s = 29; continue; }
				/* */ if ((verb === 118)) { $s = 30; continue; }
				/* */ $s = 31; continue;
				/* if ((verb === 37)) { */ case 27:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(37);
					$s = 32; continue;
				/* } else if (!p.goodArgNum) { */ case 28:
					p.badArgNum(verb);
					$s = 32; continue;
				/* } else if (argNum >= a.$length) { */ case 29:
					p.missingArg(verb);
					$s = 32; continue;
				/* } else if ((verb === 118)) { */ case 30:
					p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp;
					p.fmt.fmtFlags.sharp = false;
					p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus;
					p.fmt.fmtFlags.plus = false;
					$r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					argNum = argNum + (1) >> 0;
					$s = 32; continue;
				/* } else { */ case 31:
					$r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					argNum = argNum + (1) >> 0;
				/* } */ case 32:
			case 26:
		$s = 1; continue;
		case 2:
		/* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; }
		/* */ $s = 36; continue;
		/* if (!p.reordered && argNum < a.$length) { */ case 35:
			p.fmt.clearflags();
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("%!(EXTRA ");
			_ref = $subslice(a, argNum);
			_i = 0;
			/* while (true) { */ case 37:
				/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; }
				i$1 = _i;
				arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				if (i$1 > 0) {
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(", ");
				}
				/* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; }
				/* */ $s = 40; continue;
				/* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39:
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString("<nil>");
					$s = 41; continue;
				/* } else { */ case 40:
					_r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					$r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(61);
					$r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 41:
				_i++;
			$s = 37; continue;
			case 38:
			(p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).writeByte(41);
		/* } */ case 36:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: pp.ptr.prototype.doPrintf, $c: true, $r, _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s};return $f;
	};
	pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); };
	fmt.ptr.prototype.clearflags = function() {
		var f;
		f = this;
		fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false));
	};
	fmt.prototype.clearflags = function() { return this.$val.clearflags(); };
	fmt.ptr.prototype.init = function(buf) {
		var buf, f;
		f = this;
		f.buf = buf;
		f.clearflags();
	};
	fmt.prototype.init = function(buf) { return this.$val.init(buf); };
	fmt.ptr.prototype.writePadding = function(n) {
		var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding;
		f = this;
		if (n <= 0) {
			return;
		}
		buf = f.buf.$get();
		oldLen = buf.$length;
		newLen = oldLen + n >> 0;
		if (newLen > buf.$capacity) {
			buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0));
			$copySlice(buf, f.buf.$get());
		}
		padByte = 32;
		if (f.fmtFlags.zero) {
			padByte = 48;
		}
		padding = $subslice(buf, oldLen, newLen);
		_ref = padding;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			i = _i;
			((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte);
			_i++;
		}
		f.buf.$set($subslice(buf, 0, newLen));
	};
	fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); };
	fmt.ptr.prototype.pad = function(b) {
		var b, f, width;
		f = this;
		if (!f.fmtFlags.widPresent || (f.wid === 0)) {
			f.buf.write(b);
			return;
		}
		width = f.wid - utf8.RuneCount(b) >> 0;
		if (!f.fmtFlags.minus) {
			f.writePadding(width);
			f.buf.write(b);
		} else {
			f.buf.write(b);
			f.writePadding(width);
		}
	};
	fmt.prototype.pad = function(b) { return this.$val.pad(b); };
	fmt.ptr.prototype.padString = function(s) {
		var f, s, width;
		f = this;
		if (!f.fmtFlags.widPresent || (f.wid === 0)) {
			f.buf.writeString(s);
			return;
		}
		width = f.wid - utf8.RuneCountInString(s) >> 0;
		if (!f.fmtFlags.minus) {
			f.writePadding(width);
			f.buf.writeString(s);
		} else {
			f.buf.writeString(s);
			f.writePadding(width);
		}
	};
	fmt.prototype.padString = function(s) { return this.$val.padString(s); };
	fmt.ptr.prototype.fmtBoolean = function(v) {
		var f, v;
		f = this;
		if (v) {
			f.padString("true");
		} else {
			f.padString("false");
		}
	};
	fmt.prototype.fmtBoolean = function(v) { return this.$val.fmtBoolean(v); };
	fmt.ptr.prototype.fmtUnicode = function(u) {
		var buf, f, i, oldZero, prec, u, width;
		f = this;
		buf = $subslice(new sliceType$2(f.intbuf), 0);
		prec = 4;
		if (f.fmtFlags.precPresent && f.prec > 4) {
			prec = f.prec;
			width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0;
			if (width > buf.$length) {
				buf = $makeSlice(sliceType$2, width);
			}
		}
		i = buf.$length;
		if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) {
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39);
			i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0;
			utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0)));
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39);
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32);
		}
		while (true) {
			if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; }
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0))));
			prec = prec - (1) >> 0;
			u = $shiftRightUint64(u, (4));
		}
		i = i - (1) >> 0;
		((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u)));
		prec = prec - (1) >> 0;
		while (true) {
			if (!(prec > 0)) { break; }
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
			prec = prec - (1) >> 0;
		}
		i = i - (1) >> 0;
		((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43);
		i = i - (1) >> 0;
		((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85);
		oldZero = f.fmtFlags.zero;
		f.fmtFlags.zero = false;
		f.pad($subslice(buf, i));
		f.fmtFlags.zero = oldZero;
	};
	fmt.prototype.fmtUnicode = function(u) { return this.$val.fmtUnicode(u); };
	fmt.ptr.prototype.fmtInteger = function(u, base, isSigned, verb, digits) {
		var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, verb, width, x, x$1, x$2, x$3, x$4;
		f = this;
		negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0)));
		if (negative) {
			u = new $Uint64(-u.$high, -u.$low);
		}
		buf = $subslice(new sliceType$2(f.intbuf), 0);
		if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) {
			width = (3 + f.wid >> 0) + f.prec >> 0;
			if (width > buf.$length) {
				buf = $makeSlice(sliceType$2, width);
			}
		}
		prec = 0;
		if (f.fmtFlags.precPresent) {
			prec = f.prec;
			if ((prec === 0) && (u.$high === 0 && u.$low === 0)) {
				oldZero = f.fmtFlags.zero;
				f.fmtFlags.zero = false;
				f.writePadding(f.wid);
				f.fmtFlags.zero = oldZero;
				return;
			}
		} else if (f.fmtFlags.zero && f.fmtFlags.widPresent) {
			prec = f.wid;
			if (negative || f.fmtFlags.plus || f.fmtFlags.space) {
				prec = prec - (1) >> 0;
			}
		}
		i = buf.$length;
		_1 = base;
		if (_1 === (10)) {
			while (true) {
				if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; }
				i = i - (1) >> 0;
				next = $div64(u, new $Uint64(0, 10), false);
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24)));
				u = next;
			}
		} else if (_1 === (16)) {
			while (true) {
				if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; }
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0))));
				u = $shiftRightUint64(u, (4));
			}
		} else if (_1 === (8)) {
			while (true) {
				if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; }
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24)));
				u = $shiftRightUint64(u, (3));
			}
		} else if (_1 === (2)) {
			while (true) {
				if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; }
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24)));
				u = $shiftRightUint64(u, (1));
			}
		} else {
			$panic(new $String("fmt: unknown base; can't happen"));
		}
		i = i - (1) >> 0;
		((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u)));
		while (true) {
			if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; }
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
		}
		if (f.fmtFlags.sharp) {
			_2 = base;
			if (_2 === (2)) {
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 98);
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
			} else if (_2 === (8)) {
				if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) {
					i = i - (1) >> 0;
					((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
				}
			} else if (_2 === (16)) {
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16));
				i = i - (1) >> 0;
				((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
			}
		}
		if (verb === 79) {
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 111);
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48);
		}
		if (negative) {
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45);
		} else if (f.fmtFlags.plus) {
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43);
		} else if (f.fmtFlags.space) {
			i = i - (1) >> 0;
			((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32);
		}
		oldZero$1 = f.fmtFlags.zero;
		f.fmtFlags.zero = false;
		f.pad($subslice(buf, i));
		f.fmtFlags.zero = oldZero$1;
	};
	fmt.prototype.fmtInteger = function(u, base, isSigned, verb, digits) { return this.$val.fmtInteger(u, base, isSigned, verb, digits); };
	fmt.ptr.prototype.truncateString = function(s) {
		var _i, _ref, _rune, f, i, n, s;
		f = this;
		if (f.fmtFlags.precPresent) {
			n = f.prec;
			_ref = s;
			_i = 0;
			while (true) {
				if (!(_i < _ref.length)) { break; }
				_rune = $decodeRune(_ref, _i);
				i = _i;
				n = n - (1) >> 0;
				if (n < 0) {
					return $substring(s, 0, i);
				}
				_i += _rune[1];
			}
		}
		return s;
	};
	fmt.prototype.truncateString = function(s) { return this.$val.truncateString(s); };
	fmt.ptr.prototype.truncate = function(b) {
		var _tuple, b, f, i, n, wid;
		f = this;
		if (f.fmtFlags.precPresent) {
			n = f.prec;
			i = 0;
			while (true) {
				if (!(i < b.$length)) { break; }
				n = n - (1) >> 0;
				if (n < 0) {
					return $subslice(b, 0, i);
				}
				wid = 1;
				if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) >= 128) {
					_tuple = utf8.DecodeRune($subslice(b, i));
					wid = _tuple[1];
				}
				i = i + (wid) >> 0;
			}
		}
		return b;
	};
	fmt.prototype.truncate = function(b) { return this.$val.truncate(b); };
	fmt.ptr.prototype.fmtS = function(s) {
		var f, s;
		f = this;
		s = f.truncateString(s);
		f.padString(s);
	};
	fmt.prototype.fmtS = function(s) { return this.$val.fmtS(s); };
	fmt.ptr.prototype.fmtBs = function(b) {
		var b, f;
		f = this;
		b = f.truncate(b);
		f.pad(b);
	};
	fmt.prototype.fmtBs = function(b) { return this.$val.fmtBs(b); };
	fmt.ptr.prototype.fmtSbx = function(s, b, digits) {
		var b, buf, c, digits, f, i, length, s, width;
		f = this;
		length = b.$length;
		if (b === sliceType$2.nil) {
			length = s.length;
		}
		if (f.fmtFlags.precPresent && f.prec < length) {
			length = f.prec;
		}
		width = $imul(2, length);
		if (width > 0) {
			if (f.fmtFlags.space) {
				if (f.fmtFlags.sharp) {
					width = $imul(width, (2));
				}
				width = width + ((length - 1 >> 0)) >> 0;
			} else if (f.fmtFlags.sharp) {
				width = width + (2) >> 0;
			}
		} else {
			if (f.fmtFlags.widPresent) {
				f.writePadding(f.wid);
			}
			return;
		}
		if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) {
			f.writePadding(f.wid - width >> 0);
		}
		buf = f.buf.$get();
		if (f.fmtFlags.sharp) {
			buf = $append(buf, 48, digits.charCodeAt(16));
		}
		c = 0;
		i = 0;
		while (true) {
			if (!(i < length)) { break; }
			if (f.fmtFlags.space && i > 0) {
				buf = $append(buf, 32);
				if (f.fmtFlags.sharp) {
					buf = $append(buf, 48, digits.charCodeAt(16));
				}
			}
			if (!(b === sliceType$2.nil)) {
				c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]);
			} else {
				c = s.charCodeAt(i);
			}
			buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0)));
			i = i + (1) >> 0;
		}
		f.buf.$set(buf);
		if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) {
			f.writePadding(f.wid - width >> 0);
		}
	};
	fmt.prototype.fmtSbx = function(s, b, digits) { return this.$val.fmtSbx(s, b, digits); };
	fmt.ptr.prototype.fmtSx = function(s, digits) {
		var digits, f, s;
		f = this;
		f.fmtSbx(s, sliceType$2.nil, digits);
	};
	fmt.prototype.fmtSx = function(s, digits) { return this.$val.fmtSx(s, digits); };
	fmt.ptr.prototype.fmtBx = function(b, digits) {
		var b, digits, f;
		f = this;
		f.fmtSbx("", b, digits);
	};
	fmt.prototype.fmtBx = function(b, digits) { return this.$val.fmtBx(b, digits); };
	fmt.ptr.prototype.fmtQ = function(s) {
		var buf, f, s;
		f = this;
		s = f.truncateString(s);
		if (f.fmtFlags.sharp && strconv.CanBackquote(s)) {
			f.padString("`" + s + "`");
			return;
		}
		buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
		if (f.fmtFlags.plus) {
			f.pad(strconv.AppendQuoteToASCII(buf, s));
		} else {
			f.pad(strconv.AppendQuote(buf, s));
		}
	};
	fmt.prototype.fmtQ = function(s) { return this.$val.fmtQ(s); };
	fmt.ptr.prototype.fmtC = function(c) {
		var buf, c, f, r, w;
		f = this;
		r = ((c.$low >> 0));
		if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) {
			r = 65533;
		}
		buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
		w = utf8.EncodeRune($subslice(buf, 0, 4), r);
		f.pad($subslice(buf, 0, w));
	};
	fmt.prototype.fmtC = function(c) { return this.$val.fmtC(c); };
	fmt.ptr.prototype.fmtQc = function(c) {
		var buf, c, f, r;
		f = this;
		r = ((c.$low >> 0));
		if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) {
			r = 65533;
		}
		buf = $subslice(new sliceType$2(f.intbuf), 0, 0);
		if (f.fmtFlags.plus) {
			f.pad(strconv.AppendQuoteRuneToASCII(buf, r));
		} else {
			f.pad(strconv.AppendQuoteRune(buf, r));
		}
	};
	fmt.prototype.fmtQc = function(c) { return this.$val.fmtQc(c); };
	fmt.ptr.prototype.fmtFloat = function(v, size, verb, prec) {
		var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, sawNonzeroDigit, size, tail, tailBuf, v, verb;
		f = this;
		if (f.fmtFlags.precPresent) {
			prec = f.prec;
		}
		num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size);
		if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) {
			num = $subslice(num, 1);
		} else {
			(0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43);
		}
		if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) {
			(0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32);
		}
		if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) {
			oldZero = f.fmtFlags.zero;
			f.fmtFlags.zero = false;
			if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) {
				num = $subslice(num, 1);
			}
			f.pad(num);
			f.fmtFlags.zero = oldZero;
			return;
		}
		if (f.fmtFlags.sharp && !((verb === 98))) {
			digits = 0;
			_1 = verb;
			if ((_1 === (118)) || (_1 === (103)) || (_1 === (71)) || (_1 === (120))) {
				digits = prec;
				if (digits === -1) {
					digits = 6;
				}
			}
			tailBuf = arrayType$3.zero();
			tail = $subslice(new sliceType$2(tailBuf), 0, 0);
			hasDecimalPoint = false;
			sawNonzeroDigit = false;
			i = 1;
			while (true) {
				if (!(i < num.$length)) { break; }
				switch (0) { default:
					_2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]);
					if (_2 === (46)) {
						hasDecimalPoint = true;
					} else if ((_2 === (112)) || (_2 === (80))) {
						tail = $appendSlice(tail, $subslice(num, i));
						num = $subslice(num, 0, i);
					} else if ((_2 === (101)) || (_2 === (69))) {
						if (!((verb === 120)) && !((verb === 88))) {
							tail = $appendSlice(tail, $subslice(num, i));
							num = $subslice(num, 0, i);
							break;
						}
						if (!((((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]) === 48))) {
							sawNonzeroDigit = true;
						}
						if (sawNonzeroDigit) {
							digits = digits - (1) >> 0;
						}
					} else {
						if (!((((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]) === 48))) {
							sawNonzeroDigit = true;
						}
						if (sawNonzeroDigit) {
							digits = digits - (1) >> 0;
						}
					}
				}
				i = i + (1) >> 0;
			}
			if (!hasDecimalPoint) {
				if ((num.$length === 2) && ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 48)) {
					digits = digits - (1) >> 0;
				}
				num = $append(num, 46);
			}
			while (true) {
				if (!(digits > 0)) { break; }
				num = $append(num, 48);
				digits = digits - (1) >> 0;
			}
			num = $appendSlice(num, tail);
		}
		if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) {
			if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) {
				f.buf.writeByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]));
				f.writePadding(f.wid - num.$length >> 0);
				f.buf.write($subslice(num, 1));
				return;
			}
			f.pad(num);
			return;
		}
		f.pad($subslice(num, 1));
	};
	fmt.prototype.fmtFloat = function(v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); };
	Errorf = function(format, a) {
		var {_r, a, err, format, p, s, $s, $r, $c} = $restore(this, {format, a});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		p = _r;
		p.wrapErrs = true;
		$r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		s = ($bytesToString(p.buf));
		err = $ifaceNil;
		if ($interfaceIsEqual(p.wrappedErr, $ifaceNil)) {
			err = errors.New(s);
		} else {
			err = new wrapError.ptr(s, p.wrappedErr);
		}
		p.free();
		$s = -1; return err;
		/* */ } return; } var $f = {$blk: Errorf, $c: true, $r, _r, a, err, format, p, s, $s};return $f;
	};
	$pkg.Errorf = Errorf;
	wrapError.ptr.prototype.Error = function() {
		var e;
		e = this;
		return e.msg;
	};
	wrapError.prototype.Error = function() { return this.$val.Error(); };
	wrapError.ptr.prototype.Unwrap = function() {
		var e;
		e = this;
		return e.err;
	};
	wrapError.prototype.Unwrap = function() { return this.$val.Unwrap(); };
	ptrType$4.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanPercent", name: "scanPercent", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType$1], [$Int, $error], false)}];
	ptrType$1.methods = [{prop: "write", name: "write", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "writeString", name: "writeString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "writeByte", name: "writeByte", pkg: "fmt", typ: $funcType([$Uint8], [], false)}, {prop: "writeRune", name: "writeRune", pkg: "fmt", typ: $funcType([$Int32], [], false)}];
	ptrType$24.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32, $String], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType$1], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType$1], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType$1], [], false)}];
	ptrType$26.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $Int32, $String], [], false)}, {prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}];
	ptrType$27.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Unwrap", name: "Unwrap", pkg: "", typ: $funcType([], [$error], false)}];
	scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
	ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]);
	ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]);
	State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]);
	Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]);
	Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]);
	GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]);
	buffer.init($Uint8);
	pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wrapErrs", name: "wrapErrs", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "wrappedErr", name: "wrappedErr", embedded: false, exported: false, typ: $error, tag: ""}]);
	fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType$1, tag: ""}]);
	wrapError.init("fmt", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = fmtsort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		space = new sliceType([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]);
		ssFree = new sync.Pool.ptr(sliceType$1.nil, (function() {
			return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0));
		}));
		complexError = errors.New("syntax error scanning complex number");
		boolError = errors.New("syntax error scanning boolean");
		ppFree = new sync.Pool.ptr(sliceType$1.nil, (function() {
			return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType$1.zero()), false, false, false, false, false, $ifaceNil);
		}));
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["strings"] = (function() {
	var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, Builder, sliceType, ptrType$1, sliceType$2, explode, genSplit, Split, Map, ToLower, Index, Count;
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	bytealg = $packages["internal/bytealg"];
	io = $packages["io"];
	sync = $packages["sync"];
	unicode = $packages["unicode"];
	utf8 = $packages["unicode/utf8"];
	Builder = $pkg.Builder = $newType(0, $kindStruct, "strings.Builder", true, "strings", true, function(addr_, buf_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.addr = ptrType$1.nil;
			this.buf = sliceType$2.nil;
			return;
		}
		this.addr = addr_;
		this.buf = buf_;
	});
	sliceType = $sliceType($String);
	ptrType$1 = $ptrType(Builder);
	sliceType$2 = $sliceType($Uint8);
	explode = function(s, n) {
		var _tuple, a, ch, i, l, n, s, size, x;
		l = utf8.RuneCountInString(s);
		if (n < 0 || n > l) {
			n = l;
		}
		a = $makeSlice(sliceType, n);
		i = 0;
		while (true) {
			if (!(i < (n - 1 >> 0))) { break; }
			_tuple = utf8.DecodeRuneInString(s);
			ch = _tuple[0];
			size = _tuple[1];
			((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, size));
			s = $substring(s, size);
			if (ch === 65533) {
				((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = "\xEF\xBF\xBD");
			}
			i = i + (1) >> 0;
		}
		if (n > 0) {
			(x = n - 1 >> 0, ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x] = s));
		}
		return a;
	};
	genSplit = function(s, sep, sepSave, n) {
		var a, i, m, n, s, sep, sepSave;
		if (n === 0) {
			return sliceType.nil;
		}
		if (sep === "") {
			return explode(s, n);
		}
		if (n < 0) {
			n = Count(s, sep) + 1 >> 0;
		}
		a = $makeSlice(sliceType, n);
		n = n - (1) >> 0;
		i = 0;
		while (true) {
			if (!(i < n)) { break; }
			m = Index(s, sep);
			if (m < 0) {
				break;
			}
			((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, (m + sepSave >> 0)));
			s = $substring(s, (m + sep.length >> 0));
			i = i + (1) >> 0;
		}
		((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = s);
		return $subslice(a, 0, (i + 1 >> 0));
	};
	Split = function(s, sep) {
		var s, sep;
		return genSplit(s, sep, 0, -1);
	};
	$pkg.Split = Split;
	Map = function(mapping, s) {
		var {_i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, r, r$1, s, width, $s, $r, $c} = $restore(this, {mapping, s});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil);
		_ref = s;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; }
			_rune = $decodeRune(_ref, _i);
			i = _i;
			c = _rune[0];
			_r = mapping(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			r = _r;
			if ((r === c) && !((c === 65533))) {
				_i += _rune[1];
				/* continue; */ $s = 1; continue;
			}
			width = 0;
			if (c === 65533) {
				_tuple = utf8.DecodeRuneInString($substring(s, i));
				c = _tuple[0];
				width = _tuple[1];
				if (!((width === 1)) && (r === c)) {
					_i += _rune[1];
					/* continue; */ $s = 1; continue;
				}
			} else {
				width = utf8.RuneLen(c);
			}
			b.Grow(s.length + 4 >> 0);
			b.WriteString($substring(s, 0, i));
			if (r >= 0) {
				b.WriteRune(r);
			}
			s = $substring(s, (i + width >> 0));
			/* break; */ $s = 2; continue;
		case 2:
		if (b.Cap() === 0) {
			$s = -1; return s;
		}
		_ref$1 = s;
		_i$1 = 0;
		/* while (true) { */ case 4:
			/* if (!(_i$1 < _ref$1.length)) { break; } */ if(!(_i$1 < _ref$1.length)) { $s = 5; continue; }
			_rune$1 = $decodeRune(_ref$1, _i$1);
			c$1 = _rune$1[0];
			_r$1 = mapping(c$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			r$1 = _r$1;
			if (r$1 >= 0) {
				if (r$1 < 128) {
					b.WriteByte(((r$1 << 24 >>> 24)));
				} else {
					b.WriteRune(r$1);
				}
			}
			_i$1 += _rune$1[1];
		$s = 4; continue;
		case 5:
		$s = -1; return b.String();
		/* */ } return; } var $f = {$blk: Map, $c: true, $r, _i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, r, r$1, s, width, $s};return $f;
	};
	$pkg.Map = Map;
	ToLower = function(s) {
		var {$24r, _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s, $r, $c} = $restore(this, {s});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_tmp = true;
		_tmp$1 = false;
		isASCII = _tmp;
		hasUpper = _tmp$1;
		i = 0;
		while (true) {
			if (!(i < s.length)) { break; }
			c = s.charCodeAt(i);
			if (c >= 128) {
				isASCII = false;
				break;
			}
			hasUpper = hasUpper || (65 <= c && c <= 90);
			i = i + (1) >> 0;
		}
		if (isASCII) {
			if (!hasUpper) {
				$s = -1; return s;
			}
			b = new Builder.ptr(ptrType$1.nil, sliceType$2.nil);
			b.Grow(s.length);
			i$1 = 0;
			while (true) {
				if (!(i$1 < s.length)) { break; }
				c$1 = s.charCodeAt(i$1);
				if (65 <= c$1 && c$1 <= 90) {
					c$1 = c$1 + (32) << 24 >>> 24;
				}
				b.WriteByte(c$1);
				i$1 = i$1 + (1) >> 0;
			}
			$s = -1; return b.String();
		}
		_r = Map(unicode.ToLower, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: ToLower, $c: true, $r, $24r, _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s};return $f;
	};
	$pkg.ToLower = ToLower;
	Index = function(s, sep) {
		var s, sep;
		return $parseInt(s.indexOf(sep)) >> 0;
	};
	$pkg.Index = Index;
	Count = function(s, sep) {
		var n, pos, s, sep;
		n = 0;
		if ((sep.length === 0)) {
			return utf8.RuneCountInString(s) + 1 >> 0;
		} else if (sep.length > s.length) {
			return 0;
		} else if ((sep.length === s.length)) {
			if (sep === s) {
				return 1;
			}
			return 0;
		}
		while (true) {
			pos = Index(s, sep);
			if (pos === -1) {
				break;
			}
			n = n + (1) >> 0;
			s = $substring(s, (pos + sep.length >> 0));
		}
		return n;
	};
	$pkg.Count = Count;
	Builder.ptr.prototype.String = function() {
		var b;
		b = this;
		return ($bytesToString(b.buf));
	};
	Builder.prototype.String = function() { return this.$val.String(); };
	Builder.ptr.prototype.copyCheck = function() {
		var b;
		b = this;
		if (b.addr === ptrType$1.nil) {
			b.addr = b;
		} else if (!(b.addr === b)) {
			$panic(new $String("strings: illegal use of non-zero Builder copied by value"));
		}
	};
	Builder.prototype.copyCheck = function() { return this.$val.copyCheck(); };
	Builder.ptr.prototype.Len = function() {
		var b;
		b = this;
		return b.buf.$length;
	};
	Builder.prototype.Len = function() { return this.$val.Len(); };
	Builder.ptr.prototype.Cap = function() {
		var b;
		b = this;
		return b.buf.$capacity;
	};
	Builder.prototype.Cap = function() { return this.$val.Cap(); };
	Builder.ptr.prototype.Reset = function() {
		var b;
		b = this;
		b.addr = ptrType$1.nil;
		b.buf = sliceType$2.nil;
	};
	Builder.prototype.Reset = function() { return this.$val.Reset(); };
	Builder.ptr.prototype.grow = function(n) {
		var b, buf, n;
		b = this;
		buf = $makeSlice(sliceType$2, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0));
		$copySlice(buf, b.buf);
		b.buf = buf;
	};
	Builder.prototype.grow = function(n) { return this.$val.grow(n); };
	Builder.ptr.prototype.Grow = function(n) {
		var b, n;
		b = this;
		b.copyCheck();
		if (n < 0) {
			$panic(new $String("strings.Builder.Grow: negative count"));
		}
		if ((b.buf.$capacity - b.buf.$length >> 0) < n) {
			b.grow(n);
		}
	};
	Builder.prototype.Grow = function(n) { return this.$val.Grow(n); };
	Builder.ptr.prototype.Write = function(p) {
		var b, p;
		b = this;
		b.copyCheck();
		b.buf = $appendSlice(b.buf, p);
		return [p.$length, $ifaceNil];
	};
	Builder.prototype.Write = function(p) { return this.$val.Write(p); };
	Builder.ptr.prototype.WriteByte = function(c) {
		var b, c;
		b = this;
		b.copyCheck();
		b.buf = $append(b.buf, c);
		return $ifaceNil;
	};
	Builder.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); };
	Builder.ptr.prototype.WriteRune = function(r) {
		var b, l, n, r;
		b = this;
		b.copyCheck();
		if (((r >>> 0)) < 128) {
			b.buf = $append(b.buf, ((r << 24 >>> 24)));
			return [1, $ifaceNil];
		}
		l = b.buf.$length;
		if ((b.buf.$capacity - l >> 0) < 4) {
			b.grow(4);
		}
		n = utf8.EncodeRune($subslice(b.buf, l, (l + 4 >> 0)), r);
		b.buf = $subslice(b.buf, 0, (l + n >> 0));
		return [n, $ifaceNil];
	};
	Builder.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); };
	Builder.ptr.prototype.WriteString = function(s) {
		var b, s;
		b = this;
		b.copyCheck();
		b.buf = $appendSlice(b.buf, s);
		return [s.length, $ifaceNil];
	};
	Builder.prototype.WriteString = function(s) { return this.$val.WriteString(s); };
	ptrType$1.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}];
	Builder.init("strings", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["encoding/hex"] = (function() {
	var $pkg = {}, $init, errors, fmt, io, strings, EncodedLen, Encode;
	errors = $packages["errors"];
	fmt = $packages["fmt"];
	io = $packages["io"];
	strings = $packages["strings"];
	EncodedLen = function(n) {
		var n;
		return $imul(n, 2);
	};
	$pkg.EncodedLen = EncodedLen;
	Encode = function(dst, src) {
		var _i, _ref, dst, j, src, v, x;
		j = 0;
		_ref = src;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			((j < 0 || j >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + j] = "0123456789abcdef".charCodeAt((v >>> 4 << 24 >>> 24)));
			(x = j + 1 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = "0123456789abcdef".charCodeAt(((v & 15) >>> 0))));
			j = j + (2) >> 0;
			_i++;
		}
		return $imul(src.$length, 2);
	};
	$pkg.Encode = Encode;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strings.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ErrLength = errors.New("encoding/hex: odd length hex string");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
	(function() {
!function(e,t){for(var r in t)e[r]=t[r]}(this,function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=29)}([function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(13);t.Metadata=n.BrowserHeaders},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t,r){"use strict";(function(e){function n(){return i.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(n()<t)throw new RangeError("Invalid typed array length");return i.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=i.prototype):(null===e&&(e=new i(t)),e.length=t),e}function i(e,t,r){if(!(i.TYPED_ARRAY_SUPPORT||this instanceof i))return new i(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return s(this,e,t,r)}function s(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?l(e,t,r,n):"string"==typeof t?f(e,t,r):d(e,t)}function a(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t,r,n){return a(t),t<=0?o(e,t):void 0!==r?"string"==typeof n?o(e,t).fill(r,n):o(e,t).fill(r):o(e,t)}function h(e,t){if(a(t),e=o(e,t<0?0:0|p(t)),!i.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function f(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!i.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(t,r);e=o(e,n);var s=e.write(t,r);return s!==n&&(e=e.slice(0,s)),e}function c(e,t){var r=t.length<0?0:0|p(t.length);e=o(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function l(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),i.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=i.prototype):e=c(e,t),e}function d(e,t){if(i.isBuffer(t)){var r=0|p(t.length);return e=o(e,r),0===e.length?e:(t.copy(e,0,0,r),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||K(t.length)?o(e,0):c(e,t);if("Buffer"===t.type&&J(t.data))return c(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function p(e){if(e>=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),i.alloc(+e)}function y(e,t){if(i.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return z(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return O(this,t,r);case"latin1":case"binary":return k(this,t,r);case"base64":return C(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=i.from(t,n)),i.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,o);if("number"==typeof t)return t&=255,i.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,o){function i(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,r/=2}var h;if(o){var f=-1;for(h=r;h<a;h++)if(i(e,h)===i(t,-1===f?0:h-f)){if(-1===f&&(f=h),h-f+1===u)return f*s}else-1!==f&&(h-=h-f),f=-1}else for(r+u>a&&(r=a-u),h=r;h>=0;h--){for(var c=!0,l=0;l<u;l++)if(i(e,h+l)!==i(t,l)){c=!1;break}if(c)return h}return-1}function _(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var s=0;s<n;++s){var a=parseInt(t.substr(2*s,2),16);if(isNaN(a))return s;e[r+s]=a}return s}function E(e,t,r,n){return G(z(t,e.length-r),e,r,n)}function S(e,t,r,n){return G(X(t),e,r,n)}function R(e,t,r,n){return S(e,t,r,n)}function A(e,t,r,n){return G(V(t),e,r,n)}function T(e,t,r,n){return G(W(t,e.length-r),e,r,n)}function C(e,t,r){return 0===t&&r===e.length?$.fromByteArray(e):$.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var i=e[o],s=null,a=i>239?4:i>223?3:i>191?2:1;if(o+a<=r){var u,h,f,c;switch(a){case 1:i<128&&(s=i);break;case 2:u=e[o+1],128==(192&u)&&(c=(31&i)<<6|63&u)>127&&(s=c);break;case 3:u=e[o+1],h=e[o+2],128==(192&u)&&128==(192&h)&&(c=(15&i)<<12|(63&u)<<6|63&h)>2047&&(c<55296||c>57343)&&(s=c);break;case 4:u=e[o+1],h=e[o+2],f=e[o+3],128==(192&u)&&128==(192&h)&&128==(192&f)&&(c=(15&i)<<18|(63&u)<<12|(63&h)<<6|63&f)>65535&&c<1114112&&(s=c)}}null===s?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|1023&s),n.push(s),o+=a}return x(n)}function x(e){var t=e.length;if(t<=Q)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Q));return r}function O(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function k(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function P(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i<r;++i)o+=Y(e[i]);return o}function L(e,t,r){for(var n=e.slice(t,r),o="",i=0;i<n.length;i+=2)o+=String.fromCharCode(n[i]+256*n[i+1]);return o}function I(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,n,o,s){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<s)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function H(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-r,2);o<i;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function j(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-r,4);o<i;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function N(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,n,o){return o||N(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,r,n,23,4),r+4}function q(e,t,r,n,o){return o||N(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,r,n,52,8),r+8}function D(e){if(e=F(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function F(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var r,n=e.length,o=null,i=[],s=0;s<n;++s){if((r=e.charCodeAt(s))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function X(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function W(e,t){for(var r,n,o,i=[],s=0;s<e.length&&!((t-=2)<0);++s)r=e.charCodeAt(s),n=r>>8,o=r%256,i.push(o),i.push(n);return i}function V(e){return $.toByteArray(D(e))}function G(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function K(e){return e!==e}/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
 * @license  MIT
 */
var $=r(38),Z=r(39),J=r(15);t.Buffer=i,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,i.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=n(),i.poolSize=8192,i._augment=function(e){return e.__proto__=i.prototype,e},i.from=function(e,t,r){return s(null,e,t,r)},i.TYPED_ARRAY_SUPPORT&&(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})),i.alloc=function(e,t,r){return u(null,e,t,r)},i.allocUnsafe=function(e){return h(null,e)},i.allocUnsafeSlow=function(e){return h(null,e)},i.isBuffer=function(e){return!(null==e||!e._isBuffer)},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,s=Math.min(r,n);o<s;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!J(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=i.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!i.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},i.byteLength=y,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},i.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?M(this,0,e):v.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},i.prototype.compare=function(e,t,r,n,o){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var s=o-n,a=r-t,u=Math.min(s,a),h=this.slice(n,o),f=e.slice(t,r),c=0;c<u;++c)if(h[c]!==f[c]){s=h[c],a=f[c];break}return s<a?-1:a<s?1:0},i.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},i.prototype.indexOf=function(e,t,r){return m(this,e,t,r,!0)},i.prototype.lastIndexOf=function(e,t,r){return m(this,e,t,r,!1)},i.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return E(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return R(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;i.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n;if(i.TYPED_ARRAY_SUPPORT)n=this.subarray(e,t),n.__proto__=i.prototype;else{var o=t-e;n=new i(o,void 0);for(var s=0;s<o;++s)n[s]=this[s+e]}return n},i.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n},i.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},i.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return o*=128,n>=o&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},i.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),Z.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),Z.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),Z.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),Z.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){U(this,e,t,r,Math.pow(2,8*r)-1,0)}var o=1,i=0;for(this[t]=255&e;++i<r&&(o*=256);)this[t+i]=e/o&255;return t+r},i.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){U(this,e,t,r,Math.pow(2,8*r)-1,0)}var o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):j(this,e,t,!0),t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},i.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=0,s=1,a=0;for(this[t]=255&e;++i<r&&(s*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},i.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):j(this,e,t,!0),t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},i.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return q(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return q(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,s=n-r;if(this===e&&r<t&&t<n)for(o=s-1;o>=0;--o)e[o+t]=this[o+r];else if(s<1e3||!i.TYPED_ARRAY_SUPPORT)for(o=0;o<s;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},i.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!i.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var a=i.isBuffer(e)?e:z(new i(e,n).toString()),u=a.length;for(s=0;s<r-t;++s)this[s+t]=a[s%u]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(t,r(0))},function(e,t){function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function o(e){if(f===setTimeout)return setTimeout(e,0);if((f===r||!f)&&setTimeout)return f=setTimeout,setTimeout(e,0);try{return f(e,0)}catch(t){try{return f.call(null,e,0)}catch(t){return f.call(this,e,0)}}}function i(e){if(c===clearTimeout)return clearTimeout(e);if((c===n||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{return c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}function s(){g&&d&&(g=!1,d.length?p=d.concat(p):y=-1,p.length&&a())}function a(){if(!g){var e=o(s);g=!0;for(var t=p.length;t;){for(d=p,p=[];++y<t;)d&&d[y].run();y=-1,t=p.length}d=null,g=!1,i(e)}}function u(e,t){this.fun=e,this.array=t}function h(){}var f,c,l=e.exports={};!function(){try{f="function"==typeof setTimeout?setTimeout:r}catch(e){f=r}try{c="function"==typeof clearTimeout?clearTimeout:n}catch(e){c=n}}();var d,p=[],g=!1,y=-1;l.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];p.push(new u(e,t)),1!==p.length||g||o(a)},u.prototype.run=function(){this.fun.apply(null,this.array)},l.title="browser",l.browser=!0,l.env={},l.argv=[],l.version="",l.versions={},l.on=h,l.addListener=h,l.once=h,l.off=h,l.removeListener=h,l.removeAllListeners=h,l.emit=h,l.prependListener=h,l.prependOnceListener=h,l.listeners=function(e){return[]},l.binding=function(e){throw new Error("process.binding is not supported")},l.cwd=function(){return"/"},l.chdir=function(e){throw new Error("process.chdir is not supported")},l.umask=function(){return 0}},function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);h.call(this,e),f.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",o)}function o(){this.allowHalfOpen||this._writableState.ended||s(i,this)}function i(e){e.end()}var s=r(9),a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var u=r(8);u.inherits=r(2);var h=r(20),f=r(24);u.inherits(n,h);for(var c=a(f.prototype),l=0;l<c.length;l++){var d=c[l];n.prototype[d]||(n.prototype[d]=f.prototype[d])}Object.defineProperty(n.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),n.prototype._destroy=function(e,t){this.push(null),this.end(),s(t,e)}},function(e,t,r){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];console.debug?console.debug.apply(null,e):console.log.apply(null,e)}Object.defineProperty(t,"__esModule",{value:!0}),t.debug=n},function(e,t,r){"use strict";function n(){if(i){var e=i;i=null;for(var t=0;t<e.length;t++)try{e[t]()}catch(o){null===i&&(i=[],setTimeout(function(){n()},0));for(var r=e.length-1;r>t;r--)i.unshift(e[r]);throw o}}}function o(e){if(null!==i)return void i.push(e);i=[e],setTimeout(function(){n()},0)}Object.defineProperty(t,"__esModule",{value:!0});var i=null;t.default=o},function(e,t,r){(function(e){function r(e){return Array.isArray?Array.isArray(e):"[object Array]"===y(e)}function n(e){return"boolean"==typeof e}function o(e){return null===e}function i(e){return null==e}function s(e){return"number"==typeof e}function a(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function h(e){return void 0===e}function f(e){return"[object RegExp]"===y(e)}function c(e){return"object"==typeof e&&null!==e}function l(e){return"[object Date]"===y(e)}function d(e){return"[object Error]"===y(e)||e instanceof Error}function p(e){return"function"==typeof e}function g(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function y(e){return Object.prototype.toString.call(e)}t.isArray=r,t.isBoolean=n,t.isNull=o,t.isNullOrUndefined=i,t.isNumber=s,t.isString=a,t.isSymbol=u,t.isUndefined=h,t.isRegExp=f,t.isObject=c,t.isDate=l,t.isError=d,t.isFunction=p,t.isPrimitive=g,t.isBuffer=e.isBuffer}).call(t,r(3).Buffer)},function(e,t,r){"use strict";(function(t){function r(e,r,n,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,s,a=arguments.length;switch(a){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,r)});case 3:return t.nextTick(function(){e.call(null,r,n)});case 4:return t.nextTick(function(){e.call(null,r,n,o)});default:for(i=new Array(a-1),s=0;s<i.length;)i[s++]=arguments[s];return t.nextTick(function(){e.apply(null,i)})}}!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports=r:e.exports=t.nextTick}).call(t,r(4))},function(e,t,r){function n(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return s(e,t,r)}var i=r(3),s=i.Buffer;s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?e.exports=i:(n(i,t),t.Buffer=o),n(s,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return s(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=s(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return s(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i.SlowBuffer(e)}},function(e,t,r){"use strict";function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function o(e,t,r){if(e&&h.isObject(e)&&e instanceof n)return e;var o=new n;return o.parse(e,t,r),o}function i(e){return h.isString(e)&&(e=o(e)),e instanceof n?e.format():n.prototype.format.call(e)}function s(e,t){return o(e,!1,!0).resolve(t)}function a(e,t){return e?o(e,!1,!0).resolveObject(t):t}var u=r(50),h=r(52);t.parse=o,t.resolve=s,t.resolveObject=a,t.format=i,t.Url=n;var f=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),g=["'"].concat(p),y=["%","/","?",";","#"].concat(g),v=["/","?","#"],b=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,w={javascript:!0,"javascript:":!0},_={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=r(53);n.prototype.parse=function(e,t,r){if(!h.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),o=-1!==n&&n<e.indexOf("#")?"?":"#",i=e.split(o),s=/\\/g;i[0]=i[0].replace(s,"/"),e=i.join(o);var a=e;if(a=a.trim(),!r&&1===e.split("#").length){var c=l.exec(a);if(c)return this.path=a,this.href=a,this.pathname=c[1],c[2]?(this.search=c[2],this.query=t?S.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var d=f.exec(a);if(d){d=d[0];var p=d.toLowerCase();this.protocol=p,a=a.substr(d.length)}if(r||d||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var R="//"===a.substr(0,2);!R||d&&_[d]||(a=a.substr(2),this.slashes=!0)}if(!_[d]&&(R||d&&!E[d])){for(var A=-1,T=0;T<v.length;T++){var C=a.indexOf(v[T]);-1!==C&&(-1===A||C<A)&&(A=C)}var M,x;x=-1===A?a.lastIndexOf("@"):a.lastIndexOf("@",A),-1!==x&&(M=a.slice(0,x),a=a.slice(x+1),this.auth=decodeURIComponent(M)),A=-1;for(var T=0;T<y.length;T++){var C=a.indexOf(y[T]);-1!==C&&(-1===A||C<A)&&(A=C)}-1===A&&(A=a.length),this.host=a.slice(0,A),a=a.slice(A),this.parseHost(),this.hostname=this.hostname||"";var O="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!O)for(var k=this.hostname.split(/\./),T=0,P=k.length;T<P;T++){var L=k[T];if(L&&!L.match(b)){for(var I="",U=0,H=L.length;U<H;U++)L.charCodeAt(U)>127?I+="x":I+=L[U];if(!I.match(b)){var j=k.slice(0,T),N=k.slice(T+1),B=L.match(m);B&&(j.push(B[1]),N.unshift(B[2])),N.length&&(a="/"+N.join(".")+a),this.hostname=j.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=u.toASCII(this.hostname));var q=this.port?":"+this.port:"",D=this.hostname||"";this.host=D+q,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!w[p])for(var T=0,P=g.length;T<P;T++){var F=g[T];if(-1!==a.indexOf(F)){var Y=encodeURIComponent(F);Y===F&&(Y=escape(F)),a=a.split(F).join(Y)}}var z=a.indexOf("#");-1!==z&&(this.hash=a.substr(z),a=a.slice(0,z));var X=a.indexOf("?");if(-1!==X?(this.search=a.substr(X),this.query=a.substr(X+1),t&&(this.query=S.parse(this.query)),a=a.slice(0,X)):t&&(this.search="",this.query={}),a&&(this.pathname=a),E[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var q=this.pathname||"",W=this.search||"";this.path=q+W}return this.href=this.format(),this},n.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&h.isObject(this.query)&&Object.keys(this.query).length&&(i=S.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||E[t])&&!1!==o?(o="//"+(o||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):o||(o=""),n&&"#"!==n.charAt(0)&&(n="#"+n),s&&"?"!==s.charAt(0)&&(s="?"+s),r=r.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),s=s.replace("#","%23"),t+o+r+s+n},n.prototype.resolve=function(e){return this.resolveObject(o(e,!1,!0)).format()},n.prototype.resolveObject=function(e){if(h.isString(e)){var t=new n;t.parse(e,!1,!0),e=t}for(var r=new n,o=Object.keys(this),i=0;i<o.length;i++){var s=o[i];r[s]=this[s]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var a=Object.keys(e),u=0;u<a.length;u++){var f=a[u];"protocol"!==f&&(r[f]=e[f])}return E[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!E[e.protocol]){for(var c=Object.keys(e),l=0;l<c.length;l++){var d=c[l];r[d]=e[d]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||_[e.protocol])r.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),r.pathname=p.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var g=r.pathname||"",y=r.search||"";r.path=g+y}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var v=r.pathname&&"/"===r.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),m=b||v||r.host&&e.pathname,w=m,S=r.pathname&&r.pathname.split("/")||[],p=e.pathname&&e.pathname.split("/")||[],R=r.protocol&&!E[r.protocol];if(R&&(r.hostname="",r.port=null,r.host&&(""===S[0]?S[0]=r.host:S.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),m=m&&(""===p[0]||""===S[0])),b)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,S=p;else if(p.length)S||(S=[]),S.pop(),S=S.concat(p),r.search=e.search,r.query=e.query;else if(!h.isNullOrUndefined(e.search)){if(R){r.hostname=r.host=S.shift();var A=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");A&&(r.auth=A.shift(),r.host=r.hostname=A.shift())}return r.search=e.search,r.query=e.query,h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!S.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var T=S.slice(-1)[0],C=(r.host||e.host||S.length>1)&&("."===T||".."===T)||""===T,M=0,x=S.length;x>=0;x--)T=S[x],"."===T?S.splice(x,1):".."===T?(S.splice(x,1),M++):M&&(S.splice(x,1),M--);if(!m&&!w)for(;M--;M)S.unshift("..");!m||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),C&&"/"!==S.join("/").substr(-1)&&S.push("");var O=""===S[0]||S[0]&&"/"===S[0].charAt(0);if(R){r.hostname=r.host=O?"":S.length?S.shift():"";var A=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");A&&(r.auth=A.shift(),r.host=r.hostname=A.shift())}return m=m||r.host&&S.length,m&&!O&&S.unshift(""),S.length?r.pathname=S.join("/"):(r.pathname=null,r.path=null),h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=c.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,r){"use strict";function n(e,t){return new l(e,t)}function o(e){var t=e.get("grpc-status")||[];if(t.length>0)try{var r=t[0];return parseInt(r,10)}catch(e){return null}return null}Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),s=r(27),a=r(28),u=r(6),h=r(7),f=r(14),c=r(59);t.client=n;var l=function(){function e(e,t){this.started=!1,this.sentFirstMessage=!1,this.completed=!1,this.closed=!1,this.finishedSending=!1,this.onHeadersCallbacks=[],this.onMessageCallbacks=[],this.onEndCallbacks=[],this.parser=new s.ChunkParser,this.methodDefinition=e,this.props=t,this.createTransport()}return e.prototype.createTransport=function(){var e=this.props.host+"/"+this.methodDefinition.service.serviceName+"/"+this.methodDefinition.methodName,t={methodDefinition:this.methodDefinition,debug:this.props.debug||!1,url:e,onHeaders:this.onTransportHeaders.bind(this),onChunk:this.onTransportChunk.bind(this),onEnd:this.onTransportEnd.bind(this)},r=this.props.transport;if(r){var n=r(t);if(n instanceof Error)throw n;this.transport=n}else{var o=f.DefaultTransportFactory(t);if(o instanceof Error)throw o;this.transport=o}},e.prototype.onTransportHeaders=function(e,t){if(this.props.debug&&u.debug("onHeaders",e,t),this.closed)return void(this.props.debug&&u.debug("grpc.onHeaders received after request was closed - ignoring"));if(0===t);else{this.responseHeaders=e,this.props.debug&&u.debug("onHeaders.responseHeaders",JSON.stringify(this.responseHeaders,null,2));var r=a.httpStatusToCode(t);this.props.debug&&u.debug("onHeaders.code",r);var n=e.get("grpc-message")||[];if(this.props.debug&&u.debug("onHeaders.gRPCMessage",n),r!==a.Code.OK)return void this.rawOnError(r,n[0]);this.rawOnHeaders(e)}},e.prototype.onTransportChunk=function(e){var t=this;if(this.closed)return void(this.props.debug&&u.debug("grpc.onChunk received after request was closed - ignoring"));var r=[];try{r=this.parser.parse(e)}catch(e){return this.props.debug&&u.debug("onChunk.parsing error",e,e.message),void this.rawOnError(a.Code.Internal,"parsing error: "+e.message)}r.forEach(function(e){if(e.chunkType===s.ChunkType.MESSAGE){var r=t.methodDefinition.responseType.deserializeBinary(e.data);t.rawOnMessage(r)}else e.chunkType===s.ChunkType.TRAILERS&&(t.responseHeaders?(t.responseTrailers=new i.Metadata(e.trailers),t.props.debug&&u.debug("onChunk.trailers",t.responseTrailers)):(t.responseHeaders=new i.Metadata(e.trailers),t.rawOnHeaders(t.responseHeaders)))})},e.prototype.onTransportEnd=function(){if(this.props.debug&&u.debug("grpc.onEnd"),this.closed)return void(this.props.debug&&u.debug("grpc.onEnd received after request was closed - ignoring"));if(void 0===this.responseTrailers){if(void 0===this.responseHeaders)return void this.rawOnError(a.Code.Unknown,"Response closed without headers");var e=o(this.responseHeaders),t=this.responseHeaders.get("grpc-message");return this.props.debug&&u.debug("grpc.headers only response ",e,t),null===e?void this.rawOnEnd(a.Code.Unknown,"Response closed without grpc-status (Headers only)",this.responseHeaders):void this.rawOnEnd(e,t[0],this.responseHeaders)}var r=o(this.responseTrailers);if(null===r)return void this.rawOnError(a.Code.Internal,"Response closed without grpc-status (Trailers provided)");var n=this.responseTrailers.get("grpc-message");this.rawOnEnd(r,n[0],this.responseTrailers)},e.prototype.rawOnEnd=function(e,t,r){this.props.debug&&u.debug("rawOnEnd",e,t,r),this.completed||(this.completed=!0,this.onEndCallbacks.forEach(function(n){h.default(function(){n(e,t,r)})}))},e.prototype.rawOnHeaders=function(e){this.props.debug&&u.debug("rawOnHeaders",e),this.completed||this.onHeadersCallbacks.forEach(function(t){h.default(function(){t(e)})})},e.prototype.rawOnError=function(e,t){this.props.debug&&u.debug("rawOnError",e,t),this.completed||(this.completed=!0,this.onEndCallbacks.forEach(function(r){h.default(function(){r(e,t,new i.Metadata)})}))},e.prototype.rawOnMessage=function(e){this.props.debug&&u.debug("rawOnMessage",e.toObject()),this.completed||this.onMessageCallbacks.forEach(function(t){h.default(function(){t(e)})})},e.prototype.onHeaders=function(e){this.onHeadersCallbacks.push(e)},e.prototype.onMessage=function(e){this.onMessageCallbacks.push(e)},e.prototype.onEnd=function(e){this.onEndCallbacks.push(e)},e.prototype.start=function(e){if(this.started)throw new Error("Client already started - cannot .start()");this.started=!0;var t=new i.Metadata(e||{});t.set("content-type","application/grpc-web+proto"),t.set("x-grpc-web","1"),this.transport.start(t)},e.prototype.send=function(e){if(!this.started)throw new Error("Client not started - .start() must be called before .send()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .send()");if(!this.methodDefinition.requestStream&&this.sentFirstMessage)throw new Error("Message already sent for non-client-streaming method - cannot .send()");this.sentFirstMessage=!0;var t=c.frameRequest(e);this.transport.sendMessage(t)},e.prototype.finishSend=function(){if(!this.started)throw new Error("Client not started - .finishSend() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .finishSend()");this.finishedSending=!0,this.transport.finishSend()},e.prototype.close=function(){if(!this.started)throw new Error("Client not started - .start() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .close()");this.closed=!0,this.props.debug&&u.debug("request.abort aborting request"),this.transport.cancel()},e}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(30);t.BrowserHeaders=n.BrowserHeaders},function(e,t,r){"use strict";function n(e){return e.methodDefinition.requestStream?new Error("No transport available for client-streaming (requestStream) method"):(s||(s=o()),s(e))}function o(){if(a.detectFetchSupport())return a.default;if(h.detectMozXHRSupport())return h.default;if(u.detectXHRSupport())return u.default;if(f.detectNodeHTTPSupport())return f.default;throw new Error("No suitable transport found for gRPC-Web")}function i(e){return c.default(e)}Object.defineProperty(t,"__esModule",{value:!0});var s,a=r(33),u=r(34),h=r(35),f=r(37),c=r(57);t.DefaultTransportFactory=n,t.WebsocketTransportFactory=i},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){(function(e){var n=r(40),o=r(18),i=r(48),s=r(49),a=r(11),u=t;u.request=function(t,r){t="string"==typeof t?a.parse(t):i(t);var o=-1===e.location.protocol.search(/^https?:$/)?"http:":"",s=t.protocol||o,u=t.hostname||t.host,h=t.port,f=t.path||"/";u&&-1!==u.indexOf(":")&&(u="["+u+"]"),t.url=(u?s+"//"+u:"")+(h?":"+h:"")+f,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var c=new n(t);return r&&c.on("response",r),c},u.get=function(e,t){var r=u.request(e,t);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=o,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.STATUS_CODES=s,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(t,r(0))},function(e,t,r){(function(e){function r(){if(void 0!==i)return i;if(e.XMLHttpRequest){i=new e.XMLHttpRequest;try{i.open("GET",e.XDomainRequest?"/":"https://example.com")}catch(e){i=null}}else i=null;return i}function n(e){var t=r();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}function o(e){return"function"==typeof e}t.fetch=o(e.fetch)&&o(e.ReadableStream),t.writableStream=o(e.WritableStream),t.abortController=o(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0}catch(e){}var i,s=void 0!==e.ArrayBuffer,a=s&&o(e.ArrayBuffer.prototype.slice);t.arraybuffer=t.fetch||s&&n("arraybuffer"),t.msstream=!t.fetch&&a&&n("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&s&&n("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!r()&&o(r().overrideMimeType),t.vbArray=o(e.VBArray),i=null}).call(t,r(0))},function(e,t,r){(function(e,n,o){var i=r(17),s=r(2),a=r(19),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},h=t.IncomingMessage=function(t,r,o){function s(){f.read().then(function(e){if(!u._destroyed){if(e.done)return void u.push(null);u.push(new n(e.value)),s()}}).catch(function(e){u._destroyed||u.emit("error",e)})}var u=this;if(a.Readable.call(u),u._mode=o,u.headers={},u.rawHeaders=[],u.trailers={},u.rawTrailers=[],u.on("end",function(){e.nextTick(function(){u.emit("close")})}),"fetch"===o){if(u._fetchResponse=r,u.url=r.url,u.statusCode=r.status,u.statusMessage=r.statusText,r.headers.forEach(function(e,t){u.headers[t.toLowerCase()]=e,u.rawHeaders.push(t,e)}),i.writableStream){var h=new WritableStream({write:function(e){return new Promise(function(t,r){u._destroyed||(u.push(new n(e))?t():u._resumeFetch=t)})},close:function(){u._destroyed||u.push(null)},abort:function(e){u._destroyed||u.emit("error",e)}});try{return void r.body.pipeTo(h)}catch(e){}}var f=r.body.getReader();s()}else{u._xhr=t,u._pos=0,u.url=t.responseURL,u.statusCode=t.status,u.statusMessage=t.statusText;if(t.getAllResponseHeaders().split(/\r?\n/).forEach(function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var r=t[1].toLowerCase();"set-cookie"===r?(void 0===u.headers[r]&&(u.headers[r]=[]),u.headers[r].push(t[2])):void 0!==u.headers[r]?u.headers[r]+=", "+t[2]:u.headers[r]=t[2],u.rawHeaders.push(t[1],t[2])}}),u._charset="x-user-defined",!i.overrideMimeType){var c=u.rawHeaders["mime-type"];if(c){var l=c.match(/;\s*charset=([^;])(;|$)/);l&&(u._charset=l[1].toLowerCase())}u._charset||(u._charset="utf-8")}}};s(h,a.Readable),h.prototype._read=function(){var e=this,t=e._resumeFetch;t&&(e._resumeFetch=null,t())},h.prototype._onXHRProgress=function(){var e=this,t=e._xhr,r=null;switch(e._mode){case"text:vbarray":if(t.readyState!==u.DONE)break;try{r=new o.VBArray(t.responseBody).toArray()}catch(e){}if(null!==r){e.push(new n(r));break}case"text":try{r=t.responseText}catch(t){e._mode="text:vbarray";break}if(r.length>e._pos){var i=r.substr(e._pos);if("x-user-defined"===e._charset){for(var s=new n(i.length),a=0;a<i.length;a++)s[a]=255&i.charCodeAt(a);e.push(s)}else e.push(i,e._charset);e._pos=r.length}break;case"arraybuffer":if(t.readyState!==u.DONE||!t.response)break;r=t.response,e.push(new n(new Uint8Array(r)));break;case"moz-chunked-arraybuffer":if(r=t.response,t.readyState!==u.LOADING||!r)break;e.push(new n(new Uint8Array(r)));break;case"ms-stream":if(r=t.response,t.readyState!==u.LOADING)break;var h=new o.MSStreamReader;h.onprogress=function(){h.result.byteLength>e._pos&&(e.push(new n(new Uint8Array(h.result.slice(e._pos)))),e._pos=h.result.byteLength)},h.onload=function(){e.push(null)},h.readAsArrayBuffer(r)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(t,r(4),r(3).Buffer,r(0))},function(e,t,r){t=e.exports=r(20),t.Stream=t,t.Readable=t,t.Writable=r(24),t.Duplex=r(5),t.Transform=r(26),t.PassThrough=r(46)},function(e,t,r){"use strict";(function(t,n){function o(e){return j.from(e)}function i(e){return j.isBuffer(e)||e instanceof N}function s(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?I(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}function a(e,t){L=L||r(5),e=e||{},this.objectMode=!!e.objectMode,t instanceof L&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,o=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Y,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(F||(F=r(25).StringDecoder),this.decoder=new F(e.encoding),this.encoding=e.encoding)}function u(e){if(L=L||r(5),!(this instanceof u))return new u(e);this._readableState=new a(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),H.call(this)}function h(e,t,r,n,i){var s=e._readableState;if(null===t)s.reading=!1,g(e,s);else{var a;i||(a=c(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===j.prototype||(t=o(t)),n?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):f(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?f(e,s,t,!1):b(e,s)):f(e,s,t,!1))):n||(s.reading=!1)}return l(s)}function f(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&y(e)),b(e,t)}function c(e,t){var r;return i(t)||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function l(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function d(e){return e>=W?e=W:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function p(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=d(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function g(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,y(e)}}function y(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(D("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?P(v,e):v(e))}function v(e){D("emit readable"),e.emit("readable"),R(e)}function b(e,t){t.readingMore||(t.readingMore=!0,P(m,e,t))}function m(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(D("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function w(e){return function(){var t=e._readableState;D("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&U(e,"data")&&(t.flowing=!0,R(e))}}function _(e){D("readable nexttick read 0"),e.read(0)}function E(e,t){t.resumeScheduled||(t.resumeScheduled=!0,P(S,e,t))}function S(e,t){t.reading||(D("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),R(e),t.flowing&&!t.reading&&e.read(0)}function R(e){var t=e._readableState;for(D("flow",t.flowing);t.flowing&&null!==e.read(););}function A(e,t){if(0===t.length)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=T(e,t.buffer,t.decoder),r}function T(e,t,r){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):n=e===t.head.data.length?t.shift():r?C(e,t):M(e,t),n}function C(e,t){var r=t.head,n=1,o=r.data;for(e-=o.length;r=r.next;){var i=r.data,s=e>i.length?i.length:e;if(s===i.length?o+=i:o+=i.slice(0,e),0===(e-=s)){s===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(s));break}++n}return t.length-=n,o}function M(e,t){var r=j.allocUnsafe(e),n=t.head,o=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var i=n.data,s=e>i.length?i.length:e;if(i.copy(r,r.length-e,0,s),0===(e-=s)){s===i.length?(++o,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(s));break}++o}return t.length-=o,r}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,P(O,t,e))}function O(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function k(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}var P=r(9);e.exports=u;var L,I=r(15);u.ReadableState=a;var U=(r(21).EventEmitter,function(e,t){return e.listeners(t).length}),H=r(22),j=r(10).Buffer,N=t.Uint8Array||function(){},B=r(8);B.inherits=r(2);var q=r(41),D=void 0;D=q&&q.debuglog?q.debuglog("stream"):function(){};var F,Y=r(42),z=r(23);B.inherits(u,H);var X=["error","close","destroy","pause","resume"];Object.defineProperty(u.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),u.prototype.destroy=z.destroy,u.prototype._undestroy=z.undestroy,u.prototype._destroy=function(e,t){this.push(null),t(e)},u.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof e&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=j.from(e,t),t=""),r=!0),h(this,e,t,!1,r)},u.prototype.unshift=function(e){return h(this,e,null,!0,!1)},u.prototype.isPaused=function(){return!1===this._readableState.flowing},u.prototype.setEncoding=function(e){return F||(F=r(25).StringDecoder),this._readableState.decoder=new F(e),this._readableState.encoding=e,this};var W=8388608;u.prototype.read=function(e){D("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return D("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):y(this),null;if(0===(e=p(e,t))&&t.ended)return 0===t.length&&x(this),null;var n=t.needReadable;D("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&(n=!0,D("length less than watermark",n)),t.ended||t.reading?(n=!1,D("reading or ended",n)):n&&(D("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=p(r,t)));var o;return o=e>0?A(e,t):null,null===o?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&x(this)),null!==o&&this.emit("data",o),o},u.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},u.prototype.pipe=function(e,t){function r(e,t){D("onunpipe"),e===l&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,i())}function o(){D("onend"),e.end()}function i(){D("cleanup"),e.removeListener("close",h),e.removeListener("finish",f),e.removeListener("drain",y),e.removeListener("error",u),e.removeListener("unpipe",r),l.removeListener("end",o),l.removeListener("end",c),l.removeListener("data",a),v=!0,!d.awaitDrain||e._writableState&&!e._writableState.needDrain||y()}function a(t){D("ondata"),b=!1,!1!==e.write(t)||b||((1===d.pipesCount&&d.pipes===e||d.pipesCount>1&&-1!==k(d.pipes,e))&&!v&&(D("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++,b=!0),l.pause())}function u(t){D("onerror",t),c(),e.removeListener("error",u),0===U(e,"error")&&e.emit("error",t)}function h(){e.removeListener("finish",f),c()}function f(){D("onfinish"),e.removeListener("close",h),c()}function c(){D("unpipe"),l.unpipe(e)}var l=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=e;break;case 1:d.pipes=[d.pipes,e];break;default:d.pipes.push(e)}d.pipesCount+=1,D("pipe count=%d opts=%j",d.pipesCount,t);var p=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,g=p?o:c;d.endEmitted?P(g):l.once("end",g),e.on("unpipe",r);var y=w(l);e.on("drain",y);var v=!1,b=!1;return l.on("data",a),s(e,"error",u),e.once("close",h),e.once("finish",f),e.emit("pipe",l),d.flowing||(D("pipe resume"),l.resume()),e},u.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)n[i].emit("unpipe",this,r);return this}var s=k(t.pipes,e);return-1===s?this:(t.pipes.splice(s,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r),this)},u.prototype.on=function(e,t){var r=H.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&y(this):P(_,this))}return r},u.prototype.addListener=u.prototype.on,u.prototype.resume=function(){var e=this._readableState;return e.flowing||(D("resume"),e.flowing=!0,E(this,e)),this},u.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this},u.prototype.wrap=function(e){var t=this._readableState,r=!1,n=this;e.on("end",function(){if(D("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&n.push(e)}n.push(null)}),e.on("data",function(o){if(D("wrapped data"),t.decoder&&(o=t.decoder.write(o)),(!t.objectMode||null!==o&&void 0!==o)&&(t.objectMode||o&&o.length)){n.push(o)||(r=!0,e.pause())}});for(var o in e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<X.length;i++)e.on(X[i],n.emit.bind(n,X[i]));return n._read=function(t){D("wrapped _read",t),r&&(r=!1,e.resume())},n},u._fromList=A}).call(t,r(0),r(4))},function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function o(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function s(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,o,a,u,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var f=new Error('Uncaught, unspecified "error" event. ('+t+")");throw f.context=t,f}if(r=this._events[e],s(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(i(r))for(a=Array.prototype.slice.call(arguments,1),h=r.slice(),o=h.length,u=0;u<o;u++)h[u].apply(this,a);return!0},r.prototype.addListener=function(e,t){var o;if(!n(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(t.listener)?t.listener:t),this._events[e]?i(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,i(this._events[e])&&!this._events[e].warned&&(o=s(this._maxListeners)?r.defaultMaxListeners:this._maxListeners)&&o>0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),o||(o=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var o=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,o,s,a;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(a=s;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){o=a;break}if(o<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,r){e.exports=r(21).EventEmitter},function(e,t,r){"use strict";function n(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;if(n||o)return void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||s(i,this,e));this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(s(i,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)})}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function i(e,t){e.emit("error",t)}var s=r(9);e.exports={destroy:n,undestroy:o}},function(e,t,r){"use strict";(function(t,n,o){function i(e){var t=this;this.next=null,this.entry=null,this.finish=function(){C(t,e)}}function s(e){return I.from(e)}function a(e){return I.isBuffer(e)||e instanceof U}function u(){}function h(e,t){x=x||r(5),e=e||{},this.objectMode=!!e.objectMode,t instanceof x&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,o=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:o,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){b(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function f(e){if(x=x||r(5),!(j.call(f,this)||this instanceof x))return new f(e);this._writableState=new h(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),L.call(this)}function c(e,t){var r=new Error("write after end");e.emit("error",r),M(t,r)}function l(e,t,r,n){var o=!0,i=!1;return null===r?i=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i&&(e.emit("error",i),M(n,i),o=!1),o}function d(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=I.from(t,r)),t}function p(e,t,r,n,o,i){if(!r){var s=d(t,n,o);n!==s&&(r=!0,o="buffer",n=s)}var a=t.objectMode?1:n.length;t.length+=a;var u=t.length<t.highWaterMark;if(u||(t.needDrain=!0),t.writing||t.corked){var h=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:o,isBuf:r,callback:i,next:null},h?h.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else g(e,t,!1,a,n,o,i);return u}function g(e,t,r,n,o,i,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function y(e,t,r,n,o){--t.pendingcb,r?(M(o,n),M(A,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(o(n),e._writableState.errorEmitted=!0,e.emit("error",n),A(e,t))}function v(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function b(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if(v(r),t)y(e,r,n,t,o);else{var i=E(r);i||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?O(m,e,r,i,o):m(e,r,i,o)}}function m(e,t,r,n){r||w(e,t),t.pendingcb--,n(),A(e,t)}function w(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,o=new Array(n),s=t.corkedRequestsFree;s.entry=r;for(var a=0,u=!0;r;)o[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;o.allBuffers=u,g(e,t,!0,t.length,o,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new i(t)}else{for(;r;){var h=r.chunk,f=r.encoding,c=r.callback;if(g(e,t,!1,t.objectMode?1:h.length,h,f,c),r=r.next,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}function E(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final(function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),A(e,t)})}function R(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,M(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function A(e,t){var r=E(t);return r&&(R(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}function T(e,t,r){t.ending=!0,A(e,t),r&&(t.finished?M(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function C(e,t,r){var n=e.entry;for(e.entry=null;n;){var o=n.callback;t.pendingcb--,o(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}var M=r(9);e.exports=f;var x,O=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:M;f.WritableState=h;var k=r(8);k.inherits=r(2);var P={deprecate:r(45)},L=r(22),I=r(10).Buffer,U=o.Uint8Array||function(){},H=r(23);k.inherits(f,L),h.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(h.prototype,"buffer",{get:P.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var j;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(j=Function.prototype[Symbol.hasInstance],Object.defineProperty(f,Symbol.hasInstance,{value:function(e){return!!j.call(this,e)||e&&e._writableState instanceof h}})):j=function(e){return e instanceof this},f.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},f.prototype.write=function(e,t,r){var n=this._writableState,o=!1,i=a(e)&&!n.objectMode;return i&&!I.isBuffer(e)&&(e=s(e)),"function"==typeof t&&(r=t,t=null),i?t="buffer":t||(t=n.defaultEncoding),"function"!=typeof r&&(r=u),n.ended?c(this,r):(i||l(this,n,e,r))&&(n.pendingcb++,o=p(this,n,i,e,t,r)),o},f.prototype.cork=function(){this._writableState.corked++},f.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||_(this,e))},f.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},f.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},f.prototype._writev=null,f.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||T(this,n,r)},Object.defineProperty(f.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),f.prototype.destroy=H.destroy,f.prototype._undestroy=H.undestroy,f.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,r(4),r(43).setImmediate,r(0))},function(e,t,r){"use strict";function n(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function o(e){var t=n(e);if("string"!=typeof t&&(b.isEncoding===m||!m(e)))throw new Error("Unknown encoding: "+e);return t||e}function i(e){this.encoding=o(e);var t;switch(this.encoding){case"utf16le":this.text=l,this.end=d,t=4;break;case"utf8":this.fillLast=h,t=4;break;case"base64":this.text=p,this.end=g,t=3;break;default:return this.write=y,void(this.end=v)}this.lastNeed=0,this.lastTotal=0,this.lastChar=b.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function a(e,t,r){var n=t.length-1;if(n<r)return 0;var o=s(t[n]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--n<r?0:(o=s(t[n]))>=0?(o>0&&(e.lastNeed=o-2),o):--n<r?0:(o=s(t[n]),o>=0?(o>0&&(2===o?o=0:e.lastNeed=o-3),o):0)}function u(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�".repeat(r);if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�".repeat(r+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�".repeat(r+2)}}function h(e){var t=this.lastTotal-this.lastNeed,r=u(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function f(e,t){var r=a(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function c(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function l(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function d(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function p(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function y(e){return e.toString(this.encoding)}function v(e){return e&&e.length?this.write(e):""}var b=r(10).Buffer,m=b.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},i.prototype.end=c,i.prototype.text=f,i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";function n(e){this.afterTransform=function(t,r){return o(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function o(e,t,r){var n=e._transformState;n.transforming=!1;var o=n.writecb;if(!o)return e.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!==r&&void 0!==r&&e.push(r),o(t);var i=e._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&e._read(i.highWaterMark)}function i(e){if(!(this instanceof i))return new i(e);a.call(this,e),this._transformState=new n(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,r){s(t,e,r)}):s(t)})}function s(e,t,r){if(t)return e.emit("error",t);null!==r&&void 0!==r&&e.push(r);var n=e._writableState,o=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(o.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}e.exports=i;var a=r(5),u=r(8);u.inherits=r(2),u.inherits(i,a),i.prototype.push=function(e,t){return this._transformState.needTransform=!1,a.prototype.push.call(this,e,t)},i.prototype._transform=function(e,t,r){throw new Error("_transform() is not implemented")},i.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var o=this._readableState;(n.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},i.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},i.prototype._destroy=function(e,t){var r=this;a.prototype._destroy.call(this,e,function(e){t(e),r.emit("close")})}},function(e,t,r){"use strict";function n(e){return l(e)||e>=32&&e<=126}function o(e){for(var t=0;t!==e.length;++t)if(!n(e[t]))throw new Error("Metadata is not valid (printable) ASCII");return String.fromCharCode.apply(String,Array.prototype.slice.call(e))}function i(e){for(var t=new Uint8Array(e.length),r=0;r!==e.length;++r){var o=e.charCodeAt(r);if(!n(o))throw new Error("Metadata contains invalid ASCII");t[r]=o}return t}function s(e){return 128==(128&e.getUint8(0))}function a(e){return new c.Metadata(o(e))}function u(e){return e.getUint32(1,!1)}function h(e,t,r){return e.byteLength-t>=r}function f(e,t,r){if(e.slice)return e.slice(t,r);var n=e.length;void 0!==r&&(n=r);for(var o=n-t,i=new Uint8Array(o),s=0,a=t;a<n;a++)i[s++]=e[a];return i}Object.defineProperty(t,"__esModule",{value:!0});var c=r(1),l=function(e){return 9===e||10===e||13===e};t.decodeASCII=o,t.encodeASCII=i;var d;!function(e){e[e.MESSAGE=1]="MESSAGE",e[e.TRAILERS=2]="TRAILERS"}(d=t.ChunkType||(t.ChunkType={}));var p=function(){function e(){this.buffer=null,this.position=0}return e.prototype.parse=function(e,t){if(0===e.length&&t)return[];var r=[];if(null==this.buffer)this.buffer=e,this.position=0;else if(this.position===this.buffer.byteLength)this.buffer=e,this.position=0;else{var n=this.buffer.byteLength-this.position,o=new Uint8Array(n+e.byteLength),i=f(this.buffer,this.position);o.set(i,0);var c=new Uint8Array(e);o.set(c,n),this.buffer=o,this.position=0}for(;;){if(!h(this.buffer,this.position,5))return r;var l=f(this.buffer,this.position,this.position+5),p=new DataView(l.buffer,l.byteOffset,l.byteLength),g=u(p);if(!h(this.buffer,this.position,5+g))return r;var y=f(this.buffer,this.position+5,this.position+5+g);if(this.position+=5+g,s(p))return r.push({chunkType:d.TRAILERS,trailers:a(y)}),r;r.push({chunkType:d.MESSAGE,data:y})}},e}();t.ChunkParser=p},function(e,t,r){"use strict";function n(e){switch(e){case 0:return o.Internal;case 200:return o.OK;case 400:return o.InvalidArgument;case 401:return o.Unauthenticated;case 403:return o.PermissionDenied;case 404:return o.NotFound;case 409:return o.Aborted;case 412:return o.FailedPrecondition;case 429:return o.ResourceExhausted;case 499:return o.Canceled;case 500:return o.Unknown;case 501:return o.Unimplemented;case 503:return o.Unavailable;case 504:return o.DeadlineExceeded;default:return o.Unknown}}Object.defineProperty(t,"__esModule",{value:!0});var o;!function(e){e[e.OK=0]="OK",e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"}(o=t.Code||(t.Code={})),t.httpStatusToCode=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(13),o=r(14),i=r(28),s=r(58),a=r(60),u=r(12);!function(e){function t(e,t){return u.client(e,t)}e.DefaultTransportFactory=o.DefaultTransportFactory,e.WebsocketTransportFactory=o.WebsocketTransportFactory,e.Code=i.Code,e.Metadata=n.BrowserHeaders,e.client=t,e.invoke=s.invoke,e.unary=a.unary}(t.grpc||(t.grpc={}))},function(e,t,r){"use strict";function n(e){return"object"==typeof e&&"object"==typeof e.headersMap&&"function"==typeof e.forEach}Object.defineProperty(t,"__esModule",{value:!0});var o=r(31),i=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var r=this;if(this.headersMap={},e)if("undefined"!=typeof Headers&&e instanceof Headers){var i=o.getHeaderKeys(e);i.forEach(function(n){o.getHeaderValues(e,n).forEach(function(e){t.splitValues?r.append(n,o.splitHeaderValue(e)):r.append(n,e)})})}else if(n(e))e.forEach(function(e,t){r.append(e,t)});else if("undefined"!=typeof Map&&e instanceof Map){var s=e;s.forEach(function(e,t){r.append(t,e)})}else"string"==typeof e?this.appendFromString(e):"object"==typeof e&&Object.getOwnPropertyNames(e).forEach(function(t){var n=e,o=n[t];Array.isArray(o)?o.forEach(function(e){r.append(t,e)}):r.append(t,o)})}return e.prototype.appendFromString=function(e){for(var t=e.split("\r\n"),r=0;r<t.length;r++){var n=t[r],o=n.indexOf(":");if(o>0){var i=n.substring(0,o).trim(),s=n.substring(o+1).trim();this.append(i,s)}}},e.prototype.delete=function(e,t){var r=o.normalizeName(e);if(void 0===t)delete this.headersMap[r];else{var n=this.headersMap[r];if(n){var i=n.indexOf(t);i>=0&&n.splice(i,1),0===n.length&&delete this.headersMap[r]}}},e.prototype.append=function(e,t){var r=this,n=o.normalizeName(e);Array.isArray(this.headersMap[n])||(this.headersMap[n]=[]),Array.isArray(t)?t.forEach(function(e){r.headersMap[n].push(o.normalizeValue(e))}):this.headersMap[n].push(o.normalizeValue(t))},e.prototype.set=function(e,t){var r=o.normalizeName(e);if(Array.isArray(t)){var n=[];t.forEach(function(e){n.push(o.normalizeValue(e))}),this.headersMap[r]=n}else this.headersMap[r]=[o.normalizeValue(t)]},e.prototype.has=function(e,t){var r=this.headersMap[o.normalizeName(e)];if(!Array.isArray(r))return!1;if(void 0!==t){var n=o.normalizeValue(t);return r.indexOf(n)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[o.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach(function(r){e(r,t.headersMap[r])},this)},e.prototype.toHeaders=function(){if("undefined"!=typeof Headers){var e=new Headers;return this.forEach(function(t,r){r.forEach(function(r){e.append(t,r)})}),e}throw new Error("Headers class is not defined")},e}();t.BrowserHeaders=i},function(e,t,r){"use strict";function n(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function o(e){return"string"!=typeof e&&(e=String(e)),e}function i(e,t){var r=s(e);if(r instanceof Headers&&r.getAll)return r.getAll(t);var n=r.get(t);return n&&"string"==typeof n?[n]:n}function s(e){return e}function a(e){var t=s(e),r={},n=[];return t.keys?h.iterateHeadersKeys(t,function(e){r[e]||(r[e]=!0,n.push(e))}):t.forEach?t.forEach(function(e,t){r[t]||(r[t]=!0,n.push(t))}):h.iterateHeaders(t,function(e){var t=e[0];r[t]||(r[t]=!0,n.push(t))}),n}function u(e){var t=[];return e.split(", ").forEach(function(e){e.split(",").forEach(function(e){t.push(e)})}),t}Object.defineProperty(t,"__esModule",{value:!0});var h=r(32);t.normalizeName=n,t.normalizeValue=o,t.getHeaderValues=i,t.getHeaderKeys=a,t.splitHeaderValue=u},function(e,t){function r(e,t){for(var r=e[Symbol.iterator](),n=r.next();!n.done;)t(n.value[0]),n=r.next()}function n(e,t){for(var r=e.keys(),n=r.next();!n.done;)t(n.value),n=r.next()}e.exports={iterateHeaders:r,iterateHeadersKeys:n}},function(e,t,r){"use strict";function n(e){return e.debug&&s.debug("fetchRequest",e),new u(e)}function o(){return"undefined"!=typeof Response&&Response.prototype.hasOwnProperty("body")&&"function"==typeof Headers}Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),s=r(6),a=r(7);t.default=n;var u=function(){function e(e){this.cancelled=!1,this.options=e}return e.prototype.pump=function(e,t){var r=this;return this.reader=e,this.cancelled?(this.options.debug&&s.debug("Fetch.pump.cancel at first pump"),this.reader.cancel()):this.reader.read().then(function(e){return e.done?(a.default(function(){r.options.onEnd()}),t):(a.default(function(){r.options.onChunk(e.value)}),r.pump(r.reader,t))})},e.prototype.send=function(e){var t=this;fetch(this.options.url,{headers:this.metadata.toHeaders(),method:"POST",body:e,credentials:"same-origin"}).then(function(e){return t.options.debug&&s.debug("Fetch.response",e),a.default(function(){t.options.onHeaders(new i.Metadata(e.headers),e.status)}),e.body?t.pump(e.body.getReader(),e):e}).catch(function(e){if(t.cancelled)return void(t.options.debug&&s.debug("Fetch.catch - request cancelled"));t.options.debug&&s.debug("Fetch.catch",e.message),a.default(function(){t.options.onEnd(e)})})},e.prototype.sendMessage=function(e){this.send(e)},e.prototype.finishSend=function(){},e.prototype.start=function(e){this.metadata=e},e.prototype.cancel=function(){this.cancelled=!0,this.reader?(this.options.debug&&s.debug("Fetch.abort.cancel"),this.reader.cancel()):this.options.debug&&s.debug("Fetch.abort.cancel before reader")},e}();t.detectFetchSupport=o},function(e,t,r){"use strict";function n(e){return e.debug&&u.debug("xhrRequest",e),new f(e)}function o(e,t){var r=e.charCodeAt(t);if(r>=55296&&r<=56319){var n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(r=65536+(r-55296<<10)+(n-56320))}return r}function i(e){for(var t=new Uint8Array(e.length),r=0,n=0;n<e.length;n++){var i=String.prototype.codePointAt?e.codePointAt(n):o(e,n);t[r++]=255&i}return t}function s(){return"undefined"!=typeof XMLHttpRequest&&XMLHttpRequest.prototype.hasOwnProperty("overrideMimeType")}Object.defineProperty(t,"__esModule",{value:!0});var a=r(1),u=r(6),h=r(7);t.default=n;var f=function(){function e(e){this.options=e}return e.prototype.onProgressEvent=function(){var e=this;this.options.debug&&u.debug("XHR.onProgressEvent.length: ",this.xhr.response.length);var t=this.xhr.response.substr(this.index);this.index=this.xhr.response.length;var r=i(t);h.default(function(){e.options.onChunk(r)})},e.prototype.onLoadEvent=function(){var e=this;this.options.debug&&u.debug("XHR.onLoadEvent"),h.default(function(){e.options.onEnd()})},e.prototype.onStateChange=function(){var e=this;this.options.debug&&u.debug("XHR.onStateChange",this.xhr.readyState),this.xhr.readyState===XMLHttpRequest.HEADERS_RECEIVED&&h.default(function(){e.options.onHeaders(new a.Metadata(e.xhr.getAllResponseHeaders()),e.xhr.status)})},e.prototype.sendMessage=function(e){this.xhr.send(e)},e.prototype.finishSend=function(){},e.prototype.start=function(e){var t=this;this.metadata=e;var r=new XMLHttpRequest;this.xhr=r,r.open("POST",this.options.url),r.responseType="text",r.overrideMimeType("text/plain; charset=x-user-defined"),this.metadata.forEach(function(e,t){r.setRequestHeader(e,t.join(", "))}),r.addEventListener("readystatechange",this.onStateChange.bind(this)),r.addEventListener("progress",this.onProgressEvent.bind(this)),r.addEventListener("loadend",this.onLoadEvent.bind(this)),r.addEventListener("error",function(e){t.options.debug&&u.debug("XHR.error",e),h.default(function(){t.options.onEnd(e.error)})})},e.prototype.cancel=function(){this.options.debug&&u.debug("XHR.abort"),this.xhr.abort()},e}();t.stringToArrayBuffer=i,t.detectXHRSupport=s},function(e,t,r){"use strict";function n(e){return e.debug&&s.debug("mozXhrRequest",e),new h(e)}function o(){return"undefined"!=typeof XMLHttpRequest&&u.xhrSupportsResponseType("moz-chunked-arraybuffer")}Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),s=r(6),a=r(7),u=r(36);t.default=n;var h=function(){function e(e){this.options=e}return e.prototype.onProgressEvent=function(){var e=this,t=this.xhr.response;this.options.debug&&s.debug("MozXHR.onProgressEvent: ",new Uint8Array(t)),a.default(function(){e.options.onChunk(new Uint8Array(t))})},e.prototype.onLoadEvent=function(){var e=this;this.options.debug&&s.debug("MozXHR.onLoadEvent"),a.default(function(){e.options.onEnd()})},e.prototype.onStateChange=function(){var e=this;this.options.debug&&s.debug("MozXHR.onStateChange",this.xhr.readyState),this.options.debug&&s.debug("MozXHR.XMLHttpRequest.HEADERS_RECEIVED",XMLHttpRequest.HEADERS_RECEIVED),this.xhr.readyState===XMLHttpRequest.HEADERS_RECEIVED&&a.default(function(){e.options.onHeaders(new i.Metadata(e.xhr.getAllResponseHeaders()),e.xhr.status)})},e.prototype.sendMessage=function(e){this.options.debug&&s.debug("MozXHR.sendMessage"),this.xhr.send(e)},e.prototype.finishSend=function(){},e.prototype.start=function(e){var t=this;this.options.debug&&s.debug("MozXHR.start"),this.metadata=e;var r=new XMLHttpRequest;this.xhr=r,r.open("POST",this.options.url),r.responseType="moz-chunked-arraybuffer",this.metadata.forEach(function(e,t){r.setRequestHeader(e,t.join(", "))}),r.addEventListener("readystatechange",this.onStateChange.bind(this)),r.addEventListener("progress",this.onProgressEvent.bind(this)),r.addEventListener("loadend",this.onLoadEvent.bind(this)),r.addEventListener("error",function(e){t.options.debug&&s.debug("MozXHR.error",e),a.default(function(){t.options.onEnd(e.error)})})},e.prototype.cancel=function(){this.options.debug&&s.debug("MozXHR.cancel"),this.xhr.abort()},e}();t.detectMozXHRSupport=o},function(e,t,r){"use strict";function n(){if(void 0!==i)return i;if(XMLHttpRequest){i=new XMLHttpRequest;try{i.open("GET","https://localhost")}catch(e){}}return i}function o(e){var t=n();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}Object.defineProperty(t,"__esModule",{value:!0});var i;t.xhrSupportsResponseType=o},function(e,t,r){"use strict";(function(n){function o(e){return e.debug&&console.log("nodeHttpRequest",e),new d(e)}function i(e){var t={};for(var r in e){var n=e[r];e.hasOwnProperty(r)&&void 0!==n&&(t[r]=n)}return t}function s(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++)t[r]=e[r];return t}function a(e){for(var t=new n(e.byteLength),r=new Uint8Array(e.buffer),o=0;o<t.length;o++)t[o]=r[o];return t}function u(){return void 0!==e&&e.exports}Object.defineProperty(t,"__esModule",{value:!0});var h=r(16),f=r(56),c=r(11),l=r(1);t.default=o;var d=function(){function e(e){this.options=e}return e.prototype.sendMessage=function(e){this.request.write(a(e)),this.request.end()},e.prototype.finishSend=function(){},e.prototype.responseCallback=function(e){var t=this;this.options.debug&&console.log("NodeHttp.response",e.statusCode);var r=i(e.headers);this.options.onHeaders(new l.Metadata(r),e.statusCode),e.on("data",function(e){t.options.debug&&console.log("NodeHttp.data",e),t.options.onChunk(s(e))}),e.on("end",function(){t.options.debug&&console.log("NodeHttp.end"),t.options.onEnd()})},e.prototype.start=function(e){var t=this,r={};e.forEach(function(e,t){r[e]=t.join(", ")});var n=c.parse(this.options.url),o={host:n.hostname,port:n.port?parseInt(n.port):void 0,path:n.path,headers:r,method:"POST"};"https:"===n.protocol?this.request=f.request(o,this.responseCallback.bind(this)):this.request=h.request(o,this.responseCallback.bind(this)),this.request.on("error",function(e){t.options.debug&&console.log("NodeHttp.error",e),t.options.onEnd(e)})},e.prototype.cancel=function(){this.options.debug&&console.log("NodeHttp.abort"),this.request.abort()},e}();t.detectNodeHTTPSupport=u}).call(t,r(3).Buffer)},function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function o(e){return 3*e.length/4-n(e)}function i(e){var t,r,o,i,s,a=e.length;i=n(e),s=new c(3*a/4-i),r=i>0?a-4:a;var u=0;for(t=0;t<r;t+=4)o=f[e.charCodeAt(t)]<<18|f[e.charCodeAt(t+1)]<<12|f[e.charCodeAt(t+2)]<<6|f[e.charCodeAt(t+3)],s[u++]=o>>16&255,s[u++]=o>>8&255,s[u++]=255&o;return 2===i?(o=f[e.charCodeAt(t)]<<2|f[e.charCodeAt(t+1)]>>4,s[u++]=255&o):1===i&&(o=f[e.charCodeAt(t)]<<10|f[e.charCodeAt(t+1)]<<4|f[e.charCodeAt(t+2)]>>2,s[u++]=o>>8&255,s[u++]=255&o),s}function s(e){return h[e>>18&63]+h[e>>12&63]+h[e>>6&63]+h[63&e]}function a(e,t,r){for(var n,o=[],i=t;i<r;i+=3)n=(e[i]<<16)+(e[i+1]<<8)+e[i+2],o.push(s(n));return o.join("")}function u(e){for(var t,r=e.length,n=r%3,o="",i=[],s=0,u=r-n;s<u;s+=16383)i.push(a(e,s,s+16383>u?u:s+16383));return 1===n?(t=e[r-1],o+=h[t>>2],o+=h[t<<4&63],o+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],o+=h[t>>10],o+=h[t>>4&63],o+=h[t<<2&63],o+="="),i.push(o),i.join("")}t.byteLength=o,t.toByteArray=i,t.fromByteArray=u;for(var h=[],f=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,p=l.length;d<p;++d)h[d]=l[d],f[l.charCodeAt(d)]=d;f["-".charCodeAt(0)]=62,f["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,u=(1<<a)-1,h=u>>1,f=-7,c=r?o-1:0,l=r?-1:1,d=e[t+c];for(c+=l,i=d&(1<<-f)-1,d>>=-f,f+=a;f>0;i=256*i+e[t+c],c+=l,f-=8);for(s=i&(1<<-f)-1,i>>=-f,f+=n;f>0;s=256*s+e[t+c],c+=l,f-=8);if(0===i)i=1-h;else{if(i===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),i-=h}return(d?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,u,h=8*i-o-1,f=(1<<h)-1,c=f>>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(s++,u/=2),s+c>=f?(a=0,s=f):s+c>=1?(a=(t*u-1)*Math.pow(2,o),s+=c):(a=t*Math.pow(2,c-1)*Math.pow(2,o),s=0));o>=8;e[r+d]=255&a,d+=p,a/=256,o-=8);for(s=s<<o|a,h+=o;h>0;e[r+d]=255&s,d+=p,s/=256,h-=8);e[r+d-p]|=128*g}},function(e,t,r){(function(t,n,o){function i(e,t){return a.fetch&&t?"fetch":a.mozchunkedarraybuffer?"moz-chunked-arraybuffer":a.msstream?"ms-stream":a.arraybuffer&&e?"arraybuffer":a.vbArray&&e?"text:vbarray":"text"}function s(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return!1}}var a=r(17),u=r(2),h=r(18),f=r(19),c=r(47),l=h.IncomingMessage,d=h.readyStates,p=e.exports=function(e){var r=this;f.Writable.call(r),r._opts=e,r._body=[],r._headers={},e.auth&&r.setHeader("Authorization","Basic "+new t(e.auth).toString("base64")),Object.keys(e.headers).forEach(function(t){r.setHeader(t,e.headers[t])});var n,o=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!a.abortController)o=!1,n=!0;else if("prefer-streaming"===e.mode)n=!1;else if("allow-wrong-content-type"===e.mode)n=!a.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");n=!0}r._mode=i(n,o),r.on("finish",function(){r._onFinish()})};u(p,f.Writable),p.prototype.setHeader=function(e,t){var r=this,n=e.toLowerCase();-1===g.indexOf(n)&&(r._headers[n]={name:e,value:t})},p.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},p.prototype.removeHeader=function(e){delete this._headers[e.toLowerCase()]},p.prototype._onFinish=function(){var e=this;if(!e._destroyed){var r=e._opts,i=e._headers,s=null;"GET"!==r.method&&"HEAD"!==r.method&&(s=a.arraybuffer?c(t.concat(e._body)):a.blobConstructor?new n.Blob(e._body.map(function(e){return c(e)}),{type:(i["content-type"]||{}).value||""}):t.concat(e._body).toString());var u=[];if(Object.keys(i).forEach(function(e){var t=i[e].name,r=i[e].value;Array.isArray(r)?r.forEach(function(e){u.push([t,e])}):u.push([t,r])}),"fetch"===e._mode){var h=null;if(a.abortController){var f=new AbortController;h=f.signal,e._fetchAbortController=f,"requestTimeout"in r&&0!==r.requestTimeout&&n.setTimeout(function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()},r.requestTimeout)}n.fetch(e._opts.url,{method:e._opts.method,headers:u,body:s||void 0,mode:"cors",credentials:r.withCredentials?"include":"same-origin",signal:h}).then(function(t){e._fetchResponse=t,e._connect()},function(t){e.emit("error",t)})}else{var l=e._xhr=new n.XMLHttpRequest;try{l.open(e._opts.method,e._opts.url,!0)}catch(t){return void o.nextTick(function(){e.emit("error",t)})}"responseType"in l&&(l.responseType=e._mode.split(":")[0]),"withCredentials"in l&&(l.withCredentials=!!r.withCredentials),"text"===e._mode&&"overrideMimeType"in l&&l.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in r&&(l.timeout=r.requestTimeout,l.ontimeout=function(){e.emit("requestTimeout")}),u.forEach(function(e){l.setRequestHeader(e[0],e[1])}),e._response=null,l.onreadystatechange=function(){switch(l.readyState){case d.LOADING:case d.DONE:e._onXHRProgress()}},"moz-chunked-arraybuffer"===e._mode&&(l.onprogress=function(){e._onXHRProgress()}),l.onerror=function(){e._destroyed||e.emit("error",new Error("XHR error"))};try{l.send(s)}catch(t){return void o.nextTick(function(){e.emit("error",t)})}}}},p.prototype._onXHRProgress=function(){var e=this;s(e._xhr)&&!e._destroyed&&(e._response||e._connect(),e._response._onXHRProgress())},p.prototype._connect=function(){var e=this;e._destroyed||(e._response=new l(e._xhr,e._fetchResponse,e._mode),e._response.on("error",function(t){e.emit("error",t)}),e.emit("response",e._response))},p.prototype._write=function(e,t,r){this._body.push(e),r()},p.prototype.abort=p.prototype.destroy=function(){var e=this;e._destroyed=!0,e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort()},p.prototype.end=function(e,t,r){var n=this;"function"==typeof e&&(r=e,e=void 0),f.Writable.prototype.end.call(n,e,t,r)},p.prototype.flushHeaders=function(){},p.prototype.setTimeout=function(){},p.prototype.setNoDelay=function(){},p.prototype.setSocketKeepAlive=function(){};var g=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"]}).call(t,r(3).Buffer,r(0),r(4))},function(e,t){},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,r){e.copy(t,r)}var i=r(10).Buffer;e.exports=function(){function e(){n(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),r=this.head,n=0;r;)o(r.data,t,n),n+=r.data.length,r=r.next;return t},e}()},function(e,t,r){(function(e){function n(e,t){this._id=e,this._clearFn=t}var o=Function.prototype.apply;t.setTimeout=function(){return new n(o.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new n(o.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},n.prototype.unref=n.prototype.ref=function(){},n.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r(44),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(t,r(0))},function(e,t,r){(function(e,t){!function(e,r){"use strict";function n(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[u]=n,a(u),u++}function o(e){delete h[e]}function i(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(r,n)}}function s(e){if(f)setTimeout(s,0,e);else{var t=h[e];if(t){f=!0;try{i(t)}finally{o(e),f=!1}}}}if(!e.setImmediate){var a,u=1,h={},f=!1,c=e.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(e);l=l&&l.setTimeout?l:e,"[object process]"==={}.toString.call(e.process)?function(){a=function(e){t.nextTick(function(){s(e)})}}():function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?function(){var t="setImmediate$"+Math.random()+"$",r=function(r){r.source===e&&"string"==typeof r.data&&0===r.data.indexOf(t)&&s(+r.data.slice(t.length))};e.addEventListener?e.addEventListener("message",r,!1):e.attachEvent("onmessage",r),a=function(r){e.postMessage(t+r,"*")}}():e.MessageChannel?function(){var e=new MessageChannel;e.port1.onmessage=function(e){s(e.data)},a=function(t){e.port2.postMessage(t)}}():c&&"onreadystatechange"in c.createElement("script")?function(){var e=c.documentElement;a=function(t){var r=c.createElement("script");r.onreadystatechange=function(){s(t),r.onreadystatechange=null,e.removeChild(r),r=null},e.appendChild(r)}}():function(){a=function(e){setTimeout(s,0,e)}}(),l.setImmediate=n,l.clearImmediate=o}}("undefined"==typeof self?void 0===e?this:e:self)}).call(t,r(0),r(4))},function(e,t,r){(function(t){function r(e,t){function r(){if(!o){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),o=!0}return e.apply(this,arguments)}if(n("noDeprecation"))return e;var o=!1;return r}function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var r=t.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=r}).call(t,r(0))},function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);o.call(this,e)}e.exports=n;var o=r(26),i=r(8);i.inherits=r(2),i.inherits(n,o),n.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){var n=r(3).Buffer;e.exports=function(e){if(e instanceof Uint8Array){if(0===e.byteOffset&&e.byteLength===e.buffer.byteLength)return e.buffer;if("function"==typeof e.buffer.slice)return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}if(n.isBuffer(e)){for(var t=new Uint8Array(e.length),r=e.length,o=0;o<r;o++)t[o]=e[o];return t.buffer}throw new Error("Argument must be a Buffer")}},function(e,t){function r(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var o in r)n.call(r,o)&&(e[o]=r[o])}return e}e.exports=r;var n=Object.prototype.hasOwnProperty},function(e,t){e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},function(e,t,r){(function(e,n){var o;!function(i){function s(e){throw new RangeError(P[e])}function a(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function u(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(k,"."),n+a(e.split("."),t).join(".")}function h(e){for(var t,r,n=[],o=0,i=e.length;o<i;)t=e.charCodeAt(o++),t>=55296&&t<=56319&&o<i?(r=e.charCodeAt(o++),56320==(64512&r)?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),o--)):n.push(t);return n}function f(e){return a(e,function(e){var t="";return e>65535&&(e-=65536,t+=U(e>>>10&1023|55296),e=56320|1023&e),t+=U(e)}).join("")}function c(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:_}function l(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function d(e,t,r){var n=0;for(e=r?I(e/A):e>>1,e+=I(e/t);e>L*S>>1;n+=_)e=I(e/L);return I(n+(L+1)*e/(e+R))}function p(e){var t,r,n,o,i,a,u,h,l,p,g=[],y=e.length,v=0,b=C,m=T;for(r=e.lastIndexOf(M),r<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&s("not-basic"),g.push(e.charCodeAt(n));for(o=r>0?r+1:0;o<y;){for(i=v,a=1,u=_;o>=y&&s("invalid-input"),h=c(e.charCodeAt(o++)),(h>=_||h>I((w-v)/a))&&s("overflow"),v+=h*a,l=u<=m?E:u>=m+S?S:u-m,!(h<l);u+=_)p=_-l,a>I(w/p)&&s("overflow"),a*=p;t=g.length+1,m=d(v-i,t,0==i),I(v/t)>w-b&&s("overflow"),b+=I(v/t),v%=t,g.splice(v++,0,b)}return f(g)}function g(e){var t,r,n,o,i,a,u,f,c,p,g,y,v,b,m,R=[];for(e=h(e),y=e.length,t=C,r=0,i=T,a=0;a<y;++a)(g=e[a])<128&&R.push(U(g));for(n=o=R.length,o&&R.push(M);n<y;){for(u=w,a=0;a<y;++a)(g=e[a])>=t&&g<u&&(u=g);for(v=n+1,u-t>I((w-r)/v)&&s("overflow"),r+=(u-t)*v,t=u,a=0;a<y;++a)if(g=e[a],g<t&&++r>w&&s("overflow"),g==t){for(f=r,c=_;p=c<=i?E:c>=i+S?S:c-i,!(f<p);c+=_)m=f-p,b=_-p,R.push(U(l(p+m%b,0))),f=I(m/b);R.push(U(l(f,0))),i=d(r,v,n==o),r=0,++n}++r,++t}return R.join("")}function y(e){return u(e,function(e){return x.test(e)?p(e.slice(4).toLowerCase()):e})}function v(e){return u(e,function(e){return O.test(e)?"xn--"+g(e):e})}var b=("object"==typeof t&&t&&t.nodeType,"object"==typeof e&&e&&e.nodeType,"object"==typeof n&&n);var m,w=2147483647,_=36,E=1,S=26,R=38,A=700,T=72,C=128,M="-",x=/^xn--/,O=/[^\x20-\x7E]/,k=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=_-E,I=Math.floor,U=String.fromCharCode;m={version:"1.4.1",ucs2:{decode:h,encode:f},decode:p,encode:g,toASCII:v,toUnicode:y},void 0!==(o=function(){return m}.call(t,r,t,e))&&(e.exports=o)}()}).call(t,r(51)(e),r(0))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,r){"use strict";t.decode=t.parse=r(54),t.encode=t.stringify=r(55)},function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,i){t=t||"&",r=r||"=";var s={};if("string"!=typeof e||0===e.length)return s;var a=/\+/g;e=e.split(t);var u=1e3;i&&"number"==typeof i.maxKeys&&(u=i.maxKeys);var h=e.length;u>0&&h>u&&(h=u);for(var f=0;f<h;++f){var c,l,d,p,g=e[f].replace(a,"%20"),y=g.indexOf(r);y>=0?(c=g.substr(0,y),l=g.substr(y+1)):(c=g,l=""),d=decodeURIComponent(c),p=decodeURIComponent(l),n(s,d)?o(s[d])?s[d].push(p):s[d]=[s[d],p]:s[d]=p}return s};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";function n(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n<e.length;n++)r.push(t(e[n],n));return r}var o=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,a){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?n(s(e),function(s){var a=encodeURIComponent(o(s))+r;return i(e[s])?n(e[s],function(e){return a+encodeURIComponent(o(e))}).join(t):a+encodeURIComponent(o(e[s]))}).join(t):a?encodeURIComponent(o(a))+r+encodeURIComponent(o(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},s=Object.keys||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t}},function(e,t,r){function n(e){if("string"==typeof e&&(e=i.parse(e)),e.protocol||(e.protocol="https:"),"https:"!==e.protocol)throw new Error('Protocol "'+e.protocol+'" not supported. Expected "https:"');return e}var o=r(16),i=r(11),s=e.exports;for(var a in o)o.hasOwnProperty(a)&&(s[a]=o[a]);s.request=function(e,t){return e=n(e),o.request.call(this,e,t)},s.get=function(e,t){return e=n(e),o.get.call(this,e,t)}},function(e,t,r){"use strict";function n(e){function t(e){if(e===s.FINISH_SEND)r.send(f);else{var t=e,n=new Int8Array(t.byteLength+1);n.set(new Uint8Array([0])),n.set(t,1),r.send(n)}}e.debug&&a.debug("websocketRequest",e);var r,n=o(e.url),h=[];return{sendMessage:function(e){r&&r.readyState!==r.CONNECTING?t(e):h.push(e)},finishSend:function(){r&&r.readyState!==r.CONNECTING?t(s.FINISH_SEND):h.push(s.FINISH_SEND)},start:function(o){r=new WebSocket(n,["grpc-websockets"]),r.binaryType="arraybuffer",r.onopen=function(){e.debug&&a.debug("websocketRequest.onopen"),r.send(i(o)),h.forEach(function(e){t(e)})},r.onclose=function(t){e.debug&&a.debug("websocketRequest.onclose",t),u.default(function(){e.onEnd()})},r.onerror=function(t){e.debug&&a.debug("websocketRequest.onerror",t)},r.onmessage=function(t){u.default(function(){e.onChunk(new Uint8Array(t.data))})}},cancel:function(){e.debug&&a.debug("websocket.abort"),u.default(function(){r.close()})}}}function o(e){if("https://"===e.substr(0,8))return"wss://"+e.substr(8);if("http://"===e.substr(0,7))return"ws://"+e.substr(7);throw new Error("Websocket transport constructed with non-https:// or http:// host.")}function i(e){var t="";return e.forEach(function(e,r){t+=e+": "+r.join(", ")+"\r\n"}),h.encodeASCII(t)}Object.defineProperty(t,"__esModule",{value:!0});var s,a=r(6),u=r(7),h=r(27);!function(e){e[e.FINISH_SEND=1]="FINISH_SEND"}(s||(s={}));var f=new Uint8Array([1]);t.default=n},function(e,t,r){"use strict";function n(e,t){if(e.requestStream)throw new Error(".invoke cannot be used with client-streaming methods. Use .client instead.");var r=o.client(e,{host:t.host,transport:t.transport,debug:t.debug});return t.onHeaders&&r.onHeaders(t.onHeaders),t.onMessage&&r.onMessage(t.onMessage),t.onEnd&&r.onEnd(t.onEnd),r.start(t.metadata),r.send(t.request),{close:function(){r.close()}}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(12);t.invoke=n},function(e,t,r){"use strict";function n(e){var t=e.serializeBinary(),r=new ArrayBuffer(t.byteLength+5);return new DataView(r,1,4).setUint32(0,t.length,!1),new Uint8Array(r,5).set(t),new Uint8Array(r)}Object.defineProperty(t,"__esModule",{value:!0}),t.frameRequest=n},function(e,t,r){"use strict";function n(e,t){if(e.responseStream)throw new Error(".unary cannot be used with server-streaming methods. Use .invoke or .client instead.");if(e.requestStream)throw new Error(".unary cannot be used with client-streaming methods. Use .client instead.");var r=null,n=null,s=i.client(e,{host:t.host,transport:t.transport,debug:t.debug});return s.onHeaders(function(e){r=e}),s.onMessage(function(e){n=e}),s.onEnd(function(e,i,s){t.onEnd({status:e,statusMessage:i,headers:r||new o.Metadata,message:n,trailers:s})}),s.start(t.metadata),s.send(t.request),{close:function(){s.close()}}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),i=r(12);t.unary=n}]));
	}).call($global);
$packages["github.com/johanbrandhorst/protobuf/grpcweb/grpcwebjs"] = (function() {
	var $pkg = {}, $init;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["google.golang.org/grpc/codes"] = (function() {
	var $pkg = {}, $init, fmt, strconv, Code, ptrType, sliceType, sliceType$1, strToCode;
	fmt = $packages["fmt"];
	strconv = $packages["strconv"];
	Code = $pkg.Code = $newType(4, $kindUint32, "codes.Code", true, "google.golang.org/grpc/codes", true, null);
	ptrType = $ptrType(Code);
	sliceType = $sliceType($emptyInterface);
	sliceType$1 = $sliceType($Uint8);
	$ptrType(Code).prototype.UnmarshalJSON = function(b) {
		var {$24r, $24r$1, $24r$2, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, b, c, ci, err, jc, ok, $s, $r, $c} = $restore(this, {b});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		if (($bytesToString(b)) === "null") {
			$s = -1; return $ifaceNil;
		}
		/* */ if (c === ptrType.nil) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (c === ptrType.nil) { */ case 1:
			_r = fmt.Errorf("nil receiver passed to UnmarshalJSON", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			$24r = _r;
			$s = 4; case 4: return $24r;
		/* } */ case 2:
		_tuple = strconv.ParseUint(($bytesToString(b)), 10, 32);
		ci = _tuple[0];
		err = _tuple[1];
		/* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 5:
			/* */ if ((ci.$high > 0 || (ci.$high === 0 && ci.$low >= 17))) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if ((ci.$high > 0 || (ci.$high === 0 && ci.$low >= 17))) { */ case 7:
				_r$1 = fmt.Errorf("invalid code: %q", new sliceType([ci])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$24r$1 = _r$1;
				$s = 10; case 10: return $24r$1;
			/* } */ case 8:
			c.$set(((ci.$low >>> 0)));
			$s = -1; return $ifaceNil;
		/* } */ case 6:
		_tuple$1 = (_entry = $mapIndex(strToCode,$String.keyFor(($bytesToString(b)))), _entry !== undefined ? [_entry.v, true] : [0, false]);
		jc = _tuple$1[0];
		ok = _tuple$1[1];
		if (ok) {
			c.$set(jc);
			$s = -1; return $ifaceNil;
		}
		_r$2 = fmt.Errorf("invalid code: %q", new sliceType([new $String(($bytesToString(b)))])); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r$2 = _r$2;
		$s = 12; case 12: return $24r$2;
		/* */ } return; } var $f = {$blk: $ptrType(Code).prototype.UnmarshalJSON, $c: true, $r, $24r, $24r$1, $24r$2, _entry, _r, _r$1, _r$2, _tuple, _tuple$1, b, c, ci, err, jc, ok, $s};return $f;
	};
	Code.prototype.String = function() {
		var _1, c;
		c = this.$val;
		_1 = c;
		if (_1 === (0)) {
			return "OK";
		} else if (_1 === (1)) {
			return "Canceled";
		} else if (_1 === (2)) {
			return "Unknown";
		} else if (_1 === (3)) {
			return "InvalidArgument";
		} else if (_1 === (4)) {
			return "DeadlineExceeded";
		} else if (_1 === (5)) {
			return "NotFound";
		} else if (_1 === (6)) {
			return "AlreadyExists";
		} else if (_1 === (7)) {
			return "PermissionDenied";
		} else if (_1 === (8)) {
			return "ResourceExhausted";
		} else if (_1 === (9)) {
			return "FailedPrecondition";
		} else if (_1 === (10)) {
			return "Aborted";
		} else if (_1 === (11)) {
			return "OutOfRange";
		} else if (_1 === (12)) {
			return "Unimplemented";
		} else if (_1 === (13)) {
			return "Internal";
		} else if (_1 === (14)) {
			return "Unavailable";
		} else if (_1 === (15)) {
			return "DataLoss";
		} else if (_1 === (16)) {
			return "Unauthenticated";
		} else {
			return "Code(" + strconv.FormatInt((new $Int64(0, c)), 10) + ")";
		}
	};
	$ptrType(Code).prototype.String = function() { return new Code(this.$get()).String(); };
	Code.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType.methods = [{prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}];
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		strToCode = $makeMap($String.keyFor, [{ k: "\"OK\"", v: 0 }, { k: "\"CANCELLED\"", v: 1 }, { k: "\"UNKNOWN\"", v: 2 }, { k: "\"INVALID_ARGUMENT\"", v: 3 }, { k: "\"DEADLINE_EXCEEDED\"", v: 4 }, { k: "\"NOT_FOUND\"", v: 5 }, { k: "\"ALREADY_EXISTS\"", v: 6 }, { k: "\"PERMISSION_DENIED\"", v: 7 }, { k: "\"RESOURCE_EXHAUSTED\"", v: 8 }, { k: "\"FAILED_PRECONDITION\"", v: 9 }, { k: "\"ABORTED\"", v: 10 }, { k: "\"OUT_OF_RANGE\"", v: 11 }, { k: "\"UNIMPLEMENTED\"", v: 12 }, { k: "\"INTERNAL\"", v: 13 }, { k: "\"UNAVAILABLE\"", v: 14 }, { k: "\"DATA_LOSS\"", v: 15 }, { k: "\"UNAUTHENTICATED\"", v: 16 }]);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["google.golang.org/grpc/metadata"] = (function() {
	var $pkg = {}, $init, context, fmt, strings, MD, mdOutgoingKey, rawMD, sliceType, sliceType$1, sliceType$2, sliceType$3, Join, FromOutgoingContext;
	context = $packages["context"];
	fmt = $packages["fmt"];
	strings = $packages["strings"];
	MD = $pkg.MD = $newType(4, $kindMap, "metadata.MD", true, "google.golang.org/grpc/metadata", true, null);
	mdOutgoingKey = $pkg.mdOutgoingKey = $newType(0, $kindStruct, "metadata.mdOutgoingKey", true, "google.golang.org/grpc/metadata", false, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	rawMD = $pkg.rawMD = $newType(0, $kindStruct, "metadata.rawMD", true, "google.golang.org/grpc/metadata", false, function(md_, added_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.md = false;
			this.added = sliceType$3.nil;
			return;
		}
		this.md = md_;
		this.added = added_;
	});
	sliceType = $sliceType($String);
	sliceType$1 = $sliceType($emptyInterface);
	sliceType$2 = $sliceType(MD);
	sliceType$3 = $sliceType(sliceType);
	MD.prototype.Len = function() {
		var md;
		md = this.$val;
		return (md ? md.size : 0);
	};
	$ptrType(MD).prototype.Len = function() { return new MD(this.$get()).Len(); };
	MD.prototype.Copy = function() {
		var md;
		md = this.$val;
		return Join(new sliceType$2([md]));
	};
	$ptrType(MD).prototype.Copy = function() { return new MD(this.$get()).Copy(); };
	MD.prototype.Get = function(k) {
		var {_entry, _r, k, md, $s, $r, $c} = $restore(this, {k});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		md = this.$val;
		_r = strings.ToLower(k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		k = _r;
		$s = -1; return (_entry = $mapIndex(md,$String.keyFor(k)), _entry !== undefined ? _entry.v : sliceType.nil);
		/* */ } return; } var $f = {$blk: MD.prototype.Get, $c: true, $r, _entry, _r, k, md, $s};return $f;
	};
	$ptrType(MD).prototype.Get = function(k) { return new MD(this.$get()).Get(k); };
	MD.prototype.Set = function(k, vals) {
		var {_key, _r, k, md, vals, $s, $r, $c} = $restore(this, {k, vals});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		md = this.$val;
		if (vals.$length === 0) {
			$s = -1; return;
		}
		_r = strings.ToLower(k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		k = _r;
		_key = k; (md || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: vals });
		$s = -1; return;
		/* */ } return; } var $f = {$blk: MD.prototype.Set, $c: true, $r, _key, _r, k, md, vals, $s};return $f;
	};
	$ptrType(MD).prototype.Set = function(k, vals) { return new MD(this.$get()).Set(k, vals); };
	MD.prototype.Append = function(k, vals) {
		var {_entry, _key, _r, k, md, vals, $s, $r, $c} = $restore(this, {k, vals});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		md = this.$val;
		if (vals.$length === 0) {
			$s = -1; return;
		}
		_r = strings.ToLower(k); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		k = _r;
		_key = k; (md || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $appendSlice((_entry = $mapIndex(md,$String.keyFor(k)), _entry !== undefined ? _entry.v : sliceType.nil), vals) });
		$s = -1; return;
		/* */ } return; } var $f = {$blk: MD.prototype.Append, $c: true, $r, _entry, _key, _r, k, md, vals, $s};return $f;
	};
	$ptrType(MD).prototype.Append = function(k, vals) { return new MD(this.$get()).Append(k, vals); };
	Join = function(mds) {
		var _entry, _entry$1, _i, _i$1, _key, _key$1, _keys, _ref, _ref$1, _size, k, md, mds, out, v;
		out = $makeMap($String.keyFor, []);
		_ref = mds;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			md = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			_ref$1 = md;
			_i$1 = 0;
			_keys = _ref$1 ? _ref$1.keys() : undefined;
			_size = _ref$1 ? _ref$1.size : 0;
			while (true) {
				if (!(_i$1 < _size)) { break; }
				_key = _keys.next().value;
				_entry = _ref$1.get(_key);
				if (_entry === undefined) {
					_i$1++;
					continue;
				}
				k = _entry.k;
				v = _entry.v;
				_key$1 = k; (out || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: $appendSlice((_entry$1 = $mapIndex(out,$String.keyFor(k)), _entry$1 !== undefined ? _entry$1.v : sliceType.nil), v) });
				_i$1++;
			}
			_i++;
		}
		return out;
	};
	$pkg.Join = Join;
	FromOutgoingContext = function(ctx) {
		var {_entry, _i, _key, _r, _r$1, _r$2, _r$3, _ref, _tuple, added, ctx, i, key, ok, out, raw, x, x$1, $s, $r, $c} = $restore(this, {ctx});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = ctx.Value((x = new mdOutgoingKey.ptr(), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = $assertType(_r, rawMD, true);
		raw = $clone(_tuple[0], rawMD);
		ok = _tuple[1];
		if (!ok) {
			$s = -1; return [false, false];
		}
		out = new MD(raw.md).Copy();
		_ref = raw.added;
		_i = 0;
		/* while (true) { */ case 2:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; }
			added = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			/* */ if ((_r$1 = added.$length % 2, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 1) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if ((_r$1 = added.$length % 2, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 1) { */ case 4:
				_r$2 = fmt.Sprintf("metadata: FromOutgoingContext got an odd number of input pairs for metadata: %d", new sliceType$1([new $Int(added.$length)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$panic(new $String(_r$2));
			/* } */ case 5:
			i = 0;
			/* while (true) { */ case 7:
				/* if (!(i < added.$length)) { break; } */ if(!(i < added.$length)) { $s = 8; continue; }
				_r$3 = strings.ToLower(((i < 0 || i >= added.$length) ? ($throwRuntimeError("index out of range"), undefined) : added.$array[added.$offset + i])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				key = _r$3;
				_key = key; (out || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: $append((_entry = $mapIndex(out,$String.keyFor(key)), _entry !== undefined ? _entry.v : sliceType.nil), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= added.$length) ? ($throwRuntimeError("index out of range"), undefined) : added.$array[added.$offset + x$1]))) });
				i = i + (2) >> 0;
			$s = 7; continue;
			case 8:
			_i++;
		$s = 2; continue;
		case 3:
		$s = -1; return [out, ok];
		/* */ } return; } var $f = {$blk: FromOutgoingContext, $c: true, $r, _entry, _i, _key, _r, _r$1, _r$2, _r$3, _ref, _tuple, added, ctx, i, key, ok, out, raw, x, x$1, $s};return $f;
	};
	$pkg.FromOutgoingContext = FromOutgoingContext;
	MD.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [MD], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [sliceType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, sliceType], [], true)}, {prop: "Append", name: "Append", pkg: "", typ: $funcType([$String, sliceType], [], true)}];
	MD.init($String, sliceType);
	mdOutgoingKey.init("", []);
	rawMD.init("google.golang.org/grpc/metadata", [{prop: "md", name: "md", embedded: false, exported: false, typ: MD, tag: ""}, {prop: "added", name: "added", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/johanbrandhorst/protobuf/grpcweb/status"] = (function() {
	var $pkg = {}, $init, grpcwebjs, codes, metadata, Status, ptrType, FromError;
	grpcwebjs = $packages["github.com/johanbrandhorst/protobuf/grpcweb/grpcwebjs"];
	codes = $packages["google.golang.org/grpc/codes"];
	metadata = $packages["google.golang.org/grpc/metadata"];
	Status = $pkg.Status = $newType(0, $kindStruct, "status.Status", true, "github.com/johanbrandhorst/protobuf/grpcweb/status", true, function(Code_, Message_, Trailers_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Code = 0;
			this.Message = "";
			this.Trailers = false;
			return;
		}
		this.Code = Code_;
		this.Message = Message_;
		this.Trailers = Trailers_;
	});
	ptrType = $ptrType(Status);
	Status.ptr.prototype.Error = function() {
		var s;
		s = this;
		return "rpc error: code = " + new codes.Code(s.Code).String() + " desc = " + s.Message;
	};
	Status.prototype.Error = function() { return this.$val.Error(); };
	FromError = function(err) {
		var {_r, _tuple, err, ok, s, $s, $r, $c} = $restore(this, {err});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		if ($interfaceIsEqual(err, $ifaceNil)) {
			$s = -1; return ptrType.nil;
		}
		_tuple = $assertType(err, ptrType, true);
		s = _tuple[0];
		ok = _tuple[1];
		/* */ if (!ok) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!ok) { */ case 1:
			_r = err.Error(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			s = new Status.ptr(2, _r, false);
		/* } */ case 2:
		$s = -1; return s;
		/* */ } return; } var $f = {$blk: FromError, $c: true, $r, _r, _tuple, err, ok, s, $s};return $f;
	};
	$pkg.FromError = FromError;
	Status.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
	Status.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: codes.Code, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Trailers", name: "Trailers", embedded: false, exported: true, typ: metadata.MD, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = grpcwebjs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = codes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = metadata.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
	(function() {
!function(e,t){for(var r in t)e[r]=t[r]}(this,function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(module,exports,__webpack_require__){(function(global){var $jscomp={scope:{},getGlobal:function(e){return"undefined"!=typeof window&&window===e?e:void 0!==global?global:e}};$jscomp.global=$jscomp.getGlobal(this),$jscomp.initSymbol=function(){$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol),$jscomp.initSymbol=function(){}},$jscomp.symbolCounter_=0,$jscomp.Symbol=function(e){return"jscomp_symbol_"+e+$jscomp.symbolCounter_++},$jscomp.initSymbolIterator=function(){$jscomp.initSymbol(),$jscomp.global.Symbol.iterator||($jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator")),$jscomp.initSymbolIterator=function(){}},$jscomp.makeIterator=function(e){$jscomp.initSymbolIterator(),$jscomp.initSymbol(),$jscomp.initSymbolIterator();var t=e[Symbol.iterator];if(t)return t.call(e);var r=0;return{next:function(){return r<e.length?{done:!1,value:e[r++]}:{done:!0}}}},$jscomp.arrayFromIterator=function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r},$jscomp.arrayFromIterable=function(e){return e instanceof Array?e:$jscomp.arrayFromIterator($jscomp.makeIterator(e))},$jscomp.inherits=function(e,t){function r(){}for(var o in r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e,t)if(Object.defineProperties){var n=Object.getOwnPropertyDescriptor(t,o);n&&Object.defineProperty(e,o,n)}else e[o]=t[o]},$jscomp.array=$jscomp.array||{},$jscomp.iteratorFromArray=function(e,t){$jscomp.initSymbolIterator(),e instanceof String&&(e+="");var r=0,o={next:function(){if(r<e.length){var n=r++;return{value:t(n,e[n]),done:!1}}return o.next=function(){return{done:!0,value:void 0}},o.next()}};return $jscomp.initSymbol(),$jscomp.initSymbolIterator(),o[Symbol.iterator]=function(){return o},o},$jscomp.findInternal=function(e,t,r){e instanceof String&&(e=String(e));for(var o=e.length,n=0;n<o;n++){var s=e[n];if(t.call(r,s,n,e))return{i:n,v:s}}return{i:-1,v:void 0}},$jscomp.array.from=function(e,t,r){$jscomp.initSymbolIterator(),t=null!=t?t:function(e){return e};var o=[];if($jscomp.initSymbol(),$jscomp.initSymbolIterator(),"function"==typeof(n=e[Symbol.iterator])&&(e=n.call(e)),"function"==typeof e.next)for(;!(n=e.next()).done;)o.push(t.call(r,n.value));else for(var n=e.length,s=0;s<n;s++)o.push(t.call(r,e[s]));return o},$jscomp.array.of=function(e){return $jscomp.array.from(arguments)},$jscomp.array.entries=function(){return $jscomp.iteratorFromArray(this,function(e,t){return[e,t]})},$jscomp.array.installHelper_=function(e,t){!Array.prototype[e]&&Object.defineProperties&&Object.defineProperty&&Object.defineProperty(Array.prototype,e,{configurable:!0,enumerable:!1,writable:!0,value:t})},$jscomp.array.entries$install=function(){$jscomp.array.installHelper_("entries",$jscomp.array.entries)},$jscomp.array.keys=function(){return $jscomp.iteratorFromArray(this,function(e){return e})},$jscomp.array.keys$install=function(){$jscomp.array.installHelper_("keys",$jscomp.array.keys)},$jscomp.array.values=function(){return $jscomp.iteratorFromArray(this,function(e,t){return t})},$jscomp.array.values$install=function(){$jscomp.array.installHelper_("values",$jscomp.array.values)},$jscomp.array.copyWithin=function(e,t,r){var o=this.length;if(e=Number(e),t=Number(t),r=Number(null!=r?r:o),e<t)for(r=Math.min(r,o);t<r;)t in this?this[e++]=this[t++]:(delete this[e++],t++);else for(e+=(r=Math.min(r,o+t-e))-t;r>t;)--r in this?this[--e]=this[r]:delete this[e];return this},$jscomp.array.copyWithin$install=function(){$jscomp.array.installHelper_("copyWithin",$jscomp.array.copyWithin)},$jscomp.array.fill=function(e,t,r){var o=this.length||0;for(0>t&&(t=Math.max(0,o+t)),(null==r||r>o)&&(r=o),0>(r=Number(r))&&(r=Math.max(0,o+r)),t=Number(t||0);t<r;t++)this[t]=e;return this},$jscomp.array.fill$install=function(){$jscomp.array.installHelper_("fill",$jscomp.array.fill)},$jscomp.array.find=function(e,t){return $jscomp.findInternal(this,e,t).v},$jscomp.array.find$install=function(){$jscomp.array.installHelper_("find",$jscomp.array.find)},$jscomp.array.findIndex=function(e,t){return $jscomp.findInternal(this,e,t).i},$jscomp.array.findIndex$install=function(){$jscomp.array.installHelper_("findIndex",$jscomp.array.findIndex)},$jscomp.ASSUME_NO_NATIVE_MAP=!1,$jscomp.Map$isConformant=function(){if($jscomp.ASSUME_NO_NATIVE_MAP)return!1;var e=$jscomp.global.Map;if(!e||!e.prototype.entries||"function"!=typeof Object.seal)return!1;try{var t=Object.seal({x:4}),r=new e($jscomp.makeIterator([[t,"s"]]));if("s"!=r.get(t)||1!=r.size||r.get({x:4})||r.set({x:4},"t")!=r||2!=r.size)return!1;var o=r.entries(),n=o.next();return!n.done&&n.value[0]==t&&"s"==n.value[1]&&!((n=o.next()).done||4!=n.value[0].x||"t"!=n.value[1]||!o.next().done)}catch(e){return!1}},$jscomp.Map=function(e){if(this.data_={},this.head_=$jscomp.Map.createHead(),this.size=0,e){e=$jscomp.makeIterator(e);for(var t;!(t=e.next()).done;)t=t.value,this.set(t[0],t[1])}},$jscomp.Map.prototype.set=function(e,t){var r=$jscomp.Map.maybeGetEntry(this,e);return r.list||(r.list=this.data_[r.id]=[]),r.entry?r.entry.value=t:(r.entry={next:this.head_,previous:this.head_.previous,head:this.head_,key:e,value:t},r.list.push(r.entry),this.head_.previous.next=r.entry,this.head_.previous=r.entry,this.size++),this},$jscomp.Map.prototype.delete=function(e){return!(!(e=$jscomp.Map.maybeGetEntry(this,e)).entry||!e.list)&&(e.list.splice(e.index,1),e.list.length||delete this.data_[e.id],e.entry.previous.next=e.entry.next,e.entry.next.previous=e.entry.previous,e.entry.head=null,this.size--,!0)},$jscomp.Map.prototype.clear=function(){this.data_={},this.head_=this.head_.previous=$jscomp.Map.createHead(),this.size=0},$jscomp.Map.prototype.has=function(e){return!!$jscomp.Map.maybeGetEntry(this,e).entry},$jscomp.Map.prototype.get=function(e){return(e=$jscomp.Map.maybeGetEntry(this,e).entry)&&e.value},$jscomp.Map.prototype.entries=function(){return $jscomp.Map.makeIterator_(this,function(e){return[e.key,e.value]})},$jscomp.Map.prototype.keys=function(){return $jscomp.Map.makeIterator_(this,function(e){return e.key})},$jscomp.Map.prototype.values=function(){return $jscomp.Map.makeIterator_(this,function(e){return e.value})},$jscomp.Map.prototype.forEach=function(e,t){for(var r,o=this.entries();!(r=o.next()).done;)r=r.value,e.call(t,r[1],r[0],this)},$jscomp.Map.maybeGetEntry=function(e,t){var r=$jscomp.Map.getId(t),o=e.data_[r];if(o&&Object.prototype.hasOwnProperty.call(e.data_,r))for(var n=0;n<o.length;n++){var s=o[n];if(t!=t&&s.key!=s.key||t===s.key)return{id:r,list:o,index:n,entry:s}}return{id:r,list:o,index:-1,entry:void 0}},$jscomp.Map.makeIterator_=function(e,t){var r=e.head_,o={next:function(){if(r){for(;r.head!=e.head_;)r=r.previous;for(;r.next!=r.head;)return r=r.next,{done:!1,value:t(r)};r=null}return{done:!0,value:void 0}}};return $jscomp.initSymbol(),$jscomp.initSymbolIterator(),o[Symbol.iterator]=function(){return o},o},$jscomp.Map.mapIndex_=0,$jscomp.Map.createHead=function(){var e={};return e.previous=e.next=e.head=e},$jscomp.Map.getId=function(e){if(!(e instanceof Object))return"p_"+e;if(!($jscomp.Map.idKey in e))try{$jscomp.Map.defineProperty(e,$jscomp.Map.idKey,{value:++$jscomp.Map.mapIndex_})}catch(e){}return $jscomp.Map.idKey in e?e[$jscomp.Map.idKey]:"o_ "+e},$jscomp.Map.defineProperty=Object.defineProperty?function(e,t,r){Object.defineProperty(e,t,{value:String(r)})}:function(e,t,r){e[t]=String(r)},$jscomp.Map.Entry=function(){},$jscomp.Map$install=function(){$jscomp.initSymbol(),$jscomp.initSymbolIterator(),$jscomp.Map$isConformant()?$jscomp.Map=$jscomp.global.Map:($jscomp.initSymbol(),$jscomp.initSymbolIterator(),$jscomp.Map.prototype[Symbol.iterator]=$jscomp.Map.prototype.entries,$jscomp.initSymbol(),$jscomp.Map.idKey=Symbol("map-id-key"),$jscomp.Map$install=function(){})},$jscomp.math=$jscomp.math||{},$jscomp.math.clz32=function(e){if(0===(e=Number(e)>>>0))return 32;var t=0;return 0==(4294901760&e)&&(e<<=16,t+=16),0==(4278190080&e)&&(e<<=8,t+=8),0==(4026531840&e)&&(e<<=4,t+=4),0==(3221225472&e)&&(e<<=2,t+=2),0==(2147483648&e)&&t++,t},$jscomp.math.imul=function(e,t){var r=65535&(e=Number(e)),o=65535&(t=Number(t));return r*o+((e>>>16&65535)*o+r*(t>>>16&65535)<<16>>>0)|0},$jscomp.math.sign=function(e){return 0===(e=Number(e))||isNaN(e)?e:0<e?1:-1},$jscomp.math.log10=function(e){return Math.log(e)/Math.LN10},$jscomp.math.log2=function(e){return Math.log(e)/Math.LN2},$jscomp.math.log1p=function(e){if(.25>(e=Number(e))&&-.25<e){for(var t=e,r=1,o=e,n=0,s=1;n!=o;)o=(n=o)+(s*=-1)*(t*=e)/++r;return o}return Math.log(1+e)},$jscomp.math.expm1=function(e){if(.25>(e=Number(e))&&-.25<e){for(var t=e,r=1,o=e,n=0;n!=o;)o=(n=o)+(t*=e/++r);return o}return Math.exp(e)-1},$jscomp.math.cosh=function(e){return e=Number(e),(Math.exp(e)+Math.exp(-e))/2},$jscomp.math.sinh=function(e){return 0===(e=Number(e))?e:(Math.exp(e)-Math.exp(-e))/2},$jscomp.math.tanh=function(e){if(0===(e=Number(e)))return e;var t=(1-(t=Math.exp(-2*Math.abs(e))))/(1+t);return 0>e?-t:t},$jscomp.math.acosh=function(e){return e=Number(e),Math.log(e+Math.sqrt(e*e-1))},$jscomp.math.asinh=function(e){if(0===(e=Number(e)))return e;var t=Math.log(Math.abs(e)+Math.sqrt(e*e+1));return 0>e?-t:t},$jscomp.math.atanh=function(e){return e=Number(e),($jscomp.math.log1p(e)-$jscomp.math.log1p(-e))/2},$jscomp.math.hypot=function(e,t,r){e=Number(e),t=Number(t);var o,n,s,i=Math.max(Math.abs(e),Math.abs(t));for(o=2;o<arguments.length;o++)i=Math.max(i,Math.abs(arguments[o]));if(1e100<i||1e-100>i){for(s=(e/=i)*e+(t/=i)*t,o=2;o<arguments.length;o++)s+=(n=Number(arguments[o])/i)*n;return Math.sqrt(s)*i}for(s=e*e+t*t,o=2;o<arguments.length;o++)s+=(n=Number(arguments[o]))*n;return Math.sqrt(s)},$jscomp.math.trunc=function(e){if(e=Number(e),isNaN(e)||1/0===e||-1/0===e||0===e)return e;var t=Math.floor(Math.abs(e));return 0>e?-t:t},$jscomp.math.cbrt=function(e){if(0===e)return e;e=Number(e);var t=Math.pow(Math.abs(e),1/3);return 0>e?-t:t},$jscomp.number=$jscomp.number||{},$jscomp.number.isFinite=function(e){return"number"==typeof e&&(!isNaN(e)&&1/0!==e&&-1/0!==e)},$jscomp.number.isInteger=function(e){return!!$jscomp.number.isFinite(e)&&e===Math.floor(e)},$jscomp.number.isNaN=function(e){return"number"==typeof e&&isNaN(e)},$jscomp.number.isSafeInteger=function(e){return $jscomp.number.isInteger(e)&&Math.abs(e)<=$jscomp.number.MAX_SAFE_INTEGER},$jscomp.number.EPSILON=Math.pow(2,-52),$jscomp.number.MAX_SAFE_INTEGER=9007199254740991,$jscomp.number.MIN_SAFE_INTEGER=-9007199254740991,$jscomp.object=$jscomp.object||{},$jscomp.object.assign=function(e,t){for(var r=1;r<arguments.length;r++){var o=arguments[r];if(o)for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},$jscomp.object.is=function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},$jscomp.ASSUME_NO_NATIVE_SET=!1,$jscomp.Set$isConformant=function(){if($jscomp.ASSUME_NO_NATIVE_SET)return!1;var e=$jscomp.global.Set;if(!e||!e.prototype.entries||"function"!=typeof Object.seal)return!1;try{var t=Object.seal({x:4}),r=new e($jscomp.makeIterator([t]));if(!r.has(t)||1!=r.size||r.add(t)!=r||1!=r.size||r.add({x:4})!=r||2!=r.size)return!1;var o=r.entries(),n=o.next();return!n.done&&n.value[0]==t&&n.value[1]==t&&(!(n=o.next()).done&&n.value[0]!=t&&4==n.value[0].x&&n.value[1]==n.value[0]&&o.next().done)}catch(e){return!1}},$jscomp.Set=function(e){if(this.map_=new $jscomp.Map,e){e=$jscomp.makeIterator(e);for(var t;!(t=e.next()).done;)this.add(t.value)}this.size=this.map_.size},$jscomp.Set.prototype.add=function(e){return this.map_.set(e,e),this.size=this.map_.size,this},$jscomp.Set.prototype.delete=function(e){return e=this.map_.delete(e),this.size=this.map_.size,e},$jscomp.Set.prototype.clear=function(){this.map_.clear(),this.size=0},$jscomp.Set.prototype.has=function(e){return this.map_.has(e)},$jscomp.Set.prototype.entries=function(){return this.map_.entries()},$jscomp.Set.prototype.values=function(){return this.map_.values()},$jscomp.Set.prototype.forEach=function(e,t){var r=this;this.map_.forEach(function(o){return e.call(t,o,o,r)})},$jscomp.Set$install=function(){$jscomp.Map$install(),$jscomp.Set$isConformant()?$jscomp.Set=$jscomp.global.Set:($jscomp.initSymbol(),$jscomp.initSymbolIterator(),$jscomp.Set.prototype[Symbol.iterator]=$jscomp.Set.prototype.values,$jscomp.Set$install=function(){})},$jscomp.string=$jscomp.string||{},$jscomp.checkStringArgs=function(e,t,r){if(null==e)throw new TypeError("The 'this' value for String.prototype."+r+" must not be null or undefined");if(t instanceof RegExp)throw new TypeError("First argument to String.prototype."+r+" must not be a regular expression");return e+""},$jscomp.string.fromCodePoint=function(e){for(var t="",r=0;r<arguments.length;r++){var o=Number(arguments[r]);if(0>o||1114111<o||o!==Math.floor(o))throw new RangeError("invalid_code_point "+o);65535>=o?t+=String.fromCharCode(o):(o-=65536,t+=String.fromCharCode(o>>>10&1023|55296),t+=String.fromCharCode(1023&o|56320))}return t},$jscomp.string.repeat=function(e){var t=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279<e)throw new RangeError("Invalid count value");e|=0;for(var r="";e;)1&e&&(r+=t),(e>>>=1)&&(t+=t);return r},$jscomp.string.repeat$install=function(){String.prototype.repeat||(String.prototype.repeat=$jscomp.string.repeat)},$jscomp.string.codePointAt=function(e){var t=$jscomp.checkStringArgs(this,null,"codePointAt"),r=t.length;if(0<=(e=Number(e)||0)&&e<r){e|=0;var o=t.charCodeAt(e);return 55296>o||56319<o||e+1===r?o:56320>(e=t.charCodeAt(e+1))||57343<e?o:1024*(o-55296)+e+9216}},$jscomp.string.codePointAt$install=function(){String.prototype.codePointAt||(String.prototype.codePointAt=$jscomp.string.codePointAt)},$jscomp.string.includes=function(e,t){return-1!==$jscomp.checkStringArgs(this,e,"includes").indexOf(e,t||0)},$jscomp.string.includes$install=function(){String.prototype.includes||(String.prototype.includes=$jscomp.string.includes)},$jscomp.string.startsWith=function(e,t){var r=$jscomp.checkStringArgs(this,e,"startsWith");e+="";for(var o=r.length,n=e.length,s=Math.max(0,Math.min(0|t,r.length)),i=0;i<n&&s<o;)if(r[s++]!=e[i++])return!1;return i>=n},$jscomp.string.startsWith$install=function(){String.prototype.startsWith||(String.prototype.startsWith=$jscomp.string.startsWith)},$jscomp.string.endsWith=function(e,t){var r=$jscomp.checkStringArgs(this,e,"endsWith");e+="",void 0===t&&(t=r.length);for(var o=Math.max(0,Math.min(0|t,r.length)),n=e.length;0<n&&0<o;)if(r[--o]!=e[--n])return!1;return 0>=n},$jscomp.string.endsWith$install=function(){String.prototype.endsWith||(String.prototype.endsWith=$jscomp.string.endsWith)};var COMPILED=!0,goog=goog||{};goog.global=this,goog.isDef=function(e){return void 0!==e},goog.exportPath_=function(e,t,r){e=e.split("."),r=r||goog.global,e[0]in r||!r.execScript||r.execScript("var "+e[0]);for(var o;e.length&&(o=e.shift());)!e.length&&goog.isDef(t)?r[o]=t:r=r[o]?r[o]:r[o]={}},goog.define=function(e,t){var r=t;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,e)?r=goog.global.CLOSURE_UNCOMPILED_DEFINES[e]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,e)&&(r=goog.global.CLOSURE_DEFINES[e])),goog.exportPath_(e,r)},goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(!COMPILED&&goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,t){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var r=e;(r=r.substring(0,r.lastIndexOf(".")))&&!goog.getObjectByName(r);)goog.implicitNamespaces_[r]=!0}goog.exportPath_(e,t)},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if(!goog.isString(e)||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){if(!COMPILED)return goog.isProvided_(e)?e in goog.loadedModules_?goog.loadedModules_[e]:goog.getObjectByName(e):null},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&goog.isDefAndNotNull(goog.getObjectByName(e))},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,t){for(var r,o=e.split("."),n=t||goog.global;r=o.shift();){if(!goog.isDefAndNotNull(n[r]))return null;n=n[r]}return n},goog.globalize=function(e,t){var r,o=t||goog.global;for(r in e)o[r]=e[r]},goog.addDependency=function(e,t,r,o){if(goog.DEPENDENCIES_ENABLED){var n;e=e.replace(/\\/g,"/");for(var s=goog.dependencies_,i=0;n=t[i];i++)s.nameToPath[n]=e,s.pathIsModule[e]=!!o;for(o=0;t=r[o];o++)e in s.requires||(s.requires[e]={}),s.requires[e][t]=!0}},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(e),goog.isProvided_(e))return goog.isInModuleLoader_()?goog.module.getInternal_(e):null;if(goog.ENABLE_DEBUG_LOADER){var t=goog.getPathFromDeps_(e);if(t)return goog.writeScripts_(t),null}throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e)}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={pathIsModule:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var e=goog.global.document.getElementsByTagName("SCRIPT"),t=e.length-1;0<=t;--t){var r=e[t].src,o=-1==(o=r.lastIndexOf("?"))?r.length:o;if("base.js"==r.substr(o-7,7)){goog.basePath=r.substr(0,o-7);break}}},goog.importScript_=function(e,t){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(e,t)&&(goog.dependencies_.written[e]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.importModule_=function(e){goog.importScript_("",'goog.retrieveAndExecModule_("'+e+'");')&&(goog.dependencies_.written[e]=!0)},goog.queuedModules_=[],goog.wrapModule_=function(e,t){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(t+"\n//# sourceURL="+e+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+t+"\n;return exports});\n//# sourceURL="+e+"\n"},goog.loadQueuedModules_=function(){var e=goog.queuedModules_.length;if(0<e){var t=goog.queuedModules_;goog.queuedModules_=[];for(var r=0;r<e;r++)goog.maybeProcessDeferredPath_(t[r])}},goog.maybeProcessDeferredDep_=function(e){goog.isDeferredModule_(e)&&goog.allDepsAreAvailable_(e)&&(e=goog.getPathFromDeps_(e),goog.maybeProcessDeferredPath_(goog.basePath+e))},goog.isDeferredModule_=function(e){return!(!(e=goog.getPathFromDeps_(e))||!goog.dependencies_.pathIsModule[e])&&goog.basePath+e in goog.dependencies_.deferred},goog.allDepsAreAvailable_=function(e){if((e=goog.getPathFromDeps_(e))&&e in goog.dependencies_.requires)for(var t in goog.dependencies_.requires[e])if(!goog.isProvided_(t)&&!goog.isDeferredModule_(t))return!1;return!0},goog.maybeProcessDeferredPath_=function(e){if(e in goog.dependencies_.deferred){var t=goog.dependencies_.deferred[e];delete goog.dependencies_.deferred[e],goog.globalEval(t)}},goog.loadModuleFromUrl=function(e){goog.retrieveAndExecModule_(e)},goog.loadModule=function(e){var t=goog.moduleLoaderState_;try{var r;if(goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1},goog.isFunction(e))r=e.call(goog.global,{});else{if(!goog.isString(e))throw Error("Invalid module definition");r=goog.loadModuleFromSource_.call(goog.global,e)}var o=goog.moduleLoaderState_.moduleName;if(!goog.isString(o)||!o)throw Error('Invalid module name "'+o+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(o,r):goog.SEAL_MODULE_EXPORTS&&Object.seal&&Object.seal(r),goog.loadedModules_[o]=r}finally{goog.moduleLoaderState_=t}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.writeScriptSrcNode_=function(e){goog.global.document.write('<script type="text/javascript" src="'+e+'"><\/script>')},goog.appendScriptSrcNode_=function(e){var t=goog.global.document,r=t.createElement("script");r.type="text/javascript",r.src=e,r.defer=!1,r.async=!1,t.head.appendChild(r)},goog.writeScriptTag_=function(e,t){if(goog.inHtmlDocument_()){var r=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==r.readyState){if(/\bdeps.js$/.test(e))return!1;throw Error('Cannot write "'+e+'" after document load')}var o=goog.IS_OLD_IE_;return void 0===t?o?(o=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ",r.write('<script type="text/javascript" src="'+e+'"'+o+"><\/script>")):goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?goog.appendScriptSrcNode_(e):goog.writeScriptSrcNode_(e):r.write('<script type="text/javascript">'+t+"<\/script>"),!0}return!1},goog.lastNonModuleScriptIndex_=0,goog.onScriptLoad_=function(e,t){return"complete"==e.readyState&&goog.lastNonModuleScriptIndex_==t&&goog.loadQueuedModules_(),!0},goog.writeScripts_=function(e){var t=[],r={},o=goog.dependencies_;for(function e(n){if(!(n in o.written||n in o.visited)){if(o.visited[n]=!0,n in o.requires)for(var s in o.requires[n])if(!goog.isProvided_(s)){if(!(s in o.nameToPath))throw Error("Undefined nameToPath for "+s);e(o.nameToPath[s])}n in r||(r[n]=!0,t.push(n))}}(e),e=0;e<t.length;e++){var n=t[e];goog.dependencies_.written[n]=!0}var s=goog.moduleLoaderState_;for(goog.moduleLoaderState_=null,e=0;e<t.length;e++){if(!(n=t[e]))throw goog.moduleLoaderState_=s,Error("Undefined script input");o.pathIsModule[n]?goog.importModule_(goog.basePath+n):goog.importScript_(goog.basePath+n)}goog.moduleLoaderState_=s},goog.getPathFromDeps_=function(e){return e in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[e]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")),goog.normalizePath_=function(e){e=e.split("/");for(var t=0;t<e.length;)"."==e[t]?e.splice(t,1):t&&".."==e[t]&&e[t-1]&&".."!=e[t-1]?e.splice(--t,2):t++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);var t=new goog.global.XMLHttpRequest;return t.open("get",e,!1),t.send(),t.responseText},goog.retrieveAndExecModule_=function(e){if(!COMPILED){var t=e;e=goog.normalizePath_(e);var r=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_,o=goog.loadFileSync_(e);if(null==o)throw Error("load of "+e+"failed");o=goog.wrapModule_(e,o),goog.IS_OLD_IE_?(goog.dependencies_.deferred[t]=o,goog.queuedModules_.push(t)):r(e,o)}},goog.typeOf=function(e){var t=typeof e;if("object"==t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var r=Object.prototype.toString.call(e);if("[object Window]"==r)return"object";if("[object Array]"==r||"number"==typeof e.length&&void 0!==e.splice&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==r||void 0!==e.call&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==t&&void 0===e.call)return"object";return t},goog.isNull=function(e){return null===e},goog.isDefAndNotNull=function(e){return null!=e},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var t=goog.typeOf(e);return"array"==t||"object"==t&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isString=function(e){return"string"==typeof e},goog.isBoolean=function(e){return"boolean"==typeof e},goog.isNumber=function(e){return"number"==typeof e},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var t=typeof e;return"object"==t&&null!=e||"function"==t},goog.getUid=function(e){return e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(e){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){if("object"==(r=goog.typeOf(e))||"array"==r){if(e.clone)return e.clone();var t,r="array"==r?[]:{};for(t in e)r[t]=goog.cloneObject(e[t]);return r}return e},goog.bindNative_=function(e,t,r){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,r){if(!e)throw Error();if(2<arguments.length){var o=Array.prototype.slice.call(arguments,2);return function(){var r=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(r,o),e.apply(t,r)}}return function(){return e.apply(t,arguments)}},goog.bind=function(e,t,r){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}},goog.mixin=function(e,t){for(var r in t)e[r]=t[r]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_)if(goog.global.eval("var _evalTest_ = 1;"),void 0!==goog.global._evalTest_){try{delete goog.global._evalTest_}catch(e){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1;if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,r=t.createElement("SCRIPT");r.type="text/javascript",r.defer=!1,r.appendChild(t.createTextNode(e)),t.body.appendChild(r),t.body.removeChild(r)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,t){var r=function(e){return goog.cssNameMapping_[e]||e},o=function(e){e=e.split("-");for(var t=[],o=0;o<e.length;o++)t.push(r(e[o]));return t.join("-")};o=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?r:o:function(e){return e};return t?e+"-"+o(t):o(e)},goog.setCssNameMapping=function(e,t){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=t},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(e,t){return t&&(e=e.replace(/\{\$([^}]+)}/g,function(e,r){return null!=t&&r in t?t[r]:e})),e},goog.getMsgWithFallback=function(e,t){return e},goog.exportSymbol=function(e,t,r){goog.exportPath_(e,t,r)},goog.exportProperty=function(e,t,r){e[t]=r},goog.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.base=function(e,r,o){for(var n=Array(arguments.length-2),s=2;s<arguments.length;s++)n[s-2]=arguments[s];return t.prototype[r].apply(e,n)}},goog.base=function(e,t,r){var o=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!o)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(o.superClass_){for(var n=Array(arguments.length-1),s=1;s<arguments.length;s++)n[s-1]=arguments[s];return o.superClass_.constructor.apply(e,n)}for(n=Array(arguments.length-2),s=2;s<arguments.length;s++)n[s-2]=arguments[s];s=!1;for(var i=e.constructor;i;i=i.superClass_&&i.superClass_.constructor)if(i.prototype[t]===o)s=!0;else if(s)return i.prototype[t].apply(e,n);if(e[t]===o)return e.constructor.prototype[t].apply(e,n);throw Error("goog.base called from a method of one name to a method of a different name")},goog.scope=function(e){e.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(e,t){var r=t.constructor,o=t.statics;return r&&r!=Object.prototype.constructor||(r=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),r=goog.defineClass.createSealingConstructor_(r,e),e&&goog.inherits(r,e),delete t.constructor,delete t.statics,goog.defineClass.applyProperties_(r.prototype,t),null!=o&&(o instanceof Function?o(r):goog.defineClass.applyProperties_(r,o)),r},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,t){if(goog.defineClass.SEAL_CLASS_INSTANCES&&Object.seal instanceof Function){if(t&&t.prototype&&t.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_])return e;var r=function(){var t=e.apply(this,arguments)||this;return t[goog.UID_PROPERTY_]=t[goog.UID_PROPERTY_],this.constructor===r&&Object.seal(t),t};return r}return e},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);for(var o=0;o<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;o++)r=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[o],Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},goog.tagUnsealableClass=function(e){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.string={},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=function(e,t){return 0==e.lastIndexOf(t,0)},goog.string.endsWith=function(e,t){var r=e.length-t.length;return 0<=r&&e.indexOf(t,r)==r},goog.string.caseInsensitiveStartsWith=function(e,t){return 0==goog.string.caseInsensitiveCompare(t,e.substr(0,t.length))},goog.string.caseInsensitiveEndsWith=function(e,t){return 0==goog.string.caseInsensitiveCompare(t,e.substr(e.length-t.length,t.length))},goog.string.caseInsensitiveEquals=function(e,t){return e.toLowerCase()==t.toLowerCase()},goog.string.subs=function(e,t){for(var r=e.split("%s"),o="",n=Array.prototype.slice.call(arguments,1);n.length&&1<r.length;)o+=r.shift()+n.shift();return o+r.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&" "<=e&&"~">=e||""<=e&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=function(e,t){var r=String(e).toLowerCase(),o=String(t).toLowerCase();return r<o?-1:r==o?0:1},goog.string.numberAwareCompare_=function(e,t,r){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var o=e.toLowerCase().match(r),n=t.toLowerCase().match(r),s=Math.min(o.length,n.length),i=0;i<s;i++){r=o[i];var a=n[i];if(r!=a)return e=parseInt(r,10),!isNaN(e)&&(t=parseInt(a,10),!isNaN(t)&&e-t)?e-t:r<a?-1:1}return o.length!=n.length?o.length-n.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=function(e,t){return e.replace(/(\r\n|\r|\n)/g,t?"<br />":"<br>")},goog.string.htmlEscape=function(e,t){if(t)e=e.replace(goog.string.AMP_RE_,"&amp;").replace(goog.string.LT_RE_,"&lt;").replace(goog.string.GT_RE_,"&gt;").replace(goog.string.QUOT_RE_,"&quot;").replace(goog.string.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.NULL_RE_,"&#0;"),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"&#101;"));else{if(!goog.string.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.AMP_RE_,"&amp;")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.LT_RE_,"&lt;")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.GT_RE_,"&gt;")),-1!=e.indexOf('"')&&(e=e.replace(goog.string.QUOT_RE_,"&quot;")),-1!=e.indexOf("'")&&(e=e.replace(goog.string.SINGLE_QUOTE_RE_,"&#39;")),-1!=e.indexOf("\0")&&(e=e.replace(goog.string.NULL_RE_,"&#0;")),goog.string.DETECT_DOUBLE_ESCAPING&&-1!=e.indexOf("e")&&(e=e.replace(goog.string.E_RE_,"&#101;"))}return e},goog.string.AMP_RE_=/&/g,goog.string.LT_RE_=/</g,goog.string.GT_RE_=/>/g,goog.string.QUOT_RE_=/"/g,goog.string.SINGLE_QUOTE_RE_=/'/g,goog.string.NULL_RE_=/\x00/g,goog.string.E_RE_=/e/g,goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var r,o={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};return r=t?t.createElement("div"):goog.global.document.createElement("div"),e.replace(goog.string.HTML_ENTITY_PATTERN_,function(e,t){var n=o[e];if(n)return n;if("#"==t.charAt(0)){var s=Number("0"+t.substr(1));isNaN(s)||(n=String.fromCharCode(s))}return n||(r.innerHTML=e+" ",n=r.firstChild.nodeValue.slice(0,-1)),o[e]=n})},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,function(e,t){switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if("#"==t.charAt(0)){var r=Number("0"+t.substr(1));if(!isNaN(r))return String.fromCharCode(r)}return e}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/  /g," &#160;"),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var r=t.length,o=0;o<r;o++){var n=1==r?t:t.charAt(o);if(e.charAt(0)==n&&e.charAt(e.length-1)==n)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,r){return r&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),r&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,r,o){if(r&&(e=goog.string.unescapeEntities(e)),o&&e.length>t){o>t&&(o=t);var n=e.length-o;e=e.substring(0,t-o)+"..."+e.substring(n)}else e.length>t&&(o=Math.floor(t/2),n=e.length-o,e=e.substring(0,o+t%2)+"..."+e.substring(n));return r&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var t=['"'],r=0;r<e.length;r++){var o=e.charAt(r),n=o.charCodeAt(0);t[r+1]=goog.string.specialEscapeChars_[o]||(31<n&&127>n?o:goog.string.escapeChar(o))}return t.push('"'),t.join("")},goog.string.escapeString=function(e){for(var t=[],r=0;r<e.length;r++)t[r]=goog.string.escapeChar(e.charAt(r));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t,r=e.charCodeAt(0);return 31<r&&127>r?t=e:(256>r?(t="\\x",(16>r||256<r)&&(t+="0")):(t="\\u",4096>r&&(t+="0")),t+=r.toString(16).toUpperCase()),goog.string.jsEscapeCache_[e]=t},goog.string.contains=function(e,t){return-1!=e.indexOf(t)},goog.string.caseInsensitiveContains=function(e,t){return goog.string.contains(e.toLowerCase(),t.toLowerCase())},goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,r){var o=e;return 0<=t&&t<e.length&&0<r&&(o=e.substr(0,t)+e.substr(t+r,e.length-t-r)),o},goog.string.remove=function(e,t){var r=new RegExp(goog.string.regExpEscape(t),"");return e.replace(r,"")},goog.string.removeAll=function(e,t){var r=new RegExp(goog.string.regExpEscape(t),"g");return e.replace(r,"")},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,r){return-1==(r=(e=goog.isDef(r)?e.toFixed(r):String(e)).indexOf("."))&&(r=e.length),goog.string.repeat("0",Math.max(0,t-r))+e},goog.string.makeSafe=function(e){return null==e?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=function(e,t){for(var r=0,o=goog.string.trim(String(e)).split("."),n=goog.string.trim(String(t)).split("."),s=Math.max(o.length,n.length),i=0;0==r&&i<s;i++){var a=o[i]||"",g=n[i]||"",p=RegExp("(\\d*)(\\D*)","g"),u=RegExp("(\\d*)(\\D*)","g");do{var l=p.exec(a)||["","",""],c=u.exec(g)||["","",""];if(0==l[0].length&&0==c[0].length)break;r=0==l[1].length?0:parseInt(l[1],10);var d=0==c[1].length?0:parseInt(c[1],10);r=goog.string.compareElements_(r,d)||goog.string.compareElements_(0==l[2].length,0==c[2].length)||goog.string.compareElements_(l[2],c[2])}while(0==r)}return r},goog.string.compareElements_=function(e,t){return e<t?-1:e>t?1:0},goog.string.hashCode=function(e){for(var t=0,r=0;r<e.length;++r)t=31*t+e.charCodeAt(r)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return 0==t&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,function(e,t){return t.toUpperCase()})},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){var r=goog.isString(t)?goog.string.regExpEscape(t):"\\s";return e.replace(new RegExp("(^"+(r?"|["+r+"]+":"")+")([a-z])","g"),function(e,t,r){return t+r.toUpperCase()})},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),goog.isString(e)?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,r){e=e.split(t);for(var o=[];0<r&&e.length;)o.push(e.shift()),r--;return e.length&&o.push(e.join(t)),o},goog.string.editDistance=function(e,t){var r=[],o=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var n=0;n<t.length+1;n++)r[n]=n;for(n=0;n<e.length;n++){o[0]=n+1;for(var s=0;s<t.length;s++)o[s+1]=Math.min(o[s]+1,r[s+1]+1,r[s]+Number(e[n]!=t[s]));for(s=0;s<r.length;s++)r[s]=o[s]}return o[t.length]},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,t){t.unshift(e),goog.debug.Error.call(this,goog.string.subs.apply(null,t)),t.shift(),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.doAssertFailure_=function(e,t,r,o){var n="Assertion failed";if(r){n=n+": "+r;var s=o}else e&&(n+=": "+e,s=t);e=new goog.asserts.AssertionError(""+n,s||[]),goog.asserts.errorHandler_(e)},goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,t){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(e)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isString(e)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(e)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,t,r){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,t,r,o){return!goog.asserts.ENABLE_ASSERTS||e instanceof t||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(t),goog.asserts.getType_(e)],r,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e};var jspb={Map:function(e,t){this.arr_=e,this.valueCtor_=t,this.map_={},this.arrClean=!0,0<this.arr_.length&&this.loadFromArray_()}},a,b;jspb.Map.prototype.loadFromArray_=function(){for(var e=0;e<this.arr_.length;e++){var t=this.arr_[e],r=t[0];this.map_[r.toString()]=new jspb.Map.Entry_(r,t[1])}this.arrClean=!0},jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var e,t=this.map_;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var r=t[e].valueWrapper;r&&r.toArray()}}}else{for(this.arr_.length=0,(t=this.stringKeys_()).sort(),e=0;e<t.length;e++){var o=this.map_[t[e]];(r=o.valueWrapper)&&r.toArray(),this.arr_.push([o.key,o.value])}this.arrClean=!0}return this.arr_},jspb.Map.prototype.toObject=function(e,t){for(var r=this.toArray(),o=[],n=0;n<r.length;n++){var s=this.map_[r[n][0].toString()];this.wrapEntry_(s);var i=s.valueWrapper;i?(goog.asserts.assert(t),o.push([s.key,t(e,i)])):o.push([s.key,s.value])}return o},jspb.Map.fromObject=function(e,t,r){t=new jspb.Map([],t);for(var o=0;o<e.length;o++){var n=e[o][0],s=r(e[o][1]);t.set(n,s)}return t},jspb.Map.ArrayIteratorIterable_=function(e){this.idx_=0,this.arr_=e},jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}},$jscomp.initSymbol(),"undefined"!=typeof Symbol&&($jscomp.initSymbol(),$jscomp.initSymbolIterator(),jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this}),jspb.Map.prototype.getLength=function(){return this.stringKeys_().length},jspb.Map.prototype.clear=function(){this.map_={},this.arrClean=!1},jspb.Map.prototype.del=function(e){e=e.toString();var t=this.map_.hasOwnProperty(e);return delete this.map_[e],this.arrClean=!1,t},jspb.Map.prototype.getEntryList=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++){var o=this.map_[t[r]];e.push([o.key,o.value])}return e},jspb.Map.prototype.entries=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++){var o=this.map_[t[r]];e.push([o.key,this.wrapEntry_(o)])}return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.keys=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++)e.push(this.map_[t[r]].key);return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.values=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++)e.push(this.wrapEntry_(this.map_[t[r]]));return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.forEach=function(e,t){var r=this.stringKeys_();r.sort();for(var o=0;o<r.length;o++){var n=this.map_[r[o]];e.call(t,this.wrapEntry_(n),n.key,this)}},jspb.Map.prototype.set=function(e,t){var r=new jspb.Map.Entry_(e);return this.valueCtor_?(r.valueWrapper=t,r.value=t.toArray()):r.value=t,this.map_[e.toString()]=r,this.arrClean=!1,this},jspb.Map.prototype.wrapEntry_=function(e){return this.valueCtor_?(e.valueWrapper||(e.valueWrapper=new this.valueCtor_(e.value)),e.valueWrapper):e.value},jspb.Map.prototype.get=function(e){if(e=this.map_[e.toString()])return this.wrapEntry_(e)},jspb.Map.prototype.has=function(e){return e.toString()in this.map_},jspb.Map.prototype.serializeBinary=function(e,t,r,o,n){var s=this.stringKeys_();s.sort();for(var i=0;i<s.length;i++){var a=this.map_[s[i]];t.beginSubMessage(e),r.call(t,1,a.key),this.valueCtor_?o.call(t,2,this.wrapEntry_(a),n):o.call(t,2,a.value),t.endSubMessage()}},jspb.Map.deserializeBinary=function(e,t,r,o,n){for(var s=void 0,i=void 0;t.nextField()&&!t.isEndGroup();){var a=t.getFieldNumber();1==a?s=r.call(t):2==a&&(e.valueCtor_?(i=new e.valueCtor_,o.call(t,i,n)):i=o.call(t))}goog.asserts.assert(void 0!=s),goog.asserts.assert(void 0!=i),e.set(s,i)},jspb.Map.prototype.stringKeys_=function(){var e,t=this.map_,r=[];for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.push(e);return r},jspb.Map.Entry_=function(e,t){this.key=e,this.value=t,this.valueWrapper=void 0},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=!1,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.indexOf.call(e,t,r)}:function(e,t,r){if(r=null==r?0:0>r?Math.max(0,e.length+r):r,goog.isString(e))return goog.isString(t)&&1==t.length?e.indexOf(t,r):-1;for(;r<e.length;r++)if(r in e&&e[r]===t)return r;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.lastIndexOf.call(e,t,null==r?e.length-1:r)}:function(e,t,r){if(0>(r=null==r?e.length-1:r)&&(r=Math.max(0,e.length+r)),goog.isString(e))return goog.isString(t)&&1==t.length?e.lastIndexOf(t,r):-1;for(;0<=r;r--)if(r in e&&e[r]===t)return r;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,t,r){goog.asserts.assert(null!=e.length),Array.prototype.forEach.call(e,t,r)}:function(e,t,r){for(var o=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<o;s++)s in n&&t.call(r,n[s],s,e)},goog.array.forEachRight=function(e,t,r){var o=e.length,n=goog.isString(e)?e.split(""):e;for(o=o-1;0<=o;--o)o in n&&t.call(r,n[o],o,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.filter.call(e,t,r)}:function(e,t,r){for(var o=e.length,n=[],s=0,i=goog.isString(e)?e.split(""):e,a=0;a<o;a++)if(a in i){var g=i[a];t.call(r,g,a,e)&&(n[s++]=g)}return n},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.map.call(e,t,r)}:function(e,t,r){for(var o=e.length,n=Array(o),s=goog.isString(e)?e.split(""):e,i=0;i<o;i++)i in s&&(n[i]=t.call(r,s[i],i,e));return n},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,t,r,o){return goog.asserts.assert(null!=e.length),o&&(t=goog.bind(t,o)),Array.prototype.reduce.call(e,t,r)}:function(e,t,r,o){var n=r;return goog.array.forEach(e,function(r,s){n=t.call(o,n,r,s,e)}),n},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,t,r,o){return goog.asserts.assert(null!=e.length),goog.asserts.assert(null!=t),o&&(t=goog.bind(t,o)),Array.prototype.reduceRight.call(e,t,r)}:function(e,t,r,o){var n=r;return goog.array.forEachRight(e,function(r,s){n=t.call(o,n,r,s,e)}),n},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.some.call(e,t,r)}:function(e,t,r){for(var o=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<o;s++)if(s in n&&t.call(r,n[s],s,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.every.call(e,t,r)}:function(e,t,r){for(var o=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<o;s++)if(s in n&&!t.call(r,n[s],s,e))return!1;return!0},goog.array.count=function(e,t,r){var o=0;return goog.array.forEach(e,function(e,n,s){t.call(r,e,n,s)&&++o},r),o},goog.array.find=function(e,t,r){return 0>(t=goog.array.findIndex(e,t,r))?null:goog.isString(e)?e.charAt(t):e[t]},goog.array.findIndex=function(e,t,r){for(var o=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<o;s++)if(s in n&&t.call(r,n[s],s,e))return s;return-1},goog.array.findRight=function(e,t,r){return 0>(t=goog.array.findIndexRight(e,t,r))?null:goog.isString(e)?e.charAt(t):e[t]},goog.array.findIndexRight=function(e,t,r){var o=e.length,n=goog.isString(e)?e.split(""):e;for(o=o-1;0<=o;o--)if(o in n&&t.call(r,n[o],o,e))return o;return-1},goog.array.contains=function(e,t){return 0<=goog.array.indexOf(e,t)},goog.array.isEmpty=function(e){return 0==e.length},goog.array.clear=function(e){if(!goog.isArray(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0},goog.array.insert=function(e,t){goog.array.contains(e,t)||e.push(t)},goog.array.insertAt=function(e,t,r){goog.array.splice(e,r,0,t)},goog.array.insertArrayAt=function(e,t,r){goog.partial(goog.array.splice,e,r,0).apply(null,t)},goog.array.insertBefore=function(e,t,r){var o;2==arguments.length||0>(o=goog.array.indexOf(e,r))?e.push(t):goog.array.insertAt(e,t,o)},goog.array.remove=function(e,t){var r,o=goog.array.indexOf(e,t);return(r=0<=o)&&goog.array.removeAt(e,o),r},goog.array.removeAt=function(e,t){return goog.asserts.assert(null!=e.length),1==Array.prototype.splice.call(e,t,1).length},goog.array.removeIf=function(e,t,r){return 0<=(t=goog.array.findIndex(e,t,r))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAllIf=function(e,t,r){var o=0;return goog.array.forEachRight(e,function(n,s){t.call(r,n,s,e)&&goog.array.removeAt(e,s)&&o++}),o},goog.array.concat=function(e){return Array.prototype.concat.apply(Array.prototype,arguments)},goog.array.join=function(e){return Array.prototype.concat.apply(Array.prototype,arguments)},goog.array.toArray=function(e){var t=e.length;if(0<t){for(var r=Array(t),o=0;o<t;o++)r[o]=e[o];return r}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,t){for(var r=1;r<arguments.length;r++){var o=arguments[r];if(goog.isArrayLike(o)){var n=e.length||0,s=o.length||0;e.length=n+s;for(var i=0;i<s;i++)e[n+i]=o[i]}else e.push(o)}},goog.array.splice=function(e,t,r,o){return goog.asserts.assert(null!=e.length),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,t,r){return goog.asserts.assert(null!=e.length),2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,r)},goog.array.removeDuplicates=function(e,t,r){t=t||e;var o=function(e){return goog.isObject(e)?"o"+goog.getUid(e):(typeof e).charAt(0)+e};r=r||o;o={};for(var n=0,s=0;s<e.length;){var i=e[s++],a=r(i);Object.prototype.hasOwnProperty.call(o,a)||(o[a]=!0,t[n++]=i)}t.length=n},goog.array.binarySearch=function(e,t,r){return goog.array.binarySearch_(e,r||goog.array.defaultCompare,!1,t)},goog.array.binarySelect=function(e,t,r){return goog.array.binarySearch_(e,t,!0,void 0,r)},goog.array.binarySearch_=function(e,t,r,o,n){for(var s,i=0,a=e.length;i<a;){var g,p=i+a>>1;0<(g=r?t.call(n,e[p],p,e):t(o,e[p]))?i=p+1:(a=p,s=!g)}return s?i:~i},goog.array.sort=function(e,t){e.sort(t||goog.array.defaultCompare)},goog.array.stableSort=function(e,t){for(var r=0;r<e.length;r++)e[r]={index:r,value:e[r]};var o=t||goog.array.defaultCompare;for(goog.array.sort(e,function(e,t){return o(e.value,t.value)||e.index-t.index}),r=0;r<e.length;r++)e[r]=e[r].value},goog.array.sortByKey=function(e,t,r){var o=r||goog.array.defaultCompare;goog.array.sort(e,function(e,r){return o(t(e),t(r))})},goog.array.sortObjectsByKey=function(e,t,r){goog.array.sortByKey(e,function(e){return e[t]},r)},goog.array.isSorted=function(e,t,r){t=t||goog.array.defaultCompare;for(var o=1;o<e.length;o++){var n=t(e[o-1],e[o]);if(0<n||0==n&&r)return!1}return!0},goog.array.equals=function(e,t,r){if(!goog.isArrayLike(e)||!goog.isArrayLike(t)||e.length!=t.length)return!1;var o=e.length;r=r||goog.array.defaultCompareEquality;for(var n=0;n<o;n++)if(!r(e[n],t[n]))return!1;return!0},goog.array.compare3=function(e,t,r){r=r||goog.array.defaultCompare;for(var o=Math.min(e.length,t.length),n=0;n<o;n++){var s=r(e[n],t[n]);if(0!=s)return s}return goog.array.defaultCompare(e.length,t.length)},goog.array.defaultCompare=function(e,t){return e>t?1:e<t?-1:0},goog.array.inverseDefaultCompare=function(e,t){return-goog.array.defaultCompare(e,t)},goog.array.defaultCompareEquality=function(e,t){return e===t},goog.array.binaryInsert=function(e,t,r){return 0>(r=goog.array.binarySearch(e,t,r))&&(goog.array.insertAt(e,t,-(r+1)),!0)},goog.array.binaryRemove=function(e,t,r){return 0<=(t=goog.array.binarySearch(e,t,r))&&goog.array.removeAt(e,t)},goog.array.bucket=function(e,t,r){for(var o={},n=0;n<e.length;n++){var s=e[n],i=t.call(r,s,n,e);goog.isDef(i)&&(o[i]||(o[i]=[])).push(s)}return o},goog.array.toObject=function(e,t,r){var o={};return goog.array.forEach(e,function(n,s){o[t.call(r,n,s,e)]=n}),o},goog.array.range=function(e,t,r){var o=[],n=0,s=e;if(r=r||1,void 0!==t&&(n=e,s=t),0>r*(s-n))return[];if(0<r)for(e=n;e<s;e+=r)o.push(e);else for(e=n;e>s;e+=r)o.push(e);return o},goog.array.repeat=function(e,t){for(var r=[],o=0;o<t;o++)r[o]=e;return r},goog.array.flatten=function(e){for(var t=[],r=0;r<arguments.length;r++){var o=arguments[r];if(goog.isArray(o))for(var n=0;n<o.length;n+=8192)for(var s=goog.array.slice(o,n,n+8192),i=(s=goog.array.flatten.apply(null,s),0);i<s.length;i++)t.push(s[i]);else t.push(o)}return t},goog.array.rotate=function(e,t){return goog.asserts.assert(null!=e.length),e.length&&(0<(t%=e.length)?Array.prototype.unshift.apply(e,e.splice(-t,t)):0>t&&Array.prototype.push.apply(e,e.splice(0,-t))),e},goog.array.moveItem=function(e,t,r){goog.asserts.assert(0<=t&&t<e.length),goog.asserts.assert(0<=r&&r<e.length),t=Array.prototype.splice.call(e,t,1),Array.prototype.splice.call(e,r,0,t[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var t=[],r=arguments[0].length,o=1;o<arguments.length;o++)arguments[o].length<r&&(r=arguments[o].length);for(o=0;o<r;o++){for(var n=[],s=0;s<arguments.length;s++)n.push(arguments[s][o]);t.push(n)}return t},goog.array.shuffle=function(e,t){for(var r=t||Math.random,o=e.length-1;0<o;o--){var n=Math.floor(r()*(o+1)),s=e[o];e[o]=e[n],e[n]=s}},goog.array.copyByIndex=function(e,t){var r=[];return goog.array.forEach(t,function(t){r.push(e[t])}),r},goog.crypt={},goog.crypt.stringToByteArray=function(e){for(var t=[],r=0,o=0;o<e.length;o++){for(var n=e.charCodeAt(o);255<n;)t[r++]=255&n,n>>=8;t[r++]=n}return t},goog.crypt.byteArrayToString=function(e){if(8192>=e.length)return String.fromCharCode.apply(null,e);for(var t="",r=0;r<e.length;r+=8192){var o=goog.array.slice(e,r,r+8192);t=t+String.fromCharCode.apply(null,o)}return t},goog.crypt.byteArrayToHex=function(e){return goog.array.map(e,function(e){return 1<(e=e.toString(16)).length?e:"0"+e}).join("")},goog.crypt.hexToByteArray=function(e){goog.asserts.assert(0==e.length%2,"Key string length must be multiple of 2");for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substring(r,r+2),16));return t},goog.crypt.stringToUtf8ByteArray=function(e){for(var t=[],r=0,o=0;o<e.length;o++){var n=e.charCodeAt(o);128>n?t[r++]=n:(2048>n?t[r++]=n>>6|192:(55296==(64512&n)&&o+1<e.length&&56320==(64512&e.charCodeAt(o+1))?(n=65536+((1023&n)<<10)+(1023&e.charCodeAt(++o)),t[r++]=n>>18|240,t[r++]=n>>12&63|128):t[r++]=n>>12|224,t[r++]=n>>6&63|128),t[r++]=63&n|128)}return t},goog.crypt.utf8ByteArrayToString=function(e){for(var t=[],r=0,o=0;r<e.length;){if(128>(i=e[r++]))t[o++]=String.fromCharCode(i);else if(191<i&&224>i){var n=e[r++];t[o++]=String.fromCharCode((31&i)<<6|63&n)}else if(239<i&&365>i){n=e[r++];var s=e[r++],i=((7&i)<<18|(63&n)<<12|(63&s)<<6|63&e[r++])-65536;t[o++]=String.fromCharCode(55296+(i>>10)),t[o++]=String.fromCharCode(56320+(1023&i))}else n=e[r++],s=e[r++],t[o++]=String.fromCharCode((15&i)<<12|(63&n)<<6|63&s)}return t.join("")},goog.crypt.xorByteArray=function(e,t){goog.asserts.assert(e.length==t.length,"XOR array lengths must match");for(var r=[],o=0;o<e.length;o++)r.push(e[o]^t[o]);return r},goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.contains(t,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.caseInsensitiveContains(t,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var t,r=RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g"),o=[];t=r.exec(e);)o.push([t[1],t[2],t[3]||void 0]);return o},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),t="";return goog.labs.userAgent.platform.isWindows()?t=(e=(t=/Windows (?:NT|Phone) ([0-9.]+)/).exec(e))?e[1]:"0.0":goog.labs.userAgent.platform.isIos()?t=(e=(t=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/).exec(e))&&e[1].replace(/_/g,"."):goog.labs.userAgent.platform.isMacintosh()?t=(e=(t=/Mac OS X ([0-9_.]+)/).exec(e))?e[1].replace(/_/g,"."):"10":goog.labs.userAgent.platform.isAndroid()?t=(e=(t=/Android\s+([^\);]+)(\)|;)/).exec(e))&&e[1]:goog.labs.userAgent.platform.isChromeOS()&&(t=(e=(t=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/).exec(e))&&e[1]),t||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.object={},goog.object.forEach=function(e,t,r){for(var o in e)t.call(r,e[o],o,e)},goog.object.filter=function(e,t,r){var o,n={};for(o in e)t.call(r,e[o],o,e)&&(n[o]=e[o]);return n},goog.object.map=function(e,t,r){var o,n={};for(o in e)n[o]=t.call(r,e[o],o,e);return n},goog.object.some=function(e,t,r){for(var o in e)if(t.call(r,e[o],o,e))return!0;return!1},goog.object.every=function(e,t,r){for(var o in e)if(!t.call(r,e[o],o,e))return!1;return!0},goog.object.getCount=function(e){var t,r=0;for(t in e)r++;return r},goog.object.getAnyKey=function(e){for(var t in e)return t},goog.object.getAnyValue=function(e){for(var t in e)return e[t]},goog.object.contains=function(e,t){return goog.object.containsValue(e,t)},goog.object.getValues=function(e){var t,r=[],o=0;for(t in e)r[o++]=e[t];return r},goog.object.getKeys=function(e){var t,r=[],o=0;for(t in e)r[o++]=t;return r},goog.object.getValueByKeys=function(e,t){for(var r=(o=goog.isArrayLike(t))?t:arguments,o=o?0:1;o<r.length&&(e=e[r[o]],goog.isDef(e));o++);return e},goog.object.containsKey=function(e,t){return null!==e&&t in e},goog.object.containsValue=function(e,t){for(var r in e)if(e[r]==t)return!0;return!1},goog.object.findKey=function(e,t,r){for(var o in e)if(t.call(r,e[o],o,e))return o},goog.object.findValue=function(e,t,r){return(t=goog.object.findKey(e,t,r))&&e[t]},goog.object.isEmpty=function(e){for(var t in e)return!1;return!0},goog.object.clear=function(e){for(var t in e)delete e[t]},goog.object.remove=function(e,t){var r;return(r=t in e)&&delete e[t],r},goog.object.add=function(e,t,r){if(null!==e&&t in e)throw Error('The object already contains the key "'+t+'"');goog.object.set(e,t,r)},goog.object.get=function(e,t,r){return null!==e&&t in e?e[t]:r},goog.object.set=function(e,t,r){e[t]=r},goog.object.setIfUndefined=function(e,t,r){return t in e?e[t]:e[t]=r},goog.object.setWithReturnValueIfNotSet=function(e,t,r){return t in e?e[t]:(r=r(),e[t]=r)},goog.object.equals=function(e,t){for(var r in e)if(!(r in t)||e[r]!==t[r])return!1;for(r in t)if(!(r in e))return!1;return!0},goog.object.clone=function(e){var t,r={};for(t in e)r[t]=e[t];return r},goog.object.unsafeClone=function(e){if("object"==(r=goog.typeOf(e))||"array"==r){if(goog.isFunction(e.clone))return e.clone();var t,r="array"==r?[]:{};for(t in e)r[t]=goog.object.unsafeClone(e[t]);return r}return e},goog.object.transpose=function(e){var t,r={};for(t in e)r[e[t]]=t;return r},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,t){for(var r,o,n=1;n<arguments.length;n++){for(r in o=arguments[n])e[r]=o[r];for(var s=0;s<goog.object.PROTOTYPE_FIELDS_.length;s++)r=goog.object.PROTOTYPE_FIELDS_[s],Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}},goog.object.create=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(t%2)throw Error("Uneven number of arguments");for(var r={},o=0;o<t;o+=2)r[arguments[o]]=arguments[o+1];return r},goog.object.createSet=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var r={},o=0;o<t;o++)r[arguments[o]]=!0;return r},goog.object.createImmutableView=function(e){var t=e;return Object.isFrozen&&!Object.isFrozen(e)&&(t=Object.create(e),Object.freeze(t)),t},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")||goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchOpera_()&&!goog.labs.userAgent.browser.matchEdge_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(e){return e=goog.array.find(e,o),r[e]||""}var t=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(t);t=goog.labs.userAgent.util.extractVersionTuples(t);var r={};goog.array.forEach(t,function(e){r[e[0]]=e[1]});var o=goog.partial(goog.object.containsKey,r);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera","OPR"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS"]):(t=t[2])&&t[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){if((t=/rv: *([\d\.]*)/.exec(e))&&t[1])return t[1];var t="",r=/MSIE +([\d\.]+)/.exec(e);if(r&&r[1])if(e=/Trident\/(\d.\d)/.exec(e),"7.0"==r[1])if(e&&e[1])switch(e[1]){case"4.0":t="8.0";break;case"5.0":t="9.0";break;case"6.0":t="10.0";break;case"7.0":t="11.0"}else t="7.0";else t=r[1];return t},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){if(t=goog.labs.userAgent.util.getUserAgent()){var e,t=goog.labs.userAgent.util.extractVersionTuples(t),r=goog.labs.userAgent.engine.getEngineTuple_(t);if(r)return"Gecko"==r[0]?goog.labs.userAgent.engine.getVersionForKey_(t,"Firefox"):r[1];if((t=t[0])&&(e=t[2])&&(e=/Trident\/([^\s;]+)/.exec(e)))return e[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var t=0;t<e.length;t++){var r=e[t];if("Edge"==r[0])return r}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,t){var r=goog.array.find(e,function(e){return t==e[0]});return r&&r[1]||""},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigator=function(){return goog.global.navigator||null},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigator();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh(),goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigator();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.operaVersion_=function(){var e=goog.global.opera.version;try{return e()}catch(t){return e}},goog.userAgent.determineVersion_=function(){if(goog.userAgent.OPERA&&goog.global.opera)return goog.userAgent.operaVersion_();var e="",t=goog.userAgent.getVersionRegexResult_();return t&&(e=t?t[1]:""),goog.userAgent.IE&&(t=goog.userAgent.getDocumentMode_())>parseFloat(e)?String(t):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv\:([^\);]+)(\)|;)/.exec(e):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(e):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(e):void 0},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,t){return goog.string.compareVersions(e,t)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.userAgent.isVersionOrHigherCache_[e]||(goog.userAgent.isVersionOrHigherCache_[e]=0<=goog.string.compareVersions(goog.userAgent.VERSION,e))},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=(a=goog.global.document,b=goog.userAgent.getDocumentMode_(),a&&goog.userAgent.IE?b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5):void 0),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.byteToCharMap_=null,goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.byteToCharMapWebSafe_=null,goog.crypt.base64.ENCODED_VALS_BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.ENCODED_VALS_BASE+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.ENCODED_VALS_BASE+"-_.",goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||"function"==typeof goog.global.btoa,goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&"function"==typeof goog.global.atob,goog.crypt.base64.encodeByteArray=function(e,t){goog.asserts.assert(goog.isArrayLike(e),"encodeByteArray takes an array as a parameter"),goog.crypt.base64.init_();for(var r=t?goog.crypt.base64.byteToCharMapWebSafe_:goog.crypt.base64.byteToCharMap_,o=[],n=0;n<e.length;n+=3){var s=e[n],i=n+1<e.length,a=i?e[n+1]:0,g=n+2<e.length,p=s>>2,u=(s=(3&s)<<4|a>>4,a=(15&a)<<2|(u=g?e[n+2]:0)>>6,63&u);g||(u=64,i||(a=64)),o.push(r[p],r[s],r[a],r[u])}return o.join("")},goog.crypt.base64.encodeString=function(e,t){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!t?goog.global.btoa(e):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(e),t)},goog.crypt.base64.decodeString=function(e,t){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!t)return goog.global.atob(e);var r="";return goog.crypt.base64.decodeStringInternal_(e,function(e){r+=String.fromCharCode(e)}),r},goog.crypt.base64.decodeStringToByteArray=function(e,t){var r=[];return goog.crypt.base64.decodeStringInternal_(e,function(e){r.push(e)}),r},goog.crypt.base64.decodeStringToUint8Array=function(e){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var t=new Uint8Array(Math.ceil(3*e.length/4)),r=0;return goog.crypt.base64.decodeStringInternal_(e,function(e){t[r++]=e}),t.subarray(0,r)},goog.crypt.base64.decodeStringInternal_=function(e,t){function r(t){for(;o<e.length;){var r=e.charAt(o++),n=goog.crypt.base64.charToByteMap_[r];if(null!=n)return n;if(!goog.string.isEmptyOrWhitespace(r))throw Error("Unknown base64 encoding at char: "+r)}return t}goog.crypt.base64.init_();for(var o=0;;){var n=r(-1),s=r(0),i=r(64),a=r(64);if(64===a&&-1===n)break;t(n<<2|s>>4),64!=i&&(t(s<<4&240|i>>2),64!=a&&t(i<<6&192|a))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.byteToCharMap_){goog.crypt.base64.byteToCharMap_={},goog.crypt.base64.charToByteMap_={},goog.crypt.base64.byteToCharMapWebSafe_={};for(var e=0;e<goog.crypt.base64.ENCODED_VALS.length;e++)goog.crypt.base64.byteToCharMap_[e]=goog.crypt.base64.ENCODED_VALS.charAt(e),goog.crypt.base64.charToByteMap_[goog.crypt.base64.byteToCharMap_[e]]=e,goog.crypt.base64.byteToCharMapWebSafe_[e]=goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(e),e>=goog.crypt.base64.ENCODED_VALS_BASE.length&&(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(e)]=e)}},jspb.ExtensionFieldInfo=function(e,t,r,o,n){this.fieldIndex=e,this.fieldName=t,this.ctor=r,this.toObjectFn=o,this.isRepeated=n},jspb.ExtensionFieldBinaryInfo=function(e,t,r,o,n,s){this.fieldInfo=e,this.binaryReaderFn=t,this.binaryWriterFn=r,this.binaryMessageSerializeFn=o,this.binaryMessageDeserializeFn=n,this.isPacked=s},jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor},jspb.Message=function(){},jspb.Message.GENERATE_TO_OBJECT=!0,jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE,jspb.Message.GENERATE_TO_STRING=!0,jspb.Message.ASSUME_LOCAL_ARRAYS=!1,jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS=COMPILED,jspb.Message.SUPPORTS_UINT8ARRAY_="function"==typeof Uint8Array,jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_},jspb.Message.getIndex_=function(e,t){return t+e.arrayIndexOffset_},jspb.Message.initialize=function(e,t,r,o,n,s){if(e.wrappers_=jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?null:{},t||(t=r?[r]:[]),e.messageId_=r?String(r):void 0,e.arrayIndexOffset_=0===r?-1:0,e.array=t,jspb.Message.initPivotAndExtensionObject_(e,o),e.convertedFloatingPointFields_={},n)for(t=0;t<n.length;t++)(r=n[t])<e.pivot_?(r=jspb.Message.getIndex_(e,r),e.array[r]=e.array[r]||(jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?jspb.Message.EMPTY_LIST_SENTINEL_:[])):(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[r]=e.extensionObject_[r]||(jspb.Message.MINIMIZE_MEMORY_ALLOCATIONS?jspb.Message.EMPTY_LIST_SENTINEL_:[]));s&&s.length&&goog.array.forEach(s,goog.partial(jspb.Message.computeOneofCase,e))},jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[],jspb.Message.isArray_=function(e){return jspb.Message.ASSUME_LOCAL_ARRAYS?e instanceof Array:goog.isArray(e)},jspb.Message.initPivotAndExtensionObject_=function(e,t){if(e.array.length){var r=e.array.length-1,o=e.array[r];if(o&&"object"==typeof o&&!jspb.Message.isArray_(o)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&o instanceof Uint8Array))return e.pivot_=r-e.arrayIndexOffset_,void(e.extensionObject_=o)}-1<t?(e.pivot_=t,e.extensionObject_=null):e.pivot_=Number.MAX_VALUE},jspb.Message.maybeInitEmptyExtensionObject_=function(e){var t=jspb.Message.getIndex_(e,e.pivot_);e.array[t]||(e.extensionObject_=e.array[t]={})},jspb.Message.toObjectList=function(e,t,r){for(var o=[],n=0;n<e.length;n++)o[n]=t.call(e[n],r,e[n]);return o},jspb.Message.toObjectExtension=function(e,t,r,o,n){for(var s in r){var i=r[s],a=o.call(e,i);if(null!=a){for(var g in i.fieldName)if(i.fieldName.hasOwnProperty(g))break;t[g]=i.toObjectFn?i.isRepeated?jspb.Message.toObjectList(a,i.toObjectFn,n):i.toObjectFn(n,a):a}}},jspb.Message.serializeBinaryExtensions=function(e,t,r,o){for(var n in r){var s=r[n],i=s.fieldInfo;if(!s.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var a=o.call(e,i);if(null!=a)if(i.isMessageType()){if(!s.binaryMessageSerializeFn)throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");s.binaryWriterFn.call(t,i.fieldIndex,a,s.binaryMessageSerializeFn)}else s.binaryWriterFn.call(t,i.fieldIndex,a)}},jspb.Message.readBinaryExtension=function(e,t,r,o,n){var s=r[t.getFieldNumber()];if(s){if(r=s.fieldInfo,!s.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");var i;r.isMessageType()?(i=new r.ctor,s.binaryReaderFn.call(t,i,s.binaryMessageDeserializeFn)):i=s.binaryReaderFn.call(t),r.isRepeated&&!s.isPacked?(t=o.call(e,r))?t.push(i):n.call(e,r,[i]):n.call(e,r,i)}else t.skipField()},jspb.Message.getField=function(e,t){if(t<e.pivot_){var r=jspb.Message.getIndex_(e,t),o=e.array[r];return o===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[r]=[]:o}if(e.extensionObject_)return(o=e.extensionObject_[t])===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:o},jspb.Message.getRepeatedField=function(e,t){if(t<e.pivot_){var r=jspb.Message.getIndex_(e,t),o=e.array[r];return o===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[r]=[]:o}return(o=e.extensionObject_[t])===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:o},jspb.Message.getOptionalFloatingPointField=function(e,t){var r=jspb.Message.getField(e,t);return null==r?r:+r},jspb.Message.getRepeatedFloatingPointField=function(e,t){var r=jspb.Message.getRepeatedField(e,t);if(e.convertedFloatingPointFields_||(e.convertedFloatingPointFields_={}),!e.convertedFloatingPointFields_[t]){for(var o=0;o<r.length;o++)r[o]=+r[o];e.convertedFloatingPointFields_[t]=!0}return r},jspb.Message.bytesAsB64=function(e){return null==e||goog.isString(e)?e:jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array?goog.crypt.base64.encodeByteArray(e):(goog.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(e)),null)},jspb.Message.bytesAsU8=function(e){return null==e||e instanceof Uint8Array?e:goog.isString(e)?goog.crypt.base64.decodeStringToUint8Array(e):(goog.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(e)),null)},jspb.Message.bytesListAsB64=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||goog.isString(e[0])?e:goog.array.map(e,jspb.Message.bytesAsB64)},jspb.Message.bytesListAsU8=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||e[0]instanceof Uint8Array?e:goog.array.map(e,jspb.Message.bytesAsU8)},jspb.Message.assertConsistentTypes_=function(e){if(goog.DEBUG&&e&&1<e.length){var t=goog.typeOf(e[0]);goog.array.forEach(e,function(e){goog.typeOf(e)!=t&&goog.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(e)+" expected "+t)})}},jspb.Message.getFieldWithDefault=function(e,t,r){return null==(e=jspb.Message.getField(e,t))?r:e},jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault,jspb.Message.getMapField=function(e,t,r,o){return e.wrappers_||(e.wrappers_={}),t in e.wrappers_?e.wrappers_[t]:r?void 0:((r=jspb.Message.getField(e,t))||(r=[],jspb.Message.setField(e,t,r)),e.wrappers_[t]=new jspb.Map(r,o))},jspb.Message.setField=function(e,t,r){t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=r:(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[t]=r)},jspb.Message.setProto3IntField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},jspb.Message.setProto3FloatField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},jspb.Message.setProto3BooleanField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,!1)},jspb.Message.setProto3StringField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,"")},jspb.Message.setProto3BytesField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,"")},jspb.Message.setProto3EnumField=function(e,t,r){jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},jspb.Message.setFieldIgnoringDefault_=function(e,t,r,o){r!=o?jspb.Message.setField(e,t,r):e.array[jspb.Message.getIndex_(e,t)]=null},jspb.Message.addToRepeatedField=function(e,t,r,o){e=jspb.Message.getRepeatedField(e,t),void 0!=o?e.splice(o,0,r):e.push(r)},jspb.Message.setOneofField=function(e,t,r,o){(r=jspb.Message.computeOneofCase(e,r))&&r!==t&&void 0!==o&&(e.wrappers_&&r in e.wrappers_&&(e.wrappers_[r]=void 0),jspb.Message.setField(e,r,void 0)),jspb.Message.setField(e,t,o)},jspb.Message.computeOneofCase=function(e,t){var r,o;return goog.array.forEach(t,function(t){var n=jspb.Message.getField(e,t);goog.isDefAndNotNull(n)&&(r=t,o=n,jspb.Message.setField(e,t,void 0))}),r?(jspb.Message.setField(e,r,o),r):0},jspb.Message.getWrapperField=function(e,t,r,o){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[r]){var n=jspb.Message.getField(e,r);(o||n)&&(e.wrappers_[r]=new t(n))}return e.wrappers_[r]},jspb.Message.getRepeatedWrapperField=function(e,t,r){return jspb.Message.wrapRepeatedField_(e,t,r),(t=e.wrappers_[r])==jspb.Message.EMPTY_LIST_SENTINEL_&&(t=e.wrappers_[r]=[]),t},jspb.Message.wrapRepeatedField_=function(e,t,r){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[r]){for(var o=jspb.Message.getRepeatedField(e,r),n=[],s=0;s<o.length;s++)n[s]=new t(o[s]);e.wrappers_[r]=n}},jspb.Message.setWrapperField=function(e,t,r){e.wrappers_||(e.wrappers_={});var o=r?r.toArray():r;e.wrappers_[t]=r,jspb.Message.setField(e,t,o)},jspb.Message.setOneofWrapperField=function(e,t,r,o){e.wrappers_||(e.wrappers_={});var n=o?o.toArray():o;e.wrappers_[t]=o,jspb.Message.setOneofField(e,t,r,n)},jspb.Message.setRepeatedWrapperField=function(e,t,r){e.wrappers_||(e.wrappers_={}),r=r||[];for(var o=[],n=0;n<r.length;n++)o[n]=r[n].toArray();e.wrappers_[t]=r,jspb.Message.setField(e,t,o)},jspb.Message.addToRepeatedWrapperField=function(e,t,r,o,n){jspb.Message.wrapRepeatedField_(e,o,t);var s=e.wrappers_[t];return s||(s=e.wrappers_[t]=[]),r=r||new o,e=jspb.Message.getRepeatedField(e,t),void 0!=n?(s.splice(n,0,r),e.splice(n,0,r.toArray())):(s.push(r),e.push(r.toArray())),r},jspb.Message.toMap=function(e,t,r,o){for(var n={},s=0;s<e.length;s++)n[t.call(e[s])]=r?r.call(e[s],o,e[s]):e[s];return n},jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var e in this.wrappers_){var t=this.wrappers_[e];if(goog.isArray(t))for(var r=0;r<t.length;r++)t[r]&&t[r].toArray();else t&&t.toArray()}},jspb.Message.prototype.toArray=function(){return this.syncMapFields_(),this.array},jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){return this.syncMapFields_(),this.array.toString()}),jspb.Message.prototype.getExtension=function(e){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var t=e.fieldIndex;if(e.isRepeated){if(e.isMessageType())return this.wrappers_[t]||(this.wrappers_[t]=goog.array.map(this.extensionObject_[t]||[],function(t){return new e.ctor(t)})),this.wrappers_[t]}else if(e.isMessageType())return!this.wrappers_[t]&&this.extensionObject_[t]&&(this.wrappers_[t]=new e.ctor(this.extensionObject_[t])),this.wrappers_[t];return this.extensionObject_[t]}},jspb.Message.prototype.setExtension=function(e,t){this.wrappers_||(this.wrappers_={}),jspb.Message.maybeInitEmptyExtensionObject_(this);var r=e.fieldIndex;return e.isRepeated?(t=t||[],e.isMessageType()?(this.wrappers_[r]=t,this.extensionObject_[r]=goog.array.map(t,function(e){return e.toArray()})):this.extensionObject_[r]=t):e.isMessageType()?(this.wrappers_[r]=t,this.extensionObject_[r]=t?t.toArray():t):this.extensionObject_[r]=t,this},jspb.Message.difference=function(e,t){if(!(e instanceof t.constructor))throw Error("Messages have different types.");var r=e.toArray(),o=t.toArray(),n=[],s=0,i=r.length>o.length?r.length:o.length;for(e.getJsPbMessageId()&&(n[0]=e.getJsPbMessageId(),s=1);s<i;s++)jspb.Message.compareFields(r[s],o[s])||(n[s]=o[s]);return new e.constructor(n)},jspb.Message.equals=function(e,t){return e==t||!(!e||!t)&&e instanceof t.constructor&&jspb.Message.compareFields(e.toArray(),t.toArray())},jspb.Message.compareExtensions=function(e,t){e=e||{},t=t||{};var r,o={};for(r in e)o[r]=0;for(r in t)o[r]=0;for(r in o)if(!jspb.Message.compareFields(e[r],t[r]))return!1;return!0},jspb.Message.compareFields=function(e,t){if(e==t)return!0;if(!goog.isObject(e)||!goog.isObject(t)||e.constructor!=t.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e.constructor===Uint8Array){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}if(e.constructor===Array){var o=void 0,n=void 0,s=Math.max(e.length,t.length);for(r=0;r<s;r++){var i=e[r],a=t[r];if(i&&i.constructor==Object&&(goog.asserts.assert(void 0===o),goog.asserts.assert(r===e.length-1),o=i,i=void 0),a&&a.constructor==Object&&(goog.asserts.assert(void 0===n),goog.asserts.assert(r===t.length-1),n=a,a=void 0),!jspb.Message.compareFields(i,a))return!1}return!o&&!n||(o=o||{},n=n||{},jspb.Message.compareExtensions(o,n))}if(e.constructor===Object)return jspb.Message.compareExtensions(e,t);throw Error("Invalid type in JSPB array")},jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)},jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)},jspb.Message.clone=function(e){return jspb.Message.cloneMessage(e)},jspb.Message.cloneMessage=function(e){return new e.constructor(jspb.Message.clone_(e.toArray()))},jspb.Message.copyInto=function(e,t){goog.asserts.assertInstanceof(e,jspb.Message),goog.asserts.assertInstanceof(t,jspb.Message),goog.asserts.assert(e.constructor==t.constructor,"Copy source and target message should have the same type.");for(var r=jspb.Message.clone(e),o=t.toArray(),n=r.toArray(),s=o.length=0;s<n.length;s++)o[s]=n[s];t.wrappers_=r.wrappers_,t.extensionObject_=r.extensionObject_},jspb.Message.clone_=function(e){var t;if(goog.isArray(e)){for(var r=Array(e.length),o=0;o<e.length;o++)null!=(t=e[o])&&(r[o]="object"==typeof t?jspb.Message.clone_(t):t);return r}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)return new Uint8Array(e);for(o in r={},e)null!=(t=e[o])&&(r[o]="object"==typeof t?jspb.Message.clone_(t):t);return r},jspb.Message.registerMessageType=function(e,t){jspb.Message.registry_[e]=t,t.messageId=e},jspb.Message.registry_={},jspb.Message.messageSetExtensions={},jspb.Message.messageSetExtensionsBinary={},jspb.arith={},jspb.arith.UInt64=function(e,t){this.lo=e,this.hi=t},jspb.arith.UInt64.prototype.cmp=function(e){return this.hi<e.hi||this.hi==e.hi&&this.lo<e.lo?-1:this.hi==e.hi&&this.lo==e.lo?0:1},jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi},jspb.arith.UInt64.prototype.add=function(e){return new jspb.arith.UInt64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(e){return new jspb.arith.UInt64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(e,t){for(var r=e>>>16,o=65535&t,n=t>>>16,s=(i=65535&e)*o+65536*(i*n&65535)+65536*(r*o&65535),i=r*n+(i*n>>>16)+(r*o>>>16);4294967296<=s;)s-=4294967296,i+=1;return new jspb.arith.UInt64(s>>>0,i>>>0)},jspb.arith.UInt64.prototype.mul=function(e){var t=jspb.arith.UInt64.mul32x32(this.lo,e);return(e=jspb.arith.UInt64.mul32x32(this.hi,e)).hi=e.lo,e.lo=0,t.add(e)},jspb.arith.UInt64.prototype.div=function(e){if(0==e)return[];var t=new jspb.arith.UInt64(0,0),r=new jspb.arith.UInt64(this.lo,this.hi);e=new jspb.arith.UInt64(e,0);for(var o=new jspb.arith.UInt64(1,0);!e.msb();)e=e.leftShift(),o=o.leftShift();for(;!o.zero();)0>=e.cmp(r)&&(t=t.add(o),r=r.sub(e)),e=e.rightShift(),o=o.rightShift();return[t,r]},jspb.arith.UInt64.prototype.toString=function(){for(var e="",t=this;!t.zero();){var r=(t=t.div(10))[0];e=t[1].lo+e,t=r}return""==e&&(e="0"),e},jspb.arith.UInt64.fromString=function(e){for(var t=new jspb.arith.UInt64(0,0),r=new jspb.arith.UInt64(0,0),o=0;o<e.length;o++){if("0">e[o]||"9"<e[o])return null;var n=parseInt(e[o],10);r.lo=n,t=t.mul(10).add(r)}return t},jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)},jspb.arith.Int64=function(e,t){this.lo=e,this.hi=t},jspb.arith.Int64.prototype.add=function(e){return new jspb.arith.Int64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(e){return new jspb.arith.Int64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var e=0!=(2147483648&this.hi),t=new jspb.arith.UInt64(this.lo,this.hi);return e&&(t=new jspb.arith.UInt64(0,0).sub(t)),(e?"-":"")+t.toString()},jspb.arith.Int64.fromString=function(e){var t=0<e.length&&"-"==e[0];return t&&(e=e.substring(1)),null===(e=jspb.arith.UInt64.fromString(e))?null:(t&&(e=new jspb.arith.UInt64(0,0).sub(e)),new jspb.arith.Int64(e.lo,e.hi))},jspb.BinaryConstants={},jspb.ConstBinaryMessage=function(){},jspb.BinaryMessage=function(){},jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(e){var t=jspb.BinaryConstants.FieldType,r=jspb.BinaryConstants.WireType;switch(e){case t.INT32:case t.INT64:case t.UINT32:case t.UINT64:case t.SINT32:case t.SINT64:case t.BOOL:case t.ENUM:case t.VHASH64:return r.VARINT;case t.DOUBLE:case t.FIXED64:case t.SFIXED64:case t.FHASH64:return r.FIXED64;case t.STRING:case t.MESSAGE:case t.BYTES:return r.DELIMITED;case t.FLOAT:case t.FIXED32:case t.SFIXED32:return r.FIXED32;default:return r.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1.401298464324817e-45,jspb.BinaryConstants.FLOAT32_MIN=1.1754943508222875e-38,jspb.BinaryConstants.FLOAT32_MAX=3.4028234663852886e38,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=2.2250738585072014e-308,jspb.BinaryConstants.FLOAT64_MAX=1.7976931348623157e308,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=0x8000000000000000,jspb.BinaryConstants.TWO_TO_64=0x10000000000000000,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",jspb.utils={},jspb.utils.split64Low=0,jspb.utils.split64High=0,jspb.utils.splitUint64=function(e){var t=e>>>0;e=Math.floor((e-t)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=t,jspb.utils.split64High=e},jspb.utils.splitInt64=function(e){var t=0>e,r=(e=Math.abs(e))>>>0;e=Math.floor((e-r)/jspb.BinaryConstants.TWO_TO_32),e>>>=0,t&&(e=~e>>>0,4294967295<(r=1+(~r>>>0))&&(r=0,4294967295<++e&&(e=0))),jspb.utils.split64Low=r,jspb.utils.split64High=e},jspb.utils.splitZigzag64=function(e){var t=0>e;e=2*Math.abs(e),jspb.utils.splitUint64(e),e=jspb.utils.split64Low;var r=jspb.utils.split64High;t&&(0==e?0==r?r=e=4294967295:(r--,e=4294967295):e--),jspb.utils.split64Low=e,jspb.utils.split64High=r},jspb.utils.splitFloat32=function(e){var t,r=0>e?1:0;0===(e=r?-e:e)?0<1/e?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648):isNaN(e)?(jspb.utils.split64High=0,jspb.utils.split64Low=2147483647):e>jspb.BinaryConstants.FLOAT32_MAX?(jspb.utils.split64High=0,jspb.utils.split64Low=(r<<31|2139095040)>>>0):e<jspb.BinaryConstants.FLOAT32_MIN?(e=Math.round(e/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(r<<31|e)>>>0):(t=Math.floor(Math.log(e)/Math.LN2),e*=Math.pow(2,-t),e=8388607&Math.round(e*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(r<<31|t+127<<23|e)>>>0)},jspb.utils.splitFloat64=function(e){var t=0>e?1:0;if(0===(e=t?-e:e))jspb.utils.split64High=0<1/e?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(e))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(e>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(t<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(e<jspb.BinaryConstants.FLOAT64_MIN){var r=e/Math.pow(2,-1074);e=r/jspb.BinaryConstants.TWO_TO_32,jspb.utils.split64High=(t<<31|e)>>>0,jspb.utils.split64Low=r>>>0}else{var o=Math.floor(Math.log(e)/Math.LN2);1024==o&&(o=1023),e=(r=e*Math.pow(2,-o))*jspb.BinaryConstants.TWO_TO_20&1048575,r=r*jspb.BinaryConstants.TWO_TO_52>>>0,jspb.utils.split64High=(t<<31|o+1023<<20|e)>>>0,jspb.utils.split64Low=r}},jspb.utils.splitHash64=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2),n=e.charCodeAt(3),s=e.charCodeAt(4),i=e.charCodeAt(5),a=e.charCodeAt(6);e=e.charCodeAt(7),jspb.utils.split64Low=t+(r<<8)+(o<<16)+(n<<24)>>>0,jspb.utils.split64High=s+(i<<8)+(a<<16)+(e<<24)>>>0},jspb.utils.joinUint64=function(e,t){return t*jspb.BinaryConstants.TWO_TO_32+e},jspb.utils.joinInt64=function(e,t){var r=2147483648&t;r&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0));var o=jspb.utils.joinUint64(e,t);return r?-o:o},jspb.utils.joinZigzag64=function(e,t){var r=1&e;e=(e>>>1|t<<31)>>>0,t>>>=1,r&&(0==(e=e+1>>>0)&&(t=t+1>>>0));var o=jspb.utils.joinUint64(e,t);return r?-o:o},jspb.utils.joinFloat32=function(e,t){var r=2*(e>>31)+1,o=e>>>23&255,n=8388607&e;return 255==o?n?NaN:1/0*r:0==o?r*Math.pow(2,-149)*n:r*Math.pow(2,o-150)*(n+Math.pow(2,23))},jspb.utils.joinFloat64=function(e,t){var r=2*(t>>31)+1,o=t>>>20&2047,n=jspb.BinaryConstants.TWO_TO_32*(1048575&t)+e;return 2047==o?n?NaN:1/0*r:0==o?r*Math.pow(2,-1074)*n:r*Math.pow(2,o-1075)*(n+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.joinUnsignedDecimalString=function(e,t){function r(e){for(var t=1e7,r=0;7>r;r++){var o=e/(t=t/10)%10>>>0;(0!=o||a)&&(a=!0,g+=i[o])}}if(2097151>=t)return""+(jspb.BinaryConstants.TWO_TO_32*t+e);var o=(16777215&e)+6777216*(n=(e>>>24|t<<8)>>>0&16777215)+6710656*(s=t>>16&65535),n=n+8147497*s,s=2*s;1e7<=o&&(n+=Math.floor(o/1e7),o%=1e7),1e7<=n&&(s+=Math.floor(n/1e7),n%=1e7);var i=jspb.utils.DIGITS,a=!1,g="";return(s||a)&&r(s),(n||a)&&r(n),(o||a)&&r(o),g},jspb.utils.joinSignedDecimalString=function(e,t){var r=2147483648&t;r&&(t=~t+(0==(e=1+~e>>>0)?1:0)>>>0);var o=jspb.utils.joinUnsignedDecimalString(e,t);return r?"-"+o:o},jspb.utils.hash64ToDecimalString=function(e,t){jspb.utils.splitHash64(e);var r=jspb.utils.split64Low,o=jspb.utils.split64High;return t?jspb.utils.joinSignedDecimalString(r,o):jspb.utils.joinUnsignedDecimalString(r,o)},jspb.utils.hash64ArrayToDecimalStrings=function(e,t){for(var r=Array(e.length),o=0;o<e.length;o++)r[o]=jspb.utils.hash64ToDecimalString(e[o],t);return r},jspb.utils.decimalStringToHash64=function(e){function t(e,t){for(var r=0;8>r&&(1!==e||0<t);r++){var n=e*o[r]+t;o[r]=255&n,t=n>>>8}}goog.asserts.assert(0<e.length);var r=!1;"-"===e[0]&&(r=!0,e=e.slice(1));for(var o=[0,0,0,0,0,0,0,0],n=0;n<e.length;n++)t(10,jspb.utils.DIGITS.indexOf(e[n]));return r&&(function(){for(var e=0;8>e;e++)o[e]=255&~o[e]}(),t(1,1)),goog.crypt.byteArrayToString(o)},jspb.utils.splitDecimalString=function(e){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e))},jspb.utils.hash64ToHexString=function(e){var t=Array(18);t[0]="0",t[1]="x";for(var r=0;8>r;r++){var o=e.charCodeAt(7-r);t[2*r+2]=jspb.utils.DIGITS[o>>4],t[2*r+3]=jspb.utils.DIGITS[15&o]}return t.join("")},jspb.utils.hexStringToHash64=function(e){e=e.toLowerCase(),goog.asserts.assert(18==e.length),goog.asserts.assert("0"==e[0]),goog.asserts.assert("x"==e[1]);for(var t="",r=0;8>r;r++){var o=jspb.utils.DIGITS.indexOf(e[2*r+2]),n=jspb.utils.DIGITS.indexOf(e[2*r+3]);t=String.fromCharCode(16*o+n)+t}return t},jspb.utils.hash64ToNumber=function(e,t){jspb.utils.splitHash64(e);var r=jspb.utils.split64Low,o=jspb.utils.split64High;return t?jspb.utils.joinInt64(r,o):jspb.utils.joinUint64(r,o)},jspb.utils.numberToHash64=function(e){return jspb.utils.splitInt64(e),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(e,t,r){for(var o=0,n=t;n<r;n++)o+=e[n]>>7;return r-t-o},jspb.utils.countVarintFields=function(e,t,r,o){var n=0;if(128>(o=8*o+jspb.BinaryConstants.WireType.VARINT))for(;t<r&&e[t++]==o;)for(n++;;){var s=e[t++];if(0==(128&s))break}else for(;t<r;){for(s=o;128<s;){if(e[t]!=(127&s|128))return n;t++,s>>=7}if(e[t++]!=s)break;for(n++;0!=(128&(s=e[t++])););}return n},jspb.utils.countFixedFields_=function(e,t,r,o,n){var s=0;if(128>o)for(;t<r&&e[t++]==o;)s++,t+=n;else for(;t<r;){for(var i=o;128<i;){if(e[t++]!=(127&i|128))return s;i>>=7}if(e[t++]!=i)break;s++,t+=n}return s},jspb.utils.countFixed32Fields=function(e,t,r,o){return jspb.utils.countFixedFields_(e,t,r,8*o+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(e,t,r,o){return jspb.utils.countFixedFields_(e,t,r,8*o+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(e,t,r,o){var n=0;for(o=8*o+jspb.BinaryConstants.WireType.DELIMITED;t<r;){for(var s=o;128<s;){if(e[t++]!=(127&s|128))return n;s>>=7}if(e[t++]!=s)break;n++;for(var i=0,a=1;i+=(127&(s=e[t++]))*a,a*=128,0!=(128&s););t+=i}return n},jspb.utils.debugBytesToTextFormat=function(e){var t='"';if(e){e=jspb.utils.byteSourceToUint8Array(e);for(var r=0;r<e.length;r++)t+="\\x",16>e[r]&&(t+="0"),t+=e[r].toString(16)}return t+'"'},jspb.utils.debugScalarToTextFormat=function(e){return goog.isString(e)?goog.string.quote(e):e.toString()},jspb.utils.stringToByteArray=function(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++){var o=e.charCodeAt(r);if(255<o)throw Error("Conversion error: string contains codepoint outside of byte range");t[r]=o}return t},jspb.utils.byteSourceToUint8Array=function(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?goog.crypt.base64.decodeStringToUint8Array(e):(goog.asserts.fail("Type not convertible to Uint8Array."),new Uint8Array(0))},jspb.BinaryEncoder=function(){this.buffer_=[]},jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length},jspb.BinaryEncoder.prototype.end=function(){var e=this.buffer_;return this.buffer_=[],e},jspb.BinaryEncoder.prototype.writeSplitVarint64=function(e,t){for(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(t==Math.floor(t)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32);0<t||127<e;)this.buffer_.push(127&e|128),e=(e>>>7|t<<25)>>>0,t>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(e,t){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(t==Math.floor(t)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUint32(e),this.writeUint32(t)},jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(e){for(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32);127<e;)this.buffer_.push(127&e|128),e>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(e){if(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),0<=e)this.writeUnsignedVarint32(e);else{for(var t=0;9>t;t++)this.buffer_.push(127&e|128),e>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeSignedVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeUnsignedVarint32((e<<1^e>>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitZigzag64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(e){this.writeZigzagVarint64(parseInt(e,10))},jspb.BinaryEncoder.prototype.writeUint8=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&256>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&65536>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitUint64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt8=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(-128<=e&&128>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(-32768<=e&&32768>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt64String=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(+e>=-jspb.BinaryConstants.TWO_TO_63&&+e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e)),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFloat=function(e){goog.asserts.assert(e>=-jspb.BinaryConstants.FLOAT32_MAX&&e<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(e),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(e){goog.asserts.assert(e>=-jspb.BinaryConstants.FLOAT64_MAX&&e<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(e){goog.asserts.assert(goog.isBoolean(e)||goog.isNumber(e)),this.buffer_.push(e?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32(e)},jspb.BinaryEncoder.prototype.writeBytes=function(e){this.buffer_.push.apply(this.buffer_,e)},jspb.BinaryEncoder.prototype.writeVarintHash64=function(e){jspb.utils.splitHash64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFixedHash64=function(e){jspb.utils.splitHash64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeString=function(e){for(var t=this.buffer_.length,r=0;r<e.length;r++){var o=e.charCodeAt(r);if(128>o)this.buffer_.push(o);else if(2048>o)this.buffer_.push(o>>6|192),this.buffer_.push(63&o|128);else if(65536>o)if(55296<=o&&56319>=o&&r+1<e.length){var n=e.charCodeAt(r+1);56320<=n&&57343>=n&&(o=1024*(o-55296)+n-56320+65536,this.buffer_.push(o>>18|240),this.buffer_.push(o>>12&63|128),this.buffer_.push(o>>6&63|128),this.buffer_.push(63&o|128),r++)}else this.buffer_.push(o>>12|224),this.buffer_.push(o>>6&63|128),this.buffer_.push(63&o|128)}return this.buffer_.length-t},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(e){var t=this.encoder_.end();this.blocks_.push(t),this.blocks_.push(e),this.totalLength_+=t.length+e.length},jspb.BinaryWriter.prototype.beginDelimited_=function(e){return this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),e=this.encoder_.end(),this.blocks_.push(e),this.totalLength_+=e.length,e.push(this.totalLength_),e},jspb.BinaryWriter.prototype.endDelimited_=function(e){var t=e.pop();t=this.totalLength_+this.encoder_.length()-t;for(goog.asserts.assert(0<=t);127<t;)e.push(127&t|128),t>>>=7,this.totalLength_++;e.push(t),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(e,t,r){this.appendUint8Array_(e.subarray(t,r))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(e,t,r){null!=e&&null!=t&&null!=r&&this.writeSerializedMessage(e,t,r)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(0==this.bookmarks_.length);for(var e=new Uint8Array(this.totalLength_+this.encoder_.length()),t=this.blocks_,r=t.length,o=0,n=0;n<r;n++){var s=t[n];e.set(s,o),o+=s.length}return t=this.encoder_.end(),e.set(t,o),o+=t.length,goog.asserts.assert(o==e.length),this.blocks_=[e],e},jspb.BinaryWriter.prototype.getResultBase64String=function(){return goog.crypt.base64.encodeByteArray(this.getResultBuffer())},jspb.BinaryWriter.prototype.beginSubMessage=function(e){this.bookmarks_.push(this.beginDelimited_(e))},jspb.BinaryWriter.prototype.endSubMessage=function(){goog.asserts.assert(0<=this.bookmarks_.length),this.endDelimited_(this.bookmarks_.pop())},jspb.BinaryWriter.prototype.writeFieldHeader_=function(e,t){goog.asserts.assert(1<=e&&e==Math.floor(e)),this.encoder_.writeUnsignedVarint32(8*e+t)},jspb.BinaryWriter.prototype.writeAny=function(e,t,r){var o=jspb.BinaryConstants.FieldType;switch(e){case o.DOUBLE:this.writeDouble(t,r);break;case o.FLOAT:this.writeFloat(t,r);break;case o.INT64:this.writeInt64(t,r);break;case o.UINT64:this.writeUint64(t,r);break;case o.INT32:this.writeInt32(t,r);break;case o.FIXED64:this.writeFixed64(t,r);break;case o.FIXED32:this.writeFixed32(t,r);break;case o.BOOL:this.writeBool(t,r);break;case o.STRING:this.writeString(t,r);break;case o.GROUP:goog.asserts.fail("Group field type not supported in writeAny()");break;case o.MESSAGE:goog.asserts.fail("Message field type not supported in writeAny()");break;case o.BYTES:this.writeBytes(t,r);break;case o.UINT32:this.writeUint32(t,r);break;case o.ENUM:this.writeEnum(t,r);break;case o.SFIXED32:this.writeSfixed32(t,r);break;case o.SFIXED64:this.writeSfixed64(t,r);break;case o.SINT32:this.writeSint32(t,r);break;case o.SINT64:this.writeSint64(t,r);break;case o.FHASH64:this.writeFixedHash64(t,r);break;case o.VHASH64:this.writeVarintHash64(t,r);break;default:goog.asserts.fail("Invalid field type in writeAny()")}},jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(t))},jspb.BinaryWriter.prototype.writeSignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(t))},jspb.BinaryWriter.prototype.writeSignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(t))},jspb.BinaryWriter.prototype.writeInt32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt32String=function(e,t){if(null!=t){var r=parseInt(t,10);goog.asserts.assert(r>=-jspb.BinaryConstants.TWO_TO_31&&r<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,r)}},jspb.BinaryWriter.prototype.writeInt64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(e,t))},jspb.BinaryWriter.prototype.writeInt64String=function(e,t){if(null!=t){var r=jspb.arith.Int64.fromString(t);this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(r.lo,r.hi)}},jspb.BinaryWriter.prototype.writeUint32=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint32String=function(e,t){if(null!=t){var r=parseInt(t,10);goog.asserts.assert(0<=r&&r<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,r)}},jspb.BinaryWriter.prototype.writeUint64=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(e,t))},jspb.BinaryWriter.prototype.writeUint64String=function(e,t){if(null!=t){var r=jspb.arith.UInt64.fromString(t);this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(r.lo,r.hi)}},jspb.BinaryWriter.prototype.writeSint32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(e,t))},jspb.BinaryWriter.prototype.writeSint64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(e,t))},jspb.BinaryWriter.prototype.writeSint64String=function(e,t){null!=t&&(goog.asserts.assert(+t>=-jspb.BinaryConstants.TWO_TO_63&&+t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64String_(e,t))},jspb.BinaryWriter.prototype.writeFixed32=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(t))},jspb.BinaryWriter.prototype.writeFixed64=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(t))},jspb.BinaryWriter.prototype.writeFixed64String=function(e,t){if(null!=t){var r=jspb.arith.UInt64.fromString(t);this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(r.lo,r.hi)}},jspb.BinaryWriter.prototype.writeSfixed32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(t))},jspb.BinaryWriter.prototype.writeSfixed64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(t))},jspb.BinaryWriter.prototype.writeSfixed64String=function(e,t){if(null!=t){var r=jspb.arith.Int64.fromString(t);this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(r.lo,r.hi)}},jspb.BinaryWriter.prototype.writeFloat=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(t))},jspb.BinaryWriter.prototype.writeDouble=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(t))},jspb.BinaryWriter.prototype.writeBool=function(e,t){null!=t&&(goog.asserts.assert(goog.isBoolean(t)||goog.isNumber(t)),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(t))},jspb.BinaryWriter.prototype.writeEnum=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeString=function(e,t){if(null!=t){var r=this.beginDelimited_(e);this.encoder_.writeString(t),this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writeBytes=function(e,t){if(null!=t){var r=jspb.utils.byteSourceToUint8Array(t);this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(r.length),this.appendUint8Array_(r)}},jspb.BinaryWriter.prototype.writeMessage=function(e,t,r){null!=t&&(e=this.beginDelimited_(e),r(t,this),this.endDelimited_(e))},jspb.BinaryWriter.prototype.writeGroup=function(e,t,r){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),r(t,this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeFixedHash64=function(e,t){null!=t&&(goog.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(t))},jspb.BinaryWriter.prototype.writeVarintHash64=function(e,t){null!=t&&(goog.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(t))},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSignedVarint32_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeInt32String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedInt64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSignedVarint64_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeInt64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUnsignedVarint32_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUint32String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUnsignedVarint64_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUint64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSint32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint32_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSint64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint64_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint64String_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed32(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed64(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed32(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed64(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFloat=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFloat(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedDouble=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeDouble(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedBool=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeBool(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedEnum=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeEnum(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedString=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeString(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedBytes=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeBytes(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedMessage=function(e,t,r){if(null!=t)for(var o=0;o<t.length;o++){var n=this.beginDelimited_(e);r(t[o],this),this.endDelimited_(n)}},jspb.BinaryWriter.prototype.writeRepeatedGroup=function(e,t,r){if(null!=t)for(var o=0;o<t.length;o++)this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),r(t[o],this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP)},jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixedHash64(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeVarintHash64(e,t[r])},jspb.BinaryWriter.prototype.writePackedInt32=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeSignedVarint32(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedInt32String=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeSignedVarint32(parseInt(t[o],10));this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedInt64=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeSignedVarint64(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++){var n=jspb.arith.Int64.fromString(t[o]);this.encoder_.writeSplitVarint64(n.lo,n.hi)}this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedUint32=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint32(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedUint32String=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint32(parseInt(t[o],10));this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedUint64=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint64(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedUint64String=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++){var n=jspb.arith.UInt64.fromString(t[o]);this.encoder_.writeSplitVarint64(n.lo,n.hi)}this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedSint32=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeZigzagVarint32(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedSint64=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeZigzagVarint64(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedSint64String=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeZigzagVarint64(parseInt(t[o],10));this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedFixed32=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeUint32(t[r])}},jspb.BinaryWriter.prototype.writePackedFixed64=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeUint64(t[r])}},jspb.BinaryWriter.prototype.writePackedFixed64String=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++){var o=jspb.arith.UInt64.fromString(t[r]);this.encoder_.writeSplitFixed64(o.lo,o.hi)}}},jspb.BinaryWriter.prototype.writePackedSfixed32=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeInt32(t[r])}},jspb.BinaryWriter.prototype.writePackedSfixed64=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeInt64(t[r])}},jspb.BinaryWriter.prototype.writePackedSfixed64String=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeInt64String(t[r])}},jspb.BinaryWriter.prototype.writePackedFloat=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeFloat(t[r])}},jspb.BinaryWriter.prototype.writePackedDouble=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeDouble(t[r])}},jspb.BinaryWriter.prototype.writePackedBool=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length);for(var r=0;r<t.length;r++)this.encoder_.writeBool(t[r])}},jspb.BinaryWriter.prototype.writePackedEnum=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeEnum(t[o]);this.endDelimited_(r)}},jspb.BinaryWriter.prototype.writePackedFixedHash64=function(e,t){if(null!=t&&t.length){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length);for(var r=0;r<t.length;r++)this.encoder_.writeFixedHash64(t[r])}},jspb.BinaryWriter.prototype.writePackedVarintHash64=function(e,t){if(null!=t&&t.length){for(var r=this.beginDelimited_(e),o=0;o<t.length;o++)this.encoder_.writeVarintHash64(t[o]);this.endDelimited_(r)}},jspb.BinaryIterator=function(e,t,r){this.elements_=this.nextMethod_=this.decoder_=null,this.cursor_=0,this.nextValue_=null,this.atEnd_=!0,this.init_(e,t,r)},jspb.BinaryIterator.prototype.init_=function(e,t,r){e&&t&&(this.decoder_=e,this.nextMethod_=t),this.elements_=r||null,this.cursor_=0,this.nextValue_=null,this.atEnd_=!this.decoder_&&!this.elements_,this.next()},jspb.BinaryIterator.instanceCache_=[],jspb.BinaryIterator.alloc=function(e,t,r){if(jspb.BinaryIterator.instanceCache_.length){var o=jspb.BinaryIterator.instanceCache_.pop();return o.init_(e,t,r),o}return new jspb.BinaryIterator(e,t,r)},jspb.BinaryIterator.prototype.free=function(){this.clear(),100>jspb.BinaryIterator.instanceCache_.length&&jspb.BinaryIterator.instanceCache_.push(this)},jspb.BinaryIterator.prototype.clear=function(){this.decoder_&&this.decoder_.free(),this.elements_=this.nextMethod_=this.decoder_=null,this.cursor_=0,this.nextValue_=null,this.atEnd_=!0},jspb.BinaryIterator.prototype.get=function(){return this.nextValue_},jspb.BinaryIterator.prototype.atEnd=function(){return this.atEnd_},jspb.BinaryIterator.prototype.next=function(){var e=this.nextValue_;return this.decoder_?this.decoder_.atEnd()?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.nextMethod_.call(this.decoder_):this.elements_&&(this.cursor_==this.elements_.length?(this.nextValue_=null,this.atEnd_=!0):this.nextValue_=this.elements_[this.cursor_++]),e},jspb.BinaryDecoder=function(e,t,r){this.bytes_=null,this.tempHigh_=this.tempLow_=this.cursor_=this.end_=this.start_=0,this.error_=!1,e&&this.setBlock(e,t,r)},jspb.BinaryDecoder.instanceCache_=[],jspb.BinaryDecoder.alloc=function(e,t,r){if(jspb.BinaryDecoder.instanceCache_.length){var o=jspb.BinaryDecoder.instanceCache_.pop();return e&&o.setBlock(e,t,r),o}return new jspb.BinaryDecoder(e,t,r)},jspb.BinaryDecoder.prototype.free=function(){this.clear(),100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(e,t,r){this.bytes_=jspb.utils.byteSourceToUint8Array(e),this.start_=goog.isDef(t)?t:0,this.end_=goog.isDef(r)?this.start_+r:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(e){this.end_=e},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(e){this.cursor_=e},jspb.BinaryDecoder.prototype.advance=function(e){this.cursor_+=e,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64_=function(){for(var e,t,r=0,o=0;4>o;o++)if(r|=(127&(e=this.bytes_[this.cursor_++]))<<7*o,128>e)return this.tempLow_=r>>>0,void(this.tempHigh_=0);if(r|=(127&(e=this.bytes_[this.cursor_++]))<<28,t=0|(127&e)>>4,128>e)this.tempLow_=r>>>0,this.tempHigh_=t>>>0;else{for(o=0;5>o;o++)if(t|=(127&(e=this.bytes_[this.cursor_++]))<<7*o+3,128>e)return this.tempLow_=r>>>0,void(this.tempHigh_=t>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0}},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(e){for(;128<e;)this.cursor_--,e>>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var e,t=this.bytes_,r=127&(e=t[this.cursor_+0]);return 128>e?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(e=t[this.cursor_+1]))<<7,128>e?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(e=t[this.cursor_+2]))<<14,128>e?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(e=t[this.cursor_+3]))<<21,128>e?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),r):(r|=(15&(e=t[this.cursor_+4]))<<28,128>e?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),r>>>0):(this.cursor_+=5,128<=t[this.cursor_++]&&128<=t[this.cursor_++]&&128<=t[this.cursor_++]&&128<=t[this.cursor_++]&&128<=t[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),r)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var e=this.readUnsignedVarint32();return e>>>1^-(1&e)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64_(),jspb.utils.joinUint64(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64_(),jspb.utils.joinUnsignedDecimalString(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64_(),jspb.utils.joinInt64(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64_(),jspb.utils.joinSignedDecimalString(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64_(),jspb.utils.joinZigzag64(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readZigzagVarint64().toString()},jspb.BinaryDecoder.prototype.readUint8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),e},jspb.BinaryDecoder.prototype.readUint16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],r=this.bytes_[this.cursor_+2],o=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8|r<<16|o<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUint64(e,t)},jspb.BinaryDecoder.prototype.readUint64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUnsignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readInt8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),e<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],r=this.bytes_[this.cursor_+2],o=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8|r<<16|o<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinInt64(e,t)},jspb.BinaryDecoder.prototype.readInt64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinSignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readFloat=function(){var e=this.readUint32();return jspb.utils.joinFloat32(e,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinFloat64(e,t)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(e){var t=this.bytes_,r=this.cursor_;e=r+e;for(var o=[],n="";r<e;){if(128>(a=t[r++]))o.push(a);else{if(192>a)continue;if(224>a){var s=t[r++];o.push((31&a)<<6|63&s)}else if(240>a){s=t[r++];var i=t[r++];o.push((15&a)<<12|(63&s)<<6|63&i)}else if(248>a){var a=(a=(7&a)<<18|(63&(s=t[r++]))<<12|(63&(i=t[r++]))<<6|63&t[r++])-65536;o.push(55296+(a>>10&1023),56320+(1023&a))}}8192<=o.length&&(n+=String.fromCharCode.apply(null,o),o.length=0)}return n+=goog.crypt.byteArrayToString(o),this.cursor_=r,n},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var e=this.readUnsignedVarint32();return this.readString(e)},jspb.BinaryDecoder.prototype.readBytes=function(e){if(0>e||this.cursor_+e>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var t=this.bytes_.subarray(this.cursor_,this.cursor_+e);return this.cursor_+=e,goog.asserts.assert(this.cursor_<=this.end_),t},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64_(),jspb.utils.joinHash64(this.tempLow_,this.tempHigh_)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var e=this.bytes_,t=this.cursor_,r=e[t+0],o=e[t+1],n=e[t+2],s=e[t+3],i=e[t+4],a=e[t+5],g=e[t+6];e=e[t+7];return this.cursor_+=8,String.fromCharCode(r,o,n,s,i,a,g,e)},jspb.BinaryReader=function(e,t,r){this.decoder_=jspb.BinaryDecoder.alloc(e,t,r),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(e,t,r){if(jspb.BinaryReader.instanceCache_.length){var o=jspb.BinaryReader.instanceCache_.pop();return e&&o.decoder_.setBlock(e,t,r),o}return new jspb.BinaryReader(e,t,r)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(e,t,r){this.decoder_.setBlock(e,t,r),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(e){this.decoder_.advance(e)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var e,t=(e=this.decoder_.readUnsignedVarint32())>>>3;return(e=7&e)!=jspb.BinaryConstants.WireType.VARINT&&e!=jspb.BinaryConstants.WireType.FIXED32&&e!=jspb.BinaryConstants.WireType.FIXED64&&e!=jspb.BinaryConstants.WireType.DELIMITED&&e!=jspb.BinaryConstants.WireType.START_GROUP&&e!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type"),this.error_=!0,!1):(this.nextField_=t,this.nextWireType_=e,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var e=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==e;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var e=this.decoder_.readUnsignedVarint32();this.decoder_.advance(e)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){var e=[this.nextField_];do{if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP)e.push(this.nextField_);else if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP&&this.nextField_!=e.pop()){goog.asserts.fail("Unmatched end-group tag"),this.error_=!0;break}}while(0<e.length)},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(e,t){goog.isNull(this.readCallbacks_)&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[e]),this.readCallbacks_[e]=t},jspb.BinaryReader.prototype.runReadCallback=function(e){return goog.asserts.assert(!goog.isNull(this.readCallbacks_)),e=this.readCallbacks_[e],goog.asserts.assert(e),e(this)},jspb.BinaryReader.prototype.readAny=function(e){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(e);var t=jspb.BinaryConstants.FieldType;switch(e){case t.DOUBLE:return this.readDouble();case t.FLOAT:return this.readFloat();case t.INT64:return this.readInt64();case t.UINT64:return this.readUint64();case t.INT32:return this.readInt32();case t.FIXED64:return this.readFixed64();case t.FIXED32:return this.readFixed32();case t.BOOL:return this.readBool();case t.STRING:return this.readString();case t.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case t.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case t.BYTES:return this.readBytes();case t.UINT32:return this.readUint32();case t.ENUM:return this.readEnum();case t.SFIXED32:return this.readSfixed32();case t.SFIXED64:return this.readSfixed64();case t.SINT32:return this.readSint32();case t.SINT64:return this.readSint64();case t.FHASH64:return this.readFixedHash64();case t.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(e,t){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var r=this.decoder_.getEnd(),o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;this.decoder_.setEnd(o),t(e,this),this.decoder_.setCursor(o),this.decoder_.setEnd(r)},jspb.BinaryReader.prototype.readGroup=function(e,t,r){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==e),r(t,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32(),t=this.decoder_.getCursor(),r=t+e;e=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),t,e);return this.decoder_.setCursor(r),e},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(e)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(e)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readPackedField_=function(e){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);for(var t=this.decoder_.readUnsignedVarint32(),r=(t=this.decoder_.getCursor()+t,[]);this.decoder_.getCursor()<t;)r.push(e.call(this.decoder_));return r},jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)},jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)},jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)},jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)},jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)},jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)},jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)},jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)},jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)},jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)},jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)},jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)},jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)},jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)},jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)},jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)},jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)},jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)},jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)},jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)},jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)},jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)},jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)},jspb.Export={},exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf}).call(this,__webpack_require__(0))}]));
	}).call($global);
$packages["github.com/johanbrandhorst/protobuf/jspb"] = (function() {
	var $pkg = {}, $init, js, Writer, encoder, writer, Reader, decoder, reader, ptrType, sliceType, funcType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, ptrType$1, ptrType$2, sliceType$7, sliceType$8, sliceType$9, ptrType$3, ptrType$4, ptrType$5, NewWriter, NewReader, catchException;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	Writer = $pkg.Writer = $newType(8, $kindInterface, "jspb.Writer", true, "github.com/johanbrandhorst/protobuf/jspb", true, null);
	encoder = $pkg.encoder = $newType(0, $kindStruct, "jspb.encoder", true, "github.com/johanbrandhorst/protobuf/jspb", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	writer = $pkg.writer = $newType(0, $kindStruct, "jspb.writer", true, "github.com/johanbrandhorst/protobuf/jspb", false, function(Object_, encoder_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.encoder = ptrType.nil;
			return;
		}
		this.Object = Object_;
		this.encoder = encoder_;
	});
	Reader = $pkg.Reader = $newType(8, $kindInterface, "jspb.Reader", true, "github.com/johanbrandhorst/protobuf/jspb", true, null);
	decoder = $pkg.decoder = $newType(0, $kindStruct, "jspb.decoder", true, "github.com/johanbrandhorst/protobuf/jspb", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	reader = $pkg.reader = $newType(0, $kindStruct, "jspb.reader", true, "github.com/johanbrandhorst/protobuf/jspb", false, function(Object_, decoder_, err_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.decoder = ptrType$1.nil;
			this.err = $ifaceNil;
			return;
		}
		this.Object = Object_;
		this.decoder = decoder_;
		this.err = err_;
	});
	ptrType = $ptrType(encoder);
	sliceType = $sliceType($Uint8);
	funcType = $funcType([], [], false);
	sliceType$1 = $sliceType($Int32);
	sliceType$2 = $sliceType($Uint32);
	sliceType$3 = $sliceType($Float32);
	sliceType$4 = $sliceType($Float64);
	sliceType$5 = $sliceType($Int);
	sliceType$6 = $sliceType($Bool);
	ptrType$1 = $ptrType(decoder);
	ptrType$2 = $ptrType($error);
	sliceType$7 = $sliceType($emptyInterface);
	sliceType$8 = $sliceType($Int64);
	sliceType$9 = $sliceType($Uint64);
	ptrType$3 = $ptrType(js.Error);
	ptrType$4 = $ptrType(js.Object);
	ptrType$5 = $ptrType(reader);
	encoder.ptr.prototype.WriteInt64 = function(value) {
		var e, value;
		e = this;
		e.Object.writeSplitVarint64($externalize(new $Int64(value.$high & 0, (value.$low & 4294967295) >>> 0), $Int64), $externalize($shiftRightUint64((new $Uint64(value.$high, value.$low)), 32), $Uint64));
	};
	encoder.prototype.WriteInt64 = function(value) { return this.$val.WriteInt64(value); };
	encoder.ptr.prototype.WriteUint64 = function(value) {
		var e, value;
		e = this;
		e.Object.writeSplitVarint64($externalize(new $Uint64(value.$high & 0, (value.$low & 4294967295) >>> 0), $Uint64), $externalize($shiftRightUint64(value, 32), $Uint64));
	};
	encoder.prototype.WriteUint64 = function(value) { return this.$val.WriteUint64(value); };
	encoder.ptr.prototype.WriteZigzag64 = function(value) {
		var e, v, value, x, x$1, x$2;
		e = this;
		v = (x = $shiftLeft64((new $Uint64(value.$high, value.$low)), 1), x$1 = ((x$2 = $shiftRightInt64(value, 63), new $Uint64(x$2.$high, x$2.$low))), new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0));
		$clone(e, encoder).WriteUint64(v);
	};
	encoder.prototype.WriteZigzag64 = function(value) { return this.$val.WriteZigzag64(value); };
	encoder.ptr.prototype.WriteFixed64 = function(value) {
		var e, value;
		e = this;
		e.Object.writeSplitFixed64($externalize(new $Uint64(value.$high & 0, (value.$low & 4294967295) >>> 0), $Uint64), $externalize($shiftRightUint64(value, 32), $Uint64));
	};
	encoder.prototype.WriteFixed64 = function(value) { return this.$val.WriteFixed64(value); };
	encoder.ptr.prototype.WriteSignedFixed64 = function(value) {
		var e, value;
		e = this;
		e.Object.writeSplitFixed64($externalize(new $Int64(value.$high & 0, (value.$low & 4294967295) >>> 0), $Int64), $externalize($shiftRightUint64((new $Uint64(value.$high, value.$low)), 32), $Uint64));
	};
	encoder.prototype.WriteSignedFixed64 = function(value) { return this.$val.WriteSignedFixed64(value); };
	NewWriter = function() {
		var w;
		w = new writer.ptr(new ($global.BinaryWriter)(), ptrType.nil);
		w.encoder = new encoder.ptr(w.Object.encoder_);
		return w;
	};
	$pkg.NewWriter = NewWriter;
	writer.ptr.prototype.GetResult = function() {
		var w;
		w = this;
		return $assertType($internalize(w.Object.getResultBuffer(), $emptyInterface), sliceType);
	};
	writer.prototype.GetResult = function() { return this.$val.GetResult(); };
	writer.ptr.prototype.WriteInt32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeInt32(field, value);
	};
	writer.prototype.WriteInt32 = function(field, value) { return this.$val.WriteInt32(field, value); };
	writer.ptr.prototype.WriteInt64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFieldHeader_(field, 0);
		$clone(w.encoder, encoder).WriteInt64(value);
	};
	writer.prototype.WriteInt64 = function(field, value) { return this.$val.WriteInt64(field, value); };
	writer.ptr.prototype.WriteUint32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeUint32(field, value);
	};
	writer.prototype.WriteUint32 = function(field, value) { return this.$val.WriteUint32(field, value); };
	writer.ptr.prototype.WriteUint64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFieldHeader_(field, 0);
		$clone(w.encoder, encoder).WriteUint64(value);
	};
	writer.prototype.WriteUint64 = function(field, value) { return this.$val.WriteUint64(field, value); };
	writer.ptr.prototype.WriteSint32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeSint32(field, value);
	};
	writer.prototype.WriteSint32 = function(field, value) { return this.$val.WriteSint32(field, value); };
	writer.ptr.prototype.WriteSint64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFieldHeader_(field, 0);
		$clone(w.encoder, encoder).WriteZigzag64(value);
	};
	writer.prototype.WriteSint64 = function(field, value) { return this.$val.WriteSint64(field, value); };
	writer.ptr.prototype.WriteFixed32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFixed32(field, value);
	};
	writer.prototype.WriteFixed32 = function(field, value) { return this.$val.WriteFixed32(field, value); };
	writer.ptr.prototype.WriteFixed64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFieldHeader_(field, 1);
		$clone(w.encoder, encoder).WriteFixed64(value);
	};
	writer.prototype.WriteFixed64 = function(field, value) { return this.$val.WriteFixed64(field, value); };
	writer.ptr.prototype.WriteSfixed32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeSfixed32(field, value);
	};
	writer.prototype.WriteSfixed32 = function(field, value) { return this.$val.WriteSfixed32(field, value); };
	writer.ptr.prototype.WriteSfixed64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFieldHeader_(field, 1);
		$clone(w.encoder, encoder).WriteSignedFixed64(value);
	};
	writer.prototype.WriteSfixed64 = function(field, value) { return this.$val.WriteSfixed64(field, value); };
	writer.ptr.prototype.WriteFloat32 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeFloat(field, value);
	};
	writer.prototype.WriteFloat32 = function(field, value) { return this.$val.WriteFloat32(field, value); };
	writer.ptr.prototype.WriteFloat64 = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeDouble(field, value);
	};
	writer.prototype.WriteFloat64 = function(field, value) { return this.$val.WriteFloat64(field, value); };
	writer.ptr.prototype.WriteEnum = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeEnum(field, value);
	};
	writer.prototype.WriteEnum = function(field, value) { return this.$val.WriteEnum(field, value); };
	writer.ptr.prototype.WriteBool = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeBool(field, $externalize(value, $Bool));
	};
	writer.prototype.WriteBool = function(field, value) { return this.$val.WriteBool(field, value); };
	writer.ptr.prototype.WriteString = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeString(field, $externalize(value, $String));
	};
	writer.prototype.WriteString = function(field, value) { return this.$val.WriteString(field, value); };
	writer.ptr.prototype.WriteBytes = function(field, value) {
		var field, value, w;
		w = this;
		w.Object.writeBytes(field, $externalize(value, sliceType));
	};
	writer.prototype.WriteBytes = function(field, value) { return this.$val.WriteBytes(field, value); };
	writer.ptr.prototype.WriteMessage = function(field, writeFunc) {
		var field, w, writeFunc;
		w = this;
		w.Object.writeMessage(field, 0, $externalize(writeFunc, funcType));
	};
	writer.prototype.WriteMessage = function(field, writeFunc) { return this.$val.WriteMessage(field, writeFunc); };
	writer.ptr.prototype.WriteInt32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedInt32(field, $externalize(values, sliceType$1));
	};
	writer.prototype.WriteInt32Slice = function(field, values) { return this.$val.WriteInt32Slice(field, values); };
	writer.ptr.prototype.WriteInt64Slice = function(field, values) {
		var _i, _ref, b, field, value, values, w;
		w = this;
		b = w.Object.beginDelimited_(field);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$clone(w.encoder, encoder).WriteInt64(value);
			_i++;
		}
		w.Object.endDelimited_(b);
	};
	writer.prototype.WriteInt64Slice = function(field, values) { return this.$val.WriteInt64Slice(field, values); };
	writer.ptr.prototype.WriteUint32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedUint32(field, $externalize(values, sliceType$2));
	};
	writer.prototype.WriteUint32Slice = function(field, values) { return this.$val.WriteUint32Slice(field, values); };
	writer.ptr.prototype.WriteUint64Slice = function(field, values) {
		var _i, _ref, b, field, value, values, w;
		w = this;
		b = w.Object.beginDelimited_(field);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$clone(w.encoder, encoder).WriteUint64(value);
			_i++;
		}
		w.Object.endDelimited_(b);
	};
	writer.prototype.WriteUint64Slice = function(field, values) { return this.$val.WriteUint64Slice(field, values); };
	writer.ptr.prototype.WriteSint32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedSint32(field, $externalize(values, sliceType$1));
	};
	writer.prototype.WriteSint32Slice = function(field, values) { return this.$val.WriteSint32Slice(field, values); };
	writer.ptr.prototype.WriteSint64Slice = function(field, values) {
		var _i, _ref, b, field, value, values, w;
		w = this;
		b = w.Object.beginDelimited_(field);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$clone(w.encoder, encoder).WriteZigzag64(value);
			_i++;
		}
		w.Object.endDelimited_(b);
	};
	writer.prototype.WriteSint64Slice = function(field, values) { return this.$val.WriteSint64Slice(field, values); };
	writer.ptr.prototype.WriteFixed32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedFixed32(field, $externalize(values, sliceType$2));
	};
	writer.prototype.WriteFixed32Slice = function(field, values) { return this.$val.WriteFixed32Slice(field, values); };
	writer.ptr.prototype.WriteFixed64Slice = function(field, values) {
		var _i, _ref, e, field, value, values, w;
		w = this;
		w.Object.writeFieldHeader_(field, 2);
		e = w.Object.encoder_;
		e.writeUnsignedVarint32($imul(values.$length, 8));
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$clone(w.encoder, encoder).WriteFixed64(value);
			_i++;
		}
	};
	writer.prototype.WriteFixed64Slice = function(field, values) { return this.$val.WriteFixed64Slice(field, values); };
	writer.ptr.prototype.WriteSfixed32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedSfixed32(field, $externalize(values, sliceType$1));
	};
	writer.prototype.WriteSfixed32Slice = function(field, values) { return this.$val.WriteSfixed32Slice(field, values); };
	writer.ptr.prototype.WriteSfixed64Slice = function(field, values) {
		var _i, _ref, e, field, value, values, w;
		w = this;
		w.Object.writeFieldHeader_(field, 2);
		e = w.Object.encoder_;
		e.writeUnsignedVarint32($imul(values.$length, 8));
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$clone(w.encoder, encoder).WriteSignedFixed64(value);
			_i++;
		}
	};
	writer.prototype.WriteSfixed64Slice = function(field, values) { return this.$val.WriteSfixed64Slice(field, values); };
	writer.ptr.prototype.WriteFloat32Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedFloat(field, $externalize(values, sliceType$3));
	};
	writer.prototype.WriteFloat32Slice = function(field, values) { return this.$val.WriteFloat32Slice(field, values); };
	writer.ptr.prototype.WriteFloat64Slice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedDouble(field, $externalize(values, sliceType$4));
	};
	writer.prototype.WriteFloat64Slice = function(field, values) { return this.$val.WriteFloat64Slice(field, values); };
	writer.ptr.prototype.WriteEnumSlice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedEnum(field, $externalize(values, sliceType$5));
	};
	writer.prototype.WriteEnumSlice = function(field, values) { return this.$val.WriteEnumSlice(field, values); };
	writer.ptr.prototype.WriteBoolSlice = function(field, values) {
		var field, values, w;
		w = this;
		w.Object.writePackedBool(field, $externalize(values, sliceType$6));
	};
	writer.prototype.WriteBoolSlice = function(field, values) { return this.$val.WriteBoolSlice(field, values); };
	decoder.ptr.prototype.ReadInt64 = function() {
		var d, high, low;
		d = this;
		d.Object.readSplitVarint64_();
		high = $internalize(d.Object.tempHigh_, $Uint64);
		low = $internalize(d.Object.tempLow_, $Uint64);
		return $clone(d, decoder).mergeSignedInteger(low, high);
	};
	decoder.prototype.ReadInt64 = function() { return this.$val.ReadInt64(); };
	decoder.ptr.prototype.ReadZigzag64 = function() {
		var d, v, x, x$1, x$2, x$3, x$4;
		d = this;
		v = $clone(d, decoder).ReadUint64();
		return ((x = (x$1 = $shiftRightUint64(v, 1), x$2 = ((x$3 = $shiftRightInt64(($shiftLeft64(((x$4 = new $Uint64(v.$high & 0, (v.$low & 1) >>> 0), new $Int64(x$4.$high, x$4.$low))), 63)), 63), new $Uint64(x$3.$high, x$3.$low))), new $Uint64(x$1.$high ^ x$2.$high, (x$1.$low ^ x$2.$low) >>> 0)), new $Int64(x.$high, x.$low)));
	};
	decoder.prototype.ReadZigzag64 = function() { return this.$val.ReadZigzag64(); };
	decoder.ptr.prototype.ReadUint64 = function() {
		var d, high, low, x;
		d = this;
		d.Object.readSplitVarint64_();
		high = $internalize(d.Object.tempHigh_, $Uint64);
		low = $internalize(d.Object.tempLow_, $Uint64);
		return (x = $shiftLeft64(high, 32), new $Uint64(x.$high | low.$high, (x.$low | low.$low) >>> 0));
	};
	decoder.prototype.ReadUint64 = function() { return this.$val.ReadUint64(); };
	decoder.ptr.prototype.ReadFixed64 = function() {
		var d, high, low, x;
		d = this;
		low = $internalize(d.Object.readUint32(), $Uint64);
		high = $internalize(d.Object.readUint32(), $Uint64);
		return (x = $shiftLeft64(high, 32), new $Uint64(x.$high | low.$high, (x.$low | low.$low) >>> 0));
	};
	decoder.prototype.ReadFixed64 = function() { return this.$val.ReadFixed64(); };
	decoder.ptr.prototype.ReadSignedFixed64 = function() {
		var d, high, low;
		d = this;
		low = $internalize(d.Object.readUint32(), $Uint64);
		high = $internalize(d.Object.readUint32(), $Uint64);
		return $clone(d, decoder).mergeSignedInteger(low, high);
	};
	decoder.prototype.ReadSignedFixed64 = function() { return this.$val.ReadSignedFixed64(); };
	decoder.ptr.prototype.mergeSignedInteger = function(low, high) {
		var carry, d, high, low, negative, x, x$1, x$2, x$3, x$4;
		d = this;
		negative = (x = new $Uint64(high.$high & 0, (high.$low & 8) >>> 0), (x.$high === 0 && x.$low === 1));
		if (negative) {
			low = (x$1 = new $Uint64(~low.$high, ~low.$low >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 1));
			carry = new $Uint64(0, 0);
			if ((low.$high === 0 && low.$low === 0)) {
				carry = new $Uint64(0, 1);
			}
			high = (x$2 = new $Uint64(~high.$high, ~high.$low >>> 0), new $Uint64(x$2.$high + carry.$high, x$2.$low + carry.$low));
		}
		return ((x$3 = (x$4 = $shiftLeft64(high, 32), new $Uint64(x$4.$high | low.$high, (x$4.$low | low.$low) >>> 0)), new $Int64(x$3.$high, x$3.$low)));
	};
	decoder.prototype.mergeSignedInteger = function(low, high) { return this.$val.mergeSignedInteger(low, high); };
	NewReader = function(data) {
		var data, r;
		r = new reader.ptr(new ($global.BinaryReader)($externalize(data, sliceType)), ptrType$1.nil, $ifaceNil);
		r.decoder = new decoder.ptr(r.Object.decoder_);
		return r;
	};
	$pkg.NewReader = NewReader;
	reader.ptr.prototype.Next = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $interfaceIsEqual(r.err, $ifaceNil) && !!(r.Object.nextField()) && !!!(r.Object.isEndGroup());
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.Next, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.Next = function() { return this.$val.Next(); };
	reader.ptr.prototype.Err = function() {
		var r;
		r = this;
		return r.err;
	};
	reader.prototype.Err = function() { return this.$val.Err(); };
	reader.ptr.prototype.GetFieldNumber = function() {
		var r;
		r = this;
		return $parseInt(r.Object.getFieldNumber()) >> 0;
	};
	reader.prototype.GetFieldNumber = function() { return this.$val.GetFieldNumber(); };
	reader.ptr.prototype.SkipField = function() {
		var r;
		r = this;
		r.Object.skipField();
	};
	reader.prototype.SkipField = function() { return this.$val.SkipField(); };
	reader.ptr.prototype.ReadInt32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ((($parseInt(r.Object.readInt32()) >> 0) >> 0));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadInt32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadInt32 = function() { return this.$val.ReadInt32(); };
	reader.ptr.prototype.ReadInt64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $clone(r.decoder, decoder).ReadInt64();
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new $Int64(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadInt64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadInt64 = function() { return this.$val.ReadInt64(); };
	reader.ptr.prototype.ReadUint32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ((($parseInt(r.Object.readUint32()) >> 0) >>> 0));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadUint32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadUint32 = function() { return this.$val.ReadUint32(); };
	reader.ptr.prototype.ReadUint64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $clone(r.decoder, decoder).ReadUint64();
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new $Uint64(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadUint64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadUint64 = function() { return this.$val.ReadUint64(); };
	reader.ptr.prototype.ReadSint32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ((($parseInt(r.Object.readSint32()) >> 0) >> 0));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSint32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSint32 = function() { return this.$val.ReadSint32(); };
	reader.ptr.prototype.ReadSint64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $clone(r.decoder, decoder).ReadZigzag64();
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new $Int64(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSint64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSint64 = function() { return this.$val.ReadSint64(); };
	reader.ptr.prototype.ReadFixed32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ((($parseInt(r.Object.readFixed32()) >> 0) >>> 0));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFixed32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFixed32 = function() { return this.$val.ReadFixed32(); };
	reader.ptr.prototype.ReadFixed64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $clone(r.decoder, decoder).ReadFixed64();
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new $Uint64(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFixed64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFixed64 = function() { return this.$val.ReadFixed64(); };
	reader.ptr.prototype.ReadSfixed32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ((($parseInt(r.Object.readSfixed32()) >> 0) >> 0));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSfixed32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSfixed32 = function() { return this.$val.ReadSfixed32(); };
	reader.ptr.prototype.ReadSfixed64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $clone(r.decoder, decoder).ReadSignedFixed64();
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return new $Int64(0, 0); } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSfixed64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSfixed64 = function() { return this.$val.ReadSfixed64(); };
	reader.ptr.prototype.ReadFloat32 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = ($fround($parseFloat(r.Object.readFloat())));
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFloat32, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFloat32 = function() { return this.$val.ReadFloat32(); };
	reader.ptr.prototype.ReadFloat64 = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $parseFloat(r.Object.readDouble());
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFloat64, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFloat64 = function() { return this.$val.ReadFloat64(); };
	reader.ptr.prototype.ReadEnum = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $parseInt(r.Object.readEnum()) >> 0;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return 0; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadEnum, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadEnum = function() { return this.$val.ReadEnum(); };
	reader.ptr.prototype.ReadBool = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = !!(r.Object.readBool());
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadBool, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadBool = function() { return this.$val.ReadBool(); };
	reader.ptr.prototype.ReadString = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $internalize(r.Object.readString(), $String);
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return ""; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadString, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadString = function() { return this.$val.ReadString(); };
	reader.ptr.prototype.ReadBytes = function() {
		var {$24r, r, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		$24r = $assertType($internalize(r.Object.readBytes(), $emptyInterface), sliceType);
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return sliceType.nil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadBytes, $c: true, $r, $24r, r, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadBytes = function() { return this.$val.ReadBytes(); };
	reader.ptr.prototype.ReadMessage = function(readFunc) {
		var r, readFunc, $deferred;
		/* */ var $err = null; try { $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		r.Object.readMessage(undefined, $externalize(readFunc, funcType));
		/* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); }
	};
	reader.prototype.ReadMessage = function(readFunc) { return this.$val.ReadMessage(readFunc); };
	reader.ptr.prototype.ReadInt32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$1.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedInt32(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadInt32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadInt32Slice = function() { return this.$val.ReadInt32Slice(); };
	reader.ptr.prototype.ReadInt64Slice = function() {
		var {$24r, cb, r, ret, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = [r];
		ret = [ret];
		ret[0] = sliceType$8.nil;
		r[0] = this;
		$deferred.push([catchException, [(r[0].$ptr_err || (r[0].$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r[0])))]]);
		cb = js.MakeFunc((function(r, ret) { return function(param, param$1) {
			var param, param$1;
			ret[0] = $append(ret[0], $clone(r[0].decoder, decoder).ReadInt64());
			return new $jsObjectPtr(undefined);
		}; })(r, ret));
		r[0].Object.readPackedField_(cb);
		ret[0] = ret[0];
		$24r = ret[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadInt64Slice, $c: true, $r, $24r, cb, r, ret, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadInt64Slice = function() { return this.$val.ReadInt64Slice(); };
	reader.ptr.prototype.ReadUint32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$2.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedUint32(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadUint32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadUint32Slice = function() { return this.$val.ReadUint32Slice(); };
	reader.ptr.prototype.ReadUint64Slice = function() {
		var {$24r, cb, r, ret, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = [r];
		ret = [ret];
		ret[0] = sliceType$9.nil;
		r[0] = this;
		$deferred.push([catchException, [(r[0].$ptr_err || (r[0].$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r[0])))]]);
		cb = js.MakeFunc((function(r, ret) { return function(param, param$1) {
			var param, param$1;
			ret[0] = $append(ret[0], $clone(r[0].decoder, decoder).ReadUint64());
			return new $jsObjectPtr(undefined);
		}; })(r, ret));
		r[0].Object.readPackedField_(cb);
		ret[0] = ret[0];
		$24r = ret[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadUint64Slice, $c: true, $r, $24r, cb, r, ret, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadUint64Slice = function() { return this.$val.ReadUint64Slice(); };
	reader.ptr.prototype.ReadSint32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$1.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedSint32(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSint32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSint32Slice = function() { return this.$val.ReadSint32Slice(); };
	reader.ptr.prototype.ReadSint64Slice = function() {
		var {$24r, cb, r, ret, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = [r];
		ret = [ret];
		ret[0] = sliceType$8.nil;
		r[0] = this;
		$deferred.push([catchException, [(r[0].$ptr_err || (r[0].$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r[0])))]]);
		cb = js.MakeFunc((function(r, ret) { return function(param, param$1) {
			var param, param$1;
			ret[0] = $append(ret[0], $clone(r[0].decoder, decoder).ReadZigzag64());
			return new $jsObjectPtr(undefined);
		}; })(r, ret));
		r[0].Object.readPackedField_(cb);
		ret[0] = ret[0];
		$24r = ret[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSint64Slice, $c: true, $r, $24r, cb, r, ret, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSint64Slice = function() { return this.$val.ReadSint64Slice(); };
	reader.ptr.prototype.ReadFixed32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$2.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedFixed32(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFixed32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFixed32Slice = function() { return this.$val.ReadFixed32Slice(); };
	reader.ptr.prototype.ReadFixed64Slice = function() {
		var {$24r, cb, r, ret, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = [r];
		ret = [ret];
		ret[0] = sliceType$9.nil;
		r[0] = this;
		$deferred.push([catchException, [(r[0].$ptr_err || (r[0].$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r[0])))]]);
		cb = js.MakeFunc((function(r, ret) { return function(param, param$1) {
			var param, param$1;
			ret[0] = $append(ret[0], $clone(r[0].decoder, decoder).ReadFixed64());
			return new $jsObjectPtr(undefined);
		}; })(r, ret));
		r[0].Object.readPackedField_(cb);
		ret[0] = ret[0];
		$24r = ret[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFixed64Slice, $c: true, $r, $24r, cb, r, ret, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFixed64Slice = function() { return this.$val.ReadFixed64Slice(); };
	reader.ptr.prototype.ReadSfixed32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$1.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedSfixed32(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSfixed32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSfixed32Slice = function() { return this.$val.ReadSfixed32Slice(); };
	reader.ptr.prototype.ReadSfixed64Slice = function() {
		var {$24r, cb, r, ret, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		r = [r];
		ret = [ret];
		ret[0] = sliceType$8.nil;
		r[0] = this;
		$deferred.push([catchException, [(r[0].$ptr_err || (r[0].$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r[0])))]]);
		cb = js.MakeFunc((function(r, ret) { return function(param, param$1) {
			var param, param$1;
			ret[0] = $append(ret[0], $clone(r[0].decoder, decoder).ReadSignedFixed64());
			return new $jsObjectPtr(undefined);
		}; })(r, ret));
		r[0].Object.readPackedField_(cb);
		ret[0] = ret[0];
		$24r = ret[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret[0]; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadSfixed64Slice, $c: true, $r, $24r, cb, r, ret, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadSfixed64Slice = function() { return this.$val.ReadSfixed64Slice(); };
	reader.ptr.prototype.ReadFloat32Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$3.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedFloat(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, ($fround($assertType(value, $Float64))));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFloat32Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFloat32Slice = function() { return this.$val.ReadFloat32Slice(); };
	reader.ptr.prototype.ReadFloat64Slice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$4.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedDouble(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, $assertType(value, $Float64));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadFloat64Slice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadFloat64Slice = function() { return this.$val.ReadFloat64Slice(); };
	reader.ptr.prototype.ReadEnumSlice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$5.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedEnum(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, (($assertType(value, $Float64) >> 0)));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadEnumSlice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadEnumSlice = function() { return this.$val.ReadEnumSlice(); };
	reader.ptr.prototype.ReadBoolSlice = function() {
		var {$24r, _i, _ref, r, ret, value, values, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ret = sliceType$6.nil;
		r = this;
		$deferred.push([catchException, [(r.$ptr_err || (r.$ptr_err = new ptrType$2(function() { return this.$target.err; }, function($v) { this.$target.err = $v; }, r)))]]);
		values = $assertType($internalize(r.Object.readPackedBool(), $emptyInterface), sliceType$7);
		_ref = values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			ret = $append(ret, $assertType(value, $Bool));
			_i++;
		}
		ret = ret;
		$24r = ret;
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  ret; } if($curGoroutine.asleep) { var $f = {$blk: reader.ptr.prototype.ReadBoolSlice, $c: true, $r, $24r, _i, _ref, r, ret, value, values, $s, $deferred};return $f; } }
	};
	reader.prototype.ReadBoolSlice = function() { return this.$val.ReadBoolSlice(); };
	catchException = function(err) {
		var _tuple, e, e$1, err, ok;
		e = $recover();
		if ($interfaceIsEqual(e, $ifaceNil)) {
			return;
		}
		_tuple = $assertType(e, ptrType$3, true);
		e$1 = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			err.$set(e$1);
		} else {
			$panic(e$1);
		}
	};
	encoder.methods = [{prop: "WriteInt64", name: "WriteInt64", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "WriteUint64", name: "WriteUint64", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "WriteZigzag64", name: "WriteZigzag64", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "WriteFixed64", name: "WriteFixed64", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "WriteSignedFixed64", name: "WriteSignedFixed64", pkg: "", typ: $funcType([$Int64], [], false)}];
	writer.methods = [{prop: "GetResult", name: "GetResult", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "WriteInt32", name: "WriteInt32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteInt64", name: "WriteInt64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteUint32", name: "WriteUint32", pkg: "", typ: $funcType([$Int, $Uint32], [], false)}, {prop: "WriteUint64", name: "WriteUint64", pkg: "", typ: $funcType([$Int, $Uint64], [], false)}, {prop: "WriteSint32", name: "WriteSint32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteSint64", name: "WriteSint64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteFixed32", name: "WriteFixed32", pkg: "", typ: $funcType([$Int, $Uint32], [], false)}, {prop: "WriteFixed64", name: "WriteFixed64", pkg: "", typ: $funcType([$Int, $Uint64], [], false)}, {prop: "WriteSfixed32", name: "WriteSfixed32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteSfixed64", name: "WriteSfixed64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteFloat32", name: "WriteFloat32", pkg: "", typ: $funcType([$Int, $Float32], [], false)}, {prop: "WriteFloat64", name: "WriteFloat64", pkg: "", typ: $funcType([$Int, $Float64], [], false)}, {prop: "WriteEnum", name: "WriteEnum", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "WriteBool", name: "WriteBool", pkg: "", typ: $funcType([$Int, $Bool], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$Int, $String], [], false)}, {prop: "WriteBytes", name: "WriteBytes", pkg: "", typ: $funcType([$Int, sliceType], [], false)}, {prop: "WriteMessage", name: "WriteMessage", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "WriteInt32Slice", name: "WriteInt32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteInt64Slice", name: "WriteInt64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteUint32Slice", name: "WriteUint32Slice", pkg: "", typ: $funcType([$Int, sliceType$2], [], false)}, {prop: "WriteUint64Slice", name: "WriteUint64Slice", pkg: "", typ: $funcType([$Int, sliceType$9], [], false)}, {prop: "WriteSint32Slice", name: "WriteSint32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteSint64Slice", name: "WriteSint64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteFixed32Slice", name: "WriteFixed32Slice", pkg: "", typ: $funcType([$Int, sliceType$2], [], false)}, {prop: "WriteFixed64Slice", name: "WriteFixed64Slice", pkg: "", typ: $funcType([$Int, sliceType$9], [], false)}, {prop: "WriteSfixed32Slice", name: "WriteSfixed32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteSfixed64Slice", name: "WriteSfixed64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteFloat32Slice", name: "WriteFloat32Slice", pkg: "", typ: $funcType([$Int, sliceType$3], [], false)}, {prop: "WriteFloat64Slice", name: "WriteFloat64Slice", pkg: "", typ: $funcType([$Int, sliceType$4], [], false)}, {prop: "WriteEnumSlice", name: "WriteEnumSlice", pkg: "", typ: $funcType([$Int, sliceType$5], [], false)}, {prop: "WriteBoolSlice", name: "WriteBoolSlice", pkg: "", typ: $funcType([$Int, sliceType$6], [], false)}];
	decoder.methods = [{prop: "ReadInt64", name: "ReadInt64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadZigzag64", name: "ReadZigzag64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadUint64", name: "ReadUint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadFixed64", name: "ReadFixed64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadSignedFixed64", name: "ReadSignedFixed64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "mergeSignedInteger", name: "mergeSignedInteger", pkg: "github.com/johanbrandhorst/protobuf/jspb", typ: $funcType([$Uint64, $Uint64], [$Int64], false)}];
	reader.methods = [{prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetFieldNumber", name: "GetFieldNumber", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SkipField", name: "SkipField", pkg: "", typ: $funcType([], [], false)}];
	ptrType$5.methods = [{prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReadInt32", name: "ReadInt32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadInt64", name: "ReadInt64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadUint32", name: "ReadUint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "ReadUint64", name: "ReadUint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadSint32", name: "ReadSint32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadSint64", name: "ReadSint64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadFixed32", name: "ReadFixed32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "ReadFixed64", name: "ReadFixed64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadSfixed32", name: "ReadSfixed32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadSfixed64", name: "ReadSfixed64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadFloat32", name: "ReadFloat32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "ReadFloat64", name: "ReadFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ReadEnum", name: "ReadEnum", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ReadBool", name: "ReadBool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ReadMessage", name: "ReadMessage", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "ReadInt32Slice", name: "ReadInt32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadInt64Slice", name: "ReadInt64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadUint32Slice", name: "ReadUint32Slice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ReadUint64Slice", name: "ReadUint64Slice", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "ReadSint32Slice", name: "ReadSint32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadSint64Slice", name: "ReadSint64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadFixed32Slice", name: "ReadFixed32Slice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ReadFixed64Slice", name: "ReadFixed64Slice", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "ReadSfixed32Slice", name: "ReadSfixed32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadSfixed64Slice", name: "ReadSfixed64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadFloat32Slice", name: "ReadFloat32Slice", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "ReadFloat64Slice", name: "ReadFloat64Slice", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "ReadEnumSlice", name: "ReadEnumSlice", pkg: "", typ: $funcType([], [sliceType$5], false)}, {prop: "ReadBoolSlice", name: "ReadBoolSlice", pkg: "", typ: $funcType([], [sliceType$6], false)}];
	Writer.init([{prop: "GetResult", name: "GetResult", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "WriteBool", name: "WriteBool", pkg: "", typ: $funcType([$Int, $Bool], [], false)}, {prop: "WriteBoolSlice", name: "WriteBoolSlice", pkg: "", typ: $funcType([$Int, sliceType$6], [], false)}, {prop: "WriteBytes", name: "WriteBytes", pkg: "", typ: $funcType([$Int, sliceType], [], false)}, {prop: "WriteEnum", name: "WriteEnum", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "WriteEnumSlice", name: "WriteEnumSlice", pkg: "", typ: $funcType([$Int, sliceType$5], [], false)}, {prop: "WriteFixed32", name: "WriteFixed32", pkg: "", typ: $funcType([$Int, $Uint32], [], false)}, {prop: "WriteFixed32Slice", name: "WriteFixed32Slice", pkg: "", typ: $funcType([$Int, sliceType$2], [], false)}, {prop: "WriteFixed64", name: "WriteFixed64", pkg: "", typ: $funcType([$Int, $Uint64], [], false)}, {prop: "WriteFixed64Slice", name: "WriteFixed64Slice", pkg: "", typ: $funcType([$Int, sliceType$9], [], false)}, {prop: "WriteFloat32", name: "WriteFloat32", pkg: "", typ: $funcType([$Int, $Float32], [], false)}, {prop: "WriteFloat32Slice", name: "WriteFloat32Slice", pkg: "", typ: $funcType([$Int, sliceType$3], [], false)}, {prop: "WriteFloat64", name: "WriteFloat64", pkg: "", typ: $funcType([$Int, $Float64], [], false)}, {prop: "WriteFloat64Slice", name: "WriteFloat64Slice", pkg: "", typ: $funcType([$Int, sliceType$4], [], false)}, {prop: "WriteInt32", name: "WriteInt32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteInt32Slice", name: "WriteInt32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteInt64", name: "WriteInt64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteInt64Slice", name: "WriteInt64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteMessage", name: "WriteMessage", pkg: "", typ: $funcType([$Int, funcType], [], false)}, {prop: "WriteSfixed32", name: "WriteSfixed32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteSfixed32Slice", name: "WriteSfixed32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteSfixed64", name: "WriteSfixed64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteSfixed64Slice", name: "WriteSfixed64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteSint32", name: "WriteSint32", pkg: "", typ: $funcType([$Int, $Int32], [], false)}, {prop: "WriteSint32Slice", name: "WriteSint32Slice", pkg: "", typ: $funcType([$Int, sliceType$1], [], false)}, {prop: "WriteSint64", name: "WriteSint64", pkg: "", typ: $funcType([$Int, $Int64], [], false)}, {prop: "WriteSint64Slice", name: "WriteSint64Slice", pkg: "", typ: $funcType([$Int, sliceType$8], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$Int, $String], [], false)}, {prop: "WriteUint32", name: "WriteUint32", pkg: "", typ: $funcType([$Int, $Uint32], [], false)}, {prop: "WriteUint32Slice", name: "WriteUint32Slice", pkg: "", typ: $funcType([$Int, sliceType$2], [], false)}, {prop: "WriteUint64", name: "WriteUint64", pkg: "", typ: $funcType([$Int, $Uint64], [], false)}, {prop: "WriteUint64Slice", name: "WriteUint64Slice", pkg: "", typ: $funcType([$Int, sliceType$9], [], false)}]);
	encoder.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$4, tag: ""}]);
	writer.init("github.com/johanbrandhorst/protobuf/jspb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$4, tag: ""}, {prop: "encoder", name: "encoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
	Reader.init([{prop: "Err", name: "Err", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetFieldNumber", name: "GetFieldNumber", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReadBool", name: "ReadBool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ReadBoolSlice", name: "ReadBoolSlice", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "ReadEnum", name: "ReadEnum", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ReadEnumSlice", name: "ReadEnumSlice", pkg: "", typ: $funcType([], [sliceType$5], false)}, {prop: "ReadFixed32", name: "ReadFixed32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "ReadFixed32Slice", name: "ReadFixed32Slice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ReadFixed64", name: "ReadFixed64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadFixed64Slice", name: "ReadFixed64Slice", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "ReadFloat32", name: "ReadFloat32", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "ReadFloat32Slice", name: "ReadFloat32Slice", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "ReadFloat64", name: "ReadFloat64", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "ReadFloat64Slice", name: "ReadFloat64Slice", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "ReadInt32", name: "ReadInt32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadInt32Slice", name: "ReadInt32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadInt64", name: "ReadInt64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadInt64Slice", name: "ReadInt64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadMessage", name: "ReadMessage", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "ReadSfixed32", name: "ReadSfixed32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadSfixed32Slice", name: "ReadSfixed32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadSfixed64", name: "ReadSfixed64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadSfixed64Slice", name: "ReadSfixed64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadSint32", name: "ReadSint32", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "ReadSint32Slice", name: "ReadSint32Slice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "ReadSint64", name: "ReadSint64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "ReadSint64Slice", name: "ReadSint64Slice", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ReadUint32", name: "ReadUint32", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "ReadUint32Slice", name: "ReadUint32Slice", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "ReadUint64", name: "ReadUint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "ReadUint64Slice", name: "ReadUint64Slice", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "SkipField", name: "SkipField", pkg: "", typ: $funcType([], [], false)}]);
	decoder.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$4, tag: ""}]);
	reader.init("github.com/johanbrandhorst/protobuf/jspb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$4, tag: ""}, {prop: "decoder", name: "decoder", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/johanbrandhorst/protobuf/grpcweb"] = (function() {
	var $pkg = {}, $init, context, js, grpcwebjs, status, jspb, codes, metadata, io, properties, service, responseType, requestType, methodDescriptor, mdwrapper, onHeadersFunc, onEndFunc, onMessageFunc, client, DialOption, clientStreamClient, ClientStream, Client, callInfo, CallOption, beforeCall, sliceType, funcType, funcType$1, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, funcType$2, funcType$3, funcType$4, ptrType$6, ptrType$7, sliceType$1, ptrType$8, ptrType$9, ptrType$10, chanType, chanType$1, newProperties, newService, newResponseType, newRequestType, newMethodDescriptor, newClient, WithDefaultCallOptions, NewClient, ForceWebsocketTransport;
	context = $packages["context"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	grpcwebjs = $packages["github.com/johanbrandhorst/protobuf/grpcweb/grpcwebjs"];
	status = $packages["github.com/johanbrandhorst/protobuf/grpcweb/status"];
	jspb = $packages["github.com/johanbrandhorst/protobuf/jspb"];
	codes = $packages["google.golang.org/grpc/codes"];
	metadata = $packages["google.golang.org/grpc/metadata"];
	io = $packages["io"];
	properties = $pkg.properties = $newType(0, $kindStruct, "grpcweb.properties", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, host_, debug_, transport_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.host = "";
			this.debug = false;
			this.transport = null;
			return;
		}
		this.Object = Object_;
		this.host = host_;
		this.debug = debug_;
		this.transport = transport_;
	});
	service = $pkg.service = $newType(0, $kindStruct, "grpcweb.service", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, name_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.name = "";
			return;
		}
		this.Object = Object_;
		this.name = name_;
	});
	responseType = $pkg.responseType = $newType(0, $kindStruct, "grpcweb.responseType", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, deserializeFunc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.deserializeFunc = $throwNilPointerError;
			return;
		}
		this.Object = Object_;
		this.deserializeFunc = deserializeFunc_;
	});
	requestType = $pkg.requestType = $newType(0, $kindStruct, "grpcweb.requestType", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, serializeFunc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.serializeFunc = $throwNilPointerError;
			return;
		}
		this.Object = Object_;
		this.serializeFunc = serializeFunc_;
	});
	methodDescriptor = $pkg.methodDescriptor = $newType(0, $kindStruct, "grpcweb.methodDescriptor", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, service_, method_, requestStream_, responseStream_, responseType_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.service = ptrType.nil;
			this.method = "";
			this.requestStream = false;
			this.responseStream = false;
			this.responseType = ptrType$1.nil;
			return;
		}
		this.Object = Object_;
		this.service = service_;
		this.method = method_;
		this.requestStream = requestStream_;
		this.responseStream = responseStream_;
		this.responseType = responseType_;
	});
	mdwrapper = $pkg.mdwrapper = $newType(0, $kindStruct, "grpcweb.mdwrapper", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, MD_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.MD = false;
			return;
		}
		this.Object = Object_;
		this.MD = MD_;
	});
	onHeadersFunc = $pkg.onHeadersFunc = $newType(4, $kindFunc, "grpcweb.onHeadersFunc", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, null);
	onEndFunc = $pkg.onEndFunc = $newType(4, $kindFunc, "grpcweb.onEndFunc", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, null);
	onMessageFunc = $pkg.onMessageFunc = $newType(4, $kindFunc, "grpcweb.onMessageFunc", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, null);
	client = $pkg.client = $newType(0, $kindStruct, "grpcweb.client", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(Object_, onEnd_, onMessage_, onHeaders_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.onEnd = $throwNilPointerError;
			this.onMessage = $throwNilPointerError;
			this.onHeaders = $throwNilPointerError;
			return;
		}
		this.Object = Object_;
		this.onEnd = onEnd_;
		this.onMessage = onMessage_;
		this.onHeaders = onHeaders_;
	});
	DialOption = $pkg.DialOption = $newType(4, $kindFunc, "grpcweb.DialOption", true, "github.com/johanbrandhorst/protobuf/grpcweb", true, null);
	clientStreamClient = $pkg.clientStreamClient = $newType(0, $kindStruct, "grpcweb.clientStreamClient", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(ctx_, client_, errChan_, respChan_, isClientStreaming_, isServerStreaming_, callInfo_, headers_, trailers_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ctx = $ifaceNil;
			this.client = ptrType$2.nil;
			this.errChan = $chanNil;
			this.respChan = $chanNil;
			this.isClientStreaming = false;
			this.isServerStreaming = false;
			this.callInfo = ptrType$7.nil;
			this.headers = false;
			this.trailers = false;
			return;
		}
		this.ctx = ctx_;
		this.client = client_;
		this.errChan = errChan_;
		this.respChan = respChan_;
		this.isClientStreaming = isClientStreaming_;
		this.isServerStreaming = isServerStreaming_;
		this.callInfo = callInfo_;
		this.headers = headers_;
		this.trailers = trailers_;
	});
	ClientStream = $pkg.ClientStream = $newType(8, $kindInterface, "grpcweb.ClientStream", true, "github.com/johanbrandhorst/protobuf/grpcweb", true, null);
	Client = $pkg.Client = $newType(0, $kindStruct, "grpcweb.Client", true, "github.com/johanbrandhorst/protobuf/grpcweb", true, function(host_, service_, defaultCallOptions_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.host = "";
			this.service = "";
			this.defaultCallOptions = sliceType$1.nil;
			return;
		}
		this.host = host_;
		this.service = service_;
		this.defaultCallOptions = defaultCallOptions_;
	});
	callInfo = $pkg.callInfo = $newType(0, $kindStruct, "grpcweb.callInfo", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, function(headers_, trailers_, forceWebsockets_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.headers = false;
			this.trailers = false;
			this.forceWebsockets = false;
			return;
		}
		this.headers = headers_;
		this.trailers = trailers_;
		this.forceWebsockets = forceWebsockets_;
	});
	CallOption = $pkg.CallOption = $newType(8, $kindInterface, "grpcweb.CallOption", true, "github.com/johanbrandhorst/protobuf/grpcweb", true, null);
	beforeCall = $pkg.beforeCall = $newType(4, $kindFunc, "grpcweb.beforeCall", true, "github.com/johanbrandhorst/protobuf/grpcweb", false, null);
	sliceType = $sliceType($Uint8);
	funcType = $funcType([sliceType], [sliceType], false);
	funcType$1 = $funcType([], [sliceType], false);
	ptrType = $ptrType(service);
	ptrType$1 = $ptrType(responseType);
	ptrType$2 = $ptrType(client);
	ptrType$3 = $ptrType(js.Error);
	ptrType$4 = $ptrType(methodDescriptor);
	ptrType$5 = $ptrType(properties);
	funcType$2 = $funcType([mdwrapper], [], false);
	funcType$3 = $funcType([$Int, $String, mdwrapper], [], false);
	funcType$4 = $funcType([sliceType], [], false);
	ptrType$6 = $ptrType(requestType);
	ptrType$7 = $ptrType(callInfo);
	sliceType$1 = $sliceType(CallOption);
	ptrType$8 = $ptrType(js.Object);
	ptrType$9 = $ptrType(status.Status);
	ptrType$10 = $ptrType(Client);
	chanType = $chanType($error, false, false);
	chanType$1 = $chanType(sliceType, false, false);
	Client.ptr.prototype.RPCCall = function(ctx, method, req, opts) {
		var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _selection, _selection$1, _tuple, _tuple$1, c, ci, client$1, ctx, err, err$1, err$2, errChan, md, method, methodDesc, o, opts, props, req, resp, respChan, $s, $r, $c} = $restore(this, {ctx, method, req, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = [c];
		ci = [ci];
		errChan = [errChan];
		opts = [opts];
		respChan = [respChan];
		c[0] = this;
		respChan[0] = new $Chan(sliceType, 1);
		errChan[0] = new $Chan($error, 1);
		ci[0] = new callInfo.ptr(false, false, false);
		methodDesc = newMethodDescriptor(newService(c[0].service), method, false, false);
		_ref = $appendSlice(c[0].defaultCallOptions, opts[0]);
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			_r = o.before(ci[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			err = _r;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
				_r$1 = status.FromError(err); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$24r = [sliceType.nil, _r$1];
				$s = 7; case 7: return $24r;
			/* } */ case 5:
			_i++;
		$s = 1; continue;
		case 2:
		props = newProperties(c[0].host, ci[0].forceWebsockets);
		_r$2 = newClient(methodDesc, props); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		client$1 = _tuple[0];
		err$1 = _tuple[1];
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
			_r$3 = status.FromError(err$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			$24r$1 = [sliceType.nil, _r$3];
			$s = 12; case 12: return $24r$1;
		/* } */ case 10:
		client$1.onHeaders = (function(c, ci, errChan, opts, respChan) { return function(headers) {
			var headers;
			ci[0].headers = $internalize(headers.Object.headersMap, metadata.MD);
		}; })(c, ci, errChan, opts, respChan);
		client$1.onMessage = (function(c, ci, errChan, opts, respChan) { return function $b(in$1) {
			var {in$1, $s, $r, $c} = $restore(this, {in$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = $send(respChan[0], in$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, in$1, $s};return $f;
		}; })(c, ci, errChan, opts, respChan);
		client$1.onEnd = (function(c, ci, errChan, opts, respChan) { return function $b(s) {
			var {_i$1, _ref$1, o$1, s, $s, $r, $c} = $restore(this, {s});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			ci[0].trailers = s.Trailers;
			_ref$1 = $appendSlice(c[0].defaultCallOptions, opts[0]);
			_i$1 = 0;
			/* while (true) { */ case 1:
				/* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; }
				o$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
				$r = o$1.after(ci[0]); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				_i$1++;
			$s = 1; continue;
			case 2:
			/* */ if (!((s.Code === 0))) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (!((s.Code === 0))) { */ case 4:
				$r = $send(errChan[0], s); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 6; continue;
			/* } else { */ case 5:
				$r = $send(errChan[0], io.EOF); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 6:
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i$1, _ref$1, o$1, s, $s};return $f;
		}; })(c, ci, errChan, opts, respChan);
		_r$4 = metadata.FromOutgoingContext(ctx); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_tuple$1 = _r$4;
		md = _tuple$1[0];
		_r$5 = $clone(client$1, client).Start(md); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		err$1 = _r$5;
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 15; continue; }
		/* */ $s = 16; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 15:
			_r$6 = status.FromError(err$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
			$24r$2 = [sliceType.nil, _r$6];
			$s = 18; case 18: return $24r$2;
		/* } */ case 16:
		_r$7 = $clone(client$1, client).Send(req); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		err$1 = _r$7;
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 20; continue; }
		/* */ $s = 21; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 20:
			_r$8 = status.FromError(err$1); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
			$24r$3 = [sliceType.nil, _r$8];
			$s = 23; case 23: return $24r$3;
		/* } */ case 21:
		_r$9 = ctx.Done(); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_r$10 = $select([[errChan[0]], [_r$9]]); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_selection = _r$10;
		/* */ if (_selection[0] === 0) { $s = 26; continue; }
		/* */ if (_selection[0] === 1) { $s = 27; continue; }
		/* */ $s = 28; continue;
		/* if (_selection[0] === 0) { */ case 26:
			err$2 = _selection[1][0];
			/* */ if ($interfaceIsEqual(err$2, io.EOF)) { $s = 29; continue; }
			/* */ $s = 30; continue;
			/* if ($interfaceIsEqual(err$2, io.EOF)) { */ case 29:
				_r$11 = ctx.Done(); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
				_r$12 = $select([[respChan[0]], [_r$11]]); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
				_selection$1 = _r$12;
				/* */ if (_selection$1[0] === 0) { $s = 33; continue; }
				/* */ if (_selection$1[0] === 1) { $s = 34; continue; }
				/* */ $s = 35; continue;
				/* if (_selection$1[0] === 0) { */ case 33:
					resp = _selection$1[1][0];
					$s = -1; return [resp, $ifaceNil];
				/* } else if (_selection$1[0] === 1) { */ case 34:
					_r$13 = $clone(client$1, client).Close(); /* */ $s = 36; case 36: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
					$unused(_r$13);
					_r$14 = ctx.Err(); /* */ $s = 37; case 37: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
					_r$15 = _r$14.Error(); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
					$24r$4 = [sliceType.nil, new status.Status.ptr(1, _r$15, false)];
					$s = 39; case 39: return $24r$4;
				/* } */ case 35:
			/* } */ case 30:
			$s = -1; return [sliceType.nil, err$2];
		/* } else if (_selection[0] === 1) { */ case 27:
			_r$16 = $clone(client$1, client).Close(); /* */ $s = 40; case 40: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
			$unused(_r$16);
			_r$17 = ctx.Err(); /* */ $s = 41; case 41: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
			_r$18 = _r$17.Error(); /* */ $s = 42; case 42: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
			$24r$5 = [sliceType.nil, new status.Status.ptr(1, _r$18, false)];
			$s = 43; case 43: return $24r$5;
		/* } */ case 28:
		$s = -1; return [sliceType.nil, $ifaceNil];
		/* */ } return; } var $f = {$blk: Client.ptr.prototype.RPCCall, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _selection, _selection$1, _tuple, _tuple$1, c, ci, client$1, ctx, err, err$1, err$2, errChan, md, method, methodDesc, o, opts, props, req, resp, respChan, $s};return $f;
	};
	Client.prototype.RPCCall = function(ctx, method, req, opts) { return this.$val.RPCCall(ctx, method, req, opts); };
	newProperties = function(host, useWebsockets) {
		var host, r, useWebsockets;
		r = new properties.ptr(new ($global.Object)(), "", false, null);
		r.Object.host = $externalize(host, $String);
		r.Object.debug = $externalize(false, $Bool);
		r.Object.transport = $global.grpc.DefaultTransportFactory;
		if (useWebsockets) {
			r.Object.transport = $global.grpc.WebsocketTransportFactory;
		}
		return r;
	};
	newService = function(name) {
		var name, r;
		r = new service.ptr(new ($global.Object)(), "");
		r.Object.serviceName = $externalize(name, $String);
		return r;
	};
	newResponseType = function() {
		var r;
		r = new responseType.ptr(new ($global.Object)(), $throwNilPointerError);
		r.Object.deserializeBinary = $externalize((function(in$1) {
			var in$1;
			return in$1;
		}), funcType);
		return r;
	};
	newRequestType = function(payload) {
		var payload, r;
		r = new requestType.ptr(new ($global.Object)(), $throwNilPointerError);
		r.Object.serializeBinary = $externalize((function() {
			return payload;
		}), funcType$1);
		return r;
	};
	newMethodDescriptor = function(service$1, method, isRequestStream, isResponseStream) {
		var isRequestStream, isResponseStream, method, r, service$1;
		r = new methodDescriptor.ptr(new ($global.Object)(), ptrType.nil, "", false, false, ptrType$1.nil);
		r.Object.service = $externalize(service$1, ptrType);
		r.Object.methodName = $externalize(method, $String);
		r.Object.responseType = $externalize(newResponseType(), ptrType$1);
		r.Object.requestStream = $externalize(isRequestStream, $Bool);
		r.Object.responseStream = $externalize(isResponseStream, $Bool);
		return r;
	};
	newClient = function(methodDesc, props) {
		var {$24r, _tmp, _tmp$1, c, err, methodDesc, props, $s, $deferred, $r, $c} = $restore(this, {methodDesc, props});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		c = [c];
		err = [err];
		c[0] = ptrType$2.nil;
		err[0] = $ifaceNil;
		$deferred.push([(function(c, err) { return function() {
			var _tuple, e, e$1, ok;
			e = $recover();
			if ($interfaceIsEqual(e, $ifaceNil)) {
				return;
			}
			_tuple = $assertType(e, ptrType$3, true);
			e$1 = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				err[0] = e$1;
			} else {
				$panic(e$1);
			}
		}; })(c, err), []]);
		c[0] = new client.ptr($global.grpc.client($externalize(methodDesc, ptrType$4), $externalize(props, ptrType$5)), $throwNilPointerError, $throwNilPointerError, $throwNilPointerError);
		c[0].Object.onHeaders($externalize((function(c, err) { return function $b(headers) {
			var {headers, $s, $r, $c} = $restore(this, {headers});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = c[0].onHeaders($clone(headers, mdwrapper)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, headers, $s};return $f;
		}; })(c, err), funcType$2));
		c[0].Object.onEnd($externalize((function(c, err) { return function $b(code, msg, trailers) {
			var {code, msg, s, trailers, $s, $r, $c} = $restore(this, {code, msg, trailers});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			s = new status.Status.ptr(((code >>> 0)), msg, $internalize(trailers.Object.headersMap, metadata.MD));
			$r = c[0].onEnd(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, code, msg, s, trailers, $s};return $f;
		}; })(c, err), funcType$3));
		c[0].Object.onMessage($externalize((function(c, err) { return function $b(payload) {
			var {payload, $s, $r, $c} = $restore(this, {payload});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = c[0].onMessage(payload); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, payload, $s};return $f;
		}; })(c, err), funcType$4));
		_tmp = c[0];
		_tmp$1 = $ifaceNil;
		c[0] = _tmp;
		err[0] = _tmp$1;
		$24r = [c[0], err[0]];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [c[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: newClient, $c: true, $r, $24r, _tmp, _tmp$1, c, err, methodDesc, props, $s, $deferred};return $f; } }
	};
	client.ptr.prototype.Close = function() {
		var {$24r, c, err, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		err[0] = $ifaceNil;
		c = this;
		$deferred.push([(function(err) { return function() {
			var _tuple, e, e$1, ok;
			e = $recover();
			if ($interfaceIsEqual(e, $ifaceNil)) {
				return;
			}
			_tuple = $assertType(e, ptrType$3, true);
			e$1 = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				err[0] = e$1;
			} else {
				$panic(e$1);
			}
		}; })(err), []]);
		c.Object.close();
		err[0] = $ifaceNil;
		$24r = err[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err[0]; } if($curGoroutine.asleep) { var $f = {$blk: client.ptr.prototype.Close, $c: true, $r, $24r, c, err, $s, $deferred};return $f; } }
	};
	client.prototype.Close = function() { return this.$val.Close(); };
	client.ptr.prototype.Start = function(md) {
		var {$24r, c, err, md, $s, $deferred, $r, $c} = $restore(this, {md});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		err[0] = $ifaceNil;
		c = this;
		$deferred.push([(function(err) { return function() {
			var _tuple, e, e$1, ok;
			e = $recover();
			if ($interfaceIsEqual(e, $ifaceNil)) {
				return;
			}
			_tuple = $assertType(e, ptrType$3, true);
			e$1 = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				err[0] = e$1;
			} else {
				$panic(e$1);
			}
		}; })(err), []]);
		c.Object.start($externalize(md, metadata.MD));
		err[0] = $ifaceNil;
		$24r = err[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err[0]; } if($curGoroutine.asleep) { var $f = {$blk: client.ptr.prototype.Start, $c: true, $r, $24r, c, err, md, $s, $deferred};return $f; } }
	};
	client.prototype.Start = function(md) { return this.$val.Start(md); };
	client.ptr.prototype.Send = function(payload) {
		var {$24r, c, err, payload, $s, $deferred, $r, $c} = $restore(this, {payload});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		err[0] = $ifaceNil;
		c = this;
		$deferred.push([(function(err) { return function() {
			var _tuple, e, e$1, ok;
			e = $recover();
			if ($interfaceIsEqual(e, $ifaceNil)) {
				return;
			}
			_tuple = $assertType(e, ptrType$3, true);
			e$1 = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				err[0] = e$1;
			} else {
				$panic(e$1);
			}
		}; })(err), []]);
		c.Object.send($externalize(newRequestType(payload), ptrType$6));
		err[0] = $ifaceNil;
		$24r = err[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err[0]; } if($curGoroutine.asleep) { var $f = {$blk: client.ptr.prototype.Send, $c: true, $r, $24r, c, err, payload, $s, $deferred};return $f; } }
	};
	client.prototype.Send = function(payload) { return this.$val.Send(payload); };
	client.ptr.prototype.FinishSend = function() {
		var {$24r, c, err, $s, $deferred, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = [err];
		err[0] = $ifaceNil;
		c = this;
		$deferred.push([(function(err) { return function() {
			var _tuple, e, e$1, ok;
			e = $recover();
			if ($interfaceIsEqual(e, $ifaceNil)) {
				return;
			}
			_tuple = $assertType(e, ptrType$3, true);
			e$1 = _tuple[0];
			ok = _tuple[1];
			if (ok) {
				err[0] = e$1;
			} else {
				$panic(e$1);
			}
		}; })(err), []]);
		c.Object.finishSend();
		err[0] = $ifaceNil;
		$24r = err[0];
		$s = 1; case 1: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err[0]; } if($curGoroutine.asleep) { var $f = {$blk: client.ptr.prototype.FinishSend, $c: true, $r, $24r, c, err, $s, $deferred};return $f; } }
	};
	client.prototype.FinishSend = function() { return this.$val.FinishSend(); };
	WithDefaultCallOptions = function(opts) {
		var opts;
		return (function(c) {
			var c;
			c.defaultCallOptions = $appendSlice(c.defaultCallOptions, opts);
		});
	};
	$pkg.WithDefaultCallOptions = WithDefaultCallOptions;
	Client.ptr.prototype.NewClientStream = function(ctx, isClientStreaming, isServerStreaming, method, opts) {
		var {$24r, $24r$1, $24r$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, c, ci, client$1, cs, ctx, err, err$1, isClientStreaming, isServerStreaming, md, method, methodDesc, o, opts, props, useWebsockets, $s, $r, $c} = $restore(this, {ctx, isClientStreaming, isServerStreaming, method, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = [c];
		cs = [cs];
		opts = [opts];
		c[0] = this;
		methodDesc = newMethodDescriptor(newService(c[0].service), method, isClientStreaming, isServerStreaming);
		ci = new callInfo.ptr(false, false, false);
		_ref = $appendSlice(c[0].defaultCallOptions, opts[0]);
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			o = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			_r = o.before(ci); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			err = _r;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
				_r$1 = status.FromError(err); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$24r = [$ifaceNil, _r$1];
				$s = 7; case 7: return $24r;
			/* } */ case 5:
			_i++;
		$s = 1; continue;
		case 2:
		useWebsockets = isClientStreaming || ci.forceWebsockets;
		props = newProperties(c[0].host, useWebsockets);
		_r$2 = newClient(methodDesc, props); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		client$1 = _tuple[0];
		err$1 = _tuple[1];
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
			_r$3 = status.FromError(err$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			$24r$1 = [$ifaceNil, _r$3];
			$s = 12; case 12: return $24r$1;
		/* } */ case 10:
		cs[0] = new clientStreamClient.ptr(ctx, client$1, new $Chan($error, 1), new $Chan(sliceType, 10), isClientStreaming, isServerStreaming, ci, $makeMap($String.keyFor, []), $makeMap($String.keyFor, []));
		client$1.onHeaders = (function(c, cs, opts) { return function(headers) {
			var headers;
			cs[0].headers = $internalize(headers.Object.headersMap, metadata.MD);
		}; })(c, cs, opts);
		client$1.onMessage = (function(c, cs, opts) { return function $b(in$1) {
			var {in$1, $s, $r, $c} = $restore(this, {in$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			$r = $send(cs[0].respChan, in$1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, in$1, $s};return $f;
		}; })(c, cs, opts);
		client$1.onEnd = (function(c, cs, opts) { return function $b(s) {
			var {_i$1, _ref$1, o$1, s, $s, $r, $c} = $restore(this, {s});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			cs[0].trailers = s.Trailers;
			_ref$1 = $appendSlice(c[0].defaultCallOptions, opts[0]);
			_i$1 = 0;
			/* while (true) { */ case 1:
				/* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 2; continue; }
				o$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]);
				$r = o$1.after(cs[0].callInfo); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				_i$1++;
			$s = 1; continue;
			case 2:
			/* */ if (!((s.Code === 0))) { $s = 4; continue; }
			/* */ $s = 5; continue;
			/* if (!((s.Code === 0))) { */ case 4:
				$r = $send(cs[0].errChan, s); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 6; continue;
			/* } else { */ case 5:
				$r = $send(cs[0].errChan, io.EOF); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 6:
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i$1, _ref$1, o$1, s, $s};return $f;
		}; })(c, cs, opts);
		_r$4 = metadata.FromOutgoingContext(ctx); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_tuple$1 = _r$4;
		md = _tuple$1[0];
		_r$5 = $clone(client$1, client).Start(md); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		err$1 = _r$5;
		/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 15; continue; }
		/* */ $s = 16; continue;
		/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 15:
			_r$6 = status.FromError(err$1); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
			$24r$2 = [$ifaceNil, _r$6];
			$s = 18; case 18: return $24r$2;
		/* } */ case 16:
		$s = -1; return [cs[0], $ifaceNil];
		/* */ } return; } var $f = {$blk: Client.ptr.prototype.NewClientStream, $c: true, $r, $24r, $24r$1, $24r$2, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _ref, _tuple, _tuple$1, c, ci, client$1, cs, ctx, err, err$1, isClientStreaming, isServerStreaming, md, method, methodDesc, o, opts, props, useWebsockets, $s};return $f;
	};
	Client.prototype.NewClientStream = function(ctx, isClientStreaming, isServerStreaming, method, opts) { return this.$val.NewClientStream(ctx, isClientStreaming, isServerStreaming, method, opts); };
	clientStreamClient.ptr.prototype.SendMsg = function(payload) {
		var {$24r, _r, cs, payload, $s, $r, $c} = $restore(this, {payload});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		cs = this;
		_r = $clone(cs.client, client).Send(payload); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: clientStreamClient.ptr.prototype.SendMsg, $c: true, $r, $24r, _r, cs, payload, $s};return $f;
	};
	clientStreamClient.prototype.SendMsg = function(payload) { return this.$val.SendMsg(payload); };
	clientStreamClient.ptr.prototype.RecvMsg = function() {
		var {$24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _selection$1, cs, err, err$1, msg, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		cs = this;
		_r = cs.ctx.Done(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = $select([[cs.respChan], [cs.errChan], [_r]]); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_selection = _r$1;
		/* */ if (_selection[0] === 0) { $s = 3; continue; }
		/* */ if (_selection[0] === 1) { $s = 4; continue; }
		/* */ if (_selection[0] === 2) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (_selection[0] === 0) { */ case 3:
			msg = _selection[1][0];
			if (!cs.isClientStreaming || cs.isServerStreaming) {
				$s = -1; return [msg, $ifaceNil];
			}
			_r$2 = cs.ctx.Done(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			_r$3 = $select([[cs.errChan], [_r$2]]); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_selection$1 = _r$3;
			/* */ if (_selection$1[0] === 0) { $s = 9; continue; }
			/* */ if (_selection$1[0] === 1) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (_selection$1[0] === 0) { */ case 9:
				err = _selection$1[1][0];
				if ($interfaceIsEqual(err, io.EOF)) {
					$s = -1; return [msg, $ifaceNil];
				}
				$s = -1; return [sliceType.nil, err];
			/* } else if (_selection$1[0] === 1) { */ case 10:
				_r$4 = $clone(cs.client, client).Close(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				$unused(_r$4);
				_r$5 = cs.ctx.Err(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				_r$6 = _r$5.Error(); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				$24r = [sliceType.nil, new status.Status.ptr(1, _r$6, false)];
				$s = 15; case 15: return $24r;
			/* } */ case 11:
			$s = 6; continue;
		/* } else if (_selection[0] === 1) { */ case 4:
			err$1 = _selection[1][0];
			$s = -1; return [sliceType.nil, err$1];
		/* } else if (_selection[0] === 2) { */ case 5:
			_r$7 = $clone(cs.client, client).Close(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
			$unused(_r$7);
			_r$8 = cs.ctx.Err(); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
			_r$9 = _r$8.Error(); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
			$24r$1 = [sliceType.nil, new status.Status.ptr(1, _r$9, false)];
			$s = 19; case 19: return $24r$1;
		/* } */ case 6:
		$s = -1; return [sliceType.nil, $ifaceNil];
		/* */ } return; } var $f = {$blk: clientStreamClient.ptr.prototype.RecvMsg, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _selection, _selection$1, cs, err, err$1, msg, $s};return $f;
	};
	clientStreamClient.prototype.RecvMsg = function() { return this.$val.RecvMsg(); };
	clientStreamClient.ptr.prototype.Context = function() {
		var cs;
		cs = this;
		return cs.ctx;
	};
	clientStreamClient.prototype.Context = function() { return this.$val.Context(); };
	clientStreamClient.ptr.prototype.CloseSend = function() {
		var {$24r, _r, cs, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		cs = this;
		_r = $clone(cs.client, client).FinishSend(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: clientStreamClient.ptr.prototype.CloseSend, $c: true, $r, $24r, _r, cs, $s};return $f;
	};
	clientStreamClient.prototype.CloseSend = function() { return this.$val.CloseSend(); };
	clientStreamClient.ptr.prototype.Header = function() {
		var cs;
		cs = this;
		return cs.headers;
	};
	clientStreamClient.prototype.Header = function() { return this.$val.Header(); };
	clientStreamClient.ptr.prototype.Trailer = function() {
		var cs;
		cs = this;
		return cs.trailers;
	};
	clientStreamClient.prototype.Trailer = function() { return this.$val.Trailer(); };
	NewClient = function(host, service$1, opts) {
		var {_i, _ref, c, host, opt, opts, service$1, $s, $r, $c} = $restore(this, {host, service$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = new Client.ptr(host, service$1, sliceType$1.nil);
		_ref = opts;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = opt(c); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return c;
		/* */ } return; } var $f = {$blk: NewClient, $c: true, $r, _i, _ref, c, host, opt, opts, service$1, $s};return $f;
	};
	$pkg.NewClient = NewClient;
	beforeCall.prototype.before = function(c) {
		var {$24r, _r, c, o, $s, $r, $c} = $restore(this, {c});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		o = this.$val;
		_r = o(c); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: beforeCall.prototype.before, $c: true, $r, $24r, _r, c, o, $s};return $f;
	};
	$ptrType(beforeCall).prototype.before = function(c) { return new beforeCall(this.$get()).before(c); };
	beforeCall.prototype.after = function(c) {
		var c, o;
		o = this.$val;
	};
	$ptrType(beforeCall).prototype.after = function(c) { return new beforeCall(this.$get()).after(c); };
	ForceWebsocketTransport = function() {
		return new beforeCall(((function(c) {
			var c;
			c.forceWebsockets = true;
			return $ifaceNil;
		})));
	};
	$pkg.ForceWebsocketTransport = ForceWebsocketTransport;
	client.methods = [{prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Start", name: "Start", pkg: "", typ: $funcType([metadata.MD], [$error], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "FinishSend", name: "FinishSend", pkg: "", typ: $funcType([], [$error], false)}];
	clientStreamClient.methods = [{prop: "SendMsg", name: "SendMsg", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "RecvMsg", name: "RecvMsg", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "CloseSend", name: "CloseSend", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [metadata.MD], false)}, {prop: "Trailer", name: "Trailer", pkg: "", typ: $funcType([], [metadata.MD], false)}];
	Client.methods = [{prop: "RPCCall", name: "RPCCall", pkg: "", typ: $funcType([context.Context, $String, sliceType, sliceType$1], [sliceType, $error], true)}, {prop: "NewClientStream", name: "NewClientStream", pkg: "", typ: $funcType([context.Context, $Bool, $Bool, $String, sliceType$1], [ClientStream, $error], true)}];
	beforeCall.methods = [{prop: "before", name: "before", pkg: "github.com/johanbrandhorst/protobuf/grpcweb", typ: $funcType([ptrType$7], [$error], false)}, {prop: "after", name: "after", pkg: "github.com/johanbrandhorst/protobuf/grpcweb", typ: $funcType([ptrType$7], [], false)}];
	properties.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "host", name: "host", embedded: false, exported: false, typ: $String, tag: "js:\"host\""}, {prop: "debug", name: "debug", embedded: false, exported: false, typ: $Bool, tag: "js:\"debug\""}, {prop: "transport", name: "transport", embedded: false, exported: false, typ: ptrType$8, tag: "js:\"transport\""}]);
	service.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "js:\"serviceName\""}]);
	responseType.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "deserializeFunc", name: "deserializeFunc", embedded: false, exported: false, typ: funcType, tag: "js:\"deserializeBinary\""}]);
	requestType.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "serializeFunc", name: "serializeFunc", embedded: false, exported: false, typ: funcType$1, tag: "js:\"serializeBinary\""}]);
	methodDescriptor.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "service", name: "service", embedded: false, exported: false, typ: ptrType, tag: "js:\"service\""}, {prop: "method", name: "method", embedded: false, exported: false, typ: $String, tag: "js:\"methodName\""}, {prop: "requestStream", name: "requestStream", embedded: false, exported: false, typ: $Bool, tag: "js:\"requestStream\""}, {prop: "responseStream", name: "responseStream", embedded: false, exported: false, typ: $Bool, tag: "js:\"responseStream\""}, {prop: "responseType", name: "responseType", embedded: false, exported: false, typ: ptrType$1, tag: "js:\"responseType\""}]);
	mdwrapper.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "MD", name: "MD", embedded: false, exported: true, typ: metadata.MD, tag: "js:\"headersMap\""}]);
	onHeadersFunc.init([mdwrapper], [], false);
	onEndFunc.init([ptrType$9], [], false);
	onMessageFunc.init([sliceType], [], false);
	client.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$8, tag: ""}, {prop: "onEnd", name: "onEnd", embedded: false, exported: false, typ: onEndFunc, tag: ""}, {prop: "onMessage", name: "onMessage", embedded: false, exported: false, typ: onMessageFunc, tag: ""}, {prop: "onHeaders", name: "onHeaders", embedded: false, exported: false, typ: onHeadersFunc, tag: ""}]);
	DialOption.init([ptrType$10], [], false);
	clientStreamClient.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "client", name: "client", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "errChan", name: "errChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "respChan", name: "respChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "isClientStreaming", name: "isClientStreaming", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isServerStreaming", name: "isServerStreaming", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "callInfo", name: "callInfo", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "headers", name: "headers", embedded: false, exported: false, typ: metadata.MD, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: metadata.MD, tag: ""}]);
	ClientStream.init([{prop: "CloseSend", name: "CloseSend", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [metadata.MD], false)}, {prop: "RecvMsg", name: "RecvMsg", pkg: "", typ: $funcType([], [sliceType, $error], false)}, {prop: "SendMsg", name: "SendMsg", pkg: "", typ: $funcType([sliceType], [$error], false)}, {prop: "Trailer", name: "Trailer", pkg: "", typ: $funcType([], [metadata.MD], false)}]);
	Client.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "host", name: "host", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "service", name: "service", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "defaultCallOptions", name: "defaultCallOptions", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
	callInfo.init("github.com/johanbrandhorst/protobuf/grpcweb", [{prop: "headers", name: "headers", embedded: false, exported: false, typ: metadata.MD, tag: ""}, {prop: "trailers", name: "trailers", embedded: false, exported: false, typ: metadata.MD, tag: ""}, {prop: "forceWebsockets", name: "forceWebsockets", embedded: false, exported: false, typ: $Bool, tag: ""}]);
	CallOption.init([{prop: "after", name: "after", pkg: "github.com/johanbrandhorst/protobuf/grpcweb", typ: $funcType([ptrType$7], [], false)}, {prop: "before", name: "before", pkg: "github.com/johanbrandhorst/protobuf/grpcweb", typ: $funcType([ptrType$7], [$error], false)}]);
	beforeCall.init([ptrType$7], [$error], false);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = grpcwebjs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = status.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = jspb.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = codes.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = metadata.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/mame82/P4wnP1_aloa/common_web"] = (function() {
	var $pkg = {}, $init, EvtStateChangeType, NameLeaseFileDHCPSrv;
	EvtStateChangeType = $pkg.EvtStateChangeType = $newType(8, $kindInt64, "common_web.EvtStateChangeType", true, "github.com/mame82/P4wnP1_aloa/common_web", true, null);
	NameLeaseFileDHCPSrv = function(nameIface) {
		var lf, nameIface;
		lf = "";
		lf = "/tmp/dnsmasq_" + nameIface + ".leases";
		return lf;
	};
	$pkg.NameLeaseFileDHCPSrv = NameLeaseFileDHCPSrv;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$pkg.EventTypeName = $makeMap($Int64.keyFor, [{ k: new $Int64(0, 4), v: "TRIGGER" }, { k: new $Int64(0, 1), v: "LOG" }, { k: new $Int64(0, 5), v: "NOTIFY_STATE_CHANGE" }, { k: new $Int64(0, 3), v: "HID" }]);
		$pkg.EventTypeStateChangeName = $makeMap($Int64.keyFor, [{ k: new $Int64(0, 0), v: "USB" }, { k: new $Int64(0, 1), v: "WIFI" }, { k: new $Int64(0, 2), v: "NETWORK" }, { k: new $Int64(0, 3), v: "BLUETOOTH" }, { k: new $Int64(0, 4), v: "HID" }, { k: new $Int64(0, 5), v: "TRIGGER_ACTIONS" }, { k: new $Int64(0, 6), v: "LED" }]);
		$pkg.EventTypeHIDName = $makeMap($Int64.keyFor, [{ k: new $Int64(0, 0), v: "JOB STARTED" }, { k: new $Int64(0, 1), v: "JOB STOPPED" }, { k: new $Int64(0, 2), v: "CONTROLLER ABORTED" }, { k: new $Int64(0, 3), v: "JOB CANCELLED" }, { k: new $Int64(0, 4), v: "JOB SUCCEEDED" }, { k: new $Int64(0, 5), v: "JOB SUCCEEDED WITHOUT RESULT" }, { k: new $Int64(0, 6), v: "JOB FAILED" }, { k: new $Int64(0, 7), v: "JOB WAIT LED FINISHED" }, { k: new $Int64(0, 8), v: "JOB WAIT LED REPEATED FINISHED" }, { k: new $Int64(0, 9), v: "JOB NO FREE VM" }]);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/mame82/P4wnP1_aloa/proto/gopherjs"] = (function() {
	var $pkg = {}, $init, context, grpcweb, jspb, BluetoothNetworkServiceType, GroupReceiveMultiType, GPIOInPullUpDown, GPIOInEdge, GPIOOutValue, WiFiWorkingMode, WiFiStateMode, WiFiAuthMode, AccessibleFolder, ActionDeploySettingsTemplate_TemplateType, EthernetInterfaceSettings_Mode, MasterTemplate, RequestMasterTemplateStorage, BluetoothRequestSettingsStorage, BluetoothSettings, BluetoothAgentSettings, BluetoothNetworkService, BluetoothControllerSettings, BluetoothControllerInformation, TriggerActionSet, TriggerAction, isTriggerAction_Trigger, isTriggerAction_Action, TriggerAction_ServiceStarted, TriggerAction_UsbGadgetConnected, TriggerAction_UsbGadgetDisconnected, TriggerAction_WifiAPStarted, TriggerAction_WifiConnectedAsSta, TriggerAction_SshLogin, TriggerAction_DhcpLeaseGranted, TriggerAction_GroupReceive, TriggerAction_GroupReceiveMulti, TriggerAction_GpioIn, TriggerAction_BashScript, TriggerAction_HidScript, TriggerAction_DeploySettingsTemplate, TriggerAction_Log, TriggerAction_GpioOut, TriggerAction_GroupSend, TriggerServiceStarted, TriggerUSBGadgetConnected, TriggerUSBGadgetDisconnected, TriggerWifiAPStarted, TriggerWifiConnectedAsSta, TriggerSSHLogin, TriggerDHCPLeaseGranted, TriggerGroupReceive, TriggerGroupReceiveMulti, TriggerGPIOIn, ActionStartBashScript, ActionStartHIDScript, ActionDeploySettingsTemplate, ActionLog, ActionGPIOOut, ActionGroupSend, WifiRequestSettingsStorage, WiFiSettings, WiFiState, WiFiBSSCfg, StringMessage, StringMessageArray, EventRequest, EventValue, isEventValue_Val, EventValue_Tstring, EventValue_Tbool, EventValue_Tint64, Event, TempDirOrFileRequest, TempDirOrFileResponse, ReadFileRequest, ReadFileResponse, WriteFileRequest, FileInfoRequest, FileInfoResponse, HIDScriptRequest, HIDScriptJob, HIDScriptJobList, HIDRunningJobStateResult, HIDScriptResult, LEDSettings, USBRequestSettingsStorage, GadgetSettings, GadgetSettingsEthernet, GadgetSettingsUMS, EthernetRequestSettingsStorage, DeployedEthernetInterfaceSettings, EthernetInterfaceSettings, DHCPServerSettings, DHCPServerRange, DHCPServerStaticHost, Empty, P4WNP1Client, p4WNP1Client, P4WNP1_EventListenClient, p4WNP1EventListenClient, ptrType, sliceType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$1, ptrType$8, sliceType$2, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, ptrType$25, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$30, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, ptrType$36, ptrType$37, ptrType$38, ptrType$39, ptrType$40, ptrType$41, sliceType$3, ptrType$42, ptrType$43, ptrType$44, sliceType$4, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, sliceType$5, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, ptrType$61, ptrType$62, sliceType$6, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, sliceType$7, ptrType$73, ptrType$74, ptrType$75, sliceType$8, ptrType$76, sliceType$9, ptrType$77, ptrType$78, mapType, sliceType$10, ptrType$79, ptrType$80, NewP4WNP1Client;
	context = $packages["context"];
	grpcweb = $packages["github.com/johanbrandhorst/protobuf/grpcweb"];
	jspb = $packages["github.com/johanbrandhorst/protobuf/jspb"];
	BluetoothNetworkServiceType = $pkg.BluetoothNetworkServiceType = $newType(4, $kindInt, "P4wnP1_grpc.BluetoothNetworkServiceType", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	GroupReceiveMultiType = $pkg.GroupReceiveMultiType = $newType(4, $kindInt, "P4wnP1_grpc.GroupReceiveMultiType", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	GPIOInPullUpDown = $pkg.GPIOInPullUpDown = $newType(4, $kindInt, "P4wnP1_grpc.GPIOInPullUpDown", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	GPIOInEdge = $pkg.GPIOInEdge = $newType(4, $kindInt, "P4wnP1_grpc.GPIOInEdge", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	GPIOOutValue = $pkg.GPIOOutValue = $newType(4, $kindInt, "P4wnP1_grpc.GPIOOutValue", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	WiFiWorkingMode = $pkg.WiFiWorkingMode = $newType(4, $kindInt, "P4wnP1_grpc.WiFiWorkingMode", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	WiFiStateMode = $pkg.WiFiStateMode = $newType(4, $kindInt, "P4wnP1_grpc.WiFiStateMode", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	WiFiAuthMode = $pkg.WiFiAuthMode = $newType(4, $kindInt, "P4wnP1_grpc.WiFiAuthMode", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	AccessibleFolder = $pkg.AccessibleFolder = $newType(4, $kindInt, "P4wnP1_grpc.AccessibleFolder", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	ActionDeploySettingsTemplate_TemplateType = $pkg.ActionDeploySettingsTemplate_TemplateType = $newType(4, $kindInt, "P4wnP1_grpc.ActionDeploySettingsTemplate_TemplateType", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	EthernetInterfaceSettings_Mode = $pkg.EthernetInterfaceSettings_Mode = $newType(4, $kindInt, "P4wnP1_grpc.EthernetInterfaceSettings_Mode", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	MasterTemplate = $pkg.MasterTemplate = $newType(0, $kindStruct, "P4wnP1_grpc.MasterTemplate", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateNameBluetooth_, TemplateNameUsb_, TemplateNameWifi_, TemplateNameTriggerActions_, TemplateNamesNetwork_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateNameBluetooth = "";
			this.TemplateNameUsb = "";
			this.TemplateNameWifi = "";
			this.TemplateNameTriggerActions = "";
			this.TemplateNamesNetwork = sliceType.nil;
			return;
		}
		this.TemplateNameBluetooth = TemplateNameBluetooth_;
		this.TemplateNameUsb = TemplateNameUsb_;
		this.TemplateNameWifi = TemplateNameWifi_;
		this.TemplateNameTriggerActions = TemplateNameTriggerActions_;
		this.TemplateNamesNetwork = TemplateNamesNetwork_;
	});
	RequestMasterTemplateStorage = $pkg.RequestMasterTemplateStorage = $newType(0, $kindStruct, "P4wnP1_grpc.RequestMasterTemplateStorage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Template_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Template = ptrType.nil;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Template = Template_;
	});
	BluetoothRequestSettingsStorage = $pkg.BluetoothRequestSettingsStorage = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Settings = ptrType$3.nil;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	BluetoothSettings = $pkg.BluetoothSettings = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Ci_, As_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Ci = ptrType$4.nil;
			this.As = ptrType$5.nil;
			return;
		}
		this.Ci = Ci_;
		this.As = As_;
	});
	BluetoothAgentSettings = $pkg.BluetoothAgentSettings = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothAgentSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Pin_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Pin = "";
			return;
		}
		this.Pin = Pin_;
	});
	BluetoothNetworkService = $pkg.BluetoothNetworkService = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothNetworkService", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(RegisterOrUnregister_, ServerOrConnect_, Type_, MacOrName_, BridgeName_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.RegisterOrUnregister = false;
			this.ServerOrConnect = false;
			this.Type = 0;
			this.MacOrName = "";
			this.BridgeName = "";
			return;
		}
		this.RegisterOrUnregister = RegisterOrUnregister_;
		this.ServerOrConnect = ServerOrConnect_;
		this.Type = Type_;
		this.MacOrName = MacOrName_;
		this.BridgeName = BridgeName_;
	});
	BluetoothControllerSettings = $pkg.BluetoothControllerSettings = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothControllerSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Powered_, Connectable_, FastConnectable_, Discoverable_, Bondable_, LinkLevelSecurity_, SecureSimplePairing_, BrEdr_, HighSpeed_, LowEnergy_, Advertising_, SecureConnections_, DebugKeys_, Privacy_, ControllerConfiguration_, StaticAddress_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Powered = false;
			this.Connectable = false;
			this.FastConnectable = false;
			this.Discoverable = false;
			this.Bondable = false;
			this.LinkLevelSecurity = false;
			this.SecureSimplePairing = false;
			this.BrEdr = false;
			this.HighSpeed = false;
			this.LowEnergy = false;
			this.Advertising = false;
			this.SecureConnections = false;
			this.DebugKeys = false;
			this.Privacy = false;
			this.ControllerConfiguration = false;
			this.StaticAddress = false;
			return;
		}
		this.Powered = Powered_;
		this.Connectable = Connectable_;
		this.FastConnectable = FastConnectable_;
		this.Discoverable = Discoverable_;
		this.Bondable = Bondable_;
		this.LinkLevelSecurity = LinkLevelSecurity_;
		this.SecureSimplePairing = SecureSimplePairing_;
		this.BrEdr = BrEdr_;
		this.HighSpeed = HighSpeed_;
		this.LowEnergy = LowEnergy_;
		this.Advertising = Advertising_;
		this.SecureConnections = SecureConnections_;
		this.DebugKeys = DebugKeys_;
		this.Privacy = Privacy_;
		this.ControllerConfiguration = ControllerConfiguration_;
		this.StaticAddress = StaticAddress_;
	});
	BluetoothControllerInformation = $pkg.BluetoothControllerInformation = $newType(0, $kindStruct, "P4wnP1_grpc.BluetoothControllerInformation", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Address_, BluetoothVersion_, Manufacturer_, SupportedSettings_, CurrentSettings_, ClassOfDevice_, Name_, ShortName_, IsAvailable_, ServiceNetworkServerNap_, ServiceNetworkServerPanu_, ServiceNetworkServerGn_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Address = sliceType$1.nil;
			this.BluetoothVersion = 0;
			this.Manufacturer = 0;
			this.SupportedSettings = ptrType$7.nil;
			this.CurrentSettings = ptrType$7.nil;
			this.ClassOfDevice = sliceType$1.nil;
			this.Name = "";
			this.ShortName = "";
			this.IsAvailable = false;
			this.ServiceNetworkServerNap = false;
			this.ServiceNetworkServerPanu = false;
			this.ServiceNetworkServerGn = false;
			return;
		}
		this.Address = Address_;
		this.BluetoothVersion = BluetoothVersion_;
		this.Manufacturer = Manufacturer_;
		this.SupportedSettings = SupportedSettings_;
		this.CurrentSettings = CurrentSettings_;
		this.ClassOfDevice = ClassOfDevice_;
		this.Name = Name_;
		this.ShortName = ShortName_;
		this.IsAvailable = IsAvailable_;
		this.ServiceNetworkServerNap = ServiceNetworkServerNap_;
		this.ServiceNetworkServerPanu = ServiceNetworkServerPanu_;
		this.ServiceNetworkServerGn = ServiceNetworkServerGn_;
	});
	TriggerActionSet = $pkg.TriggerActionSet = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerActionSet", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TriggerActions_, Name_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TriggerActions = sliceType$2.nil;
			this.Name = "";
			return;
		}
		this.TriggerActions = TriggerActions_;
		this.Name = Name_;
	});
	TriggerAction = $pkg.TriggerAction = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Id_, OneShot_, IsActive_, Immutable_, Trigger_, Action_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Id = 0;
			this.OneShot = false;
			this.IsActive = false;
			this.Immutable = false;
			this.Trigger = $ifaceNil;
			this.Action = $ifaceNil;
			return;
		}
		this.Id = Id_;
		this.OneShot = OneShot_;
		this.IsActive = IsActive_;
		this.Immutable = Immutable_;
		this.Trigger = Trigger_;
		this.Action = Action_;
	});
	isTriggerAction_Trigger = $pkg.isTriggerAction_Trigger = $newType(8, $kindInterface, "P4wnP1_grpc.isTriggerAction_Trigger", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", false, null);
	isTriggerAction_Action = $pkg.isTriggerAction_Action = $newType(8, $kindInterface, "P4wnP1_grpc.isTriggerAction_Action", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", false, null);
	TriggerAction_ServiceStarted = $pkg.TriggerAction_ServiceStarted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_ServiceStarted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ServiceStarted_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ServiceStarted = ptrType$10.nil;
			return;
		}
		this.ServiceStarted = ServiceStarted_;
	});
	TriggerAction_UsbGadgetConnected = $pkg.TriggerAction_UsbGadgetConnected = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_UsbGadgetConnected", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(UsbGadgetConnected_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.UsbGadgetConnected = ptrType$12.nil;
			return;
		}
		this.UsbGadgetConnected = UsbGadgetConnected_;
	});
	TriggerAction_UsbGadgetDisconnected = $pkg.TriggerAction_UsbGadgetDisconnected = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_UsbGadgetDisconnected", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(UsbGadgetDisconnected_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.UsbGadgetDisconnected = ptrType$14.nil;
			return;
		}
		this.UsbGadgetDisconnected = UsbGadgetDisconnected_;
	});
	TriggerAction_WifiAPStarted = $pkg.TriggerAction_WifiAPStarted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_WifiAPStarted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(WifiAPStarted_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.WifiAPStarted = ptrType$16.nil;
			return;
		}
		this.WifiAPStarted = WifiAPStarted_;
	});
	TriggerAction_WifiConnectedAsSta = $pkg.TriggerAction_WifiConnectedAsSta = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_WifiConnectedAsSta", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(WifiConnectedAsSta_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.WifiConnectedAsSta = ptrType$18.nil;
			return;
		}
		this.WifiConnectedAsSta = WifiConnectedAsSta_;
	});
	TriggerAction_SshLogin = $pkg.TriggerAction_SshLogin = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_SshLogin", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(SshLogin_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.SshLogin = ptrType$20.nil;
			return;
		}
		this.SshLogin = SshLogin_;
	});
	TriggerAction_DhcpLeaseGranted = $pkg.TriggerAction_DhcpLeaseGranted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_DhcpLeaseGranted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(DhcpLeaseGranted_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.DhcpLeaseGranted = ptrType$22.nil;
			return;
		}
		this.DhcpLeaseGranted = DhcpLeaseGranted_;
	});
	TriggerAction_GroupReceive = $pkg.TriggerAction_GroupReceive = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_GroupReceive", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupReceive_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupReceive = ptrType$24.nil;
			return;
		}
		this.GroupReceive = GroupReceive_;
	});
	TriggerAction_GroupReceiveMulti = $pkg.TriggerAction_GroupReceiveMulti = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_GroupReceiveMulti", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupReceiveMulti_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupReceiveMulti = ptrType$26.nil;
			return;
		}
		this.GroupReceiveMulti = GroupReceiveMulti_;
	});
	TriggerAction_GpioIn = $pkg.TriggerAction_GpioIn = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_GpioIn", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GpioIn_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GpioIn = ptrType$28.nil;
			return;
		}
		this.GpioIn = GpioIn_;
	});
	TriggerAction_BashScript = $pkg.TriggerAction_BashScript = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_BashScript", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(BashScript_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.BashScript = ptrType$30.nil;
			return;
		}
		this.BashScript = BashScript_;
	});
	TriggerAction_HidScript = $pkg.TriggerAction_HidScript = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_HidScript", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(HidScript_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.HidScript = ptrType$32.nil;
			return;
		}
		this.HidScript = HidScript_;
	});
	TriggerAction_DeploySettingsTemplate = $pkg.TriggerAction_DeploySettingsTemplate = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_DeploySettingsTemplate", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(DeploySettingsTemplate_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.DeploySettingsTemplate = ptrType$34.nil;
			return;
		}
		this.DeploySettingsTemplate = DeploySettingsTemplate_;
	});
	TriggerAction_Log = $pkg.TriggerAction_Log = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_Log", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Log_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Log = ptrType$36.nil;
			return;
		}
		this.Log = Log_;
	});
	TriggerAction_GpioOut = $pkg.TriggerAction_GpioOut = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_GpioOut", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GpioOut_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GpioOut = ptrType$38.nil;
			return;
		}
		this.GpioOut = GpioOut_;
	});
	TriggerAction_GroupSend = $pkg.TriggerAction_GroupSend = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerAction_GroupSend", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupSend_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupSend = ptrType$40.nil;
			return;
		}
		this.GroupSend = GroupSend_;
	});
	TriggerServiceStarted = $pkg.TriggerServiceStarted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerServiceStarted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerUSBGadgetConnected = $pkg.TriggerUSBGadgetConnected = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerUSBGadgetConnected", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerUSBGadgetDisconnected = $pkg.TriggerUSBGadgetDisconnected = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerUSBGadgetDisconnected", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerWifiAPStarted = $pkg.TriggerWifiAPStarted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerWifiAPStarted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerWifiConnectedAsSta = $pkg.TriggerWifiConnectedAsSta = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerWifiConnectedAsSta", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerSSHLogin = $pkg.TriggerSSHLogin = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerSSHLogin", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(LoginUser_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.LoginUser = "";
			return;
		}
		this.LoginUser = LoginUser_;
	});
	TriggerDHCPLeaseGranted = $pkg.TriggerDHCPLeaseGranted = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerDHCPLeaseGranted", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	TriggerGroupReceive = $pkg.TriggerGroupReceive = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerGroupReceive", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupName = "";
			this.Value = 0;
			return;
		}
		this.GroupName = GroupName_;
		this.Value = Value_;
	});
	TriggerGroupReceiveMulti = $pkg.TriggerGroupReceiveMulti = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerGroupReceiveMulti", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupName_, Values_, Type_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupName = "";
			this.Values = sliceType$3.nil;
			this.Type = 0;
			return;
		}
		this.GroupName = GroupName_;
		this.Values = Values_;
		this.Type = Type_;
	});
	TriggerGPIOIn = $pkg.TriggerGPIOIn = $newType(0, $kindStruct, "P4wnP1_grpc.TriggerGPIOIn", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GpioName_, PullUpDown_, GpioInEdge_, DebounceMillis_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GpioName = "";
			this.PullUpDown = 0;
			this.GpioInEdge = 0;
			this.DebounceMillis = new $Int64(0, 0);
			return;
		}
		this.GpioName = GpioName_;
		this.PullUpDown = PullUpDown_;
		this.GpioInEdge = GpioInEdge_;
		this.DebounceMillis = DebounceMillis_;
	});
	ActionStartBashScript = $pkg.ActionStartBashScript = $newType(0, $kindStruct, "P4wnP1_grpc.ActionStartBashScript", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ScriptName_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ScriptName = "";
			return;
		}
		this.ScriptName = ScriptName_;
	});
	ActionStartHIDScript = $pkg.ActionStartHIDScript = $newType(0, $kindStruct, "P4wnP1_grpc.ActionStartHIDScript", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ScriptName_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ScriptName = "";
			return;
		}
		this.ScriptName = ScriptName_;
	});
	ActionDeploySettingsTemplate = $pkg.ActionDeploySettingsTemplate = $newType(0, $kindStruct, "P4wnP1_grpc.ActionDeploySettingsTemplate", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Type_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Type = 0;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Type = Type_;
	});
	ActionLog = $pkg.ActionLog = $newType(0, $kindStruct, "P4wnP1_grpc.ActionLog", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	ActionGPIOOut = $pkg.ActionGPIOOut = $newType(0, $kindStruct, "P4wnP1_grpc.ActionGPIOOut", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GpioName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GpioName = "";
			this.Value = 0;
			return;
		}
		this.GpioName = GpioName_;
		this.Value = Value_;
	});
	ActionGroupSend = $pkg.ActionGroupSend = $newType(0, $kindStruct, "P4wnP1_grpc.ActionGroupSend", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(GroupName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.GroupName = "";
			this.Value = 0;
			return;
		}
		this.GroupName = GroupName_;
		this.Value = Value_;
	});
	WifiRequestSettingsStorage = $pkg.WifiRequestSettingsStorage = $newType(0, $kindStruct, "P4wnP1_grpc.WifiRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Settings = ptrType$43.nil;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	WiFiSettings = $pkg.WiFiSettings = $newType(0, $kindStruct, "P4wnP1_grpc.WiFiSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Name_, Disabled_, Regulatory_, WorkingMode_, AuthMode_, Channel_, Ap_BSS_, Client_BSSList_, HideSsid_, Nexmon_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.Disabled = false;
			this.Regulatory = "";
			this.WorkingMode = 0;
			this.AuthMode = 0;
			this.Channel = 0;
			this.Ap_BSS = ptrType$44.nil;
			this.Client_BSSList = sliceType$4.nil;
			this.HideSsid = false;
			this.Nexmon = false;
			return;
		}
		this.Name = Name_;
		this.Disabled = Disabled_;
		this.Regulatory = Regulatory_;
		this.WorkingMode = WorkingMode_;
		this.AuthMode = AuthMode_;
		this.Channel = Channel_;
		this.Ap_BSS = Ap_BSS_;
		this.Client_BSSList = Client_BSSList_;
		this.HideSsid = HideSsid_;
		this.Nexmon = Nexmon_;
	});
	WiFiState = $pkg.WiFiState = $newType(0, $kindStruct, "P4wnP1_grpc.WiFiState", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Mode_, Channel_, Ssid_, CurrentSettings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Mode = 0;
			this.Channel = 0;
			this.Ssid = "";
			this.CurrentSettings = ptrType$43.nil;
			return;
		}
		this.Mode = Mode_;
		this.Channel = Channel_;
		this.Ssid = Ssid_;
		this.CurrentSettings = CurrentSettings_;
	});
	WiFiBSSCfg = $pkg.WiFiBSSCfg = $newType(0, $kindStruct, "P4wnP1_grpc.WiFiBSSCfg", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(SSID_, PSK_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.SSID = "";
			this.PSK = "";
			return;
		}
		this.SSID = SSID_;
		this.PSK = PSK_;
	});
	StringMessage = $pkg.StringMessage = $newType(0, $kindStruct, "P4wnP1_grpc.StringMessage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Msg_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Msg = "";
			return;
		}
		this.Msg = Msg_;
	});
	StringMessageArray = $pkg.StringMessageArray = $newType(0, $kindStruct, "P4wnP1_grpc.StringMessageArray", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(MsgArray_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.MsgArray = sliceType.nil;
			return;
		}
		this.MsgArray = MsgArray_;
	});
	EventRequest = $pkg.EventRequest = $newType(0, $kindStruct, "P4wnP1_grpc.EventRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ListenType_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ListenType = new $Int64(0, 0);
			return;
		}
		this.ListenType = ListenType_;
	});
	EventValue = $pkg.EventValue = $newType(0, $kindStruct, "P4wnP1_grpc.EventValue", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Val_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Val = $ifaceNil;
			return;
		}
		this.Val = Val_;
	});
	isEventValue_Val = $pkg.isEventValue_Val = $newType(8, $kindInterface, "P4wnP1_grpc.isEventValue_Val", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", false, null);
	EventValue_Tstring = $pkg.EventValue_Tstring = $newType(0, $kindStruct, "P4wnP1_grpc.EventValue_Tstring", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Tstring_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Tstring = "";
			return;
		}
		this.Tstring = Tstring_;
	});
	EventValue_Tbool = $pkg.EventValue_Tbool = $newType(0, $kindStruct, "P4wnP1_grpc.EventValue_Tbool", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Tbool_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Tbool = false;
			return;
		}
		this.Tbool = Tbool_;
	});
	EventValue_Tint64 = $pkg.EventValue_Tint64 = $newType(0, $kindStruct, "P4wnP1_grpc.EventValue_Tint64", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Tint64_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Tint64 = new $Int64(0, 0);
			return;
		}
		this.Tint64 = Tint64_;
	});
	Event = $pkg.Event = $newType(0, $kindStruct, "P4wnP1_grpc.Event", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Type_, Values_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Type = new $Int64(0, 0);
			this.Values = sliceType$5.nil;
			return;
		}
		this.Type = Type_;
		this.Values = Values_;
	});
	TempDirOrFileRequest = $pkg.TempDirOrFileRequest = $newType(0, $kindStruct, "P4wnP1_grpc.TempDirOrFileRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Dir_, Prefix_, OnlyFolder_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Dir = "";
			this.Prefix = "";
			this.OnlyFolder = false;
			return;
		}
		this.Dir = Dir_;
		this.Prefix = Prefix_;
		this.OnlyFolder = OnlyFolder_;
	});
	TempDirOrFileResponse = $pkg.TempDirOrFileResponse = $newType(0, $kindStruct, "P4wnP1_grpc.TempDirOrFileResponse", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ResultPath_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ResultPath = "";
			return;
		}
		this.ResultPath = ResultPath_;
	});
	ReadFileRequest = $pkg.ReadFileRequest = $newType(0, $kindStruct, "P4wnP1_grpc.ReadFileRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Folder_, Filename_, Start_, Len_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Folder = 0;
			this.Filename = "";
			this.Start = new $Int64(0, 0);
			this.Len = new $Int64(0, 0);
			return;
		}
		this.Folder = Folder_;
		this.Filename = Filename_;
		this.Start = Start_;
		this.Len = Len_;
	});
	ReadFileResponse = $pkg.ReadFileResponse = $newType(0, $kindStruct, "P4wnP1_grpc.ReadFileResponse", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ReadCount_, Data_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ReadCount = new $Int64(0, 0);
			this.Data = sliceType$1.nil;
			return;
		}
		this.ReadCount = ReadCount_;
		this.Data = Data_;
	});
	WriteFileRequest = $pkg.WriteFileRequest = $newType(0, $kindStruct, "P4wnP1_grpc.WriteFileRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Folder_, Filename_, Append_, MustNotExist_, Data_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Folder = 0;
			this.Filename = "";
			this.Append = false;
			this.MustNotExist = false;
			this.Data = sliceType$1.nil;
			return;
		}
		this.Folder = Folder_;
		this.Filename = Filename_;
		this.Append = Append_;
		this.MustNotExist = MustNotExist_;
		this.Data = Data_;
	});
	FileInfoRequest = $pkg.FileInfoRequest = $newType(0, $kindStruct, "P4wnP1_grpc.FileInfoRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Path_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Path = "";
			return;
		}
		this.Path = Path_;
	});
	FileInfoResponse = $pkg.FileInfoResponse = $newType(0, $kindStruct, "P4wnP1_grpc.FileInfoResponse", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Name_, Size_, Mode_, ModTime_, IsDir_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.Size = new $Int64(0, 0);
			this.Mode = 0;
			this.ModTime = new $Int64(0, 0);
			this.IsDir = false;
			return;
		}
		this.Name = Name_;
		this.Size = Size_;
		this.Mode = Mode_;
		this.ModTime = ModTime_;
		this.IsDir = IsDir_;
	});
	HIDScriptRequest = $pkg.HIDScriptRequest = $newType(0, $kindStruct, "P4wnP1_grpc.HIDScriptRequest", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ScriptPath_, TimeoutSeconds_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ScriptPath = "";
			this.TimeoutSeconds = 0;
			return;
		}
		this.ScriptPath = ScriptPath_;
		this.TimeoutSeconds = TimeoutSeconds_;
	});
	HIDScriptJob = $pkg.HIDScriptJob = $newType(0, $kindStruct, "P4wnP1_grpc.HIDScriptJob", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Id_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Id = 0;
			return;
		}
		this.Id = Id_;
	});
	HIDScriptJobList = $pkg.HIDScriptJobList = $newType(0, $kindStruct, "P4wnP1_grpc.HIDScriptJobList", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Ids_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Ids = sliceType$6.nil;
			return;
		}
		this.Ids = Ids_;
	});
	HIDRunningJobStateResult = $pkg.HIDRunningJobStateResult = $newType(0, $kindStruct, "P4wnP1_grpc.HIDRunningJobStateResult", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Id_, VmId_, Source_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Id = new $Int64(0, 0);
			this.VmId = new $Int64(0, 0);
			this.Source = "";
			return;
		}
		this.Id = Id_;
		this.VmId = VmId_;
		this.Source = Source_;
	});
	HIDScriptResult = $pkg.HIDScriptResult = $newType(0, $kindStruct, "P4wnP1_grpc.HIDScriptResult", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Job_, IsFinished_, ResultJson_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Job = ptrType$62.nil;
			this.IsFinished = false;
			this.ResultJson = "";
			return;
		}
		this.Job = Job_;
		this.IsFinished = IsFinished_;
		this.ResultJson = ResultJson_;
	});
	LEDSettings = $pkg.LEDSettings = $newType(0, $kindStruct, "P4wnP1_grpc.LEDSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(BlinkCount_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.BlinkCount = 0;
			return;
		}
		this.BlinkCount = BlinkCount_;
	});
	USBRequestSettingsStorage = $pkg.USBRequestSettingsStorage = $newType(0, $kindStruct, "P4wnP1_grpc.USBRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Settings = ptrType$68.nil;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	GadgetSettings = $pkg.GadgetSettings = $newType(0, $kindStruct, "P4wnP1_grpc.GadgetSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Enabled_, Vid_, Pid_, Manufacturer_, Product_, Serial_, Use_CDC_ECM_, Use_RNDIS_, Use_HID_KEYBOARD_, Use_HID_MOUSE_, Use_HID_RAW_, Use_UMS_, Use_SERIAL_, RndisSettings_, CdcEcmSettings_, UmsSettings_, DevPathHidKeyboard_, DevPathHidMouse_, DevPathHidRaw_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Enabled = false;
			this.Vid = "";
			this.Pid = "";
			this.Manufacturer = "";
			this.Product = "";
			this.Serial = "";
			this.Use_CDC_ECM = false;
			this.Use_RNDIS = false;
			this.Use_HID_KEYBOARD = false;
			this.Use_HID_MOUSE = false;
			this.Use_HID_RAW = false;
			this.Use_UMS = false;
			this.Use_SERIAL = false;
			this.RndisSettings = ptrType$69.nil;
			this.CdcEcmSettings = ptrType$69.nil;
			this.UmsSettings = ptrType$70.nil;
			this.DevPathHidKeyboard = "";
			this.DevPathHidMouse = "";
			this.DevPathHidRaw = "";
			return;
		}
		this.Enabled = Enabled_;
		this.Vid = Vid_;
		this.Pid = Pid_;
		this.Manufacturer = Manufacturer_;
		this.Product = Product_;
		this.Serial = Serial_;
		this.Use_CDC_ECM = Use_CDC_ECM_;
		this.Use_RNDIS = Use_RNDIS_;
		this.Use_HID_KEYBOARD = Use_HID_KEYBOARD_;
		this.Use_HID_MOUSE = Use_HID_MOUSE_;
		this.Use_HID_RAW = Use_HID_RAW_;
		this.Use_UMS = Use_UMS_;
		this.Use_SERIAL = Use_SERIAL_;
		this.RndisSettings = RndisSettings_;
		this.CdcEcmSettings = CdcEcmSettings_;
		this.UmsSettings = UmsSettings_;
		this.DevPathHidKeyboard = DevPathHidKeyboard_;
		this.DevPathHidMouse = DevPathHidMouse_;
		this.DevPathHidRaw = DevPathHidRaw_;
	});
	GadgetSettingsEthernet = $pkg.GadgetSettingsEthernet = $newType(0, $kindStruct, "P4wnP1_grpc.GadgetSettingsEthernet", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(HostAddr_, DevAddr_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.HostAddr = "";
			this.DevAddr = "";
			return;
		}
		this.HostAddr = HostAddr_;
		this.DevAddr = DevAddr_;
	});
	GadgetSettingsUMS = $pkg.GadgetSettingsUMS = $newType(0, $kindStruct, "P4wnP1_grpc.GadgetSettingsUMS", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Cdrom_, File_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Cdrom = false;
			this.File = "";
			return;
		}
		this.Cdrom = Cdrom_;
		this.File = File_;
	});
	EthernetRequestSettingsStorage = $pkg.EthernetRequestSettingsStorage = $newType(0, $kindStruct, "P4wnP1_grpc.EthernetRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.TemplateName = "";
			this.Settings = ptrType$72.nil;
			return;
		}
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	DeployedEthernetInterfaceSettings = $pkg.DeployedEthernetInterfaceSettings = $newType(0, $kindStruct, "P4wnP1_grpc.DeployedEthernetInterfaceSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(List_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.List = sliceType$7.nil;
			return;
		}
		this.List = List_;
	});
	EthernetInterfaceSettings = $pkg.EthernetInterfaceSettings = $newType(0, $kindStruct, "P4wnP1_grpc.EthernetInterfaceSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Name_, Mode_, IpAddress4_, Netmask4_, Enabled_, DhcpServerSettings_, SettingsInUse_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Name = "";
			this.Mode = 0;
			this.IpAddress4 = "";
			this.Netmask4 = "";
			this.Enabled = false;
			this.DhcpServerSettings = ptrType$74.nil;
			this.SettingsInUse = false;
			return;
		}
		this.Name = Name_;
		this.Mode = Mode_;
		this.IpAddress4 = IpAddress4_;
		this.Netmask4 = Netmask4_;
		this.Enabled = Enabled_;
		this.DhcpServerSettings = DhcpServerSettings_;
		this.SettingsInUse = SettingsInUse_;
	});
	DHCPServerSettings = $pkg.DHCPServerSettings = $newType(0, $kindStruct, "P4wnP1_grpc.DHCPServerSettings", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(ListenPort_, ListenInterface_, LeaseFile_, NotAuthoritative_, DoNotBindInterface_, CallbackScript_, Ranges_, Options_, StaticHosts_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ListenPort = 0;
			this.ListenInterface = "";
			this.LeaseFile = "";
			this.NotAuthoritative = false;
			this.DoNotBindInterface = false;
			this.CallbackScript = "";
			this.Ranges = sliceType$8.nil;
			this.Options = false;
			this.StaticHosts = sliceType$9.nil;
			return;
		}
		this.ListenPort = ListenPort_;
		this.ListenInterface = ListenInterface_;
		this.LeaseFile = LeaseFile_;
		this.NotAuthoritative = NotAuthoritative_;
		this.DoNotBindInterface = DoNotBindInterface_;
		this.CallbackScript = CallbackScript_;
		this.Ranges = Ranges_;
		this.Options = Options_;
		this.StaticHosts = StaticHosts_;
	});
	DHCPServerRange = $pkg.DHCPServerRange = $newType(0, $kindStruct, "P4wnP1_grpc.DHCPServerRange", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(RangeLower_, RangeUpper_, LeaseTime_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.RangeLower = "";
			this.RangeUpper = "";
			this.LeaseTime = "";
			return;
		}
		this.RangeLower = RangeLower_;
		this.RangeUpper = RangeUpper_;
		this.LeaseTime = LeaseTime_;
	});
	DHCPServerStaticHost = $pkg.DHCPServerStaticHost = $newType(0, $kindStruct, "P4wnP1_grpc.DHCPServerStaticHost", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function(Mac_, Ip_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Mac = "";
			this.Ip = "";
			return;
		}
		this.Mac = Mac_;
		this.Ip = Ip_;
	});
	Empty = $pkg.Empty = $newType(0, $kindStruct, "P4wnP1_grpc.Empty", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, function() {
		this.$val = this;
		if (arguments.length === 0) {
			return;
		}
	});
	P4WNP1Client = $pkg.P4WNP1Client = $newType(8, $kindInterface, "P4wnP1_grpc.P4WNP1Client", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	p4WNP1Client = $pkg.p4WNP1Client = $newType(0, $kindStruct, "P4wnP1_grpc.p4WNP1Client", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", false, function(client_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.client = ptrType$78.nil;
			return;
		}
		this.client = client_;
	});
	P4WNP1_EventListenClient = $pkg.P4WNP1_EventListenClient = $newType(8, $kindInterface, "P4wnP1_grpc.P4WNP1_EventListenClient", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", true, null);
	p4WNP1EventListenClient = $pkg.p4WNP1EventListenClient = $newType(0, $kindStruct, "P4wnP1_grpc.p4WNP1EventListenClient", true, "github.com/mame82/P4wnP1_aloa/proto/gopherjs", false, function(ClientStream_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.ClientStream = $ifaceNil;
			return;
		}
		this.ClientStream = ClientStream_;
	});
	ptrType = $ptrType(MasterTemplate);
	sliceType = $sliceType($String);
	ptrType$1 = $ptrType(RequestMasterTemplateStorage);
	ptrType$2 = $ptrType(BluetoothRequestSettingsStorage);
	ptrType$3 = $ptrType(BluetoothSettings);
	ptrType$4 = $ptrType(BluetoothControllerInformation);
	ptrType$5 = $ptrType(BluetoothAgentSettings);
	ptrType$6 = $ptrType(BluetoothNetworkService);
	ptrType$7 = $ptrType(BluetoothControllerSettings);
	sliceType$1 = $sliceType($Uint8);
	ptrType$8 = $ptrType(TriggerAction);
	sliceType$2 = $sliceType(ptrType$8);
	ptrType$9 = $ptrType(TriggerActionSet);
	ptrType$10 = $ptrType(TriggerServiceStarted);
	ptrType$11 = $ptrType(TriggerAction_ServiceStarted);
	ptrType$12 = $ptrType(TriggerUSBGadgetConnected);
	ptrType$13 = $ptrType(TriggerAction_UsbGadgetConnected);
	ptrType$14 = $ptrType(TriggerUSBGadgetDisconnected);
	ptrType$15 = $ptrType(TriggerAction_UsbGadgetDisconnected);
	ptrType$16 = $ptrType(TriggerWifiAPStarted);
	ptrType$17 = $ptrType(TriggerAction_WifiAPStarted);
	ptrType$18 = $ptrType(TriggerWifiConnectedAsSta);
	ptrType$19 = $ptrType(TriggerAction_WifiConnectedAsSta);
	ptrType$20 = $ptrType(TriggerSSHLogin);
	ptrType$21 = $ptrType(TriggerAction_SshLogin);
	ptrType$22 = $ptrType(TriggerDHCPLeaseGranted);
	ptrType$23 = $ptrType(TriggerAction_DhcpLeaseGranted);
	ptrType$24 = $ptrType(TriggerGroupReceive);
	ptrType$25 = $ptrType(TriggerAction_GroupReceive);
	ptrType$26 = $ptrType(TriggerGroupReceiveMulti);
	ptrType$27 = $ptrType(TriggerAction_GroupReceiveMulti);
	ptrType$28 = $ptrType(TriggerGPIOIn);
	ptrType$29 = $ptrType(TriggerAction_GpioIn);
	ptrType$30 = $ptrType(ActionStartBashScript);
	ptrType$31 = $ptrType(TriggerAction_BashScript);
	ptrType$32 = $ptrType(ActionStartHIDScript);
	ptrType$33 = $ptrType(TriggerAction_HidScript);
	ptrType$34 = $ptrType(ActionDeploySettingsTemplate);
	ptrType$35 = $ptrType(TriggerAction_DeploySettingsTemplate);
	ptrType$36 = $ptrType(ActionLog);
	ptrType$37 = $ptrType(TriggerAction_Log);
	ptrType$38 = $ptrType(ActionGPIOOut);
	ptrType$39 = $ptrType(TriggerAction_GpioOut);
	ptrType$40 = $ptrType(ActionGroupSend);
	ptrType$41 = $ptrType(TriggerAction_GroupSend);
	sliceType$3 = $sliceType($Int32);
	ptrType$42 = $ptrType(WifiRequestSettingsStorage);
	ptrType$43 = $ptrType(WiFiSettings);
	ptrType$44 = $ptrType(WiFiBSSCfg);
	sliceType$4 = $sliceType(ptrType$44);
	ptrType$45 = $ptrType(WiFiState);
	ptrType$46 = $ptrType(StringMessage);
	ptrType$47 = $ptrType(StringMessageArray);
	ptrType$48 = $ptrType(EventRequest);
	ptrType$49 = $ptrType(EventValue);
	ptrType$50 = $ptrType(EventValue_Tstring);
	ptrType$51 = $ptrType(EventValue_Tbool);
	ptrType$52 = $ptrType(EventValue_Tint64);
	ptrType$53 = $ptrType(Event);
	sliceType$5 = $sliceType(ptrType$49);
	ptrType$54 = $ptrType(TempDirOrFileRequest);
	ptrType$55 = $ptrType(TempDirOrFileResponse);
	ptrType$56 = $ptrType(ReadFileRequest);
	ptrType$57 = $ptrType(ReadFileResponse);
	ptrType$58 = $ptrType(WriteFileRequest);
	ptrType$59 = $ptrType(FileInfoRequest);
	ptrType$60 = $ptrType(FileInfoResponse);
	ptrType$61 = $ptrType(HIDScriptRequest);
	ptrType$62 = $ptrType(HIDScriptJob);
	sliceType$6 = $sliceType($Uint32);
	ptrType$63 = $ptrType(HIDScriptJobList);
	ptrType$64 = $ptrType(HIDRunningJobStateResult);
	ptrType$65 = $ptrType(HIDScriptResult);
	ptrType$66 = $ptrType(LEDSettings);
	ptrType$67 = $ptrType(USBRequestSettingsStorage);
	ptrType$68 = $ptrType(GadgetSettings);
	ptrType$69 = $ptrType(GadgetSettingsEthernet);
	ptrType$70 = $ptrType(GadgetSettingsUMS);
	ptrType$71 = $ptrType(EthernetRequestSettingsStorage);
	ptrType$72 = $ptrType(EthernetInterfaceSettings);
	sliceType$7 = $sliceType(ptrType$72);
	ptrType$73 = $ptrType(DeployedEthernetInterfaceSettings);
	ptrType$74 = $ptrType(DHCPServerSettings);
	ptrType$75 = $ptrType(DHCPServerRange);
	sliceType$8 = $sliceType(ptrType$75);
	ptrType$76 = $ptrType(DHCPServerStaticHost);
	sliceType$9 = $sliceType(ptrType$76);
	ptrType$77 = $ptrType(Empty);
	ptrType$78 = $ptrType(grpcweb.Client);
	mapType = $mapType($Uint32, $String);
	sliceType$10 = $sliceType(grpcweb.CallOption);
	ptrType$79 = $ptrType(p4WNP1Client);
	ptrType$80 = $ptrType(p4WNP1EventListenClient);
	BluetoothNetworkServiceType.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.BluetoothNetworkServiceType_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(BluetoothNetworkServiceType).prototype.String = function() { return new BluetoothNetworkServiceType(this.$get()).String(); };
	GroupReceiveMultiType.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.GroupReceiveMultiType_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(GroupReceiveMultiType).prototype.String = function() { return new GroupReceiveMultiType(this.$get()).String(); };
	GPIOInPullUpDown.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.GPIOInPullUpDown_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(GPIOInPullUpDown).prototype.String = function() { return new GPIOInPullUpDown(this.$get()).String(); };
	GPIOInEdge.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.GPIOInEdge_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(GPIOInEdge).prototype.String = function() { return new GPIOInEdge(this.$get()).String(); };
	GPIOOutValue.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.GPIOOutValue_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(GPIOOutValue).prototype.String = function() { return new GPIOOutValue(this.$get()).String(); };
	WiFiWorkingMode.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.WiFiWorkingMode_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(WiFiWorkingMode).prototype.String = function() { return new WiFiWorkingMode(this.$get()).String(); };
	WiFiStateMode.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.WiFiStateMode_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(WiFiStateMode).prototype.String = function() { return new WiFiStateMode(this.$get()).String(); };
	WiFiAuthMode.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.WiFiAuthMode_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(WiFiAuthMode).prototype.String = function() { return new WiFiAuthMode(this.$get()).String(); };
	AccessibleFolder.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.AccessibleFolder_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(AccessibleFolder).prototype.String = function() { return new AccessibleFolder(this.$get()).String(); };
	ActionDeploySettingsTemplate_TemplateType.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.ActionDeploySettingsTemplate_TemplateType_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(ActionDeploySettingsTemplate_TemplateType).prototype.String = function() { return new ActionDeploySettingsTemplate_TemplateType(this.$get()).String(); };
	EthernetInterfaceSettings_Mode.prototype.String = function() {
		var _entry, x;
		x = this.$val;
		return (_entry = $mapIndex($pkg.EthernetInterfaceSettings_Mode_name,$Int.keyFor(((x >> 0)))), _entry !== undefined ? _entry.v : "");
	};
	$ptrType(EthernetInterfaceSettings_Mode).prototype.String = function() { return new EthernetInterfaceSettings_Mode(this.$get()).String(); };
	MasterTemplate.ptr.prototype.GetTemplateNameBluetooth = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType.nil) {
			x = x;
			return x;
		}
		x = m.TemplateNameBluetooth;
		return x;
	};
	MasterTemplate.prototype.GetTemplateNameBluetooth = function() { return this.$val.GetTemplateNameBluetooth(); };
	MasterTemplate.ptr.prototype.GetTemplateNameUsb = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType.nil) {
			x = x;
			return x;
		}
		x = m.TemplateNameUsb;
		return x;
	};
	MasterTemplate.prototype.GetTemplateNameUsb = function() { return this.$val.GetTemplateNameUsb(); };
	MasterTemplate.ptr.prototype.GetTemplateNameWifi = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType.nil) {
			x = x;
			return x;
		}
		x = m.TemplateNameWifi;
		return x;
	};
	MasterTemplate.prototype.GetTemplateNameWifi = function() { return this.$val.GetTemplateNameWifi(); };
	MasterTemplate.ptr.prototype.GetTemplateNameTriggerActions = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType.nil) {
			x = x;
			return x;
		}
		x = m.TemplateNameTriggerActions;
		return x;
	};
	MasterTemplate.prototype.GetTemplateNameTriggerActions = function() { return this.$val.GetTemplateNameTriggerActions(); };
	MasterTemplate.ptr.prototype.GetTemplateNamesNetwork = function() {
		var m, x;
		x = sliceType.nil;
		m = this;
		if (m === ptrType.nil) {
			x = x;
			return x;
		}
		x = m.TemplateNamesNetwork;
		return x;
	};
	MasterTemplate.prototype.GetTemplateNamesNetwork = function() { return this.$val.GetTemplateNamesNetwork(); };
	MasterTemplate.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, val, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType.nil) {
			$s = -1; return;
		}
		/* */ if (m.TemplateNameBluetooth.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.TemplateNameBluetooth.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.TemplateNameBluetooth); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.TemplateNameUsb.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.TemplateNameUsb.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.TemplateNameUsb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.TemplateNameWifi.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.TemplateNameWifi.length > 0) { */ case 7:
			$r = writer.WriteString(3, m.TemplateNameWifi); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m.TemplateNameTriggerActions.length > 0) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m.TemplateNameTriggerActions.length > 0) { */ case 10:
			$r = writer.WriteString(4, m.TemplateNameTriggerActions); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		_ref = m.TemplateNamesNetwork;
		_i = 0;
		/* while (true) { */ case 13:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 14; continue; }
			val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer.WriteString(5, val); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 13; continue;
		case 14:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: MasterTemplate.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, val, writer, $s};return $f;
	};
	MasterTemplate.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	MasterTemplate.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: MasterTemplate.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	MasterTemplate.prototype.Marshal = function() { return this.$val.Marshal(); };
	MasterTemplate.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType.nil) {
				m = new MasterTemplate.ptr("", "", "", "", sliceType.nil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.TemplateNameBluetooth = _r$2;
					$s = 12; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.TemplateNameUsb = _r$3;
					$s = 12; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadString(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.TemplateNameWifi = _r$4;
					$s = 12; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadString(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.TemplateNameTriggerActions = _r$5;
					$s = 12; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader.ReadString(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m.TemplateNamesNetwork = $append(m.TemplateNamesNetwork, _r$6);
					$s = 12; continue;
				/* } else { */ case 11:
					$r = reader.SkipField(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 12:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: MasterTemplate.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s};return $f;
	};
	MasterTemplate.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	MasterTemplate.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: MasterTemplate.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	MasterTemplate.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	RequestMasterTemplateStorage.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$1.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	RequestMasterTemplateStorage.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	RequestMasterTemplateStorage.ptr.prototype.GetTemplate = function() {
		var m, x;
		x = ptrType.nil;
		m = this;
		if (m === ptrType$1.nil) {
			x = x;
			return x;
		}
		x = m.Template;
		return x;
	};
	RequestMasterTemplateStorage.prototype.GetTemplate = function() { return this.$val.GetTemplate(); };
	RequestMasterTemplateStorage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$1.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].TemplateName.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].Template === ptrType.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].Template === ptrType.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Template.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: RequestMasterTemplateStorage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	RequestMasterTemplateStorage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	RequestMasterTemplateStorage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: RequestMasterTemplateStorage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	RequestMasterTemplateStorage.prototype.Marshal = function() { return this.$val.Marshal(); };
	RequestMasterTemplateStorage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$1.nil) {
				m[0] = new RequestMasterTemplateStorage.ptr("", ptrType.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = m[0].Template.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Template = _r$3;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: RequestMasterTemplateStorage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	RequestMasterTemplateStorage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	RequestMasterTemplateStorage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$1.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: RequestMasterTemplateStorage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	RequestMasterTemplateStorage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothRequestSettingsStorage.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$2.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	BluetoothRequestSettingsStorage.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	BluetoothRequestSettingsStorage.ptr.prototype.GetSettings = function() {
		var m, x;
		x = ptrType$3.nil;
		m = this;
		if (m === ptrType$2.nil) {
			x = x;
			return x;
		}
		x = m.Settings;
		return x;
	};
	BluetoothRequestSettingsStorage.prototype.GetSettings = function() { return this.$val.GetSettings(); };
	BluetoothRequestSettingsStorage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$2.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].TemplateName.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].Settings === ptrType$3.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].Settings === ptrType$3.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Settings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothRequestSettingsStorage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothRequestSettingsStorage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothRequestSettingsStorage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothRequestSettingsStorage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothRequestSettingsStorage.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothRequestSettingsStorage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$2.nil) {
				m[0] = new BluetoothRequestSettingsStorage.ptr("", ptrType$3.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = m[0].Settings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Settings = _r$3;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: BluetoothRequestSettingsStorage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	BluetoothRequestSettingsStorage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothRequestSettingsStorage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$2.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothRequestSettingsStorage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothRequestSettingsStorage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothSettings.ptr.prototype.GetCi = function() {
		var m, x;
		x = ptrType$4.nil;
		m = this;
		if (m === ptrType$3.nil) {
			x = x;
			return x;
		}
		x = m.Ci;
		return x;
	};
	BluetoothSettings.prototype.GetCi = function() { return this.$val.GetCi(); };
	BluetoothSettings.ptr.prototype.GetAs = function() {
		var m, x;
		x = ptrType$5.nil;
		m = this;
		if (m === ptrType$3.nil) {
			x = x;
			return x;
		}
		x = m.As;
		return x;
	};
	BluetoothSettings.prototype.GetAs = function() { return this.$val.GetAs(); };
	BluetoothSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$3.nil) {
			$s = -1; return;
		}
		/* */ if (!(m[0].Ci === ptrType$4.nil)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(m[0].Ci === ptrType$4.nil)) { */ case 1:
			$r = writer[0].WriteMessage(1, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Ci.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].As === ptrType$5.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].As === ptrType$5.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].As.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$3.nil) {
				m[0] = new BluetoothSettings.ptr(ptrType$4.nil, ptrType$5.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$2, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$2 = m[0].Ci.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						m[0].Ci = _r$2;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
					}; })(m, reader)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$2, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$2 = m[0].As.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						m[0].As = _r$2;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: BluetoothSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, m, reader, $s};return $f;
	};
	BluetoothSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$3.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothAgentSettings.ptr.prototype.GetPin = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$5.nil) {
			x = x;
			return x;
		}
		x = m.Pin;
		return x;
	};
	BluetoothAgentSettings.prototype.GetPin = function() { return this.$val.GetPin(); };
	BluetoothAgentSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$5.nil) {
			$s = -1; return;
		}
		/* */ if (m.Pin.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Pin.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Pin); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothAgentSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothAgentSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothAgentSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothAgentSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothAgentSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothAgentSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$5.nil) {
				m = new BluetoothAgentSettings.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Pin = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: BluetoothAgentSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	BluetoothAgentSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothAgentSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$5.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothAgentSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothAgentSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothNetworkService.ptr.prototype.GetRegisterOrUnregister = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$6.nil) {
			x = x;
			return x;
		}
		x = m.RegisterOrUnregister;
		return x;
	};
	BluetoothNetworkService.prototype.GetRegisterOrUnregister = function() { return this.$val.GetRegisterOrUnregister(); };
	BluetoothNetworkService.ptr.prototype.GetServerOrConnect = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$6.nil) {
			x = x;
			return x;
		}
		x = m.ServerOrConnect;
		return x;
	};
	BluetoothNetworkService.prototype.GetServerOrConnect = function() { return this.$val.GetServerOrConnect(); };
	BluetoothNetworkService.ptr.prototype.GetType = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$6.nil) {
			x = x;
			return x;
		}
		x = m.Type;
		return x;
	};
	BluetoothNetworkService.prototype.GetType = function() { return this.$val.GetType(); };
	BluetoothNetworkService.ptr.prototype.GetMacOrName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$6.nil) {
			x = x;
			return x;
		}
		x = m.MacOrName;
		return x;
	};
	BluetoothNetworkService.prototype.GetMacOrName = function() { return this.$val.GetMacOrName(); };
	BluetoothNetworkService.ptr.prototype.GetBridgeName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$6.nil) {
			x = x;
			return x;
		}
		x = m.BridgeName;
		return x;
	};
	BluetoothNetworkService.prototype.GetBridgeName = function() { return this.$val.GetBridgeName(); };
	BluetoothNetworkService.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$6.nil) {
			$s = -1; return;
		}
		/* */ if (m.RegisterOrUnregister) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.RegisterOrUnregister) { */ case 1:
			$r = writer.WriteBool(1, m.RegisterOrUnregister); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.ServerOrConnect) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.ServerOrConnect) { */ case 4:
			$r = writer.WriteBool(2, m.ServerOrConnect); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((((m.Type >> 0)) === 0))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((((m.Type >> 0)) === 0))) { */ case 7:
			$r = writer.WriteEnum(3, ((m.Type >> 0))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m.MacOrName.length > 0) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m.MacOrName.length > 0) { */ case 10:
			$r = writer.WriteString(4, m.MacOrName); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m.BridgeName.length > 0) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m.BridgeName.length > 0) { */ case 13:
			$r = writer.WriteString(5, m.BridgeName); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothNetworkService.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothNetworkService.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothNetworkService.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothNetworkService.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothNetworkService.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothNetworkService.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$6.nil) {
				m = new BluetoothNetworkService.ptr(false, false, 0, "", "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadBool(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.RegisterOrUnregister = _r$2;
					$s = 12; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadBool(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.ServerOrConnect = _r$3;
					$s = 12; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadEnum(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Type = ((_r$4 >> 0));
					$s = 12; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadString(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.MacOrName = _r$5;
					$s = 12; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader.ReadString(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m.BridgeName = _r$6;
					$s = 12; continue;
				/* } else { */ case 11:
					$r = reader.SkipField(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 12:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: BluetoothNetworkService.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s};return $f;
	};
	BluetoothNetworkService.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothNetworkService.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$6.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothNetworkService.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothNetworkService.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothControllerSettings.ptr.prototype.GetPowered = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Powered;
		return x;
	};
	BluetoothControllerSettings.prototype.GetPowered = function() { return this.$val.GetPowered(); };
	BluetoothControllerSettings.ptr.prototype.GetConnectable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Connectable;
		return x;
	};
	BluetoothControllerSettings.prototype.GetConnectable = function() { return this.$val.GetConnectable(); };
	BluetoothControllerSettings.ptr.prototype.GetFastConnectable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.FastConnectable;
		return x;
	};
	BluetoothControllerSettings.prototype.GetFastConnectable = function() { return this.$val.GetFastConnectable(); };
	BluetoothControllerSettings.ptr.prototype.GetDiscoverable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Discoverable;
		return x;
	};
	BluetoothControllerSettings.prototype.GetDiscoverable = function() { return this.$val.GetDiscoverable(); };
	BluetoothControllerSettings.ptr.prototype.GetBondable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Bondable;
		return x;
	};
	BluetoothControllerSettings.prototype.GetBondable = function() { return this.$val.GetBondable(); };
	BluetoothControllerSettings.ptr.prototype.GetLinkLevelSecurity = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.LinkLevelSecurity;
		return x;
	};
	BluetoothControllerSettings.prototype.GetLinkLevelSecurity = function() { return this.$val.GetLinkLevelSecurity(); };
	BluetoothControllerSettings.ptr.prototype.GetSecureSimplePairing = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.SecureSimplePairing;
		return x;
	};
	BluetoothControllerSettings.prototype.GetSecureSimplePairing = function() { return this.$val.GetSecureSimplePairing(); };
	BluetoothControllerSettings.ptr.prototype.GetBrEdr = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.BrEdr;
		return x;
	};
	BluetoothControllerSettings.prototype.GetBrEdr = function() { return this.$val.GetBrEdr(); };
	BluetoothControllerSettings.ptr.prototype.GetHighSpeed = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.HighSpeed;
		return x;
	};
	BluetoothControllerSettings.prototype.GetHighSpeed = function() { return this.$val.GetHighSpeed(); };
	BluetoothControllerSettings.ptr.prototype.GetLowEnergy = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.LowEnergy;
		return x;
	};
	BluetoothControllerSettings.prototype.GetLowEnergy = function() { return this.$val.GetLowEnergy(); };
	BluetoothControllerSettings.ptr.prototype.GetAdvertising = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Advertising;
		return x;
	};
	BluetoothControllerSettings.prototype.GetAdvertising = function() { return this.$val.GetAdvertising(); };
	BluetoothControllerSettings.ptr.prototype.GetSecureConnections = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.SecureConnections;
		return x;
	};
	BluetoothControllerSettings.prototype.GetSecureConnections = function() { return this.$val.GetSecureConnections(); };
	BluetoothControllerSettings.ptr.prototype.GetDebugKeys = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.DebugKeys;
		return x;
	};
	BluetoothControllerSettings.prototype.GetDebugKeys = function() { return this.$val.GetDebugKeys(); };
	BluetoothControllerSettings.ptr.prototype.GetPrivacy = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.Privacy;
		return x;
	};
	BluetoothControllerSettings.prototype.GetPrivacy = function() { return this.$val.GetPrivacy(); };
	BluetoothControllerSettings.ptr.prototype.GetControllerConfiguration = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.ControllerConfiguration;
		return x;
	};
	BluetoothControllerSettings.prototype.GetControllerConfiguration = function() { return this.$val.GetControllerConfiguration(); };
	BluetoothControllerSettings.ptr.prototype.GetStaticAddress = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$7.nil) {
			x = x;
			return x;
		}
		x = m.StaticAddress;
		return x;
	};
	BluetoothControllerSettings.prototype.GetStaticAddress = function() { return this.$val.GetStaticAddress(); };
	BluetoothControllerSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$7.nil) {
			$s = -1; return;
		}
		/* */ if (m.Powered) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Powered) { */ case 1:
			$r = writer.WriteBool(1, m.Powered); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Connectable) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Connectable) { */ case 4:
			$r = writer.WriteBool(2, m.Connectable); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.FastConnectable) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.FastConnectable) { */ case 7:
			$r = writer.WriteBool(3, m.FastConnectable); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m.Discoverable) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m.Discoverable) { */ case 10:
			$r = writer.WriteBool(4, m.Discoverable); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m.Bondable) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m.Bondable) { */ case 13:
			$r = writer.WriteBool(5, m.Bondable); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (m.LinkLevelSecurity) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (m.LinkLevelSecurity) { */ case 16:
			$r = writer.WriteBool(6, m.LinkLevelSecurity); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		/* */ if (m.SecureSimplePairing) { $s = 19; continue; }
		/* */ $s = 20; continue;
		/* if (m.SecureSimplePairing) { */ case 19:
			$r = writer.WriteBool(7, m.SecureSimplePairing); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 20:
		/* */ if (m.BrEdr) { $s = 22; continue; }
		/* */ $s = 23; continue;
		/* if (m.BrEdr) { */ case 22:
			$r = writer.WriteBool(8, m.BrEdr); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 23:
		/* */ if (m.HighSpeed) { $s = 25; continue; }
		/* */ $s = 26; continue;
		/* if (m.HighSpeed) { */ case 25:
			$r = writer.WriteBool(9, m.HighSpeed); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 26:
		/* */ if (m.LowEnergy) { $s = 28; continue; }
		/* */ $s = 29; continue;
		/* if (m.LowEnergy) { */ case 28:
			$r = writer.WriteBool(10, m.LowEnergy); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 29:
		/* */ if (m.Advertising) { $s = 31; continue; }
		/* */ $s = 32; continue;
		/* if (m.Advertising) { */ case 31:
			$r = writer.WriteBool(11, m.Advertising); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 32:
		/* */ if (m.SecureConnections) { $s = 34; continue; }
		/* */ $s = 35; continue;
		/* if (m.SecureConnections) { */ case 34:
			$r = writer.WriteBool(12, m.SecureConnections); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 35:
		/* */ if (m.DebugKeys) { $s = 37; continue; }
		/* */ $s = 38; continue;
		/* if (m.DebugKeys) { */ case 37:
			$r = writer.WriteBool(13, m.DebugKeys); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 38:
		/* */ if (m.Privacy) { $s = 40; continue; }
		/* */ $s = 41; continue;
		/* if (m.Privacy) { */ case 40:
			$r = writer.WriteBool(14, m.Privacy); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 41:
		/* */ if (m.ControllerConfiguration) { $s = 43; continue; }
		/* */ $s = 44; continue;
		/* if (m.ControllerConfiguration) { */ case 43:
			$r = writer.WriteBool(15, m.ControllerConfiguration); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 44:
		/* */ if (m.StaticAddress) { $s = 46; continue; }
		/* */ $s = 47; continue;
		/* if (m.StaticAddress) { */ case 46:
			$r = writer.WriteBool(16, m.StaticAddress); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 47:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothControllerSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothControllerSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothControllerSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothControllerSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothControllerSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothControllerSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$7.nil) {
				m = new BluetoothControllerSettings.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ if (_1 === (10)) { $s = 15; continue; }
				/* */ if (_1 === (11)) { $s = 16; continue; }
				/* */ if (_1 === (12)) { $s = 17; continue; }
				/* */ if (_1 === (13)) { $s = 18; continue; }
				/* */ if (_1 === (14)) { $s = 19; continue; }
				/* */ if (_1 === (15)) { $s = 20; continue; }
				/* */ if (_1 === (16)) { $s = 21; continue; }
				/* */ $s = 22; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadBool(); /* */ $s = 24; case 24: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Powered = _r$2;
					$s = 23; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadBool(); /* */ $s = 25; case 25: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Connectable = _r$3;
					$s = 23; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadBool(); /* */ $s = 26; case 26: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.FastConnectable = _r$4;
					$s = 23; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadBool(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.Discoverable = _r$5;
					$s = 23; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader.ReadBool(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m.Bondable = _r$6;
					$s = 23; continue;
				/* } else if (_1 === (6)) { */ case 11:
					_r$7 = reader.ReadBool(); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m.LinkLevelSecurity = _r$7;
					$s = 23; continue;
				/* } else if (_1 === (7)) { */ case 12:
					_r$8 = reader.ReadBool(); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
					m.SecureSimplePairing = _r$8;
					$s = 23; continue;
				/* } else if (_1 === (8)) { */ case 13:
					_r$9 = reader.ReadBool(); /* */ $s = 31; case 31: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
					m.BrEdr = _r$9;
					$s = 23; continue;
				/* } else if (_1 === (9)) { */ case 14:
					_r$10 = reader.ReadBool(); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
					m.HighSpeed = _r$10;
					$s = 23; continue;
				/* } else if (_1 === (10)) { */ case 15:
					_r$11 = reader.ReadBool(); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
					m.LowEnergy = _r$11;
					$s = 23; continue;
				/* } else if (_1 === (11)) { */ case 16:
					_r$12 = reader.ReadBool(); /* */ $s = 34; case 34: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
					m.Advertising = _r$12;
					$s = 23; continue;
				/* } else if (_1 === (12)) { */ case 17:
					_r$13 = reader.ReadBool(); /* */ $s = 35; case 35: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
					m.SecureConnections = _r$13;
					$s = 23; continue;
				/* } else if (_1 === (13)) { */ case 18:
					_r$14 = reader.ReadBool(); /* */ $s = 36; case 36: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
					m.DebugKeys = _r$14;
					$s = 23; continue;
				/* } else if (_1 === (14)) { */ case 19:
					_r$15 = reader.ReadBool(); /* */ $s = 37; case 37: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
					m.Privacy = _r$15;
					$s = 23; continue;
				/* } else if (_1 === (15)) { */ case 20:
					_r$16 = reader.ReadBool(); /* */ $s = 38; case 38: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
					m.ControllerConfiguration = _r$16;
					$s = 23; continue;
				/* } else if (_1 === (16)) { */ case 21:
					_r$17 = reader.ReadBool(); /* */ $s = 39; case 39: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
					m.StaticAddress = _r$17;
					$s = 23; continue;
				/* } else { */ case 22:
					$r = reader.SkipField(); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 23:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: BluetoothControllerSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s};return $f;
	};
	BluetoothControllerSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothControllerSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$7.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothControllerSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothControllerSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	BluetoothControllerInformation.ptr.prototype.GetAddress = function() {
		var m, x;
		x = sliceType$1.nil;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.Address;
		return x;
	};
	BluetoothControllerInformation.prototype.GetAddress = function() { return this.$val.GetAddress(); };
	BluetoothControllerInformation.ptr.prototype.GetBluetoothVersion = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.BluetoothVersion;
		return x;
	};
	BluetoothControllerInformation.prototype.GetBluetoothVersion = function() { return this.$val.GetBluetoothVersion(); };
	BluetoothControllerInformation.ptr.prototype.GetManufacturer = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.Manufacturer;
		return x;
	};
	BluetoothControllerInformation.prototype.GetManufacturer = function() { return this.$val.GetManufacturer(); };
	BluetoothControllerInformation.ptr.prototype.GetSupportedSettings = function() {
		var m, x;
		x = ptrType$7.nil;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.SupportedSettings;
		return x;
	};
	BluetoothControllerInformation.prototype.GetSupportedSettings = function() { return this.$val.GetSupportedSettings(); };
	BluetoothControllerInformation.ptr.prototype.GetCurrentSettings = function() {
		var m, x;
		x = ptrType$7.nil;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.CurrentSettings;
		return x;
	};
	BluetoothControllerInformation.prototype.GetCurrentSettings = function() { return this.$val.GetCurrentSettings(); };
	BluetoothControllerInformation.ptr.prototype.GetClassOfDevice = function() {
		var m, x;
		x = sliceType$1.nil;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.ClassOfDevice;
		return x;
	};
	BluetoothControllerInformation.prototype.GetClassOfDevice = function() { return this.$val.GetClassOfDevice(); };
	BluetoothControllerInformation.ptr.prototype.GetName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.Name;
		return x;
	};
	BluetoothControllerInformation.prototype.GetName = function() { return this.$val.GetName(); };
	BluetoothControllerInformation.ptr.prototype.GetShortName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.ShortName;
		return x;
	};
	BluetoothControllerInformation.prototype.GetShortName = function() { return this.$val.GetShortName(); };
	BluetoothControllerInformation.ptr.prototype.GetIsAvailable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.IsAvailable;
		return x;
	};
	BluetoothControllerInformation.prototype.GetIsAvailable = function() { return this.$val.GetIsAvailable(); };
	BluetoothControllerInformation.ptr.prototype.GetServiceNetworkServerNap = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.ServiceNetworkServerNap;
		return x;
	};
	BluetoothControllerInformation.prototype.GetServiceNetworkServerNap = function() { return this.$val.GetServiceNetworkServerNap(); };
	BluetoothControllerInformation.ptr.prototype.GetServiceNetworkServerPanu = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.ServiceNetworkServerPanu;
		return x;
	};
	BluetoothControllerInformation.prototype.GetServiceNetworkServerPanu = function() { return this.$val.GetServiceNetworkServerPanu(); };
	BluetoothControllerInformation.ptr.prototype.GetServiceNetworkServerGn = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$4.nil) {
			x = x;
			return x;
		}
		x = m.ServiceNetworkServerGn;
		return x;
	};
	BluetoothControllerInformation.prototype.GetServiceNetworkServerGn = function() { return this.$val.GetServiceNetworkServerGn(); };
	BluetoothControllerInformation.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$4.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].Address.$length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].Address.$length > 0) { */ case 1:
			$r = writer[0].WriteBytes(1, m[0].Address); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((m[0].BluetoothVersion === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((m[0].BluetoothVersion === 0))) { */ case 4:
			$r = writer[0].WriteUint32(2, m[0].BluetoothVersion); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((m[0].Manufacturer === 0))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((m[0].Manufacturer === 0))) { */ case 7:
			$r = writer[0].WriteUint32(3, m[0].Manufacturer); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!(m[0].SupportedSettings === ptrType$7.nil)) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!(m[0].SupportedSettings === ptrType$7.nil)) { */ case 10:
			$r = writer[0].WriteMessage(4, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].SupportedSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (!(m[0].CurrentSettings === ptrType$7.nil)) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (!(m[0].CurrentSettings === ptrType$7.nil)) { */ case 13:
			$r = writer[0].WriteMessage(5, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].CurrentSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (m[0].ClassOfDevice.$length > 0) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (m[0].ClassOfDevice.$length > 0) { */ case 16:
			$r = writer[0].WriteBytes(6, m[0].ClassOfDevice); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		/* */ if (m[0].Name.length > 0) { $s = 19; continue; }
		/* */ $s = 20; continue;
		/* if (m[0].Name.length > 0) { */ case 19:
			$r = writer[0].WriteString(7, m[0].Name); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 20:
		/* */ if (m[0].ShortName.length > 0) { $s = 22; continue; }
		/* */ $s = 23; continue;
		/* if (m[0].ShortName.length > 0) { */ case 22:
			$r = writer[0].WriteString(8, m[0].ShortName); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 23:
		/* */ if (m[0].IsAvailable) { $s = 25; continue; }
		/* */ $s = 26; continue;
		/* if (m[0].IsAvailable) { */ case 25:
			$r = writer[0].WriteBool(9, m[0].IsAvailable); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 26:
		/* */ if (m[0].ServiceNetworkServerNap) { $s = 28; continue; }
		/* */ $s = 29; continue;
		/* if (m[0].ServiceNetworkServerNap) { */ case 28:
			$r = writer[0].WriteBool(10, m[0].ServiceNetworkServerNap); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 29:
		/* */ if (m[0].ServiceNetworkServerPanu) { $s = 31; continue; }
		/* */ $s = 32; continue;
		/* if (m[0].ServiceNetworkServerPanu) { */ case 31:
			$r = writer[0].WriteBool(11, m[0].ServiceNetworkServerPanu); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 32:
		/* */ if (m[0].ServiceNetworkServerGn) { $s = 34; continue; }
		/* */ $s = 35; continue;
		/* if (m[0].ServiceNetworkServerGn) { */ case 34:
			$r = writer[0].WriteBool(12, m[0].ServiceNetworkServerGn); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 35:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: BluetoothControllerInformation.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	BluetoothControllerInformation.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	BluetoothControllerInformation.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: BluetoothControllerInformation.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	BluetoothControllerInformation.prototype.Marshal = function() { return this.$val.Marshal(); };
	BluetoothControllerInformation.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$4.nil) {
				m[0] = new BluetoothControllerInformation.ptr(sliceType$1.nil, 0, 0, ptrType$7.nil, ptrType$7.nil, sliceType$1.nil, "", "", false, false, false, false);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ if (_1 === (10)) { $s = 15; continue; }
				/* */ if (_1 === (11)) { $s = 16; continue; }
				/* */ if (_1 === (12)) { $s = 17; continue; }
				/* */ $s = 18; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadBytes(); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Address = _r$2;
					$s = 19; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadUint32(); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].BluetoothVersion = _r$3;
					$s = 19; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadUint32(); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].Manufacturer = _r$4;
					$s = 19; continue;
				/* } else if (_1 === (4)) { */ case 9:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$5, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$5 = m[0].SupportedSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
						m[0].SupportedSettings = _r$5;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$5, $s};return $f;
					}; })(m, reader)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 19; continue;
				/* } else if (_1 === (5)) { */ case 10:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$5, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$5 = m[0].CurrentSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
						m[0].CurrentSettings = _r$5;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$5, $s};return $f;
					}; })(m, reader)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 19; continue;
				/* } else if (_1 === (6)) { */ case 11:
					_r$5 = reader[0].ReadBytes(); /* */ $s = 25; case 25: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].ClassOfDevice = _r$5;
					$s = 19; continue;
				/* } else if (_1 === (7)) { */ case 12:
					_r$6 = reader[0].ReadString(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m[0].Name = _r$6;
					$s = 19; continue;
				/* } else if (_1 === (8)) { */ case 13:
					_r$7 = reader[0].ReadString(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m[0].ShortName = _r$7;
					$s = 19; continue;
				/* } else if (_1 === (9)) { */ case 14:
					_r$8 = reader[0].ReadBool(); /* */ $s = 28; case 28: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
					m[0].IsAvailable = _r$8;
					$s = 19; continue;
				/* } else if (_1 === (10)) { */ case 15:
					_r$9 = reader[0].ReadBool(); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
					m[0].ServiceNetworkServerNap = _r$9;
					$s = 19; continue;
				/* } else if (_1 === (11)) { */ case 16:
					_r$10 = reader[0].ReadBool(); /* */ $s = 30; case 30: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
					m[0].ServiceNetworkServerPanu = _r$10;
					$s = 19; continue;
				/* } else if (_1 === (12)) { */ case 17:
					_r$11 = reader[0].ReadBool(); /* */ $s = 31; case 31: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
					m[0].ServiceNetworkServerGn = _r$11;
					$s = 19; continue;
				/* } else { */ case 18:
					$r = reader[0].SkipField(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 19:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: BluetoothControllerInformation.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s};return $f;
	};
	BluetoothControllerInformation.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	BluetoothControllerInformation.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$4.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: BluetoothControllerInformation.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	BluetoothControllerInformation.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerActionSet.ptr.prototype.GetTriggerActions = function() {
		var m, x;
		x = sliceType$2.nil;
		m = this;
		if (m === ptrType$9.nil) {
			x = x;
			return x;
		}
		x = m.TriggerActions;
		return x;
	};
	TriggerActionSet.prototype.GetTriggerActions = function() { return this.$val.GetTriggerActions(); };
	TriggerActionSet.ptr.prototype.GetName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$9.nil) {
			x = x;
			return x;
		}
		x = m.Name;
		return x;
	};
	TriggerActionSet.prototype.GetName = function() { return this.$val.GetName(); };
	TriggerActionSet.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, msg, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		msg = [msg];
		writer = [writer];
		m = this;
		if (m === ptrType$9.nil) {
			$s = -1; return;
		}
		_ref = m.TriggerActions;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			msg[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer[0].WriteMessage(1, (function(msg, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(msg, writer)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		/* */ if (m.Name.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Name.length > 0) { */ case 4:
			$r = writer[0].WriteString(2, m.Name); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerActionSet.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, msg, writer, $s};return $f;
	};
	TriggerActionSet.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerActionSet.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerActionSet.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerActionSet.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerActionSet.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$9.nil) {
				m[0] = new TriggerActionSet.ptr(sliceType$2.nil, "");
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$2, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$2 = new TriggerAction.ptr(0, false, false, false, $ifaceNil, $ifaceNil).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						m[0].TriggerActions = $append(m[0].TriggerActions, _r$2);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
					}; })(m, reader)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$2 = reader[0].ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Name = _r$2;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: TriggerActionSet.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	TriggerActionSet.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerActionSet.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerActionSet.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerActionSet.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerAction.ptr.prototype.GetTrigger = function() {
		var m, x;
		x = $ifaceNil;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.Trigger;
		return x;
	};
	TriggerAction.prototype.GetTrigger = function() { return this.$val.GetTrigger(); };
	TriggerAction.ptr.prototype.GetAction = function() {
		var m, x;
		x = $ifaceNil;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.Action;
		return x;
	};
	TriggerAction.prototype.GetAction = function() { return this.$val.GetAction(); };
	TriggerAction.ptr.prototype.GetId = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.Id;
		return x;
	};
	TriggerAction.prototype.GetId = function() { return this.$val.GetId(); };
	TriggerAction.ptr.prototype.GetOneShot = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.OneShot;
		return x;
	};
	TriggerAction.prototype.GetOneShot = function() { return this.$val.GetOneShot(); };
	TriggerAction.ptr.prototype.GetIsActive = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.IsActive;
		return x;
	};
	TriggerAction.prototype.GetIsActive = function() { return this.$val.GetIsActive(); };
	TriggerAction.ptr.prototype.GetImmutable = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$8.nil) {
			x = x;
			return x;
		}
		x = m.Immutable;
		return x;
	};
	TriggerAction.prototype.GetImmutable = function() { return this.$val.GetImmutable(); };
	TriggerAction.ptr.prototype.GetServiceStarted = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$10.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$11, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.ServiceStarted;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetServiceStarted = function() { return this.$val.GetServiceStarted(); };
	TriggerAction.ptr.prototype.GetUsbGadgetConnected = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$12.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$13, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.UsbGadgetConnected;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetUsbGadgetConnected = function() { return this.$val.GetUsbGadgetConnected(); };
	TriggerAction.ptr.prototype.GetUsbGadgetDisconnected = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$14.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$15, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.UsbGadgetDisconnected;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetUsbGadgetDisconnected = function() { return this.$val.GetUsbGadgetDisconnected(); };
	TriggerAction.ptr.prototype.GetWifiAPStarted = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$16.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$17, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.WifiAPStarted;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetWifiAPStarted = function() { return this.$val.GetWifiAPStarted(); };
	TriggerAction.ptr.prototype.GetWifiConnectedAsSta = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$18.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$19, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.WifiConnectedAsSta;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetWifiConnectedAsSta = function() { return this.$val.GetWifiConnectedAsSta(); };
	TriggerAction.ptr.prototype.GetSshLogin = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$20.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$21, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.SshLogin;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetSshLogin = function() { return this.$val.GetSshLogin(); };
	TriggerAction.ptr.prototype.GetDhcpLeaseGranted = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$22.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$23, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.DhcpLeaseGranted;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetDhcpLeaseGranted = function() { return this.$val.GetDhcpLeaseGranted(); };
	TriggerAction.ptr.prototype.GetGroupReceive = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$24.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$25, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.GroupReceive;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetGroupReceive = function() { return this.$val.GetGroupReceive(); };
	TriggerAction.ptr.prototype.GetGroupReceiveMulti = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$26.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$27, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.GroupReceiveMulti;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetGroupReceiveMulti = function() { return this.$val.GetGroupReceiveMulti(); };
	TriggerAction.ptr.prototype.GetGpioIn = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$28.nil;
		m = this;
		_tuple = $assertType(m.GetTrigger(), ptrType$29, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.GpioIn;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetGpioIn = function() { return this.$val.GetGpioIn(); };
	TriggerAction.ptr.prototype.GetBashScript = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$30.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$31, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.BashScript;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetBashScript = function() { return this.$val.GetBashScript(); };
	TriggerAction.ptr.prototype.GetHidScript = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$32.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$33, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.HidScript;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetHidScript = function() { return this.$val.GetHidScript(); };
	TriggerAction.ptr.prototype.GetDeploySettingsTemplate = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$34.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$35, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.DeploySettingsTemplate;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetDeploySettingsTemplate = function() { return this.$val.GetDeploySettingsTemplate(); };
	TriggerAction.ptr.prototype.GetLog = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$36.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$37, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.Log;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetLog = function() { return this.$val.GetLog(); };
	TriggerAction.ptr.prototype.GetGpioOut = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$38.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$39, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.GpioOut;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetGpioOut = function() { return this.$val.GetGpioOut(); };
	TriggerAction.ptr.prototype.GetGroupSend = function() {
		var _tuple, m, ok, v, x;
		x = ptrType$40.nil;
		m = this;
		_tuple = $assertType(m.GetAction(), ptrType$41, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.GroupSend;
			return x;
		}
		x = x;
		return x;
	};
	TriggerAction.prototype.GetGroupSend = function() { return this.$val.GetGroupSend(); };
	TriggerAction.ptr.prototype.MarshalToWriter = function(writer) {
		var {_ref, _ref$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		t = [t];
		t$1 = [t$1];
		t$10 = [t$10];
		t$11 = [t$11];
		t$12 = [t$12];
		t$13 = [t$13];
		t$14 = [t$14];
		t$15 = [t$15];
		t$2 = [t$2];
		t$3 = [t$3];
		t$4 = [t$4];
		t$5 = [t$5];
		t$6 = [t$6];
		t$7 = [t$7];
		t$8 = [t$8];
		t$9 = [t$9];
		writer = [writer];
		m = this;
		if (m === ptrType$8.nil) {
			$s = -1; return;
		}
		_ref = m.Trigger;
		/* */ if ($assertType(_ref, ptrType$11, true)[1]) { $s = 1; continue; }
		/* */ if ($assertType(_ref, ptrType$13, true)[1]) { $s = 2; continue; }
		/* */ if ($assertType(_ref, ptrType$15, true)[1]) { $s = 3; continue; }
		/* */ if ($assertType(_ref, ptrType$17, true)[1]) { $s = 4; continue; }
		/* */ if ($assertType(_ref, ptrType$19, true)[1]) { $s = 5; continue; }
		/* */ if ($assertType(_ref, ptrType$21, true)[1]) { $s = 6; continue; }
		/* */ if ($assertType(_ref, ptrType$23, true)[1]) { $s = 7; continue; }
		/* */ if ($assertType(_ref, ptrType$25, true)[1]) { $s = 8; continue; }
		/* */ if ($assertType(_ref, ptrType$27, true)[1]) { $s = 9; continue; }
		/* */ if ($assertType(_ref, ptrType$29, true)[1]) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if ($assertType(_ref, ptrType$11, true)[1]) { */ case 1:
			t$3[0] = _ref.$val;
			/* */ if (!(t$3[0].ServiceStarted === ptrType$10.nil)) { $s = 12; continue; }
			/* */ $s = 13; continue;
			/* if (!(t$3[0].ServiceStarted === ptrType$10.nil)) { */ case 12:
				$r = writer[0].WriteMessage(5, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$3[0].ServiceStarted.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 13:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$13, true)[1]) { */ case 2:
			t[0] = _ref.$val;
			/* */ if (!(t[0].UsbGadgetConnected === ptrType$12.nil)) { $s = 15; continue; }
			/* */ $s = 16; continue;
			/* if (!(t[0].UsbGadgetConnected === ptrType$12.nil)) { */ case 15:
				$r = writer[0].WriteMessage(6, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t[0].UsbGadgetConnected.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 16:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$15, true)[1]) { */ case 3:
			t$6[0] = _ref.$val;
			/* */ if (!(t$6[0].UsbGadgetDisconnected === ptrType$14.nil)) { $s = 18; continue; }
			/* */ $s = 19; continue;
			/* if (!(t$6[0].UsbGadgetDisconnected === ptrType$14.nil)) { */ case 18:
				$r = writer[0].WriteMessage(7, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$6[0].UsbGadgetDisconnected.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 19:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$17, true)[1]) { */ case 4:
			t$2[0] = _ref.$val;
			/* */ if (!(t$2[0].WifiAPStarted === ptrType$16.nil)) { $s = 21; continue; }
			/* */ $s = 22; continue;
			/* if (!(t$2[0].WifiAPStarted === ptrType$16.nil)) { */ case 21:
				$r = writer[0].WriteMessage(8, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$2[0].WifiAPStarted.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 22:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$19, true)[1]) { */ case 5:
			t$1[0] = _ref.$val;
			/* */ if (!(t$1[0].WifiConnectedAsSta === ptrType$18.nil)) { $s = 24; continue; }
			/* */ $s = 25; continue;
			/* if (!(t$1[0].WifiConnectedAsSta === ptrType$18.nil)) { */ case 24:
				$r = writer[0].WriteMessage(9, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$1[0].WifiConnectedAsSta.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 25:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$21, true)[1]) { */ case 6:
			t$4[0] = _ref.$val;
			/* */ if (!(t$4[0].SshLogin === ptrType$20.nil)) { $s = 27; continue; }
			/* */ $s = 28; continue;
			/* if (!(t$4[0].SshLogin === ptrType$20.nil)) { */ case 27:
				$r = writer[0].WriteMessage(10, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$4[0].SshLogin.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 28:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$23, true)[1]) { */ case 7:
			t$8[0] = _ref.$val;
			/* */ if (!(t$8[0].DhcpLeaseGranted === ptrType$22.nil)) { $s = 30; continue; }
			/* */ $s = 31; continue;
			/* if (!(t$8[0].DhcpLeaseGranted === ptrType$22.nil)) { */ case 30:
				$r = writer[0].WriteMessage(11, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$8[0].DhcpLeaseGranted.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 31:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$25, true)[1]) { */ case 8:
			t$9[0] = _ref.$val;
			/* */ if (!(t$9[0].GroupReceive === ptrType$24.nil)) { $s = 33; continue; }
			/* */ $s = 34; continue;
			/* if (!(t$9[0].GroupReceive === ptrType$24.nil)) { */ case 33:
				$r = writer[0].WriteMessage(12, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$9[0].GroupReceive.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 34:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$27, true)[1]) { */ case 9:
			t$7[0] = _ref.$val;
			/* */ if (!(t$7[0].GroupReceiveMulti === ptrType$26.nil)) { $s = 36; continue; }
			/* */ $s = 37; continue;
			/* if (!(t$7[0].GroupReceiveMulti === ptrType$26.nil)) { */ case 36:
				$r = writer[0].WriteMessage(13, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$7[0].GroupReceiveMulti.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 37:
			$s = 11; continue;
		/* } else if ($assertType(_ref, ptrType$29, true)[1]) { */ case 10:
			t$5[0] = _ref.$val;
			/* */ if (!(t$5[0].GpioIn === ptrType$28.nil)) { $s = 39; continue; }
			/* */ $s = 40; continue;
			/* if (!(t$5[0].GpioIn === ptrType$28.nil)) { */ case 39:
				$r = writer[0].WriteMessage(14, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$5[0].GpioIn.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 40:
		/* } */ case 11:
		_ref$1 = m.Action;
		/* */ if ($assertType(_ref$1, ptrType$31, true)[1]) { $s = 42; continue; }
		/* */ if ($assertType(_ref$1, ptrType$33, true)[1]) { $s = 43; continue; }
		/* */ if ($assertType(_ref$1, ptrType$35, true)[1]) { $s = 44; continue; }
		/* */ if ($assertType(_ref$1, ptrType$37, true)[1]) { $s = 45; continue; }
		/* */ if ($assertType(_ref$1, ptrType$39, true)[1]) { $s = 46; continue; }
		/* */ if ($assertType(_ref$1, ptrType$41, true)[1]) { $s = 47; continue; }
		/* */ $s = 48; continue;
		/* if ($assertType(_ref$1, ptrType$31, true)[1]) { */ case 42:
			t$15[0] = _ref$1.$val;
			/* */ if (!(t$15[0].BashScript === ptrType$30.nil)) { $s = 49; continue; }
			/* */ $s = 50; continue;
			/* if (!(t$15[0].BashScript === ptrType$30.nil)) { */ case 49:
				$r = writer[0].WriteMessage(15, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$15[0].BashScript.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 50:
			$s = 48; continue;
		/* } else if ($assertType(_ref$1, ptrType$33, true)[1]) { */ case 43:
			t$14[0] = _ref$1.$val;
			/* */ if (!(t$14[0].HidScript === ptrType$32.nil)) { $s = 52; continue; }
			/* */ $s = 53; continue;
			/* if (!(t$14[0].HidScript === ptrType$32.nil)) { */ case 52:
				$r = writer[0].WriteMessage(16, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$14[0].HidScript.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 53:
			$s = 48; continue;
		/* } else if ($assertType(_ref$1, ptrType$35, true)[1]) { */ case 44:
			t$12[0] = _ref$1.$val;
			/* */ if (!(t$12[0].DeploySettingsTemplate === ptrType$34.nil)) { $s = 55; continue; }
			/* */ $s = 56; continue;
			/* if (!(t$12[0].DeploySettingsTemplate === ptrType$34.nil)) { */ case 55:
				$r = writer[0].WriteMessage(17, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$12[0].DeploySettingsTemplate.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 56:
			$s = 48; continue;
		/* } else if ($assertType(_ref$1, ptrType$37, true)[1]) { */ case 45:
			t$11[0] = _ref$1.$val;
			/* */ if (!(t$11[0].Log === ptrType$36.nil)) { $s = 58; continue; }
			/* */ $s = 59; continue;
			/* if (!(t$11[0].Log === ptrType$36.nil)) { */ case 58:
				$r = writer[0].WriteMessage(18, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function() {
					t$11[0].Log.MarshalToWriter(writer[0]);
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 60; case 60: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 59:
			$s = 48; continue;
		/* } else if ($assertType(_ref$1, ptrType$39, true)[1]) { */ case 46:
			t$10[0] = _ref$1.$val;
			/* */ if (!(t$10[0].GpioOut === ptrType$38.nil)) { $s = 61; continue; }
			/* */ $s = 62; continue;
			/* if (!(t$10[0].GpioOut === ptrType$38.nil)) { */ case 61:
				$r = writer[0].WriteMessage(19, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$10[0].GpioOut.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 62:
			$s = 48; continue;
		/* } else if ($assertType(_ref$1, ptrType$41, true)[1]) { */ case 47:
			t$13[0] = _ref$1.$val;
			/* */ if (!(t$13[0].GroupSend === ptrType$40.nil)) { $s = 64; continue; }
			/* */ $s = 65; continue;
			/* if (!(t$13[0].GroupSend === ptrType$40.nil)) { */ case 64:
				$r = writer[0].WriteMessage(20, (function(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = t$13[0].GroupSend.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer)); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 65:
		/* } */ case 48:
		/* */ if (!((m.Id === 0))) { $s = 67; continue; }
		/* */ $s = 68; continue;
		/* if (!((m.Id === 0))) { */ case 67:
			$r = writer[0].WriteUint32(1, m.Id); /* */ $s = 69; case 69: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 68:
		/* */ if (m.OneShot) { $s = 70; continue; }
		/* */ $s = 71; continue;
		/* if (m.OneShot) { */ case 70:
			$r = writer[0].WriteBool(2, m.OneShot); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 71:
		/* */ if (m.IsActive) { $s = 73; continue; }
		/* */ $s = 74; continue;
		/* if (m.IsActive) { */ case 73:
			$r = writer[0].WriteBool(3, m.IsActive); /* */ $s = 75; case 75: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 74:
		/* */ if (m.Immutable) { $s = 76; continue; }
		/* */ $s = 77; continue;
		/* if (m.Immutable) { */ case 76:
			$r = writer[0].WriteBool(4, m.Immutable); /* */ $s = 78; case 78: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 77:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerAction.ptr.prototype.MarshalToWriter, $c: true, $r, _ref, _ref$1, m, t, t$1, t$10, t$11, t$12, t$13, t$14, t$15, t$2, t$3, t$4, t$5, t$6, t$7, t$8, t$9, writer, $s};return $f;
	};
	TriggerAction.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerAction.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerAction.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerAction.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerAction.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$8.nil) {
				m[0] = new TriggerAction.ptr(0, false, false, false, $ifaceNil, $ifaceNil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ if (_1 === (10)) { $s = 15; continue; }
				/* */ if (_1 === (11)) { $s = 16; continue; }
				/* */ if (_1 === (12)) { $s = 17; continue; }
				/* */ if (_1 === (13)) { $s = 18; continue; }
				/* */ if (_1 === (14)) { $s = 19; continue; }
				/* */ if (_1 === (15)) { $s = 20; continue; }
				/* */ if (_1 === (16)) { $s = 21; continue; }
				/* */ if (_1 === (17)) { $s = 22; continue; }
				/* */ if (_1 === (18)) { $s = 23; continue; }
				/* */ if (_1 === (19)) { $s = 24; continue; }
				/* */ if (_1 === (20)) { $s = 25; continue; }
				/* */ $s = 26; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadUint32(); /* */ $s = 28; case 28: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Id = _r$2;
					$s = 27; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadBool(); /* */ $s = 29; case 29: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].OneShot = _r$3;
					$s = 27; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadBool(); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].IsActive = _r$4;
					$s = 27; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader[0].ReadBool(); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].Immutable = _r$5;
					$s = 27; continue;
				/* } else if (_1 === (5)) { */ case 10:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerServiceStarted.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_ServiceStarted.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (6)) { */ case 11:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerUSBGadgetConnected.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_UsbGadgetConnected.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (7)) { */ case 12:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerUSBGadgetDisconnected.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_UsbGadgetDisconnected.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (8)) { */ case 13:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerWifiAPStarted.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_WifiAPStarted.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (9)) { */ case 14:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerWifiConnectedAsSta.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_WifiConnectedAsSta.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (10)) { */ case 15:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerSSHLogin.ptr("").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_SshLogin.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (11)) { */ case 16:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerDHCPLeaseGranted.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_DhcpLeaseGranted.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (12)) { */ case 17:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerGroupReceive.ptr("", 0).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_GroupReceive.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (13)) { */ case 18:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerGroupReceiveMulti.ptr("", sliceType$3.nil, 0).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_GroupReceiveMulti.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (14)) { */ case 19:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new TriggerGPIOIn.ptr("", 0, 0, new $Int64(0, 0)).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Trigger = new TriggerAction_GpioIn.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (15)) { */ case 20:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionStartBashScript.ptr("").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_BashScript.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (16)) { */ case 21:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionStartHIDScript.ptr("").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_HidScript.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (17)) { */ case 22:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionDeploySettingsTemplate.ptr("", 0).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_DeploySettingsTemplate.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (18)) { */ case 23:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionLog.ptr().UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_Log.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (19)) { */ case 24:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionGPIOOut.ptr("", 0).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_GpioOut.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else if (_1 === (20)) { */ case 25:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$6, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$6 = new ActionGroupSend.ptr("", 0).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						m[0].Action = new TriggerAction_GroupSend.ptr(_r$6);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$6, $s};return $f;
					}; })(m, reader)); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 27; continue;
				/* } else { */ case 26:
					$r = reader[0].SkipField(); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 27:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: TriggerAction.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s};return $f;
	};
	TriggerAction.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerAction.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$8.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerAction.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerAction.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerServiceStarted.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$10.nil) {
			return;
		}
		return;
	};
	TriggerServiceStarted.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerServiceStarted.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerServiceStarted.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerServiceStarted.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerServiceStarted.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$10.nil) {
				m = new TriggerServiceStarted.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerServiceStarted.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerServiceStarted.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerServiceStarted.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$10.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerServiceStarted.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerServiceStarted.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerUSBGadgetConnected.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$12.nil) {
			return;
		}
		return;
	};
	TriggerUSBGadgetConnected.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerUSBGadgetConnected.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetConnected.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerUSBGadgetConnected.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerUSBGadgetConnected.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$12.nil) {
				m = new TriggerUSBGadgetConnected.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetConnected.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerUSBGadgetConnected.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerUSBGadgetConnected.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$12.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetConnected.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerUSBGadgetConnected.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerUSBGadgetDisconnected.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$14.nil) {
			return;
		}
		return;
	};
	TriggerUSBGadgetDisconnected.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerUSBGadgetDisconnected.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetDisconnected.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerUSBGadgetDisconnected.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerUSBGadgetDisconnected.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$14.nil) {
				m = new TriggerUSBGadgetDisconnected.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetDisconnected.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerUSBGadgetDisconnected.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerUSBGadgetDisconnected.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$14.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerUSBGadgetDisconnected.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerUSBGadgetDisconnected.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerWifiAPStarted.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$16.nil) {
			return;
		}
		return;
	};
	TriggerWifiAPStarted.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerWifiAPStarted.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerWifiAPStarted.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerWifiAPStarted.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerWifiAPStarted.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$16.nil) {
				m = new TriggerWifiAPStarted.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerWifiAPStarted.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerWifiAPStarted.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerWifiAPStarted.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$16.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerWifiAPStarted.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerWifiAPStarted.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerWifiConnectedAsSta.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$18.nil) {
			return;
		}
		return;
	};
	TriggerWifiConnectedAsSta.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerWifiConnectedAsSta.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerWifiConnectedAsSta.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerWifiConnectedAsSta.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerWifiConnectedAsSta.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$18.nil) {
				m = new TriggerWifiConnectedAsSta.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerWifiConnectedAsSta.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerWifiConnectedAsSta.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerWifiConnectedAsSta.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$18.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerWifiConnectedAsSta.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerWifiConnectedAsSta.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerSSHLogin.ptr.prototype.GetLoginUser = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$20.nil) {
			x = x;
			return x;
		}
		x = m.LoginUser;
		return x;
	};
	TriggerSSHLogin.prototype.GetLoginUser = function() { return this.$val.GetLoginUser(); };
	TriggerSSHLogin.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$20.nil) {
			$s = -1; return;
		}
		/* */ if (m.LoginUser.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.LoginUser.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.LoginUser); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerSSHLogin.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	TriggerSSHLogin.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerSSHLogin.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerSSHLogin.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerSSHLogin.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerSSHLogin.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$20.nil) {
				m = new TriggerSSHLogin.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.LoginUser = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerSSHLogin.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	TriggerSSHLogin.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerSSHLogin.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$20.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerSSHLogin.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerSSHLogin.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerDHCPLeaseGranted.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$22.nil) {
			return;
		}
		return;
	};
	TriggerDHCPLeaseGranted.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerDHCPLeaseGranted.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: TriggerDHCPLeaseGranted.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerDHCPLeaseGranted.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerDHCPLeaseGranted.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$22.nil) {
				m = new TriggerDHCPLeaseGranted.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerDHCPLeaseGranted.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	TriggerDHCPLeaseGranted.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerDHCPLeaseGranted.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$22.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerDHCPLeaseGranted.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerDHCPLeaseGranted.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerGroupReceive.ptr.prototype.GetGroupName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$24.nil) {
			x = x;
			return x;
		}
		x = m.GroupName;
		return x;
	};
	TriggerGroupReceive.prototype.GetGroupName = function() { return this.$val.GetGroupName(); };
	TriggerGroupReceive.ptr.prototype.GetValue = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$24.nil) {
			x = x;
			return x;
		}
		x = m.Value;
		return x;
	};
	TriggerGroupReceive.prototype.GetValue = function() { return this.$val.GetValue(); };
	TriggerGroupReceive.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$24.nil) {
			$s = -1; return;
		}
		/* */ if (m.GroupName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.GroupName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.GroupName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((m.Value === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((m.Value === 0))) { */ case 4:
			$r = writer.WriteInt32(2, m.Value); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerGroupReceive.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	TriggerGroupReceive.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerGroupReceive.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerGroupReceive.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerGroupReceive.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerGroupReceive.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$24.nil) {
				m = new TriggerGroupReceive.ptr("", 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.GroupName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadInt32(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Value = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerGroupReceive.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	TriggerGroupReceive.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerGroupReceive.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$24.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerGroupReceive.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerGroupReceive.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerGroupReceiveMulti.ptr.prototype.GetGroupName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$26.nil) {
			x = x;
			return x;
		}
		x = m.GroupName;
		return x;
	};
	TriggerGroupReceiveMulti.prototype.GetGroupName = function() { return this.$val.GetGroupName(); };
	TriggerGroupReceiveMulti.ptr.prototype.GetValues = function() {
		var m, x;
		x = sliceType$3.nil;
		m = this;
		if (m === ptrType$26.nil) {
			x = x;
			return x;
		}
		x = m.Values;
		return x;
	};
	TriggerGroupReceiveMulti.prototype.GetValues = function() { return this.$val.GetValues(); };
	TriggerGroupReceiveMulti.ptr.prototype.GetType = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$26.nil) {
			x = x;
			return x;
		}
		x = m.Type;
		return x;
	};
	TriggerGroupReceiveMulti.prototype.GetType = function() { return this.$val.GetType(); };
	TriggerGroupReceiveMulti.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$26.nil) {
			$s = -1; return;
		}
		/* */ if (m.GroupName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.GroupName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.GroupName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Values.$length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Values.$length > 0) { */ case 4:
			$r = writer.WriteInt32Slice(3, m.Values); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((((m.Type >> 0)) === 0))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((((m.Type >> 0)) === 0))) { */ case 7:
			$r = writer.WriteEnum(4, ((m.Type >> 0))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerGroupReceiveMulti.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	TriggerGroupReceiveMulti.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerGroupReceiveMulti.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerGroupReceiveMulti.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerGroupReceiveMulti.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerGroupReceiveMulti.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$26.nil) {
				m = new TriggerGroupReceiveMulti.ptr("", sliceType$3.nil, 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (3)) { $s = 7; continue; }
				/* */ if (_1 === (4)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.GroupName = _r$2;
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 7:
					_r$3 = reader.ReadInt32Slice(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Values = _r$3;
					$s = 10; continue;
				/* } else if (_1 === (4)) { */ case 8:
					_r$4 = reader.ReadEnum(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Type = ((_r$4 >> 0));
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader.SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerGroupReceiveMulti.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	TriggerGroupReceiveMulti.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerGroupReceiveMulti.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$26.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerGroupReceiveMulti.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerGroupReceiveMulti.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TriggerGPIOIn.ptr.prototype.GetGpioName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$28.nil) {
			x = x;
			return x;
		}
		x = m.GpioName;
		return x;
	};
	TriggerGPIOIn.prototype.GetGpioName = function() { return this.$val.GetGpioName(); };
	TriggerGPIOIn.ptr.prototype.GetPullUpDown = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$28.nil) {
			x = x;
			return x;
		}
		x = m.PullUpDown;
		return x;
	};
	TriggerGPIOIn.prototype.GetPullUpDown = function() { return this.$val.GetPullUpDown(); };
	TriggerGPIOIn.ptr.prototype.GetGpioInEdge = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$28.nil) {
			x = x;
			return x;
		}
		x = m.GpioInEdge;
		return x;
	};
	TriggerGPIOIn.prototype.GetGpioInEdge = function() { return this.$val.GetGpioInEdge(); };
	TriggerGPIOIn.ptr.prototype.GetDebounceMillis = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$28.nil) {
			x = x;
			return x;
		}
		x = m.DebounceMillis;
		return x;
	};
	TriggerGPIOIn.prototype.GetDebounceMillis = function() { return this.$val.GetDebounceMillis(); };
	TriggerGPIOIn.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$28.nil) {
			$s = -1; return;
		}
		/* */ if (m.GpioName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.GpioName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.GpioName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((((m.PullUpDown >> 0)) === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((((m.PullUpDown >> 0)) === 0))) { */ case 4:
			$r = writer.WriteEnum(2, ((m.PullUpDown >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((((m.GpioInEdge >> 0)) === 0))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((((m.GpioInEdge >> 0)) === 0))) { */ case 7:
			$r = writer.WriteEnum(3, ((m.GpioInEdge >> 0))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!((x = m.DebounceMillis, (x.$high === 0 && x.$low === 0)))) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!((x = m.DebounceMillis, (x.$high === 0 && x.$low === 0)))) { */ case 10:
			$r = writer.WriteInt64(4, m.DebounceMillis); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TriggerGPIOIn.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, $s};return $f;
	};
	TriggerGPIOIn.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TriggerGPIOIn.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TriggerGPIOIn.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TriggerGPIOIn.prototype.Marshal = function() { return this.$val.Marshal(); };
	TriggerGPIOIn.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$28.nil) {
				m = new TriggerGPIOIn.ptr("", 0, 0, new $Int64(0, 0));
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ $s = 10; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.GpioName = _r$2;
					$s = 11; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadEnum(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.PullUpDown = ((_r$3 >> 0));
					$s = 11; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadEnum(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.GpioInEdge = ((_r$4 >> 0));
					$s = 11; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadInt64(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.DebounceMillis = _r$5;
					$s = 11; continue;
				/* } else { */ case 10:
					$r = reader.SkipField(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 11:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TriggerGPIOIn.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s};return $f;
	};
	TriggerGPIOIn.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TriggerGPIOIn.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$28.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TriggerGPIOIn.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TriggerGPIOIn.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionStartBashScript.ptr.prototype.GetScriptName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$30.nil) {
			x = x;
			return x;
		}
		x = m.ScriptName;
		return x;
	};
	ActionStartBashScript.prototype.GetScriptName = function() { return this.$val.GetScriptName(); };
	ActionStartBashScript.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$30.nil) {
			$s = -1; return;
		}
		/* */ if (m.ScriptName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.ScriptName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.ScriptName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ActionStartBashScript.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	ActionStartBashScript.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionStartBashScript.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ActionStartBashScript.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionStartBashScript.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionStartBashScript.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$30.nil) {
				m = new ActionStartBashScript.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ScriptName = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionStartBashScript.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	ActionStartBashScript.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionStartBashScript.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$30.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionStartBashScript.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionStartBashScript.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionStartHIDScript.ptr.prototype.GetScriptName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$32.nil) {
			x = x;
			return x;
		}
		x = m.ScriptName;
		return x;
	};
	ActionStartHIDScript.prototype.GetScriptName = function() { return this.$val.GetScriptName(); };
	ActionStartHIDScript.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$32.nil) {
			$s = -1; return;
		}
		/* */ if (m.ScriptName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.ScriptName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.ScriptName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ActionStartHIDScript.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	ActionStartHIDScript.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionStartHIDScript.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ActionStartHIDScript.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionStartHIDScript.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionStartHIDScript.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$32.nil) {
				m = new ActionStartHIDScript.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ScriptName = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionStartHIDScript.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	ActionStartHIDScript.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionStartHIDScript.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$32.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionStartHIDScript.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionStartHIDScript.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionDeploySettingsTemplate.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$34.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	ActionDeploySettingsTemplate.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	ActionDeploySettingsTemplate.ptr.prototype.GetType = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$34.nil) {
			x = x;
			return x;
		}
		x = m.Type;
		return x;
	};
	ActionDeploySettingsTemplate.prototype.GetType = function() { return this.$val.GetType(); };
	ActionDeploySettingsTemplate.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$34.nil) {
			$s = -1; return;
		}
		/* */ if (m.TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.TemplateName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((((m.Type >> 0)) === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((((m.Type >> 0)) === 0))) { */ case 4:
			$r = writer.WriteEnum(2, ((m.Type >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ActionDeploySettingsTemplate.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	ActionDeploySettingsTemplate.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionDeploySettingsTemplate.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ActionDeploySettingsTemplate.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionDeploySettingsTemplate.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionDeploySettingsTemplate.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$34.nil) {
				m = new ActionDeploySettingsTemplate.ptr("", 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadEnum(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Type = ((_r$3 >> 0));
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionDeploySettingsTemplate.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	ActionDeploySettingsTemplate.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionDeploySettingsTemplate.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$34.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionDeploySettingsTemplate.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionDeploySettingsTemplate.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionLog.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$36.nil) {
			return;
		}
		return;
	};
	ActionLog.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionLog.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: ActionLog.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionLog.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionLog.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$36.nil) {
				m = new ActionLog.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionLog.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	ActionLog.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionLog.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$36.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionLog.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionLog.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionGPIOOut.ptr.prototype.GetGpioName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$38.nil) {
			x = x;
			return x;
		}
		x = m.GpioName;
		return x;
	};
	ActionGPIOOut.prototype.GetGpioName = function() { return this.$val.GetGpioName(); };
	ActionGPIOOut.ptr.prototype.GetValue = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$38.nil) {
			x = x;
			return x;
		}
		x = m.Value;
		return x;
	};
	ActionGPIOOut.prototype.GetValue = function() { return this.$val.GetValue(); };
	ActionGPIOOut.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$38.nil) {
			$s = -1; return;
		}
		/* */ if (m.GpioName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.GpioName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.GpioName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((((m.Value >> 0)) === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((((m.Value >> 0)) === 0))) { */ case 4:
			$r = writer.WriteEnum(2, ((m.Value >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ActionGPIOOut.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	ActionGPIOOut.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionGPIOOut.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ActionGPIOOut.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionGPIOOut.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionGPIOOut.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$38.nil) {
				m = new ActionGPIOOut.ptr("", 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.GpioName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadEnum(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Value = ((_r$3 >> 0));
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionGPIOOut.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	ActionGPIOOut.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionGPIOOut.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$38.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionGPIOOut.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionGPIOOut.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ActionGroupSend.ptr.prototype.GetGroupName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$40.nil) {
			x = x;
			return x;
		}
		x = m.GroupName;
		return x;
	};
	ActionGroupSend.prototype.GetGroupName = function() { return this.$val.GetGroupName(); };
	ActionGroupSend.ptr.prototype.GetValue = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$40.nil) {
			x = x;
			return x;
		}
		x = m.Value;
		return x;
	};
	ActionGroupSend.prototype.GetValue = function() { return this.$val.GetValue(); };
	ActionGroupSend.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$40.nil) {
			$s = -1; return;
		}
		/* */ if (m.GroupName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.GroupName.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.GroupName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((m.Value === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((m.Value === 0))) { */ case 4:
			$r = writer.WriteInt32(2, m.Value); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ActionGroupSend.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	ActionGroupSend.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ActionGroupSend.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ActionGroupSend.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ActionGroupSend.prototype.Marshal = function() { return this.$val.Marshal(); };
	ActionGroupSend.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$40.nil) {
				m = new ActionGroupSend.ptr("", 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.GroupName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadInt32(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Value = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ActionGroupSend.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	ActionGroupSend.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ActionGroupSend.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$40.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ActionGroupSend.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ActionGroupSend.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	WifiRequestSettingsStorage.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$42.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	WifiRequestSettingsStorage.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	WifiRequestSettingsStorage.ptr.prototype.GetSettings = function() {
		var m, x;
		x = ptrType$43.nil;
		m = this;
		if (m === ptrType$42.nil) {
			x = x;
			return x;
		}
		x = m.Settings;
		return x;
	};
	WifiRequestSettingsStorage.prototype.GetSettings = function() { return this.$val.GetSettings(); };
	WifiRequestSettingsStorage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$42.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].TemplateName.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].Settings === ptrType$43.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].Settings === ptrType$43.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Settings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: WifiRequestSettingsStorage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	WifiRequestSettingsStorage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	WifiRequestSettingsStorage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: WifiRequestSettingsStorage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	WifiRequestSettingsStorage.prototype.Marshal = function() { return this.$val.Marshal(); };
	WifiRequestSettingsStorage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$42.nil) {
				m[0] = new WifiRequestSettingsStorage.ptr("", ptrType$43.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = m[0].Settings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Settings = _r$3;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: WifiRequestSettingsStorage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	WifiRequestSettingsStorage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	WifiRequestSettingsStorage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$42.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: WifiRequestSettingsStorage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	WifiRequestSettingsStorage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	WiFiSettings.ptr.prototype.GetName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Name;
		return x;
	};
	WiFiSettings.prototype.GetName = function() { return this.$val.GetName(); };
	WiFiSettings.ptr.prototype.GetDisabled = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Disabled;
		return x;
	};
	WiFiSettings.prototype.GetDisabled = function() { return this.$val.GetDisabled(); };
	WiFiSettings.ptr.prototype.GetRegulatory = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Regulatory;
		return x;
	};
	WiFiSettings.prototype.GetRegulatory = function() { return this.$val.GetRegulatory(); };
	WiFiSettings.ptr.prototype.GetWorkingMode = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.WorkingMode;
		return x;
	};
	WiFiSettings.prototype.GetWorkingMode = function() { return this.$val.GetWorkingMode(); };
	WiFiSettings.ptr.prototype.GetAuthMode = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.AuthMode;
		return x;
	};
	WiFiSettings.prototype.GetAuthMode = function() { return this.$val.GetAuthMode(); };
	WiFiSettings.ptr.prototype.GetChannel = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Channel;
		return x;
	};
	WiFiSettings.prototype.GetChannel = function() { return this.$val.GetChannel(); };
	WiFiSettings.ptr.prototype.GetAp_BSS = function() {
		var m, x;
		x = ptrType$44.nil;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Ap_BSS;
		return x;
	};
	WiFiSettings.prototype.GetAp_BSS = function() { return this.$val.GetAp_BSS(); };
	WiFiSettings.ptr.prototype.GetClient_BSSList = function() {
		var m, x;
		x = sliceType$4.nil;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Client_BSSList;
		return x;
	};
	WiFiSettings.prototype.GetClient_BSSList = function() { return this.$val.GetClient_BSSList(); };
	WiFiSettings.ptr.prototype.GetHideSsid = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.HideSsid;
		return x;
	};
	WiFiSettings.prototype.GetHideSsid = function() { return this.$val.GetHideSsid(); };
	WiFiSettings.ptr.prototype.GetNexmon = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$43.nil) {
			x = x;
			return x;
		}
		x = m.Nexmon;
		return x;
	};
	WiFiSettings.prototype.GetNexmon = function() { return this.$val.GetNexmon(); };
	WiFiSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, msg, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		msg = [msg];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$43.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].Name.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].Name.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].Name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m[0].Disabled) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m[0].Disabled) { */ case 4:
			$r = writer[0].WriteBool(2, m[0].Disabled); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m[0].Regulatory.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m[0].Regulatory.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m[0].Regulatory); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!((((m[0].WorkingMode >> 0)) === 0))) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!((((m[0].WorkingMode >> 0)) === 0))) { */ case 10:
			$r = writer[0].WriteEnum(4, ((m[0].WorkingMode >> 0))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (!((((m[0].AuthMode >> 0)) === 0))) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (!((((m[0].AuthMode >> 0)) === 0))) { */ case 13:
			$r = writer[0].WriteEnum(5, ((m[0].AuthMode >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (!((m[0].Channel === 0))) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (!((m[0].Channel === 0))) { */ case 16:
			$r = writer[0].WriteUint32(6, m[0].Channel); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		/* */ if (!(m[0].Ap_BSS === ptrType$44.nil)) { $s = 19; continue; }
		/* */ $s = 20; continue;
		/* if (!(m[0].Ap_BSS === ptrType$44.nil)) { */ case 19:
			$r = writer[0].WriteMessage(7, (function(m, msg, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Ap_BSS.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, msg, writer)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 20:
		_ref = m[0].Client_BSSList;
		_i = 0;
		/* while (true) { */ case 22:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 23; continue; }
			msg[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer[0].WriteMessage(8, (function(m, msg, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, msg, writer)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 22; continue;
		case 23:
		/* */ if (m[0].HideSsid) { $s = 25; continue; }
		/* */ $s = 26; continue;
		/* if (m[0].HideSsid) { */ case 25:
			$r = writer[0].WriteBool(9, m[0].HideSsid); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 26:
		/* */ if (m[0].Nexmon) { $s = 28; continue; }
		/* */ $s = 29; continue;
		/* if (m[0].Nexmon) { */ case 28:
			$r = writer[0].WriteBool(13, m[0].Nexmon); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 29:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: WiFiSettings.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, msg, writer, $s};return $f;
	};
	WiFiSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	WiFiSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: WiFiSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	WiFiSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	WiFiSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$43.nil) {
				m[0] = new WiFiSettings.ptr("", false, "", 0, 0, 0, ptrType$44.nil, sliceType$4.nil, false, false);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ if (_1 === (13)) { $s = 15; continue; }
				/* */ $s = 16; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Name = _r$2;
					$s = 17; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadBool(); /* */ $s = 19; case 19: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].Disabled = _r$3;
					$s = 17; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadString(); /* */ $s = 20; case 20: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].Regulatory = _r$4;
					$s = 17; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader[0].ReadEnum(); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].WorkingMode = ((_r$5 >> 0));
					$s = 17; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader[0].ReadEnum(); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m[0].AuthMode = ((_r$6 >> 0));
					$s = 17; continue;
				/* } else if (_1 === (6)) { */ case 11:
					_r$7 = reader[0].ReadUint32(); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m[0].Channel = _r$7;
					$s = 17; continue;
				/* } else if (_1 === (7)) { */ case 12:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$8, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$8 = m[0].Ap_BSS.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
						m[0].Ap_BSS = _r$8;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$8, $s};return $f;
					}; })(m, reader)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 17; continue;
				/* } else if (_1 === (8)) { */ case 13:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$8, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$8 = new WiFiBSSCfg.ptr("", "").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
						m[0].Client_BSSList = $append(m[0].Client_BSSList, _r$8);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$8, $s};return $f;
					}; })(m, reader)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 17; continue;
				/* } else if (_1 === (9)) { */ case 14:
					_r$8 = reader[0].ReadBool(); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
					m[0].HideSsid = _r$8;
					$s = 17; continue;
				/* } else if (_1 === (13)) { */ case 15:
					_r$9 = reader[0].ReadBool(); /* */ $s = 27; case 27: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
					m[0].Nexmon = _r$9;
					$s = 17; continue;
				/* } else { */ case 16:
					$r = reader[0].SkipField(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 17:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: WiFiSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s};return $f;
	};
	WiFiSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	WiFiSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$43.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: WiFiSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	WiFiSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	WiFiState.ptr.prototype.GetMode = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$45.nil) {
			x = x;
			return x;
		}
		x = m.Mode;
		return x;
	};
	WiFiState.prototype.GetMode = function() { return this.$val.GetMode(); };
	WiFiState.ptr.prototype.GetChannel = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$45.nil) {
			x = x;
			return x;
		}
		x = m.Channel;
		return x;
	};
	WiFiState.prototype.GetChannel = function() { return this.$val.GetChannel(); };
	WiFiState.ptr.prototype.GetSsid = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$45.nil) {
			x = x;
			return x;
		}
		x = m.Ssid;
		return x;
	};
	WiFiState.prototype.GetSsid = function() { return this.$val.GetSsid(); };
	WiFiState.ptr.prototype.GetCurrentSettings = function() {
		var m, x;
		x = ptrType$43.nil;
		m = this;
		if (m === ptrType$45.nil) {
			x = x;
			return x;
		}
		x = m.CurrentSettings;
		return x;
	};
	WiFiState.prototype.GetCurrentSettings = function() { return this.$val.GetCurrentSettings(); };
	WiFiState.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$45.nil) {
			$s = -1; return;
		}
		/* */ if (!((((m[0].Mode >> 0)) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((m[0].Mode >> 0)) === 0))) { */ case 1:
			$r = writer[0].WriteEnum(1, ((m[0].Mode >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((m[0].Channel === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((m[0].Channel === 0))) { */ case 4:
			$r = writer[0].WriteUint32(2, m[0].Channel); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m[0].Ssid.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m[0].Ssid.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m[0].Ssid); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!(m[0].CurrentSettings === ptrType$43.nil)) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!(m[0].CurrentSettings === ptrType$43.nil)) { */ case 10:
			$r = writer[0].WriteMessage(4, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].CurrentSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: WiFiState.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	WiFiState.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	WiFiState.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: WiFiState.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	WiFiState.prototype.Marshal = function() { return this.$val.Marshal(); };
	WiFiState.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$45.nil) {
				m[0] = new WiFiState.ptr(0, 0, "", ptrType$43.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ $s = 10; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadEnum(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Mode = ((_r$2 >> 0));
					$s = 11; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadUint32(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].Channel = _r$3;
					$s = 11; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadString(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].Ssid = _r$4;
					$s = 11; continue;
				/* } else if (_1 === (4)) { */ case 9:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$5, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$5 = m[0].CurrentSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
						m[0].CurrentSettings = _r$5;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$5, $s};return $f;
					}; })(m, reader)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 11; continue;
				/* } else { */ case 10:
					$r = reader[0].SkipField(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 11:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: WiFiState.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	WiFiState.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	WiFiState.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$45.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: WiFiState.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	WiFiState.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	WiFiBSSCfg.ptr.prototype.GetSSID = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$44.nil) {
			x = x;
			return x;
		}
		x = m.SSID;
		return x;
	};
	WiFiBSSCfg.prototype.GetSSID = function() { return this.$val.GetSSID(); };
	WiFiBSSCfg.ptr.prototype.GetPSK = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$44.nil) {
			x = x;
			return x;
		}
		x = m.PSK;
		return x;
	};
	WiFiBSSCfg.prototype.GetPSK = function() { return this.$val.GetPSK(); };
	WiFiBSSCfg.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$44.nil) {
			$s = -1; return;
		}
		/* */ if (m.SSID.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.SSID.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.SSID); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.PSK.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.PSK.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.PSK); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: WiFiBSSCfg.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	WiFiBSSCfg.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	WiFiBSSCfg.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: WiFiBSSCfg.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	WiFiBSSCfg.prototype.Marshal = function() { return this.$val.Marshal(); };
	WiFiBSSCfg.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$44.nil) {
				m = new WiFiBSSCfg.ptr("", "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.SSID = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.PSK = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: WiFiBSSCfg.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	WiFiBSSCfg.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	WiFiBSSCfg.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$44.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: WiFiBSSCfg.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	WiFiBSSCfg.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	StringMessage.ptr.prototype.GetMsg = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$46.nil) {
			x = x;
			return x;
		}
		x = m.Msg;
		return x;
	};
	StringMessage.prototype.GetMsg = function() { return this.$val.GetMsg(); };
	StringMessage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$46.nil) {
			$s = -1; return;
		}
		/* */ if (m.Msg.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Msg.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Msg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: StringMessage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	StringMessage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	StringMessage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: StringMessage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	StringMessage.prototype.Marshal = function() { return this.$val.Marshal(); };
	StringMessage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$46.nil) {
				m = new StringMessage.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Msg = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: StringMessage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	StringMessage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	StringMessage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$46.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: StringMessage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	StringMessage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	StringMessageArray.ptr.prototype.GetMsgArray = function() {
		var m, x;
		x = sliceType.nil;
		m = this;
		if (m === ptrType$47.nil) {
			x = x;
			return x;
		}
		x = m.MsgArray;
		return x;
	};
	StringMessageArray.prototype.GetMsgArray = function() { return this.$val.GetMsgArray(); };
	StringMessageArray.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, val, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$47.nil) {
			$s = -1; return;
		}
		_ref = m.MsgArray;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer.WriteString(1, val); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: StringMessageArray.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, val, writer, $s};return $f;
	};
	StringMessageArray.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	StringMessageArray.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: StringMessageArray.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	StringMessageArray.prototype.Marshal = function() { return this.$val.Marshal(); };
	StringMessageArray.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$47.nil) {
				m = new StringMessageArray.ptr(sliceType.nil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.MsgArray = $append(m.MsgArray, _r$2);
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: StringMessageArray.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	StringMessageArray.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	StringMessageArray.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: StringMessageArray.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	StringMessageArray.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	EventRequest.ptr.prototype.GetListenType = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$48.nil) {
			x = x;
			return x;
		}
		x = m.ListenType;
		return x;
	};
	EventRequest.prototype.GetListenType = function() { return this.$val.GetListenType(); };
	EventRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$48.nil) {
			$s = -1; return;
		}
		/* */ if (!((x = m.ListenType, (x.$high === 0 && x.$low === 0)))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((x = m.ListenType, (x.$high === 0 && x.$low === 0)))) { */ case 1:
			$r = writer.WriteInt64(1, m.ListenType); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: EventRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, $s};return $f;
	};
	EventRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	EventRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: EventRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	EventRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	EventRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$48.nil) {
				m = new EventRequest.ptr(new $Int64(0, 0));
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadInt64(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ListenType = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: EventRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	EventRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	EventRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$48.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: EventRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	EventRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	EventValue.ptr.prototype.GetVal = function() {
		var m, x;
		x = $ifaceNil;
		m = this;
		if (m === ptrType$49.nil) {
			x = x;
			return x;
		}
		x = m.Val;
		return x;
	};
	EventValue.prototype.GetVal = function() { return this.$val.GetVal(); };
	EventValue.ptr.prototype.GetTstring = function() {
		var _tuple, m, ok, v, x;
		x = "";
		m = this;
		_tuple = $assertType(m.GetVal(), ptrType$50, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.Tstring;
			return x;
		}
		x = x;
		return x;
	};
	EventValue.prototype.GetTstring = function() { return this.$val.GetTstring(); };
	EventValue.ptr.prototype.GetTbool = function() {
		var _tuple, m, ok, v, x;
		x = false;
		m = this;
		_tuple = $assertType(m.GetVal(), ptrType$51, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.Tbool;
			return x;
		}
		x = x;
		return x;
	};
	EventValue.prototype.GetTbool = function() { return this.$val.GetTbool(); };
	EventValue.ptr.prototype.GetTint64 = function() {
		var _tuple, m, ok, v, x;
		x = new $Int64(0, 0);
		m = this;
		_tuple = $assertType(m.GetVal(), ptrType$52, true);
		v = _tuple[0];
		ok = _tuple[1];
		if (ok) {
			x = v.Tint64;
			return x;
		}
		x = x;
		return x;
	};
	EventValue.prototype.GetTint64 = function() { return this.$val.GetTint64(); };
	EventValue.ptr.prototype.MarshalToWriter = function(writer) {
		var {_ref, m, t, t$1, t$2, writer, x, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$49.nil) {
			$s = -1; return;
		}
		_ref = m.Val;
		/* */ if ($assertType(_ref, ptrType$50, true)[1]) { $s = 1; continue; }
		/* */ if ($assertType(_ref, ptrType$51, true)[1]) { $s = 2; continue; }
		/* */ if ($assertType(_ref, ptrType$52, true)[1]) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if ($assertType(_ref, ptrType$50, true)[1]) { */ case 1:
			t = _ref.$val;
			/* */ if (t.Tstring.length > 0) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if (t.Tstring.length > 0) { */ case 5:
				$r = writer.WriteString(1, t.Tstring); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 6:
			$s = 4; continue;
		/* } else if ($assertType(_ref, ptrType$51, true)[1]) { */ case 2:
			t$1 = _ref.$val;
			/* */ if (t$1.Tbool) { $s = 8; continue; }
			/* */ $s = 9; continue;
			/* if (t$1.Tbool) { */ case 8:
				$r = writer.WriteBool(2, t$1.Tbool); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 9:
			$s = 4; continue;
		/* } else if ($assertType(_ref, ptrType$52, true)[1]) { */ case 3:
			t$2 = _ref.$val;
			/* */ if (!((x = t$2.Tint64, (x.$high === 0 && x.$low === 0)))) { $s = 11; continue; }
			/* */ $s = 12; continue;
			/* if (!((x = t$2.Tint64, (x.$high === 0 && x.$low === 0)))) { */ case 11:
				$r = writer.WriteInt64(3, t$2.Tint64); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 12:
		/* } */ case 4:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: EventValue.ptr.prototype.MarshalToWriter, $c: true, $r, _ref, m, t, t$1, t$2, writer, x, $s};return $f;
	};
	EventValue.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	EventValue.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: EventValue.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	EventValue.prototype.Marshal = function() { return this.$val.Marshal(); };
	EventValue.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$49.nil) {
				m = new EventValue.ptr($ifaceNil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Val = new EventValue_Tstring.ptr(_r$2);
					$s = 10; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadBool(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Val = new EventValue_Tbool.ptr(_r$3);
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadInt64(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Val = new EventValue_Tint64.ptr(_r$4);
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader.SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: EventValue.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	EventValue.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	EventValue.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$49.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: EventValue.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	EventValue.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	Event.ptr.prototype.GetType = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$53.nil) {
			x = x;
			return x;
		}
		x = m.Type;
		return x;
	};
	Event.prototype.GetType = function() { return this.$val.GetType(); };
	Event.ptr.prototype.GetValues = function() {
		var m, x;
		x = sliceType$5.nil;
		m = this;
		if (m === ptrType$53.nil) {
			x = x;
			return x;
		}
		x = m.Values;
		return x;
	};
	Event.prototype.GetValues = function() { return this.$val.GetValues(); };
	Event.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, msg, writer, x, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		msg = [msg];
		writer = [writer];
		m = this;
		if (m === ptrType$53.nil) {
			$s = -1; return;
		}
		/* */ if (!((x = m.Type, (x.$high === 0 && x.$low === 0)))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((x = m.Type, (x.$high === 0 && x.$low === 0)))) { */ case 1:
			$r = writer[0].WriteInt64(1, m.Type); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		_ref = m.Values;
		_i = 0;
		/* while (true) { */ case 4:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; }
			msg[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer[0].WriteMessage(2, (function(msg, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(msg, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 4; continue;
		case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Event.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, msg, writer, x, $s};return $f;
	};
	Event.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	Event.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: Event.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	Event.prototype.Marshal = function() { return this.$val.Marshal(); };
	Event.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$53.nil) {
				m[0] = new Event.ptr(new $Int64(0, 0), sliceType$5.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadInt64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Type = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = new EventValue.ptr($ifaceNil).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Values = $append(m[0].Values, _r$3);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: Event.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	Event.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	Event.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$53.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: Event.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	Event.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TempDirOrFileRequest.ptr.prototype.GetDir = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$54.nil) {
			x = x;
			return x;
		}
		x = m.Dir;
		return x;
	};
	TempDirOrFileRequest.prototype.GetDir = function() { return this.$val.GetDir(); };
	TempDirOrFileRequest.ptr.prototype.GetPrefix = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$54.nil) {
			x = x;
			return x;
		}
		x = m.Prefix;
		return x;
	};
	TempDirOrFileRequest.prototype.GetPrefix = function() { return this.$val.GetPrefix(); };
	TempDirOrFileRequest.ptr.prototype.GetOnlyFolder = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$54.nil) {
			x = x;
			return x;
		}
		x = m.OnlyFolder;
		return x;
	};
	TempDirOrFileRequest.prototype.GetOnlyFolder = function() { return this.$val.GetOnlyFolder(); };
	TempDirOrFileRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$54.nil) {
			$s = -1; return;
		}
		/* */ if (m.Dir.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Dir.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Dir); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Prefix.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Prefix.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.Prefix); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.OnlyFolder) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.OnlyFolder) { */ case 7:
			$r = writer.WriteBool(3, m.OnlyFolder); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TempDirOrFileRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	TempDirOrFileRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TempDirOrFileRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TempDirOrFileRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TempDirOrFileRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	TempDirOrFileRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$54.nil) {
				m = new TempDirOrFileRequest.ptr("", "", false);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Dir = _r$2;
					$s = 10; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Prefix = _r$3;
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadBool(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.OnlyFolder = _r$4;
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader.SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TempDirOrFileRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	TempDirOrFileRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TempDirOrFileRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$54.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TempDirOrFileRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TempDirOrFileRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	TempDirOrFileResponse.ptr.prototype.GetResultPath = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$55.nil) {
			x = x;
			return x;
		}
		x = m.ResultPath;
		return x;
	};
	TempDirOrFileResponse.prototype.GetResultPath = function() { return this.$val.GetResultPath(); };
	TempDirOrFileResponse.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$55.nil) {
			$s = -1; return;
		}
		/* */ if (m.ResultPath.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.ResultPath.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.ResultPath); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: TempDirOrFileResponse.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	TempDirOrFileResponse.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	TempDirOrFileResponse.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: TempDirOrFileResponse.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	TempDirOrFileResponse.prototype.Marshal = function() { return this.$val.Marshal(); };
	TempDirOrFileResponse.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$55.nil) {
				m = new TempDirOrFileResponse.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ResultPath = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: TempDirOrFileResponse.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	TempDirOrFileResponse.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	TempDirOrFileResponse.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$55.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: TempDirOrFileResponse.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	TempDirOrFileResponse.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ReadFileRequest.ptr.prototype.GetFolder = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$56.nil) {
			x = x;
			return x;
		}
		x = m.Folder;
		return x;
	};
	ReadFileRequest.prototype.GetFolder = function() { return this.$val.GetFolder(); };
	ReadFileRequest.ptr.prototype.GetFilename = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$56.nil) {
			x = x;
			return x;
		}
		x = m.Filename;
		return x;
	};
	ReadFileRequest.prototype.GetFilename = function() { return this.$val.GetFilename(); };
	ReadFileRequest.ptr.prototype.GetStart = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$56.nil) {
			x = x;
			return x;
		}
		x = m.Start;
		return x;
	};
	ReadFileRequest.prototype.GetStart = function() { return this.$val.GetStart(); };
	ReadFileRequest.ptr.prototype.GetLen = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$56.nil) {
			x = x;
			return x;
		}
		x = m.Len;
		return x;
	};
	ReadFileRequest.prototype.GetLen = function() { return this.$val.GetLen(); };
	ReadFileRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, x$1, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$56.nil) {
			$s = -1; return;
		}
		/* */ if (!((((m.Folder >> 0)) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((m.Folder >> 0)) === 0))) { */ case 1:
			$r = writer.WriteEnum(1, ((m.Folder >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Filename.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Filename.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.Filename); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((x = m.Start, (x.$high === 0 && x.$low === 0)))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((x = m.Start, (x.$high === 0 && x.$low === 0)))) { */ case 7:
			$r = writer.WriteInt64(3, m.Start); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!((x$1 = m.Len, (x$1.$high === 0 && x$1.$low === 0)))) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!((x$1 = m.Len, (x$1.$high === 0 && x$1.$low === 0)))) { */ case 10:
			$r = writer.WriteInt64(4, m.Len); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ReadFileRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, x$1, $s};return $f;
	};
	ReadFileRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ReadFileRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ReadFileRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ReadFileRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	ReadFileRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$56.nil) {
				m = new ReadFileRequest.ptr(0, "", new $Int64(0, 0), new $Int64(0, 0));
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ $s = 10; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadEnum(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Folder = ((_r$2 >> 0));
					$s = 11; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Filename = _r$3;
					$s = 11; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadInt64(); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Start = _r$4;
					$s = 11; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadInt64(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.Len = _r$5;
					$s = 11; continue;
				/* } else { */ case 10:
					$r = reader.SkipField(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 11:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ReadFileRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, m, reader, $s};return $f;
	};
	ReadFileRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ReadFileRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$56.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ReadFileRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ReadFileRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	ReadFileResponse.ptr.prototype.GetReadCount = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$57.nil) {
			x = x;
			return x;
		}
		x = m.ReadCount;
		return x;
	};
	ReadFileResponse.prototype.GetReadCount = function() { return this.$val.GetReadCount(); };
	ReadFileResponse.ptr.prototype.GetData = function() {
		var m, x;
		x = sliceType$1.nil;
		m = this;
		if (m === ptrType$57.nil) {
			x = x;
			return x;
		}
		x = m.Data;
		return x;
	};
	ReadFileResponse.prototype.GetData = function() { return this.$val.GetData(); };
	ReadFileResponse.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$57.nil) {
			$s = -1; return;
		}
		/* */ if (!((x = m.ReadCount, (x.$high === 0 && x.$low === 0)))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((x = m.ReadCount, (x.$high === 0 && x.$low === 0)))) { */ case 1:
			$r = writer.WriteInt64(1, m.ReadCount); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Data.$length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Data.$length > 0) { */ case 4:
			$r = writer.WriteBytes(2, m.Data); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: ReadFileResponse.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, $s};return $f;
	};
	ReadFileResponse.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	ReadFileResponse.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: ReadFileResponse.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	ReadFileResponse.prototype.Marshal = function() { return this.$val.Marshal(); };
	ReadFileResponse.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$57.nil) {
				m = new ReadFileResponse.ptr(new $Int64(0, 0), sliceType$1.nil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadInt64(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ReadCount = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadBytes(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Data = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: ReadFileResponse.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	ReadFileResponse.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	ReadFileResponse.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$57.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: ReadFileResponse.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	ReadFileResponse.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	WriteFileRequest.ptr.prototype.GetFolder = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$58.nil) {
			x = x;
			return x;
		}
		x = m.Folder;
		return x;
	};
	WriteFileRequest.prototype.GetFolder = function() { return this.$val.GetFolder(); };
	WriteFileRequest.ptr.prototype.GetFilename = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$58.nil) {
			x = x;
			return x;
		}
		x = m.Filename;
		return x;
	};
	WriteFileRequest.prototype.GetFilename = function() { return this.$val.GetFilename(); };
	WriteFileRequest.ptr.prototype.GetAppend = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$58.nil) {
			x = x;
			return x;
		}
		x = m.Append;
		return x;
	};
	WriteFileRequest.prototype.GetAppend = function() { return this.$val.GetAppend(); };
	WriteFileRequest.ptr.prototype.GetMustNotExist = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$58.nil) {
			x = x;
			return x;
		}
		x = m.MustNotExist;
		return x;
	};
	WriteFileRequest.prototype.GetMustNotExist = function() { return this.$val.GetMustNotExist(); };
	WriteFileRequest.ptr.prototype.GetData = function() {
		var m, x;
		x = sliceType$1.nil;
		m = this;
		if (m === ptrType$58.nil) {
			x = x;
			return x;
		}
		x = m.Data;
		return x;
	};
	WriteFileRequest.prototype.GetData = function() { return this.$val.GetData(); };
	WriteFileRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$58.nil) {
			$s = -1; return;
		}
		/* */ if (!((((m.Folder >> 0)) === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((((m.Folder >> 0)) === 0))) { */ case 1:
			$r = writer.WriteEnum(1, ((m.Folder >> 0))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Filename.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Filename.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.Filename); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.Append) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.Append) { */ case 7:
			$r = writer.WriteBool(3, m.Append); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m.MustNotExist) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m.MustNotExist) { */ case 10:
			$r = writer.WriteBool(4, m.MustNotExist); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m.Data.$length > 0) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m.Data.$length > 0) { */ case 13:
			$r = writer.WriteBytes(5, m.Data); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: WriteFileRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	WriteFileRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	WriteFileRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: WriteFileRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	WriteFileRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	WriteFileRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$58.nil) {
				m = new WriteFileRequest.ptr(0, "", false, false, sliceType$1.nil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadEnum(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Folder = ((_r$2 >> 0));
					$s = 12; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Filename = _r$3;
					$s = 12; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadBool(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Append = _r$4;
					$s = 12; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadBool(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.MustNotExist = _r$5;
					$s = 12; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader.ReadBytes(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m.Data = _r$6;
					$s = 12; continue;
				/* } else { */ case 11:
					$r = reader.SkipField(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 12:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: WriteFileRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s};return $f;
	};
	WriteFileRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	WriteFileRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$58.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: WriteFileRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	WriteFileRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	FileInfoRequest.ptr.prototype.GetPath = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$59.nil) {
			x = x;
			return x;
		}
		x = m.Path;
		return x;
	};
	FileInfoRequest.prototype.GetPath = function() { return this.$val.GetPath(); };
	FileInfoRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$59.nil) {
			$s = -1; return;
		}
		/* */ if (m.Path.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Path.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Path); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: FileInfoRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	FileInfoRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	FileInfoRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: FileInfoRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	FileInfoRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	FileInfoRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$59.nil) {
				m = new FileInfoRequest.ptr("");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Path = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: FileInfoRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	FileInfoRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	FileInfoRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$59.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: FileInfoRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	FileInfoRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	FileInfoResponse.ptr.prototype.GetName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$60.nil) {
			x = x;
			return x;
		}
		x = m.Name;
		return x;
	};
	FileInfoResponse.prototype.GetName = function() { return this.$val.GetName(); };
	FileInfoResponse.ptr.prototype.GetSize = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$60.nil) {
			x = x;
			return x;
		}
		x = m.Size;
		return x;
	};
	FileInfoResponse.prototype.GetSize = function() { return this.$val.GetSize(); };
	FileInfoResponse.ptr.prototype.GetMode = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$60.nil) {
			x = x;
			return x;
		}
		x = m.Mode;
		return x;
	};
	FileInfoResponse.prototype.GetMode = function() { return this.$val.GetMode(); };
	FileInfoResponse.ptr.prototype.GetModTime = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$60.nil) {
			x = x;
			return x;
		}
		x = m.ModTime;
		return x;
	};
	FileInfoResponse.prototype.GetModTime = function() { return this.$val.GetModTime(); };
	FileInfoResponse.ptr.prototype.GetIsDir = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$60.nil) {
			x = x;
			return x;
		}
		x = m.IsDir;
		return x;
	};
	FileInfoResponse.prototype.GetIsDir = function() { return this.$val.GetIsDir(); };
	FileInfoResponse.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, x$1, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$60.nil) {
			$s = -1; return;
		}
		/* */ if (m.Name.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Name.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((x = m.Size, (x.$high === 0 && x.$low === 0)))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((x = m.Size, (x.$high === 0 && x.$low === 0)))) { */ case 4:
			$r = writer.WriteInt64(2, m.Size); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (!((m.Mode === 0))) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (!((m.Mode === 0))) { */ case 7:
			$r = writer.WriteUint32(3, m.Mode); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (!((x$1 = m.ModTime, (x$1.$high === 0 && x$1.$low === 0)))) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (!((x$1 = m.ModTime, (x$1.$high === 0 && x$1.$low === 0)))) { */ case 10:
			$r = writer.WriteInt64(4, m.ModTime); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m.IsDir) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m.IsDir) { */ case 13:
			$r = writer.WriteBool(5, m.IsDir); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: FileInfoResponse.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, x$1, $s};return $f;
	};
	FileInfoResponse.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	FileInfoResponse.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: FileInfoResponse.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	FileInfoResponse.prototype.Marshal = function() { return this.$val.Marshal(); };
	FileInfoResponse.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$60.nil) {
				m = new FileInfoResponse.ptr("", new $Int64(0, 0), 0, new $Int64(0, 0), false);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Name = _r$2;
					$s = 12; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadInt64(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Size = _r$3;
					$s = 12; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadUint32(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Mode = _r$4;
					$s = 12; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader.ReadInt64(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m.ModTime = _r$5;
					$s = 12; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader.ReadBool(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m.IsDir = _r$6;
					$s = 12; continue;
				/* } else { */ case 11:
					$r = reader.SkipField(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 12:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: FileInfoResponse.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, m, reader, $s};return $f;
	};
	FileInfoResponse.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	FileInfoResponse.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$60.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: FileInfoResponse.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	FileInfoResponse.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	HIDScriptRequest.ptr.prototype.GetScriptPath = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$61.nil) {
			x = x;
			return x;
		}
		x = m.ScriptPath;
		return x;
	};
	HIDScriptRequest.prototype.GetScriptPath = function() { return this.$val.GetScriptPath(); };
	HIDScriptRequest.ptr.prototype.GetTimeoutSeconds = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$61.nil) {
			x = x;
			return x;
		}
		x = m.TimeoutSeconds;
		return x;
	};
	HIDScriptRequest.prototype.GetTimeoutSeconds = function() { return this.$val.GetTimeoutSeconds(); };
	HIDScriptRequest.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$61.nil) {
			$s = -1; return;
		}
		/* */ if (m.ScriptPath.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.ScriptPath.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.ScriptPath); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((m.TimeoutSeconds === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((m.TimeoutSeconds === 0))) { */ case 4:
			$r = writer.WriteUint32(2, m.TimeoutSeconds); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: HIDScriptRequest.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	HIDScriptRequest.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	HIDScriptRequest.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: HIDScriptRequest.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	HIDScriptRequest.prototype.Marshal = function() { return this.$val.Marshal(); };
	HIDScriptRequest.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$61.nil) {
				m = new HIDScriptRequest.ptr("", 0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.ScriptPath = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadUint32(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.TimeoutSeconds = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: HIDScriptRequest.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	HIDScriptRequest.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	HIDScriptRequest.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$61.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: HIDScriptRequest.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	HIDScriptRequest.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	HIDScriptJob.ptr.prototype.GetId = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$62.nil) {
			x = x;
			return x;
		}
		x = m.Id;
		return x;
	};
	HIDScriptJob.prototype.GetId = function() { return this.$val.GetId(); };
	HIDScriptJob.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$62.nil) {
			$s = -1; return;
		}
		/* */ if (!((m.Id === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((m.Id === 0))) { */ case 1:
			$r = writer.WriteUint32(1, m.Id); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: HIDScriptJob.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	HIDScriptJob.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	HIDScriptJob.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: HIDScriptJob.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	HIDScriptJob.prototype.Marshal = function() { return this.$val.Marshal(); };
	HIDScriptJob.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$62.nil) {
				m = new HIDScriptJob.ptr(0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadUint32(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Id = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: HIDScriptJob.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	HIDScriptJob.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	HIDScriptJob.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$62.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: HIDScriptJob.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	HIDScriptJob.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	HIDScriptJobList.ptr.prototype.GetIds = function() {
		var m, x;
		x = sliceType$6.nil;
		m = this;
		if (m === ptrType$63.nil) {
			x = x;
			return x;
		}
		x = m.Ids;
		return x;
	};
	HIDScriptJobList.prototype.GetIds = function() { return this.$val.GetIds(); };
	HIDScriptJobList.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$63.nil) {
			$s = -1; return;
		}
		/* */ if (m.Ids.$length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Ids.$length > 0) { */ case 1:
			$r = writer.WriteUint32Slice(1, m.Ids); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: HIDScriptJobList.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	HIDScriptJobList.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	HIDScriptJobList.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: HIDScriptJobList.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	HIDScriptJobList.prototype.Marshal = function() { return this.$val.Marshal(); };
	HIDScriptJobList.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$63.nil) {
				m = new HIDScriptJobList.ptr(sliceType$6.nil);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadUint32Slice(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Ids = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: HIDScriptJobList.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	HIDScriptJobList.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	HIDScriptJobList.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$63.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: HIDScriptJobList.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	HIDScriptJobList.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	HIDRunningJobStateResult.ptr.prototype.GetId = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$64.nil) {
			x = x;
			return x;
		}
		x = m.Id;
		return x;
	};
	HIDRunningJobStateResult.prototype.GetId = function() { return this.$val.GetId(); };
	HIDRunningJobStateResult.ptr.prototype.GetVmId = function() {
		var m, x;
		x = new $Int64(0, 0);
		m = this;
		if (m === ptrType$64.nil) {
			x = x;
			return x;
		}
		x = m.VmId;
		return x;
	};
	HIDRunningJobStateResult.prototype.GetVmId = function() { return this.$val.GetVmId(); };
	HIDRunningJobStateResult.ptr.prototype.GetSource = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$64.nil) {
			x = x;
			return x;
		}
		x = m.Source;
		return x;
	};
	HIDRunningJobStateResult.prototype.GetSource = function() { return this.$val.GetSource(); };
	HIDRunningJobStateResult.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, x, x$1, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$64.nil) {
			$s = -1; return;
		}
		/* */ if (!((x = m.Id, (x.$high === 0 && x.$low === 0)))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((x = m.Id, (x.$high === 0 && x.$low === 0)))) { */ case 1:
			$r = writer.WriteInt64(1, m.Id); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((x$1 = m.VmId, (x$1.$high === 0 && x$1.$low === 0)))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((x$1 = m.VmId, (x$1.$high === 0 && x$1.$low === 0)))) { */ case 4:
			$r = writer.WriteInt64(2, m.VmId); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.Source.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.Source.length > 0) { */ case 7:
			$r = writer.WriteString(3, m.Source); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: HIDRunningJobStateResult.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, x, x$1, $s};return $f;
	};
	HIDRunningJobStateResult.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	HIDRunningJobStateResult.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: HIDRunningJobStateResult.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	HIDRunningJobStateResult.prototype.Marshal = function() { return this.$val.Marshal(); };
	HIDRunningJobStateResult.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$64.nil) {
				m = new HIDRunningJobStateResult.ptr(new $Int64(0, 0), new $Int64(0, 0), "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadInt64(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Id = _r$2;
					$s = 10; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadInt64(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.VmId = _r$3;
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.Source = _r$4;
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader.SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: HIDRunningJobStateResult.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	HIDRunningJobStateResult.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	HIDRunningJobStateResult.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$64.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: HIDRunningJobStateResult.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	HIDRunningJobStateResult.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	HIDScriptResult.ptr.prototype.GetJob = function() {
		var m, x;
		x = ptrType$62.nil;
		m = this;
		if (m === ptrType$65.nil) {
			x = x;
			return x;
		}
		x = m.Job;
		return x;
	};
	HIDScriptResult.prototype.GetJob = function() { return this.$val.GetJob(); };
	HIDScriptResult.ptr.prototype.GetIsFinished = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$65.nil) {
			x = x;
			return x;
		}
		x = m.IsFinished;
		return x;
	};
	HIDScriptResult.prototype.GetIsFinished = function() { return this.$val.GetIsFinished(); };
	HIDScriptResult.ptr.prototype.GetResultJson = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$65.nil) {
			x = x;
			return x;
		}
		x = m.ResultJson;
		return x;
	};
	HIDScriptResult.prototype.GetResultJson = function() { return this.$val.GetResultJson(); };
	HIDScriptResult.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$65.nil) {
			$s = -1; return;
		}
		/* */ if (!(m[0].Job === ptrType$62.nil)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(m[0].Job === ptrType$62.nil)) { */ case 1:
			$r = writer[0].WriteMessage(1, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Job.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m[0].IsFinished) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m[0].IsFinished) { */ case 4:
			$r = writer[0].WriteBool(2, m[0].IsFinished); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m[0].ResultJson.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m[0].ResultJson.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m[0].ResultJson); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: HIDScriptResult.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	HIDScriptResult.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	HIDScriptResult.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: HIDScriptResult.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	HIDScriptResult.prototype.Marshal = function() { return this.$val.Marshal(); };
	HIDScriptResult.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$65.nil) {
				m[0] = new HIDScriptResult.ptr(ptrType$62.nil, false, "");
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$2, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$2 = m[0].Job.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						m[0].Job = _r$2;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 10; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$2 = reader[0].ReadBool(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].IsFinished = _r$2;
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$3 = reader[0].ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].ResultJson = _r$3;
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader[0].SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: HIDScriptResult.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	HIDScriptResult.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	HIDScriptResult.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$65.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: HIDScriptResult.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	HIDScriptResult.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	LEDSettings.ptr.prototype.GetBlinkCount = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$66.nil) {
			x = x;
			return x;
		}
		x = m.BlinkCount;
		return x;
	};
	LEDSettings.prototype.GetBlinkCount = function() { return this.$val.GetBlinkCount(); };
	LEDSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$66.nil) {
			$s = -1; return;
		}
		/* */ if (!((m.BlinkCount === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((m.BlinkCount === 0))) { */ case 1:
			$r = writer.WriteUint32(1, m.BlinkCount); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: LEDSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	LEDSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	LEDSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: LEDSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	LEDSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	LEDSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$66.nil) {
				m = new LEDSettings.ptr(0);
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadUint32(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.BlinkCount = _r$2;
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader.SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: LEDSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	LEDSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	LEDSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$66.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: LEDSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	LEDSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	USBRequestSettingsStorage.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$67.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	USBRequestSettingsStorage.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	USBRequestSettingsStorage.ptr.prototype.GetSettings = function() {
		var m, x;
		x = ptrType$68.nil;
		m = this;
		if (m === ptrType$67.nil) {
			x = x;
			return x;
		}
		x = m.Settings;
		return x;
	};
	USBRequestSettingsStorage.prototype.GetSettings = function() { return this.$val.GetSettings(); };
	USBRequestSettingsStorage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$67.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].TemplateName.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].Settings === ptrType$68.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].Settings === ptrType$68.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Settings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: USBRequestSettingsStorage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	USBRequestSettingsStorage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	USBRequestSettingsStorage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: USBRequestSettingsStorage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	USBRequestSettingsStorage.prototype.Marshal = function() { return this.$val.Marshal(); };
	USBRequestSettingsStorage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$67.nil) {
				m[0] = new USBRequestSettingsStorage.ptr("", ptrType$68.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = m[0].Settings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Settings = _r$3;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: USBRequestSettingsStorage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	USBRequestSettingsStorage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	USBRequestSettingsStorage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$67.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: USBRequestSettingsStorage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	USBRequestSettingsStorage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	GadgetSettings.ptr.prototype.GetEnabled = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Enabled;
		return x;
	};
	GadgetSettings.prototype.GetEnabled = function() { return this.$val.GetEnabled(); };
	GadgetSettings.ptr.prototype.GetVid = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Vid;
		return x;
	};
	GadgetSettings.prototype.GetVid = function() { return this.$val.GetVid(); };
	GadgetSettings.ptr.prototype.GetPid = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Pid;
		return x;
	};
	GadgetSettings.prototype.GetPid = function() { return this.$val.GetPid(); };
	GadgetSettings.ptr.prototype.GetManufacturer = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Manufacturer;
		return x;
	};
	GadgetSettings.prototype.GetManufacturer = function() { return this.$val.GetManufacturer(); };
	GadgetSettings.ptr.prototype.GetProduct = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Product;
		return x;
	};
	GadgetSettings.prototype.GetProduct = function() { return this.$val.GetProduct(); };
	GadgetSettings.ptr.prototype.GetSerial = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Serial;
		return x;
	};
	GadgetSettings.prototype.GetSerial = function() { return this.$val.GetSerial(); };
	GadgetSettings.ptr.prototype.GetUse_CDC_ECM = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_CDC_ECM;
		return x;
	};
	GadgetSettings.prototype.GetUse_CDC_ECM = function() { return this.$val.GetUse_CDC_ECM(); };
	GadgetSettings.ptr.prototype.GetUse_RNDIS = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_RNDIS;
		return x;
	};
	GadgetSettings.prototype.GetUse_RNDIS = function() { return this.$val.GetUse_RNDIS(); };
	GadgetSettings.ptr.prototype.GetUse_HID_KEYBOARD = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_HID_KEYBOARD;
		return x;
	};
	GadgetSettings.prototype.GetUse_HID_KEYBOARD = function() { return this.$val.GetUse_HID_KEYBOARD(); };
	GadgetSettings.ptr.prototype.GetUse_HID_MOUSE = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_HID_MOUSE;
		return x;
	};
	GadgetSettings.prototype.GetUse_HID_MOUSE = function() { return this.$val.GetUse_HID_MOUSE(); };
	GadgetSettings.ptr.prototype.GetUse_HID_RAW = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_HID_RAW;
		return x;
	};
	GadgetSettings.prototype.GetUse_HID_RAW = function() { return this.$val.GetUse_HID_RAW(); };
	GadgetSettings.ptr.prototype.GetUse_UMS = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_UMS;
		return x;
	};
	GadgetSettings.prototype.GetUse_UMS = function() { return this.$val.GetUse_UMS(); };
	GadgetSettings.ptr.prototype.GetUse_SERIAL = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.Use_SERIAL;
		return x;
	};
	GadgetSettings.prototype.GetUse_SERIAL = function() { return this.$val.GetUse_SERIAL(); };
	GadgetSettings.ptr.prototype.GetRndisSettings = function() {
		var m, x;
		x = ptrType$69.nil;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.RndisSettings;
		return x;
	};
	GadgetSettings.prototype.GetRndisSettings = function() { return this.$val.GetRndisSettings(); };
	GadgetSettings.ptr.prototype.GetCdcEcmSettings = function() {
		var m, x;
		x = ptrType$69.nil;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.CdcEcmSettings;
		return x;
	};
	GadgetSettings.prototype.GetCdcEcmSettings = function() { return this.$val.GetCdcEcmSettings(); };
	GadgetSettings.ptr.prototype.GetUmsSettings = function() {
		var m, x;
		x = ptrType$70.nil;
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.UmsSettings;
		return x;
	};
	GadgetSettings.prototype.GetUmsSettings = function() { return this.$val.GetUmsSettings(); };
	GadgetSettings.ptr.prototype.GetDevPathHidKeyboard = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.DevPathHidKeyboard;
		return x;
	};
	GadgetSettings.prototype.GetDevPathHidKeyboard = function() { return this.$val.GetDevPathHidKeyboard(); };
	GadgetSettings.ptr.prototype.GetDevPathHidMouse = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.DevPathHidMouse;
		return x;
	};
	GadgetSettings.prototype.GetDevPathHidMouse = function() { return this.$val.GetDevPathHidMouse(); };
	GadgetSettings.ptr.prototype.GetDevPathHidRaw = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$68.nil) {
			x = x;
			return x;
		}
		x = m.DevPathHidRaw;
		return x;
	};
	GadgetSettings.prototype.GetDevPathHidRaw = function() { return this.$val.GetDevPathHidRaw(); };
	GadgetSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$68.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].Enabled) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].Enabled) { */ case 1:
			$r = writer[0].WriteBool(1, m[0].Enabled); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m[0].Vid.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m[0].Vid.length > 0) { */ case 4:
			$r = writer[0].WriteString(2, m[0].Vid); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m[0].Pid.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m[0].Pid.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m[0].Pid); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m[0].Manufacturer.length > 0) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m[0].Manufacturer.length > 0) { */ case 10:
			$r = writer[0].WriteString(4, m[0].Manufacturer); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m[0].Product.length > 0) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m[0].Product.length > 0) { */ case 13:
			$r = writer[0].WriteString(5, m[0].Product); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (m[0].Serial.length > 0) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (m[0].Serial.length > 0) { */ case 16:
			$r = writer[0].WriteString(6, m[0].Serial); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		/* */ if (m[0].Use_CDC_ECM) { $s = 19; continue; }
		/* */ $s = 20; continue;
		/* if (m[0].Use_CDC_ECM) { */ case 19:
			$r = writer[0].WriteBool(7, m[0].Use_CDC_ECM); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 20:
		/* */ if (m[0].Use_RNDIS) { $s = 22; continue; }
		/* */ $s = 23; continue;
		/* if (m[0].Use_RNDIS) { */ case 22:
			$r = writer[0].WriteBool(8, m[0].Use_RNDIS); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 23:
		/* */ if (m[0].Use_HID_KEYBOARD) { $s = 25; continue; }
		/* */ $s = 26; continue;
		/* if (m[0].Use_HID_KEYBOARD) { */ case 25:
			$r = writer[0].WriteBool(9, m[0].Use_HID_KEYBOARD); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 26:
		/* */ if (m[0].Use_HID_MOUSE) { $s = 28; continue; }
		/* */ $s = 29; continue;
		/* if (m[0].Use_HID_MOUSE) { */ case 28:
			$r = writer[0].WriteBool(10, m[0].Use_HID_MOUSE); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 29:
		/* */ if (m[0].Use_HID_RAW) { $s = 31; continue; }
		/* */ $s = 32; continue;
		/* if (m[0].Use_HID_RAW) { */ case 31:
			$r = writer[0].WriteBool(11, m[0].Use_HID_RAW); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 32:
		/* */ if (m[0].Use_UMS) { $s = 34; continue; }
		/* */ $s = 35; continue;
		/* if (m[0].Use_UMS) { */ case 34:
			$r = writer[0].WriteBool(12, m[0].Use_UMS); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 35:
		/* */ if (m[0].Use_SERIAL) { $s = 37; continue; }
		/* */ $s = 38; continue;
		/* if (m[0].Use_SERIAL) { */ case 37:
			$r = writer[0].WriteBool(13, m[0].Use_SERIAL); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 38:
		/* */ if (!(m[0].RndisSettings === ptrType$69.nil)) { $s = 40; continue; }
		/* */ $s = 41; continue;
		/* if (!(m[0].RndisSettings === ptrType$69.nil)) { */ case 40:
			$r = writer[0].WriteMessage(14, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].RndisSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 41:
		/* */ if (!(m[0].CdcEcmSettings === ptrType$69.nil)) { $s = 43; continue; }
		/* */ $s = 44; continue;
		/* if (!(m[0].CdcEcmSettings === ptrType$69.nil)) { */ case 43:
			$r = writer[0].WriteMessage(15, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].CdcEcmSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 44:
		/* */ if (!(m[0].UmsSettings === ptrType$70.nil)) { $s = 46; continue; }
		/* */ $s = 47; continue;
		/* if (!(m[0].UmsSettings === ptrType$70.nil)) { */ case 46:
			$r = writer[0].WriteMessage(16, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].UmsSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 47:
		/* */ if (m[0].DevPathHidKeyboard.length > 0) { $s = 49; continue; }
		/* */ $s = 50; continue;
		/* if (m[0].DevPathHidKeyboard.length > 0) { */ case 49:
			$r = writer[0].WriteString(18, m[0].DevPathHidKeyboard); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 50:
		/* */ if (m[0].DevPathHidMouse.length > 0) { $s = 52; continue; }
		/* */ $s = 53; continue;
		/* if (m[0].DevPathHidMouse.length > 0) { */ case 52:
			$r = writer[0].WriteString(19, m[0].DevPathHidMouse); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 53:
		/* */ if (m[0].DevPathHidRaw.length > 0) { $s = 55; continue; }
		/* */ $s = 56; continue;
		/* if (m[0].DevPathHidRaw.length > 0) { */ case 55:
			$r = writer[0].WriteString(20, m[0].DevPathHidRaw); /* */ $s = 57; case 57: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 56:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: GadgetSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	GadgetSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	GadgetSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: GadgetSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	GadgetSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	GadgetSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$68.nil) {
				m[0] = new GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$69.nil, ptrType$69.nil, ptrType$70.nil, "", "", "");
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ if (_1 === (10)) { $s = 15; continue; }
				/* */ if (_1 === (11)) { $s = 16; continue; }
				/* */ if (_1 === (12)) { $s = 17; continue; }
				/* */ if (_1 === (13)) { $s = 18; continue; }
				/* */ if (_1 === (14)) { $s = 19; continue; }
				/* */ if (_1 === (15)) { $s = 20; continue; }
				/* */ if (_1 === (16)) { $s = 21; continue; }
				/* */ if (_1 === (18)) { $s = 22; continue; }
				/* */ if (_1 === (19)) { $s = 23; continue; }
				/* */ if (_1 === (20)) { $s = 24; continue; }
				/* */ $s = 25; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadBool(); /* */ $s = 27; case 27: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Enabled = _r$2;
					$s = 26; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadString(); /* */ $s = 28; case 28: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].Vid = _r$3;
					$s = 26; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadString(); /* */ $s = 29; case 29: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].Pid = _r$4;
					$s = 26; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader[0].ReadString(); /* */ $s = 30; case 30: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].Manufacturer = _r$5;
					$s = 26; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader[0].ReadString(); /* */ $s = 31; case 31: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m[0].Product = _r$6;
					$s = 26; continue;
				/* } else if (_1 === (6)) { */ case 11:
					_r$7 = reader[0].ReadString(); /* */ $s = 32; case 32: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m[0].Serial = _r$7;
					$s = 26; continue;
				/* } else if (_1 === (7)) { */ case 12:
					_r$8 = reader[0].ReadBool(); /* */ $s = 33; case 33: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
					m[0].Use_CDC_ECM = _r$8;
					$s = 26; continue;
				/* } else if (_1 === (8)) { */ case 13:
					_r$9 = reader[0].ReadBool(); /* */ $s = 34; case 34: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
					m[0].Use_RNDIS = _r$9;
					$s = 26; continue;
				/* } else if (_1 === (9)) { */ case 14:
					_r$10 = reader[0].ReadBool(); /* */ $s = 35; case 35: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
					m[0].Use_HID_KEYBOARD = _r$10;
					$s = 26; continue;
				/* } else if (_1 === (10)) { */ case 15:
					_r$11 = reader[0].ReadBool(); /* */ $s = 36; case 36: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
					m[0].Use_HID_MOUSE = _r$11;
					$s = 26; continue;
				/* } else if (_1 === (11)) { */ case 16:
					_r$12 = reader[0].ReadBool(); /* */ $s = 37; case 37: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
					m[0].Use_HID_RAW = _r$12;
					$s = 26; continue;
				/* } else if (_1 === (12)) { */ case 17:
					_r$13 = reader[0].ReadBool(); /* */ $s = 38; case 38: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
					m[0].Use_UMS = _r$13;
					$s = 26; continue;
				/* } else if (_1 === (13)) { */ case 18:
					_r$14 = reader[0].ReadBool(); /* */ $s = 39; case 39: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
					m[0].Use_SERIAL = _r$14;
					$s = 26; continue;
				/* } else if (_1 === (14)) { */ case 19:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$15, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$15 = m[0].RndisSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
						m[0].RndisSettings = _r$15;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$15, $s};return $f;
					}; })(m, reader)); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 26; continue;
				/* } else if (_1 === (15)) { */ case 20:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$15, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$15 = m[0].CdcEcmSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
						m[0].CdcEcmSettings = _r$15;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$15, $s};return $f;
					}; })(m, reader)); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 26; continue;
				/* } else if (_1 === (16)) { */ case 21:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$15, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$15 = m[0].UmsSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
						m[0].UmsSettings = _r$15;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$15, $s};return $f;
					}; })(m, reader)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 26; continue;
				/* } else if (_1 === (18)) { */ case 22:
					_r$15 = reader[0].ReadString(); /* */ $s = 43; case 43: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
					m[0].DevPathHidKeyboard = _r$15;
					$s = 26; continue;
				/* } else if (_1 === (19)) { */ case 23:
					_r$16 = reader[0].ReadString(); /* */ $s = 44; case 44: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
					m[0].DevPathHidMouse = _r$16;
					$s = 26; continue;
				/* } else if (_1 === (20)) { */ case 24:
					_r$17 = reader[0].ReadString(); /* */ $s = 45; case 45: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
					m[0].DevPathHidRaw = _r$17;
					$s = 26; continue;
				/* } else { */ case 25:
					$r = reader[0].SkipField(); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 26:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: GadgetSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, m, reader, $s};return $f;
	};
	GadgetSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	GadgetSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$68.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: GadgetSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	GadgetSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	GadgetSettingsEthernet.ptr.prototype.GetHostAddr = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$69.nil) {
			x = x;
			return x;
		}
		x = m.HostAddr;
		return x;
	};
	GadgetSettingsEthernet.prototype.GetHostAddr = function() { return this.$val.GetHostAddr(); };
	GadgetSettingsEthernet.ptr.prototype.GetDevAddr = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$69.nil) {
			x = x;
			return x;
		}
		x = m.DevAddr;
		return x;
	};
	GadgetSettingsEthernet.prototype.GetDevAddr = function() { return this.$val.GetDevAddr(); };
	GadgetSettingsEthernet.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$69.nil) {
			$s = -1; return;
		}
		/* */ if (m.HostAddr.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.HostAddr.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.HostAddr); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.DevAddr.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.DevAddr.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.DevAddr); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: GadgetSettingsEthernet.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	GadgetSettingsEthernet.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	GadgetSettingsEthernet.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: GadgetSettingsEthernet.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	GadgetSettingsEthernet.prototype.Marshal = function() { return this.$val.Marshal(); };
	GadgetSettingsEthernet.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$69.nil) {
				m = new GadgetSettingsEthernet.ptr("", "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.HostAddr = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.DevAddr = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: GadgetSettingsEthernet.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	GadgetSettingsEthernet.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	GadgetSettingsEthernet.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$69.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: GadgetSettingsEthernet.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	GadgetSettingsEthernet.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	GadgetSettingsUMS.ptr.prototype.GetCdrom = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$70.nil) {
			x = x;
			return x;
		}
		x = m.Cdrom;
		return x;
	};
	GadgetSettingsUMS.prototype.GetCdrom = function() { return this.$val.GetCdrom(); };
	GadgetSettingsUMS.ptr.prototype.GetFile = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$70.nil) {
			x = x;
			return x;
		}
		x = m.File;
		return x;
	};
	GadgetSettingsUMS.prototype.GetFile = function() { return this.$val.GetFile(); };
	GadgetSettingsUMS.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$70.nil) {
			$s = -1; return;
		}
		/* */ if (m.Cdrom) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Cdrom) { */ case 1:
			$r = writer.WriteBool(1, m.Cdrom); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.File.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.File.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.File); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: GadgetSettingsUMS.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	GadgetSettingsUMS.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	GadgetSettingsUMS.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: GadgetSettingsUMS.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	GadgetSettingsUMS.prototype.Marshal = function() { return this.$val.Marshal(); };
	GadgetSettingsUMS.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$70.nil) {
				m = new GadgetSettingsUMS.ptr(false, "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadBool(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Cdrom = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.File = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: GadgetSettingsUMS.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	GadgetSettingsUMS.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	GadgetSettingsUMS.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$70.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: GadgetSettingsUMS.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	GadgetSettingsUMS.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	EthernetRequestSettingsStorage.ptr.prototype.GetTemplateName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$71.nil) {
			x = x;
			return x;
		}
		x = m.TemplateName;
		return x;
	};
	EthernetRequestSettingsStorage.prototype.GetTemplateName = function() { return this.$val.GetTemplateName(); };
	EthernetRequestSettingsStorage.ptr.prototype.GetSettings = function() {
		var m, x;
		x = ptrType$72.nil;
		m = this;
		if (m === ptrType$71.nil) {
			x = x;
			return x;
		}
		x = m.Settings;
		return x;
	};
	EthernetRequestSettingsStorage.prototype.GetSettings = function() { return this.$val.GetSettings(); };
	EthernetRequestSettingsStorage.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$71.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].TemplateName.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].TemplateName.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].TemplateName); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!(m[0].Settings === ptrType$72.nil)) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!(m[0].Settings === ptrType$72.nil)) { */ case 4:
			$r = writer[0].WriteMessage(2, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].Settings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: EthernetRequestSettingsStorage.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	EthernetRequestSettingsStorage.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	EthernetRequestSettingsStorage.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: EthernetRequestSettingsStorage.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	EthernetRequestSettingsStorage.prototype.Marshal = function() { return this.$val.Marshal(); };
	EthernetRequestSettingsStorage.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$71.nil) {
				m[0] = new EthernetRequestSettingsStorage.ptr("", ptrType$72.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].TemplateName = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$3, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$3 = m[0].Settings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
						m[0].Settings = _r$3;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, $s};return $f;
					}; })(m, reader)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader[0].SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: EthernetRequestSettingsStorage.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, m, reader, $s};return $f;
	};
	EthernetRequestSettingsStorage.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	EthernetRequestSettingsStorage.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$71.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: EthernetRequestSettingsStorage.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	EthernetRequestSettingsStorage.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	DeployedEthernetInterfaceSettings.ptr.prototype.GetList = function() {
		var m, x;
		x = sliceType$7.nil;
		m = this;
		if (m === ptrType$73.nil) {
			x = x;
			return x;
		}
		x = m.List;
		return x;
	};
	DeployedEthernetInterfaceSettings.prototype.GetList = function() { return this.$val.GetList(); };
	DeployedEthernetInterfaceSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {_i, _ref, m, msg, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		msg = [msg];
		writer = [writer];
		m = this;
		if (m === ptrType$73.nil) {
			$s = -1; return;
		}
		_ref = m.List;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			msg[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer[0].WriteMessage(1, (function(msg, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(msg, writer)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: DeployedEthernetInterfaceSettings.ptr.prototype.MarshalToWriter, $c: true, $r, _i, _ref, m, msg, writer, $s};return $f;
	};
	DeployedEthernetInterfaceSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	DeployedEthernetInterfaceSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: DeployedEthernetInterfaceSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	DeployedEthernetInterfaceSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	DeployedEthernetInterfaceSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$73.nil) {
				m[0] = new DeployedEthernetInterfaceSettings.ptr(sliceType$7.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ $s = 7; continue;
				/* if (_1 === (1)) { */ case 6:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$2, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$2 = new EthernetInterfaceSettings.ptr("", 0, "", "", false, ptrType$74.nil, false).UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
						m[0].List = $append(m[0].List, _r$2);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, $s};return $f;
					}; })(m, reader)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 8; continue;
				/* } else { */ case 7:
					$r = reader[0].SkipField(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 8:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: DeployedEthernetInterfaceSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, m, reader, $s};return $f;
	};
	DeployedEthernetInterfaceSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	DeployedEthernetInterfaceSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$73.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: DeployedEthernetInterfaceSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	DeployedEthernetInterfaceSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	EthernetInterfaceSettings.ptr.prototype.GetName = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.Name;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetName = function() { return this.$val.GetName(); };
	EthernetInterfaceSettings.ptr.prototype.GetMode = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.Mode;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetMode = function() { return this.$val.GetMode(); };
	EthernetInterfaceSettings.ptr.prototype.GetIpAddress4 = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.IpAddress4;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetIpAddress4 = function() { return this.$val.GetIpAddress4(); };
	EthernetInterfaceSettings.ptr.prototype.GetNetmask4 = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.Netmask4;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetNetmask4 = function() { return this.$val.GetNetmask4(); };
	EthernetInterfaceSettings.ptr.prototype.GetEnabled = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.Enabled;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetEnabled = function() { return this.$val.GetEnabled(); };
	EthernetInterfaceSettings.ptr.prototype.GetDhcpServerSettings = function() {
		var m, x;
		x = ptrType$74.nil;
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.DhcpServerSettings;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetDhcpServerSettings = function() { return this.$val.GetDhcpServerSettings(); };
	EthernetInterfaceSettings.ptr.prototype.GetSettingsInUse = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$72.nil) {
			x = x;
			return x;
		}
		x = m.SettingsInUse;
		return x;
	};
	EthernetInterfaceSettings.prototype.GetSettingsInUse = function() { return this.$val.GetSettingsInUse(); };
	EthernetInterfaceSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		writer = [writer];
		m[0] = this;
		if (m[0] === ptrType$72.nil) {
			$s = -1; return;
		}
		/* */ if (m[0].Name.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m[0].Name.length > 0) { */ case 1:
			$r = writer[0].WriteString(1, m[0].Name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (!((((m[0].Mode >> 0)) === 0))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!((((m[0].Mode >> 0)) === 0))) { */ case 4:
			$r = writer[0].WriteEnum(2, ((m[0].Mode >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m[0].IpAddress4.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m[0].IpAddress4.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m[0].IpAddress4); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m[0].Netmask4.length > 0) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m[0].Netmask4.length > 0) { */ case 10:
			$r = writer[0].WriteString(4, m[0].Netmask4); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m[0].Enabled) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m[0].Enabled) { */ case 13:
			$r = writer[0].WriteBool(5, m[0].Enabled); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (!(m[0].DhcpServerSettings === ptrType$74.nil)) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (!(m[0].DhcpServerSettings === ptrType$74.nil)) { */ case 16:
			$r = writer[0].WriteMessage(6, (function(m, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = m[0].DhcpServerSettings.MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(m, writer)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		/* */ if (m[0].SettingsInUse) { $s = 19; continue; }
		/* */ $s = 20; continue;
		/* if (m[0].SettingsInUse) { */ case 19:
			$r = writer[0].WriteBool(7, m[0].SettingsInUse); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 20:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: EthernetInterfaceSettings.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	EthernetInterfaceSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	EthernetInterfaceSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: EthernetInterfaceSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	EthernetInterfaceSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	EthernetInterfaceSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$72.nil) {
				m[0] = new EthernetInterfaceSettings.ptr("", 0, "", "", false, ptrType$74.nil, false);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ $s = 13; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadString(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].Name = _r$2;
					$s = 14; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadEnum(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].Mode = ((_r$3 >> 0));
					$s = 14; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadString(); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].IpAddress4 = _r$4;
					$s = 14; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader[0].ReadString(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].Netmask4 = _r$5;
					$s = 14; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader[0].ReadBool(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m[0].Enabled = _r$6;
					$s = 14; continue;
				/* } else if (_1 === (6)) { */ case 11:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$7, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$7 = m[0].DhcpServerSettings.UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
						m[0].DhcpServerSettings = _r$7;
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$7, $s};return $f;
					}; })(m, reader)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 14; continue;
				/* } else if (_1 === (7)) { */ case 12:
					_r$7 = reader[0].ReadBool(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m[0].SettingsInUse = _r$7;
					$s = 14; continue;
				/* } else { */ case 13:
					$r = reader[0].SkipField(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 14:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: EthernetInterfaceSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, m, reader, $s};return $f;
	};
	EthernetInterfaceSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	EthernetInterfaceSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$72.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: EthernetInterfaceSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	EthernetInterfaceSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	DHCPServerSettings.ptr.prototype.GetListenPort = function() {
		var m, x;
		x = 0;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.ListenPort;
		return x;
	};
	DHCPServerSettings.prototype.GetListenPort = function() { return this.$val.GetListenPort(); };
	DHCPServerSettings.ptr.prototype.GetListenInterface = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.ListenInterface;
		return x;
	};
	DHCPServerSettings.prototype.GetListenInterface = function() { return this.$val.GetListenInterface(); };
	DHCPServerSettings.ptr.prototype.GetLeaseFile = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.LeaseFile;
		return x;
	};
	DHCPServerSettings.prototype.GetLeaseFile = function() { return this.$val.GetLeaseFile(); };
	DHCPServerSettings.ptr.prototype.GetNotAuthoritative = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.NotAuthoritative;
		return x;
	};
	DHCPServerSettings.prototype.GetNotAuthoritative = function() { return this.$val.GetNotAuthoritative(); };
	DHCPServerSettings.ptr.prototype.GetDoNotBindInterface = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.DoNotBindInterface;
		return x;
	};
	DHCPServerSettings.prototype.GetDoNotBindInterface = function() { return this.$val.GetDoNotBindInterface(); };
	DHCPServerSettings.ptr.prototype.GetCallbackScript = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.CallbackScript;
		return x;
	};
	DHCPServerSettings.prototype.GetCallbackScript = function() { return this.$val.GetCallbackScript(); };
	DHCPServerSettings.ptr.prototype.GetRanges = function() {
		var m, x;
		x = sliceType$8.nil;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.Ranges;
		return x;
	};
	DHCPServerSettings.prototype.GetRanges = function() { return this.$val.GetRanges(); };
	DHCPServerSettings.ptr.prototype.GetOptions = function() {
		var m, x;
		x = false;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.Options;
		return x;
	};
	DHCPServerSettings.prototype.GetOptions = function() { return this.$val.GetOptions(); };
	DHCPServerSettings.ptr.prototype.GetStaticHosts = function() {
		var m, x;
		x = sliceType$9.nil;
		m = this;
		if (m === ptrType$74.nil) {
			x = x;
			return x;
		}
		x = m.StaticHosts;
		return x;
	};
	DHCPServerSettings.prototype.GetStaticHosts = function() { return this.$val.GetStaticHosts(); };
	DHCPServerSettings.ptr.prototype.MarshalToWriter = function(writer) {
		var {_entry, _i, _i$1, _i$2, _key, _keys, _ref, _ref$1, _ref$2, _size, key, m, msg, msg$1, value, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		key = [key];
		msg = [msg];
		msg$1 = [msg$1];
		value = [value];
		writer = [writer];
		m = this;
		if (m === ptrType$74.nil) {
			$s = -1; return;
		}
		/* */ if (!((m.ListenPort === 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((m.ListenPort === 0))) { */ case 1:
			$r = writer[0].WriteUint32(1, m.ListenPort); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.ListenInterface.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.ListenInterface.length > 0) { */ case 4:
			$r = writer[0].WriteString(2, m.ListenInterface); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.LeaseFile.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.LeaseFile.length > 0) { */ case 7:
			$r = writer[0].WriteString(3, m.LeaseFile); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		/* */ if (m.NotAuthoritative) { $s = 10; continue; }
		/* */ $s = 11; continue;
		/* if (m.NotAuthoritative) { */ case 10:
			$r = writer[0].WriteBool(4, m.NotAuthoritative); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 11:
		/* */ if (m.DoNotBindInterface) { $s = 13; continue; }
		/* */ $s = 14; continue;
		/* if (m.DoNotBindInterface) { */ case 13:
			$r = writer[0].WriteBool(5, m.DoNotBindInterface); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 14:
		/* */ if (m.CallbackScript.length > 0) { $s = 16; continue; }
		/* */ $s = 17; continue;
		/* if (m.CallbackScript.length > 0) { */ case 16:
			$r = writer[0].WriteString(6, m.CallbackScript); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 17:
		_ref = m.Ranges;
		_i = 0;
		/* while (true) { */ case 19:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 20; continue; }
			msg[0] = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = writer[0].WriteMessage(7, (function(key, msg, msg$1, value, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(key, msg, msg$1, value, writer)); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 19; continue;
		case 20:
		/* */ if ((m.Options ? m.Options.size : 0) > 0) { $s = 22; continue; }
		/* */ $s = 23; continue;
		/* if ((m.Options ? m.Options.size : 0) > 0) { */ case 22:
			_ref$1 = m.Options;
			_i$1 = 0;
			_keys = _ref$1 ? _ref$1.keys() : undefined;
			_size = _ref$1 ? _ref$1.size : 0;
			/* while (true) { */ case 24:
				/* if (!(_i$1 < _size)) { break; } */ if(!(_i$1 < _size)) { $s = 25; continue; }
				_key = _keys.next().value;
				_entry = _ref$1.get(_key);
				if (_entry === undefined) {
					_i$1++;
					/* continue; */ $s = 24; continue;
				}
				key[0] = _entry.k;
				value[0] = _entry.v;
				$r = writer[0].WriteMessage(8, (function(key, msg, msg$1, value, writer) { return function $b() {
					var {$s, $r, $c} = $restore(this, {});
					/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
					$r = writer[0].WriteUint32(1, key[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$r = writer[0].WriteString(2, value[0]); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = -1; return;
					/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
				}; })(key, msg, msg$1, value, writer)); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				_i$1++;
			$s = 24; continue;
			case 25:
		/* } */ case 23:
		_ref$2 = m.StaticHosts;
		_i$2 = 0;
		/* while (true) { */ case 27:
			/* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 28; continue; }
			msg$1[0] = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
			$r = writer[0].WriteMessage(9, (function(key, msg, msg$1, value, writer) { return function $b() {
				var {$s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = msg$1[0].MarshalToWriter(writer[0]); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
			}; })(key, msg, msg$1, value, writer)); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i$2++;
		$s = 27; continue;
		case 28:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: DHCPServerSettings.ptr.prototype.MarshalToWriter, $c: true, $r, _entry, _i, _i$1, _i$2, _key, _keys, _ref, _ref$1, _ref$2, _size, key, m, msg, msg$1, value, writer, $s};return $f;
	};
	DHCPServerSettings.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	DHCPServerSettings.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: DHCPServerSettings.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	DHCPServerSettings.prototype.Marshal = function() { return this.$val.Marshal(); };
	DHCPServerSettings.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = [m];
		reader = [reader];
		m[0] = this;
		/* while (true) { */ case 1:
			_r = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m[0] === ptrType$74.nil) {
				m[0] = new DHCPServerSettings.ptr(0, "", "", false, false, "", sliceType$8.nil, false, sliceType$9.nil);
			}
				_r$1 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ if (_1 === (4)) { $s = 9; continue; }
				/* */ if (_1 === (5)) { $s = 10; continue; }
				/* */ if (_1 === (6)) { $s = 11; continue; }
				/* */ if (_1 === (7)) { $s = 12; continue; }
				/* */ if (_1 === (8)) { $s = 13; continue; }
				/* */ if (_1 === (9)) { $s = 14; continue; }
				/* */ $s = 15; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader[0].ReadUint32(); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m[0].ListenPort = _r$2;
					$s = 16; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader[0].ReadString(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m[0].ListenInterface = _r$3;
					$s = 16; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader[0].ReadString(); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m[0].LeaseFile = _r$4;
					$s = 16; continue;
				/* } else if (_1 === (4)) { */ case 9:
					_r$5 = reader[0].ReadBool(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					m[0].NotAuthoritative = _r$5;
					$s = 16; continue;
				/* } else if (_1 === (5)) { */ case 10:
					_r$6 = reader[0].ReadBool(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					m[0].DoNotBindInterface = _r$6;
					$s = 16; continue;
				/* } else if (_1 === (6)) { */ case 11:
					_r$7 = reader[0].ReadString(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					m[0].CallbackScript = _r$7;
					$s = 16; continue;
				/* } else if (_1 === (7)) { */ case 12:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$8, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$8 = new DHCPServerRange.ptr("", "", "").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
						m[0].Ranges = $append(m[0].Ranges, _r$8);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$8, $s};return $f;
					}; })(m, reader)); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 16; continue;
				/* } else if (_1 === (8)) { */ case 13:
					if (m[0].Options === false) {
						m[0].Options = $makeMap($Uint32.keyFor, []);
					}
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_2, _key, _r$10, _r$11, _r$8, _r$9, key, value, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						key = 0;
						value = "";
						/* while (true) { */ case 1:
							_r$8 = reader[0].Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
							/* if (!(_r$8)) { break; } */ if(!(_r$8)) { $s = 2; continue; }
								_r$9 = reader[0].GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
								_2 = _r$9;
								/* */ if (_2 === (1)) { $s = 6; continue; }
								/* */ if (_2 === (2)) { $s = 7; continue; }
								/* */ $s = 8; continue;
								/* if (_2 === (1)) { */ case 6:
									_r$10 = reader[0].ReadUint32(); /* */ $s = 9; case 9: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
									key = _r$10;
									$s = 8; continue;
								/* } else if (_2 === (2)) { */ case 7:
									_r$11 = reader[0].ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
									value = _r$11;
								/* } */ case 8:
							case 4:
							_key = key; (m[0].Options || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: value });
						$s = 1; continue;
						case 2:
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _2, _key, _r$10, _r$11, _r$8, _r$9, key, value, $s};return $f;
					}; })(m, reader)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 16; continue;
				/* } else if (_1 === (9)) { */ case 14:
					$r = reader[0].ReadMessage((function(m, reader) { return function $b() {
						var {_r$8, $s, $r, $c} = $restore(this, {});
						/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
						_r$8 = new DHCPServerStaticHost.ptr("", "").UnmarshalFromReader(reader[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
						m[0].StaticHosts = $append(m[0].StaticHosts, _r$8);
						$s = -1; return;
						/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$8, $s};return $f;
					}; })(m, reader)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
					$s = 16; continue;
				/* } else { */ case 15:
					$r = reader[0].SkipField(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 16:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m[0];
		/* */ } return; } var $f = {$blk: DHCPServerSettings.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, m, reader, $s};return $f;
	};
	DHCPServerSettings.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	DHCPServerSettings.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$74.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: DHCPServerSettings.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	DHCPServerSettings.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	DHCPServerRange.ptr.prototype.GetRangeLower = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$75.nil) {
			x = x;
			return x;
		}
		x = m.RangeLower;
		return x;
	};
	DHCPServerRange.prototype.GetRangeLower = function() { return this.$val.GetRangeLower(); };
	DHCPServerRange.ptr.prototype.GetRangeUpper = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$75.nil) {
			x = x;
			return x;
		}
		x = m.RangeUpper;
		return x;
	};
	DHCPServerRange.prototype.GetRangeUpper = function() { return this.$val.GetRangeUpper(); };
	DHCPServerRange.ptr.prototype.GetLeaseTime = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$75.nil) {
			x = x;
			return x;
		}
		x = m.LeaseTime;
		return x;
	};
	DHCPServerRange.prototype.GetLeaseTime = function() { return this.$val.GetLeaseTime(); };
	DHCPServerRange.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$75.nil) {
			$s = -1; return;
		}
		/* */ if (m.RangeLower.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.RangeLower.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.RangeLower); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.RangeUpper.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.RangeUpper.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.RangeUpper); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		/* */ if (m.LeaseTime.length > 0) { $s = 7; continue; }
		/* */ $s = 8; continue;
		/* if (m.LeaseTime.length > 0) { */ case 7:
			$r = writer.WriteString(3, m.LeaseTime); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 8:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: DHCPServerRange.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	DHCPServerRange.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	DHCPServerRange.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: DHCPServerRange.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	DHCPServerRange.prototype.Marshal = function() { return this.$val.Marshal(); };
	DHCPServerRange.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$75.nil) {
				m = new DHCPServerRange.ptr("", "", "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ if (_1 === (3)) { $s = 8; continue; }
				/* */ $s = 9; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.RangeLower = _r$2;
					$s = 10; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.RangeUpper = _r$3;
					$s = 10; continue;
				/* } else if (_1 === (3)) { */ case 8:
					_r$4 = reader.ReadString(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					m.LeaseTime = _r$4;
					$s = 10; continue;
				/* } else { */ case 9:
					$r = reader.SkipField(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 10:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: DHCPServerRange.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, _r$4, m, reader, $s};return $f;
	};
	DHCPServerRange.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	DHCPServerRange.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$75.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: DHCPServerRange.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	DHCPServerRange.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	DHCPServerStaticHost.ptr.prototype.GetMac = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$76.nil) {
			x = x;
			return x;
		}
		x = m.Mac;
		return x;
	};
	DHCPServerStaticHost.prototype.GetMac = function() { return this.$val.GetMac(); };
	DHCPServerStaticHost.ptr.prototype.GetIp = function() {
		var m, x;
		x = "";
		m = this;
		if (m === ptrType$76.nil) {
			x = x;
			return x;
		}
		x = m.Ip;
		return x;
	};
	DHCPServerStaticHost.prototype.GetIp = function() { return this.$val.GetIp(); };
	DHCPServerStaticHost.ptr.prototype.MarshalToWriter = function(writer) {
		var {m, writer, $s, $r, $c} = $restore(this, {writer});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		if (m === ptrType$76.nil) {
			$s = -1; return;
		}
		/* */ if (m.Mac.length > 0) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (m.Mac.length > 0) { */ case 1:
			$r = writer.WriteString(1, m.Mac); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		/* */ if (m.Ip.length > 0) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (m.Ip.length > 0) { */ case 4:
			$r = writer.WriteString(2, m.Ip); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 5:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: DHCPServerStaticHost.ptr.prototype.MarshalToWriter, $c: true, $r, m, writer, $s};return $f;
	};
	DHCPServerStaticHost.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	DHCPServerStaticHost.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		$r = m.MarshalToWriter(writer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r = writer.GetResult(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: DHCPServerStaticHost.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	DHCPServerStaticHost.prototype.Marshal = function() { return this.$val.Marshal(); };
	DHCPServerStaticHost.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_1, _r, _r$1, _r$2, _r$3, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$76.nil) {
				m = new DHCPServerStaticHost.ptr("", "");
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_1 = _r$1;
				/* */ if (_1 === (1)) { $s = 6; continue; }
				/* */ if (_1 === (2)) { $s = 7; continue; }
				/* */ $s = 8; continue;
				/* if (_1 === (1)) { */ case 6:
					_r$2 = reader.ReadString(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					m.Mac = _r$2;
					$s = 9; continue;
				/* } else if (_1 === (2)) { */ case 7:
					_r$3 = reader.ReadString(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					m.Ip = _r$3;
					$s = 9; continue;
				/* } else { */ case 8:
					$r = reader.SkipField(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 9:
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: DHCPServerStaticHost.ptr.prototype.UnmarshalFromReader, $c: true, $r, _1, _r, _r$1, _r$2, _r$3, m, reader, $s};return $f;
	};
	DHCPServerStaticHost.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	DHCPServerStaticHost.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$76.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: DHCPServerStaticHost.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	DHCPServerStaticHost.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	Empty.ptr.prototype.MarshalToWriter = function(writer) {
		var m, writer;
		m = this;
		if (m === ptrType$77.nil) {
			return;
		}
		return;
	};
	Empty.prototype.MarshalToWriter = function(writer) { return this.$val.MarshalToWriter(writer); };
	Empty.ptr.prototype.Marshal = function() {
		var {$24r, _r, m, writer, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		writer = jspb.NewWriter();
		m.MarshalToWriter(writer);
		_r = writer.GetResult(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = _r;
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: Empty.ptr.prototype.Marshal, $c: true, $r, $24r, _r, m, writer, $s};return $f;
	};
	Empty.prototype.Marshal = function() { return this.$val.Marshal(); };
	Empty.ptr.prototype.UnmarshalFromReader = function(reader) {
		var {_r, _r$1, m, reader, $s, $r, $c} = $restore(this, {reader});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		/* while (true) { */ case 1:
			_r = reader.Next(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			/* if (!(_r)) { break; } */ if(!(_r)) { $s = 2; continue; }
			if (m === ptrType$77.nil) {
				m = new Empty.ptr();
			}
				_r$1 = reader.GetFieldNumber(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				$unused(_r$1);
				$r = reader.SkipField(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			case 4:
		$s = 1; continue;
		case 2:
		$s = -1; return m;
		/* */ } return; } var $f = {$blk: Empty.ptr.prototype.UnmarshalFromReader, $c: true, $r, _r, _r$1, m, reader, $s};return $f;
	};
	Empty.prototype.UnmarshalFromReader = function(reader) { return this.$val.UnmarshalFromReader(reader); };
	Empty.ptr.prototype.Unmarshal = function(rawBytes) {
		var {_r, _r$1, err, m, rawBytes, reader, $s, $r, $c} = $restore(this, {rawBytes});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		m = this;
		reader = jspb.NewReader(rawBytes);
		_r = m.UnmarshalFromReader(reader); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		m = _r;
		_r$1 = reader.Err(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		err = _r$1;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		$s = -1; return [m, $ifaceNil];
		/* */ } return; } var $f = {$blk: Empty.ptr.prototype.Unmarshal, $c: true, $r, _r, _r$1, err, m, rawBytes, reader, $s};return $f;
	};
	Empty.prototype.Unmarshal = function(rawBytes) { return this.$val.Unmarshal(rawBytes); };
	NewP4WNP1Client = function(hostname, opts) {
		var {$24r, _r, hostname, opts, $s, $r, $c} = $restore(this, {hostname, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = grpcweb.NewClient(hostname, "P4wnP1_grpc.P4WNP1", opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$24r = new p4WNP1Client.ptr(_r);
		$s = 2; case 2: return $24r;
		/* */ } return; } var $f = {$blk: NewP4WNP1Client, $c: true, $r, $24r, _r, hostname, opts, $s};return $f;
	};
	$pkg.NewP4WNP1Client = NewP4WNP1Client;
	p4WNP1Client.ptr.prototype.GetBluetoothControllerInformation = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetBluetoothControllerInformation", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$4.nil, err];
		}
		_r$2 = new BluetoothControllerInformation.ptr(sliceType$1.nil, 0, 0, ptrType$7.nil, ptrType$7.nil, sliceType$1.nil, "", "", false, false, false, false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetBluetoothControllerInformation, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetBluetoothControllerInformation = function(ctx, in$1, opts) { return this.$val.GetBluetoothControllerInformation(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployBluetoothControllerInformation = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployBluetoothControllerInformation", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$4.nil, err];
		}
		_r$2 = new BluetoothControllerInformation.ptr(sliceType$1.nil, 0, 0, ptrType$7.nil, ptrType$7.nil, sliceType$1.nil, "", "", false, false, false, false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployBluetoothControllerInformation, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployBluetoothControllerInformation = function(ctx, in$1, opts) { return this.$val.DeployBluetoothControllerInformation(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetBluetoothAgentSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetBluetoothAgentSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$5.nil, err];
		}
		_r$2 = new BluetoothAgentSettings.ptr("").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetBluetoothAgentSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetBluetoothAgentSettings = function(ctx, in$1, opts) { return this.$val.GetBluetoothAgentSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployBluetoothAgentSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployBluetoothAgentSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$5.nil, err];
		}
		_r$2 = new BluetoothAgentSettings.ptr("").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployBluetoothAgentSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployBluetoothAgentSettings = function(ctx, in$1, opts) { return this.$val.DeployBluetoothAgentSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.SetBluetoothNetworkService = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "SetBluetoothNetworkService", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.SetBluetoothNetworkService, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.SetBluetoothNetworkService = function(ctx, in$1, opts) { return this.$val.SetBluetoothNetworkService(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$3.nil, err];
		}
		_r$2 = new BluetoothSettings.ptr(ptrType$4.nil, ptrType$5.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployBluetoothSettings = function(ctx, in$1, opts) { return this.$val.DeployBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreBluetoothSettings = function(ctx, in$1, opts) { return this.$val.StoreBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStoredBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStoredBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$3.nil, err];
		}
		_r$2 = new BluetoothSettings.ptr(ptrType$4.nil, ptrType$5.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStoredBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStoredBluetoothSettings = function(ctx, in$1, opts) { return this.$val.GetStoredBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$3.nil, err];
		}
		_r$2 = new BluetoothSettings.ptr(ptrType$4.nil, ptrType$5.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredBluetoothSettings = function(ctx, in$1, opts) { return this.$val.DeployStoredBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredBluetoothSettings = function(ctx, in$1, opts) { return this.$val.DeleteStoredBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreDeployedBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreDeployedBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreDeployedBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreDeployedBluetoothSettings = function(ctx, in$1, opts) { return this.$val.StoreDeployedBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredBluetoothSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredBluetoothSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredBluetoothSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredBluetoothSettings = function(ctx, in$1, opts) { return this.$val.ListStoredBluetoothSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetDeployedGadgetSetting = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetDeployedGadgetSetting", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$68.nil, err];
		}
		_r$2 = new GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$69.nil, ptrType$69.nil, ptrType$70.nil, "", "", "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetDeployedGadgetSetting, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetDeployedGadgetSetting = function(ctx, in$1, opts) { return this.$val.GetDeployedGadgetSetting(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployGadgetSetting = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployGadgetSetting", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$68.nil, err];
		}
		_r$2 = new GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$69.nil, ptrType$69.nil, ptrType$70.nil, "", "", "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployGadgetSetting, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployGadgetSetting = function(ctx, in$1, opts) { return this.$val.DeployGadgetSetting(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetLEDSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetLEDSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$66.nil, err];
		}
		_r$2 = new LEDSettings.ptr(0).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetLEDSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetLEDSettings = function(ctx, in$1, opts) { return this.$val.GetLEDSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.SetLEDSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "SetLEDSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.SetLEDSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.SetLEDSettings = function(ctx, in$1, opts) { return this.$val.SetLEDSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.MountUMSFile = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "MountUMSFile", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.MountUMSFile, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.MountUMSFile = function(ctx, in$1, opts) { return this.$val.MountUMSFile(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreUSBSettings = function(ctx, in$1, opts) { return this.$val.StoreUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStoredUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStoredUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$68.nil, err];
		}
		_r$2 = new GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$69.nil, ptrType$69.nil, ptrType$70.nil, "", "", "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStoredUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStoredUSBSettings = function(ctx, in$1, opts) { return this.$val.GetStoredUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$68.nil, err];
		}
		_r$2 = new GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$69.nil, ptrType$69.nil, ptrType$70.nil, "", "", "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredUSBSettings = function(ctx, in$1, opts) { return this.$val.DeployStoredUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredUSBSettings = function(ctx, in$1, opts) { return this.$val.DeleteStoredUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreDeployedUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreDeployedUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreDeployedUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreDeployedUSBSettings = function(ctx, in$1, opts) { return this.$val.StoreDeployedUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredUSBSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredUSBSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredUSBSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredUSBSettings = function(ctx, in$1, opts) { return this.$val.ListStoredUSBSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListUmsImageCdrom = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListUmsImageCdrom", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListUmsImageCdrom, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListUmsImageCdrom = function(ctx, in$1, opts) { return this.$val.ListUmsImageCdrom(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListUmsImageFlashdrive = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListUmsImageFlashdrive", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListUmsImageFlashdrive, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListUmsImageFlashdrive = function(ctx, in$1, opts) { return this.$val.ListUmsImageFlashdrive(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDRunScript = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDRunScript", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$65.nil, err];
		}
		_r$2 = new HIDScriptResult.ptr(ptrType$62.nil, false, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDRunScript, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDRunScript = function(ctx, in$1, opts) { return this.$val.HIDRunScript(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDRunScriptJob = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDRunScriptJob", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$62.nil, err];
		}
		_r$2 = new HIDScriptJob.ptr(0).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDRunScriptJob, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDRunScriptJob = function(ctx, in$1, opts) { return this.$val.HIDRunScriptJob(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDGetScriptJobResult = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDGetScriptJobResult", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$65.nil, err];
		}
		_r$2 = new HIDScriptResult.ptr(ptrType$62.nil, false, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDGetScriptJobResult, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDGetScriptJobResult = function(ctx, in$1, opts) { return this.$val.HIDGetScriptJobResult(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDCancelScriptJob = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDCancelScriptJob", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDCancelScriptJob, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDCancelScriptJob = function(ctx, in$1, opts) { return this.$val.HIDCancelScriptJob(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDGetRunningScriptJobs = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDGetRunningScriptJobs", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$63.nil, err];
		}
		_r$2 = new HIDScriptJobList.ptr(sliceType$6.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDGetRunningScriptJobs, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDGetRunningScriptJobs = function(ctx, in$1, opts) { return this.$val.HIDGetRunningScriptJobs(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDCancelAllScriptJobs = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDCancelAllScriptJobs", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDCancelAllScriptJobs, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDCancelAllScriptJobs = function(ctx, in$1, opts) { return this.$val.HIDCancelAllScriptJobs(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.HIDGetRunningJobState = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "HIDGetRunningJobState", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$64.nil, err];
		}
		_r$2 = new HIDRunningJobStateResult.ptr(new $Int64(0, 0), new $Int64(0, 0), "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.HIDGetRunningJobState, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.HIDGetRunningJobState = function(ctx, in$1, opts) { return this.$val.HIDGetRunningJobState(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.FSWriteFile = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "FSWriteFile", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.FSWriteFile, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.FSWriteFile = function(ctx, in$1, opts) { return this.$val.FSWriteFile(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.FSReadFile = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "FSReadFile", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$57.nil, err];
		}
		_r$2 = new ReadFileResponse.ptr(new $Int64(0, 0), sliceType$1.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.FSReadFile, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.FSReadFile = function(ctx, in$1, opts) { return this.$val.FSReadFile(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.FSGetFileInfo = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "FSGetFileInfo", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$60.nil, err];
		}
		_r$2 = new FileInfoResponse.ptr("", new $Int64(0, 0), 0, new $Int64(0, 0), false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.FSGetFileInfo, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.FSGetFileInfo = function(ctx, in$1, opts) { return this.$val.FSGetFileInfo(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.FSCreateTempDirOrFile = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "FSCreateTempDirOrFile", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$55.nil, err];
		}
		_r$2 = new TempDirOrFileResponse.ptr("").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.FSCreateTempDirOrFile, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.FSCreateTempDirOrFile = function(ctx, in$1, opts) { return this.$val.FSCreateTempDirOrFile(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.EventListen = function(ctx, in$1, opts) {
		var {_r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, srv, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_r = $clone(c.client, grpcweb.Client).NewClientStream(ctx, false, true, "EventListen", opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		srv = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [$ifaceNil, err];
		}
		_r$1 = in$1.Marshal(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_r$2 = srv.SendMsg(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		err = _r$2;
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [$ifaceNil, err];
		}
		$s = -1; return [new p4WNP1EventListenClient.ptr(srv), $ifaceNil];
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.EventListen, $c: true, $r, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, srv, $s};return $f;
	};
	p4WNP1Client.prototype.EventListen = function(ctx, in$1, opts) { return this.$val.EventListen(ctx, in$1, opts); };
	p4WNP1EventListenClient.ptr.prototype.Recv = function() {
		var {$24r, _r, _r$1, _tuple, err, resp, x, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		x = this;
		_r = x.ClientStream.RecvMsg(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_tuple = _r;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$53.nil, err];
		}
		_r$1 = new Event.ptr(new $Int64(0, 0), sliceType$5.nil).Unmarshal(resp); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		$24r = _r$1;
		$s = 3; case 3: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1EventListenClient.ptr.prototype.Recv, $c: true, $r, $24r, _r, _r$1, _tuple, err, resp, x, $s};return $f;
	};
	p4WNP1EventListenClient.prototype.Recv = function() { return this.$val.Recv(); };
	p4WNP1Client.ptr.prototype.EchoRequest = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "EchoRequest", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$46.nil, err];
		}
		_r$2 = new StringMessage.ptr("").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.EchoRequest, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.EchoRequest = function(ctx, in$1, opts) { return this.$val.EchoRequest(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployWiFiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployWiFiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$45.nil, err];
		}
		_r$2 = new WiFiState.ptr(0, 0, "", ptrType$43.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployWiFiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployWiFiSettings = function(ctx, in$1, opts) { return this.$val.DeployWiFiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetWiFiState = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetWiFiState", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$45.nil, err];
		}
		_r$2 = new WiFiState.ptr(0, 0, "", ptrType$43.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetWiFiState, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetWiFiState = function(ctx, in$1, opts) { return this.$val.GetWiFiState(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListenWiFiStateChanges = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListenWiFiStateChanges", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$45.nil, err];
		}
		_r$2 = new WiFiState.ptr(0, 0, "", ptrType$43.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListenWiFiStateChanges, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListenWiFiStateChanges = function(ctx, in$1, opts) { return this.$val.ListenWiFiStateChanges(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreWifiSettings = function(ctx, in$1, opts) { return this.$val.StoreWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStoredWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStoredWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$43.nil, err];
		}
		_r$2 = new WiFiSettings.ptr("", false, "", 0, 0, 0, ptrType$44.nil, sliceType$4.nil, false, false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStoredWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStoredWifiSettings = function(ctx, in$1, opts) { return this.$val.GetStoredWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$45.nil, err];
		}
		_r$2 = new WiFiState.ptr(0, 0, "", ptrType$43.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredWifiSettings = function(ctx, in$1, opts) { return this.$val.DeployStoredWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredWifiSettings = function(ctx, in$1, opts) { return this.$val.DeleteStoredWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreDeployedWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreDeployedWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreDeployedWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreDeployedWifiSettings = function(ctx, in$1, opts) { return this.$val.StoreDeployedWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredWifiSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredWifiSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredWifiSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredWifiSettings = function(ctx, in$1, opts) { return this.$val.ListStoredWifiSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.DeployEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetAllDeployedEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetAllDeployedEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$73.nil, err];
		}
		_r$2 = new DeployedEthernetInterfaceSettings.ptr(sliceType$7.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetAllDeployedEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetAllDeployedEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.GetAllDeployedEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetDeployedEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetDeployedEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$72.nil, err];
		}
		_r$2 = new EthernetInterfaceSettings.ptr("", 0, "", "", false, ptrType$74.nil, false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetDeployedEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetDeployedEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.GetDeployedEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.StoreEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStoredEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStoredEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$72.nil, err];
		}
		_r$2 = new EthernetInterfaceSettings.ptr("", 0, "", "", false, ptrType$74.nil, false).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStoredEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStoredEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.GetStoredEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.DeployStoredEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.DeleteStoredEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredEthernetInterfaceSettings = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredEthernetInterfaceSettings", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredEthernetInterfaceSettings, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredEthernetInterfaceSettings = function(ctx, in$1, opts) { return this.$val.ListStoredEthernetInterfaceSettings(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetDeployedTriggerActionSet = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetDeployedTriggerActionSet", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetDeployedTriggerActionSet, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetDeployedTriggerActionSet = function(ctx, in$1, opts) { return this.$val.GetDeployedTriggerActionSet(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployTriggerActionSetReplace = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployTriggerActionSetReplace", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployTriggerActionSetReplace, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployTriggerActionSetReplace = function(ctx, in$1, opts) { return this.$val.DeployTriggerActionSetReplace(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployTriggerActionSetAdd = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployTriggerActionSetAdd", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployTriggerActionSetAdd, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployTriggerActionSetAdd = function(ctx, in$1, opts) { return this.$val.DeployTriggerActionSetAdd(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployTriggerActionSetRemove = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployTriggerActionSetRemove", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployTriggerActionSetRemove, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployTriggerActionSetRemove = function(ctx, in$1, opts) { return this.$val.DeployTriggerActionSetRemove(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployTriggerActionSetUpdate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployTriggerActionSetUpdate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployTriggerActionSetUpdate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployTriggerActionSetUpdate = function(ctx, in$1, opts) { return this.$val.DeployTriggerActionSetUpdate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredTriggerActionSets = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredTriggerActionSets", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredTriggerActionSets, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredTriggerActionSets = function(ctx, in$1, opts) { return this.$val.ListStoredTriggerActionSets(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreTriggerActionSet = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreTriggerActionSet", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreTriggerActionSet, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreTriggerActionSet = function(ctx, in$1, opts) { return this.$val.StoreTriggerActionSet(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredTriggerActionSetReplace = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredTriggerActionSetReplace", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredTriggerActionSetReplace, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredTriggerActionSetReplace = function(ctx, in$1, opts) { return this.$val.DeployStoredTriggerActionSetReplace(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredTriggerActionSetAdd = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredTriggerActionSetAdd", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$9.nil, err];
		}
		_r$2 = new TriggerActionSet.ptr(sliceType$2.nil, "").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredTriggerActionSetAdd, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredTriggerActionSetAdd = function(ctx, in$1, opts) { return this.$val.DeployStoredTriggerActionSetAdd(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredTriggerActionSet = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredTriggerActionSet", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredTriggerActionSet, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredTriggerActionSet = function(ctx, in$1, opts) { return this.$val.DeleteStoredTriggerActionSet(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.WaitTriggerGroupReceive = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "WaitTriggerGroupReceive", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.WaitTriggerGroupReceive, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.WaitTriggerGroupReceive = function(ctx, in$1, opts) { return this.$val.WaitTriggerGroupReceive(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.FireActionGroupSend = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "FireActionGroupSend", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.FireActionGroupSend, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.FireActionGroupSend = function(ctx, in$1, opts) { return this.$val.FireActionGroupSend(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployMasterTemplate = function(ctx, in$1, opts) { return this.$val.DeployMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.StoreMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "StoreMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.StoreMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.StoreMasterTemplate = function(ctx, in$1, opts) { return this.$val.StoreMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStoredMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStoredMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType.nil, err];
		}
		_r$2 = new MasterTemplate.ptr("", "", "", "", sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStoredMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStoredMasterTemplate = function(ctx, in$1, opts) { return this.$val.GetStoredMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeployStoredMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeployStoredMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType.nil, err];
		}
		_r$2 = new MasterTemplate.ptr("", "", "", "", sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeployStoredMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeployStoredMasterTemplate = function(ctx, in$1, opts) { return this.$val.DeployStoredMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DeleteStoredMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DeleteStoredMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DeleteStoredMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DeleteStoredMasterTemplate = function(ctx, in$1, opts) { return this.$val.DeleteStoredMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredMasterTemplate = function(ctx, in$1, opts) { return this.$val.ListStoredMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetStartupMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetStartupMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$46.nil, err];
		}
		_r$2 = new StringMessage.ptr("").Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetStartupMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetStartupMasterTemplate = function(ctx, in$1, opts) { return this.$val.GetStartupMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.SetStartupMasterTemplate = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "SetStartupMasterTemplate", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.SetStartupMasterTemplate, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.SetStartupMasterTemplate = function(ctx, in$1, opts) { return this.$val.SetStartupMasterTemplate(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DBBackup = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DBBackup", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DBBackup, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DBBackup = function(ctx, in$1, opts) { return this.$val.DBBackup(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.DBRestore = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "DBRestore", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.DBRestore, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.DBRestore = function(ctx, in$1, opts) { return this.$val.DBRestore(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredHIDScripts = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredHIDScripts", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredHIDScripts, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredHIDScripts = function(ctx, in$1, opts) { return this.$val.ListStoredHIDScripts(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredBashScripts = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredBashScripts", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredBashScripts, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredBashScripts = function(ctx, in$1, opts) { return this.$val.ListStoredBashScripts(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.ListStoredDBBackups = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "ListStoredDBBackups", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.ListStoredDBBackups, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.ListStoredDBBackups = function(ctx, in$1, opts) { return this.$val.ListStoredDBBackups(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.GetAvailableGpios = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "GetAvailableGpios", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$47.nil, err];
		}
		_r$2 = new StringMessageArray.ptr(sliceType.nil).Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.GetAvailableGpios, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.GetAvailableGpios = function(ctx, in$1, opts) { return this.$val.GetAvailableGpios(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.Shutdown = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "Shutdown", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.Shutdown, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.Shutdown = function(ctx, in$1, opts) { return this.$val.Shutdown(ctx, in$1, opts); };
	p4WNP1Client.ptr.prototype.Reboot = function(ctx, in$1, opts) {
		var {$24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s, $r, $c} = $restore(this, {ctx, in$1, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_arg = ctx;
		_r = in$1.Marshal(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_arg$1 = _r;
		_arg$2 = opts;
		_r$1 = $clone(c.client, grpcweb.Client).RPCCall(_arg, "Reboot", _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		resp = _tuple[0];
		err = _tuple[1];
		if (!($interfaceIsEqual(err, $ifaceNil))) {
			$s = -1; return [ptrType$77.nil, err];
		}
		_r$2 = new Empty.ptr().Unmarshal(resp); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 4; case 4: return $24r;
		/* */ } return; } var $f = {$blk: p4WNP1Client.ptr.prototype.Reboot, $c: true, $r, $24r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _tuple, c, ctx, err, in$1, opts, resp, $s};return $f;
	};
	p4WNP1Client.prototype.Reboot = function(ctx, in$1, opts) { return this.$val.Reboot(ctx, in$1, opts); };
	BluetoothNetworkServiceType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	GroupReceiveMultiType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	GPIOInPullUpDown.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	GPIOInEdge.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	GPIOOutValue.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	WiFiWorkingMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	WiFiStateMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	WiFiAuthMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	AccessibleFolder.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ActionDeploySettingsTemplate_TemplateType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	EthernetInterfaceSettings_Mode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType.methods = [{prop: "GetTemplateNameBluetooth", name: "GetTemplateNameBluetooth", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTemplateNameUsb", name: "GetTemplateNameUsb", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTemplateNameWifi", name: "GetTemplateNameWifi", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTemplateNameTriggerActions", name: "GetTemplateNameTriggerActions", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTemplateNamesNetwork", name: "GetTemplateNamesNetwork", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType, $error], false)}];
	ptrType$1.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTemplate", name: "GetTemplate", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$1], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$1, $error], false)}];
	ptrType$2.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSettings", name: "GetSettings", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$2], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$2, $error], false)}];
	ptrType$3.methods = [{prop: "GetCi", name: "GetCi", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "GetAs", name: "GetAs", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$3], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$3, $error], false)}];
	ptrType$5.methods = [{prop: "GetPin", name: "GetPin", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$5], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$5, $error], false)}];
	ptrType$6.methods = [{prop: "GetRegisterOrUnregister", name: "GetRegisterOrUnregister", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetServerOrConnect", name: "GetServerOrConnect", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetType", name: "GetType", pkg: "", typ: $funcType([], [BluetoothNetworkServiceType], false)}, {prop: "GetMacOrName", name: "GetMacOrName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetBridgeName", name: "GetBridgeName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$6], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$6, $error], false)}];
	ptrType$7.methods = [{prop: "GetPowered", name: "GetPowered", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetConnectable", name: "GetConnectable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetFastConnectable", name: "GetFastConnectable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetDiscoverable", name: "GetDiscoverable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetBondable", name: "GetBondable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetLinkLevelSecurity", name: "GetLinkLevelSecurity", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetSecureSimplePairing", name: "GetSecureSimplePairing", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetBrEdr", name: "GetBrEdr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetHighSpeed", name: "GetHighSpeed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetLowEnergy", name: "GetLowEnergy", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetAdvertising", name: "GetAdvertising", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetSecureConnections", name: "GetSecureConnections", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetDebugKeys", name: "GetDebugKeys", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetPrivacy", name: "GetPrivacy", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetControllerConfiguration", name: "GetControllerConfiguration", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetStaticAddress", name: "GetStaticAddress", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$7], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$7, $error], false)}];
	ptrType$4.methods = [{prop: "GetAddress", name: "GetAddress", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "GetBluetoothVersion", name: "GetBluetoothVersion", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetManufacturer", name: "GetManufacturer", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetSupportedSettings", name: "GetSupportedSettings", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "GetCurrentSettings", name: "GetCurrentSettings", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "GetClassOfDevice", name: "GetClassOfDevice", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "GetName", name: "GetName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetShortName", name: "GetShortName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetIsAvailable", name: "GetIsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetServiceNetworkServerNap", name: "GetServiceNetworkServerNap", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetServiceNetworkServerPanu", name: "GetServiceNetworkServerPanu", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetServiceNetworkServerGn", name: "GetServiceNetworkServerGn", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$4], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$4, $error], false)}];
	ptrType$9.methods = [{prop: "GetTriggerActions", name: "GetTriggerActions", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "GetName", name: "GetName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$9], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$9, $error], false)}];
	ptrType$8.methods = [{prop: "GetTrigger", name: "GetTrigger", pkg: "", typ: $funcType([], [isTriggerAction_Trigger], false)}, {prop: "GetAction", name: "GetAction", pkg: "", typ: $funcType([], [isTriggerAction_Action], false)}, {prop: "GetId", name: "GetId", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetOneShot", name: "GetOneShot", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetIsActive", name: "GetIsActive", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetImmutable", name: "GetImmutable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetServiceStarted", name: "GetServiceStarted", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "GetUsbGadgetConnected", name: "GetUsbGadgetConnected", pkg: "", typ: $funcType([], [ptrType$12], false)}, {prop: "GetUsbGadgetDisconnected", name: "GetUsbGadgetDisconnected", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "GetWifiAPStarted", name: "GetWifiAPStarted", pkg: "", typ: $funcType([], [ptrType$16], false)}, {prop: "GetWifiConnectedAsSta", name: "GetWifiConnectedAsSta", pkg: "", typ: $funcType([], [ptrType$18], false)}, {prop: "GetSshLogin", name: "GetSshLogin", pkg: "", typ: $funcType([], [ptrType$20], false)}, {prop: "GetDhcpLeaseGranted", name: "GetDhcpLeaseGranted", pkg: "", typ: $funcType([], [ptrType$22], false)}, {prop: "GetGroupReceive", name: "GetGroupReceive", pkg: "", typ: $funcType([], [ptrType$24], false)}, {prop: "GetGroupReceiveMulti", name: "GetGroupReceiveMulti", pkg: "", typ: $funcType([], [ptrType$26], false)}, {prop: "GetGpioIn", name: "GetGpioIn", pkg: "", typ: $funcType([], [ptrType$28], false)}, {prop: "GetBashScript", name: "GetBashScript", pkg: "", typ: $funcType([], [ptrType$30], false)}, {prop: "GetHidScript", name: "GetHidScript", pkg: "", typ: $funcType([], [ptrType$32], false)}, {prop: "GetDeploySettingsTemplate", name: "GetDeploySettingsTemplate", pkg: "", typ: $funcType([], [ptrType$34], false)}, {prop: "GetLog", name: "GetLog", pkg: "", typ: $funcType([], [ptrType$36], false)}, {prop: "GetGpioOut", name: "GetGpioOut", pkg: "", typ: $funcType([], [ptrType$38], false)}, {prop: "GetGroupSend", name: "GetGroupSend", pkg: "", typ: $funcType([], [ptrType$40], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$8], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$8, $error], false)}];
	ptrType$11.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$13.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$15.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$17.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$19.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$21.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$23.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$25.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$27.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$29.methods = [{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$31.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$33.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$35.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$37.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$39.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$41.methods = [{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$10.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$10], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$10, $error], false)}];
	ptrType$12.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$12], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$12, $error], false)}];
	ptrType$14.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$14], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$14, $error], false)}];
	ptrType$16.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$16], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$16, $error], false)}];
	ptrType$18.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$18], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$18, $error], false)}];
	ptrType$20.methods = [{prop: "GetLoginUser", name: "GetLoginUser", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$20], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$20, $error], false)}];
	ptrType$22.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$22], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$22, $error], false)}];
	ptrType$24.methods = [{prop: "GetGroupName", name: "GetGroupName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetValue", name: "GetValue", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$24], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$24, $error], false)}];
	ptrType$26.methods = [{prop: "GetGroupName", name: "GetGroupName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetValues", name: "GetValues", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetType", name: "GetType", pkg: "", typ: $funcType([], [GroupReceiveMultiType], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$26], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$26, $error], false)}];
	ptrType$28.methods = [{prop: "GetGpioName", name: "GetGpioName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetPullUpDown", name: "GetPullUpDown", pkg: "", typ: $funcType([], [GPIOInPullUpDown], false)}, {prop: "GetGpioInEdge", name: "GetGpioInEdge", pkg: "", typ: $funcType([], [GPIOInEdge], false)}, {prop: "GetDebounceMillis", name: "GetDebounceMillis", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$28], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$28, $error], false)}];
	ptrType$30.methods = [{prop: "GetScriptName", name: "GetScriptName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$30], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$30, $error], false)}];
	ptrType$32.methods = [{prop: "GetScriptName", name: "GetScriptName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$32], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$32, $error], false)}];
	ptrType$34.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetType", name: "GetType", pkg: "", typ: $funcType([], [ActionDeploySettingsTemplate_TemplateType], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$34], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$34, $error], false)}];
	ptrType$36.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$36], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$36, $error], false)}];
	ptrType$38.methods = [{prop: "GetGpioName", name: "GetGpioName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetValue", name: "GetValue", pkg: "", typ: $funcType([], [GPIOOutValue], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$38], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$38, $error], false)}];
	ptrType$40.methods = [{prop: "GetGroupName", name: "GetGroupName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetValue", name: "GetValue", pkg: "", typ: $funcType([], [$Int32], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$40], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$40, $error], false)}];
	ptrType$42.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSettings", name: "GetSettings", pkg: "", typ: $funcType([], [ptrType$43], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$42], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$42, $error], false)}];
	ptrType$43.methods = [{prop: "GetName", name: "GetName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetDisabled", name: "GetDisabled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetRegulatory", name: "GetRegulatory", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetWorkingMode", name: "GetWorkingMode", pkg: "", typ: $funcType([], [WiFiWorkingMode], false)}, {prop: "GetAuthMode", name: "GetAuthMode", pkg: "", typ: $funcType([], [WiFiAuthMode], false)}, {prop: "GetChannel", name: "GetChannel", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetAp_BSS", name: "GetAp_BSS", pkg: "", typ: $funcType([], [ptrType$44], false)}, {prop: "GetClient_BSSList", name: "GetClient_BSSList", pkg: "", typ: $funcType([], [sliceType$4], false)}, {prop: "GetHideSsid", name: "GetHideSsid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetNexmon", name: "GetNexmon", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$43], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$43, $error], false)}];
	ptrType$45.methods = [{prop: "GetMode", name: "GetMode", pkg: "", typ: $funcType([], [WiFiStateMode], false)}, {prop: "GetChannel", name: "GetChannel", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetSsid", name: "GetSsid", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetCurrentSettings", name: "GetCurrentSettings", pkg: "", typ: $funcType([], [ptrType$43], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$45], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$45, $error], false)}];
	ptrType$44.methods = [{prop: "GetSSID", name: "GetSSID", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetPSK", name: "GetPSK", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$44], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$44, $error], false)}];
	ptrType$46.methods = [{prop: "GetMsg", name: "GetMsg", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$46], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$46, $error], false)}];
	ptrType$47.methods = [{prop: "GetMsgArray", name: "GetMsgArray", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$47], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$47, $error], false)}];
	ptrType$48.methods = [{prop: "GetListenType", name: "GetListenType", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$48], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$48, $error], false)}];
	ptrType$49.methods = [{prop: "GetVal", name: "GetVal", pkg: "", typ: $funcType([], [isEventValue_Val], false)}, {prop: "GetTstring", name: "GetTstring", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTbool", name: "GetTbool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetTint64", name: "GetTint64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$49], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$49, $error], false)}];
	ptrType$50.methods = [{prop: "isEventValue_Val", name: "isEventValue_Val", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$51.methods = [{prop: "isEventValue_Val", name: "isEventValue_Val", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$52.methods = [{prop: "isEventValue_Val", name: "isEventValue_Val", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}];
	ptrType$53.methods = [{prop: "GetType", name: "GetType", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetValues", name: "GetValues", pkg: "", typ: $funcType([], [sliceType$5], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$53], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$53, $error], false)}];
	ptrType$54.methods = [{prop: "GetDir", name: "GetDir", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetPrefix", name: "GetPrefix", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetOnlyFolder", name: "GetOnlyFolder", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$54], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$54, $error], false)}];
	ptrType$55.methods = [{prop: "GetResultPath", name: "GetResultPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$55], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$55, $error], false)}];
	ptrType$56.methods = [{prop: "GetFolder", name: "GetFolder", pkg: "", typ: $funcType([], [AccessibleFolder], false)}, {prop: "GetFilename", name: "GetFilename", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetStart", name: "GetStart", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetLen", name: "GetLen", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$56], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$56, $error], false)}];
	ptrType$57.methods = [{prop: "GetReadCount", name: "GetReadCount", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetData", name: "GetData", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$57], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$57, $error], false)}];
	ptrType$58.methods = [{prop: "GetFolder", name: "GetFolder", pkg: "", typ: $funcType([], [AccessibleFolder], false)}, {prop: "GetFilename", name: "GetFilename", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetAppend", name: "GetAppend", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetMustNotExist", name: "GetMustNotExist", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetData", name: "GetData", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$58], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$58, $error], false)}];
	ptrType$59.methods = [{prop: "GetPath", name: "GetPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$59], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$59, $error], false)}];
	ptrType$60.methods = [{prop: "GetName", name: "GetName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSize", name: "GetSize", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetMode", name: "GetMode", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetModTime", name: "GetModTime", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetIsDir", name: "GetIsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$60], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$60, $error], false)}];
	ptrType$61.methods = [{prop: "GetScriptPath", name: "GetScriptPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetTimeoutSeconds", name: "GetTimeoutSeconds", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$61], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$61, $error], false)}];
	ptrType$62.methods = [{prop: "GetId", name: "GetId", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$62], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$62, $error], false)}];
	ptrType$63.methods = [{prop: "GetIds", name: "GetIds", pkg: "", typ: $funcType([], [sliceType$6], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$63], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$63, $error], false)}];
	ptrType$64.methods = [{prop: "GetId", name: "GetId", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetVmId", name: "GetVmId", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "GetSource", name: "GetSource", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$64], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$64, $error], false)}];
	ptrType$65.methods = [{prop: "GetJob", name: "GetJob", pkg: "", typ: $funcType([], [ptrType$62], false)}, {prop: "GetIsFinished", name: "GetIsFinished", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetResultJson", name: "GetResultJson", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$65], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$65, $error], false)}];
	ptrType$66.methods = [{prop: "GetBlinkCount", name: "GetBlinkCount", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$66], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$66, $error], false)}];
	ptrType$67.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSettings", name: "GetSettings", pkg: "", typ: $funcType([], [ptrType$68], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$67], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$67, $error], false)}];
	ptrType$68.methods = [{prop: "GetEnabled", name: "GetEnabled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetVid", name: "GetVid", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetPid", name: "GetPid", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetManufacturer", name: "GetManufacturer", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetProduct", name: "GetProduct", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSerial", name: "GetSerial", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetUse_CDC_ECM", name: "GetUse_CDC_ECM", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_RNDIS", name: "GetUse_RNDIS", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_HID_KEYBOARD", name: "GetUse_HID_KEYBOARD", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_HID_MOUSE", name: "GetUse_HID_MOUSE", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_HID_RAW", name: "GetUse_HID_RAW", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_UMS", name: "GetUse_UMS", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetUse_SERIAL", name: "GetUse_SERIAL", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetRndisSettings", name: "GetRndisSettings", pkg: "", typ: $funcType([], [ptrType$69], false)}, {prop: "GetCdcEcmSettings", name: "GetCdcEcmSettings", pkg: "", typ: $funcType([], [ptrType$69], false)}, {prop: "GetUmsSettings", name: "GetUmsSettings", pkg: "", typ: $funcType([], [ptrType$70], false)}, {prop: "GetDevPathHidKeyboard", name: "GetDevPathHidKeyboard", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetDevPathHidMouse", name: "GetDevPathHidMouse", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetDevPathHidRaw", name: "GetDevPathHidRaw", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$68], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$68, $error], false)}];
	ptrType$69.methods = [{prop: "GetHostAddr", name: "GetHostAddr", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetDevAddr", name: "GetDevAddr", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$69], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$69, $error], false)}];
	ptrType$70.methods = [{prop: "GetCdrom", name: "GetCdrom", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetFile", name: "GetFile", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$70], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$70, $error], false)}];
	ptrType$71.methods = [{prop: "GetTemplateName", name: "GetTemplateName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetSettings", name: "GetSettings", pkg: "", typ: $funcType([], [ptrType$72], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$71], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$71, $error], false)}];
	ptrType$73.methods = [{prop: "GetList", name: "GetList", pkg: "", typ: $funcType([], [sliceType$7], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$73], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$73, $error], false)}];
	ptrType$72.methods = [{prop: "GetName", name: "GetName", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetMode", name: "GetMode", pkg: "", typ: $funcType([], [EthernetInterfaceSettings_Mode], false)}, {prop: "GetIpAddress4", name: "GetIpAddress4", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetNetmask4", name: "GetNetmask4", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetEnabled", name: "GetEnabled", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetDhcpServerSettings", name: "GetDhcpServerSettings", pkg: "", typ: $funcType([], [ptrType$74], false)}, {prop: "GetSettingsInUse", name: "GetSettingsInUse", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$72], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$72, $error], false)}];
	ptrType$74.methods = [{prop: "GetListenPort", name: "GetListenPort", pkg: "", typ: $funcType([], [$Uint32], false)}, {prop: "GetListenInterface", name: "GetListenInterface", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetLeaseFile", name: "GetLeaseFile", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetNotAuthoritative", name: "GetNotAuthoritative", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetDoNotBindInterface", name: "GetDoNotBindInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetCallbackScript", name: "GetCallbackScript", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetRanges", name: "GetRanges", pkg: "", typ: $funcType([], [sliceType$8], false)}, {prop: "GetOptions", name: "GetOptions", pkg: "", typ: $funcType([], [mapType], false)}, {prop: "GetStaticHosts", name: "GetStaticHosts", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$74], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$74, $error], false)}];
	ptrType$75.methods = [{prop: "GetRangeLower", name: "GetRangeLower", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetRangeUpper", name: "GetRangeUpper", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetLeaseTime", name: "GetLeaseTime", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$75], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$75, $error], false)}];
	ptrType$76.methods = [{prop: "GetMac", name: "GetMac", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetIp", name: "GetIp", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$76], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$76, $error], false)}];
	ptrType$77.methods = [{prop: "MarshalToWriter", name: "MarshalToWriter", pkg: "", typ: $funcType([jspb.Writer], [], false)}, {prop: "Marshal", name: "Marshal", pkg: "", typ: $funcType([], [sliceType$1], false)}, {prop: "UnmarshalFromReader", name: "UnmarshalFromReader", pkg: "", typ: $funcType([jspb.Reader], [ptrType$77], false)}, {prop: "Unmarshal", name: "Unmarshal", pkg: "", typ: $funcType([sliceType$1], [ptrType$77, $error], false)}];
	ptrType$79.methods = [{prop: "GetBluetoothControllerInformation", name: "GetBluetoothControllerInformation", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$4, $error], true)}, {prop: "DeployBluetoothControllerInformation", name: "DeployBluetoothControllerInformation", pkg: "", typ: $funcType([context.Context, ptrType$4, sliceType$10], [ptrType$4, $error], true)}, {prop: "GetBluetoothAgentSettings", name: "GetBluetoothAgentSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$5, $error], true)}, {prop: "DeployBluetoothAgentSettings", name: "DeployBluetoothAgentSettings", pkg: "", typ: $funcType([context.Context, ptrType$5, sliceType$10], [ptrType$5, $error], true)}, {prop: "SetBluetoothNetworkService", name: "SetBluetoothNetworkService", pkg: "", typ: $funcType([context.Context, ptrType$6, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployBluetoothSettings", name: "DeployBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$3, sliceType$10], [ptrType$3, $error], true)}, {prop: "StoreBluetoothSettings", name: "StoreBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$2, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetStoredBluetoothSettings", name: "GetStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$3, $error], true)}, {prop: "DeployStoredBluetoothSettings", name: "DeployStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$3, $error], true)}, {prop: "DeleteStoredBluetoothSettings", name: "DeleteStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedBluetoothSettings", name: "StoreDeployedBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredBluetoothSettings", name: "ListStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "GetDeployedGadgetSetting", name: "GetDeployedGadgetSetting", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$68, $error], true)}, {prop: "DeployGadgetSetting", name: "DeployGadgetSetting", pkg: "", typ: $funcType([context.Context, ptrType$68, sliceType$10], [ptrType$68, $error], true)}, {prop: "GetLEDSettings", name: "GetLEDSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$66, $error], true)}, {prop: "SetLEDSettings", name: "SetLEDSettings", pkg: "", typ: $funcType([context.Context, ptrType$66, sliceType$10], [ptrType$77, $error], true)}, {prop: "MountUMSFile", name: "MountUMSFile", pkg: "", typ: $funcType([context.Context, ptrType$70, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreUSBSettings", name: "StoreUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$67, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetStoredUSBSettings", name: "GetStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$68, $error], true)}, {prop: "DeployStoredUSBSettings", name: "DeployStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$68, $error], true)}, {prop: "DeleteStoredUSBSettings", name: "DeleteStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedUSBSettings", name: "StoreDeployedUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredUSBSettings", name: "ListStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListUmsImageCdrom", name: "ListUmsImageCdrom", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListUmsImageFlashdrive", name: "ListUmsImageFlashdrive", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "HIDRunScript", name: "HIDRunScript", pkg: "", typ: $funcType([context.Context, ptrType$61, sliceType$10], [ptrType$65, $error], true)}, {prop: "HIDRunScriptJob", name: "HIDRunScriptJob", pkg: "", typ: $funcType([context.Context, ptrType$61, sliceType$10], [ptrType$62, $error], true)}, {prop: "HIDGetScriptJobResult", name: "HIDGetScriptJobResult", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$65, $error], true)}, {prop: "HIDCancelScriptJob", name: "HIDCancelScriptJob", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$77, $error], true)}, {prop: "HIDGetRunningScriptJobs", name: "HIDGetRunningScriptJobs", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$63, $error], true)}, {prop: "HIDCancelAllScriptJobs", name: "HIDCancelAllScriptJobs", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}, {prop: "HIDGetRunningJobState", name: "HIDGetRunningJobState", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$64, $error], true)}, {prop: "FSWriteFile", name: "FSWriteFile", pkg: "", typ: $funcType([context.Context, ptrType$58, sliceType$10], [ptrType$77, $error], true)}, {prop: "FSReadFile", name: "FSReadFile", pkg: "", typ: $funcType([context.Context, ptrType$56, sliceType$10], [ptrType$57, $error], true)}, {prop: "FSGetFileInfo", name: "FSGetFileInfo", pkg: "", typ: $funcType([context.Context, ptrType$59, sliceType$10], [ptrType$60, $error], true)}, {prop: "FSCreateTempDirOrFile", name: "FSCreateTempDirOrFile", pkg: "", typ: $funcType([context.Context, ptrType$54, sliceType$10], [ptrType$55, $error], true)}, {prop: "EventListen", name: "EventListen", pkg: "", typ: $funcType([context.Context, ptrType$48, sliceType$10], [P4WNP1_EventListenClient, $error], true)}, {prop: "EchoRequest", name: "EchoRequest", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$46, $error], true)}, {prop: "DeployWiFiSettings", name: "DeployWiFiSettings", pkg: "", typ: $funcType([context.Context, ptrType$43, sliceType$10], [ptrType$45, $error], true)}, {prop: "GetWiFiState", name: "GetWiFiState", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$45, $error], true)}, {prop: "ListenWiFiStateChanges", name: "ListenWiFiStateChanges", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$45, $error], true)}, {prop: "StoreWifiSettings", name: "StoreWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$42, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetStoredWifiSettings", name: "GetStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$43, $error], true)}, {prop: "DeployStoredWifiSettings", name: "DeployStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$45, $error], true)}, {prop: "DeleteStoredWifiSettings", name: "DeleteStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedWifiSettings", name: "StoreDeployedWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredWifiSettings", name: "ListStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "DeployEthernetInterfaceSettings", name: "DeployEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$72, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetAllDeployedEthernetInterfaceSettings", name: "GetAllDeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$73, $error], true)}, {prop: "GetDeployedEthernetInterfaceSettings", name: "GetDeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$72, $error], true)}, {prop: "StoreEthernetInterfaceSettings", name: "StoreEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$71, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetStoredEthernetInterfaceSettings", name: "GetStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$72, $error], true)}, {prop: "DeployStoredEthernetInterfaceSettings", name: "DeployStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredEthernetInterfaceSettings", name: "DeleteStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredEthernetInterfaceSettings", name: "ListStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "GetDeployedTriggerActionSet", name: "GetDeployedTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetReplace", name: "DeployTriggerActionSetReplace", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetAdd", name: "DeployTriggerActionSetAdd", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetRemove", name: "DeployTriggerActionSetRemove", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetUpdate", name: "DeployTriggerActionSetUpdate", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "ListStoredTriggerActionSets", name: "ListStoredTriggerActionSets", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "StoreTriggerActionSet", name: "StoreTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployStoredTriggerActionSetReplace", name: "DeployStoredTriggerActionSetReplace", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployStoredTriggerActionSetAdd", name: "DeployStoredTriggerActionSetAdd", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeleteStoredTriggerActionSet", name: "DeleteStoredTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "WaitTriggerGroupReceive", name: "WaitTriggerGroupReceive", pkg: "", typ: $funcType([context.Context, ptrType$24, sliceType$10], [ptrType$77, $error], true)}, {prop: "FireActionGroupSend", name: "FireActionGroupSend", pkg: "", typ: $funcType([context.Context, ptrType$40, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployMasterTemplate", name: "DeployMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreMasterTemplate", name: "StoreMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$1, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetStoredMasterTemplate", name: "GetStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType, $error], true)}, {prop: "DeployStoredMasterTemplate", name: "DeployStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType, $error], true)}, {prop: "DeleteStoredMasterTemplate", name: "DeleteStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredMasterTemplate", name: "ListStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "GetStartupMasterTemplate", name: "GetStartupMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$46, $error], true)}, {prop: "SetStartupMasterTemplate", name: "SetStartupMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DBBackup", name: "DBBackup", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DBRestore", name: "DBRestore", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "ListStoredHIDScripts", name: "ListStoredHIDScripts", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredBashScripts", name: "ListStoredBashScripts", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredDBBackups", name: "ListStoredDBBackups", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "GetAvailableGpios", name: "GetAvailableGpios", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}, {prop: "Reboot", name: "Reboot", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}];
	ptrType$80.methods = [{prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$53, $error], false)}];
	MasterTemplate.init("", [{prop: "TemplateNameBluetooth", name: "TemplateNameBluetooth", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TemplateNameUsb", name: "TemplateNameUsb", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TemplateNameWifi", name: "TemplateNameWifi", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TemplateNameTriggerActions", name: "TemplateNameTriggerActions", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TemplateNamesNetwork", name: "TemplateNamesNetwork", embedded: false, exported: true, typ: sliceType, tag: ""}]);
	RequestMasterTemplateStorage.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Template", name: "Template", embedded: false, exported: true, typ: ptrType, tag: ""}]);
	BluetoothRequestSettingsStorage.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$3, tag: ""}]);
	BluetoothSettings.init("", [{prop: "Ci", name: "Ci", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "As", name: "As", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
	BluetoothAgentSettings.init("", [{prop: "Pin", name: "Pin", embedded: false, exported: true, typ: $String, tag: ""}]);
	BluetoothNetworkService.init("", [{prop: "RegisterOrUnregister", name: "RegisterOrUnregister", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ServerOrConnect", name: "ServerOrConnect", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: BluetoothNetworkServiceType, tag: ""}, {prop: "MacOrName", name: "MacOrName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "BridgeName", name: "BridgeName", embedded: false, exported: true, typ: $String, tag: ""}]);
	BluetoothControllerSettings.init("", [{prop: "Powered", name: "Powered", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Connectable", name: "Connectable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "FastConnectable", name: "FastConnectable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Discoverable", name: "Discoverable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Bondable", name: "Bondable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LinkLevelSecurity", name: "LinkLevelSecurity", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SecureSimplePairing", name: "SecureSimplePairing", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "BrEdr", name: "BrEdr", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "HighSpeed", name: "HighSpeed", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "LowEnergy", name: "LowEnergy", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Advertising", name: "Advertising", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "SecureConnections", name: "SecureConnections", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DebugKeys", name: "DebugKeys", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Privacy", name: "Privacy", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ControllerConfiguration", name: "ControllerConfiguration", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "StaticAddress", name: "StaticAddress", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	BluetoothControllerInformation.init("", [{prop: "Address", name: "Address", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "BluetoothVersion", name: "BluetoothVersion", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Manufacturer", name: "Manufacturer", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "SupportedSettings", name: "SupportedSettings", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "CurrentSettings", name: "CurrentSettings", embedded: false, exported: true, typ: ptrType$7, tag: ""}, {prop: "ClassOfDevice", name: "ClassOfDevice", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ShortName", name: "ShortName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "IsAvailable", name: "IsAvailable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ServiceNetworkServerNap", name: "ServiceNetworkServerNap", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ServiceNetworkServerPanu", name: "ServiceNetworkServerPanu", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ServiceNetworkServerGn", name: "ServiceNetworkServerGn", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	TriggerActionSet.init("", [{prop: "TriggerActions", name: "TriggerActions", embedded: false, exported: true, typ: sliceType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]);
	TriggerAction.init("", [{prop: "Id", name: "Id", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "OneShot", name: "OneShot", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "IsActive", name: "IsActive", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Immutable", name: "Immutable", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Trigger", name: "Trigger", embedded: false, exported: true, typ: isTriggerAction_Trigger, tag: ""}, {prop: "Action", name: "Action", embedded: false, exported: true, typ: isTriggerAction_Action, tag: ""}]);
	isTriggerAction_Trigger.init([{prop: "isTriggerAction_Trigger", name: "isTriggerAction_Trigger", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}]);
	isTriggerAction_Action.init([{prop: "isTriggerAction_Action", name: "isTriggerAction_Action", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}]);
	TriggerAction_ServiceStarted.init("", [{prop: "ServiceStarted", name: "ServiceStarted", embedded: false, exported: true, typ: ptrType$10, tag: ""}]);
	TriggerAction_UsbGadgetConnected.init("", [{prop: "UsbGadgetConnected", name: "UsbGadgetConnected", embedded: false, exported: true, typ: ptrType$12, tag: ""}]);
	TriggerAction_UsbGadgetDisconnected.init("", [{prop: "UsbGadgetDisconnected", name: "UsbGadgetDisconnected", embedded: false, exported: true, typ: ptrType$14, tag: ""}]);
	TriggerAction_WifiAPStarted.init("", [{prop: "WifiAPStarted", name: "WifiAPStarted", embedded: false, exported: true, typ: ptrType$16, tag: ""}]);
	TriggerAction_WifiConnectedAsSta.init("", [{prop: "WifiConnectedAsSta", name: "WifiConnectedAsSta", embedded: false, exported: true, typ: ptrType$18, tag: ""}]);
	TriggerAction_SshLogin.init("", [{prop: "SshLogin", name: "SshLogin", embedded: false, exported: true, typ: ptrType$20, tag: ""}]);
	TriggerAction_DhcpLeaseGranted.init("", [{prop: "DhcpLeaseGranted", name: "DhcpLeaseGranted", embedded: false, exported: true, typ: ptrType$22, tag: ""}]);
	TriggerAction_GroupReceive.init("", [{prop: "GroupReceive", name: "GroupReceive", embedded: false, exported: true, typ: ptrType$24, tag: ""}]);
	TriggerAction_GroupReceiveMulti.init("", [{prop: "GroupReceiveMulti", name: "GroupReceiveMulti", embedded: false, exported: true, typ: ptrType$26, tag: ""}]);
	TriggerAction_GpioIn.init("", [{prop: "GpioIn", name: "GpioIn", embedded: false, exported: true, typ: ptrType$28, tag: ""}]);
	TriggerAction_BashScript.init("", [{prop: "BashScript", name: "BashScript", embedded: false, exported: true, typ: ptrType$30, tag: ""}]);
	TriggerAction_HidScript.init("", [{prop: "HidScript", name: "HidScript", embedded: false, exported: true, typ: ptrType$32, tag: ""}]);
	TriggerAction_DeploySettingsTemplate.init("", [{prop: "DeploySettingsTemplate", name: "DeploySettingsTemplate", embedded: false, exported: true, typ: ptrType$34, tag: ""}]);
	TriggerAction_Log.init("", [{prop: "Log", name: "Log", embedded: false, exported: true, typ: ptrType$36, tag: ""}]);
	TriggerAction_GpioOut.init("", [{prop: "GpioOut", name: "GpioOut", embedded: false, exported: true, typ: ptrType$38, tag: ""}]);
	TriggerAction_GroupSend.init("", [{prop: "GroupSend", name: "GroupSend", embedded: false, exported: true, typ: ptrType$40, tag: ""}]);
	TriggerServiceStarted.init("", []);
	TriggerUSBGadgetConnected.init("", []);
	TriggerUSBGadgetDisconnected.init("", []);
	TriggerWifiAPStarted.init("", []);
	TriggerWifiConnectedAsSta.init("", []);
	TriggerSSHLogin.init("", [{prop: "LoginUser", name: "LoginUser", embedded: false, exported: true, typ: $String, tag: ""}]);
	TriggerDHCPLeaseGranted.init("", []);
	TriggerGroupReceive.init("", [{prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Int32, tag: ""}]);
	TriggerGroupReceiveMulti.init("", [{prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Values", name: "Values", embedded: false, exported: true, typ: sliceType$3, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: GroupReceiveMultiType, tag: ""}]);
	TriggerGPIOIn.init("", [{prop: "GpioName", name: "GpioName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PullUpDown", name: "PullUpDown", embedded: false, exported: true, typ: GPIOInPullUpDown, tag: ""}, {prop: "GpioInEdge", name: "GpioInEdge", embedded: false, exported: true, typ: GPIOInEdge, tag: ""}, {prop: "DebounceMillis", name: "DebounceMillis", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	ActionStartBashScript.init("", [{prop: "ScriptName", name: "ScriptName", embedded: false, exported: true, typ: $String, tag: ""}]);
	ActionStartHIDScript.init("", [{prop: "ScriptName", name: "ScriptName", embedded: false, exported: true, typ: $String, tag: ""}]);
	ActionDeploySettingsTemplate.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: ActionDeploySettingsTemplate_TemplateType, tag: ""}]);
	ActionLog.init("", []);
	ActionGPIOOut.init("", [{prop: "GpioName", name: "GpioName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GPIOOutValue, tag: ""}]);
	ActionGroupSend.init("", [{prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Int32, tag: ""}]);
	WifiRequestSettingsStorage.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$43, tag: ""}]);
	WiFiSettings.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Disabled", name: "Disabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Regulatory", name: "Regulatory", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "WorkingMode", name: "WorkingMode", embedded: false, exported: true, typ: WiFiWorkingMode, tag: ""}, {prop: "AuthMode", name: "AuthMode", embedded: false, exported: true, typ: WiFiAuthMode, tag: ""}, {prop: "Channel", name: "Channel", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Ap_BSS", name: "Ap_BSS", embedded: false, exported: true, typ: ptrType$44, tag: ""}, {prop: "Client_BSSList", name: "Client_BSSList", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "HideSsid", name: "HideSsid", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Nexmon", name: "Nexmon", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	WiFiState.init("", [{prop: "Mode", name: "Mode", embedded: false, exported: true, typ: WiFiStateMode, tag: ""}, {prop: "Channel", name: "Channel", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Ssid", name: "Ssid", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "CurrentSettings", name: "CurrentSettings", embedded: false, exported: true, typ: ptrType$43, tag: ""}]);
	WiFiBSSCfg.init("", [{prop: "SSID", name: "SSID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PSK", name: "PSK", embedded: false, exported: true, typ: $String, tag: ""}]);
	StringMessage.init("", [{prop: "Msg", name: "Msg", embedded: false, exported: true, typ: $String, tag: ""}]);
	StringMessageArray.init("", [{prop: "MsgArray", name: "MsgArray", embedded: false, exported: true, typ: sliceType, tag: ""}]);
	EventRequest.init("", [{prop: "ListenType", name: "ListenType", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	EventValue.init("", [{prop: "Val", name: "Val", embedded: false, exported: true, typ: isEventValue_Val, tag: ""}]);
	isEventValue_Val.init([{prop: "isEventValue_Val", name: "isEventValue_Val", pkg: "github.com/mame82/P4wnP1_aloa/proto/gopherjs", typ: $funcType([], [], false)}]);
	EventValue_Tstring.init("", [{prop: "Tstring", name: "Tstring", embedded: false, exported: true, typ: $String, tag: ""}]);
	EventValue_Tbool.init("", [{prop: "Tbool", name: "Tbool", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	EventValue_Tint64.init("", [{prop: "Tint64", name: "Tint64", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	Event.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Values", name: "Values", embedded: false, exported: true, typ: sliceType$5, tag: ""}]);
	TempDirOrFileRequest.init("", [{prop: "Dir", name: "Dir", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Prefix", name: "Prefix", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "OnlyFolder", name: "OnlyFolder", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	TempDirOrFileResponse.init("", [{prop: "ResultPath", name: "ResultPath", embedded: false, exported: true, typ: $String, tag: ""}]);
	ReadFileRequest.init("", [{prop: "Folder", name: "Folder", embedded: false, exported: true, typ: AccessibleFolder, tag: ""}, {prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int64, tag: ""}]);
	ReadFileResponse.init("", [{prop: "ReadCount", name: "ReadCount", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: sliceType$1, tag: ""}]);
	WriteFileRequest.init("", [{prop: "Folder", name: "Folder", embedded: false, exported: true, typ: AccessibleFolder, tag: ""}, {prop: "Filename", name: "Filename", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Append", name: "Append", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "MustNotExist", name: "MustNotExist", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: sliceType$1, tag: ""}]);
	FileInfoRequest.init("", [{prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}]);
	FileInfoResponse.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ModTime", name: "ModTime", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "IsDir", name: "IsDir", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	HIDScriptRequest.init("", [{prop: "ScriptPath", name: "ScriptPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "TimeoutSeconds", name: "TimeoutSeconds", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
	HIDScriptJob.init("", [{prop: "Id", name: "Id", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
	HIDScriptJobList.init("", [{prop: "Ids", name: "Ids", embedded: false, exported: true, typ: sliceType$6, tag: ""}]);
	HIDRunningJobStateResult.init("", [{prop: "Id", name: "Id", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "VmId", name: "VmId", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Source", name: "Source", embedded: false, exported: true, typ: $String, tag: ""}]);
	HIDScriptResult.init("", [{prop: "Job", name: "Job", embedded: false, exported: true, typ: ptrType$62, tag: ""}, {prop: "IsFinished", name: "IsFinished", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ResultJson", name: "ResultJson", embedded: false, exported: true, typ: $String, tag: ""}]);
	LEDSettings.init("", [{prop: "BlinkCount", name: "BlinkCount", embedded: false, exported: true, typ: $Uint32, tag: ""}]);
	USBRequestSettingsStorage.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$68, tag: ""}]);
	GadgetSettings.init("", [{prop: "Enabled", name: "Enabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Vid", name: "Vid", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Manufacturer", name: "Manufacturer", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Product", name: "Product", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Serial", name: "Serial", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Use_CDC_ECM", name: "Use_CDC_ECM", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_RNDIS", name: "Use_RNDIS", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_HID_KEYBOARD", name: "Use_HID_KEYBOARD", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_HID_MOUSE", name: "Use_HID_MOUSE", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_HID_RAW", name: "Use_HID_RAW", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_UMS", name: "Use_UMS", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Use_SERIAL", name: "Use_SERIAL", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "RndisSettings", name: "RndisSettings", embedded: false, exported: true, typ: ptrType$69, tag: ""}, {prop: "CdcEcmSettings", name: "CdcEcmSettings", embedded: false, exported: true, typ: ptrType$69, tag: ""}, {prop: "UmsSettings", name: "UmsSettings", embedded: false, exported: true, typ: ptrType$70, tag: ""}, {prop: "DevPathHidKeyboard", name: "DevPathHidKeyboard", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DevPathHidMouse", name: "DevPathHidMouse", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DevPathHidRaw", name: "DevPathHidRaw", embedded: false, exported: true, typ: $String, tag: ""}]);
	GadgetSettingsEthernet.init("", [{prop: "HostAddr", name: "HostAddr", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "DevAddr", name: "DevAddr", embedded: false, exported: true, typ: $String, tag: ""}]);
	GadgetSettingsUMS.init("", [{prop: "Cdrom", name: "Cdrom", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: ""}]);
	EthernetRequestSettingsStorage.init("", [{prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$72, tag: ""}]);
	DeployedEthernetInterfaceSettings.init("", [{prop: "List", name: "List", embedded: false, exported: true, typ: sliceType$7, tag: ""}]);
	EthernetInterfaceSettings.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: EthernetInterfaceSettings_Mode, tag: ""}, {prop: "IpAddress4", name: "IpAddress4", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Netmask4", name: "Netmask4", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Enabled", name: "Enabled", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DhcpServerSettings", name: "DhcpServerSettings", embedded: false, exported: true, typ: ptrType$74, tag: ""}, {prop: "SettingsInUse", name: "SettingsInUse", embedded: false, exported: true, typ: $Bool, tag: ""}]);
	DHCPServerSettings.init("", [{prop: "ListenPort", name: "ListenPort", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "ListenInterface", name: "ListenInterface", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LeaseFile", name: "LeaseFile", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "NotAuthoritative", name: "NotAuthoritative", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "DoNotBindInterface", name: "DoNotBindInterface", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "CallbackScript", name: "CallbackScript", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Ranges", name: "Ranges", embedded: false, exported: true, typ: sliceType$8, tag: ""}, {prop: "Options", name: "Options", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "StaticHosts", name: "StaticHosts", embedded: false, exported: true, typ: sliceType$9, tag: ""}]);
	DHCPServerRange.init("", [{prop: "RangeLower", name: "RangeLower", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "RangeUpper", name: "RangeUpper", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LeaseTime", name: "LeaseTime", embedded: false, exported: true, typ: $String, tag: ""}]);
	DHCPServerStaticHost.init("", [{prop: "Mac", name: "Mac", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Ip", name: "Ip", embedded: false, exported: true, typ: $String, tag: ""}]);
	Empty.init("", []);
	P4WNP1Client.init([{prop: "DBBackup", name: "DBBackup", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DBRestore", name: "DBRestore", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredBluetoothSettings", name: "DeleteStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredEthernetInterfaceSettings", name: "DeleteStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredMasterTemplate", name: "DeleteStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredTriggerActionSet", name: "DeleteStoredTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredUSBSettings", name: "DeleteStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeleteStoredWifiSettings", name: "DeleteStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployBluetoothAgentSettings", name: "DeployBluetoothAgentSettings", pkg: "", typ: $funcType([context.Context, ptrType$5, sliceType$10], [ptrType$5, $error], true)}, {prop: "DeployBluetoothControllerInformation", name: "DeployBluetoothControllerInformation", pkg: "", typ: $funcType([context.Context, ptrType$4, sliceType$10], [ptrType$4, $error], true)}, {prop: "DeployBluetoothSettings", name: "DeployBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$3, sliceType$10], [ptrType$3, $error], true)}, {prop: "DeployEthernetInterfaceSettings", name: "DeployEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$72, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployGadgetSetting", name: "DeployGadgetSetting", pkg: "", typ: $funcType([context.Context, ptrType$68, sliceType$10], [ptrType$68, $error], true)}, {prop: "DeployMasterTemplate", name: "DeployMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployStoredBluetoothSettings", name: "DeployStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$3, $error], true)}, {prop: "DeployStoredEthernetInterfaceSettings", name: "DeployStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "DeployStoredMasterTemplate", name: "DeployStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType, $error], true)}, {prop: "DeployStoredTriggerActionSetAdd", name: "DeployStoredTriggerActionSetAdd", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployStoredTriggerActionSetReplace", name: "DeployStoredTriggerActionSetReplace", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployStoredUSBSettings", name: "DeployStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$68, $error], true)}, {prop: "DeployStoredWifiSettings", name: "DeployStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$45, $error], true)}, {prop: "DeployTriggerActionSetAdd", name: "DeployTriggerActionSetAdd", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetRemove", name: "DeployTriggerActionSetRemove", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetReplace", name: "DeployTriggerActionSetReplace", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployTriggerActionSetUpdate", name: "DeployTriggerActionSetUpdate", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$9, $error], true)}, {prop: "DeployWiFiSettings", name: "DeployWiFiSettings", pkg: "", typ: $funcType([context.Context, ptrType$43, sliceType$10], [ptrType$45, $error], true)}, {prop: "EchoRequest", name: "EchoRequest", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$46, $error], true)}, {prop: "EventListen", name: "EventListen", pkg: "", typ: $funcType([context.Context, ptrType$48, sliceType$10], [P4WNP1_EventListenClient, $error], true)}, {prop: "FSCreateTempDirOrFile", name: "FSCreateTempDirOrFile", pkg: "", typ: $funcType([context.Context, ptrType$54, sliceType$10], [ptrType$55, $error], true)}, {prop: "FSGetFileInfo", name: "FSGetFileInfo", pkg: "", typ: $funcType([context.Context, ptrType$59, sliceType$10], [ptrType$60, $error], true)}, {prop: "FSReadFile", name: "FSReadFile", pkg: "", typ: $funcType([context.Context, ptrType$56, sliceType$10], [ptrType$57, $error], true)}, {prop: "FSWriteFile", name: "FSWriteFile", pkg: "", typ: $funcType([context.Context, ptrType$58, sliceType$10], [ptrType$77, $error], true)}, {prop: "FireActionGroupSend", name: "FireActionGroupSend", pkg: "", typ: $funcType([context.Context, ptrType$40, sliceType$10], [ptrType$77, $error], true)}, {prop: "GetAllDeployedEthernetInterfaceSettings", name: "GetAllDeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$73, $error], true)}, {prop: "GetAvailableGpios", name: "GetAvailableGpios", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "GetBluetoothAgentSettings", name: "GetBluetoothAgentSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$5, $error], true)}, {prop: "GetBluetoothControllerInformation", name: "GetBluetoothControllerInformation", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$4, $error], true)}, {prop: "GetDeployedEthernetInterfaceSettings", name: "GetDeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$72, $error], true)}, {prop: "GetDeployedGadgetSetting", name: "GetDeployedGadgetSetting", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$68, $error], true)}, {prop: "GetDeployedTriggerActionSet", name: "GetDeployedTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$9, $error], true)}, {prop: "GetLEDSettings", name: "GetLEDSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$66, $error], true)}, {prop: "GetStartupMasterTemplate", name: "GetStartupMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$46, $error], true)}, {prop: "GetStoredBluetoothSettings", name: "GetStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$3, $error], true)}, {prop: "GetStoredEthernetInterfaceSettings", name: "GetStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$72, $error], true)}, {prop: "GetStoredMasterTemplate", name: "GetStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType, $error], true)}, {prop: "GetStoredUSBSettings", name: "GetStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$68, $error], true)}, {prop: "GetStoredWifiSettings", name: "GetStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$43, $error], true)}, {prop: "GetWiFiState", name: "GetWiFiState", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$45, $error], true)}, {prop: "HIDCancelAllScriptJobs", name: "HIDCancelAllScriptJobs", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}, {prop: "HIDCancelScriptJob", name: "HIDCancelScriptJob", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$77, $error], true)}, {prop: "HIDGetRunningJobState", name: "HIDGetRunningJobState", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$64, $error], true)}, {prop: "HIDGetRunningScriptJobs", name: "HIDGetRunningScriptJobs", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$63, $error], true)}, {prop: "HIDGetScriptJobResult", name: "HIDGetScriptJobResult", pkg: "", typ: $funcType([context.Context, ptrType$62, sliceType$10], [ptrType$65, $error], true)}, {prop: "HIDRunScript", name: "HIDRunScript", pkg: "", typ: $funcType([context.Context, ptrType$61, sliceType$10], [ptrType$65, $error], true)}, {prop: "HIDRunScriptJob", name: "HIDRunScriptJob", pkg: "", typ: $funcType([context.Context, ptrType$61, sliceType$10], [ptrType$62, $error], true)}, {prop: "ListStoredBashScripts", name: "ListStoredBashScripts", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredBluetoothSettings", name: "ListStoredBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredDBBackups", name: "ListStoredDBBackups", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredEthernetInterfaceSettings", name: "ListStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredHIDScripts", name: "ListStoredHIDScripts", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredMasterTemplate", name: "ListStoredMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredTriggerActionSets", name: "ListStoredTriggerActionSets", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredUSBSettings", name: "ListStoredUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListStoredWifiSettings", name: "ListStoredWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListUmsImageCdrom", name: "ListUmsImageCdrom", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListUmsImageFlashdrive", name: "ListUmsImageFlashdrive", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$47, $error], true)}, {prop: "ListenWiFiStateChanges", name: "ListenWiFiStateChanges", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$45, $error], true)}, {prop: "MountUMSFile", name: "MountUMSFile", pkg: "", typ: $funcType([context.Context, ptrType$70, sliceType$10], [ptrType$77, $error], true)}, {prop: "Reboot", name: "Reboot", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}, {prop: "SetBluetoothNetworkService", name: "SetBluetoothNetworkService", pkg: "", typ: $funcType([context.Context, ptrType$6, sliceType$10], [ptrType$77, $error], true)}, {prop: "SetLEDSettings", name: "SetLEDSettings", pkg: "", typ: $funcType([context.Context, ptrType$66, sliceType$10], [ptrType$77, $error], true)}, {prop: "SetStartupMasterTemplate", name: "SetStartupMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([context.Context, ptrType$77, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreBluetoothSettings", name: "StoreBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$2, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedBluetoothSettings", name: "StoreDeployedBluetoothSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedUSBSettings", name: "StoreDeployedUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreDeployedWifiSettings", name: "StoreDeployedWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$46, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreEthernetInterfaceSettings", name: "StoreEthernetInterfaceSettings", pkg: "", typ: $funcType([context.Context, ptrType$71, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreMasterTemplate", name: "StoreMasterTemplate", pkg: "", typ: $funcType([context.Context, ptrType$1, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreTriggerActionSet", name: "StoreTriggerActionSet", pkg: "", typ: $funcType([context.Context, ptrType$9, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreUSBSettings", name: "StoreUSBSettings", pkg: "", typ: $funcType([context.Context, ptrType$67, sliceType$10], [ptrType$77, $error], true)}, {prop: "StoreWifiSettings", name: "StoreWifiSettings", pkg: "", typ: $funcType([context.Context, ptrType$42, sliceType$10], [ptrType$77, $error], true)}, {prop: "WaitTriggerGroupReceive", name: "WaitTriggerGroupReceive", pkg: "", typ: $funcType([context.Context, ptrType$24, sliceType$10], [ptrType$77, $error], true)}]);
	p4WNP1Client.init("github.com/mame82/P4wnP1_aloa/proto/gopherjs", [{prop: "client", name: "client", embedded: false, exported: false, typ: ptrType$78, tag: ""}]);
	P4WNP1_EventListenClient.init([{prop: "CloseSend", name: "CloseSend", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Context", name: "Context", pkg: "", typ: $funcType([], [context.Context], false)}, {prop: "Header", name: "Header", pkg: "", typ: $funcType([], [$packages["google.golang.org/grpc/metadata"].MD], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [ptrType$53, $error], false)}, {prop: "RecvMsg", name: "RecvMsg", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}, {prop: "SendMsg", name: "SendMsg", pkg: "", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Trailer", name: "Trailer", pkg: "", typ: $funcType([], [$packages["google.golang.org/grpc/metadata"].MD], false)}]);
	p4WNP1EventListenClient.init("", [{prop: "ClientStream", name: "ClientStream", embedded: true, exported: true, typ: grpcweb.ClientStream, tag: ""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = grpcweb.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = jspb.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.BluetoothNetworkServiceType_name = $makeMap($Int.keyFor, [{ k: 0, v: "NAP" }, { k: 1, v: "PANU" }, { k: 2, v: "GN" }]);
		$pkg.GroupReceiveMultiType_name = $makeMap($Int.keyFor, [{ k: 0, v: "SEQUENCE" }, { k: 1, v: "AND" }, { k: 2, v: "OR" }, { k: 3, v: "EXACT_SEQUENCE" }]);
		$pkg.GPIOInPullUpDown_name = $makeMap($Int.keyFor, [{ k: 0, v: "UP" }, { k: 1, v: "DOWN" }, { k: 2, v: "OFF" }]);
		$pkg.GPIOInEdge_name = $makeMap($Int.keyFor, [{ k: 0, v: "RISING" }, { k: 1, v: "FALLING" }, { k: 2, v: "BOTH" }]);
		$pkg.GPIOOutValue_name = $makeMap($Int.keyFor, [{ k: 0, v: "LOW" }, { k: 1, v: "HIGH" }, { k: 2, v: "TOGGLE" }]);
		$pkg.WiFiWorkingMode_name = $makeMap($Int.keyFor, [{ k: 0, v: "UNKNOWN" }, { k: 1, v: "AP" }, { k: 2, v: "STA" }, { k: 3, v: "STA_FAILOVER_AP" }]);
		$pkg.WiFiStateMode_name = $makeMap($Int.keyFor, [{ k: 0, v: "STA_NOT_CONNECTED" }, { k: 1, v: "AP_UP" }, { k: 2, v: "STA_CONNECTED" }]);
		$pkg.WiFiAuthMode_name = $makeMap($Int.keyFor, [{ k: 0, v: "WPA2_PSK" }, { k: 1, v: "OPEN" }]);
		$pkg.AccessibleFolder_name = $makeMap($Int.keyFor, [{ k: 0, v: "TMP" }, { k: 1, v: "BASH_SCRIPTS" }, { k: 2, v: "HID_SCRIPTS" }]);
		$pkg.ActionDeploySettingsTemplate_TemplateType_name = $makeMap($Int.keyFor, [{ k: 0, v: "FULL_SETTINGS" }, { k: 1, v: "NETWORK" }, { k: 2, v: "WIFI" }, { k: 3, v: "USB" }, { k: 4, v: "BLUETOOTH" }, { k: 5, v: "TRIGGER_ACTIONS" }]);
		$pkg.EthernetInterfaceSettings_Mode_name = $makeMap($Int.keyFor, [{ k: 0, v: "MANUAL" }, { k: 1, v: "DHCP_CLIENT" }, { k: 2, v: "DHCP_SERVER" }, { k: 3, v: "UNMANAGED" }]);
		$pkg.EthernetInterfaceSettings_Mode_value = $makeMap($String.keyFor, [{ k: "MANUAL", v: 0 }, { k: "DHCP_CLIENT", v: 1 }, { k: "DHCP_SERVER", v: 2 }, { k: "UNMANAGED", v: 3 }]);
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/mame82/hvue"] = (function() {
	var $pkg = {}, $init, js, reflect, VM, Config, ComponentOption, PropOption, PropConfig, pOptionType, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, sliceType$2, ptrType$3, sliceType$3, ptrType$4, sliceType$4, o, jsOType, vmType, dataObjects, nextDataID, _r, _r$1, NewVM, El, DataFunc, storeDataID, Method, MethodsOf, makeMethod, NewObject, NewArray, Set, Delete, jsCallWithVM, BeforeMount, Mounted, Destroyed, makeLifecycleMethod, Computed, ComputedWithGetSet, NewComponent, Props, PropObj, Template, Types, Default;
	js = $packages["github.com/gopherjs/gopherjs/js"];
	reflect = $packages["reflect"];
	VM = $pkg.VM = $newType(0, $kindStruct, "hvue.VM", true, "github.com/mame82/hvue", true, function(Object_, Data_, Props_, El_, Options_, Parent_, Root_, Children_, Slots_, ScopedSlots_, IsServer_, Store_, Setters_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Data = null;
			this.Props = null;
			this.El = null;
			this.Options = null;
			this.Parent = null;
			this.Root = null;
			this.Children = sliceType.nil;
			this.Slots = null;
			this.ScopedSlots = null;
			this.IsServer = false;
			this.Store = null;
			this.Setters = null;
			return;
		}
		this.Object = Object_;
		this.Data = Data_;
		this.Props = Props_;
		this.El = El_;
		this.Options = Options_;
		this.Parent = Parent_;
		this.Root = Root_;
		this.Children = Children_;
		this.Slots = Slots_;
		this.ScopedSlots = ScopedSlots_;
		this.IsServer = IsServer_;
		this.Store = Store_;
		this.Setters = Setters_;
	});
	Config = $pkg.Config = $newType(0, $kindStruct, "hvue.Config", true, "github.com/mame82/hvue", true, function(Object_, El_, Data_, Methods_, Props_, Template_, Computed_, Components_, Filters_, Store_, dataValue_, Setters_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.El = "";
			this.Data = null;
			this.Methods = null;
			this.Props = null;
			this.Template = "";
			this.Computed = null;
			this.Components = null;
			this.Filters = null;
			this.Store = null;
			this.dataValue = new reflect.Value.ptr(ptrType$1.nil, 0, 0);
			this.Setters = null;
			return;
		}
		this.Object = Object_;
		this.El = El_;
		this.Data = Data_;
		this.Methods = Methods_;
		this.Props = Props_;
		this.Template = Template_;
		this.Computed = Computed_;
		this.Components = Components_;
		this.Filters = Filters_;
		this.Store = Store_;
		this.dataValue = dataValue_;
		this.Setters = Setters_;
	});
	ComponentOption = $pkg.ComponentOption = $newType(4, $kindFunc, "hvue.ComponentOption", true, "github.com/mame82/hvue", true, null);
	PropOption = $pkg.PropOption = $newType(4, $kindFunc, "hvue.PropOption", true, "github.com/mame82/hvue", true, null);
	PropConfig = $pkg.PropConfig = $newType(0, $kindStruct, "hvue.PropConfig", true, "github.com/mame82/hvue", true, function(Object_, typ_, required_, def_, validator_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.typ = null;
			this.required = false;
			this.def = $ifaceNil;
			this.validator = null;
			return;
		}
		this.Object = Object_;
		this.typ = typ_;
		this.required = required_;
		this.def = def_;
		this.validator = validator_;
	});
	pOptionType = $pkg.pOptionType = $newType(4, $kindInt, "hvue.pOptionType", true, "github.com/mame82/hvue", false, null);
	ptrType = $ptrType(js.Object);
	sliceType = $sliceType(ptrType);
	ptrType$1 = $ptrType(reflect.rtype);
	ptrType$2 = $ptrType(Config);
	sliceType$1 = $sliceType(reflect.Value);
	sliceType$2 = $sliceType($emptyInterface);
	ptrType$3 = $ptrType(VM);
	sliceType$3 = $sliceType(ComponentOption);
	ptrType$4 = $ptrType(PropConfig);
	sliceType$4 = $sliceType(PropOption);
	NewVM = function(opts) {
		var {_r$2, _r$3, c, opts, vm, vmField, $s, $r, $c} = $restore(this, {opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = new Config.ptr(NewObject(), "", null, null, null, "", null, null, null, null, new reflect.Value.ptr(ptrType$1.nil, 0, 0), null);
		c.Object.hvue_setters = NewObject();
		$r = c.Option(opts); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		vm = new VM.ptr(new ($global.Vue)($externalize(c, ptrType$2)), null, null, null, null, null, null, sliceType.nil, null, null, false, null, null);
		/* */ if ($clone(c.dataValue, reflect.Value).IsValid()) { $s = 2; continue; }
		/* */ $s = 3; continue;
		/* if ($clone(c.dataValue, reflect.Value).IsValid()) { */ case 2:
			_r$2 = $clone(c.dataValue, reflect.Value).FieldByName("VM"); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			vmField = _r$2;
			/* */ if ($clone(vmField, reflect.Value).IsValid()) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if ($clone(vmField, reflect.Value).IsValid()) { */ case 5:
				_r$3 = reflect.ValueOf(vm); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				$r = $clone(vmField, reflect.Value).Set($clone(_r$3, reflect.Value)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 6:
		/* } */ case 3:
		vm.Object.hvue_setters = c.Object.hvue_setters;
		$s = -1; return vm;
		/* */ } return; } var $f = {$blk: NewVM, $c: true, $r, _r$2, _r$3, c, opts, vm, vmField, $s};return $f;
	};
	$pkg.NewVM = NewVM;
	El = function(selector) {
		var selector;
		return (function(c) {
			var c;
			c.Object.el = $externalize(selector, $String);
		});
	};
	$pkg.El = El;
	DataFunc = function(f) {
		var f;
		return (function(c) {
			var c;
			if (!(c.Object.data === undefined)) {
				$panic(new $String("Cannot use hvue.DataFunc together with any other Data* options"));
			}
			c.Object.data = jsCallWithVM((function $b(vm) {
				var {_r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, i, value, vm, $s, $r, $c} = $restore(this, {vm});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				_r$2 = f(vm); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				value = _r$2;
				_r$3 = reflect.ValueOf(value); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				_r$4 = $clone(_r$3, reflect.Value).Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_r$5 = $clone(_r$4, reflect.Value).Field(0); /* */ $s = 4; case 4: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				i = _r$5;
				/* while (true) { */ case 5:
					/* if (!(!($interfaceIsEqual($clone(i, reflect.Value).Type(), jsOType)))) { break; } */ if(!(!($interfaceIsEqual($clone(i, reflect.Value).Type(), jsOType)))) { $s = 6; continue; }
					_r$6 = $clone(i, reflect.Value).Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
					_r$7 = $clone(_r$6, reflect.Value).Field(0); /* */ $s = 8; case 8: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
					i = _r$7;
				$s = 5; continue;
				case 6:
				_r$8 = $clone(i, reflect.Value).Interface(); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				$r = storeDataID($assertType(_r$8, ptrType), value, c); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return value;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, i, value, vm, $s};return $f;
			}));
		});
	};
	$pkg.DataFunc = DataFunc;
	storeDataID = function(o$1, value, c) {
		var {_key, c, curID, o$1, value, $s, $r, $c} = $restore(this, {o$1, value, c});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		curID = [curID];
		curID[0] = nextDataID;
		nextDataID = nextDataID + (1) >> 0;
		o$1.hvue_dataID = curID[0];
		_key = curID[0]; (dataObjects || $throwRuntimeError("assignment to entry in nil map")).set($Int.keyFor(_key), { k: _key, v: value });
		$r = Destroyed((function(curID) { return function(param) {
			var param;
			$mapDelete(dataObjects, $Int.keyFor(curID[0]));
		}; })(curID))(c); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: storeDataID, $c: true, $r, _key, c, curID, o$1, value, $s};return $f;
	};
	Method = function(name, f) {
		var f, name;
		return (function $b(c) {
			var {_r$2, c, m, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			if (c.Object.methods === undefined) {
				c.Object.methods = NewObject();
			}
			_r$2 = reflect.ValueOf(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			m = _r$2;
			if (!(($clone(m, reflect.Value).Kind() === 19))) {
				$panic(new $String("Method " + name + " is not a func"));
			}
			c.Object.methods[$externalize(name, $String)] = makeMethod(name, false, $clone(m, reflect.Value).Type(), $clone(m, reflect.Value));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, c, m, $s};return $f;
		});
	};
	$pkg.Method = Method;
	MethodsOf = function(t) {
		var t;
		return (function $b(c) {
			var {_r$2, _r$3, _r$4, _r$5, _r$6, _v, c, i, m, typ, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			if (c.Object.methods === undefined) {
				c.Object.methods = NewObject();
			}
			typ = reflect.TypeOf(t);
			_r$2 = typ.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			if (!((_r$2 === 22))) { _v = true; $s = 3; continue s; }
			_r$3 = typ.Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_r$4 = _r$3.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
			_v = !((_r$4 === 25)); case 3:
			/* */ if (_v) { $s = 1; continue; }
			/* */ $s = 2; continue;
			/* if (_v) { */ case 1:
				$panic(new $String("Item passed to MethodsOf must be a pointer to a struct"));
			/* } */ case 2:
			i = 0;
			/* while (true) { */ case 7:
				_r$5 = typ.NumMethod(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				/* if (!(i < _r$5)) { break; } */ if(!(i < _r$5)) { $s = 8; continue; }
				_r$6 = typ.Method(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				m = $clone(_r$6, reflect.Method);
				c.Object.methods[$externalize(m.Name, $String)] = makeMethod(m.Name, true, m.Type, $clone(m.Func, reflect.Value));
				i = i + (1) >> 0;
			$s = 7; continue;
			case 8:
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, _r$4, _r$5, _r$6, _v, c, i, m, typ, $s};return $f;
		});
	};
	$pkg.MethodsOf = MethodsOf;
	makeMethod = function(name, isMethod, mType, m) {
		var isMethod, m, mType, name;
		return js.MakeFunc((function $b(this$1, jsArgs) {
			var {$24r, _1, _2, _entry, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, dataID, goArg, goArgs, inArg, inPtrType, inType, jsArg, jsArgs, numIn, ok, receiver, result, this$1, vmDone, $s, $r, $c} = $restore(this, {this$1, jsArgs});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$2 = mType.NumIn(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			numIn = _r$2;
			goArgs = $makeSlice(sliceType$1, numIn);
			goArg = 0;
			/* */ if (isMethod) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (isMethod) { */ case 2:
				dataID = $parseInt(this$1.$data.hvue_dataID) >> 0;
				if (dataID === 0) {
					$panic(new $String("Unknown dataID for method " + name));
				}
				_tuple = (_entry = $mapIndex(dataObjects,$Int.keyFor(dataID)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]);
				receiver = _tuple[0];
				ok = _tuple[1];
				if (!ok) {
					$panic(new $String("Unknown dataID for method " + name));
				}
				_r$3 = reflect.ValueOf(receiver); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				(0 >= goArgs.$length ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + 0] = _r$3);
				goArg = 1;
			/* } */ case 3:
			vmDone = false;
			jsArg = 0;
			/* while (true) { */ case 5:
				/* if (!(jsArg < jsArgs.$length || goArg < numIn)) { break; } */ if(!(jsArg < jsArgs.$length || goArg < numIn)) { $s = 6; continue; }
				if (goArg >= numIn) {
					/* break; */ $s = 6; continue;
				}
					_r$4 = mType.In(goArg); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					_r$5 = _r$4.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
					_1 = _r$5;
					/* */ if (_1 === (22)) { $s = 10; continue; }
					/* */ if (_1 === (24)) { $s = 11; continue; }
					/* */ if (_1 === (1)) { $s = 12; continue; }
					/* */ if (_1 === (14)) { $s = 13; continue; }
					/* */ if ((_1 === (5)) || (_1 === (2))) { $s = 14; continue; }
					/* */ if (_1 === (6)) { $s = 15; continue; }
					/* */ $s = 16; continue;
					/* if (_1 === (22)) { */ case 10:
						_r$6 = mType.In(goArg); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
						inPtrType = _r$6;
							_2 = inPtrType;
							/* */ if ($interfaceIsEqual(_2, (jsOType))) { $s = 20; continue; }
							/* */ if ($interfaceIsEqual(_2, (vmType))) { $s = 21; continue; }
							/* */ $s = 22; continue;
							/* if ($interfaceIsEqual(_2, (jsOType))) { */ case 20:
								_r$7 = reflect.ValueOf(new $jsObjectPtr(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg]))); /* */ $s = 24; case 24: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
								((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$7);
								$s = 23; continue;
							/* } else if ($interfaceIsEqual(_2, (vmType))) { */ case 21:
								if (vmDone) {
									$panic(new $String("Only a single *hvue.VM arg expected per method: " + name));
								}
								_r$8 = reflect.ValueOf(new VM.ptr(this$1, null, null, null, null, null, null, sliceType.nil, null, null, false, null, null)); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
								((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$8);
								jsArg = jsArg - (1) >> 0;
								vmDone = true;
								$s = 23; continue;
							/* } else { */ case 22:
								_r$9 = inPtrType.Elem(); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
								inType = _r$9;
								inArg = reflect.New(inType);
								_r$10 = $clone(inArg, reflect.Value).Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
								_r$11 = $clone(_r$10, reflect.Value).Field(0); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
								_r$12 = reflect.ValueOf(new $jsObjectPtr(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg]))); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
								$r = $clone(_r$11, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
								((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = inArg);
							/* } */ case 23:
						case 19:
						$s = 17; continue;
					/* } else if (_1 === (24)) { */ case 11:
						_r$13 = reflect.ValueOf(new $String($internalize(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg]), $String))); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
						((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$13);
						$s = 17; continue;
					/* } else if (_1 === (1)) { */ case 12:
						_r$14 = reflect.ValueOf(new $Bool(!!(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg])))); /* */ $s = 32; case 32: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
						((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$14);
						$s = 17; continue;
					/* } else if (_1 === (14)) { */ case 13:
						_r$15 = reflect.ValueOf(new $Float64($parseFloat(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg])))); /* */ $s = 33; case 33: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
						((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$15);
						$s = 17; continue;
					/* } else if ((_1 === (5)) || (_1 === (2))) { */ case 14:
						_r$16 = reflect.ValueOf(new $Int(($parseInt(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg])) >> 0))); /* */ $s = 34; case 34: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
						((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$16);
						$s = 17; continue;
					/* } else if (_1 === (6)) { */ case 15:
						_r$17 = reflect.ValueOf($internalize(((jsArg < 0 || jsArg >= jsArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsArgs.$array[jsArgs.$offset + jsArg]), $Int64)); /* */ $s = 35; case 35: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
						((goArg < 0 || goArg >= goArgs.$length) ? ($throwRuntimeError("index out of range"), undefined) : goArgs.$array[goArgs.$offset + goArg] = _r$17);
						$s = 17; continue;
					/* } else { */ case 16:
						_r$18 = mType.In(goArg); /* */ $s = 36; case 36: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
						_r$19 = _r$18.Kind(); /* */ $s = 37; case 37: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
						_r$20 = new reflect.Kind(_r$19).String(); /* */ $s = 38; case 38: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
						$panic(new $String("Unknown type in arglist for " + name + ": " + _r$20));
					/* } */ case 17:
				case 7:
				_tmp = goArg + 1 >> 0;
				_tmp$1 = jsArg + 1 >> 0;
				goArg = _tmp;
				jsArg = _tmp$1;
			$s = 5; continue;
			case 6:
			_r$21 = $clone(m, reflect.Value).Call(goArgs); /* */ $s = 39; case 39: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
			result = _r$21;
			/* */ if (result.$length >= 1) { $s = 40; continue; }
			/* */ $s = 41; continue;
			/* if (result.$length >= 1) { */ case 40:
				_r$22 = $clone((0 >= result.$length ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + 0]), reflect.Value).Interface(); /* */ $s = 42; case 42: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
				$24r = _r$22;
				$s = 43; case 43: return $24r;
			/* } */ case 41:
			$s = -1; return $ifaceNil;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _1, _2, _entry, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, dataID, goArg, goArgs, inArg, inPtrType, inType, jsArg, jsArgs, numIn, ok, receiver, result, this$1, vmDone, $s};return $f;
		}));
	};
	VM.ptr.prototype.Emit = function(event, args) {
		var args, event, obj, vm;
		vm = this;
		args = $appendSlice(new sliceType$2([new $String(event)]), args);
		(obj = vm.Object, obj.$emit.apply(obj, $externalize(args, sliceType$2)));
	};
	VM.prototype.Emit = function(event, args) { return this.$val.Emit(event, args); };
	VM.ptr.prototype.Refs = function(name) {
		var name, vm;
		vm = this;
		return vm.Object.$refs[$externalize(name, $String)];
	};
	VM.prototype.Refs = function(name) { return this.$val.Refs(name); };
	VM.ptr.prototype.GetData = function() {
		var _entry, _tuple, dataID, dataObj, ok, vm;
		vm = this;
		dataID = $parseInt(vm.Object.$data.hvue_dataID) >> 0;
		if (dataID === 0) {
			$panic(new $String("Unknown dataID in GetData"));
		}
		_tuple = (_entry = $mapIndex(dataObjects,$Int.keyFor(dataID)), _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]);
		dataObj = _tuple[0];
		ok = _tuple[1];
		if (!ok) {
			$panic(new $String("Unknown dataID in GetData"));
		}
		return dataObj;
	};
	VM.prototype.GetData = function() { return this.$val.GetData(); };
	VM.ptr.prototype.Set = function(key, value) {
		var key, value, vm;
		vm = this;
		if (vm.Object.$data[$externalize(key, $String)] === undefined && vm.Object.hvue_setters[$externalize(key, $String)] === undefined) {
			$panic(new $String("Unknown data slot set: " + key));
		}
		vm.Object[$externalize(key, $String)] = $externalize(value, $emptyInterface);
	};
	VM.prototype.Set = function(key, value) { return this.$val.Set(key, value); };
	NewObject = function() {
		return new ($global.Object)();
	};
	$pkg.NewObject = NewObject;
	NewArray = function() {
		return new ($global.Array)();
	};
	$pkg.NewArray = NewArray;
	Set = function(o$1, key, value) {
		var key, o$1, value;
		$global.Vue.set($externalize(o$1, $emptyInterface), $externalize(key, $emptyInterface), $externalize(value, $emptyInterface));
		return value;
	};
	$pkg.Set = Set;
	Delete = function(o$1, key) {
		var key, o$1;
		$global.Vue.delete($externalize(o$1, $emptyInterface), $externalize(key, $emptyInterface));
		return;
	};
	$pkg.Delete = Delete;
	jsCallWithVM = function(f) {
		var f;
		return js.MakeFunc((function $b(this$1, args) {
			var {$24r, _r$2, args, this$1, vm, $s, $r, $c} = $restore(this, {this$1, args});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			vm = new VM.ptr(this$1, null, null, null, null, null, null, sliceType.nil, null, null, false, null, null);
			_r$2 = f(vm); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			$24r = _r$2;
			$s = 2; case 2: return $24r;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _r$2, args, this$1, vm, $s};return $f;
		}));
	};
	Config.ptr.prototype.Option = function(opts) {
		var {_i, _ref, c, opt, opts, $s, $r, $c} = $restore(this, {opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_ref = opts;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = opt(c); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: Config.ptr.prototype.Option, $c: true, $r, _i, _ref, c, opt, opts, $s};return $f;
	};
	Config.prototype.Option = function(opts) { return this.$val.Option(opts); };
	PropConfig.ptr.prototype.Option = function(opts) {
		var {_i, _ref, opt, opts, p, $s, $r, $c} = $restore(this, {opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		p = this;
		_ref = opts;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = opt(p); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: PropConfig.ptr.prototype.Option, $c: true, $r, _i, _ref, opt, opts, p, $s};return $f;
	};
	PropConfig.prototype.Option = function(opts) { return this.$val.Option(opts); };
	BeforeMount = function(f) {
		var f;
		return makeLifecycleMethod("beforeMount", f);
	};
	$pkg.BeforeMount = BeforeMount;
	Mounted = function(f) {
		var f;
		return makeLifecycleMethod("mounted", f);
	};
	$pkg.Mounted = Mounted;
	Destroyed = function(f) {
		var f;
		return makeLifecycleMethod("destroyed", f);
	};
	$pkg.Destroyed = Destroyed;
	makeLifecycleMethod = function(name, f) {
		var f, name;
		return (function(c) {
			var c;
			c.Object[$externalize(name, $String)] = jsCallWithVM((function $b(vm) {
				var {vm, $s, $r, $c} = $restore(this, {vm});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				$r = f(vm); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return $ifaceNil;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, vm, $s};return $f;
			}));
		});
	};
	Computed = function(name, f) {
		var f, name;
		return (function(c) {
			var c;
			if (c.Object.computed === undefined) {
				c.Object.computed = NewObject();
			}
			c.Object.computed[$externalize(name, $String)] = jsCallWithVM(f);
		});
	};
	$pkg.Computed = Computed;
	ComputedWithGetSet = function(name, get, set) {
		var get, name, set;
		return (function(c) {
			var c;
			if (c.Object.computed === undefined) {
				c.Object.computed = NewObject();
			}
			c.Object.computed[$externalize(name, $String)] = $externalize($makeMap($String.keyFor, [{ k: "get", v: new $jsObjectPtr(jsCallWithVM(get)) }, { k: "set", v: new $jsObjectPtr(js.MakeFunc((function $b(this$1, args) {
				var {args, this$1, vm, $s, $r, $c} = $restore(this, {this$1, args});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				vm = new VM.ptr(this$1, null, null, null, null, null, null, sliceType.nil, null, null, false, null, null);
				$r = set(vm, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return $ifaceNil;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, vm, $s};return $f;
			}))) }]), js.M);
			c.Object.hvue_setters[$externalize(name, $String)] = $externalize(true, $Bool);
		});
	};
	$pkg.ComputedWithGetSet = ComputedWithGetSet;
	NewComponent = function(name, opts) {
		var {_r$2, _r$3, c, name, opts, $s, $r, $c} = $restore(this, {name, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$2 = o(); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		c = new Config.ptr(_r$2, "", null, null, null, "", null, null, null, null, new reflect.Value.ptr(ptrType$1.nil, 0, 0), null);
		_r$3 = o(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		c.Object.hvue_setters = _r$3;
		$r = c.Option(opts); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		if (c.Object.data === undefined) {
			c.Object.data = jsCallWithVM((function $b(vm) {
				var {_r$4, dataID, obj, vm, $s, $r, $c} = $restore(this, {vm});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				_r$4 = o(); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				obj = _r$4;
				dataID = vm.Object.$parent.$data.hvue_dataID;
				if (!(dataID === undefined)) {
					obj.hvue_dataID = dataID;
				}
				$s = -1; return new $jsObjectPtr(obj);
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, dataID, obj, vm, $s};return $f;
			}));
		}
		$global.Vue.component($externalize(name, $String), c.Object);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: NewComponent, $c: true, $r, _r$2, _r$3, c, name, opts, $s};return $f;
	};
	$pkg.NewComponent = NewComponent;
	Props = function(props) {
		var props;
		return (function(c) {
			var _i, _ref, c, i, prop;
			if (c.Object.props === undefined) {
				c.Object.props = NewArray();
			}
			_ref = props;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				i = _i;
				prop = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				c.Object.props[i] = $externalize(prop, $String);
				_i++;
			}
		});
	};
	$pkg.Props = Props;
	PropObj = function(name, opts) {
		var name, opts;
		return (function $b(c) {
			var {_r$2, _r$3, c, pO, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			/* */ if (c.Object.props === undefined) { $s = 1; continue; }
			/* */ $s = 2; continue;
			/* if (c.Object.props === undefined) { */ case 1:
				_r$2 = o(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				c.Object.props = _r$2;
			/* } */ case 2:
			_r$3 = o(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			pO = new PropConfig.ptr(_r$3, null, false, $ifaceNil, null);
			$r = pO.Option(opts); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			c.Object.props[$externalize(name, $String)] = pO.Object;
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, c, pO, $s};return $f;
		});
	};
	$pkg.PropObj = PropObj;
	Template = function(template) {
		var template;
		return (function(c) {
			var c;
			c.Object.template = $externalize(template, $String);
		});
	};
	$pkg.Template = Template;
	Types = function(types) {
		var types;
		return (function(p) {
			var _1, _i, _ref, arr, newVal, p, t;
			arr = new ($global.Array)();
			_ref = types;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				newVal = null;
				_1 = t;
				if (_1 === (0)) {
					newVal = $global.String;
				} else if (_1 === (1)) {
					newVal = $global.Number;
				} else if (_1 === (2)) {
					newVal = $global.Boolean;
				} else if (_1 === (3)) {
					newVal = $global.Function;
				} else if (_1 === (4)) {
					newVal = $global.Object;
				} else if (_1 === (5)) {
					newVal = $global.Array;
				}
				arr.push(newVal);
				_i++;
			}
			p.Object.type = arr;
		});
	};
	$pkg.Types = Types;
	Default = function(def) {
		var def;
		return (function(p) {
			var p;
			p.Object.default = $externalize(def, $emptyInterface);
		});
	};
	$pkg.Default = Default;
	ptrType$3.methods = [{prop: "Emit", name: "Emit", pkg: "", typ: $funcType([$String, sliceType$2], [], true)}, {prop: "Refs", name: "Refs", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "GetData", name: "GetData", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}];
	ptrType$2.methods = [{prop: "Option", name: "Option", pkg: "", typ: $funcType([sliceType$3], [], true)}];
	ptrType$4.methods = [{prop: "Option", name: "Option", pkg: "", typ: $funcType([sliceType$4], [], true)}];
	VM.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: ptrType, tag: "js:\"$data\""}, {prop: "Props", name: "Props", embedded: false, exported: true, typ: ptrType, tag: "js:\"$props\""}, {prop: "El", name: "El", embedded: false, exported: true, typ: ptrType, tag: "js:\"$el\""}, {prop: "Options", name: "Options", embedded: false, exported: true, typ: ptrType, tag: "js:\"$options\""}, {prop: "Parent", name: "Parent", embedded: false, exported: true, typ: ptrType, tag: "js:\"$parent\""}, {prop: "Root", name: "Root", embedded: false, exported: true, typ: ptrType, tag: "js:\"$root\""}, {prop: "Children", name: "Children", embedded: false, exported: true, typ: sliceType, tag: "js:\"$children\""}, {prop: "Slots", name: "Slots", embedded: false, exported: true, typ: ptrType, tag: "js:\"$slots\""}, {prop: "ScopedSlots", name: "ScopedSlots", embedded: false, exported: true, typ: ptrType, tag: "js:\"$scopedSlots\""}, {prop: "IsServer", name: "IsServer", embedded: false, exported: true, typ: $Bool, tag: "js:\"$isServer\""}, {prop: "Store", name: "Store", embedded: false, exported: true, typ: ptrType, tag: "js:\"$store\""}, {prop: "Setters", name: "Setters", embedded: false, exported: true, typ: ptrType, tag: "js:\"hvue_setters\""}]);
	Config.init("github.com/mame82/hvue", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "El", name: "El", embedded: false, exported: true, typ: $String, tag: "js:\"el\""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: ptrType, tag: "js:\"data\""}, {prop: "Methods", name: "Methods", embedded: false, exported: true, typ: ptrType, tag: "js:\"methods\""}, {prop: "Props", name: "Props", embedded: false, exported: true, typ: ptrType, tag: "js:\"props\""}, {prop: "Template", name: "Template", embedded: false, exported: true, typ: $String, tag: "js:\"template\""}, {prop: "Computed", name: "Computed", embedded: false, exported: true, typ: ptrType, tag: "js:\"computed\""}, {prop: "Components", name: "Components", embedded: false, exported: true, typ: ptrType, tag: "js:\"components\""}, {prop: "Filters", name: "Filters", embedded: false, exported: true, typ: ptrType, tag: "js:\"filters\""}, {prop: "Store", name: "Store", embedded: false, exported: true, typ: ptrType, tag: "js:\"store\""}, {prop: "dataValue", name: "dataValue", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "Setters", name: "Setters", embedded: false, exported: true, typ: ptrType, tag: "js:\"hvue_setters\""}]);
	ComponentOption.init([ptrType$2], [], false);
	PropOption.init([ptrType$4], [], false);
	PropConfig.init("github.com/mame82/hvue", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType, tag: "js:\"type\""}, {prop: "required", name: "required", embedded: false, exported: false, typ: $Bool, tag: "js:\"required\""}, {prop: "def", name: "def", embedded: false, exported: false, typ: $emptyInterface, tag: "js:\"default\""}, {prop: "validator", name: "validator", embedded: false, exported: false, typ: ptrType, tag: "js:\"validator\""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = reflect.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		o = (function() {
			return new ($global.Object)();
		});
		_r = o(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		_r$1 = reflect.TypeOf(new $jsObjectPtr(_r)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		jsOType = _r$1;
		vmType = reflect.TypeOf(new VM.ptr(null, null, null, null, null, null, null, sliceType.nil, null, null, false, null, null));
		dataObjects = $makeMap($Int.keyFor, []);
		nextDataID = 1;
		$pkg.Required = (function(p) {
			var p;
			p.Object.required = $externalize(true, $Bool);
		});
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/mame82/mvuex"] = (function() {
	var $pkg = {}, $init, errors, js, reflect, strconv, StoreOption, Store, StoreConfig, ActionContext, ptrType, ptrType$1, sliceType, sliceType$1, sliceType$2, ptrType$2, funcType, sliceType$3, eWrongGetterArgs, eTooFewMutationArgs, eTooManyMutationArgs, eWrongActionArgCount, eTooFewMutationArgsOnCall, eWrongFirstMutationArg, eWrongFirstActionArg, eWrongSecondActionArg, eWrongSecondMutationArg, eFirstFieldIsNotPtrJsObject, jsObjectType, jsStoreType, jsActioContextType, x, x$1, x$2, NewStore, State, wrapGoMutationFunc, Mutation, o, castToType, checkIfJSStruct, checkIfJSObject, wrapGoGetterFunc, Getter, wrapGoActionFunc, Action;
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	reflect = $packages["reflect"];
	strconv = $packages["strconv"];
	StoreOption = $pkg.StoreOption = $newType(4, $kindFunc, "mvuex.StoreOption", true, "github.com/mame82/mvuex", true, null);
	Store = $pkg.Store = $newType(0, $kindStruct, "mvuex.Store", true, "github.com/mame82/mvuex", true, function(Object_, Getters_, Commit_, Dispatch_, Strict_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Getters = null;
			this.Commit = $throwNilPointerError;
			this.Dispatch = $throwNilPointerError;
			this.Strict = false;
			return;
		}
		this.Object = Object_;
		this.Getters = Getters_;
		this.Commit = Commit_;
		this.Dispatch = Dispatch_;
		this.Strict = Strict_;
	});
	StoreConfig = $pkg.StoreConfig = $newType(0, $kindStruct, "mvuex.StoreConfig", true, "github.com/mame82/mvuex", true, function(Object_, State_, Mutations_, Actions_, Getters_, stateValue_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.State = null;
			this.Mutations = null;
			this.Actions = null;
			this.Getters = null;
			this.stateValue = new reflect.Value.ptr(ptrType.nil, 0, 0);
			return;
		}
		this.Object = Object_;
		this.State = State_;
		this.Mutations = Mutations_;
		this.Actions = Actions_;
		this.Getters = Getters_;
		this.stateValue = stateValue_;
	});
	ActionContext = $pkg.ActionContext = $newType(0, $kindStruct, "mvuex.ActionContext", true, "github.com/mame82/mvuex", true, function(Object_, Getters_, Commit_, Dispatch_, State_, RootGetters_, RootState_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Getters = null;
			this.Commit = $throwNilPointerError;
			this.Dispatch = $throwNilPointerError;
			this.State = null;
			this.RootGetters = null;
			this.RootState = null;
			return;
		}
		this.Object = Object_;
		this.Getters = Getters_;
		this.Commit = Commit_;
		this.Dispatch = Dispatch_;
		this.State = State_;
		this.RootGetters = RootGetters_;
		this.RootState = RootState_;
	});
	ptrType = $ptrType(reflect.rtype);
	ptrType$1 = $ptrType(StoreConfig);
	sliceType = $sliceType(reflect.Type);
	sliceType$1 = $sliceType(reflect.Value);
	sliceType$2 = $sliceType($emptyInterface);
	ptrType$2 = $ptrType(js.Object);
	funcType = $funcType([sliceType$2], [ptrType$2], true);
	sliceType$3 = $sliceType(StoreOption);
	StoreConfig.ptr.prototype.Option = function(opts) {
		var {_i, _ref, c, opt, opts, $s, $r, $c} = $restore(this, {opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = this;
		_ref = opts;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = opt(c); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: StoreConfig.ptr.prototype.Option, $c: true, $r, _i, _ref, c, opt, opts, $s};return $f;
	};
	StoreConfig.prototype.Option = function(opts) { return this.$val.Option(opts); };
	NewStore = function(opts) {
		var {c, opts, store, $s, $r, $c} = $restore(this, {opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = new StoreConfig.ptr(o(), null, null, null, null, new reflect.Value.ptr(ptrType.nil, 0, 0));
		$r = c.Option(opts); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		store = new Store.ptr(new ($global.Vuex.Store)($externalize(c, ptrType$1)), null, $throwNilPointerError, $throwNilPointerError, false);
		$s = -1; return store;
		/* */ } return; } var $f = {$blk: NewStore, $c: true, $r, c, opts, store, $s};return $f;
	};
	$pkg.NewStore = NewStore;
	State = function(value) {
		var {_r, value, $s, $r, $c} = $restore(this, {value});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		value = [value];
		_r = checkIfJSStruct(reflect.TypeOf(value[0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!_r) { */ case 1:
			$panic(eFirstFieldIsNotPtrJsObject);
		/* } */ case 2:
		$s = -1; return (function(value) { return function(c) {
			var c;
			if (!(c.Object.state === undefined)) {
				$panic(new $String("Cannot use mvuex.Sate more than once"));
			}
			c.Object.state = $externalize(value[0], $emptyInterface);
		}; })(value);
		/* */ } return; } var $f = {$blk: State, $c: true, $r, _r, value, $s};return $f;
	};
	$pkg.State = State;
	wrapGoMutationFunc = function(reflectedGoFunc) {
		var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, _v$1, err, goArg0, goArg1, goCallArgTargetTypes, goCallArgsTargetValues, i, jsFunc, numGoArgs, reflectedGoFunc, $s, $r, $c} = $restore(this, {reflectedGoFunc});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		goCallArgTargetTypes = [goCallArgTargetTypes];
		goCallArgsTargetValues = [goCallArgsTargetValues];
		numGoArgs = [numGoArgs];
		reflectedGoFunc = [reflectedGoFunc];
		jsFunc = null;
		err = $ifaceNil;
		_r = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		numGoArgs[0] = _r;
		if (numGoArgs[0] < 2) {
			_tmp = null;
			_tmp$1 = eTooFewMutationArgs;
			jsFunc = _tmp;
			err = _tmp$1;
			$s = -1; return [jsFunc, err];
		}
		if (numGoArgs[0] > 3) {
			_tmp$2 = null;
			_tmp$3 = eTooManyMutationArgs;
			jsFunc = _tmp$2;
			err = _tmp$3;
			$s = -1; return [jsFunc, err];
		}
		_r$1 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		goArg0 = _r$1;
		_r$2 = goArg0.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		if (!((_r$2 === 22))) { _v = true; $s = 5; continue s; }
		_r$3 = goArg0.Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = !($interfaceIsEqual(_r$3, jsStoreType)); case 5:
		/* */ if (_v) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (_v) { */ case 3:
			_tmp$4 = null;
			_tmp$5 = eWrongFirstMutationArg;
			jsFunc = _tmp$4;
			err = _tmp$5;
			$s = -1; return [jsFunc, err];
		/* } */ case 4:
		_r$4 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(1); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		goArg1 = _r$4;
		_r$5 = goArg1.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		if (!((_r$5 === 22))) { _v$1 = true; $s = 11; continue s; }
		_r$6 = goArg1.Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_r$7 = _r$6.Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_v$1 = !((_r$7 === 25)); case 11:
		/* */ if (_v$1) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (_v$1) { */ case 9:
			_tmp$6 = null;
			_tmp$7 = eWrongSecondMutationArg;
			jsFunc = _tmp$6;
			err = _tmp$7;
			$s = -1; return [jsFunc, err];
		/* } */ case 10:
		goCallArgTargetTypes[0] = $makeSlice(sliceType, numGoArgs[0]);
		goCallArgsTargetValues[0] = $makeSlice(sliceType$1, numGoArgs[0]);
		i = 0;
		/* while (true) { */ case 15:
			_r$8 = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 17; case 17: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
			/* if (!(i < _r$8)) { break; } */ if(!(i < _r$8)) { $s = 16; continue; }
			_r$9 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(i); /* */ $s = 18; case 18: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
			((i < 0 || i >= goCallArgTargetTypes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + i] = _r$9);
			i = i + (1) >> 0;
		$s = 15; continue;
		case 16:
		jsFunc = js.MakeFunc((function(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc) { return function $b(this$1, arguments$1) {
			var {_i, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _ref, _tuple, _tuple$1, arguments$1, castedArg, err$1, err$2, goTargetArgT, idx, jsArg, results, storeVal, targetIdx, this$1, $s, $r, $c} = $restore(this, {this$1, arguments$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			/* */ if (arguments$1.$length < (numGoArgs[0] - 1 >> 0)) { $s = 1; continue; }
			/* */ $s = 2; continue;
			/* if (arguments$1.$length < (numGoArgs[0] - 1 >> 0)) { */ case 1:
				_r$10 = eTooFewMutationArgsOnCall.Error(); /* */ $s = 3; case 3: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
				$panic(new $String(_r$10));
			/* } */ case 2:
			_r$11 = castToType((0 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 0]), this$1); /* */ $s = 4; case 4: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
			_tuple = _r$11;
			storeVal = _tuple[0];
			err$1 = _tuple[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 5; continue; }
			/* */ $s = 6; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 5:
				_r$12 = err$1.Error(); /* */ $s = 7; case 7: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
				$panic(new $String("Error converting JavaScript provided argument for mutation function to *Store: " + _r$12));
			/* } */ case 6:
			(0 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 0] = storeVal);
			_ref = arguments$1;
			_i = 0;
			/* while (true) { */ case 8:
				/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; }
				idx = _i;
				jsArg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				targetIdx = idx + 1 >> 0;
				if (targetIdx >= numGoArgs[0]) {
					/* break; */ $s = 9; continue;
				}
				goTargetArgT = ((targetIdx < 0 || targetIdx >= goCallArgTargetTypes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + targetIdx]);
				_r$13 = castToType(goTargetArgT, jsArg); /* */ $s = 10; case 10: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
				_tuple$1 = _r$13;
				castedArg = _tuple$1[0];
				err$2 = _tuple$1[1];
				/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 11; continue; }
				/* */ $s = 12; continue;
				/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 11:
					_r$14 = goTargetArgT.Kind(); /* */ $s = 13; case 13: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
					_r$15 = new reflect.Kind(_r$14).String(); /* */ $s = 14; case 14: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
					$panic(new $String("Error converting JS object to " + _r$15));
				/* } */ case 12:
				((targetIdx < 0 || targetIdx >= goCallArgsTargetValues[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + targetIdx] = castedArg);
				_i++;
			$s = 8; continue;
			case 9:
			_r$16 = $clone(reflectedGoFunc[0], reflect.Value).Call(goCallArgsTargetValues[0]); /* */ $s = 15; case 15: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
			results = _r$16;
			$s = -1; return results;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _ref, _tuple, _tuple$1, arguments$1, castedArg, err$1, err$2, goTargetArgT, idx, jsArg, results, storeVal, targetIdx, this$1, $s};return $f;
		}; })(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc));
		_tmp$8 = jsFunc;
		_tmp$9 = $ifaceNil;
		jsFunc = _tmp$8;
		err = _tmp$9;
		$s = -1; return [jsFunc, err];
		/* */ } return; } var $f = {$blk: wrapGoMutationFunc, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, _v$1, err, goArg0, goArg1, goCallArgTargetTypes, goCallArgsTargetValues, i, jsFunc, numGoArgs, reflectedGoFunc, $s};return $f;
	};
	Mutation = function(name, goFunc) {
		var goFunc, name;
		return (function $b(c) {
			var {_r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			if (c.Object.mutations === undefined) {
				c.Object.mutations = o();
			}
			_r = reflect.ValueOf(goFunc); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			reflectedGoFunc = _r;
			if (!(($clone(reflectedGoFunc, reflect.Value).Kind() === 19))) {
				$panic(new $String("Mutation " + name + " is not a func"));
			}
			_r$1 = wrapGoMutationFunc($clone(reflectedGoFunc, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			jsFunc = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
				_r$2 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$panic(new $String("Error exposing the mutation function '" + name + "' to JavaScript: " + _r$2));
			/* } */ case 4:
			c.Object.mutations[$externalize(name, $String)] = jsFunc;
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s};return $f;
		});
	};
	$pkg.Mutation = Mutation;
	o = function() {
		return new ($global.Object)();
	};
	castToType = function(targetType, sourceVal) {
		var {$24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, derefType, derefVal, err, err$1, kind, pStructInstance, result, sourceVal, targetType, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {targetType, sourceVal});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		result = new reflect.Value.ptr(ptrType.nil, 0, 0);
		err = $ifaceNil;
		_r = checkIfJSObject(targetType); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (_r) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (_r) { */ case 1:
			_r$1 = reflect.ValueOf(new $jsObjectPtr(sourceVal)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tmp = _r$1;
			_tmp$1 = $ifaceNil;
			result = _tmp;
			err = _tmp$1;
			$24r = [result, err];
			$s = 5; case 5: return $24r;
		/* } */ case 2:
			_r$2 = targetType.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			kind = _r$2;
			_1 = kind;
			/* */ if (_1 === (2)) { $s = 8; continue; }
			/* */ if (_1 === (3)) { $s = 9; continue; }
			/* */ if (_1 === (4)) { $s = 10; continue; }
			/* */ if (_1 === (5)) { $s = 11; continue; }
			/* */ if (_1 === (6)) { $s = 12; continue; }
			/* */ if (_1 === (14)) { $s = 13; continue; }
			/* */ if (_1 === (13)) { $s = 14; continue; }
			/* */ if (_1 === (1)) { $s = 15; continue; }
			/* */ if (_1 === (7)) { $s = 16; continue; }
			/* */ if (_1 === (11)) { $s = 17; continue; }
			/* */ if (_1 === (10)) { $s = 18; continue; }
			/* */ if (_1 === (9)) { $s = 19; continue; }
			/* */ if (_1 === (8)) { $s = 20; continue; }
			/* */ if (_1 === (12)) { $s = 21; continue; }
			/* */ if (_1 === (24)) { $s = 22; continue; }
			/* */ if (_1 === (23)) { $s = 23; continue; }
			/* */ if (_1 === (25)) { $s = 24; continue; }
			/* */ if (_1 === (22)) { $s = 25; continue; }
			/* */ if (_1 === (20)) { $s = 26; continue; }
			/* */ $s = 27; continue;
			/* if (_1 === (2)) { */ case 8:
				_r$3 = reflect.ValueOf(new $Int(($parseInt(sourceVal) >> 0))); /* */ $s = 29; case 29: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				result = _r$3;
				$s = 28; continue;
			/* } else if (_1 === (3)) { */ case 9:
				_r$4 = reflect.ValueOf(new $Int8((((x$3 = $internalize(sourceVal, $Int64), x$3.$low + ((x$3.$high >> 31) * 4294967296)) << 24 >> 24)))); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				result = _r$4;
				$s = 28; continue;
			/* } else if (_1 === (4)) { */ case 10:
				_r$5 = reflect.ValueOf(new $Int16((((x$4 = $internalize(sourceVal, $Int64), x$4.$low + ((x$4.$high >> 31) * 4294967296)) << 16 >> 16)))); /* */ $s = 31; case 31: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				result = _r$5;
				$s = 28; continue;
			/* } else if (_1 === (5)) { */ case 11:
				_r$6 = reflect.ValueOf(new $Int32((((x$5 = $internalize(sourceVal, $Int64), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)))); /* */ $s = 32; case 32: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				result = _r$6;
				$s = 28; continue;
			/* } else if (_1 === (6)) { */ case 12:
				_r$7 = reflect.ValueOf($internalize(sourceVal, $Int64)); /* */ $s = 33; case 33: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
				result = _r$7;
				$s = 28; continue;
			/* } else if (_1 === (14)) { */ case 13:
				_r$8 = reflect.ValueOf(new $Float64($parseFloat(sourceVal))); /* */ $s = 34; case 34: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				result = _r$8;
				$s = 28; continue;
			/* } else if (_1 === (13)) { */ case 14:
				_r$9 = reflect.ValueOf(new $Float32(($fround($parseFloat(sourceVal))))); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
				result = _r$9;
				$s = 28; continue;
			/* } else if (_1 === (1)) { */ case 15:
				_r$10 = reflect.ValueOf(new $Bool(!!(sourceVal))); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
				result = _r$10;
				$s = 28; continue;
			/* } else if (_1 === (7)) { */ case 16:
				_r$11 = reflect.ValueOf(new $Uint((($internalize(sourceVal, $Uint64).$low >>> 0)))); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
				result = _r$11;
				$s = 28; continue;
			/* } else if (_1 === (11)) { */ case 17:
				_r$12 = reflect.ValueOf($internalize(sourceVal, $Uint64)); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
				result = _r$12;
				$s = 28; continue;
			/* } else if (_1 === (10)) { */ case 18:
				_r$13 = reflect.ValueOf(new $Uint32((($internalize(sourceVal, $Uint64).$low >>> 0)))); /* */ $s = 39; case 39: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
				result = _r$13;
				$s = 28; continue;
			/* } else if (_1 === (9)) { */ case 19:
				_r$14 = reflect.ValueOf(new $Uint16((($internalize(sourceVal, $Uint64).$low << 16 >>> 16)))); /* */ $s = 40; case 40: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
				result = _r$14;
				$s = 28; continue;
			/* } else if (_1 === (8)) { */ case 20:
				_r$15 = reflect.ValueOf(new $Uint8((($internalize(sourceVal, $Uint64).$low << 24 >>> 24)))); /* */ $s = 41; case 41: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
				result = _r$15;
				$s = 28; continue;
			/* } else if (_1 === (12)) { */ case 21:
				_r$16 = reflect.ValueOf(new $Uintptr(sourceVal)); /* */ $s = 42; case 42: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
				result = _r$16;
				$s = 28; continue;
			/* } else if (_1 === (24)) { */ case 22:
				_r$17 = reflect.ValueOf(new $String($internalize(sourceVal, $String))); /* */ $s = 43; case 43: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
				result = _r$17;
				$s = 28; continue;
			/* } else if (_1 === (23)) { */ case 23:
				_r$18 = reflect.ValueOf($internalize(sourceVal, $emptyInterface)); /* */ $s = 44; case 44: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
				result = _r$18;
				$s = 28; continue;
			/* } else if (_1 === (25)) { */ case 24:
				_r$19 = checkIfJSStruct(targetType); /* */ $s = 47; case 47: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
				/* */ if (!_r$19) { $s = 45; continue; }
				/* */ $s = 46; continue;
				/* if (!_r$19) { */ case 45:
					_tmp$2 = result;
					_tmp$3 = eFirstFieldIsNotPtrJsObject;
					result = _tmp$2;
					err = _tmp$3;
					$s = -1; return [result, err];
				/* } */ case 46:
				pStructInstance = reflect.New(targetType);
				_r$20 = $clone(pStructInstance, reflect.Value).Elem(); /* */ $s = 48; case 48: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
				_r$21 = $clone(_r$20, reflect.Value).Field(0); /* */ $s = 49; case 49: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
				_r$22 = reflect.ValueOf(new $jsObjectPtr(sourceVal)); /* */ $s = 50; case 50: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
				$r = $clone(_r$21, reflect.Value).Set($clone(_r$22, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				_r$23 = $clone(pStructInstance, reflect.Value).Elem(); /* */ $s = 52; case 52: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
				result = _r$23;
				$s = 28; continue;
			/* } else if (_1 === (22)) { */ case 25:
				_r$24 = targetType.Elem(); /* */ $s = 53; case 53: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
				derefType = _r$24;
				_r$25 = castToType(derefType, sourceVal); /* */ $s = 54; case 54: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
				_tuple = _r$25;
				derefVal = _tuple[0];
				err$1 = _tuple[1];
				if (!($interfaceIsEqual(err$1, $ifaceNil))) {
					_tmp$4 = result;
					_tmp$5 = err$1;
					result = _tmp$4;
					err = _tmp$5;
					$s = -1; return [result, err];
				}
				result = $clone(derefVal, reflect.Value).Addr();
				$s = 28; continue;
			/* } else if (_1 === (20)) { */ case 26:
				_r$26 = reflect.ValueOf($internalize(sourceVal, $emptyInterface)); /* */ $s = 55; case 55: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
				result = _r$26;
				$s = 28; continue;
			/* } else { */ case 27:
				console.log("No conversion for following type implemented", new reflect.Kind(kind).String(), " from ", sourceVal);
			/* } */ case 28:
		case 6:
		_tmp$6 = result;
		_tmp$7 = $ifaceNil;
		result = _tmp$6;
		err = _tmp$7;
		$s = -1; return [result, err];
		/* */ } return; } var $f = {$blk: castToType, $c: true, $r, $24r, _1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, derefType, derefVal, err, err$1, kind, pStructInstance, result, sourceVal, targetType, x$3, x$4, x$5, $s};return $f;
	};
	checkIfJSStruct = function(objType) {
		var {_r, _r$1, _r$2, _r$3, objType, typeField0, $s, $r, $c} = $restore(this, {objType});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = objType.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 25))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 25))) { */ case 1:
			$s = -1; return false;
		/* } */ case 2:
		_r$1 = objType.Field(0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		typeField0 = _r$1.Type;
		_r$2 = typeField0.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		/* */ if (!((_r$2 === 22))) { $s = 5; continue; }
		/* */ $s = 6; continue;
		/* if (!((_r$2 === 22))) { */ case 5:
			$s = -1; return false;
		/* } */ case 6:
		_r$3 = typeField0.Elem(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		/* */ if (!($interfaceIsEqual(_r$3, jsObjectType))) { $s = 8; continue; }
		/* */ $s = 9; continue;
		/* if (!($interfaceIsEqual(_r$3, jsObjectType))) { */ case 8:
			$s = -1; return false;
		/* } */ case 9:
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: checkIfJSStruct, $c: true, $r, _r, _r$1, _r$2, _r$3, objType, typeField0, $s};return $f;
	};
	checkIfJSObject = function(objType) {
		var {_r, _r$1, objType, $s, $r, $c} = $restore(this, {objType});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r = objType.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		/* */ if (!((_r === 22))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!((_r === 22))) { */ case 1:
			$s = -1; return false;
		/* } */ case 2:
		_r$1 = objType.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		/* */ if (!($interfaceIsEqual(_r$1, jsObjectType))) { $s = 4; continue; }
		/* */ $s = 5; continue;
		/* if (!($interfaceIsEqual(_r$1, jsObjectType))) { */ case 4:
			$s = -1; return false;
		/* } */ case 5:
		$s = -1; return true;
		/* */ } return; } var $f = {$blk: checkIfJSObject, $c: true, $r, _r, _r$1, objType, $s};return $f;
	};
	wrapGoGetterFunc = function(reflectedGoFunc) {
		var {_r, _r$1, _r$2, _tmp, _tmp$1, err, goCallArgTargetTypes, goCallArgsTargetValues, i, jsFunc, numGoArgs, reflectedGoFunc, $s, $r, $c} = $restore(this, {reflectedGoFunc});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		goCallArgTargetTypes = [goCallArgTargetTypes];
		goCallArgsTargetValues = [goCallArgsTargetValues];
		numGoArgs = [numGoArgs];
		reflectedGoFunc = [reflectedGoFunc];
		jsFunc = null;
		err = $ifaceNil;
		_r = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		numGoArgs[0] = _r;
		goCallArgTargetTypes[0] = $makeSlice(sliceType, numGoArgs[0]);
		goCallArgsTargetValues[0] = $makeSlice(sliceType$1, numGoArgs[0]);
		i = 0;
		/* while (true) { */ case 2:
			_r$1 = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* if (!(i < _r$1)) { break; } */ if(!(i < _r$1)) { $s = 3; continue; }
			_r$2 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(i); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			((i < 0 || i >= goCallArgTargetTypes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + i] = _r$2);
			i = i + (1) >> 0;
		$s = 2; continue;
		case 3:
		jsFunc = js.MakeFunc((function(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc) { return function $b(this$1, arguments$1) {
			var {$24r, _i, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arguments$1, castedArg, err$1, i$1, iResults, res, results, this$1, $s, $r, $c} = $restore(this, {this$1, arguments$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$3 = castToType((0 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 0]), (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple = _r$3;
			castedArg = _tuple[0];
			err$1 = _tuple[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2:
				_r$4 = (0 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 0]).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_r$5 = new reflect.Kind(_r$4).String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
				$panic(new $String("Error converting JS object to " + _r$5));
			/* } */ case 3:
			(0 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 0] = castedArg);
			/* */ if (numGoArgs[0] > 1) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (numGoArgs[0] > 1) { */ case 6:
				_r$6 = reflect.ValueOf(new $jsObjectPtr((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]))); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
				(1 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 1] = _r$6);
			/* } */ case 7:
			_r$7 = $clone(reflectedGoFunc[0], reflect.Value).Call(goCallArgsTargetValues[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
			results = _r$7;
			/* */ if (results.$length === 1) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (results.$length === 1) { */ case 10:
				_r$8 = $clone((0 >= results.$length ? ($throwRuntimeError("index out of range"), undefined) : results.$array[results.$offset + 0]), reflect.Value).Interface(); /* */ $s = 13; case 13: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
				$24r = _r$8;
				$s = 14; case 14: return $24r;
			/* } else { */ case 11:
				iResults = $makeSlice(sliceType$2, results.$length);
				_ref = results;
				_i = 0;
				/* while (true) { */ case 15:
					/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 16; continue; }
					i$1 = _i;
					res = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
					_r$9 = $clone(res, reflect.Value).Interface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
					((i$1 < 0 || i$1 >= iResults.$length) ? ($throwRuntimeError("index out of range"), undefined) : iResults.$array[iResults.$offset + i$1] = _r$9);
					_i++;
				$s = 15; continue;
				case 16:
				$s = -1; return iResults;
			/* } */ case 12:
			$s = -1; return $ifaceNil;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, $24r, _i, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, arguments$1, castedArg, err$1, i$1, iResults, res, results, this$1, $s};return $f;
		}; })(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc));
		_tmp = jsFunc;
		_tmp$1 = $ifaceNil;
		jsFunc = _tmp;
		err = _tmp$1;
		$s = -1; return [jsFunc, err];
		/* */ } return; } var $f = {$blk: wrapGoGetterFunc, $c: true, $r, _r, _r$1, _r$2, _tmp, _tmp$1, err, goCallArgTargetTypes, goCallArgsTargetValues, i, jsFunc, numGoArgs, reflectedGoFunc, $s};return $f;
	};
	Getter = function(name, goFunc) {
		var goFunc, name;
		return (function $b(c) {
			var {_r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			if (c.Object.getters === undefined) {
				c.Object.getters = o();
			}
			_r = reflect.ValueOf(goFunc); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			reflectedGoFunc = _r;
			if (!(($clone(reflectedGoFunc, reflect.Value).Kind() === 19))) {
				$panic(new $String("Getter " + name + " is not a func"));
			}
			_r$1 = wrapGoGetterFunc($clone(reflectedGoFunc, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			jsFunc = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
				_r$2 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$panic(new $String("Error exposing the getter function '" + name + "' to JavaScript: " + _r$2));
			/* } */ case 4:
			c.Object.getters[$externalize(name, $String)] = jsFunc;
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s};return $f;
		});
	};
	$pkg.Getter = Getter;
	wrapGoActionFunc = function(reflectedGoFunc) {
		var {_r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, _v$1, _v$2, arg, arg$1, arg$2, err, goCallArgTargetTypes, goCallArgsTargetValues, i, i$1, jsFunc, numGoArgs, reflectedGoFunc, $s, $r, $c} = $restore(this, {reflectedGoFunc});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		goCallArgTargetTypes = [goCallArgTargetTypes];
		goCallArgsTargetValues = [goCallArgsTargetValues];
		numGoArgs = [numGoArgs];
		reflectedGoFunc = [reflectedGoFunc];
		jsFunc = null;
		err = $ifaceNil;
		_r = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		numGoArgs[0] = _r;
		if (numGoArgs[0] < 3 || numGoArgs[0] > 4) {
			_tmp = null;
			_tmp$1 = eWrongActionArgCount;
			jsFunc = _tmp;
			err = _tmp$1;
			$s = -1; return [jsFunc, err];
		}
		_r$1 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		arg = _r$1;
		_r$2 = arg.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		if (!((_r$2 === 22))) { _v = true; $s = 5; continue s; }
		_r$3 = arg.Elem(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_v = !($interfaceIsEqual(_r$3, jsStoreType)); case 5:
		/* */ if (_v) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (_v) { */ case 3:
			_tmp$2 = null;
			_tmp$3 = eWrongFirstActionArg;
			jsFunc = _tmp$2;
			err = _tmp$3;
			$s = -1; return [jsFunc, err];
		/* } */ case 4:
		_r$4 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(1); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		arg$1 = _r$4;
		_r$5 = arg$1.Kind(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		if (!((_r$5 === 22))) { _v$1 = true; $s = 11; continue s; }
		_r$6 = arg$1.Elem(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_v$1 = !($interfaceIsEqual(_r$6, jsActioContextType)); case 11:
		/* */ if (_v$1) { $s = 9; continue; }
		/* */ $s = 10; continue;
		/* if (_v$1) { */ case 9:
			_tmp$4 = null;
			_tmp$5 = eWrongSecondActionArg;
			jsFunc = _tmp$4;
			err = _tmp$5;
			$s = -1; return [jsFunc, err];
		/* } */ case 10:
		i = 2;
		/* while (true) { */ case 14:
			/* if (!(i < numGoArgs[0])) { break; } */ if(!(i < numGoArgs[0])) { $s = 15; continue; }
			_r$7 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(i); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
			arg$2 = _r$7;
			_r$8 = arg$2.Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
			if (!((_r$8 === 22))) { _v$2 = true; $s = 19; continue s; }
			_r$9 = arg$2.Elem(); /* */ $s = 21; case 21: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
			_r$10 = checkIfJSStruct(_r$9); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
			_v$2 = !_r$10; case 19:
			/* */ if (_v$2) { $s = 17; continue; }
			/* */ $s = 18; continue;
			/* if (_v$2) { */ case 17:
				_tmp$6 = null;
				_tmp$7 = errors.New("Arg at position " + strconv.Itoa(i) + " isn't a pointer to a struct with *js.Object in first field");
				jsFunc = _tmp$6;
				err = _tmp$7;
				$s = -1; return [jsFunc, err];
			/* } */ case 18:
			i = i + (1) >> 0;
		$s = 14; continue;
		case 15:
		goCallArgTargetTypes[0] = $makeSlice(sliceType, numGoArgs[0]);
		i$1 = 0;
		/* while (true) { */ case 23:
			_r$11 = $clone(reflectedGoFunc[0], reflect.Value).Type().NumIn(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
			/* if (!(i$1 < _r$11)) { break; } */ if(!(i$1 < _r$11)) { $s = 24; continue; }
			_r$12 = $clone(reflectedGoFunc[0], reflect.Value).Type().In(i$1); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
			((i$1 < 0 || i$1 >= goCallArgTargetTypes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + i$1] = _r$12);
			i$1 = i$1 + (1) >> 0;
		$s = 23; continue;
		case 24:
		goCallArgsTargetValues[0] = $makeSlice(sliceType$1, numGoArgs[0]);
		jsFunc = js.MakeFunc((function(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc) { return function $b(this$1, arguments$1) {
			var {_i, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, actionParamVal, arguments$1, contextVal, err$1, err$2, goResultVals, i$2, jsStateObj, rVal, reflectedResultVals, stateVal, storeVal, this$1, $s, $r, $c} = $restore(this, {this$1, arguments$1});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$13 = castToType((0 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 0]), this$1); /* */ $s = 1; case 1: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
			_tuple = _r$13;
			storeVal = _tuple[0];
			err$1 = _tuple[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2:
				_r$14 = err$1.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
				$panic(new $String("Error converting JavaScript provided 'this' for action function to *Store: " + _r$14));
			/* } */ case 3:
			(0 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 0] = storeVal);
			_r$15 = castToType((1 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 1]), (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0])); /* */ $s = 5; case 5: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
			_tuple$1 = _r$15;
			contextVal = _tuple$1[0];
			err$1 = _tuple$1[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 6; continue; }
			/* */ $s = 7; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 6:
				_r$16 = err$1.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
				$panic(new $String("Error converting JavaScript provided first argument for action function to *ActionContext: " + _r$16));
			/* } */ case 7:
			(1 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 1] = contextVal);
			jsStateObj = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]).state;
			_r$17 = castToType((2 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 2]), jsStateObj); /* */ $s = 9; case 9: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
			_tuple$2 = _r$17;
			stateVal = _tuple$2[0];
			err$1 = _tuple$2[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 10; continue; }
			/* */ $s = 11; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 10:
				_r$18 = (2 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 2]).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
				_r$19 = _r$18.Name(); /* */ $s = 13; case 13: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
				_r$20 = err$1.Error(); /* */ $s = 14; case 14: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
				$panic(new $String("Error converting JavaScript provided context.state for action function to *" + _r$19 + ": " + _r$20));
			/* } */ case 11:
			(2 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 2] = stateVal);
			/* */ if (numGoArgs[0] === 4) { $s = 15; continue; }
			/* */ $s = 16; continue;
			/* if (numGoArgs[0] === 4) { */ case 15:
				/* */ if ((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]) === undefined) { $s = 17; continue; }
				/* */ $s = 18; continue;
				/* if ((1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1]) === undefined) { */ case 17:
					_r$21 = (3 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 3]).Name(); /* */ $s = 19; case 19: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
					$panic(new $String("The action handler awaits an argument of type " + _r$21 + " but the dispatched action doesn't provide this parameter"));
				/* } */ case 18:
				_r$22 = castToType((3 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 3]), (1 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 1])); /* */ $s = 20; case 20: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
				_tuple$3 = _r$22;
				actionParamVal = _tuple$3[0];
				err$2 = _tuple$3[1];
				/* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 21; continue; }
				/* */ $s = 22; continue;
				/* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 21:
					_r$23 = (3 >= goCallArgTargetTypes[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgTargetTypes[0].$array[goCallArgTargetTypes[0].$offset + 3]).Elem(); /* */ $s = 23; case 23: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
					_r$24 = _r$23.Name(); /* */ $s = 24; case 24: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
					_r$25 = err$2.Error(); /* */ $s = 25; case 25: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
					$panic(new $String("Error converting JavaScript provided optional parameter for action function to *" + _r$24 + ": " + _r$25));
				/* } */ case 22:
				(3 >= goCallArgsTargetValues[0].$length ? ($throwRuntimeError("index out of range"), undefined) : goCallArgsTargetValues[0].$array[goCallArgsTargetValues[0].$offset + 3] = actionParamVal);
			/* } */ case 16:
			_r$26 = $clone(reflectedGoFunc[0], reflect.Value).Call(goCallArgsTargetValues[0]); /* */ $s = 26; case 26: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
			reflectedResultVals = _r$26;
			goResultVals = $makeSlice(sliceType$2, reflectedResultVals.$length);
			_ref = reflectedResultVals;
			_i = 0;
			/* while (true) { */ case 27:
				/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 28; continue; }
				i$2 = _i;
				rVal = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				_r$27 = $clone(rVal, reflect.Value).Interface(); /* */ $s = 29; case 29: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; }
				((i$2 < 0 || i$2 >= goResultVals.$length) ? ($throwRuntimeError("index out of range"), undefined) : goResultVals.$array[goResultVals.$offset + i$2] = _r$27);
				_i++;
			$s = 27; continue;
			case 28:
			if (goResultVals.$length === 1) {
				$s = -1; return (0 >= goResultVals.$length ? ($throwRuntimeError("index out of range"), undefined) : goResultVals.$array[goResultVals.$offset + 0]);
			}
			$s = -1; return goResultVals;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _ref, _tuple, _tuple$1, _tuple$2, _tuple$3, actionParamVal, arguments$1, contextVal, err$1, err$2, goResultVals, i$2, jsStateObj, rVal, reflectedResultVals, stateVal, storeVal, this$1, $s};return $f;
		}; })(goCallArgTargetTypes, goCallArgsTargetValues, numGoArgs, reflectedGoFunc));
		_tmp$8 = jsFunc;
		_tmp$9 = $ifaceNil;
		jsFunc = _tmp$8;
		err = _tmp$9;
		$s = -1; return [jsFunc, err];
		/* */ } return; } var $f = {$blk: wrapGoActionFunc, $c: true, $r, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _v, _v$1, _v$2, arg, arg$1, arg$2, err, goCallArgTargetTypes, goCallArgsTargetValues, i, i$1, jsFunc, numGoArgs, reflectedGoFunc, $s};return $f;
	};
	Action = function(name, goFunc) {
		var goFunc, name;
		return (function $b(c) {
			var {_r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s, $r, $c} = $restore(this, {c});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			if (c.Object.actions === undefined) {
				c.Object.actions = o();
			}
			_r = reflect.ValueOf(goFunc); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
			reflectedGoFunc = _r;
			if (!(($clone(reflectedGoFunc, reflect.Value).Kind() === 19))) {
				$panic(new $String("Action " + name + " is not a func"));
			}
			_r$1 = wrapGoActionFunc($clone(reflectedGoFunc, reflect.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			jsFunc = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
				_r$2 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				$panic(new $String("Error exposing the action function '" + name + "' to JavaScript: " + _r$2));
			/* } */ case 4:
			c.Object.actions[$externalize(name, $String)] = jsFunc;
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _r$2, _tuple, c, err, jsFunc, reflectedGoFunc, $s};return $f;
		});
	};
	$pkg.Action = Action;
	ptrType$1.methods = [{prop: "Option", name: "Option", pkg: "", typ: $funcType([sliceType$3], [], true)}];
	StoreOption.init([ptrType$1], [], false);
	Store.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Getters", name: "Getters", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"getters\""}, {prop: "Commit", name: "Commit", embedded: false, exported: true, typ: funcType, tag: "js:\"commit\""}, {prop: "Dispatch", name: "Dispatch", embedded: false, exported: true, typ: funcType, tag: "js:\"dispatch\""}, {prop: "Strict", name: "Strict", embedded: false, exported: true, typ: $Bool, tag: "js:\"strict\""}]);
	StoreConfig.init("github.com/mame82/mvuex", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "State", name: "State", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"state\""}, {prop: "Mutations", name: "Mutations", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"mutations\""}, {prop: "Actions", name: "Actions", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"actions\""}, {prop: "Getters", name: "Getters", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"getters\""}, {prop: "stateValue", name: "stateValue", embedded: false, exported: false, typ: reflect.Value, tag: ""}]);
	ActionContext.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Getters", name: "Getters", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"getters\""}, {prop: "Commit", name: "Commit", embedded: false, exported: true, typ: funcType, tag: "js:\"commit\""}, {prop: "Dispatch", name: "Dispatch", embedded: false, exported: true, typ: funcType, tag: "js:\"dispatch\""}, {prop: "State", name: "State", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"state\""}, {prop: "RootGetters", name: "RootGetters", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"rootGetters\""}, {prop: "RootState", name: "RootState", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"rootState\""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = reflect.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		eWrongGetterArgs = errors.New("A getter needs one owr two arguments (first one representing the state, second an optional parameter)");
		eTooFewMutationArgs = errors.New("Mutation function has too few arguments (min 2)");
		eTooManyMutationArgs = errors.New("Mutation function has too many arguments (max 3)");
		eWrongActionArgCount = errors.New("Wrong argument count! An action handler takes 3 or 4 args: actionHandler(store *Store, context *ActionContext, state *{CustomStateType} [, callArg *{CustomArgType])");
		eTooFewMutationArgsOnCall = errors.New("Mutation function called with too few arguments from JavaScrip");
		eWrongFirstMutationArg = errors.New("Mutation function has to have *Store as first argument type");
		eWrongFirstActionArg = errors.New("Mutation function has to have *Store as first argument type");
		eWrongSecondActionArg = errors.New("Mutation function has to have *ActionContext as second argument type");
		eWrongSecondMutationArg = errors.New("The second argument of the mutation function has to be a pointer to a struct of the type used for state");
		eFirstFieldIsNotPtrJsObject = errors.New("The first field of the struct has to be of type *js.Object");
		jsObjectType = reflect.TypeOf((x = new js.Object.ptr(null), new x.constructor.elem(x)));
		jsStoreType = reflect.TypeOf((x$1 = new Store.ptr(null, null, $throwNilPointerError, $throwNilPointerError, false), new x$1.constructor.elem(x$1)));
		jsActioContextType = reflect.TypeOf((x$2 = new ActionContext.ptr(null, null, $throwNilPointerError, $throwNilPointerError, null, null, null), new x$2.constructor.elem(x$2)));
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["path/filepath"] = (function() {
	var $pkg = {}, $init, errors, fs, os, runtime, sort, strings, syscall, utf8, Ext;
	errors = $packages["errors"];
	fs = $packages["io/fs"];
	os = $packages["os"];
	runtime = $packages["runtime"];
	sort = $packages["sort"];
	strings = $packages["strings"];
	syscall = $packages["syscall"];
	utf8 = $packages["unicode/utf8"];
	Ext = function(path) {
		var i, path;
		i = path.length - 1 >> 0;
		while (true) {
			if (!(i >= 0 && !os.IsPathSeparator(path.charCodeAt(i)))) { break; }
			if (path.charCodeAt(i) === 46) {
				return $substring(path, i);
			}
			i = i - (1) >> 0;
		}
		return "";
	};
	$pkg.Ext = Ext;
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = fs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = os.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = syscall.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$pkg.ErrBadPattern = errors.New("syntax error in pattern");
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$packages["github.com/mame82/P4wnP1_aloa/web_client"] = (function() {
	var $pkg = {}, $init, context, md5, hex, errors, js, grpcweb, common_web, P4wnP1_grpc, hvue, mvuex, io, filepath, strconv, strings, sync, time, VueRouterConfig, VueRouterOption, Rpc, Quasar, QuasarNotification, Promise, GlobalState, triggerType, actionType, jsTriggerAction, jsTriggerServiceStarted, jsTriggerUSBGadgetConnected, jsTriggerUSBGadgetDisconnected, jsTriggerWifiAPStarted, jsTriggerWifiConnectedAsSta, jsTriggerSSHLogin, jsTriggerDHCPLeaseGranted, jsTriggerGroupReceive, jsTriggerGroupReceiveMulti, GroupReceiveMultiType, jsTriggerGPIOIn, GPIOInPullUpDown, GPIOInEdge, jsActionStartBashScript, jsActionStartHIDScript, jsActionDeploySettingsTemplate, jsActionGPIOOut, GPIOOutValue, jsActionGroupSend, jsActionLog, TemplateType, jsTriggerActionSet, jsMasterTemplate, jsRequestMasterTemplateStorage, jsLoadHidScriptSourceMode, jsLoadHidScriptSourceReq, jsWifiRequestSettingsStorage, jsUSBRequestSettingsStorage, jsGadgetSettings, jsGadgetSettingsEthernet, jsGadgetSettingsUMS, jsEvent, jsLogEvent, jsHidEvent, jsHidJobState, jsHidJobStateList, jsWiFiState, jsWiFiBSSCfg, jsWiFiSettings, jsEthernetRequestSettingsStorage, jsEthernetSettingsArray, jsEthernetInterfaceSettings, jsDHCPServerSettings, jsDHCPServerRange, jsDHCPServerOption, jsDHCPServerStaticHost, jsEventProcessor, jsDataTablePagination, jsBluetoothRequestSettingsStorage, jsBluetoothSettings, jsBluetoothAgentSettings, jsBluetoothControllerSettings, jsBluetoothControllerInformation, CompUSBSettingsData, CompToggleSwitchData, CompHIDScriptCodeEditorData, CodeMirrorMode, CodeMirrorExtraKeys, CodeMirrorOptionsType, CompHIDJobsData, CompHIDEventsData, CompEthernetAddressesData2, option, option$1, option$2, option$3, option$4, option$5, option$6, option$7, ptrType, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, ptrType$1, ptrType$2, structType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$7, sliceType$8, sliceType$9, ptrType$7, sliceType$10, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, sliceType$11, ptrType$21, ptrType$22, mapType, ptrType$23, ptrType$25, structType$1, funcType, ptrType$26, ptrType$27, ptrType$28, ptrType$29, funcType$1, ptrType$30, funcType$2, ptrType$31, ptrType$32, ptrType$33, ptrType$34, ptrType$35, sliceType$12, funcType$3, ptrType$36, funcType$4, funcType$5, funcType$6, funcType$7, funcType$8, sliceType$13, funcType$9, funcType$10, funcType$11, funcType$12, funcType$13, funcType$14, funcType$15, ptrType$37, funcType$16, funcType$17, ptrType$38, funcType$18, funcType$19, ptrType$39, funcType$20, ptrType$40, funcType$21, funcType$22, funcType$23, funcType$24, funcType$25, funcType$26, ptrType$41, funcType$27, ptrType$42, funcType$28, ptrType$43, funcType$29, funcType$30, funcType$31, structType$2, sliceType$14, sliceType$15, sliceType$16, ptrType$44, ptrType$45, ptrType$46, ptrType$47, ptrType$48, ptrType$49, ptrType$50, ptrType$51, ptrType$52, ptrType$53, ptrType$54, ptrType$55, ptrType$56, ptrType$57, ptrType$58, ptrType$59, ptrType$60, sliceType$17, ptrType$61, ptrType$62, ptrType$63, ptrType$64, ptrType$65, ptrType$66, ptrType$67, ptrType$68, ptrType$69, ptrType$70, ptrType$71, ptrType$72, ptrType$73, ptrType$74, ptrType$75, ptrType$76, ptrType$77, ptrType$78, ptrType$79, ptrType$80, ptrType$81, ptrType$82, ptrType$83, ptrType$84, ptrType$85, ptrType$86, sliceType$18, ptrType$87, funcType$32, ptrType$88, ptrType$89, sliceType$19, ptrType$90, sliceType$20, ptrType$91, ptrType$92, ptrType$93, structType$3, funcType$33, funcType$34, structType$4, sliceType$21, sliceType$22, funcType$35, structType$5, funcType$36, ptrType$94, structType$6, structType$7, funcType$37, funcType$38, structType$8, funcType$39, structType$9, funcType$40, funcType$41, structType$10, funcType$42, structType$11, funcType$43, structType$12, structType$13, structType$14, structType$15, ptrType$95, ptrType$96, ptrType$97, ptrType$98, structType$16, structType$17, funcType$44, structType$18, funcType$45, funcType$46, ptrType$99, ptrType$100, ptrType$101, structType$19, funcType$47, structType$20, funcType$48, arrayType, ptrType$102, ptrType$103, ptrType$104, ptrType$105, ptrType$106, ptrType$107, ptrType$108, ptrType$109, ptrType$110, ptrType$111, globalState, serverAddr, triggerNames, actionNames, availableTriggers, availableActions, groupReceiveMultiNames, availableGroupReceiveMulti, gpioInPullUpDownNames, availableGPIOInPullUpDowns, gpioInEdgeNames, availableGPIOInEdges, gpioOutValueNames, availableGPIOOutValues, templateTypeNames, availableTemplateTypes, eNoLogEvent, eNoHidEvent, _r, VueRouterRoute, NewVueRouter, NewRpcClient, QuasarGetQuasar, QuasarNotify, QuasarNotifyError, QuasarNotifySuccess, NewPromise, createGlobalStateStruct, processEvent, actionUpdateAllStates, actionUpdateUmsImageCdromList, actionUpdateUmsImageFlashdriveList, actionUpdateStoredDBBackupList, actionGetStartupMasterTemplateName, actionSetStartupMasterTemplateName, actionBackupDB, actionRestoreDB, actionReboot, actionShutdown, actionUpdateGpioNamesList, actionDeployMasterTemplate, actionUpdateStoredMasterTemplateList, actionStoreMasterTemplate, actionLoadMasterTemplate, actionDeployStoredMasterTemplate, actionDeleteStoredMasterTemplate, actionSendAndRunHIDScript, actionCancelHidJob, actionCancelAllHidJobs, actionRemoveSucceededHidJobs, actionRemoveFailedHidJobs, actionStartEventListen, actionStopEventListen, actionUpdateStoredBluetoothSettingsList, actionDeployStoredBluetoothSettings, actionDeleteStoredBluetoothSettings, actionStoreBluetoothSettings, actionDeleteStoredUSBSettings, actionDeleteStoredTriggerActionSet, actionDeleteStoredWifiSettings, actionDeleteStoredEthernetInterfaceSettings, actionUpdateCurrentBluetoothControllerInformation, actionDeployCurrentBluetoothControllerInformation, actionUpdateCurrentBluetoothAgentSettings, actionDeployCurrentBluetoothAgentSettings, actionUpdateStoredUSBSettingsList, actionStoreUSBSettings, actionLoadUSBSettings, actionDeployStoredUSBSettings, actionUpdateAllEthernetInterfaceSettings, actionStoreEthernetInterfaceSettings, actionLoadEthernetInterfaceSettings, actionDeployStoredEthernetInterfaceSettings, actionUpdateStoredEthernetInterfaceSettingsList, actionUpdateCurrentHidScriptSourceFromRemoteFile, actionStoreCurrentHidScriptSourceToRemoteFile, actionUpdateStoredBashScriptsList, actionUpdateStoredHIDScriptsList, actionUpdateGadgetSettingsFromDeployed, actionUpdateWifiState, actionUpdateStoredWifiSettingsList, actionStoreWifiSettings, actionLoadWifiSettings, actionDeployStoredWifiSettings, actionDeployWifiSettings, actionUpdateRunningHidJobs, actionUpdateStoredTriggerActionSetsList, actionUpdateCurrentTriggerActionsFromServer, actionAddNewTriggerAction, actionUpdateTriggerActions, actionRemoveTriggerActions, actionStoreTriggerActionSet, actionDeployTriggerActionSetReplace, actionDeployTriggerActionSetAdd, actionDeployStoredTriggerActionSetReplace, actionDeployStoredTriggerActionSetAdd, actionDeployCurrentGadgetSettings, actionDeployEthernetInterfaceSettings, initMVuex, InitGlobalState, GetBaseURL, Store, Router, main, NewTriggerAction, NewTriggerActionSet, NewMasterTemplate, NewRequestMasterTemplateStorage, NewWifiRequestSettingsStorage, NewUSBRequestSettingsStorage, NewUSBGadgetSettings, NewJsEventFromNative, NewHIDJobStateList, NewWiFiState, NewWifiSettings, NewEthernetRequestSettingsStorage, NewEthernetSettingsList, NewEventProcessor, generateSelectOptionsTrigger, generateSelectOptionsAction, generateSelectOptionsGroupReceiveMultiType, generateSelectOptionsGPIOOutValue, generateSelectOptionsGPIONames, generateSelectOptionsGPIOInPullUpDown, generateSelectOptionsGPIOInEdges, generateSelectOptionsTemplateTypes, InitComponentsTriggerActions, newPagination, InitComponentsNetwork, InitComponentsGeneric, InitComponentsDialog, NewBluetoothRequestSettingsStorageFromArgs, NewBluetoothSettings, NewBluetoothAgentSettings, NewBluetoothControllerSettings, NewBluetoothControllerInformation, InitComponentsBluetooth, InitComponentsWiFi, InitCompUSBSettings, newCompUSBSettingsData, newCompToggleSwitchData, InitCompToggleSwitch, newCompStateData, InitCompState, InitCompModal, LogLevelClass, InitCompLogger, newCompHIDScriptCodeEditorData, InitComponentsHIDScript, newCompHIDJobsData, InitCompHIDJobs, newCompHIDEventsData, InitCompHIDEvents, newCompEthernetAddressesData2, InitCompEthernetAddresses2, O, Alert, BytesToMD5;
	context = $packages["context"];
	md5 = $packages["crypto/md5"];
	hex = $packages["encoding/hex"];
	errors = $packages["errors"];
	js = $packages["github.com/gopherjs/gopherjs/js"];
	grpcweb = $packages["github.com/johanbrandhorst/protobuf/grpcweb"];
	common_web = $packages["github.com/mame82/P4wnP1_aloa/common_web"];
	P4wnP1_grpc = $packages["github.com/mame82/P4wnP1_aloa/proto/gopherjs"];
	hvue = $packages["github.com/mame82/hvue"];
	mvuex = $packages["github.com/mame82/mvuex"];
	io = $packages["io"];
	filepath = $packages["path/filepath"];
	strconv = $packages["strconv"];
	strings = $packages["strings"];
	sync = $packages["sync"];
	time = $packages["time"];
	VueRouterConfig = $pkg.VueRouterConfig = $newType(0, $kindStruct, "main.VueRouterConfig", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Routes_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Routes = null;
			return;
		}
		this.Object = Object_;
		this.Routes = Routes_;
	});
	VueRouterOption = $pkg.VueRouterOption = $newType(4, $kindFunc, "main.VueRouterOption", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	Rpc = $pkg.Rpc = $newType(0, $kindStruct, "main.Rpc", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Mutex_, Client_, eventListeningOn_, eventListeningCtx_, eventListeningCancel_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Mutex = ptrType$5.nil;
			this.Client = $ifaceNil;
			this.eventListeningOn = false;
			this.eventListeningCtx = ptrType$6.nil;
			this.eventListeningCancel = $throwNilPointerError;
			return;
		}
		this.Mutex = Mutex_;
		this.Client = Client_;
		this.eventListeningOn = eventListeningOn_;
		this.eventListeningCtx = eventListeningCtx_;
		this.eventListeningCancel = eventListeningCancel_;
	});
	Quasar = $pkg.Quasar = $newType(0, $kindStruct, "main.Quasar", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Version_, Theme_, Plugins_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Version = "";
			this.Theme = "";
			this.Plugins = false;
			return;
		}
		this.Object = Object_;
		this.Version = Version_;
		this.Theme = Theme_;
		this.Plugins = Plugins_;
	});
	QuasarNotification = $pkg.QuasarNotification = $newType(0, $kindStruct, "main.QuasarNotification", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Message_, Detail_, Type_, Color_, TextColor_, Icon_, Position_, Timeout_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Message = "";
			this.Detail = "";
			this.Type = "";
			this.Color = "";
			this.TextColor = "";
			this.Icon = "";
			this.Position = "";
			this.Timeout = 0;
			return;
		}
		this.Object = Object_;
		this.Message = Message_;
		this.Detail = Detail_;
		this.Type = Type_;
		this.Color = Color_;
		this.TextColor = TextColor_;
		this.Icon = Icon_;
		this.Position = Position_;
		this.Timeout = Timeout_;
	});
	Promise = $pkg.Promise = $newType(0, $kindStruct, "main.Promise", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, State_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.State = "";
			return;
		}
		this.Object = Object_;
		this.State = State_;
	});
	GlobalState = $pkg.GlobalState = $newType(0, $kindStruct, "main.GlobalState", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Title_, CurrentHIDScriptSource_, CurrentGadgetSettings_, CurrentlyDeployingGadgetSettings_, CurrentlyDeployingWifiSettings_, EventProcessor_, HidJobList_, TriggerActionList_, IsModalEnabled_, IsConnected_, FailedConnectionAttempts_, InterfaceSettings_, WiFiState_, CurrentBluetoothControllerInformation_, CurrentBluetoothAgentSettings_, CurrentMasterTemplate_, CurrentStartupMasterTemplateName_, StoredWifiSettingsList_, StoredEthernetInterfaceSettingsList_, StoredTriggerActionSetsList_, StoredBashScriptsList_, StoredHIDScriptsList_, StoredUSBSettingsList_, StoredBluetoothSettingsList_, StoredMasterTemplateList_, DBBackupList_, GpioNamesList_, UmsImageListCdrom_, UmsImageListFlashdrive_, ConnectRetryCount_, EventListenerRunning_, EventListenerShouldBeRunning_, EventListenerCancelFunc_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Title = "";
			this.CurrentHIDScriptSource = "";
			this.CurrentGadgetSettings = ptrType$26.nil;
			this.CurrentlyDeployingGadgetSettings = false;
			this.CurrentlyDeployingWifiSettings = false;
			this.EventProcessor = ptrType$22.nil;
			this.HidJobList = ptrType$27.nil;
			this.TriggerActionList = ptrType$28.nil;
			this.IsModalEnabled = false;
			this.IsConnected = false;
			this.FailedConnectionAttempts = 0;
			this.InterfaceSettings = ptrType$18.nil;
			this.WiFiState = ptrType$16.nil;
			this.CurrentBluetoothControllerInformation = ptrType$11.nil;
			this.CurrentBluetoothAgentSettings = ptrType$10.nil;
			this.CurrentMasterTemplate = ptrType$29.nil;
			this.CurrentStartupMasterTemplateName = "";
			this.StoredWifiSettingsList = sliceType$9.nil;
			this.StoredEthernetInterfaceSettingsList = sliceType$9.nil;
			this.StoredTriggerActionSetsList = sliceType$9.nil;
			this.StoredBashScriptsList = sliceType$9.nil;
			this.StoredHIDScriptsList = sliceType$9.nil;
			this.StoredUSBSettingsList = sliceType$9.nil;
			this.StoredBluetoothSettingsList = sliceType$9.nil;
			this.StoredMasterTemplateList = sliceType$9.nil;
			this.DBBackupList = sliceType$9.nil;
			this.GpioNamesList = sliceType$9.nil;
			this.UmsImageListCdrom = sliceType$9.nil;
			this.UmsImageListFlashdrive = sliceType$9.nil;
			this.ConnectRetryCount = 0;
			this.EventListenerRunning = false;
			this.EventListenerShouldBeRunning = false;
			this.EventListenerCancelFunc = $throwNilPointerError;
			return;
		}
		this.Object = Object_;
		this.Title = Title_;
		this.CurrentHIDScriptSource = CurrentHIDScriptSource_;
		this.CurrentGadgetSettings = CurrentGadgetSettings_;
		this.CurrentlyDeployingGadgetSettings = CurrentlyDeployingGadgetSettings_;
		this.CurrentlyDeployingWifiSettings = CurrentlyDeployingWifiSettings_;
		this.EventProcessor = EventProcessor_;
		this.HidJobList = HidJobList_;
		this.TriggerActionList = TriggerActionList_;
		this.IsModalEnabled = IsModalEnabled_;
		this.IsConnected = IsConnected_;
		this.FailedConnectionAttempts = FailedConnectionAttempts_;
		this.InterfaceSettings = InterfaceSettings_;
		this.WiFiState = WiFiState_;
		this.CurrentBluetoothControllerInformation = CurrentBluetoothControllerInformation_;
		this.CurrentBluetoothAgentSettings = CurrentBluetoothAgentSettings_;
		this.CurrentMasterTemplate = CurrentMasterTemplate_;
		this.CurrentStartupMasterTemplateName = CurrentStartupMasterTemplateName_;
		this.StoredWifiSettingsList = StoredWifiSettingsList_;
		this.StoredEthernetInterfaceSettingsList = StoredEthernetInterfaceSettingsList_;
		this.StoredTriggerActionSetsList = StoredTriggerActionSetsList_;
		this.StoredBashScriptsList = StoredBashScriptsList_;
		this.StoredHIDScriptsList = StoredHIDScriptsList_;
		this.StoredUSBSettingsList = StoredUSBSettingsList_;
		this.StoredBluetoothSettingsList = StoredBluetoothSettingsList_;
		this.StoredMasterTemplateList = StoredMasterTemplateList_;
		this.DBBackupList = DBBackupList_;
		this.GpioNamesList = GpioNamesList_;
		this.UmsImageListCdrom = UmsImageListCdrom_;
		this.UmsImageListFlashdrive = UmsImageListFlashdrive_;
		this.ConnectRetryCount = ConnectRetryCount_;
		this.EventListenerRunning = EventListenerRunning_;
		this.EventListenerShouldBeRunning = EventListenerShouldBeRunning_;
		this.EventListenerCancelFunc = EventListenerCancelFunc_;
	});
	triggerType = $pkg.triggerType = $newType(4, $kindInt, "main.triggerType", true, "github.com/mame82/P4wnP1_aloa/web_client", false, null);
	actionType = $pkg.actionType = $newType(4, $kindInt, "main.actionType", true, "github.com/mame82/P4wnP1_aloa/web_client", false, null);
	jsTriggerAction = $pkg.jsTriggerAction = $newType(0, $kindStruct, "main.jsTriggerAction", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Id_, OneShot_, IsActive_, Immutable_, TriggerType_, ActionType_, TriggerData_, ActionData_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Id = 0;
			this.OneShot = false;
			this.IsActive = false;
			this.Immutable = false;
			this.TriggerType = 0;
			this.ActionType = 0;
			this.TriggerData = null;
			this.ActionData = null;
			return;
		}
		this.Object = Object_;
		this.Id = Id_;
		this.OneShot = OneShot_;
		this.IsActive = IsActive_;
		this.Immutable = Immutable_;
		this.TriggerType = TriggerType_;
		this.ActionType = ActionType_;
		this.TriggerData = TriggerData_;
		this.ActionData = ActionData_;
	});
	jsTriggerServiceStarted = $pkg.jsTriggerServiceStarted = $newType(0, $kindStruct, "main.jsTriggerServiceStarted", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerUSBGadgetConnected = $pkg.jsTriggerUSBGadgetConnected = $newType(0, $kindStruct, "main.jsTriggerUSBGadgetConnected", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerUSBGadgetDisconnected = $pkg.jsTriggerUSBGadgetDisconnected = $newType(0, $kindStruct, "main.jsTriggerUSBGadgetDisconnected", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerWifiAPStarted = $pkg.jsTriggerWifiAPStarted = $newType(0, $kindStruct, "main.jsTriggerWifiAPStarted", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerWifiConnectedAsSta = $pkg.jsTriggerWifiConnectedAsSta = $newType(0, $kindStruct, "main.jsTriggerWifiConnectedAsSta", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerSSHLogin = $pkg.jsTriggerSSHLogin = $newType(0, $kindStruct, "main.jsTriggerSSHLogin", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, LoginUser_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.LoginUser = "";
			return;
		}
		this.Object = Object_;
		this.LoginUser = LoginUser_;
	});
	jsTriggerDHCPLeaseGranted = $pkg.jsTriggerDHCPLeaseGranted = $newType(0, $kindStruct, "main.jsTriggerDHCPLeaseGranted", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	jsTriggerGroupReceive = $pkg.jsTriggerGroupReceive = $newType(0, $kindStruct, "main.jsTriggerGroupReceive", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, GroupName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GroupName = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.GroupName = GroupName_;
		this.Value = Value_;
	});
	jsTriggerGroupReceiveMulti = $pkg.jsTriggerGroupReceiveMulti = $newType(0, $kindStruct, "main.jsTriggerGroupReceiveMulti", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, GroupName_, Type_, Values_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GroupName = "";
			this.Type = 0;
			this.Values = sliceType$17.nil;
			return;
		}
		this.Object = Object_;
		this.GroupName = GroupName_;
		this.Type = Type_;
		this.Values = Values_;
	});
	GroupReceiveMultiType = $pkg.GroupReceiveMultiType = $newType(4, $kindInt, "main.GroupReceiveMultiType", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	jsTriggerGPIOIn = $pkg.jsTriggerGPIOIn = $newType(0, $kindStruct, "main.jsTriggerGPIOIn", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, GpioName_, PullUpDown_, Edge_, DebounceMillis_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GpioName = "";
			this.PullUpDown = 0;
			this.Edge = 0;
			this.DebounceMillis = new $Int64(0, 0);
			return;
		}
		this.Object = Object_;
		this.GpioName = GpioName_;
		this.PullUpDown = PullUpDown_;
		this.Edge = Edge_;
		this.DebounceMillis = DebounceMillis_;
	});
	GPIOInPullUpDown = $pkg.GPIOInPullUpDown = $newType(4, $kindInt, "main.GPIOInPullUpDown", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	GPIOInEdge = $pkg.GPIOInEdge = $newType(4, $kindInt, "main.GPIOInEdge", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	jsActionStartBashScript = $pkg.jsActionStartBashScript = $newType(0, $kindStruct, "main.jsActionStartBashScript", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, ScriptName_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.ScriptName = "";
			return;
		}
		this.Object = Object_;
		this.ScriptName = ScriptName_;
	});
	jsActionStartHIDScript = $pkg.jsActionStartHIDScript = $newType(0, $kindStruct, "main.jsActionStartHIDScript", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, ScriptName_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.ScriptName = "";
			return;
		}
		this.Object = Object_;
		this.ScriptName = ScriptName_;
	});
	jsActionDeploySettingsTemplate = $pkg.jsActionDeploySettingsTemplate = $newType(0, $kindStruct, "main.jsActionDeploySettingsTemplate", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Type_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Type = 0;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Type = Type_;
	});
	jsActionGPIOOut = $pkg.jsActionGPIOOut = $newType(0, $kindStruct, "main.jsActionGPIOOut", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, GpioName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GpioName = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.GpioName = GpioName_;
		this.Value = Value_;
	});
	GPIOOutValue = $pkg.GPIOOutValue = $newType(4, $kindInt, "main.GPIOOutValue", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	jsActionGroupSend = $pkg.jsActionGroupSend = $newType(0, $kindStruct, "main.jsActionGroupSend", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, GroupName_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GroupName = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.GroupName = GroupName_;
		this.Value = Value_;
	});
	jsActionLog = $pkg.jsActionLog = $newType(0, $kindStruct, "main.jsActionLog", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	TemplateType = $pkg.TemplateType = $newType(4, $kindInt, "main.TemplateType", true, "github.com/mame82/P4wnP1_aloa/web_client", true, null);
	jsTriggerActionSet = $pkg.jsTriggerActionSet = $newType(0, $kindStruct, "main.jsTriggerActionSet", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Name_, TriggerActions_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Name = "";
			this.TriggerActions = null;
			return;
		}
		this.Object = Object_;
		this.Name = Name_;
		this.TriggerActions = TriggerActions_;
	});
	jsMasterTemplate = $pkg.jsMasterTemplate = $newType(0, $kindStruct, "main.jsMasterTemplate", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateNameBluetooth_, TemplateNameUSB_, TemplateNameWiFi_, TemplateNameTriggerActions_, TemplateNamesNetwork_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateNameBluetooth = "";
			this.TemplateNameUSB = "";
			this.TemplateNameWiFi = "";
			this.TemplateNameTriggerActions = "";
			this.TemplateNamesNetwork = sliceType$9.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateNameBluetooth = TemplateNameBluetooth_;
		this.TemplateNameUSB = TemplateNameUSB_;
		this.TemplateNameWiFi = TemplateNameWiFi_;
		this.TemplateNameTriggerActions = TemplateNameTriggerActions_;
		this.TemplateNamesNetwork = TemplateNamesNetwork_;
	});
	jsRequestMasterTemplateStorage = $pkg.jsRequestMasterTemplateStorage = $newType(0, $kindStruct, "main.jsRequestMasterTemplateStorage", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Template_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Template = ptrType$29.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Template = Template_;
	});
	jsLoadHidScriptSourceMode = $pkg.jsLoadHidScriptSourceMode = $newType(4, $kindInt, "main.jsLoadHidScriptSourceMode", true, "github.com/mame82/P4wnP1_aloa/web_client", false, null);
	jsLoadHidScriptSourceReq = $pkg.jsLoadHidScriptSourceReq = $newType(0, $kindStruct, "main.jsLoadHidScriptSourceReq", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, FileName_, Mode_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.FileName = "";
			this.Mode = 0;
			return;
		}
		this.Object = Object_;
		this.FileName = FileName_;
		this.Mode = Mode_;
	});
	jsWifiRequestSettingsStorage = $pkg.jsWifiRequestSettingsStorage = $newType(0, $kindStruct, "main.jsWifiRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Settings = ptrType$17.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	jsUSBRequestSettingsStorage = $pkg.jsUSBRequestSettingsStorage = $newType(0, $kindStruct, "main.jsUSBRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Settings = ptrType$26.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	jsGadgetSettings = $pkg.jsGadgetSettings = $newType(0, $kindStruct, "main.jsGadgetSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Enabled_, Vid_, Pid_, Manufacturer_, Product_, Serial_, Use_CDC_ECM_, Use_RNDIS_, Use_HID_KEYBOARD_, Use_HID_MOUSE_, Use_HID_RAW_, Use_UMS_, Use_SERIAL_, RndisSettings_, CdcEcmSettings_, UmsSettings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Enabled = false;
			this.Vid = "";
			this.Pid = "";
			this.Manufacturer = "";
			this.Product = "";
			this.Serial = "";
			this.Use_CDC_ECM = false;
			this.Use_RNDIS = false;
			this.Use_HID_KEYBOARD = false;
			this.Use_HID_MOUSE = false;
			this.Use_HID_RAW = false;
			this.Use_UMS = false;
			this.Use_SERIAL = false;
			this.RndisSettings = ptrType$33.nil;
			this.CdcEcmSettings = ptrType$33.nil;
			this.UmsSettings = ptrType$34.nil;
			return;
		}
		this.Object = Object_;
		this.Enabled = Enabled_;
		this.Vid = Vid_;
		this.Pid = Pid_;
		this.Manufacturer = Manufacturer_;
		this.Product = Product_;
		this.Serial = Serial_;
		this.Use_CDC_ECM = Use_CDC_ECM_;
		this.Use_RNDIS = Use_RNDIS_;
		this.Use_HID_KEYBOARD = Use_HID_KEYBOARD_;
		this.Use_HID_MOUSE = Use_HID_MOUSE_;
		this.Use_HID_RAW = Use_HID_RAW_;
		this.Use_UMS = Use_UMS_;
		this.Use_SERIAL = Use_SERIAL_;
		this.RndisSettings = RndisSettings_;
		this.CdcEcmSettings = CdcEcmSettings_;
		this.UmsSettings = UmsSettings_;
	});
	jsGadgetSettingsEthernet = $pkg.jsGadgetSettingsEthernet = $newType(0, $kindStruct, "main.jsGadgetSettingsEthernet", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, HostAddr_, DevAddr_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.HostAddr = "";
			this.DevAddr = "";
			return;
		}
		this.Object = Object_;
		this.HostAddr = HostAddr_;
		this.DevAddr = DevAddr_;
	});
	jsGadgetSettingsUMS = $pkg.jsGadgetSettingsUMS = $newType(0, $kindStruct, "main.jsGadgetSettingsUMS", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Cdrom_, File_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Cdrom = false;
			this.File = "";
			return;
		}
		this.Object = Object_;
		this.Cdrom = Cdrom_;
		this.File = File_;
	});
	jsEvent = $pkg.jsEvent = $newType(0, $kindStruct, "main.jsEvent", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Type_, Values_, JSValues_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Type = new $Int64(0, 0);
			this.Values = sliceType$13.nil;
			this.JSValues = null;
			return;
		}
		this.Object = Object_;
		this.Type = Type_;
		this.Values = Values_;
		this.JSValues = JSValues_;
	});
	jsLogEvent = $pkg.jsLogEvent = $newType(0, $kindStruct, "main.jsLogEvent", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, EvLogSource_, EvLogLevel_, EvLogMessage_, EvLogTime_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.EvLogSource = "";
			this.EvLogLevel = 0;
			this.EvLogMessage = "";
			this.EvLogTime = new $Int64(0, 0);
			return;
		}
		this.Object = Object_;
		this.EvLogSource = EvLogSource_;
		this.EvLogLevel = EvLogLevel_;
		this.EvLogMessage = EvLogMessage_;
		this.EvLogTime = EvLogTime_;
	});
	jsHidEvent = $pkg.jsHidEvent = $newType(0, $kindStruct, "main.jsHidEvent", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, EvType_, VMId_, JobId_, HasError_, Result_, Error_, Message_, EvLogTime_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.EvType = new $Int64(0, 0);
			this.VMId = new $Int64(0, 0);
			this.JobId = new $Int64(0, 0);
			this.HasError = false;
			this.Result = "";
			this.Error = "";
			this.Message = "";
			this.EvLogTime = new $Int64(0, 0);
			return;
		}
		this.Object = Object_;
		this.EvType = EvType_;
		this.VMId = VMId_;
		this.JobId = JobId_;
		this.HasError = HasError_;
		this.Result = Result_;
		this.Error = Error_;
		this.Message = Message_;
		this.EvLogTime = EvLogTime_;
	});
	jsHidJobState = $pkg.jsHidJobState = $newType(0, $kindStruct, "main.jsHidJobState", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Id_, VmId_, HasFailed_, HasSucceeded_, LastMessage_, TextResult_, LastUpdateTime_, ScriptSource_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Id = new $Int64(0, 0);
			this.VmId = new $Int64(0, 0);
			this.HasFailed = false;
			this.HasSucceeded = false;
			this.LastMessage = "";
			this.TextResult = "";
			this.LastUpdateTime = new $Int64(0, 0);
			this.ScriptSource = "";
			return;
		}
		this.Object = Object_;
		this.Id = Id_;
		this.VmId = VmId_;
		this.HasFailed = HasFailed_;
		this.HasSucceeded = HasSucceeded_;
		this.LastMessage = LastMessage_;
		this.TextResult = TextResult_;
		this.LastUpdateTime = LastUpdateTime_;
		this.ScriptSource = ScriptSource_;
	});
	jsHidJobStateList = $pkg.jsHidJobStateList = $newType(0, $kindStruct, "main.jsHidJobStateList", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Jobs_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Jobs = null;
			return;
		}
		this.Object = Object_;
		this.Jobs = Jobs_;
	});
	jsWiFiState = $pkg.jsWiFiState = $newType(0, $kindStruct, "main.jsWiFiState", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Mode_, Channel_, Ssid_, CurrentSettings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Mode = 0;
			this.Channel = 0;
			this.Ssid = "";
			this.CurrentSettings = ptrType$17.nil;
			return;
		}
		this.Object = Object_;
		this.Mode = Mode_;
		this.Channel = Channel_;
		this.Ssid = Ssid_;
		this.CurrentSettings = CurrentSettings_;
	});
	jsWiFiBSSCfg = $pkg.jsWiFiBSSCfg = $newType(0, $kindStruct, "main.jsWiFiBSSCfg", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, SSID_, PSK_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.SSID = "";
			this.PSK = "";
			return;
		}
		this.Object = Object_;
		this.SSID = SSID_;
		this.PSK = PSK_;
	});
	jsWiFiSettings = $pkg.jsWiFiSettings = $newType(0, $kindStruct, "main.jsWiFiSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Name_, Disabled_, Reg_, Mode_, AuthMode_, Channel_, HideSsid_, Nexmon_, Ap_BSS_, Client_BSSList_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Name = "";
			this.Disabled = false;
			this.Reg = "";
			this.Mode = 0;
			this.AuthMode = 0;
			this.Channel = 0;
			this.HideSsid = false;
			this.Nexmon = false;
			this.Ap_BSS = ptrType$87.nil;
			this.Client_BSSList = null;
			return;
		}
		this.Object = Object_;
		this.Name = Name_;
		this.Disabled = Disabled_;
		this.Reg = Reg_;
		this.Mode = Mode_;
		this.AuthMode = AuthMode_;
		this.Channel = Channel_;
		this.HideSsid = HideSsid_;
		this.Nexmon = Nexmon_;
		this.Ap_BSS = Ap_BSS_;
		this.Client_BSSList = Client_BSSList_;
	});
	jsEthernetRequestSettingsStorage = $pkg.jsEthernetRequestSettingsStorage = $newType(0, $kindStruct, "main.jsEthernetRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Settings = ptrType$31.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	jsEthernetSettingsArray = $pkg.jsEthernetSettingsArray = $newType(0, $kindStruct, "main.jsEthernetSettingsArray", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Interfaces_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Interfaces = null;
			return;
		}
		this.Object = Object_;
		this.Interfaces = Interfaces_;
	});
	jsEthernetInterfaceSettings = $pkg.jsEthernetInterfaceSettings = $newType(0, $kindStruct, "main.jsEthernetInterfaceSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Name_, Mode_, IpAddress4_, Netmask4_, Enabled_, DhcpServerSettings_, SettingsInUse_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Name = "";
			this.Mode = 0;
			this.IpAddress4 = "";
			this.Netmask4 = "";
			this.Enabled = false;
			this.DhcpServerSettings = ptrType$32.nil;
			this.SettingsInUse = false;
			return;
		}
		this.Object = Object_;
		this.Name = Name_;
		this.Mode = Mode_;
		this.IpAddress4 = IpAddress4_;
		this.Netmask4 = Netmask4_;
		this.Enabled = Enabled_;
		this.DhcpServerSettings = DhcpServerSettings_;
		this.SettingsInUse = SettingsInUse_;
	});
	jsDHCPServerSettings = $pkg.jsDHCPServerSettings = $newType(0, $kindStruct, "main.jsDHCPServerSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, ListenPort_, ListenInterface_, LeaseFile_, NotAuthoritative_, DoNotBindInterface_, CallbackScript_, Ranges_, Options_, StaticHosts_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.ListenPort = 0;
			this.ListenInterface = "";
			this.LeaseFile = "";
			this.NotAuthoritative = false;
			this.DoNotBindInterface = false;
			this.CallbackScript = "";
			this.Ranges = null;
			this.Options = null;
			this.StaticHosts = null;
			return;
		}
		this.Object = Object_;
		this.ListenPort = ListenPort_;
		this.ListenInterface = ListenInterface_;
		this.LeaseFile = LeaseFile_;
		this.NotAuthoritative = NotAuthoritative_;
		this.DoNotBindInterface = DoNotBindInterface_;
		this.CallbackScript = CallbackScript_;
		this.Ranges = Ranges_;
		this.Options = Options_;
		this.StaticHosts = StaticHosts_;
	});
	jsDHCPServerRange = $pkg.jsDHCPServerRange = $newType(0, $kindStruct, "main.jsDHCPServerRange", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, RangeLower_, RangeUpper_, LeaseTime_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.RangeLower = "";
			this.RangeUpper = "";
			this.LeaseTime = "";
			return;
		}
		this.Object = Object_;
		this.RangeLower = RangeLower_;
		this.RangeUpper = RangeUpper_;
		this.LeaseTime = LeaseTime_;
	});
	jsDHCPServerOption = $pkg.jsDHCPServerOption = $newType(0, $kindStruct, "main.jsDHCPServerOption", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Option_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Option = 0;
			this.Value = "";
			return;
		}
		this.Object = Object_;
		this.Option = Option_;
		this.Value = Value_;
	});
	jsDHCPServerStaticHost = $pkg.jsDHCPServerStaticHost = $newType(0, $kindStruct, "main.jsDHCPServerStaticHost", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Mac_, Ip_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Mac = "";
			this.Ip = "";
			return;
		}
		this.Object = Object_;
		this.Mac = Mac_;
		this.Ip = Ip_;
	});
	jsEventProcessor = $pkg.jsEventProcessor = $newType(0, $kindStruct, "main.jsEventProcessor", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, LogArray_, HidEventArray_, MaxEntries_, JobList_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.LogArray = null;
			this.HidEventArray = null;
			this.MaxEntries = 0;
			this.JobList = ptrType$27.nil;
			return;
		}
		this.Object = Object_;
		this.LogArray = LogArray_;
		this.HidEventArray = HidEventArray_;
		this.MaxEntries = MaxEntries_;
		this.JobList = JobList_;
	});
	jsDataTablePagination = $pkg.jsDataTablePagination = $newType(0, $kindStruct, "main.jsDataTablePagination", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, RowsPerPage_, Descending_, Page_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.RowsPerPage = 0;
			this.Descending = false;
			this.Page = 0;
			return;
		}
		this.Object = Object_;
		this.RowsPerPage = RowsPerPage_;
		this.Descending = Descending_;
		this.Page = Page_;
	});
	jsBluetoothRequestSettingsStorage = $pkg.jsBluetoothRequestSettingsStorage = $newType(0, $kindStruct, "main.jsBluetoothRequestSettingsStorage", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, TemplateName_, Settings_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.TemplateName = "";
			this.Settings = ptrType$95.nil;
			return;
		}
		this.Object = Object_;
		this.TemplateName = TemplateName_;
		this.Settings = Settings_;
	});
	jsBluetoothSettings = $pkg.jsBluetoothSettings = $newType(0, $kindStruct, "main.jsBluetoothSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Ci_, As_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Ci = ptrType$11.nil;
			this.As = ptrType$10.nil;
			return;
		}
		this.Object = Object_;
		this.Ci = Ci_;
		this.As = As_;
	});
	jsBluetoothAgentSettings = $pkg.jsBluetoothAgentSettings = $newType(0, $kindStruct, "main.jsBluetoothAgentSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Pin_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Pin = "";
			return;
		}
		this.Object = Object_;
		this.Pin = Pin_;
	});
	jsBluetoothControllerSettings = $pkg.jsBluetoothControllerSettings = $newType(0, $kindStruct, "main.jsBluetoothControllerSettings", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Powered_, Connectable_, FastConnectable_, Discoverable_, Bondable_, LinkLevelSecurity_, SecureSimplePairing_, BrEdr_, HighSpeed_, LowEnergy_, Advertising_, SecureConnections_, DebugKeys_, Privacy_, ControllerConfiguration_, StaticAddress_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Powered = false;
			this.Connectable = false;
			this.FastConnectable = false;
			this.Discoverable = false;
			this.Bondable = false;
			this.LinkLevelSecurity = false;
			this.SecureSimplePairing = false;
			this.BrEdr = false;
			this.HighSpeed = false;
			this.LowEnergy = false;
			this.Advertising = false;
			this.SecureConnections = false;
			this.DebugKeys = false;
			this.Privacy = false;
			this.ControllerConfiguration = false;
			this.StaticAddress = false;
			return;
		}
		this.Object = Object_;
		this.Powered = Powered_;
		this.Connectable = Connectable_;
		this.FastConnectable = FastConnectable_;
		this.Discoverable = Discoverable_;
		this.Bondable = Bondable_;
		this.LinkLevelSecurity = LinkLevelSecurity_;
		this.SecureSimplePairing = SecureSimplePairing_;
		this.BrEdr = BrEdr_;
		this.HighSpeed = HighSpeed_;
		this.LowEnergy = LowEnergy_;
		this.Advertising = Advertising_;
		this.SecureConnections = SecureConnections_;
		this.DebugKeys = DebugKeys_;
		this.Privacy = Privacy_;
		this.ControllerConfiguration = ControllerConfiguration_;
		this.StaticAddress = StaticAddress_;
	});
	jsBluetoothControllerInformation = $pkg.jsBluetoothControllerInformation = $newType(0, $kindStruct, "main.jsBluetoothControllerInformation", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, IsAvailable_, Address_, BluetoothVersion_, Manufacturer_, SupportedSettings_, CurrentSettings_, ClassOfDevice_, Name_, ShortName_, ServiceNetworkServerNAP_, ServiceNetworkServerPANU_, ServiceNetworkServerGN_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.IsAvailable = false;
			this.Address = sliceType$10.nil;
			this.BluetoothVersion = 0;
			this.Manufacturer = 0;
			this.SupportedSettings = ptrType$12.nil;
			this.CurrentSettings = ptrType$12.nil;
			this.ClassOfDevice = sliceType$10.nil;
			this.Name = "";
			this.ShortName = "";
			this.ServiceNetworkServerNAP = false;
			this.ServiceNetworkServerPANU = false;
			this.ServiceNetworkServerGN = false;
			return;
		}
		this.Object = Object_;
		this.IsAvailable = IsAvailable_;
		this.Address = Address_;
		this.BluetoothVersion = BluetoothVersion_;
		this.Manufacturer = Manufacturer_;
		this.SupportedSettings = SupportedSettings_;
		this.CurrentSettings = CurrentSettings_;
		this.ClassOfDevice = ClassOfDevice_;
		this.Name = Name_;
		this.ShortName = ShortName_;
		this.ServiceNetworkServerNAP = ServiceNetworkServerNAP_;
		this.ServiceNetworkServerPANU = ServiceNetworkServerPANU_;
		this.ServiceNetworkServerGN = ServiceNetworkServerGN_;
	});
	CompUSBSettingsData = $pkg.CompUSBSettingsData = $newType(0, $kindStruct, "main.CompUSBSettingsData", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, GadgetSettings_, DeployPending_, CdcEcmDetails_, RndisDetails_, ShowStoreModal_, ShowLoadModal_, ShowDeployStoredModal_, ShowUmsModal_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.GadgetSettings = ptrType$26.nil;
			this.DeployPending = false;
			this.CdcEcmDetails = false;
			this.RndisDetails = false;
			this.ShowStoreModal = false;
			this.ShowLoadModal = false;
			this.ShowDeployStoredModal = false;
			this.ShowUmsModal = false;
			return;
		}
		this.Object = Object_;
		this.GadgetSettings = GadgetSettings_;
		this.DeployPending = DeployPending_;
		this.CdcEcmDetails = CdcEcmDetails_;
		this.RndisDetails = RndisDetails_;
		this.ShowStoreModal = ShowStoreModal_;
		this.ShowLoadModal = ShowLoadModal_;
		this.ShowDeployStoredModal = ShowDeployStoredModal_;
		this.ShowUmsModal = ShowUmsModal_;
	});
	CompToggleSwitchData = $pkg.CompToggleSwitchData = $newType(0, $kindStruct, "main.CompToggleSwitchData", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	CompHIDScriptCodeEditorData = $pkg.CompHIDScriptCodeEditorData = $newType(0, $kindStruct, "main.CompHIDScriptCodeEditorData", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, CodeMirrorOptions_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.CodeMirrorOptions = ptrType$99.nil;
			return;
		}
		this.Object = Object_;
		this.CodeMirrorOptions = CodeMirrorOptions_;
	});
	CodeMirrorMode = $pkg.CodeMirrorMode = $newType(0, $kindStruct, "main.CodeMirrorMode", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Name_, GlobalVars_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Name = "";
			this.GlobalVars = false;
			return;
		}
		this.Object = Object_;
		this.Name = Name_;
		this.GlobalVars = GlobalVars_;
	});
	CodeMirrorExtraKeys = $pkg.CodeMirrorExtraKeys = $newType(0, $kindStruct, "main.CodeMirrorExtraKeys", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, CtrlSpace_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.CtrlSpace = "";
			return;
		}
		this.Object = Object_;
		this.CtrlSpace = CtrlSpace_;
	});
	CodeMirrorOptionsType = $pkg.CodeMirrorOptionsType = $newType(0, $kindStruct, "main.CodeMirrorOptionsType", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Mode_, LineNumbers_, LineWrapping_, AutoCloseBrackets_, ExtraKeys_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Mode = ptrType$100.nil;
			this.LineNumbers = false;
			this.LineWrapping = false;
			this.AutoCloseBrackets = false;
			this.ExtraKeys = ptrType$101.nil;
			return;
		}
		this.Object = Object_;
		this.Mode = Mode_;
		this.LineNumbers = LineNumbers_;
		this.LineWrapping = LineWrapping_;
		this.AutoCloseBrackets = AutoCloseBrackets_;
		this.ExtraKeys = ExtraKeys_;
	});
	CompHIDJobsData = $pkg.CompHIDJobsData = $newType(0, $kindStruct, "main.CompHIDJobsData", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	CompHIDEventsData = $pkg.CompHIDEventsData = $newType(0, $kindStruct, "main.CompHIDEventsData", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_, Pagination_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Pagination = ptrType$94.nil;
			return;
		}
		this.Object = Object_;
		this.Pagination = Pagination_;
	});
	CompEthernetAddressesData2 = $pkg.CompEthernetAddressesData2 = $newType(0, $kindStruct, "main.CompEthernetAddressesData2", true, "github.com/mame82/P4wnP1_aloa/web_client", true, function(Object_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			return;
		}
		this.Object = Object_;
	});
	option = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$1 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$2 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$3 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$4 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = "";
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$5 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$6 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	option$7 = $newType(0, $kindStruct, "main.option", true, "github.com/mame82/P4wnP1_aloa/web_client", false, function(Object_, Label_, Value_) {
		this.$val = this;
		if (arguments.length === 0) {
			this.Object = null;
			this.Label = "";
			this.Value = 0;
			return;
		}
		this.Object = Object_;
		this.Label = Label_;
		this.Value = Value_;
	});
	ptrType = $ptrType(GlobalState);
	sliceType = $sliceType(triggerType);
	sliceType$1 = $sliceType(actionType);
	sliceType$2 = $sliceType(GroupReceiveMultiType);
	sliceType$3 = $sliceType(GPIOInPullUpDown);
	sliceType$4 = $sliceType(GPIOInEdge);
	sliceType$5 = $sliceType(GPIOOutValue);
	sliceType$6 = $sliceType(TemplateType);
	ptrType$1 = $ptrType(hvue.Config);
	ptrType$2 = $ptrType(js.Object);
	structType = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: "js:\"path\""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"name\""}, {prop: "Component", name: "Component", embedded: false, exported: true, typ: ptrType$1, tag: "js:\"component\""}]);
	ptrType$3 = $ptrType($packages["reflect"].rtype);
	ptrType$4 = $ptrType(VueRouterConfig);
	ptrType$5 = $ptrType(sync.Mutex);
	ptrType$6 = $ptrType(context.Context);
	sliceType$7 = $sliceType(grpcweb.CallOption);
	sliceType$8 = $sliceType(grpcweb.DialOption);
	sliceType$9 = $sliceType($String);
	ptrType$7 = $ptrType(P4wnP1_grpc.MasterTemplate);
	sliceType$10 = $sliceType($Uint8);
	ptrType$8 = $ptrType(P4wnP1_grpc.HIDScriptJob);
	ptrType$9 = $ptrType(P4wnP1_grpc.BluetoothSettings);
	ptrType$10 = $ptrType(jsBluetoothAgentSettings);
	ptrType$11 = $ptrType(jsBluetoothControllerInformation);
	ptrType$12 = $ptrType(jsBluetoothControllerSettings);
	ptrType$13 = $ptrType(P4wnP1_grpc.GadgetSettings);
	ptrType$14 = $ptrType(P4wnP1_grpc.WiFiState);
	ptrType$15 = $ptrType(P4wnP1_grpc.WiFiSettings);
	ptrType$16 = $ptrType(jsWiFiState);
	ptrType$17 = $ptrType(jsWiFiSettings);
	ptrType$18 = $ptrType(jsEthernetSettingsArray);
	ptrType$19 = $ptrType(P4wnP1_grpc.EthernetInterfaceSettings);
	ptrType$20 = $ptrType(P4wnP1_grpc.HIDRunningJobStateResult);
	sliceType$11 = $sliceType(ptrType$20);
	ptrType$21 = $ptrType(P4wnP1_grpc.TriggerActionSet);
	ptrType$22 = $ptrType(jsEventProcessor);
	mapType = $mapType($String, ptrType$2);
	ptrType$23 = $ptrType(QuasarNotification);
	ptrType$25 = $ptrType(Promise);
	structType$1 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Resolve", name: "Resolve", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"resolve\""}, {prop: "Reject", name: "Reject", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"reject\""}]);
	funcType = $funcType([ptrType$2, ptrType$2], [], false);
	ptrType$26 = $ptrType(jsGadgetSettings);
	ptrType$27 = $ptrType(jsHidJobStateList);
	ptrType$28 = $ptrType(jsTriggerActionSet);
	ptrType$29 = $ptrType(jsMasterTemplate);
	funcType$1 = $funcType([ptrType$2], [], false);
	ptrType$30 = $ptrType(jsHidJobState);
	funcType$2 = $funcType([ptrType$30], [$Bool], false);
	ptrType$31 = $ptrType(jsEthernetInterfaceSettings);
	ptrType$32 = $ptrType(jsDHCPServerSettings);
	ptrType$33 = $ptrType(jsGadgetSettingsEthernet);
	ptrType$34 = $ptrType(jsGadgetSettingsUMS);
	ptrType$35 = $ptrType(P4wnP1_grpc.TriggerAction);
	sliceType$12 = $sliceType(ptrType$35);
	funcType$3 = $funcType([ptrType$2], [$emptyInterface], false);
	ptrType$36 = $ptrType(mvuex.Store);
	funcType$4 = $funcType([ptrType$36, ptrType, $Bool], [], false);
	funcType$5 = $funcType([ptrType$36, ptrType, $String], [], false);
	funcType$6 = $funcType([ptrType$36, ptrType, ptrType$26], [], false);
	funcType$7 = $funcType([ptrType$36, ptrType, ptrType$16], [], false);
	funcType$8 = $funcType([ptrType$36, ptrType, ptrType$17], [], false);
	sliceType$13 = $sliceType($emptyInterface);
	funcType$9 = $funcType([ptrType$36, ptrType, sliceType$13], [], false);
	funcType$10 = $funcType([ptrType$36, ptrType, ptrType$18], [], false);
	funcType$11 = $funcType([ptrType$36, ptrType, ptrType$31], [], false);
	funcType$12 = $funcType([ptrType$36, ptrType, ptrType$11], [], false);
	funcType$13 = $funcType([ptrType$36, ptrType, ptrType$10], [], false);
	funcType$14 = $funcType([ptrType$36, ptrType, ptrType$2], [], false);
	funcType$15 = $funcType([ptrType$36, ptrType, ptrType$29], [], false);
	ptrType$37 = $ptrType(mvuex.ActionContext);
	funcType$16 = $funcType([ptrType$36, ptrType$37, ptrType], [], false);
	funcType$17 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$29], [], false);
	ptrType$38 = $ptrType(jsRequestMasterTemplateStorage);
	funcType$18 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$38], [], false);
	funcType$19 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$2], [], false);
	ptrType$39 = $ptrType(jsBluetoothRequestSettingsStorage);
	funcType$20 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$39], [], false);
	ptrType$40 = $ptrType(jsUSBRequestSettingsStorage);
	funcType$21 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$40], [], false);
	funcType$22 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$31], [], false);
	funcType$23 = $funcType([ptrType$36, ptrType$37, ptrType], [$emptyInterface], false);
	funcType$24 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$17], [], false);
	funcType$25 = $funcType([ptrType$36, ptrType$37, ptrType], [ptrType$2], false);
	funcType$26 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$28], [], false);
	ptrType$41 = $ptrType(jsLoadHidScriptSourceReq);
	funcType$27 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$41], [], false);
	ptrType$42 = $ptrType(jsWifiRequestSettingsStorage);
	funcType$28 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$42], [], false);
	ptrType$43 = $ptrType(jsEthernetRequestSettingsStorage);
	funcType$29 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$43], [], false);
	funcType$30 = $funcType([ptrType$36, ptrType$37, ptrType, ptrType$2], [$emptyInterface], false);
	funcType$31 = $funcType([ptrType], [$emptyInterface], false);
	structType$2 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: "js:\"value\""}]);
	sliceType$14 = $sliceType(mvuex.StoreOption);
	sliceType$15 = $sliceType(VueRouterOption);
	sliceType$16 = $sliceType(hvue.ComponentOption);
	ptrType$44 = $ptrType(hvue.VM);
	ptrType$45 = $ptrType(P4wnP1_grpc.TriggerAction_Log);
	ptrType$46 = $ptrType(P4wnP1_grpc.TriggerAction_HidScript);
	ptrType$47 = $ptrType(P4wnP1_grpc.TriggerAction_DeploySettingsTemplate);
	ptrType$48 = $ptrType(P4wnP1_grpc.TriggerAction_BashScript);
	ptrType$49 = $ptrType(P4wnP1_grpc.TriggerAction_GpioOut);
	ptrType$50 = $ptrType(P4wnP1_grpc.TriggerAction_GroupSend);
	ptrType$51 = $ptrType(P4wnP1_grpc.TriggerAction_SshLogin);
	ptrType$52 = $ptrType(P4wnP1_grpc.TriggerAction_DhcpLeaseGranted);
	ptrType$53 = $ptrType(P4wnP1_grpc.TriggerAction_WifiAPStarted);
	ptrType$54 = $ptrType(P4wnP1_grpc.TriggerAction_WifiConnectedAsSta);
	ptrType$55 = $ptrType(P4wnP1_grpc.TriggerAction_UsbGadgetConnected);
	ptrType$56 = $ptrType(P4wnP1_grpc.TriggerAction_UsbGadgetDisconnected);
	ptrType$57 = $ptrType(P4wnP1_grpc.TriggerAction_ServiceStarted);
	ptrType$58 = $ptrType(P4wnP1_grpc.TriggerAction_GpioIn);
	ptrType$59 = $ptrType(P4wnP1_grpc.TriggerAction_GroupReceive);
	ptrType$60 = $ptrType(P4wnP1_grpc.TriggerAction_GroupReceiveMulti);
	sliceType$17 = $sliceType($Int32);
	ptrType$61 = $ptrType(P4wnP1_grpc.ActionLog);
	ptrType$62 = $ptrType(P4wnP1_grpc.ActionStartHIDScript);
	ptrType$63 = $ptrType(P4wnP1_grpc.ActionDeploySettingsTemplate);
	ptrType$64 = $ptrType(P4wnP1_grpc.ActionStartBashScript);
	ptrType$65 = $ptrType(P4wnP1_grpc.ActionGPIOOut);
	ptrType$66 = $ptrType(P4wnP1_grpc.ActionGroupSend);
	ptrType$67 = $ptrType(P4wnP1_grpc.TriggerSSHLogin);
	ptrType$68 = $ptrType(P4wnP1_grpc.TriggerDHCPLeaseGranted);
	ptrType$69 = $ptrType(P4wnP1_grpc.TriggerWifiAPStarted);
	ptrType$70 = $ptrType(P4wnP1_grpc.TriggerWifiConnectedAsSta);
	ptrType$71 = $ptrType(P4wnP1_grpc.TriggerUSBGadgetConnected);
	ptrType$72 = $ptrType(P4wnP1_grpc.TriggerUSBGadgetDisconnected);
	ptrType$73 = $ptrType(P4wnP1_grpc.TriggerServiceStarted);
	ptrType$74 = $ptrType(P4wnP1_grpc.TriggerGPIOIn);
	ptrType$75 = $ptrType(P4wnP1_grpc.TriggerGroupReceive);
	ptrType$76 = $ptrType(P4wnP1_grpc.TriggerGroupReceiveMulti);
	ptrType$77 = $ptrType(jsTriggerAction);
	ptrType$78 = $ptrType(P4wnP1_grpc.GadgetSettingsEthernet);
	ptrType$79 = $ptrType(P4wnP1_grpc.GadgetSettingsUMS);
	ptrType$80 = $ptrType(jsEvent);
	ptrType$81 = $ptrType(P4wnP1_grpc.EventValue_Tint64);
	ptrType$82 = $ptrType(P4wnP1_grpc.EventValue_Tstring);
	ptrType$83 = $ptrType(P4wnP1_grpc.EventValue_Tbool);
	ptrType$84 = $ptrType(jsLogEvent);
	ptrType$85 = $ptrType(jsHidEvent);
	ptrType$86 = $ptrType(P4wnP1_grpc.WiFiBSSCfg);
	sliceType$18 = $sliceType(ptrType$86);
	ptrType$87 = $ptrType(jsWiFiBSSCfg);
	funcType$32 = $funcType([ptrType$31, ptrType$31], [$Int], false);
	ptrType$88 = $ptrType(P4wnP1_grpc.DHCPServerSettings);
	ptrType$89 = $ptrType(P4wnP1_grpc.DHCPServerRange);
	sliceType$19 = $sliceType(ptrType$89);
	ptrType$90 = $ptrType(P4wnP1_grpc.DHCPServerStaticHost);
	sliceType$20 = $sliceType(ptrType$90);
	ptrType$91 = $ptrType(jsDHCPServerRange);
	ptrType$92 = $ptrType(jsDHCPServerOption);
	ptrType$93 = $ptrType(jsDHCPServerStaticHost);
	structType$3 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowReplaceTASModal", name: "ShowReplaceTASModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showReplaceTASModal\""}, {prop: "ShowAddTASModal", name: "ShowAddTASModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showAddTASModal\""}, {prop: "ShowStoreTASModal", name: "ShowStoreTASModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreTASModal\""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"templateName\""}]);
	funcType$33 = $funcType([ptrType$44, ptrType$2], [], false);
	funcType$34 = $funcType([ptrType$44], [], false);
	structType$4 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Edit", name: "Edit", embedded: false, exported: true, typ: $Bool, tag: "js:\"Edit\""}]);
	sliceType$21 = $sliceType(hvue.PropOption);
	sliceType$22 = $sliceType(hvue.pOptionType);
	funcType$35 = $funcType([ptrType$44, $Bool], [], false);
	structType$5 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowSelectHIDScriptModal", name: "ShowSelectHIDScriptModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowSelectHIDScriptModal\""}, {prop: "ShowSelectBashScriptModal", name: "ShowSelectBashScriptModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowSelectBashScriptModal\""}, {prop: "ShowSelectTemplateModal", name: "ShowSelectTemplateModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowSelectTemplateModal\""}]);
	funcType$36 = $funcType([ptrType$44], [$emptyInterface], false);
	ptrType$94 = $ptrType(jsDataTablePagination);
	structType$6 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "CurrentInterface", name: "CurrentInterface", embedded: false, exported: true, typ: $Int, tag: "js:\"currentIdx\""}, {prop: "ShowStoreModal", name: "ShowStoreModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreModal\""}, {prop: "ShowLoadModal", name: "ShowLoadModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showLoadModal\""}, {prop: "ShowDeployStoredModal", name: "ShowDeployStoredModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showDeployStoredModal\""}]);
	structType$7 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Int, tag: "js:\"value\""}]);
	funcType$37 = $funcType([ptrType$44, ptrType$31], [], false);
	funcType$38 = $funcType([], [], false);
	structType$8 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Val", name: "Val", embedded: false, exported: true, typ: $Int, tag: "js:\"value\""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}]);
	funcType$39 = $funcType([ptrType$44, ptrType$91], [], false);
	structType$9 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Pagination", name: "Pagination", embedded: false, exported: true, typ: ptrType$94, tag: "js:\"pagination\""}]);
	funcType$40 = $funcType([ptrType$44, ptrType$92], [], false);
	funcType$41 = $funcType([ptrType$44, ptrType$93], [], false);
	structType$10 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowTemplateSelect", name: "ShowTemplateSelect", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelect\""}]);
	funcType$42 = $funcType([$emptyInterface], [], false);
	structType$11 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowTemplateSelectBluetooth", name: "ShowTemplateSelectBluetooth", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelectBluetooth\""}, {prop: "ShowTemplateSelectWiFi", name: "ShowTemplateSelectWiFi", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelectWiFi\""}, {prop: "ShowTemplateSelectUSB", name: "ShowTemplateSelectUSB", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelectUSB\""}, {prop: "ShowTemplateSelectTriggerAction", name: "ShowTemplateSelectTriggerAction", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelectTriggerAction\""}, {prop: "ShowTemplateSelectNetwork", name: "ShowTemplateSelectNetwork", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowTemplateSelectNetwork\""}, {prop: "ShowStoreModal", name: "ShowStoreModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreModal\""}, {prop: "ShowLoadModal", name: "ShowLoadModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showLoadModal\""}, {prop: "ShowDeployStoredModal", name: "ShowDeployStoredModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showDeployStoredModal\""}]);
	funcType$43 = $funcType([ptrType$44, ptrType$29], [], false);
	structType$12 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowLoad", name: "ShowLoad", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowLoad\""}, {prop: "ShowStore", name: "ShowStore", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowStore\""}]);
	structType$13 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "CurrentSelection", name: "CurrentSelection", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"CurrentSelection\""}]);
	structType$14 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "CurrentSelection", name: "CurrentSelection", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"CurrentSelection\""}]);
	structType$15 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: "js:\"text\""}]);
	ptrType$95 = $ptrType(jsBluetoothSettings);
	ptrType$96 = $ptrType(P4wnP1_grpc.BluetoothControllerInformation);
	ptrType$97 = $ptrType(P4wnP1_grpc.BluetoothAgentSettings);
	ptrType$98 = $ptrType(P4wnP1_grpc.BluetoothControllerSettings);
	structType$16 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowStoreModal", name: "ShowStoreModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreModal\""}, {prop: "ShowDeployStoredModal", name: "ShowDeployStoredModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showDeployStoredModal\""}]);
	structType$17 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowStoreModal", name: "ShowStoreModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreModal\""}, {prop: "ShowLoadModal", name: "ShowLoadModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showLoadModal\""}, {prop: "ShowDeployStoredModal", name: "ShowDeployStoredModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showDeployStoredModal\""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"templateName\""}]);
	funcType$44 = $funcType([ptrType$44, ptrType$17], [], false);
	structType$18 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowImageSelect", name: "ShowImageSelect", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowImageSelect\""}]);
	funcType$45 = $funcType([ptrType$44, $Int], [$String], false);
	funcType$46 = $funcType([ptrType$44, ptrType$2], [$emptyInterface], false);
	ptrType$99 = $ptrType(CodeMirrorOptionsType);
	ptrType$100 = $ptrType(CodeMirrorMode);
	ptrType$101 = $ptrType(CodeMirrorExtraKeys);
	structType$19 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowLoadHIDScriptModal", name: "ShowLoadHIDScriptModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowLoadHIDScriptModal\""}, {prop: "ShowLoadHIDScriptPrependModal", name: "ShowLoadHIDScriptPrependModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowLoadHIDScriptPrependModal\""}, {prop: "ShowStoreHIDScriptModal", name: "ShowStoreHIDScriptModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowStoreHIDScriptModal\""}, {prop: "ShowRansom", name: "ShowRansom", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowRansom\""}]);
	funcType$47 = $funcType([ptrType$44, $String], [], false);
	structType$20 = $structType("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ShowDetails", name: "ShowDetails", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowDetails\""}]);
	funcType$48 = $funcType([ptrType$44, $Int64], [$String], false);
	arrayType = $arrayType($Uint8, 16);
	ptrType$102 = $ptrType(P4wnP1_grpc.RequestMasterTemplateStorage);
	ptrType$103 = $ptrType(P4wnP1_grpc.StringMessage);
	ptrType$104 = $ptrType(P4wnP1_grpc.BluetoothRequestSettingsStorage);
	ptrType$105 = $ptrType(P4wnP1_grpc.USBRequestSettingsStorage);
	ptrType$106 = $ptrType(P4wnP1_grpc.WifiRequestSettingsStorage);
	ptrType$107 = $ptrType(P4wnP1_grpc.EthernetRequestSettingsStorage);
	ptrType$108 = $ptrType(Rpc);
	ptrType$109 = $ptrType(P4wnP1_grpc.DeployedEthernetInterfaceSettings);
	ptrType$110 = $ptrType(P4wnP1_grpc.Event);
	ptrType$111 = $ptrType(CompUSBSettingsData);
	VueRouterRoute = function(path, name, template) {
		var {component, name, path, route, template, $s, $r, $c} = $restore(this, {path, name, template});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		route = [route];
		route[0] = new structType.ptr(O(), "", "", ptrType$1.nil);
		route[0].Object.path = $externalize(path, $String);
		if (name.length > 0) {
			route[0].Object.name = $externalize(name, $String);
		}
		component = new hvue.Config.ptr(O(), "", null, null, null, "", null, null, null, null, new $packages["reflect"].Value.ptr(ptrType$3.nil, 0, 0), null);
		$r = hvue.Template(template)(component); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		route[0].Object.component = $externalize(component, ptrType$1);
		$s = -1; return (function(route) { return function(config) {
			var config;
			config.Object.routes.push($externalize(route[0], structType));
		}; })(route);
		/* */ } return; } var $f = {$blk: VueRouterRoute, $c: true, $r, component, name, path, route, template, $s};return $f;
	};
	$pkg.VueRouterRoute = VueRouterRoute;
	NewVueRouter = function(defaultRoute, opts) {
		var {_i, _ref, c, defaultRoute, jsrouter, opt, opts, $s, $r, $c} = $restore(this, {defaultRoute, opts});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		c = new VueRouterConfig.ptr(O(), null);
		c.Object.routes = new ($global.Array)();
		_ref = opts;
		_i = 0;
		/* while (true) { */ case 1:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
			opt = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			$r = opt(c); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			_i++;
		$s = 1; continue;
		case 2:
		jsrouter = new ($global.VueRouter)($externalize(c, ptrType$4));
		if (defaultRoute.length > 0) {
			jsrouter.replace($externalize(defaultRoute, $String));
		}
		$s = -1; return jsrouter;
		/* */ } return; } var $f = {$blk: NewVueRouter, $c: true, $r, _i, _ref, c, defaultRoute, jsrouter, opt, opts, $s};return $f;
	};
	$pkg.NewVueRouter = NewVueRouter;
	NewRpcClient = function(addr) {
		var {_r$1, addr, cl, rcl, $s, $r, $c} = $restore(this, {addr});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		console.log("Bringing up RPC client for address:", addr);
		rcl = new Rpc.ptr(ptrType$5.nil, $ifaceNil, false, ptrType$6.nil, $throwNilPointerError);
		rcl.Mutex = new sync.Mutex.ptr(0, 0);
		_r$1 = P4wnP1_grpc.NewP4WNP1Client(addr, new sliceType$8([grpcweb.WithDefaultCallOptions(new sliceType$7([grpcweb.ForceWebsocketTransport()]))])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		cl = _r$1;
		rcl.Client = cl;
		$s = -1; return rcl;
		/* */ } return; } var $f = {$blk: NewRpcClient, $c: true, $r, _r$1, addr, cl, rcl, $s};return $f;
	};
	$pkg.NewRpcClient = NewRpcClient;
	Rpc.ptr.prototype.GetUmsImageFlashdriveList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListUmsImageFlashdrive(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetUmsImageFlashdriveList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetUmsImageFlashdriveList = function(timeout) { return this.$val.GetUmsImageFlashdriveList(timeout); };
	Rpc.ptr.prototype.GetUmsImageCdromList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListUmsImageCdrom(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetUmsImageCdromList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetUmsImageCdromList = function(timeout) { return this.$val.GetUmsImageCdromList(timeout); };
	Rpc.ptr.prototype.GetStoredDBBackupList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredDBBackups(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredDBBackupList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredDBBackupList = function(timeout) { return this.$val.GetStoredDBBackupList(timeout); };
	Rpc.ptr.prototype.DBBackup = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DBBackup(ctx, new P4wnP1_grpc.StringMessage.ptr(name), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DBBackup, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DBBackup = function(timeout, name) { return this.$val.DBBackup(timeout, name); };
	Rpc.ptr.prototype.DBRestore = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DBRestore(ctx, new P4wnP1_grpc.StringMessage.ptr(name), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DBRestore, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DBRestore = function(timeout, name) { return this.$val.DBRestore(timeout, name); };
	Rpc.ptr.prototype.GetStartupMasterTemplate = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, mtmsg, name, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		name = "";
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStartupMasterTemplate(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		mtmsg = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			$24r = [name, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp = mtmsg.Msg;
		_tmp$1 = $ifaceNil;
		name = _tmp;
		err = _tmp$1;
		$24r$1 = [name, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [name, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStartupMasterTemplate, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, mtmsg, name, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStartupMasterTemplate = function(timeout) { return this.$val.GetStartupMasterTemplate(timeout); };
	Rpc.ptr.prototype.SetStartupMasterTemplate = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.SetStartupMasterTemplate(ctx, new P4wnP1_grpc.StringMessage.ptr(name), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.SetStartupMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.SetStartupMasterTemplate = function(timeout, name) { return this.$val.SetStartupMasterTemplate(timeout, name); };
	Rpc.ptr.prototype.Shutdown = function(timeout) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.Shutdown(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.Shutdown, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.Shutdown = function(timeout) { return this.$val.Shutdown(timeout); };
	Rpc.ptr.prototype.Reboot = function(timeout) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.Reboot(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.Reboot, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.Reboot = function(timeout) { return this.$val.Reboot(timeout); };
	Rpc.ptr.prototype.GetGpioNamesList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetAvailableGpios(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetGpioNamesList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetGpioNamesList = function(timeout) { return this.$val.GetGpioNamesList(timeout); };
	Rpc.ptr.prototype.DeployMasterTemplate = function(timeout, mt) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, mt, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, mt});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployMasterTemplate(ctx, mt, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, mt, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployMasterTemplate = function(timeout, mt) { return this.$val.DeployMasterTemplate(timeout, mt); };
	Rpc.ptr.prototype.GetStoredMasterTemplateList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredMasterTemplate(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredMasterTemplateList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredMasterTemplateList = function(timeout) { return this.$val.GetStoredMasterTemplateList(timeout); };
	Rpc.ptr.prototype.StoreMasterTemplate = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreMasterTemplate(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreMasterTemplate = function(timeout, req) { return this.$val.StoreMasterTemplate(timeout, req); };
	Rpc.ptr.prototype.GetStoredMasterTemplate = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, template, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		template = ptrType$7.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStoredMasterTemplate(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		template = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [template, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [template, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, template, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredMasterTemplate = function(timeout, req) { return this.$val.GetStoredMasterTemplate(timeout, req); };
	Rpc.ptr.prototype.DeployStoredMasterTemplate = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$7.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredMasterTemplate(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		state = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [state, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredMasterTemplate = function(timeout, req) { return this.$val.DeployStoredMasterTemplate(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredMasterTemplate = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredMasterTemplate(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredMasterTemplate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredMasterTemplate = function(timeout, req) { return this.$val.DeleteStoredMasterTemplate(timeout, req); };
	Rpc.ptr.prototype.UploadContentToTempFile = function(timeout, content) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, content, ctx, err, filename, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, content});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		filename = "";
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		filename = BytesToMD5(content);
		_r$2 = rpc.Client.FSWriteFile(ctx, new P4wnP1_grpc.WriteFileRequest.ptr(0, filename, false, false, content), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = [filename, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [filename, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.UploadContentToTempFile, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, content, ctx, err, filename, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.UploadContentToTempFile = function(timeout, content) { return this.$val.UploadContentToTempFile(timeout, content); };
	Rpc.ptr.prototype.RunHIDScriptJob = function(timeout, filepath$1) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, filepath$1, job, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, filepath$1});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		job = ptrType$8.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.HIDRunScriptJob(ctx, new P4wnP1_grpc.HIDScriptRequest.ptr(filepath$1, 0), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		job = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [job, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [job, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.RunHIDScriptJob, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, filepath$1, job, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.RunHIDScriptJob = function(timeout, filepath$1) { return this.$val.RunHIDScriptJob(timeout, filepath$1); };
	Rpc.ptr.prototype.CancelHIDScriptJob = function(timeout, jobID) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, jobID, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, jobID});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.HIDCancelScriptJob(ctx, new P4wnP1_grpc.HIDScriptJob.ptr(jobID), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.CancelHIDScriptJob, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, jobID, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.CancelHIDScriptJob = function(timeout, jobID) { return this.$val.CancelHIDScriptJob(timeout, jobID); };
	Rpc.ptr.prototype.CancelAllHIDScriptJobs = function(timeout) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.HIDCancelAllScriptJobs(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.CancelAllHIDScriptJobs, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.CancelAllHIDScriptJobs = function(timeout) { return this.$val.CancelAllHIDScriptJobs(timeout); };
	Rpc.ptr.prototype.GetStoredBluetoothSettingsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredBluetoothSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredBluetoothSettingsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredBluetoothSettingsList = function(timeout) { return this.$val.GetStoredBluetoothSettingsList(timeout); };
	Rpc.ptr.prototype.StoreBluetoothSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreBluetoothSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreBluetoothSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreBluetoothSettings = function(timeout, req) { return this.$val.StoreBluetoothSettings(timeout, req); };
	Rpc.ptr.prototype.GetStoredBluetoothSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		settings = ptrType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStoredBluetoothSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		settings = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [settings, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [settings, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredBluetoothSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredBluetoothSettings = function(timeout, req) { return this.$val.GetStoredBluetoothSettings(timeout, req); };
	Rpc.ptr.prototype.DeployStoredBluetoothSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredBluetoothSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		state = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [state, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredBluetoothSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredBluetoothSettings = function(timeout, req) { return this.$val.DeployStoredBluetoothSettings(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredBluetoothSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredBluetoothSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredBluetoothSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredBluetoothSettings = function(timeout, req) { return this.$val.DeleteStoredBluetoothSettings(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredUSBSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredUSBSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredUSBSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredUSBSettings = function(timeout, req) { return this.$val.DeleteStoredUSBSettings(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredWifiSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredWifiSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredWifiSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredWifiSettings = function(timeout, req) { return this.$val.DeleteStoredWifiSettings(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredEthernetInterfaceSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredEthernetInterfaceSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredEthernetInterfaceSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredEthernetInterfaceSettings = function(timeout, req) { return this.$val.DeleteStoredEthernetInterfaceSettings(timeout, req); };
	Rpc.ptr.prototype.DeleteStoredTriggerActionsSet = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeleteStoredTriggerActionSet(ctx, name, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeleteStoredTriggerActionsSet, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeleteStoredTriggerActionsSet = function(timeout, name) { return this.$val.DeleteStoredTriggerActionsSet(timeout, name); };
	Rpc.ptr.prototype.GetBluetoothAgentSettings = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, res, resRpc, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$10.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetBluetoothAgentSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		resRpc = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = res;
			_tmp$1 = err;
			res = _tmp;
			err = _tmp$1;
			$24r = [res, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		res = new jsBluetoothAgentSettings.ptr(O(), "");
		res.fromGo(resRpc);
		$24r$1 = [res, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetBluetoothAgentSettings, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, res, resRpc, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetBluetoothAgentSettings = function(timeout) { return this.$val.GetBluetoothAgentSettings(timeout); };
	Rpc.ptr.prototype.DeployBluetoothAgentSettings = function(timeout, newSettings) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, newSettings, res, resRpc, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, newSettings});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$10.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployBluetoothAgentSettings(ctx, newSettings.toGo(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		resRpc = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = res;
			_tmp$1 = err;
			res = _tmp;
			err = _tmp$1;
			$24r = [res, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		res = new jsBluetoothAgentSettings.ptr(O(), "");
		res.fromGo(resRpc);
		$24r$1 = [res, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployBluetoothAgentSettings, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, newSettings, res, resRpc, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployBluetoothAgentSettings = function(timeout, newSettings) { return this.$val.DeployBluetoothAgentSettings(timeout, newSettings); };
	Rpc.ptr.prototype.GetBluetoothControllerInformation = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, btCtlInfo, cancel, ctx, err, res, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$11.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetBluetoothControllerInformation(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		btCtlInfo = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = res;
			_tmp$1 = err;
			res = _tmp;
			err = _tmp$1;
			$24r = [res, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		res = new jsBluetoothControllerInformation.ptr(O(), false, sliceType$10.nil, 0, 0, ptrType$12.nil, ptrType$12.nil, sliceType$10.nil, "", "", false, false, false);
		res.fromGo(btCtlInfo);
		$24r$1 = [res, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetBluetoothControllerInformation, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, btCtlInfo, cancel, ctx, err, res, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetBluetoothControllerInformation = function(timeout) { return this.$val.GetBluetoothControllerInformation(timeout); };
	Rpc.ptr.prototype.DeployBluetoothControllerInformation = function(timeout, newSettings) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, btCtlInfo, cancel, ctx, err, newSettings, res, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, newSettings});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$11.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployBluetoothControllerInformation(ctx, newSettings.toGo(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		btCtlInfo = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = res;
			_tmp$1 = err;
			res = _tmp;
			err = _tmp$1;
			$24r = [res, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		res = new jsBluetoothControllerInformation.ptr(O(), false, sliceType$10.nil, 0, 0, ptrType$12.nil, ptrType$12.nil, sliceType$10.nil, "", "", false, false, false);
		res.fromGo(btCtlInfo);
		$24r$1 = [res, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployBluetoothControllerInformation, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, btCtlInfo, cancel, ctx, err, newSettings, res, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployBluetoothControllerInformation = function(timeout, newSettings) { return this.$val.DeployBluetoothControllerInformation(timeout, newSettings); };
	Rpc.ptr.prototype.GetStoredUSBSettingsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredUSBSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredUSBSettingsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredUSBSettingsList = function(timeout) { return this.$val.GetStoredUSBSettingsList(timeout); };
	Rpc.ptr.prototype.StoreUSBSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreUSBSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreUSBSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreUSBSettings = function(timeout, req) { return this.$val.StoreUSBSettings(timeout, req); };
	Rpc.ptr.prototype.GetStoredUSBSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		settings = ptrType$13.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStoredUSBSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		settings = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [settings, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [settings, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredUSBSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredUSBSettings = function(timeout, req) { return this.$val.GetStoredUSBSettings(timeout, req); };
	Rpc.ptr.prototype.DeployStoredUSBSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$13.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredUSBSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		state = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [state, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredUSBSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredUSBSettings = function(timeout, req) { return this.$val.DeployStoredUSBSettings(timeout, req); };
	Rpc.ptr.prototype.UploadBytesToFile = function(timeout, filename, folder, content, allowOverwrite) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, allowOverwrite, cancel, content, ctx, err, filename, folder, newCtx, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, filename, folder, content, allowOverwrite});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		ctx = context.Background();
		/* */ if ((timeout.$high > 0 || (timeout.$high === 0 && timeout.$low > 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((timeout.$high > 0 || (timeout.$high === 0 && timeout.$low > 0))) { */ case 1:
			_r$1 = context.WithTimeout(ctx, timeout); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			newCtx = _tuple[0];
			cancel = _tuple[1];
			ctx = newCtx;
			$deferred.push([cancel, []]);
		/* } */ case 2:
		_r$2 = rpc.Client.FSWriteFile(ctx, new P4wnP1_grpc.WriteFileRequest.ptr(folder, filename, false, !allowOverwrite, content), sliceType$7.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		err = err;
		$24r = err;
		$s = 5; case 5: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.UploadBytesToFile, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, allowOverwrite, cancel, content, ctx, err, filename, folder, newCtx, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.UploadBytesToFile = function(timeout, filename, folder, content, allowOverwrite) { return this.$val.UploadBytesToFile(timeout, filename, folder, content, allowOverwrite); };
	Rpc.ptr.prototype.DownloadFileToBytes = function(timeout, filename, folder) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, chunksize, content, ctx, err, err$1, filename, folder, newCtx, readCount, resp, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, filename, folder});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		content = sliceType$10.nil;
		err = $ifaceNil;
		rpc = this;
		ctx = context.Background();
		/* */ if ((timeout.$high > 0 || (timeout.$high === 0 && timeout.$low > 0))) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if ((timeout.$high > 0 || (timeout.$high === 0 && timeout.$low > 0))) { */ case 1:
			_r$1 = context.WithTimeout(ctx, timeout); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			newCtx = _tuple[0];
			cancel = _tuple[1];
			ctx = newCtx;
			$deferred.push([cancel, []]);
		/* } */ case 2:
		chunksize = new $Int64(0, 32768);
		readCount = chunksize;
		/* while (true) { */ case 4:
			/* if (!((readCount.$high > chunksize.$high || (readCount.$high === chunksize.$high && readCount.$low >= chunksize.$low)))) { break; } */ if(!((readCount.$high > chunksize.$high || (readCount.$high === chunksize.$high && readCount.$low >= chunksize.$low)))) { $s = 5; continue; }
			_r$2 = rpc.Client.FSReadFile(ctx, new P4wnP1_grpc.ReadFileRequest.ptr(folder, filename, (new $Int64(0, content.$length)), chunksize), sliceType$7.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			_tuple$1 = _r$2;
			resp = _tuple$1[0];
			err$1 = _tuple$1[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 7:
				_tmp = content;
				_tmp$1 = err$1;
				content = _tmp;
				err = _tmp$1;
				$24r = [content, err];
				$s = 9; case 9: return $24r;
			/* } */ case 8:
			content = $appendSlice(content, resp.Data);
			readCount = resp.ReadCount;
		$s = 4; continue;
		case 5:
		$24r$1 = [content, err];
		$s = 10; case 10: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [content, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DownloadFileToBytes, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, chunksize, content, ctx, err, err$1, filename, folder, newCtx, readCount, resp, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DownloadFileToBytes = function(timeout, filename, folder) { return this.$val.DownloadFileToBytes(timeout, filename, folder); };
	Rpc.ptr.prototype.GetStoredEthernetInterfaceSettingsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, eis, err, ma, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		eis = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredEthernetInterfaceSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = eis;
			_tmp$1 = err;
			eis = _tmp;
			err = _tmp$1;
			$24r = [eis, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		eis = _tmp$2;
		err = _tmp$3;
		$24r$1 = [eis, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [eis, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredEthernetInterfaceSettingsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, eis, err, ma, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredEthernetInterfaceSettingsList = function(timeout) { return this.$val.GetStoredEthernetInterfaceSettingsList(timeout); };
	Rpc.ptr.prototype.GetStoredBashScriptsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredBashScripts(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredBashScriptsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredBashScriptsList = function(timeout) { return this.$val.GetStoredBashScriptsList(timeout); };
	Rpc.ptr.prototype.GetStoredHIDScriptsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredHIDScripts(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredHIDScriptsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredHIDScriptsList = function(timeout) { return this.$val.GetStoredHIDScriptsList(timeout); };
	Rpc.ptr.prototype.DeployedEthernetInterfaceSettings = function(timeout, settings) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, settings, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, settings});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployEthernetInterfaceSettings(ctx, settings, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployedEthernetInterfaceSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, settings, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployedEthernetInterfaceSettings = function(timeout, settings) { return this.$val.DeployedEthernetInterfaceSettings(timeout, settings); };
	Rpc.ptr.prototype.GetStoredWifiSettingsList = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		ws = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredWifiSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ma = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = ws;
			_tmp$1 = err;
			ws = _tmp;
			err = _tmp$1;
			$24r = [ws, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = ma.MsgArray;
		_tmp$3 = err;
		ws = _tmp$2;
		err = _tmp$3;
		$24r$1 = [ws, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [ws, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredWifiSettingsList, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, ma, rpc, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredWifiSettingsList = function(timeout) { return this.$val.GetStoredWifiSettingsList(timeout); };
	Rpc.ptr.prototype.DeployWifiSettings = function(timeout, settings) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, settings, state, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, settings});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$14.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployWiFiSettings(ctx, settings, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		state = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [state, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployWifiSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, settings, state, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployWifiSettings = function(timeout, settings) { return this.$val.DeployWifiSettings(timeout, settings); };
	Rpc.ptr.prototype.StoreWifiSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreWifiSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreWifiSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreWifiSettings = function(timeout, req) { return this.$val.StoreWifiSettings(timeout, req); };
	Rpc.ptr.prototype.GetStoredWifiSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		settings = ptrType$15.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStoredWifiSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		settings = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [settings, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [settings, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredWifiSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredWifiSettings = function(timeout, req) { return this.$val.GetStoredWifiSettings(timeout, req); };
	Rpc.ptr.prototype.DeployStoredWifiSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$14.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredWifiSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		state = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [state, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredWifiSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, state, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredWifiSettings = function(timeout, req) { return this.$val.DeployStoredWifiSettings(timeout, req); };
	Rpc.ptr.prototype.GetWifiState = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, rpc, state, timeout, ws, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		state = ptrType$16.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetWiFiState(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		ws = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			console.log("Error GetDeployedWifiSettings", err);
			_tmp = ptrType$16.nil;
			_tmp$1 = err;
			state = _tmp;
			err = _tmp$1;
			$24r = [state, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		console.log("GetWifiState: ", ws);
		state = new jsWiFiState.ptr(O(), 0, 0, "", ptrType$17.nil);
		state.fromGo(ws);
		$24r$1 = [state, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [state, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetWifiState, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tuple, _tuple$1, cancel, ctx, err, rpc, state, timeout, ws, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetWifiState = function(timeout) { return this.$val.GetWifiState(timeout); };
	Rpc.ptr.prototype.GetAllDeployedEthernetInterfaceSettings = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, deployedSettings, err, rpc, settingsList, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		settingsList = ptrType$18.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetAllDeployedEthernetInterfaceSettings(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		deployedSettings = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			console.log("Error GetAllDeployedEthernetInterfaceSettings", err);
			_tmp = ptrType$18.nil;
			_tmp$1 = err;
			settingsList = _tmp;
			err = _tmp$1;
			$24r = [settingsList, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		settingsList = new jsEthernetSettingsArray.ptr(O(), null);
		settingsList.fromGo(deployedSettings);
		_tmp$2 = settingsList;
		_tmp$3 = $ifaceNil;
		settingsList = _tmp$2;
		err = _tmp$3;
		$24r$1 = [settingsList, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [settingsList, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetAllDeployedEthernetInterfaceSettings, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, deployedSettings, err, rpc, settingsList, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetAllDeployedEthernetInterfaceSettings = function(timeout) { return this.$val.GetAllDeployedEthernetInterfaceSettings(timeout); };
	Rpc.ptr.prototype.StoreEthernetInterfaceSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreEthernetInterfaceSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreEthernetInterfaceSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreEthernetInterfaceSettings = function(timeout, req) { return this.$val.StoreEthernetInterfaceSettings(timeout, req); };
	Rpc.ptr.prototype.GetStoredEthernetInterfaceSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		settings = ptrType$19.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetStoredEthernetInterfaceSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		settings = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [settings, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [settings, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetStoredEthernetInterfaceSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, settings, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetStoredEthernetInterfaceSettings = function(timeout, req) { return this.$val.GetStoredEthernetInterfaceSettings(timeout, req); };
	Rpc.ptr.prototype.DeployStoredEthernetInterfaceSettings = function(timeout, req) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, req});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredEthernetInterfaceSettings(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredEthernetInterfaceSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredEthernetInterfaceSettings = function(timeout, req) { return this.$val.DeployStoredEthernetInterfaceSettings(timeout, req); };
	Rpc.ptr.prototype.GetRunningHidJobStates = function(timeout) {
		var {$24r, $24r$1, $24r$2, _i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, cancel, ctx, err, err$1, idx, jobid, joblist, jobstate, rpc, states, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		states = sliceType$11.nil;
		err = $ifaceNil;
		rpc = this;
		console.log("GetRunningHidJobStates called");
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.HIDGetRunningScriptJobs(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		joblist = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = sliceType$11.nil;
			_tmp$1 = err;
			states = _tmp;
			err = _tmp$1;
			$24r = [states, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		states = $makeSlice(sliceType$11, joblist.Ids.$length);
		_ref = joblist.Ids;
		_i = 0;
		/* while (true) { */ case 6:
			/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; }
			idx = _i;
			jobid = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			_r$3 = rpc.Client.HIDGetRunningJobState(ctx, new P4wnP1_grpc.HIDScriptJob.ptr(jobid), sliceType$7.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple$2 = _r$3;
			jobstate = _tuple$2[0];
			err$1 = _tuple$2[1];
			/* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
			/* */ $s = 10; continue;
			/* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
				_tmp$2 = sliceType$11.nil;
				_tmp$3 = err$1;
				states = _tmp$2;
				err = _tmp$3;
				$24r$1 = [states, err];
				$s = 11; case 11: return $24r$1;
			/* } */ case 10:
			((idx < 0 || idx >= states.$length) ? ($throwRuntimeError("index out of range"), undefined) : states.$array[states.$offset + idx] = jobstate);
			_i++;
		$s = 6; continue;
		case 7:
		_tmp$4 = states;
		_tmp$5 = $ifaceNil;
		states = _tmp$4;
		err = _tmp$5;
		$24r$2 = [states, err];
		$s = 12; case 12: return $24r$2;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [states, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetRunningHidJobStates, $c: true, $r, $24r, $24r$1, $24r$2, _i, _r$1, _r$2, _r$3, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, cancel, ctx, err, err$1, idx, jobid, joblist, jobstate, rpc, states, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetRunningHidJobStates = function(timeout) { return this.$val.GetRunningHidJobStates(timeout); };
	Rpc.ptr.prototype.ListStoredTriggerActionSets = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, msgArray, rpc, tasNames, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		tasNames = sliceType$9.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.ListStoredTriggerActionSets(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		msgArray = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			_tmp = tasNames;
			_tmp$1 = err;
			tasNames = _tmp;
			err = _tmp$1;
			$24r = [tasNames, err];
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		_tmp$2 = msgArray.MsgArray;
		_tmp$3 = $ifaceNil;
		tasNames = _tmp$2;
		err = _tmp$3;
		$24r$1 = [tasNames, err];
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [tasNames, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.ListStoredTriggerActionSets, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, cancel, ctx, err, msgArray, rpc, tasNames, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.ListStoredTriggerActionSets = function(timeout) { return this.$val.ListStoredTriggerActionSets(timeout); };
	Rpc.ptr.prototype.StoreTriggerActionSet = function(timeout, set) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, set, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, set});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.StoreTriggerActionSet(ctx, set, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		err = _tuple$1[1];
		err = err;
		$24r = err;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.StoreTriggerActionSet, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, rpc, set, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.StoreTriggerActionSet = function(timeout, set) { return this.$val.StoreTriggerActionSet(timeout, set); };
	Rpc.ptr.prototype.GetDeployedTriggerActionSet = function(timeout) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetDeployedTriggerActionSet(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetDeployedTriggerActionSet, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetDeployedTriggerActionSet = function(timeout) { return this.$val.GetDeployedTriggerActionSet(timeout); };
	Rpc.ptr.prototype.DeployTriggerActionsSetReplace = function(timeout, set) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, set});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployTriggerActionSetReplace(ctx, set, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployTriggerActionsSetReplace, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployTriggerActionsSetReplace = function(timeout, set) { return this.$val.DeployTriggerActionsSetReplace(timeout, set); };
	Rpc.ptr.prototype.DeployTriggerActionsSetRemove = function(timeout, set) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, set});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployTriggerActionSetRemove(ctx, set, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployTriggerActionsSetRemove, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployTriggerActionsSetRemove = function(timeout, set) { return this.$val.DeployTriggerActionsSetRemove(timeout, set); };
	Rpc.ptr.prototype.DeployTriggerActionsSetUpdate = function(timeout, set) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, set});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployTriggerActionSetUpdate(ctx, set, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployTriggerActionsSetUpdate, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployTriggerActionsSetUpdate = function(timeout, set) { return this.$val.DeployTriggerActionsSetUpdate(timeout, set); };
	Rpc.ptr.prototype.DeployTriggerActionsSetAdd = function(timeout, set) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, set});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployTriggerActionSetAdd(ctx, set, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployTriggerActionsSetAdd, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, res, rpc, set, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployTriggerActionsSetAdd = function(timeout, set) { return this.$val.DeployTriggerActionsSetAdd(timeout, set); };
	Rpc.ptr.prototype.DeployStoredTriggerActionsSetReplace = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, res, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredTriggerActionSetReplace(ctx, name, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredTriggerActionsSetReplace, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, res, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredTriggerActionsSetReplace = function(timeout, name) { return this.$val.DeployStoredTriggerActionsSetReplace(timeout, name); };
	Rpc.ptr.prototype.DeployStoredTriggerActionsSetAdd = function(timeout, name) {
		var {$24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, res, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, name});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		res = ptrType$21.nil;
		err = $ifaceNil;
		rpc = this;
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployStoredTriggerActionSetAdd(ctx, name, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		res = _tuple$1[0];
		err = _tuple$1[1];
		$24r = [res, err];
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  [res, err]; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployStoredTriggerActionsSetAdd, $c: true, $r, $24r, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, name, res, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployStoredTriggerActionsSetAdd = function(timeout, name) { return this.$val.DeployStoredTriggerActionsSetAdd(timeout, name); };
	Rpc.ptr.prototype.GetDeployedGadgetSettings = function(timeout) {
		var {$24r, _r$1, _r$2, _tuple, cancel, ctx, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		rpc = this;
		console.log("GetDeployedGadgetSettings called");
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.GetDeployedGadgetSetting(ctx, new P4wnP1_grpc.Empty.ptr(), sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$13.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.GetDeployedGadgetSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, cancel, ctx, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.GetDeployedGadgetSettings = function(timeout) { return this.$val.GetDeployedGadgetSettings(timeout); };
	Rpc.ptr.prototype.DeployRemoteGadgetSettings = function(timeout, targetGS) {
		var {$24r, _r$1, _r$2, _tuple, cancel, ctx, rpc, targetGS, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout, targetGS});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		rpc = this;
		console.log("DeployRemoteGadgetSettings called");
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		_r$2 = rpc.Client.DeployGadgetSetting(ctx, targetGS, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		$24r = _r$2;
		$s = 3; case 3: return $24r;
		/* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType$13.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.DeployRemoteGadgetSettings, $c: true, $r, $24r, _r$1, _r$2, _tuple, cancel, ctx, rpc, targetGS, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.DeployRemoteGadgetSettings = function(timeout, targetGS) { return this.$val.DeployRemoteGadgetSettings(timeout, targetGS); };
	Rpc.ptr.prototype.ConnectionTest = function(timeout) {
		var {$24r, $24r$1, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, resp, rpc, timeout, $s, $deferred, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
		err = $ifaceNil;
		rpc = this;
		console.log("DeployRemoteGadgetSettings called");
		_r$1 = context.WithTimeout(context.Background(), timeout); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_tuple = _r$1;
		ctx = _tuple[0];
		cancel = _tuple[1];
		$deferred.push([cancel, []]);
		req = new P4wnP1_grpc.StringMessage.ptr("ping");
		_r$2 = rpc.Client.EchoRequest(ctx, req, sliceType$7.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple$1 = _r$2;
		resp = _tuple$1[0];
		err = _tuple$1[1];
		/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
		/* */ $s = 4; continue;
		/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
			err = err;
			$24r = err;
			$s = 5; case 5: return $24r;
		/* } */ case 4:
		if (!(resp.Msg === req.Msg)) {
			errors.New("Unexpected response");
		}
		err = $ifaceNil;
		$24r$1 = err;
		$s = 6; case 6: return $24r$1;
		/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return  err; } if($curGoroutine.asleep) { var $f = {$blk: Rpc.ptr.prototype.ConnectionTest, $c: true, $r, $24r, $24r$1, _r$1, _r$2, _tuple, _tuple$1, cancel, ctx, err, req, resp, rpc, timeout, $s, $deferred};return $f; } }
	};
	Rpc.prototype.ConnectionTest = function(timeout) { return this.$val.ConnectionTest(timeout); };
	Rpc.ptr.prototype.StartEventListening = function(timeout) {
		var {_r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, cancel, ctx, err, evStream, eventStream, rpc, timeout, $s, $r, $c} = $restore(this, {timeout});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		eventStream = $ifaceNil;
		cancel = $throwNilPointerError;
		err = $ifaceNil;
		rpc = this;
		console.log("Start listening called", $internalize(globalState.Object.EventProcessor, ptrType$22));
		/* while (true) { */ case 1:
			_r$1 = $pkg.RpcClient.ConnectionTest(timeout); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			/* if (!(!($interfaceIsEqual(_r$1, $ifaceNil)))) { break; } */ if(!(!($interfaceIsEqual(_r$1, $ifaceNil)))) { $s = 2; continue; }
			_tmp = eventStream;
			_tmp$1 = cancel;
			_tmp$2 = errors.New("Server not reachable");
			eventStream = _tmp;
			cancel = _tmp$1;
			err = _tmp$2;
			$s = -1; return [eventStream, cancel, err];
		case 2:
		console.log("... success");
		globalState.Object.isConnected = $externalize(true, $Bool);
		globalState.Object.failedConnectionAttempts = 0;
		_r$2 = context.WithCancel(context.Background()); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_tuple = _r$2;
		ctx = _tuple[0];
		cancel = _tuple[1];
		rpc.eventListeningCancel = cancel;
		_r$3 = rpc.Client.EventListen(ctx, new P4wnP1_grpc.EventRequest.ptr(new $Int64(0, 0)), sliceType$7.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_tuple$1 = _r$3;
		evStream = _tuple$1[0];
		err = _tuple$1[1];
		_tmp$3 = evStream;
		_tmp$4 = cancel;
		_tmp$5 = err;
		eventStream = _tmp$3;
		cancel = _tmp$4;
		err = _tmp$5;
		$s = -1; return [eventStream, cancel, err];
		/* */ } return; } var $f = {$blk: Rpc.ptr.prototype.StartEventListening, $c: true, $r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, cancel, ctx, err, evStream, eventStream, rpc, timeout, $s};return $f;
	};
	Rpc.prototype.StartEventListening = function(timeout) { return this.$val.StartEventListening(timeout); };
	QuasarGetQuasar = function() {
		var q;
		q = $global.Quasar;
		return new Quasar.ptr(q, "", "", false);
	};
	$pkg.QuasarGetQuasar = QuasarGetQuasar;
	QuasarNotify = function(notification) {
		var _entry, notification;
		(_entry = $mapIndex($internalize($pkg.GlobalQuasar.Object.plugins, mapType),$String.keyFor("Notify")), _entry !== undefined ? _entry.v : null).create($externalize(notification, ptrType$23));
	};
	$pkg.QuasarNotify = QuasarNotify;
	QuasarNotifyError = function(errorMessage, messageDetails, position) {
		var errorMessage, messageDetails, notification, position;
		notification = new QuasarNotification.ptr(O(), "", "", "", "", "", "", "", 0);
		notification.Object.message = $externalize(errorMessage, $String);
		notification.Object.detail = $externalize(messageDetails, $String);
		notification.Object.position = $externalize(position, $String);
		notification.Object.type = $externalize("negative", $String);
		notification.Object.timeout = 5000;
		QuasarNotify(notification);
	};
	$pkg.QuasarNotifyError = QuasarNotifyError;
	QuasarNotifySuccess = function(message, detailMessage, position) {
		var detailMessage, message, notification, position;
		notification = new QuasarNotification.ptr(O(), "", "", "", "", "", "", "", 0);
		notification.Object.message = $externalize(message, $String);
		notification.Object.detail = $externalize(detailMessage, $String);
		notification.Object.position = $externalize(position, $String);
		notification.Object.type = $externalize("positive", $String);
		notification.Object.timeout = 5000;
		QuasarNotify(notification);
	};
	$pkg.QuasarNotifySuccess = QuasarNotifySuccess;
	NewPromise = function(pf) {
		var f, jsP, p, pf;
		p = ptrType$25.nil;
		f = (function(resolve, reject) {
			var fReject, fResolve, p$1, reject, resolve;
			p$1 = new structType$1.ptr(O(), null, null);
			p$1.Object.resolve = resolve;
			p$1.Object.reject = reject;
			fResolve = (function(args) {
				var args, res;
				res = $ifaceNil;
				res = new $jsObjectPtr(p$1.Object.resolve($externalize(args, $emptyInterface)));
				return res;
			});
			fReject = (function(args) {
				var args, res;
				res = $ifaceNil;
				res = new $jsObjectPtr(p$1.Object.reject($externalize(args, $emptyInterface)));
				return res;
			});
			$go((function $b() {
				var {_r$1, _r$2, _r$3, _r$4, _tuple, err, res, $s, $r, $c} = $restore(this, {});
				/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
				_r$1 = pf(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_tuple = _r$1;
				res = _tuple[0];
				err = _tuple[1];
				/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
				/* */ $s = 3; continue;
				/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
					_r$2 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					_r$3 = fReject(new $jsObjectPtr(new ($global.Error)($externalize(_r$2, $String)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
					_r$3;
					$s = 4; continue;
				/* } else { */ case 3:
					_r$4 = fResolve(res); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
					_r$4;
				/* } */ case 4:
				$s = -1; return;
				/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, _r$3, _r$4, _tuple, err, res, $s};return $f;
			}), []);
		});
		jsP = new ($global.Promise)($externalize(f, funcType));
		p = new Promise.ptr(jsP, "");
		return p;
	};
	$pkg.NewPromise = NewPromise;
	createGlobalStateStruct = function() {
		var state;
		state = new GlobalState.ptr(O(), "", "", ptrType$26.nil, false, false, ptrType$22.nil, ptrType$27.nil, ptrType$28.nil, false, false, 0, ptrType$18.nil, ptrType$16.nil, ptrType$11.nil, ptrType$10.nil, ptrType$29.nil, "", sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, sliceType$9.nil, 0, false, false, $throwNilPointerError);
		state.Object.title = $externalize("P4wnP1 by MaMe82", $String);
		state.Object.currentHIDScriptSource = $externalize("layout('us');\t\t\t// US keyboard layout\ntypingSpeed(100,150)\t// Wait 100ms between key strokes + an additional random value between 0ms and 150ms (natural)\n\nwaitLEDRepeat(NUM);\t\t// Wait till NUM LED of target changes frequently multiple times (doesn't work on OSX)\npress(\"GUI r\");\ndelay(500);\ntype(\"notepad\\n\")\ndelay(1000);\nfor (var i = 0; i < 3; i++) {\n  type(\"Hello from P4wnP1 run \" + i + \" !\\n\");\n  type(\"Moving mouse right ...\");\n  moveStepped(500,0);\n  type(\"and left\\n\");\n  moveStepped(-500,0);\n}\ntype(\"Let's type fast !!!!!!!!!!!!!!!\\n\")\ntypingSpeed(0,0);\nfor (var i = 3; i < 10; i++) {\n  type(\"Hello from P4wnP1 run \" + i + \" !\\n\");\n  type(\"Moving mouse right ...\");\n  moveStepped(500,0);\n  type(\"and left\\n\");\n  moveStepped(-500,0);\n}", $String);
		state.Object.currentGadgetSettings = $externalize(NewUSBGadgetSettings(), ptrType$26);
		state.Object.deployingGadgetSettings = $externalize(false, $Bool);
		state.Object.deployingWifiSettings = $externalize(false, $Bool);
		state.Object.hidJobList = $externalize(NewHIDJobStateList(), ptrType$27);
		state.Object.triggerActionList = $externalize(NewTriggerActionSet(), ptrType$28);
		state.Object.EventProcessor = $externalize(NewEventProcessor(500, $internalize(state.Object.hidJobList, ptrType$27)), ptrType$22);
		state.Object.isConnected = $externalize(false, $Bool);
		state.Object.isModalEnabled = $externalize(false, $Bool);
		state.Object.failedConnectionAttempts = 0;
		state.Object.CurrentMasterTemplate = $externalize(NewMasterTemplate(), ptrType$29);
		state.Object.CurrentStartupMasterTemplateName = $externalize("", $String);
		state.Object.StoredWifiSettingsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredEthernetInterfaceSettingsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredTriggerActionSetsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredBashScriptsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredHIDScriptsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredUSBSettingsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredBluetoothSettingsList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.StoredMasterTemplateList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.GpioNamesList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.DBBackupList = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.UmsImageListCdrom = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.UmsImageListFlashdrive = $externalize(new sliceType$9([]), sliceType$9);
		state.Object.InterfaceSettings = $externalize(NewEthernetSettingsList(), ptrType$18);
		state.Object.CurrentBluetoothControllerInformation = $externalize(NewBluetoothControllerInformation(), ptrType$11);
		state.Object.CurrentBluetoothAgentSettings = $externalize(NewBluetoothAgentSettings(), ptrType$10);
		state.Object.wifiState = $externalize(NewWiFiState(), ptrType$16);
		state.Object.EventListenerRunning = $externalize(false, $Bool);
		state.Object.EventListenerShouldBeRunning = $externalize(false, $Bool);
		state.Object.ConnectRetryCount = 0;
		return state;
	};
	processEvent = function(evt, store, state) {
		var {_1, _2, _entry, _entry$1, chgType, evt, state, store, typeName, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r, $c} = $restore(this, {evt, store, state});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		console.log("New event", evt);
		typeName = (_entry = $mapIndex(common_web.EventTypeName,$Int64.keyFor(evt.Type)), _entry !== undefined ? _entry.v : "");
			_1 = evt.Type;
			/* */ if ((x = new $Int64(0, 5), (_1.$high === x.$high && _1.$low === x.$low))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if ((x = new $Int64(0, 5), (_1.$high === x.$high && _1.$low === x.$low))) { */ case 2:
				chgType = (x$1 = evt.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).GetTint64();
				console.log("State change notify", (_entry$1 = $mapIndex(common_web.EventTypeStateChangeName,$Int64.keyFor(chgType)), _entry$1 !== undefined ? _entry$1.v : ""));
					_2 = (new common_web.EvtStateChangeType(chgType.$high, chgType.$low));
					/* */ if ((x$2 = new common_web.EvtStateChangeType(0, 6), (_2.$high === x$2.$high && _2.$low === x$2.$low))) { $s = 6; continue; }
					/* */ if ((x$3 = new common_web.EvtStateChangeType(0, 0), (_2.$high === x$3.$high && _2.$low === x$3.$low))) { $s = 7; continue; }
					/* */ if ((x$4 = new common_web.EvtStateChangeType(0, 2), (_2.$high === x$4.$high && _2.$low === x$4.$low))) { $s = 8; continue; }
					/* */ if ((x$5 = new common_web.EvtStateChangeType(0, 4), (_2.$high === x$5.$high && _2.$low === x$5.$low))) { $s = 9; continue; }
					/* */ if ((x$6 = new common_web.EvtStateChangeType(0, 1), (_2.$high === x$6.$high && _2.$low === x$6.$low))) { $s = 10; continue; }
					/* */ if ((x$7 = new common_web.EvtStateChangeType(0, 5), (_2.$high === x$7.$high && _2.$low === x$7.$low))) { $s = 11; continue; }
					/* */ if ((x$8 = new common_web.EvtStateChangeType(0, 3), (_2.$high === x$8.$high && _2.$low === x$8.$low))) { $s = 12; continue; }
					/* */ if ((x$9 = new common_web.EvtStateChangeType(0, 13), (_2.$high === x$9.$high && _2.$low === x$9.$low))) { $s = 13; continue; }
					/* */ if ((x$10 = new common_web.EvtStateChangeType(0, 7), (_2.$high === x$10.$high && _2.$low === x$10.$low))) { $s = 14; continue; }
					/* */ if ((x$11 = new common_web.EvtStateChangeType(0, 8), (_2.$high === x$11.$high && _2.$low === x$11.$low))) { $s = 15; continue; }
					/* */ if ((x$12 = new common_web.EvtStateChangeType(0, 9), (_2.$high === x$12.$high && _2.$low === x$12.$low))) { $s = 16; continue; }
					/* */ if ((x$13 = new common_web.EvtStateChangeType(0, 10), (_2.$high === x$13.$high && _2.$low === x$13.$low))) { $s = 17; continue; }
					/* */ if ((x$14 = new common_web.EvtStateChangeType(0, 11), (_2.$high === x$14.$high && _2.$low === x$14.$low))) { $s = 18; continue; }
					/* */ if ((x$15 = new common_web.EvtStateChangeType(0, 12), (_2.$high === x$15.$high && _2.$low === x$15.$low))) { $s = 19; continue; }
					/* */ if ((x$16 = new common_web.EvtStateChangeType(0, 14), (_2.$high === x$16.$high && _2.$low === x$16.$low))) { $s = 20; continue; }
					/* */ $s = 21; continue;
					/* if ((x$2 = new common_web.EvtStateChangeType(0, 6), (_2.$high === x$2.$high && _2.$low === x$2.$low))) { */ case 6:
						console.log("Notify LED change, nothing to do");
						$s = 21; continue;
					/* } else if ((x$3 = new common_web.EvtStateChangeType(0, 0), (_2.$high === x$3.$high && _2.$low === x$3.$low))) { */ case 7:
						store.Object.dispatch($externalize("updateCurrentUSBSettings", $String));
						store.Object.dispatch($externalize("updateRunningHidJobs", $String));
						$s = 21; continue;
					/* } else if ((x$4 = new common_web.EvtStateChangeType(0, 2), (_2.$high === x$4.$high && _2.$low === x$4.$low))) { */ case 8:
						store.Object.dispatch($externalize("updateAllEthernetInterfaceSettings", $String));
						$s = 21; continue;
					/* } else if ((x$5 = new common_web.EvtStateChangeType(0, 4), (_2.$high === x$5.$high && _2.$low === x$5.$low))) { */ case 9:
						$s = 21; continue;
					/* } else if ((x$6 = new common_web.EvtStateChangeType(0, 1), (_2.$high === x$6.$high && _2.$low === x$6.$low))) { */ case 10:
						store.Object.dispatch($externalize("updateCurrentWifiSettingsFromDeployed", $String));
						$s = 21; continue;
					/* } else if ((x$7 = new common_web.EvtStateChangeType(0, 5), (_2.$high === x$7.$high && _2.$low === x$7.$low))) { */ case 11:
						store.Object.dispatch($externalize("updateCurrentTriggerActionsFromServer", $String));
						$s = 21; continue;
					/* } else if ((x$8 = new common_web.EvtStateChangeType(0, 3), (_2.$high === x$8.$high && _2.$low === x$8.$low))) { */ case 12:
						store.Object.dispatch($externalize("updateCurrentBluetoothControllerInformation", $String));
						store.Object.dispatch($externalize("updateCurrentBluetoothAgentSettings", $String));
						$s = 21; continue;
					/* } else if ((x$9 = new common_web.EvtStateChangeType(0, 13), (_2.$high === x$9.$high && _2.$low === x$9.$low))) { */ case 13:
						store.Object.dispatch($externalize("updateStoredBashScriptsList", $String));
						$s = 21; continue;
					/* } else if ((x$10 = new common_web.EvtStateChangeType(0, 7), (_2.$high === x$10.$high && _2.$low === x$10.$low))) { */ case 14:
						store.Object.dispatch($externalize("updateStoredHIDScriptsList", $String));
						$s = 21; continue;
					/* } else if ((x$11 = new common_web.EvtStateChangeType(0, 8), (_2.$high === x$11.$high && _2.$low === x$11.$low))) { */ case 15:
						store.Object.dispatch($externalize("updateStoredUSBSettingsList", $String));
						$s = 21; continue;
					/* } else if ((x$12 = new common_web.EvtStateChangeType(0, 9), (_2.$high === x$12.$high && _2.$low === x$12.$low))) { */ case 16:
						store.Object.dispatch($externalize("updateStoredEthernetInterfaceSettingsList", $String));
						$s = 21; continue;
					/* } else if ((x$13 = new common_web.EvtStateChangeType(0, 10), (_2.$high === x$13.$high && _2.$low === x$13.$low))) { */ case 17:
						store.Object.dispatch($externalize("updateStoredWifiSettingsList", $String));
						$s = 21; continue;
					/* } else if ((x$14 = new common_web.EvtStateChangeType(0, 11), (_2.$high === x$14.$high && _2.$low === x$14.$low))) { */ case 18:
						store.Object.dispatch($externalize("setStoredBluetoothSettingsList", $String));
						$s = 21; continue;
					/* } else if ((x$15 = new common_web.EvtStateChangeType(0, 12), (_2.$high === x$15.$high && _2.$low === x$15.$low))) { */ case 19:
						store.Object.dispatch($externalize("updateStoredTriggerActionSetsList", $String));
						$s = 21; continue;
					/* } else if ((x$16 = new common_web.EvtStateChangeType(0, 14), (_2.$high === x$16.$high && _2.$low === x$16.$low))) { */ case 20:
						store.Object.dispatch($externalize("updateStoredMasterTemplateList", $String));
					/* } */ case 21:
				case 5:
				$s = 4; continue;
			/* } else { */ case 3:
				$internalize(state.Object.EventProcessor, ptrType$22).HandleEvent(evt);
				console.log("Unhandled event of type ", typeName, evt);
			/* } */ case 4:
		case 1:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: processEvent, $c: true, $r, _1, _2, _entry, _entry$1, chgType, evt, state, store, typeName, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s};return $f;
	};
	actionUpdateAllStates = function(store, context$1, state) {
		var {context$1, state, store, $s, $r, $c} = $restore(this, {store, context$1, state});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		console.log("Updating all states");
		store.Object.dispatch($externalize("updateCurrentUSBSettings", $String));
		store.Object.dispatch($externalize("updateRunningHidJobs", $String));
		store.Object.dispatch($externalize("updateAllEthernetInterfaceSettings", $String));
		store.Object.dispatch($externalize("updateCurrentWifiSettingsFromDeployed", $String));
		store.Object.dispatch($externalize("updateCurrentBluetoothControllerInformation", $String));
		store.Object.dispatch($externalize("updateCurrentBluetoothAgentSettings", $String));
		store.Object.dispatch($externalize("updateCurrentTriggerActionsFromServer", $String));
		store.Object.dispatch($externalize("updateStoredHIDScriptsList", $String));
		store.Object.dispatch($externalize("updateStoredUSBSettingsList", $String));
		store.Object.dispatch($externalize("updateStoredEthernetInterfaceSettingsList", $String));
		store.Object.dispatch($externalize("updateStoredWifiSettingsList", $String));
		store.Object.dispatch($externalize("setStoredBluetoothSettingsList", $String));
		store.Object.dispatch($externalize("updateStoredTriggerActionSetsList", $String));
		store.Object.dispatch($externalize("updateStoredBashScriptsList", $String));
		store.Object.dispatch($externalize("updateGpioNamesList", $String));
		store.Object.dispatch($externalize("updateStoredDBBackupList", $String));
		store.Object.dispatch($externalize("getStartupMasterTemplateName", $String));
		$s = -1; return;
		/* */ } return; } var $f = {$blk: actionUpdateAllStates, $c: true, $r, context$1, state, store, $s};return $f;
	};
	actionUpdateUmsImageCdromList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, dbBackupList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch UMS images for CD-ROM list");
			_r$1 = $pkg.RpcClient.GetUmsImageCdromList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			dbBackupList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve UMS images for CD-ROM list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setUmsImageCdromList", $String), $externalize(dbBackupList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, dbBackupList, err, $s};return $f;
		}), []);
		return;
	};
	actionUpdateUmsImageFlashdriveList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, dbBackupList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch UMS images for flashdrive list");
			_r$1 = $pkg.RpcClient.GetUmsImageFlashdriveList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			dbBackupList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve UMS images for flashdrive list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setUmsImageFlashdriveList", $String), $externalize(dbBackupList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, dbBackupList, err, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredDBBackupList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, dbBackupList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch GPIO names list");
			_r$1 = $pkg.RpcClient.GetStoredDBBackupList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			dbBackupList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve GPIO names list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setDBBackupList", $String), $externalize(dbBackupList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, dbBackupList, err, $s};return $f;
		}), []);
		return;
	};
	actionGetStartupMasterTemplateName = function(store, context$1, state) {
		var context$1, state, store;
		console.log("Called actionGetStartupMasterTemplateName ...");
		return NewPromise((function $b() {
			var {_r$1, _tmp, _tmp$1, _tuple, err, result, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			result = $ifaceNil;
			err = $ifaceNil;
			_r$1 = $pkg.RpcClient.GetStartupMasterTemplate(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			result = new $String(_tuple[0]);
			err = _tuple[1];
			/* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 2:
				context$1.Object.commit($externalize("setCurrentStartupMasterTemplateName", $String), $externalize(result, $emptyInterface));
			/* } */ case 3:
			_tmp = result;
			_tmp$1 = err;
			result = _tmp;
			err = _tmp$1;
			$s = -1; return [result, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tmp, _tmp$1, _tuple, err, result, $s};return $f;
		}));
	};
	actionSetStartupMasterTemplateName = function(store, context$1, state, name) {
		var context$1, name, state, store;
		return NewPromise((function $b() {
			var {_r$1, err, result, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			result = $ifaceNil;
			err = $ifaceNil;
			console.log("Setting startup MasterTemplate name to:", $internalize(name, $String));
			_r$1 = $pkg.RpcClient.SetStartupMasterTemplate(new time.Duration(2, 1410065408), $internalize(name, $String)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			result = new $Bool(true);
			$s = -1; return [result, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, result, $s};return $f;
		}));
	};
	actionBackupDB = function(store, context$1, state, name) {
		var context$1, name, state, store;
		$go((function $b() {
			var {_r$1, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Creating DB backup:" + $internalize(name, $String));
			_r$1 = $pkg.RpcClient.DBBackup(new time.Duration(2, 1410065408), $internalize(name, $String)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Error for RPC BackupDB call", err);
				$s = -1; return;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, $s};return $f;
		}), []);
		return;
	};
	actionRestoreDB = function(store, context$1, state, name) {
		var context$1, name, state, store;
		return new $jsObjectPtr(NewPromise((function $b() {
			var {_r$1, _tmp, _tmp$1, err, result, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			result = $ifaceNil;
			err = $ifaceNil;
			console.log("Restoring DB Backup:", $internalize(name, $String));
			_r$1 = $pkg.RpcClient.DBRestore(new time.Duration(2, 1410065408), $internalize(name, $String)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Error for RPC RestoreDB call", err);
			}
			_tmp = result;
			_tmp$1 = err;
			result = _tmp;
			err = _tmp$1;
			$s = -1; return [result, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tmp, _tmp$1, err, result, $s};return $f;
		})).Object.then($externalize((function $b(successVal) {
			var {successVal, $s, $r, $c} = $restore(this, {successVal});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("RestoreDB succeeded, reloading state");
			context$1.Object.dispatch($externalize("updateAllStates", $String));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, successVal, $s};return $f;
		}), funcType$1)));
	};
	actionReboot = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Reboot...");
			_r$1 = $pkg.RpcClient.Reboot(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Error for RPC reboot call", err);
				$s = -1; return;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, $s};return $f;
		}), []);
		return;
	};
	actionShutdown = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Shutdown...");
			_r$1 = $pkg.RpcClient.Shutdown(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Error for RPC shutdown call", err);
				$s = -1; return;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, $s};return $f;
		}), []);
		return;
	};
	actionUpdateGpioNamesList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, gpioList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch GPIO names list");
			_r$1 = $pkg.RpcClient.GetGpioNamesList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			gpioList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve GPIO names list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setStoredGpioNamesList", $String), $externalize(gpioList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, gpioList, $s};return $f;
		}), []);
		return;
	};
	actionDeployMasterTemplate = function(store, context$1, state, mt) {
		var context$1, mt, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch deployMasterTemplate");
			_r$1 = $pkg.RpcClient.DeployMasterTemplate(new time.Duration(6, 4230196224), mt.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored master template", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("Master template deployed", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionUpdateStoredMasterTemplateList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, mtList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch master template list");
			_r$1 = $pkg.RpcClient.GetStoredMasterTemplateList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			mtList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve MasterTemplate list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setStoredMasterTemplateList", $String), $externalize(mtList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, mtList, $s};return $f;
		}), []);
		return;
	};
	actionStoreMasterTemplate = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store MasterTemplate: ", $internalize(req.Object.TemplateName, $String));
			_r$1 = $pkg.RpcClient.StoreMasterTemplate(new time.Duration(2, 1410065408), req.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing MasterTemplate", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New MasterTemplate stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionLoadMasterTemplate = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, jsMT, template, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load MasterTemplate: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.GetStoredMasterTemplate(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			template = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error fetching stored MasterTemplate", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			jsMT = NewMasterTemplate();
			jsMT.fromGo(template);
			context$1.Object.commit($externalize("setCurrentMasterTemplate", $String), $externalize(jsMT, ptrType$29));
			QuasarNotifySuccess("New MasterTemplate loaded", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, jsMT, template, $s};return $f;
		}), []);
	};
	actionDeployStoredMasterTemplate = function(store, context$1, state, templateName) {
		var context$1, state, store, templateName;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, goMT, jsMT, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load MasterTemplate: ", $internalize(templateName, $String));
			_r$1 = $pkg.RpcClient.DeployStoredMasterTemplate(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(templateName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			goMT = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored MasterTemplate", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New MasterTemplate deployed", "", "top");
			jsMT = NewMasterTemplate();
			jsMT.fromGo(goMT);
			context$1.Object.commit($externalize("setCurrentMasterTemplate", $String), $externalize(jsMT, ptrType$29));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, goMT, jsMT, $s};return $f;
		}), []);
	};
	actionDeleteStoredMasterTemplate = function(store, context$1, state, templateName) {
		var context$1, state, store, templateName;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch delete MasterTemplate: ", $internalize(templateName, $String));
			_r$1 = $pkg.RpcClient.DeleteStoredMasterTemplate(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(templateName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting stored MasterTemplate", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("MasterTemplate deleted", "", "top");
			actionUpdateStoredMasterTemplateList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionSendAndRunHIDScript = function(store, context$1, state, scriptContent) {
		var context$1, scriptContent, state, store;
		$go((function $b() {
			var {_arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, filename, job, strScriptContent, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			strScriptContent = $internalize(scriptContent, $String);
			console.log("Send and run HIDScript job");
			_r$1 = $pkg.RpcClient.UploadContentToTempFile(new time.Duration(2, 1410065408), (new sliceType$10($stringToBytes(strScriptContent)))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			filename = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				console.log("Couldn't upload HIDScript job", err);
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error uploading script", _arg, "top"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			_r$3 = $pkg.RpcClient.RunHIDScriptJob(new time.Duration(2, 1410065408), "/tmp/" + filename); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
			_tuple$1 = _r$3;
			job = _tuple$1[0];
			err = _tuple$1[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 7; continue; }
			/* */ $s = 8; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 7:
				console.log("Couldn't start HIDScript job", err);
				_r$4 = err.Error(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
				_arg$1 = _r$4;
				$r = QuasarNotifyError("Error starting script as background job", _arg$1, "top"); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 8:
			QuasarNotifySuccess("Script started successfully", "Job ID " + strconv.Itoa(((job.Id >> 0))), "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, err, filename, job, strScriptContent, $s};return $f;
		}), []);
		return;
	};
	actionCancelHidJob = function(store, context$1, state, jobID) {
		var context$1, jobID, state, store;
		$go((function $b() {
			var {_r$1, err, id, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			id = ((($parseInt(jobID) >> 0) >>> 0));
			console.log("Cancel HIDScript job", id);
			_r$1 = $pkg.RpcClient.CancelHIDScriptJob(new time.Duration(2, 1410065408), id); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't cancel HIDScript job", err);
				$s = -1; return;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, id, $s};return $f;
		}), []);
		return;
	};
	actionCancelAllHidJobs = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Cancel all HIDScript jobs");
			_r$1 = $pkg.RpcClient.CancelAllHIDScriptJobs(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't cancel all HIDScript jobs", err);
				$s = -1; return;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, $s};return $f;
		}), []);
		return;
	};
	actionRemoveSucceededHidJobs = function(store, context$1, state) {
		var {context$1, filtered, i, job, jobs, state, store, vJobs, $s, $r, $c} = $restore(this, {store, context$1, state});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		vJobs = $internalize(state.Object.hidJobList, ptrType$27).Object.jobs;
		jobs = $global.Object.values(vJobs);
		filtered = jobs.filter($externalize((function(job) {
			var job;
			return !!(job.Object.hasSucceeded);
		}), funcType$2));
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < $parseInt(filtered.length))) { break; } */ if(!(i < $parseInt(filtered.length))) { $s = 2; continue; }
			job = new jsHidJobState.ptr(filtered[i], new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			store.Object.commit($externalize("deleteHIDJobID", $String), $externalize($internalize(job.Object.id, $Int64), $Int64));
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: actionRemoveSucceededHidJobs, $c: true, $r, context$1, filtered, i, job, jobs, state, store, vJobs, $s};return $f;
	};
	actionRemoveFailedHidJobs = function(store, context$1, state) {
		var {context$1, filtered, i, job, jobs, state, store, vJobs, $s, $r, $c} = $restore(this, {store, context$1, state});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		vJobs = $internalize(state.Object.hidJobList, ptrType$27).Object.jobs;
		jobs = $global.Object.values(vJobs);
		filtered = jobs.filter($externalize((function(job) {
			var job;
			return !!(job.Object.hasFailed);
		}), funcType$2));
		i = 0;
		/* while (true) { */ case 1:
			/* if (!(i < $parseInt(filtered.length))) { break; } */ if(!(i < $parseInt(filtered.length))) { $s = 2; continue; }
			job = new jsHidJobState.ptr(filtered[i], new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			store.Object.commit($externalize("deleteHIDJobID", $String), $externalize($internalize(job.Object.id, $Int64), $Int64));
			i = i + (1) >> 0;
		$s = 1; continue;
		case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: actionRemoveFailedHidJobs, $c: true, $r, context$1, filtered, i, job, jobs, state, store, vJobs, $s};return $f;
	};
	actionStartEventListen = function(store, context$1, state) {
		var context$1, state, store;
		globalState.Object.EventListenerShouldBeRunning = $externalize(true, $Bool);
		$go((function $b() {
			var {_r$1, _r$2, _tuple, _tuple$1, cancel, err, err$1, evStream, newEvent, $s, $deferred, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
			/* while (true) { */ case 1:
				/* if (!(!!(state.Object.EventListenerShouldBeRunning))) { break; } */ if(!(!!(state.Object.EventListenerShouldBeRunning))) { $s = 2; continue; }
				console.log("Starting store event listener");
				_r$1 = $pkg.RpcClient.StartEventListening(new time.Duration(0, 2000000000)); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
				_tuple = _r$1;
				evStream = _tuple[0];
				cancel = _tuple[1];
				err = _tuple[2];
				/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
				/* */ $s = 5; continue;
				/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
					console.log("Couldn't start event listener or connect to server ...");
					/* */ if (!!(globalState.Object.EventListenerShouldBeRunning)) { $s = 6; continue; }
					/* */ $s = 7; continue;
					/* if (!!(globalState.Object.EventListenerShouldBeRunning)) { */ case 6:
						state.Object.ConnectRetryCount = ($parseInt(state.Object.ConnectRetryCount) >> 0) + (1) >> 0;
						$r = time.Sleep(new time.Duration(0, 2000000000)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
						/* continue; */ $s = 1; continue;
						$s = 8; continue;
					/* } else { */ case 7:
						state.Object.ConnectRetryCount = 0;
						/* break; */ $s = 2; continue;
					/* } */ case 8:
				/* } */ case 5:
				console.log(" ... Event listener started");
				$deferred.push([cancel, []]);
				$deferred.push([$methodVal(evStream, "CloseSend"), []]);
				/* */ if (!(state.EventListenerCancelFunc === $throwNilPointerError)) { $s = 10; continue; }
				/* */ $s = 11; continue;
				/* if (!(state.EventListenerCancelFunc === $throwNilPointerError)) { */ case 10:
					$r = globalState.EventListenerCancelFunc(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				/* } */ case 11:
				globalState.EventListenerCancelFunc = cancel;
				store.Object.commit($externalize("setEventListenerRunning", $String), $externalize(true, $Bool));
				store.Object.dispatch($externalize("updateAllStates", $String));
				/* while (true) { */ case 13:
					_r$2 = evStream.Recv(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
					_tuple$1 = _r$2;
					newEvent = _tuple$1[0];
					err$1 = _tuple$1[1];
					if (!($interfaceIsEqual(err$1, $ifaceNil))) {
						if ($interfaceIsEqual(err$1, io.EOF)) {
							console.log("Event listening aborted because end of event stream was reached");
						} else {
							console.log("Event listening aborted because of error", err$1);
						}
						/* break; */ $s = 14; continue;
					}
					$r = processEvent(newEvent, store, state); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 13; continue;
				case 14:
				console.log("Stopped store event listener");
				store.Object.commit($externalize("setEventListenerRunning", $String), $externalize(false, $Bool));
				globalState.EventListenerCancelFunc = $throwNilPointerError;
			$s = 1; continue;
			case 2:
			$s = -1; return;
			/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, _tuple, _tuple$1, cancel, err, err$1, evStream, newEvent, $s, $deferred};return $f; } }
		}), []);
		return;
	};
	actionStopEventListen = function(store, context$1, state) {
		var {context$1, state, store, $s, $r, $c} = $restore(this, {store, context$1, state});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		console.log("Stopping event listener");
		globalState.Object.EventListenerShouldBeRunning = $externalize(false, $Bool);
		/* */ if (!(globalState.EventListenerCancelFunc === $throwNilPointerError)) { $s = 1; continue; }
		/* */ $s = 2; continue;
		/* if (!(globalState.EventListenerCancelFunc === $throwNilPointerError)) { */ case 1:
			console.log("Calling event listener cancel func");
			$r = globalState.EventListenerCancelFunc(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		/* } */ case 2:
		$s = -1; return;
		/* */ } return; } var $f = {$blk: actionStopEventListen, $c: true, $r, context$1, state, store, $s};return $f;
	};
	actionUpdateStoredBluetoothSettingsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, btsList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch bluetooth settings list");
			_r$1 = $pkg.RpcClient.GetStoredBluetoothSettingsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			btsList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve BluetoothSettings list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setStoredBluetoothSettingsList", $String), $externalize(btsList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, btsList, err, $s};return $f;
		}), []);
		return;
	};
	actionDeployStoredBluetoothSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, goBluetoothStettings, jsBluetoothSettings$1, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load Bluetooth settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeployStoredBluetoothSettings(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			goBluetoothStettings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored Bluetooth Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New Bluetooth settings deployed", "", "top");
			jsBluetoothSettings$1 = NewBluetoothSettings();
			jsBluetoothSettings$1.fromGo(goBluetoothStettings);
			console.log("New bluetooth settings", jsBluetoothSettings$1);
			context$1.Object.commit($externalize("setCurrentBluetoothAgentSettings", $String), $externalize($internalize(jsBluetoothSettings$1.Object.As, ptrType$10), ptrType$10));
			context$1.Object.commit($externalize("setCurrentBluetoothControllerInformation", $String), $externalize($internalize(jsBluetoothSettings$1.Object.Ci, ptrType$11), ptrType$11));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, goBluetoothStettings, jsBluetoothSettings$1, $s};return $f;
		}), []);
	};
	actionDeleteStoredBluetoothSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch delete Bluetooth settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeleteStoredBluetoothSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting stored Bluetooth Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("Bluetooth settings deleted", "", "top");
			actionUpdateStoredBluetoothSettingsList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionStoreBluetoothSettings = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store Bluetooth settings: ", $internalize(req.Object.TemplateName, $String));
			_r$1 = $pkg.RpcClient.StoreBluetoothSettings(new time.Duration(2, 1410065408), req.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing Bluetooth Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New Bluetooth settings stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionDeleteStoredUSBSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch delete USB settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeleteStoredUSBSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting stored USB Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("USB settings deleted", "", "top");
			actionUpdateStoredUSBSettingsList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionDeleteStoredTriggerActionSet = function(store, context$1, state, jsName) {
		var context$1, jsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, msg, name, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			name = $internalize(jsName, $String);
			console.log("Vuex delete stored TriggerActionSet: ", name);
			msg = new P4wnP1_grpc.StringMessage.ptr(name);
			_r$1 = $pkg.RpcClient.DeleteStoredTriggerActionsSet(new time.Duration(2, 1410065408), msg); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting TriggerActionSet from store", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("Deleted TriggerActionSet from store", name, "top");
			actionUpdateStoredTriggerActionSetsList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, msg, name, $s};return $f;
		}), []);
	};
	actionDeleteStoredWifiSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch delete WiFi settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeleteStoredWifiSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting stored WiFi Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("Stored WiFi settings deleted", "", "top");
			actionUpdateStoredWifiSettingsList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionDeleteStoredEthernetInterfaceSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch delete stored ethernet interface settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeleteStoredEthernetInterfaceSettings(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deleting stored ethernet interface Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("Stored ethernet interface settings deleted", "", "top");
			actionUpdateStoredEthernetInterfaceSettingsList(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionUpdateCurrentBluetoothControllerInformation = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, res, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch bluetooth controller information");
			_r$1 = $pkg.RpcClient.GetBluetoothControllerInformation(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			res = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve BluetoothControllerInformation");
				$s = -1; return;
			}
			console.log("Bluetooth Controller Info: ", res);
			context$1.Object.commit($externalize("setCurrentBluetoothControllerInformation", $String), $externalize(res, ptrType$11));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, res, $s};return $f;
		}), []);
		return;
	};
	actionDeployCurrentBluetoothControllerInformation = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, res, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to deploy bluetooth controller information: ", $internalize(state.Object.CurrentBluetoothControllerInformation, ptrType$11));
			_r$1 = $pkg.RpcClient.DeployBluetoothControllerInformation(new time.Duration(2, 1410065408), $internalize(state.Object.CurrentBluetoothControllerInformation, ptrType$11)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			res = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't deploy BluetoothControllerInformation", err);
				actionUpdateCurrentBluetoothControllerInformation(store, context$1, state);
				$s = -1; return;
			}
			console.log("Bluetooth Controller Info after deploy: ", res);
			context$1.Object.commit($externalize("setCurrentBluetoothControllerInformation", $String), $externalize(res, ptrType$11));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, res, $s};return $f;
		}), []);
		return;
	};
	actionUpdateCurrentBluetoothAgentSettings = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, res, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch bluetooth agent settings");
			_r$1 = $pkg.RpcClient.GetBluetoothAgentSettings(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			res = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve AgentSettings");
				$s = -1; return;
			}
			console.log("Bluetooth Controller Info: ", res);
			context$1.Object.commit($externalize("setCurrentBluetoothAgentSettings", $String), $externalize(res, ptrType$10));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, res, $s};return $f;
		}), []);
		return;
	};
	actionDeployCurrentBluetoothAgentSettings = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, res, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to deploy bluetooth agent settings: ", $internalize(state.Object.CurrentBluetoothAgentSettings, ptrType$10));
			_r$1 = $pkg.RpcClient.DeployBluetoothAgentSettings(new time.Duration(2, 1410065408), $internalize(state.Object.CurrentBluetoothAgentSettings, ptrType$10)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			res = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't deploy agent settings", err);
				actionUpdateCurrentBluetoothAgentSettings(store, context$1, state);
				$s = -1; return;
			}
			console.log("Bluetooth agent settings after deploy: ", res);
			context$1.Object.commit($externalize("setCurrentBluetoothAgentSettings", $String), $externalize(res, ptrType$10));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, res, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredUSBSettingsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, usbsList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch stored USB settings list");
			_r$1 = $pkg.RpcClient.GetStoredUSBSettingsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			usbsList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve USB SettingsList");
				$s = -1; return;
			}
			console.log(usbsList);
			context$1.Object.commit($externalize("setStoredUSBSettingsList", $String), $externalize(usbsList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, usbsList, $s};return $f;
		}), []);
		return;
	};
	actionStoreUSBSettings = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store USB settings: ", $internalize(req.Object.TemplateName, $String));
			_r$1 = $pkg.RpcClient.StoreUSBSettings(new time.Duration(2, 1410065408), req.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing USB Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New USB settings stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionLoadUSBSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load USB settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.GetStoredUSBSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			settings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error fetching stored USB Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			jsSettings = NewUSBGadgetSettings();
			jsSettings.fromGo(settings);
			context$1.Object.commit($externalize("setCurrentUSBSettings", $String), $externalize(jsSettings, ptrType$26));
			QuasarNotifySuccess("New USB settings loaded", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s};return $f;
		}), []);
	};
	actionDeployStoredUSBSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, goUSBstettings, jsUSBSettings, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load USB settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeployStoredUSBSettings(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			goUSBstettings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored USB Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New USB settings deployed", "", "top");
			jsUSBSettings = NewUSBGadgetSettings();
			jsUSBSettings.fromGo(goUSBstettings);
			context$1.Object.commit($externalize("setCurrentUSBSettings", $String), $externalize(jsUSBSettings, ptrType$26));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, goUSBstettings, jsUSBSettings, $s};return $f;
		}), []);
	};
	actionUpdateAllEthernetInterfaceSettings = function(store, context$1, state) {
		var context$1, state, store;
		return NewPromise((function $b() {
			var {_r$1, _r$2, _tuple, err, ifSettings, res, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			res = $ifaceNil;
			err = $ifaceNil;
			console.log("Trying to fetch all deployed Ethernet Interface settings");
			_r$1 = $pkg.RpcClient.GetAllDeployedEthernetInterfaceSettings(new time.Duration(1, 705032704)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			ifSettings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				err = errors.New("Couldn't retrieve interface settings");
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				console.log(_r$2);
				$s = -1; return [res, err];
			/* } */ case 3:
			context$1.Object.commit($externalize("setAllEthernetInterfaceSettings", $String), $externalize(ifSettings, ptrType$18));
			$s = -1; return [res, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, _tuple, err, ifSettings, res, $s};return $f;
		}));
	};
	actionStoreEthernetInterfaceSettings = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store ethernet interface settings '", $internalize(req.Object.TemplateName, $String), "' for interface: ", $internalize($internalize(req.Object.Settings, ptrType$31).Object.name, $String));
			_r$1 = $pkg.RpcClient.StoreEthernetInterfaceSettings(new time.Duration(2, 1410065408), req.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing ethernet interface Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New ethernet interface settings stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionLoadEthernetInterfaceSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load ethernet interface settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.GetStoredEthernetInterfaceSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			settings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error fetching stored ethernet interface Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			jsSettings = new jsEthernetInterfaceSettings.ptr(O(), "", 0, "", "", false, ptrType$32.nil, false);
			jsSettings.fromGo(settings);
			context$1.Object.commit($externalize("setSingleEthernetInterfaceSettings", $String), $externalize(jsSettings, ptrType$31));
			QuasarNotifySuccess("New ethernet interface settings loaded", "Interface: " + $internalize(jsSettings.Object.name, $String), "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s};return $f;
		}), []);
	};
	actionDeployStoredEthernetInterfaceSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch deploy stored ethernet interface settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeployStoredEthernetInterfaceSettings(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored ethernet interface Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New ethernet interface settings deployed", "", "top");
			actionUpdateAllEthernetInterfaceSettings(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionUpdateStoredEthernetInterfaceSettingsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, eisList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch EthernetInterfaceSettings list");
			_r$1 = $pkg.RpcClient.GetStoredEthernetInterfaceSettingsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			eisList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve EthernetInterfaceSettings list");
				$s = -1; return;
			}
			console.log("Fetched list: ", eisList);
			context$1.Object.commit($externalize("setStoredEthernetInterfaceSettingsList", $String), $externalize(eisList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, eisList, err, $s};return $f;
		}), []);
		return;
	};
	actionUpdateCurrentHidScriptSourceFromRemoteFile = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_1, _arg, _arg$1, _r$1, _r$2, _tuple, content, err, newSource, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to update current hid script source from remote file ", $internalize(req.Object.FileName, $String));
			_r$1 = $pkg.RpcClient.DownloadFileToBytes(new time.Duration(6, 4230196224), $internalize(req.Object.FileName, $String), 2); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			content = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_arg = "Couldn't load HIDScript source " + $internalize(req.Object.FileName, $String);
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg$1 = _r$2;
				$r = QuasarNotifyError(_arg, _arg$1, "top"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			newSource = ($bytesToString(content));
			_1 = $parseInt(req.Object.Mode) >> 0;
			if (_1 === (1)) {
				newSource = $internalize(state.Object.currentHIDScriptSource, $String) + "\n" + newSource;
			} else if (_1 === (0)) {
				newSource = newSource + "\n" + $internalize(state.Object.currentHIDScriptSource, $String);
			} else if (_1 === (2)) {
			}
			context$1.Object.commit($externalize("setCurrentHIDScriptSource", $String), $externalize(newSource, $String));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _1, _arg, _arg$1, _r$1, _r$2, _tuple, content, err, newSource, $s};return $f;
		}), []);
		return;
	};
	actionStoreCurrentHidScriptSourceToRemoteFile = function(store, context$1, state, filename) {
		var context$1, filename, state, store;
		$go((function $b() {
			var {_arg, _arg$1, _r$1, _r$2, _r$3, content, err, ext, fname, lext, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			fname = $internalize(filename, $String);
			ext = filepath.Ext(fname);
			_r$1 = strings.ToLower(ext); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			lext = _r$1;
			if (!(lext === ".js") && !(lext === ".javascript")) {
				fname = fname + ".js";
			}
			console.log("Trying to store current hid script source to remote file ", fname);
			content = (new sliceType$10($stringToBytes($internalize(state.Object.currentHIDScriptSource, $String))));
			_r$2 = $pkg.RpcClient.UploadBytesToFile(new time.Duration(6, 4230196224), fname, 2, content, true); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
			err = _r$2;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; }
			/* */ $s = 4; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3:
				_arg = "Couldn't store HIDScript source " + fname;
				_r$3 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				_arg$1 = _r$3;
				$r = QuasarNotifyError(_arg, _arg$1, "top"); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 4:
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _arg$1, _r$1, _r$2, _r$3, content, err, ext, fname, lext, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredBashScriptsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, bsList, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch stored BashScripts list");
			_r$1 = $pkg.RpcClient.GetStoredBashScriptsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			bsList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve stored BashScripts list");
				$s = -1; return;
			}
			console.log(bsList);
			context$1.Object.commit($externalize("setStoredBashScriptsList", $String), $externalize(bsList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, bsList, err, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredHIDScriptsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, hidsList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch stored HIDScripts list");
			_r$1 = $pkg.RpcClient.GetStoredHIDScriptsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			hidsList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve  stored HIDScripts list");
				$s = -1; return;
			}
			console.log(hidsList);
			context$1.Object.commit($externalize("setStoredHIDScriptsList", $String), $externalize(hidsList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, hidsList, $s};return $f;
		}), []);
		return;
	};
	actionUpdateGadgetSettingsFromDeployed = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, dGS, err, jsGS, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch deployed USB gadget settings");
			_r$1 = $pkg.RpcClient.GetDeployedGadgetSettings(new time.Duration(1, 705032704)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			dGS = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve deployed gadget settings");
				$s = -1; return;
			}
			jsGS = new jsGadgetSettings.ptr(O(), false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$33.nil, ptrType$33.nil, ptrType$34.nil);
			jsGS.fromGo(dGS);
			context$1.Object.commit($externalize("setCurrentUSBSettings", $String), $externalize(jsGS, ptrType$26));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, dGS, err, jsGS, $s};return $f;
		}), []);
		return;
	};
	actionUpdateWifiState = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, state$1, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch deployed WiFi state list");
			_r$1 = $pkg.RpcClient.GetWifiState(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			state$1 = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve deployed WiFi settings");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setCurrentWifiState", $String), $externalize(state$1, ptrType$16));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, state$1, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredWifiSettingsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, wsList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch stored wifi settings list");
			_r$1 = $pkg.RpcClient.GetStoredWifiSettingsList(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			wsList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve WifiSettingsList");
				$s = -1; return;
			}
			console.log(wsList);
			context$1.Object.commit($externalize("setStoredWifiSettingsList", $String), $externalize(wsList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, wsList, $s};return $f;
		}), []);
		return;
	};
	actionStoreWifiSettings = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store WiFi settings: ", $internalize(req.Object.TemplateName, $String));
			_r$1 = $pkg.RpcClient.StoreWifiSettings(new time.Duration(2, 1410065408), req.toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing WiFi Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New WiFi settings stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, $s};return $f;
		}), []);
	};
	actionLoadWifiSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch load WiFi settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.GetStoredWifiSettings(new time.Duration(2, 1410065408), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			settings = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error fetching stored WiFi Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			jsSettings = NewWifiSettings();
			jsSettings.fromGo(settings);
			context$1.Object.commit($externalize("setCurrentWifiSettings", $String), $externalize(jsSettings, ptrType$17));
			QuasarNotifySuccess("New WiFi settings loaded", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, jsSettings, settings, $s};return $f;
		}), []);
	};
	actionDeployStoredWifiSettings = function(store, context$1, state, settingsName) {
		var context$1, settingsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, wstate, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch deploy stored WiFi settings: ", $internalize(settingsName, $String));
			_r$1 = $pkg.RpcClient.DeployStoredWifiSettings(new time.Duration(6, 4230196224), new P4wnP1_grpc.StringMessage.ptr($internalize(settingsName, $String))); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			wstate = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying stored WiFi Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New WiFi settings deployed", "", "top");
			$internalize(state.Object.wifiState, ptrType$16).fromGo(wstate);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, wstate, $s};return $f;
		}), []);
	};
	actionDeployWifiSettings = function(store, context$1, state, settings) {
		var context$1, settings, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, goSettings, wstate, $s, $deferred, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
			state.Object.deployingWifiSettings = $externalize(true, $Bool);
			$deferred.push([(function() {
				state.Object.deployingWifiSettings = $externalize(false, $Bool);
			}), []]);
			console.log("Vuex dispatch deploy WiFi settings");
			goSettings = settings.toGo();
			_r$1 = $pkg.RpcClient.DeployWifiSettings(new time.Duration(6, 4230196224), goSettings); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			wstate = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error deploying WiFi Settings", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			/* } */ case 3:
			QuasarNotifySuccess("New WiFi settings deployed", "", "top");
			$internalize(state.Object.wifiState, ptrType$16).fromGo(wstate);
			$s = -1; return;
			/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, goSettings, wstate, $s, $deferred};return $f; } }
		}), []);
	};
	actionUpdateRunningHidJobs = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_i, _r$1, _r$2, _r$3, _ref, _tuple, err, jobstate, jobstates, timeNowUnixMilli, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch data for running HIDScript jobs");
			_r$1 = $pkg.RpcClient.GetRunningHidJobStates(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			jobstates = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve stateof running HID jobs", err);
				$s = -1; return;
			}
			$internalize(state.Object.hidJobList, ptrType$27).Clear();
			_ref = jobstates;
			_i = 0;
			/* while (true) { */ case 2:
				/* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; }
				jobstate = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				console.log("updateing jobstate", jobstate);
				_r$2 = time.Now(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_r$3 = $clone(_r$2, time.Time).UnixNano(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
				timeNowUnixMilli = $div64(_r$3, new $Int64(0, 1000000), false);
				$internalize(state.Object.hidJobList, ptrType$27).UpdateEntry(jobstate.Id, jobstate.VmId, false, false, "initial job state", "", timeNowUnixMilli, jobstate.Source);
				_i++;
			$s = 2; continue;
			case 3:
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _r$2, _r$3, _ref, _tuple, err, jobstate, jobstates, timeNowUnixMilli, $s};return $f;
		}), []);
		return;
	};
	actionUpdateStoredTriggerActionSetsList = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_r$1, _tuple, err, tasList, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Trying to fetch TriggerActionSetList");
			_r$1 = $pkg.RpcClient.ListStoredTriggerActionSets(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			tasList = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				console.log("Couldn't retrieve TriggerActions list");
				$s = -1; return;
			}
			context$1.Object.commit($externalize("setStoredTriggerActionSetsList", $String), $externalize(tasList, sliceType$9));
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, err, tasList, $s};return $f;
		}), []);
		return;
	};
	actionUpdateCurrentTriggerActionsFromServer = function(store, context$1, state) {
		var context$1, state, store;
		return NewPromise((function $b() {
			var {_arg, _i, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, jsTA, res, ta, tastate, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			res = $ifaceNil;
			err = $ifaceNil;
			console.log("Trying to fetch current TriggerActions from server");
			_r$1 = $pkg.RpcClient.GetDeployedTriggerActionSet(new time.Duration(2, 1410065408)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			tastate = _tuple[0];
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error fetching deployed TriggerActions", _arg, "top"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				_tmp = new $Bool(false);
				_tmp$1 = err;
				res = _tmp;
				err = _tmp$1;
				$s = -1; return [res, err];
			/* } */ case 3:
			$internalize(state.Object.triggerActionList, ptrType$28).Flush();
			_ref = tastate.TriggerActions;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				ta = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				jsTA = NewTriggerAction();
				jsTA.fromGo(ta);
				$internalize(state.Object.triggerActionList, ptrType$28).UpdateEntry(jsTA);
				_i++;
			}
			_tmp$2 = new $Bool(true);
			_tmp$3 = err;
			res = _tmp$2;
			err = _tmp$3;
			$s = -1; return [res, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _i, _r$1, _r$2, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, jsTA, res, ta, tastate, $s};return $f;
		})).Object;
	};
	actionAddNewTriggerAction = function(store, context$1, state) {
		var context$1, state, store;
		return new $jsObjectPtr(NewPromise((function $b() {
			var {_r$1, _tuple, added, err, newTA, res, x, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			res = $ifaceNil;
			err = $ifaceNil;
			newTA = NewTriggerAction();
			newTA.Object.IsActive = $externalize(false, $Bool);
			_r$1 = $pkg.RpcClient.DeployTriggerActionsSetAdd(new time.Duration(2, 1410065408), new P4wnP1_grpc.TriggerActionSet.ptr(new sliceType$12([newTA.toGo()]), "")); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			added = _tuple[0];
			if (!(added === ptrType$21.nil) && ((added.TriggerActions.$length === 1))) {
				res = new $Uint32((x = added.TriggerActions, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Id);
				console.log("TriggerAction with ID", res, "added");
			} else {
				err = errors.New("couldn't add TriggerAction");
			}
			$s = -1; return [res, err];
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _tuple, added, err, newTA, res, x, $s};return $f;
		})).Object.then($externalize((function(resAddPromise) {
			var resAddPromise, updatePromise;
			updatePromise = actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			return new $jsObjectPtr(updatePromise.then($externalize((function(resUpdatePromise) {
				var resUpdatePromise;
				return new $jsObjectPtr(resAddPromise);
			}), funcType$3)));
		}), funcType$3)));
	};
	actionUpdateTriggerActions = function(store, context$1, state, jsTas) {
		var context$1, jsTas, state, store;
		$go((function $b() {
			var {_i, _r$1, _ref, _tuple, err, goTa, jsTA, ta, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$1 = $pkg.RpcClient.DeployTriggerActionsSetUpdate(new time.Duration(2, 1410065408), $clone(jsTas, jsTriggerActionSet).toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			goTa = _tuple[0];
			err = _tuple[1];
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
				$s = -1; return;
			}
			$internalize(state.Object.triggerActionList, ptrType$28).Flush();
			_ref = goTa.TriggerActions;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				ta = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				jsTA = NewTriggerAction();
				jsTA.fromGo(ta);
				$internalize(state.Object.triggerActionList, ptrType$28).UpdateEntry(jsTA);
				_i++;
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, _tuple, err, goTa, jsTA, ta, $s};return $f;
		}), []);
		return;
	};
	actionRemoveTriggerActions = function(store, context$1, state, jsTas) {
		var context$1, jsTas, state, store;
		$go((function $b() {
			var {_r$1, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			_r$1 = $pkg.RpcClient.DeployTriggerActionsSetRemove(new time.Duration(2, 1410065408), $clone(jsTas, jsTriggerActionSet).toGo()); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_r$1;
			actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
		}), []);
		return;
	};
	actionStoreTriggerActionSet = function(store, context$1, state, req) {
		var context$1, req, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, err, tas, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch store TriggerAction list: ", $internalize(req.Object.Name, $String));
			tas = $clone(req, jsTriggerActionSet).toGo();
			_r$1 = $pkg.RpcClient.StoreTriggerActionSet(new time.Duration(2, 1410065408), tas); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error storing TriggerActionSet", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("TriggerActionSet stored", "", "top");
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, err, tas, $s};return $f;
		}), []);
	};
	actionDeployTriggerActionSetReplace = function(store, context$1, state, tasToDeploy) {
		var context$1, state, store, tasToDeploy;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, tas, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			tas = $clone(tasToDeploy, jsTriggerActionSet).toGo();
			_r$1 = $pkg.RpcClient.DeployTriggerActionsSetReplace(new time.Duration(2, 1410065408), tas); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error replacing TriggerActionSet with given one", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("Replaced TriggerActionSet with given one", "", "top");
			actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, tas, $s};return $f;
		}), []);
	};
	actionDeployTriggerActionSetAdd = function(store, context$1, state, tasToDeploy) {
		var context$1, state, store, tasToDeploy;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, tas, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			tas = $clone(tasToDeploy, jsTriggerActionSet).toGo();
			_r$1 = $pkg.RpcClient.DeployTriggerActionsSetAdd(new time.Duration(2, 1410065408), tas); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error adding given TriggerActionSet to server", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("Added TriggerActionSet to server", "", "top");
			actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, tas, $s};return $f;
		}), []);
	};
	actionDeployStoredTriggerActionSetReplace = function(store, context$1, state, jsName) {
		var context$1, jsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, msg, name, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			name = $internalize(jsName, $String);
			console.log("Vuex dispatch deploy stored TriggerActionSet as replacement: ", name);
			msg = new P4wnP1_grpc.StringMessage.ptr(name);
			_r$1 = $pkg.RpcClient.DeployStoredTriggerActionsSetReplace(new time.Duration(2, 1410065408), msg); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error replacing TriggerActionSet with stored set", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("Replaced TriggerActionSet by stored set", name, "top");
			actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, msg, name, $s};return $f;
		}), []);
	};
	actionDeployStoredTriggerActionSetAdd = function(store, context$1, state, jsName) {
		var context$1, jsName, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, err, msg, name, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			name = $internalize(jsName, $String);
			console.log("Vuex dispatch deploy stored TriggerActionSet as addition: ", name);
			msg = new P4wnP1_grpc.StringMessage.ptr(name);
			_r$1 = $pkg.RpcClient.DeployStoredTriggerActionsSetAdd(new time.Duration(2, 1410065408), msg); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error adding TriggerActionSet from store", _arg, "bottom"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = -1; return;
			/* } */ case 3:
			QuasarNotifySuccess("Added TriggerActionSet from store", name, "top");
			actionUpdateCurrentTriggerActionsFromServer(store, context$1, state);
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, err, msg, name, $s};return $f;
		}), []);
	};
	actionDeployCurrentGadgetSettings = function(store, context$1, state) {
		var context$1, state, store;
		$go((function $b() {
			var {_arg, _r$1, _r$2, _tuple, curGS, err, notification, $s, $deferred, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
			state.Object.deployingGadgetSettings = $externalize(true, $Bool);
			$deferred.push([(function() {
				state.Object.deployingGadgetSettings = $externalize(false, $Bool);
			}), []]);
			curGS = $clone($internalize(state.Object.currentGadgetSettings, ptrType$26), jsGadgetSettings).toGo();
			_r$1 = $pkg.RpcClient.DeployRemoteGadgetSettings(new time.Duration(2, 1410065408), curGS); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			_tuple = _r$1;
			err = _tuple[1];
			/* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
			/* */ $s = 3; continue;
			/* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
				_r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
				_arg = _r$2;
				$r = QuasarNotifyError("Error while deploying new USB gadget settings", _arg, "top"); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
				$s = 6; case 6: return;
			/* } */ case 3:
			notification = new QuasarNotification.ptr(O(), "", "", "", "", "", "", "", 0);
			notification.Object.message = $externalize("New Gadget Settings deployed successfully", $String);
			notification.Object.position = $externalize("top", $String);
			notification.Object.type = $externalize("positive", $String);
			notification.Object.timeout = 2000;
			QuasarNotify(notification);
			$s = 7; case 7: return;
			/* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _arg, _r$1, _r$2, _tuple, curGS, err, notification, $s, $deferred};return $f; } }
		}), []);
		return;
	};
	actionDeployEthernetInterfaceSettings = function(store, context$1, state, settings) {
		var context$1, settings, state, store;
		$go((function $b() {
			var {_r$1, err, goSettings, $s, $r, $c} = $restore(this, {});
			/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
			console.log("Vuex dispatch deploy ethernet interface settings");
			goSettings = settings.toGo();
			_r$1 = $pkg.RpcClient.DeployedEthernetInterfaceSettings(new time.Duration(1, 705032704), goSettings); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
			err = _r$1;
			if (!($interfaceIsEqual(err, $ifaceNil))) {
				Alert(err);
			}
			$s = -1; return;
			/* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, err, goSettings, $s};return $f;
		}), []);
	};
	initMVuex = function() {
		var {_arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, state, store, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		state = [state];
		state[0] = $clone(createGlobalStateStruct(), GlobalState);
		globalState = state[0];
		_r$1 = mvuex.State(new state[0].constructor.elem(state[0])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg = _r$1;
		_r$2 = mvuex.Mutation("setModalEnabled", new funcType$4((function(state) { return function(store, state$1, enabled) {
			var enabled, state$1, store;
			state$1.Object.isModalEnabled = $externalize(enabled, $Bool);
			return;
		}; })(state))); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$1 = _r$2;
		_r$3 = mvuex.Mutation("setCurrentHIDScriptSource", new funcType$5((function(state) { return function(store, state$1, newText) {
			var newText, state$1, store;
			state$1.Object.currentHIDScriptSource = $externalize(newText, $String);
			return;
		}; })(state))); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$2 = _r$3;
		_r$4 = mvuex.Mutation("setCurrentUSBSettings", new funcType$6((function(state) { return function(store, state$1, settings) {
			var settings, state$1, store;
			state$1.Object.currentGadgetSettings = $externalize(settings, ptrType$26);
			return;
		}; })(state))); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$3 = _r$4;
		_r$5 = mvuex.Mutation("setCurrentWifiState", new funcType$7((function(state) { return function(store, state$1, wifiState) {
			var state$1, store, wifiState;
			state$1.Object.wifiState = $externalize(wifiState, ptrType$16);
			return;
		}; })(state))); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$4 = _r$5;
		_r$6 = mvuex.Mutation("setCurrentWifiSettings", new funcType$8((function(state) { return function(store, state$1, wifiSettings) {
			var state$1, store, wifiSettings;
			$internalize(state$1.Object.wifiState, ptrType$16).Object.CurrentSettings = $externalize(wifiSettings, ptrType$17);
			return;
		}; })(state))); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$5 = _r$6;
		_r$7 = mvuex.Mutation("setStoredWifiSettingsList", new funcType$9((function(state) { return function(store, state$1, wsList) {
			var state$1, store, wsList;
			console.log("New ws list", wsList);
			hvue.Set(state$1, new $String("StoredWifiSettingsList"), wsList);
		}; })(state))); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$6 = _r$7;
		_r$8 = mvuex.Mutation("setStoredBluetoothSettingsList", new funcType$9((function(state) { return function(store, state$1, btsList) {
			var btsList, state$1, store;
			console.log("New Bluetooth list", btsList);
			hvue.Set(state$1, new $String("StoredBluetoothSettingsList"), btsList);
		}; })(state))); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$7 = _r$8;
		_r$9 = mvuex.Mutation("setStoredUSBSettingsList", new funcType$9((function(state) { return function(store, state$1, usbList) {
			var state$1, store, usbList;
			console.log("New USB settings list", usbList);
			hvue.Set(state$1, new $String("StoredUSBSettingsList"), usbList);
		}; })(state))); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$8 = _r$9;
		_r$10 = mvuex.Mutation("setStoredBashScriptsList", new funcType$9((function(state) { return function(store, state$1, bsList) {
			var bsList, state$1, store;
			hvue.Set(state$1, new $String("StoredBashScriptsList"), bsList);
		}; })(state))); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_arg$9 = _r$10;
		_r$11 = mvuex.Mutation("setStoredHIDScriptsList", new funcType$9((function(state) { return function(store, state$1, hidsList) {
			var hidsList, state$1, store;
			hvue.Set(state$1, new $String("StoredHIDScriptsList"), hidsList);
		}; })(state))); /* */ $s = 11; case 11: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
		_arg$10 = _r$11;
		_r$12 = mvuex.Mutation("setStoredTriggerActionSetsList", new funcType$9((function(state) { return function(store, state$1, tasList) {
			var state$1, store, tasList;
			hvue.Set(state$1, new $String("StoredTriggerActionSetsList"), tasList);
		}; })(state))); /* */ $s = 12; case 12: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
		_arg$11 = _r$12;
		_r$13 = mvuex.Mutation("setStoredEthernetInterfaceSettingsList", new funcType$9((function(state) { return function(store, state$1, eisList) {
			var eisList, state$1, store;
			hvue.Set(state$1, new $String("StoredEthernetInterfaceSettingsList"), eisList);
		}; })(state))); /* */ $s = 13; case 13: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
		_arg$12 = _r$13;
		_r$14 = mvuex.Mutation("setAllEthernetInterfaceSettings", new funcType$10((function(state) { return function(store, state$1, eifSettings) {
			var eifSettings, state$1, store;
			console.log("Updating all ethernet interface settings: ", eifSettings);
			state$1.Object.InterfaceSettings = $externalize(eifSettings, ptrType$18);
		}; })(state))); /* */ $s = 14; case 14: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
		_arg$13 = _r$14;
		_r$15 = mvuex.Mutation("setSingleEthernetInterfaceSettings", new funcType$11((function(state) { return function(store, state$1, ifSettings) {
			var ifSettings, state$1, store;
			console.log("Updating ethernet interface settings for ", $internalize(ifSettings.Object.name, $String));
			$internalize(state$1.Object.InterfaceSettings, ptrType$18).updateSingleInterface(ifSettings);
		}; })(state))); /* */ $s = 15; case 15: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
		_arg$14 = _r$15;
		_r$16 = mvuex.Mutation("setCurrentBluetoothControllerInformation", new funcType$12((function(state) { return function(store, state$1, btCtlInfo) {
			var btCtlInfo, state$1, store;
			console.log("Updating bluetooth controller information for ", $internalize(btCtlInfo.Object.Name, $String));
			state$1.Object.CurrentBluetoothControllerInformation = $externalize(btCtlInfo, ptrType$11);
		}; })(state))); /* */ $s = 16; case 16: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
		_arg$15 = _r$16;
		_r$17 = mvuex.Mutation("setCurrentBluetoothAgentSettings", new funcType$13((function(state) { return function(store, state$1, agentSettings) {
			var agentSettings, state$1, store;
			console.log("Updating bluetooth agent settings for ", agentSettings);
			state$1.Object.CurrentBluetoothAgentSettings = $externalize(agentSettings, ptrType$10);
		}; })(state))); /* */ $s = 17; case 17: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
		_arg$16 = _r$17;
		_r$18 = mvuex.Mutation("setEventListenerRunning", new funcType$14((function(state) { return function(store, state$1, running) {
			var running, state$1, store;
			state$1.Object.EventListenerRunning = $externalize(!!(running), $Bool);
		}; })(state))); /* */ $s = 18; case 18: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
		_arg$17 = _r$18;
		_r$19 = mvuex.Mutation("deleteHIDJobID", new funcType$14((function(state) { return function(store, state$1, jobID) {
			var id, jobID, state$1, store;
			id = $parseInt(jobID) >> 0;
			$internalize(state$1.Object.hidJobList, ptrType$27).DeleteEntry((new $Int64(0, id)));
		}; })(state))); /* */ $s = 19; case 19: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
		_arg$18 = _r$19;
		_r$20 = mvuex.Mutation("setCurrentMasterTemplate", new funcType$15((function(state) { return function(store, state$1, newMasterTemplate) {
			var newMasterTemplate, state$1, store;
			hvue.Set(state$1, new $String("CurrentMasterTemplate"), newMasterTemplate);
		}; })(state))); /* */ $s = 20; case 20: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
		_arg$19 = _r$20;
		_r$21 = mvuex.Mutation("setStoredMasterTemplateList", new funcType$9((function(state) { return function(store, state$1, mtList) {
			var mtList, state$1, store;
			hvue.Set(state$1, new $String("StoredMasterTemplateList"), mtList);
		}; })(state))); /* */ $s = 21; case 21: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
		_arg$20 = _r$21;
		_r$22 = mvuex.Mutation("setStoredGpioNamesList", new funcType$9((function(state) { return function(store, state$1, mtList) {
			var mtList, state$1, store;
			hvue.Set(state$1, new $String("GpioNamesList"), mtList);
		}; })(state))); /* */ $s = 22; case 22: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
		_arg$21 = _r$22;
		_r$23 = mvuex.Mutation("setCurrentStartupMasterTemplateName", new funcType$14((function(state) { return function(store, state$1, name) {
			var name, state$1, store;
			state$1.Object.CurrentStartupMasterTemplateName = $externalize($internalize(name, $String), $String);
		}; })(state))); /* */ $s = 23; case 23: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
		_arg$22 = _r$23;
		_r$24 = mvuex.Mutation("setDBBackupList", new funcType$9((function(state) { return function(store, state$1, dbBackupList) {
			var dbBackupList, state$1, store;
			hvue.Set(state$1, new $String("DBBackupList"), dbBackupList);
		}; })(state))); /* */ $s = 24; case 24: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
		_arg$23 = _r$24;
		_r$25 = mvuex.Mutation("setUmsImageCdromList", new funcType$9((function(state) { return function(store, state$1, dbBackupList) {
			var dbBackupList, state$1, store;
			hvue.Set(state$1, new $String("UmsImageListCdrom"), dbBackupList);
		}; })(state))); /* */ $s = 25; case 25: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
		_arg$24 = _r$25;
		_r$26 = mvuex.Mutation("setUmsImageFlashdriveList", new funcType$9((function(state) { return function(store, state$1, dbBackupList) {
			var dbBackupList, state$1, store;
			hvue.Set(state$1, new $String("UmsImageListFlashdrive"), dbBackupList);
		}; })(state))); /* */ $s = 26; case 26: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
		_arg$25 = _r$26;
		_arg$26 = mvuex.Action("updateUmsImageCdromList", new funcType$16(actionUpdateUmsImageCdromList));
		_arg$27 = mvuex.Action("updateUmsImageFlashdriveList", new funcType$16(actionUpdateUmsImageFlashdriveList));
		_arg$28 = mvuex.Action("updateStoredDBBackupList", new funcType$16(actionUpdateStoredDBBackupList));
		_arg$29 = mvuex.Action("updateGpioNamesList", new funcType$16(actionUpdateGpioNamesList));
		_arg$30 = mvuex.Action("deployMasterTemplate", new funcType$17(actionDeployMasterTemplate));
		_arg$31 = mvuex.Action("updateStoredMasterTemplateList", new funcType$16(actionUpdateStoredMasterTemplateList));
		_arg$32 = mvuex.Action("storeMasterTemplate", new funcType$18(actionStoreMasterTemplate));
		_arg$33 = mvuex.Action("loadMasterTemplate", new funcType$19(actionLoadMasterTemplate));
		_arg$34 = mvuex.Action("deployStoredMasterTemplate", new funcType$19(actionDeployStoredMasterTemplate));
		_arg$35 = mvuex.Action("deleteStoredMasterTemplate", new funcType$19(actionDeleteStoredMasterTemplate));
		_arg$36 = mvuex.Action("updateAllStates", new funcType$16(actionUpdateAllStates));
		_arg$37 = mvuex.Action("updateCurrentBluetoothControllerInformation", new funcType$16(actionUpdateCurrentBluetoothControllerInformation));
		_arg$38 = mvuex.Action("deployCurrentBluetoothControllerInformation", new funcType$16(actionDeployCurrentBluetoothControllerInformation));
		_arg$39 = mvuex.Action("updateCurrentBluetoothAgentSettings", new funcType$16(actionUpdateCurrentBluetoothAgentSettings));
		_arg$40 = mvuex.Action("deployCurrentBluetoothAgentSettings", new funcType$16(actionDeployCurrentBluetoothAgentSettings));
		_arg$41 = mvuex.Action("storedBluetoothSettings", new funcType$20(actionStoreBluetoothSettings));
		_arg$42 = mvuex.Action("deleteStoredBluetoothSettings", new funcType$19(actionDeleteStoredBluetoothSettings));
		_arg$43 = mvuex.Action("deployStoredBluetoothSettings", new funcType$19(actionDeployStoredBluetoothSettings));
		_arg$44 = mvuex.Action("setStoredBluetoothSettingsList", new funcType$16(actionUpdateStoredBluetoothSettingsList));
		_arg$45 = mvuex.Action("updateCurrentUSBSettings", new funcType$16(actionUpdateGadgetSettingsFromDeployed));
		_arg$46 = mvuex.Action("deployCurrentUSBSettings", new funcType$16(actionDeployCurrentGadgetSettings));
		_arg$47 = mvuex.Action("updateRunningHidJobs", new funcType$16(actionUpdateRunningHidJobs));
		_arg$48 = mvuex.Action("storeUSBSettings", new funcType$21(actionStoreUSBSettings));
		_arg$49 = mvuex.Action("loadUSBSettings", new funcType$19(actionLoadUSBSettings));
		_arg$50 = mvuex.Action("deployStoredUSBSettings", new funcType$19(actionDeployStoredUSBSettings));
		_arg$51 = mvuex.Action("deleteStoredUSBSettings", new funcType$19(actionDeleteStoredUSBSettings));
		_arg$52 = mvuex.Action("updateStoredUSBSettingsList", new funcType$16(actionUpdateStoredUSBSettingsList));
		_arg$53 = mvuex.Action("deployEthernetInterfaceSettings", new funcType$22(actionDeployEthernetInterfaceSettings));
		_arg$54 = mvuex.Action("updateAllEthernetInterfaceSettings", new funcType$23(actionUpdateAllEthernetInterfaceSettings));
		_arg$55 = mvuex.Action("updateCurrentWifiSettingsFromDeployed", new funcType$16(actionUpdateWifiState));
		_arg$56 = mvuex.Action("deployWifiSettings", new funcType$24(actionDeployWifiSettings));
		_arg$57 = mvuex.Action("updateStoredWifiSettingsList", new funcType$16(actionUpdateStoredWifiSettingsList));
		_arg$58 = mvuex.Action("updateCurrentTriggerActionsFromServer", new funcType$25(actionUpdateCurrentTriggerActionsFromServer));
		_arg$59 = mvuex.Action("addTriggerAction", new funcType$23(actionAddNewTriggerAction));
		_arg$60 = mvuex.Action("removeTriggerActions", new funcType$26(actionRemoveTriggerActions));
		_arg$61 = mvuex.Action("updateTriggerActions", new funcType$26(actionUpdateTriggerActions));
		_arg$62 = mvuex.Action("storeTriggerActionSet", new funcType$26(actionStoreTriggerActionSet));
		_arg$63 = mvuex.Action("updateStoredTriggerActionSetsList", new funcType$16(actionUpdateStoredTriggerActionSetsList));
		_arg$64 = mvuex.Action("deployStoredTriggerActionSetReplace", new funcType$19(actionDeployStoredTriggerActionSetReplace));
		_arg$65 = mvuex.Action("deployStoredTriggerActionSetAdd", new funcType$19(actionDeployStoredTriggerActionSetAdd));
		_arg$66 = mvuex.Action("deleteStoredTriggerActionSet", new funcType$19(actionDeleteStoredTriggerActionSet));
		_arg$67 = mvuex.Action("deployCurrentTriggerActionSetReplace", new funcType$26(actionDeployTriggerActionSetReplace));
		_arg$68 = mvuex.Action("deployCurrentTriggerActionSetAdd", new funcType$26(actionDeployTriggerActionSetAdd));
		_arg$69 = mvuex.Action("updateStoredBashScriptsList", new funcType$16(actionUpdateStoredBashScriptsList));
		_arg$70 = mvuex.Action("updateStoredHIDScriptsList", new funcType$16(actionUpdateStoredHIDScriptsList));
		_arg$71 = mvuex.Action("updateStoredEthernetInterfaceSettingsList", new funcType$16(actionUpdateStoredEthernetInterfaceSettingsList));
		_arg$72 = mvuex.Action("updateCurrentHidScriptSourceFromRemoteFile", new funcType$27(actionUpdateCurrentHidScriptSourceFromRemoteFile));
		_arg$73 = mvuex.Action("storeCurrentHidScriptSourceToRemoteFile", new funcType$19(actionStoreCurrentHidScriptSourceToRemoteFile));
		_arg$74 = mvuex.Action("storeWifiSettings", new funcType$28(actionStoreWifiSettings));
		_arg$75 = mvuex.Action("loadWifiSettings", new funcType$19(actionLoadWifiSettings));
		_arg$76 = mvuex.Action("deployStoredWifiSettings", new funcType$19(actionDeployStoredWifiSettings));
		_arg$77 = mvuex.Action("deleteStoredWifiSettings", new funcType$19(actionDeleteStoredWifiSettings));
		_arg$78 = mvuex.Action("storeEthernetInterfaceSettings", new funcType$29(actionStoreEthernetInterfaceSettings));
		_arg$79 = mvuex.Action("loadEthernetInterfaceSettings", new funcType$19(actionLoadEthernetInterfaceSettings));
		_arg$80 = mvuex.Action("deployStoredEthernetInterfaceSettings", new funcType$19(actionDeployStoredEthernetInterfaceSettings));
		_arg$81 = mvuex.Action("deleteStoredEthernetInterfaceSettings", new funcType$19(actionDeleteStoredEthernetInterfaceSettings));
		_arg$82 = mvuex.Action("startEventListen", new funcType$16(actionStartEventListen));
		_arg$83 = mvuex.Action("stopEventListen", new funcType$16(actionStopEventListen));
		_arg$84 = mvuex.Action("removeSucceededHidJobs", new funcType$16(actionRemoveSucceededHidJobs));
		_arg$85 = mvuex.Action("removeFailedHidJobs", new funcType$16(actionRemoveFailedHidJobs));
		_arg$86 = mvuex.Action("cancelHIDJob", new funcType$19(actionCancelHidJob));
		_arg$87 = mvuex.Action("cancelAllHIDJobs", new funcType$16(actionCancelAllHidJobs));
		_arg$88 = mvuex.Action("sendAndRunHIDScript", new funcType$19(actionSendAndRunHIDScript));
		_arg$89 = mvuex.Action("shutdown", new funcType$16(actionShutdown));
		_arg$90 = mvuex.Action("reboot", new funcType$16(actionReboot));
		_arg$91 = mvuex.Action("backupDB", new funcType$19(actionBackupDB));
		_arg$92 = mvuex.Action("restoreDB", new funcType$30(actionRestoreDB));
		_arg$93 = mvuex.Action("getStartupMasterTemplateName", new funcType$23(actionGetStartupMasterTemplateName));
		_arg$94 = mvuex.Action("setStartupMasterTemplateName", new funcType$30(actionSetStartupMasterTemplateName));
		_r$27 = mvuex.Getter("triggerActions", new funcType$31((function(state) { return function(state$1) {
			var state$1;
			return new $jsObjectPtr($internalize(state$1.Object.triggerActionList, ptrType$28).Object.TriggerActions);
		}; })(state))); /* */ $s = 27; case 27: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; }
		_arg$95 = _r$27;
		_r$28 = mvuex.Getter("hidjobs", new funcType$31((function(state) { return function(state$1) {
			var state$1;
			return new $jsObjectPtr($internalize(state$1.Object.hidJobList, ptrType$27).Object.jobs);
		}; })(state))); /* */ $s = 28; case 28: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; }
		_arg$96 = _r$28;
		_r$29 = mvuex.Getter("hidjobsRunning", new funcType$31((function(state) { return function(state$1) {
			var filtered, jobs, state$1, vJobs;
			vJobs = $internalize(state$1.Object.hidJobList, ptrType$27).Object.jobs;
			jobs = $global.Object.values(vJobs);
			filtered = jobs.filter($externalize((function(state) { return function(job) {
				var job;
				return !(!!(job.Object.hasSucceeded) || !!(job.Object.hasFailed));
			}; })(state), funcType$2));
			return new $jsObjectPtr(filtered);
		}; })(state))); /* */ $s = 29; case 29: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; }
		_arg$97 = _r$29;
		_r$30 = mvuex.Getter("isConnected", new funcType$31((function(state) { return function(state$1) {
			var state$1;
			return new $Bool(!!(state$1.Object.EventListenerRunning));
		}; })(state))); /* */ $s = 30; case 30: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; }
		_arg$98 = _r$30;
		_r$31 = mvuex.Getter("hidjobsFailed", new funcType$31((function(state) { return function(state$1) {
			var filtered, jobs, state$1, vJobs;
			vJobs = $internalize(state$1.Object.hidJobList, ptrType$27).Object.jobs;
			jobs = $global.Object.values(vJobs);
			filtered = jobs.filter($externalize((function(state) { return function(job) {
				var job;
				return !!(job.Object.hasFailed);
			}; })(state), funcType$2));
			return new $jsObjectPtr(filtered);
		}; })(state))); /* */ $s = 31; case 31: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; }
		_arg$99 = _r$31;
		_arg$100 = mvuex.Getter("hidjobsSucceeded", new funcType$31((function(state) { return function(state$1) {
			var filtered, jobs, state$1, vJobs;
			console.log("Getter HID JOBS SUCCEEDED");
			vJobs = $internalize(state$1.Object.hidJobList, ptrType$27).Object.jobs;
			jobs = $global.Object.values(vJobs);
			filtered = jobs.filter($externalize((function(state) { return function(job) {
				var job;
				return !!(job.Object.hasSucceeded);
			}; })(state), funcType$2));
			return new $jsObjectPtr(filtered);
		}; })(state)));
		_arg$101 = mvuex.Getter("storedWifiSettingsSelect", new funcType$31((function(state) { return function(state$1) {
			var _i, _ref, curS, option, selectWS, state$1;
			selectWS = new ($global.Array)();
			_ref = $internalize(state$1.Object.StoredWifiSettingsList, sliceType$9);
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				curS = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				option = new structType$2.ptr(O(), "", "");
				option.Object.label = $externalize(curS, $String);
				option.Object.value = $externalize(curS, $String);
				selectWS.push($externalize(option, structType$2));
				_i++;
			}
			return new $jsObjectPtr(selectWS);
		}; })(state)));
		_r$32 = mvuex.NewStore(new sliceType$14([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _arg$100, _arg$101])); /* */ $s = 32; case 32: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; }
		store = _r$32;
		store.Object.dispatch($externalize("startEventListen", $String));
		store.Object.dispatch($externalize("updateGpioNamesList", $String));
		$s = -1; return store;
		/* */ } return; } var $f = {$blk: initMVuex, $c: true, $r, _arg, _arg$1, _arg$10, _arg$100, _arg$101, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$45, _arg$46, _arg$47, _arg$48, _arg$49, _arg$5, _arg$50, _arg$51, _arg$52, _arg$53, _arg$54, _arg$55, _arg$56, _arg$57, _arg$58, _arg$59, _arg$6, _arg$60, _arg$61, _arg$62, _arg$63, _arg$64, _arg$65, _arg$66, _arg$67, _arg$68, _arg$69, _arg$7, _arg$70, _arg$71, _arg$72, _arg$73, _arg$74, _arg$75, _arg$76, _arg$77, _arg$78, _arg$79, _arg$8, _arg$80, _arg$81, _arg$82, _arg$83, _arg$84, _arg$85, _arg$86, _arg$87, _arg$88, _arg$89, _arg$9, _arg$90, _arg$91, _arg$92, _arg$93, _arg$94, _arg$95, _arg$96, _arg$97, _arg$98, _arg$99, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, state, store, $s};return $f;
	};
	InitGlobalState = function() {
		var {_r$1, store, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = initMVuex(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		store = _r$1;
		$global.store = $externalize(store, ptrType$36);
		$s = -1; return store;
		/* */ } return; } var $f = {$blk: InitGlobalState, $c: true, $r, _r$1, store, $s};return $f;
	};
	$pkg.InitGlobalState = InitGlobalState;
	GetBaseURL = function() {
		var document, location, port, url;
		document = $global.window.document;
		location = document.location;
		port = $internalize(location.port, $String);
		url = $internalize(location.protocol, $String) + "//" + $internalize(location.hostname, $String);
		if (port.length > 0) {
			url = url + ":" + port;
		}
		return url;
	};
	$pkg.GetBaseURL = GetBaseURL;
	Store = function(store) {
		var store;
		return (function(config) {
			var config;
			config.Object.store = $externalize(store, ptrType$36);
		});
	};
	$pkg.Store = Store;
	Router = function(router) {
		var router;
		return (function(config) {
			var config;
			config.Object.router = router;
		});
	};
	$pkg.Router = Router;
	main = function() {
		var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, router, store, vm, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_r$1 = InitGlobalState(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		store = _r$1;
		_r$2 = VueRouterRoute("/usb", "", "<usb-settings></usb-settings>"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg = _r$2;
		_r$3 = VueRouterRoute("/hid", "", "<hid-script></hid-script>"); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$1 = _r$3;
		_r$4 = VueRouterRoute("/hidjobs", "", "<hid-job-event-overview></hid-job-event-overview>"); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$2 = _r$4;
		_r$5 = VueRouterRoute("/logger", "", "<logger :max-entries='7'></logger>"); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$3 = _r$5;
		_r$6 = VueRouterRoute("/network", "", "<network></network>"); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$4 = _r$6;
		_r$7 = VueRouterRoute("/wifi", "", "<wifi></wifi>"); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$5 = _r$7;
		_r$8 = VueRouterRoute("/triggeractions", "", "<triggeraction-manager></triggeraction-manager>"); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$6 = _r$8;
		_r$9 = VueRouterRoute("/bluetooth", "", "<bluetooth></bluetooth>"); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$7 = _r$9;
		_r$10 = VueRouterRoute("/generic", "", "<generic></generic>"); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_arg$8 = _r$10;
		_r$11 = NewVueRouter("/usb", new sliceType$15([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8])); /* */ $s = 11; case 11: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
		router = _r$11;
		$r = InitComponentsDialog(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompHIDJobs(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompHIDEvents(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompModal(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompEthernetAddresses2(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompToggleSwitch(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompUSBSettings(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsHIDScript(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompLogger(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitCompState(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsNetwork(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsWiFi(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsTriggerActions(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsBluetooth(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = InitComponentsGeneric(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_r$12 = hvue.NewVM(new sliceType$16([hvue.El("#app"), hvue.Template("\n    <q-layout view=\"lHh Lpr fFf\">\n        <q-layout-header :reveal=\"!$q.platform.is.desktop\">\n            <q-toolbar>\n                <q-toolbar-title>\n                    P4wnP1 A.L.O.A.\n\t\t\t\t\t<span slot=\"subtitle\" class=\"mobile-only\">v0.1.1-beta by MaMe82</span>\n                </q-toolbar-title>\n            </q-toolbar>\n            <q-tabs>\n                <q-route-tab default slot=\"title\" to=\"usb\" name=\"tab-usb\" icon=\"usb\" label=\"USB Settings\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"wifi\" name=\"tab-wifi\" icon=\"wifi\" label=\"WiFi settings\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"bluetooth\" name=\"tab-bluetooth\" icon=\"bluetooth\" label=\"Bluetooth\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"network\" name=\"tab-network\" icon=\"settings_ethernet\" label=\"Network settings\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"triggeractions\" name=\"tab-triggeraction\" icon=\"whatshot\" label=\"Trigger Actions\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"hid\" name=\"tab-hid-script\" icon=\"keyboard\" label=\"HIDScript\"></q-route-tab>\n <!--               <q-route-tab slot=\"title\" to=\"hidjobs\" name=\"tab-hid-jobs\" icon=\"schedule\" label=\"HID Events\"></q-route-tab> -->\n                <q-route-tab slot=\"title\" to=\"logger\" name=\"tab-logger\" icon=\"message\" label=\"Event Log\"></q-route-tab>\n                <q-route-tab slot=\"title\" to=\"generic\" name=\"tab-generic\" icon=\"settings\" label=\"Generic settings\"></q-route-tab>\n            </q-tabs>\n        </q-layout-header>\n\n\n        <q-layout-footer class=\"desktop-only\">\n            <q-toolbar>\n                <q-toolbar-title>\n                    <div slot=\"subtitle\">v0.1.1-beta by MaMe82</div>\n                </q-toolbar-title>\n            </q-toolbar>\n        </q-layout-footer>\n\n        <q-page-container>\n            <router-view></router-view>\n\n\t\t\t<disconnect-modal :value=\"!$store.getters.isConnected\"></disconnect-modal>\n        </q-page-container>\n\n\n    </q-layout>\n"), hvue.Computed("state", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state);
		})), hvue.BeforeMount((function(vm) {
			var vm;
			vm.Object.$q.addressbarColor.set($externalize("#027be3", $String));
		})), Store(store), Router(router)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
		vm = _r$12;
		$global.vm = $externalize(vm, ptrType$44);
		$s = -1; return;
		/* */ } return; } var $f = {$blk: main, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, router, store, vm, $s};return $f;
	};
	jsTriggerAction.ptr.prototype.fromGo = function(src) {
		var _ref, _ref$1, dst, dstAction, dstAction$1, dstAction$2, dstAction$3, dstAction$4, dstTrigger, dstTrigger$1, dstTrigger$2, dstTrigger$3, src, srcAction, srcAction$1, srcAction$2, srcAction$3, srcAction$4, srcAction$5, srcAction$6, srcTrigger, srcTrigger$1, srcTrigger$10, srcTrigger$2, srcTrigger$3, srcTrigger$4, srcTrigger$5, srcTrigger$6, srcTrigger$7, srcTrigger$8, srcTrigger$9;
		dst = this;
		dst.Object.IsActive = $externalize(src.IsActive, $Bool);
		dst.Object.Immutable = $externalize(src.Immutable, $Bool);
		dst.Object.OneShot = $externalize(src.OneShot, $Bool);
		dst.Object.Id = src.Id;
		_ref = src.Action;
		if ($assertType(_ref, ptrType$45, true)[1]) {
			srcAction = _ref.$val;
			dst.ChangeActionType(0);
		} else if ($assertType(_ref, ptrType$46, true)[1]) {
			srcAction$1 = _ref.$val;
			dst.ChangeActionType(1);
			dstAction = new jsActionStartHIDScript.ptr(dst.Object.ActionData, "");
			dstAction.Object.ScriptName = $externalize(srcAction$1.HidScript.ScriptName, $String);
		} else if ($assertType(_ref, ptrType$47, true)[1]) {
			srcAction$2 = _ref.$val;
			dst.ChangeActionType(2);
			dstAction$1 = new jsActionDeploySettingsTemplate.ptr(dst.Object.ActionData, "", 0);
			dstAction$1.Object.TemplateName = $externalize(srcAction$2.DeploySettingsTemplate.TemplateName, $String);
			dstAction$1.Object.Type = ((srcAction$2.DeploySettingsTemplate.Type >> 0));
		} else if ($assertType(_ref, ptrType$48, true)[1]) {
			srcAction$3 = _ref.$val;
			dst.ChangeActionType(3);
			dstAction$2 = new jsActionStartBashScript.ptr(dst.Object.ActionData, "");
			dstAction$2.Object.ScriptName = $externalize(srcAction$3.BashScript.ScriptName, $String);
		} else if ($assertType(_ref, ptrType$49, true)[1]) {
			srcAction$4 = _ref.$val;
			dst.ChangeActionType(4);
			dstAction$3 = new jsActionGPIOOut.ptr(dst.Object.ActionData, "", 0);
			dstAction$3.Object.Value = ((srcAction$4.GpioOut.Value >> 0));
			dstAction$3.Object.GpioName = $externalize(srcAction$4.GpioOut.GpioName, $String);
		} else if ($assertType(_ref, ptrType$50, true)[1]) {
			srcAction$5 = _ref.$val;
			dst.ChangeActionType(5);
			dstAction$4 = new jsActionGroupSend.ptr(dst.Object.ActionData, "", 0);
			dstAction$4.Object.Value = srcAction$5.GroupSend.Value;
			dstAction$4.Object.GroupName = $externalize(srcAction$5.GroupSend.GroupName, $String);
		} else {
			srcAction$6 = _ref;
		}
		_ref$1 = src.Trigger;
		if ($assertType(_ref$1, ptrType$51, true)[1]) {
			srcTrigger = _ref$1.$val;
			dst.ChangeTriggerType(5);
			dstTrigger = new jsTriggerSSHLogin.ptr(dst.Object.TriggerData, "");
			dstTrigger.Object.LoginUser = $externalize(srcTrigger.SshLogin.LoginUser, $String);
		} else if ($assertType(_ref$1, ptrType$52, true)[1]) {
			srcTrigger$1 = _ref$1.$val;
			dst.ChangeTriggerType(6);
		} else if ($assertType(_ref$1, ptrType$53, true)[1]) {
			srcTrigger$2 = _ref$1.$val;
			dst.ChangeTriggerType(3);
		} else if ($assertType(_ref$1, ptrType$54, true)[1]) {
			srcTrigger$3 = _ref$1.$val;
			dst.ChangeTriggerType(4);
		} else if ($assertType(_ref$1, ptrType$55, true)[1]) {
			srcTrigger$4 = _ref$1.$val;
			dst.ChangeTriggerType(1);
		} else if ($assertType(_ref$1, ptrType$56, true)[1]) {
			srcTrigger$5 = _ref$1.$val;
			dst.ChangeTriggerType(2);
		} else if ($assertType(_ref$1, ptrType$57, true)[1]) {
			srcTrigger$6 = _ref$1.$val;
			dst.ChangeTriggerType(0);
		} else if ($assertType(_ref$1, ptrType$58, true)[1]) {
			srcTrigger$7 = _ref$1.$val;
			dst.ChangeTriggerType(7);
			dstTrigger$1 = new jsTriggerGPIOIn.ptr(dst.Object.TriggerData, "", 0, 0, new $Int64(0, 0));
			dstTrigger$1.Object.GpioName = $externalize(srcTrigger$7.GpioIn.GpioName, $String);
			dstTrigger$1.Object.Edge = ((srcTrigger$7.GpioIn.GpioInEdge >> 0));
			dstTrigger$1.Object.PullUpDown = ((srcTrigger$7.GpioIn.PullUpDown >> 0));
			dstTrigger$1.Object.DebounceMillis = $externalize(srcTrigger$7.GpioIn.DebounceMillis, $Int64);
		} else if ($assertType(_ref$1, ptrType$59, true)[1]) {
			srcTrigger$8 = _ref$1.$val;
			dst.ChangeTriggerType(8);
			dstTrigger$2 = new jsTriggerGroupReceive.ptr(dst.Object.TriggerData, "", 0);
			dstTrigger$2.Object.GroupName = $externalize(srcTrigger$8.GroupReceive.GroupName, $String);
			dstTrigger$2.Object.Value = srcTrigger$8.GroupReceive.Value;
		} else if ($assertType(_ref$1, ptrType$60, true)[1]) {
			srcTrigger$9 = _ref$1.$val;
			dst.ChangeTriggerType(9);
			dstTrigger$3 = new jsTriggerGroupReceiveMulti.ptr(dst.Object.TriggerData, "", 0, sliceType$17.nil);
			dstTrigger$3.Object.GroupName = $externalize(srcTrigger$9.GroupReceiveMulti.GroupName, $String);
			dstTrigger$3.Object.Values = $externalize(srcTrigger$9.GroupReceiveMulti.Values, sliceType$17);
			dstTrigger$3.Object.Type = ((srcTrigger$9.GroupReceiveMulti.Type >> 0));
		} else {
			srcTrigger$10 = _ref$1;
		}
	};
	jsTriggerAction.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsTriggerAction.ptr.prototype.toGo = function() {
		var _1, _2, actionData, actionData$1, actionData$2, actionData$3, actionData$4, res, ta, triggerData, triggerData$1, triggerData$2, triggerData$3;
		res = ptrType$35.nil;
		ta = this;
		res = new P4wnP1_grpc.TriggerAction.ptr($parseInt(ta.Object.Id) >>> 0, !!(ta.Object.OneShot), !!(ta.Object.IsActive), !!(ta.Object.Immutable), $ifaceNil, $ifaceNil);
		_1 = $parseInt(ta.Object.ActionType) >> 0;
		if (_1 === (0)) {
			res.Action = new P4wnP1_grpc.TriggerAction_Log.ptr(new P4wnP1_grpc.ActionLog.ptr());
		} else if (_1 === (1)) {
			actionData = new jsActionStartHIDScript.ptr(ta.Object.ActionData, "");
			res.Action = new P4wnP1_grpc.TriggerAction_HidScript.ptr(new P4wnP1_grpc.ActionStartHIDScript.ptr($internalize(actionData.Object.ScriptName, $String)));
		} else if (_1 === (2)) {
			actionData$1 = new jsActionDeploySettingsTemplate.ptr(ta.Object.ActionData, "", 0);
			res.Action = new P4wnP1_grpc.TriggerAction_DeploySettingsTemplate.ptr(new P4wnP1_grpc.ActionDeploySettingsTemplate.ptr($internalize(actionData$1.Object.TemplateName, $String), ((($parseInt(actionData$1.Object.Type) >> 0) >> 0))));
		} else if (_1 === (3)) {
			actionData$2 = new jsActionStartBashScript.ptr(ta.Object.ActionData, "");
			res.Action = new P4wnP1_grpc.TriggerAction_BashScript.ptr(new P4wnP1_grpc.ActionStartBashScript.ptr($internalize(actionData$2.Object.ScriptName, $String)));
		} else if (_1 === (4)) {
			actionData$3 = new jsActionGPIOOut.ptr(ta.Object.ActionData, "", 0);
			res.Action = new P4wnP1_grpc.TriggerAction_GpioOut.ptr(new P4wnP1_grpc.ActionGPIOOut.ptr($internalize(actionData$3.Object.GpioName, $String), ((($parseInt(actionData$3.Object.Value) >> 0) >> 0))));
		} else if (_1 === (5)) {
			actionData$4 = new jsActionGroupSend.ptr(ta.Object.ActionData, "", 0);
			res.Action = new P4wnP1_grpc.TriggerAction_GroupSend.ptr(new P4wnP1_grpc.ActionGroupSend.ptr($internalize(actionData$4.Object.GroupName, $String), $parseInt(actionData$4.Object.Value) >> 0));
		} else {
			console.log("Unknown action type");
			res.Action = $ifaceNil;
		}
		_2 = $parseInt(ta.Object.TriggerType) >> 0;
		if (_2 === (5)) {
			triggerData = new jsTriggerSSHLogin.ptr(ta.Object.TriggerData, "");
			res.Trigger = new P4wnP1_grpc.TriggerAction_SshLogin.ptr(new P4wnP1_grpc.TriggerSSHLogin.ptr($internalize(triggerData.Object.LoginUser, $String)));
		} else if (_2 === (6)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_DhcpLeaseGranted.ptr(new P4wnP1_grpc.TriggerDHCPLeaseGranted.ptr());
		} else if (_2 === (3)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_WifiAPStarted.ptr(new P4wnP1_grpc.TriggerWifiAPStarted.ptr());
		} else if (_2 === (4)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_WifiConnectedAsSta.ptr(new P4wnP1_grpc.TriggerWifiConnectedAsSta.ptr());
		} else if (_2 === (1)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_UsbGadgetConnected.ptr(new P4wnP1_grpc.TriggerUSBGadgetConnected.ptr());
		} else if (_2 === (2)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_UsbGadgetDisconnected.ptr(new P4wnP1_grpc.TriggerUSBGadgetDisconnected.ptr());
		} else if (_2 === (0)) {
			res.Trigger = new P4wnP1_grpc.TriggerAction_ServiceStarted.ptr(new P4wnP1_grpc.TriggerServiceStarted.ptr());
		} else if (_2 === (7)) {
			triggerData$1 = new jsTriggerGPIOIn.ptr(ta.Object.TriggerData, "", 0, 0, new $Int64(0, 0));
			res.Trigger = new P4wnP1_grpc.TriggerAction_GpioIn.ptr(new P4wnP1_grpc.TriggerGPIOIn.ptr($internalize(triggerData$1.Object.GpioName, $String), ((($parseInt(triggerData$1.Object.PullUpDown) >> 0) >> 0)), ((($parseInt(triggerData$1.Object.Edge) >> 0) >> 0)), $internalize(triggerData$1.Object.DebounceMillis, $Int64)));
		} else if (_2 === (8)) {
			triggerData$2 = new jsTriggerGroupReceive.ptr(ta.Object.TriggerData, "", 0);
			res.Trigger = new P4wnP1_grpc.TriggerAction_GroupReceive.ptr(new P4wnP1_grpc.TriggerGroupReceive.ptr($internalize(triggerData$2.Object.GroupName, $String), $parseInt(triggerData$2.Object.Value) >> 0));
		} else if (_2 === (9)) {
			triggerData$3 = new jsTriggerGroupReceiveMulti.ptr(ta.Object.TriggerData, "", 0, sliceType$17.nil);
			res.Trigger = new P4wnP1_grpc.TriggerAction_GroupReceiveMulti.ptr(new P4wnP1_grpc.TriggerGroupReceiveMulti.ptr($internalize(triggerData$3.Object.GroupName, $String), $internalize(triggerData$3.Object.Values, sliceType$17), ((($parseInt(triggerData$3.Object.Type) >> 0) >> 0))));
		} else {
			console.log("Unknown trigger type");
			res.Trigger = $ifaceNil;
		}
		res = res;
		return res;
	};
	jsTriggerAction.prototype.toGo = function() { return this.$val.toGo(); };
	jsTriggerAction.ptr.prototype.ChangeActionType = function(newAt) {
		var _1, d, d$1, d$2, d$3, d$4, d$5, data, newAt, ta;
		ta = this;
		data = null;
		_1 = newAt;
		if (_1 === (0)) {
			d = new jsActionLog.ptr(O());
			data = d.Object;
		} else if (_1 === (1)) {
			d$1 = new jsActionStartHIDScript.ptr(O(), "");
			d$1.Object.ScriptName = $externalize("", $String);
			data = d$1.Object;
		} else if (_1 === (2)) {
			d$2 = new jsActionDeploySettingsTemplate.ptr(O(), "", 0);
			d$2.Object.TemplateName = $externalize("", $String);
			d$2.Object.Type = (0 >= availableTemplateTypes.$length ? ($throwRuntimeError("index out of range"), undefined) : availableTemplateTypes.$array[availableTemplateTypes.$offset + 0]);
			data = d$2.Object;
		} else if (_1 === (3)) {
			d$3 = new jsActionStartBashScript.ptr(O(), "");
			d$3.Object.ScriptName = $externalize("", $String);
			data = d$3.Object;
		} else if (_1 === (4)) {
			d$4 = new jsActionGPIOOut.ptr(O(), "", 0);
			d$4.Object.GpioName = $externalize("", $String);
			d$4.Object.Value = 1;
			data = d$4.Object;
		} else if (_1 === (5)) {
			d$5 = new jsActionGroupSend.ptr(O(), "", 0);
			d$5.Object.GroupName = $externalize("Group1", $String);
			d$5.Object.Value = 1;
			data = d$5.Object;
		} else {
			console.log("Unknown action type");
			data = O();
		}
		ta.Object.ActionData = data;
		ta.Object.ActionType = newAt;
	};
	jsTriggerAction.prototype.ChangeActionType = function(newAt) { return this.$val.ChangeActionType(newAt); };
	jsTriggerAction.ptr.prototype.IsActionLog = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 0;
	};
	jsTriggerAction.prototype.IsActionLog = function() { return this.$val.IsActionLog(); };
	jsTriggerAction.ptr.prototype.IsActionBashScript = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 3;
	};
	jsTriggerAction.prototype.IsActionBashScript = function() { return this.$val.IsActionBashScript(); };
	jsTriggerAction.ptr.prototype.IsActionHidScript = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 1;
	};
	jsTriggerAction.prototype.IsActionHidScript = function() { return this.$val.IsActionHidScript(); };
	jsTriggerAction.ptr.prototype.IsActionDeploySettingsTemplate = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 2;
	};
	jsTriggerAction.prototype.IsActionDeploySettingsTemplate = function() { return this.$val.IsActionDeploySettingsTemplate(); };
	jsTriggerAction.ptr.prototype.IsActionGroupSend = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 5;
	};
	jsTriggerAction.prototype.IsActionGroupSend = function() { return this.$val.IsActionGroupSend(); };
	jsTriggerAction.ptr.prototype.IsActionGPIOOut = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.ActionType) >> 0) === 4;
	};
	jsTriggerAction.prototype.IsActionGPIOOut = function() { return this.$val.IsActionGPIOOut(); };
	jsTriggerAction.ptr.prototype.ChangeTriggerType = function(newTt) {
		var _1, d, d$1, d$2, d$3, d$4, d$5, d$6, d$7, d$8, d$9, data, newTt, ta;
		ta = this;
		data = null;
		_1 = newTt;
		if (_1 === (5)) {
			d = new jsTriggerSSHLogin.ptr(O(), "");
			d.Object.LoginUser = $externalize("root", $String);
			data = d.Object;
		} else if (_1 === (6)) {
			d$1 = new jsTriggerDHCPLeaseGranted.ptr(O());
			data = d$1.Object;
		} else if (_1 === (3)) {
			d$2 = new jsTriggerWifiAPStarted.ptr(O());
			data = d$2.Object;
		} else if (_1 === (4)) {
			d$3 = new jsTriggerWifiConnectedAsSta.ptr(O());
			data = d$3.Object;
		} else if (_1 === (1)) {
			d$4 = new jsTriggerUSBGadgetConnected.ptr(O());
			data = d$4.Object;
		} else if (_1 === (2)) {
			d$5 = new jsTriggerUSBGadgetDisconnected.ptr(O());
			data = d$5.Object;
		} else if (_1 === (0)) {
			d$6 = new jsTriggerServiceStarted.ptr(O());
			data = d$6.Object;
		} else if (_1 === (7)) {
			d$7 = new jsTriggerGPIOIn.ptr(O(), "", 0, 0, new $Int64(0, 0));
			d$7.Object.Edge = 0;
			d$7.Object.GpioName = $externalize("", $String);
			d$7.Object.PullUpDown = 0;
			d$7.Object.DebounceMillis = $externalize(new $Int64(0, 0), $Int64);
			data = d$7.Object;
		} else if (_1 === (8)) {
			d$8 = new jsTriggerGroupReceive.ptr(O(), "", 0);
			d$8.Object.GroupName = $externalize("Group1", $String);
			d$8.Object.Value = 0;
			data = d$8.Object;
		} else if (_1 === (9)) {
			d$9 = new jsTriggerGroupReceiveMulti.ptr(O(), "", 0, sliceType$17.nil);
			d$9.Object.GroupName = $externalize("Group1", $String);
			d$9.Object.Type = 0;
			d$9.Object.Values = $externalize(new sliceType$17([1, 2]), sliceType$17);
			data = d$9.Object;
		} else {
			console.log("Unknown trigger type");
			data = O();
		}
		ta.Object.TriggerData = data;
		ta.Object.TriggerType = newTt;
	};
	jsTriggerAction.prototype.ChangeTriggerType = function(newTt) { return this.$val.ChangeTriggerType(newTt); };
	jsTriggerAction.ptr.prototype.IsTriggerServiceStarted = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 0;
	};
	jsTriggerAction.prototype.IsTriggerServiceStarted = function() { return this.$val.IsTriggerServiceStarted(); };
	jsTriggerAction.ptr.prototype.IsTriggerSshLogin = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 5;
	};
	jsTriggerAction.prototype.IsTriggerSshLogin = function() { return this.$val.IsTriggerSshLogin(); };
	jsTriggerAction.ptr.prototype.IsTriggerDhcpLeaseGranted = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 6;
	};
	jsTriggerAction.prototype.IsTriggerDhcpLeaseGranted = function() { return this.$val.IsTriggerDhcpLeaseGranted(); };
	jsTriggerAction.ptr.prototype.IsTriggerWifiAPStarted = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 3;
	};
	jsTriggerAction.prototype.IsTriggerWifiAPStarted = function() { return this.$val.IsTriggerWifiAPStarted(); };
	jsTriggerAction.ptr.prototype.IsTriggerWifiConnectedAsSta = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 4;
	};
	jsTriggerAction.prototype.IsTriggerWifiConnectedAsSta = function() { return this.$val.IsTriggerWifiConnectedAsSta(); };
	jsTriggerAction.ptr.prototype.IsTriggerUsbGadgetConnected = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 1;
	};
	jsTriggerAction.prototype.IsTriggerUsbGadgetConnected = function() { return this.$val.IsTriggerUsbGadgetConnected(); };
	jsTriggerAction.ptr.prototype.IsTriggerUsbGadgetDisconnected = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 2;
	};
	jsTriggerAction.prototype.IsTriggerUsbGadgetDisconnected = function() { return this.$val.IsTriggerUsbGadgetDisconnected(); };
	jsTriggerAction.ptr.prototype.IsTriggerGPIOIn = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 7;
	};
	jsTriggerAction.prototype.IsTriggerGPIOIn = function() { return this.$val.IsTriggerGPIOIn(); };
	jsTriggerAction.ptr.prototype.IsTriggerGroupReceive = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 8;
	};
	jsTriggerAction.prototype.IsTriggerGroupReceive = function() { return this.$val.IsTriggerGroupReceive(); };
	jsTriggerAction.ptr.prototype.IsTriggerGroupReceiveMulti = function() {
		var ta;
		ta = this;
		return ($parseInt(ta.Object.TriggerType) >> 0) === 9;
	};
	jsTriggerAction.prototype.IsTriggerGroupReceiveMulti = function() { return this.$val.IsTriggerGroupReceiveMulti(); };
	NewTriggerAction = function() {
		var ta;
		ta = new jsTriggerAction.ptr(O(), 0, false, false, false, 0, 0, null, null);
		ta.Object.Id = 0;
		ta.Object.IsActive = $externalize(true, $Bool);
		ta.Object.Immutable = $externalize(false, $Bool);
		ta.Object.OneShot = $externalize(false, $Bool);
		ta.Object.ActionData = O();
		ta.Object.TriggerData = O();
		ta.Object.TriggerType = (0 >= availableTriggers.$length ? ($throwRuntimeError("index out of range"), undefined) : availableTriggers.$array[availableTriggers.$offset + 0]);
		ta.Object.ActionType = (0 >= availableActions.$length ? ($throwRuntimeError("index out of range"), undefined) : availableActions.$array[availableActions.$offset + 0]);
		return ta;
	};
	$pkg.NewTriggerAction = NewTriggerAction;
	NewTriggerActionSet = function() {
		var tal;
		tal = new jsTriggerActionSet.ptr(O(), "", null);
		tal.Object.TriggerActions = O();
		tal.Object.Name = $externalize("default_ta_set", $String);
		return tal;
	};
	$pkg.NewTriggerActionSet = NewTriggerActionSet;
	jsTriggerActionSet.ptr.prototype.UpdateEntry = function(ta) {
		var key, res, ta, tal, updateTa;
		tal = this;
		key = strconv.Itoa(((($parseInt(ta.Object.Id) >>> 0) >> 0)));
		updateTa = ptrType$77.nil;
		res = tal.Object.TriggerActions[$externalize(key, $String)];
		if (res === undefined) {
			updateTa = new jsTriggerAction.ptr(O(), 0, false, false, false, 0, 0, null, null);
		} else {
			updateTa = new jsTriggerAction.ptr(res, 0, false, false, false, 0, 0, null, null);
		}
		updateTa.Object.Id = $parseInt(ta.Object.Id) >>> 0;
		updateTa.Object.IsActive = $externalize(!!(ta.Object.IsActive), $Bool);
		updateTa.Object.Immutable = $externalize(!!(ta.Object.Immutable), $Bool);
		updateTa.Object.OneShot = $externalize(!!(ta.Object.OneShot), $Bool);
		updateTa.Object.ActionType = $parseInt(ta.Object.ActionType) >> 0;
		updateTa.Object.TriggerType = $parseInt(ta.Object.TriggerType) >> 0;
		updateTa.Object.TriggerData = ta.Object.TriggerData;
		updateTa.Object.ActionData = ta.Object.ActionData;
		hvue.Set(new $jsObjectPtr(tal.Object.TriggerActions), new $String(key), updateTa);
	};
	jsTriggerActionSet.prototype.UpdateEntry = function(ta) { return this.$val.UpdateEntry(ta); };
	jsTriggerActionSet.ptr.prototype.DeleteEntry = function(id) {
		var id, tal;
		tal = this;
		delete tal.Object.TriggerActions[$externalize(strconv.Itoa(((id >> 0))), $String)];
	};
	jsTriggerActionSet.prototype.DeleteEntry = function(id) { return this.$val.DeleteEntry(id); };
	jsTriggerActionSet.ptr.prototype.Flush = function() {
		var tas;
		tas = this;
		tas.Object.TriggerActions = O();
	};
	jsTriggerActionSet.prototype.Flush = function() { return this.$val.Flush(); };
	jsTriggerActionSet.ptr.prototype.toGo = function() {
		var count, i, jsTa, js_ta_array, src, target, x;
		target = ptrType$21.nil;
		src = this;
		js_ta_array = $global.Object.values(src.Object.TriggerActions);
		count = $parseInt(js_ta_array.length);
		target = new P4wnP1_grpc.TriggerActionSet.ptr(sliceType$12.nil, $internalize(src.Object.Name, $String));
		target.TriggerActions = $makeSlice(sliceType$12, count);
		i = 0;
		while (true) {
			if (!(i < count)) { break; }
			jsTa = new jsTriggerAction.ptr(js_ta_array[i], 0, false, false, false, 0, 0, null, null);
			(x = target.TriggerActions, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = jsTa.toGo()));
			i = i + (1) >> 0;
		}
		return target;
	};
	jsTriggerActionSet.prototype.toGo = function() { return this.$val.toGo(); };
	jsMasterTemplate.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.TemplateNamesNetwork = $externalize(src.TemplateNamesNetwork, sliceType$9);
		target.Object.TemplateNameBluetooth = $externalize(src.TemplateNameBluetooth, $String);
		target.Object.TemplateNameWiFi = $externalize(src.TemplateNameWifi, $String);
		target.Object.TemplateNameUSB = $externalize(src.TemplateNameUsb, $String);
		target.Object.TemplateNameTriggerActions = $externalize(src.TemplateNameTriggerActions, $String);
	};
	jsMasterTemplate.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsMasterTemplate.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$7.nil;
		src = this;
		target = new P4wnP1_grpc.MasterTemplate.ptr("", "", "", "", sliceType$9.nil);
		target.TemplateNamesNetwork = $internalize(src.Object.TemplateNamesNetwork, sliceType$9);
		target.TemplateNameBluetooth = $internalize(src.Object.TemplateNameBluetooth, $String);
		target.TemplateNameWifi = $internalize(src.Object.TemplateNameWiFi, $String);
		target.TemplateNameUsb = $internalize(src.Object.TemplateNameUSB, $String);
		target.TemplateNameTriggerActions = $internalize(src.Object.TemplateNameTriggerActions, $String);
		target = target;
		return target;
	};
	jsMasterTemplate.prototype.toGo = function() { return this.$val.toGo(); };
	NewMasterTemplate = function() {
		var res;
		res = ptrType$29.nil;
		res = new jsMasterTemplate.ptr(O(), "", "", "", "", sliceType$9.nil);
		res.Object.TemplateNameBluetooth = $externalize("", $String);
		res.Object.TemplateNameWiFi = $externalize("", $String);
		res.Object.TemplateNameUSB = $externalize("", $String);
		res.Object.TemplateNameTriggerActions = $externalize("", $String);
		res.Object.TemplateNamesNetwork = $externalize(new sliceType$9([]), sliceType$9);
		res = res;
		return res;
	};
	$pkg.NewMasterTemplate = NewMasterTemplate;
	jsRequestMasterTemplateStorage.ptr.prototype.toGo = function() {
		var rs;
		rs = this;
		return new P4wnP1_grpc.RequestMasterTemplateStorage.ptr($internalize(rs.Object.TemplateName, $String), $internalize(rs.Object.Template, ptrType$29).toGo());
	};
	jsRequestMasterTemplateStorage.prototype.toGo = function() { return this.$val.toGo(); };
	jsRequestMasterTemplateStorage.ptr.prototype.fromGo = function(src) {
		var rs, src;
		rs = this;
		rs.Object.TemplateName = $externalize(src.TemplateName, $String);
		rs.Object.Template = $externalize(NewMasterTemplate(), ptrType$29);
		$internalize(rs.Object.Template, ptrType$29).fromGo(src.Template);
	};
	jsRequestMasterTemplateStorage.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewRequestMasterTemplateStorage = function() {
		var res;
		res = ptrType$38.nil;
		res = new jsRequestMasterTemplateStorage.ptr(O(), "", ptrType$29.nil);
		res.Object.Template = $externalize(NewMasterTemplate(), ptrType$29);
		res.Object.TemplateName = $externalize("", $String);
		res = res;
		return res;
	};
	$pkg.NewRequestMasterTemplateStorage = NewRequestMasterTemplateStorage;
	jsWifiRequestSettingsStorage.ptr.prototype.toGo = function() {
		var rs;
		rs = this;
		return new P4wnP1_grpc.WifiRequestSettingsStorage.ptr($internalize(rs.Object.TemplateName, $String), $internalize(rs.Object.Settings, ptrType$17).toGo());
	};
	jsWifiRequestSettingsStorage.prototype.toGo = function() { return this.$val.toGo(); };
	jsWifiRequestSettingsStorage.ptr.prototype.fromGo = function(src) {
		var rs, src;
		rs = this;
		rs.Object.TemplateName = $externalize(src.TemplateName, $String);
		rs.Object.Settings = $externalize(NewWifiSettings(), ptrType$17);
		$internalize(rs.Object.Settings, ptrType$17).fromGo(src.Settings);
	};
	jsWifiRequestSettingsStorage.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewWifiRequestSettingsStorage = function() {
		var res;
		res = new jsWifiRequestSettingsStorage.ptr(O(), "", ptrType$17.nil);
		res.Object.TemplateName = $externalize("", $String);
		res.Object.Settings = $externalize(NewWifiSettings(), ptrType$17);
		return res;
	};
	$pkg.NewWifiRequestSettingsStorage = NewWifiRequestSettingsStorage;
	jsUSBRequestSettingsStorage.ptr.prototype.toGo = function() {
		var rs;
		rs = this;
		return new P4wnP1_grpc.USBRequestSettingsStorage.ptr($internalize(rs.Object.TemplateName, $String), $clone($internalize(rs.Object.Settings, ptrType$26), jsGadgetSettings).toGo());
	};
	jsUSBRequestSettingsStorage.prototype.toGo = function() { return this.$val.toGo(); };
	jsUSBRequestSettingsStorage.ptr.prototype.fromGo = function(src) {
		var rs, src;
		rs = this;
		rs.Object.TemplateName = $externalize(src.TemplateName, $String);
		rs.Object.Settings = $externalize(NewUSBGadgetSettings(), ptrType$26);
		$internalize(rs.Object.Settings, ptrType$26).fromGo(src.Settings);
	};
	jsUSBRequestSettingsStorage.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewUSBRequestSettingsStorage = function() {
		var res;
		res = new jsUSBRequestSettingsStorage.ptr(O(), "", ptrType$26.nil);
		res.Object.TemplateName = $externalize("", $String);
		res.Object.Settings = $externalize(NewUSBGadgetSettings(), ptrType$26);
		return res;
	};
	$pkg.NewUSBRequestSettingsStorage = NewUSBRequestSettingsStorage;
	jsGadgetSettings.ptr.prototype.toGo = function() {
		var gs, jsGS;
		gs = ptrType$13.nil;
		jsGS = this;
		gs = new P4wnP1_grpc.GadgetSettings.ptr(!!(jsGS.Object.Enabled), $internalize(jsGS.Object.Vid, $String), $internalize(jsGS.Object.Pid, $String), $internalize(jsGS.Object.Manufacturer, $String), $internalize(jsGS.Object.Product, $String), $internalize(jsGS.Object.Serial, $String), !!(jsGS.Object.Use_CDC_ECM), !!(jsGS.Object.Use_RNDIS), !!(jsGS.Object.Use_HID_KEYBOARD), !!(jsGS.Object.Use_HID_MOUSE), !!(jsGS.Object.Use_HID_RAW), !!(jsGS.Object.Use_UMS), !!(jsGS.Object.Use_SERIAL), new P4wnP1_grpc.GadgetSettingsEthernet.ptr($internalize($internalize(jsGS.Object.RndisSettings, ptrType$33).Object.HostAddr, $String), $internalize($internalize(jsGS.Object.RndisSettings, ptrType$33).Object.DevAddr, $String)), new P4wnP1_grpc.GadgetSettingsEthernet.ptr($internalize($internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.HostAddr, $String), $internalize($internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.DevAddr, $String)), new P4wnP1_grpc.GadgetSettingsUMS.ptr(!!($internalize(jsGS.Object.UmsSettings, ptrType$34).Object.Cdrom), $internalize($internalize(jsGS.Object.UmsSettings, ptrType$34).Object.File, $String)), "", "", "");
		return gs;
	};
	jsGadgetSettings.prototype.toGo = function() { return this.$val.toGo(); };
	jsGadgetSettings.ptr.prototype.fromGo = function(gs) {
		var gs, jsGS;
		jsGS = this;
		console.log(gs);
		jsGS.Object.Enabled = $externalize(gs.Enabled, $Bool);
		jsGS.Object.Vid = $externalize(gs.Vid, $String);
		jsGS.Object.Pid = $externalize(gs.Pid, $String);
		jsGS.Object.Manufacturer = $externalize(gs.Manufacturer, $String);
		jsGS.Object.Product = $externalize(gs.Product, $String);
		jsGS.Object.Serial = $externalize(gs.Serial, $String);
		jsGS.Object.Use_CDC_ECM = $externalize(gs.Use_CDC_ECM, $Bool);
		jsGS.Object.Use_RNDIS = $externalize(gs.Use_RNDIS, $Bool);
		jsGS.Object.Use_HID_KEYBOARD = $externalize(gs.Use_HID_KEYBOARD, $Bool);
		jsGS.Object.Use_HID_MOUSE = $externalize(gs.Use_HID_MOUSE, $Bool);
		jsGS.Object.Use_HID_RAW = $externalize(gs.Use_HID_RAW, $Bool);
		jsGS.Object.Use_UMS = $externalize(gs.Use_UMS, $Bool);
		jsGS.Object.Use_SERIAL = $externalize(gs.Use_SERIAL, $Bool);
		jsGS.Object.RndisSettings = $externalize(new jsGadgetSettingsEthernet.ptr(O(), "", ""), ptrType$33);
		$internalize(jsGS.Object.RndisSettings, ptrType$33).Object.DevAddr = $externalize("", $String);
		$internalize(jsGS.Object.RndisSettings, ptrType$33).Object.HostAddr = $externalize("", $String);
		if (!(gs.RndisSettings === ptrType$78.nil)) {
			$internalize(jsGS.Object.RndisSettings, ptrType$33).Object.HostAddr = $externalize(gs.RndisSettings.HostAddr, $String);
			$internalize(jsGS.Object.RndisSettings, ptrType$33).Object.DevAddr = $externalize(gs.RndisSettings.DevAddr, $String);
		}
		jsGS.Object.CdcEcmSettings = $externalize(new jsGadgetSettingsEthernet.ptr(O(), "", ""), ptrType$33);
		$internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.DevAddr = $externalize("", $String);
		$internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.HostAddr = $externalize("", $String);
		if (!(gs.CdcEcmSettings === ptrType$78.nil)) {
			$internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.HostAddr = $externalize(gs.CdcEcmSettings.HostAddr, $String);
			$internalize(jsGS.Object.CdcEcmSettings, ptrType$33).Object.DevAddr = $externalize(gs.CdcEcmSettings.DevAddr, $String);
		}
		jsGS.Object.UmsSettings = $externalize(new jsGadgetSettingsUMS.ptr(O(), false, ""), ptrType$34);
		$internalize(jsGS.Object.UmsSettings, ptrType$34).Object.Cdrom = $externalize(false, $Bool);
		$internalize(jsGS.Object.UmsSettings, ptrType$34).Object.File = $externalize("", $String);
		if (!(gs.UmsSettings === ptrType$79.nil)) {
			$internalize(jsGS.Object.UmsSettings, ptrType$34).Object.File = $externalize(gs.UmsSettings.File, $String);
			$internalize(jsGS.Object.UmsSettings, ptrType$34).Object.Cdrom = $externalize(gs.UmsSettings.Cdrom, $Bool);
		}
	};
	jsGadgetSettings.prototype.fromGo = function(gs) { return this.$val.fromGo(gs); };
	NewUSBGadgetSettings = function() {
		var gs;
		gs = new jsGadgetSettings.ptr(O(), false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$33.nil, ptrType$33.nil, ptrType$34.nil);
		gs.fromGo(new P4wnP1_grpc.GadgetSettings.ptr(false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$78.nil, ptrType$78.nil, ptrType$79.nil, "", "", ""));
		return gs;
	};
	$pkg.NewUSBGadgetSettings = NewUSBGadgetSettings;
	NewJsEventFromNative = function(event) {
		var _i, _ref, _ref$1, event, idx, res, val, valT, valT$1, valT$2, valT$3, x, x$1, x$2;
		res = ptrType$80.nil;
		res = new jsEvent.ptr(O(), new $Int64(0, 0), sliceType$13.nil, null);
		res.Object.values = new ($global.Array)();
		res.Object.type = $externalize(event.Type, $Int64);
		res.Values = $makeSlice(sliceType$13, event.Values.$length);
		_ref = event.Values;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			idx = _i;
			val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			_ref$1 = val.Val;
			if ($assertType(_ref$1, ptrType$81, true)[1]) {
				valT = _ref$1.$val;
				(x = res.Values, ((idx < 0 || idx >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + idx] = valT.Tint64));
				res.Object.values.push($externalize(valT.Tint64, $Int64));
			} else if ($assertType(_ref$1, ptrType$82, true)[1]) {
				valT$1 = _ref$1.$val;
				(x$1 = res.Values, ((idx < 0 || idx >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + idx] = new $String(valT$1.Tstring)));
				res.Object.values.push($externalize(valT$1.Tstring, $String));
			} else if ($assertType(_ref$1, ptrType$83, true)[1]) {
				valT$2 = _ref$1.$val;
				(x$2 = res.Values, ((idx < 0 || idx >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + idx] = new $Bool(valT$2.Tbool)));
				res.Object.values.push($externalize(valT$2.Tbool, $Bool));
			} else {
				valT$3 = _ref$1;
				console.log("error parsing event value", valT$3);
			}
			_i++;
		}
		res = res;
		return res;
	};
	$pkg.NewJsEventFromNative = NewJsEventFromNative;
	jsEvent.ptr.prototype.toLogEvent = function() {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, err, jsEv, ll, ok, res, x, x$1, x$2, x$3, x$4;
		res = ptrType$84.nil;
		err = $ifaceNil;
		jsEv = this;
		if (!((x = $internalize(jsEv.Object.type, $Int64), (x.$high === 0 && x.$low === 1))) || !((jsEv.Values.$length === 4))) {
			_tmp = ptrType$84.nil;
			_tmp$1 = eNoLogEvent;
			res = _tmp;
			err = _tmp$1;
			return [res, err];
		}
		res = new jsLogEvent.ptr(O(), "", 0, "", new $Int64(0, 0));
		ok = false;
		_tuple = $assertType((x$1 = jsEv.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $String, true);
		res.Object.source = $externalize(_tuple[0], $String);
		ok = _tuple[1];
		if (!ok) {
			_tmp$2 = ptrType$84.nil;
			_tmp$3 = eNoLogEvent;
			res = _tmp$2;
			err = _tmp$3;
			return [res, err];
		}
		_tuple$1 = $assertType((x$2 = jsEv.Values, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])), $Int64, true);
		ll = _tuple$1[0];
		ok = _tuple$1[1];
		if (!ok) {
			_tmp$4 = ptrType$84.nil;
			_tmp$5 = eNoLogEvent;
			res = _tmp$4;
			err = _tmp$5;
			return [res, err];
		}
		res.Object.level = (((ll.$low + ((ll.$high >> 31) * 4294967296)) >> 0));
		_tuple$2 = $assertType((x$3 = jsEv.Values, (2 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 2])), $String, true);
		res.Object.message = $externalize(_tuple$2[0], $String);
		ok = _tuple$2[1];
		if (!ok) {
			_tmp$6 = ptrType$84.nil;
			_tmp$7 = eNoLogEvent;
			res = _tmp$6;
			err = _tmp$7;
			return [res, err];
		}
		_tuple$3 = $assertType((x$4 = jsEv.Values, (3 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 3])), $Int64, true);
		res.Object.time = $externalize(_tuple$3[0], $Int64);
		ok = _tuple$3[1];
		if (!ok) {
			_tmp$8 = ptrType$84.nil;
			_tmp$9 = eNoLogEvent;
			res = _tmp$8;
			err = _tmp$9;
			return [res, err];
		}
		console.log("EvLogTime", $internalize(res.Object.time, $Int64));
		_tmp$10 = res;
		_tmp$11 = $ifaceNil;
		res = _tmp$10;
		err = _tmp$11;
		return [res, err];
	};
	jsEvent.prototype.toLogEvent = function() { return this.$val.toLogEvent(); };
	jsEvent.ptr.prototype.toHidEvent = function() {
		var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, err, jsEv, ok, res, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8;
		res = ptrType$85.nil;
		err = $ifaceNil;
		jsEv = this;
		if (!((x = $internalize(jsEv.Object.type, $Int64), (x.$high === 0 && x.$low === 3))) || !((jsEv.Values.$length === 8))) {
			_tmp = ptrType$85.nil;
			_tmp$1 = eNoHidEvent;
			res = _tmp;
			err = _tmp$1;
			return [res, err];
		}
		res = new jsHidEvent.ptr(O(), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), false, "", "", "", new $Int64(0, 0));
		ok = false;
		_tuple = $assertType((x$1 = jsEv.Values, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $Int64, true);
		res.Object.evtype = $externalize(_tuple[0], $Int64);
		ok = _tuple[1];
		if (!ok) {
			_tmp$2 = ptrType$85.nil;
			_tmp$3 = eNoHidEvent;
			res = _tmp$2;
			err = _tmp$3;
			return [res, err];
		}
		_tuple$1 = $assertType((x$2 = jsEv.Values, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])), $Int64, true);
		res.Object.vmId = $externalize(_tuple$1[0], $Int64);
		ok = _tuple$1[1];
		if (!ok) {
			_tmp$4 = ptrType$85.nil;
			_tmp$5 = eNoHidEvent;
			res = _tmp$4;
			err = _tmp$5;
			return [res, err];
		}
		_tuple$2 = $assertType((x$3 = jsEv.Values, (2 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 2])), $Int64, true);
		res.Object.jobId = $externalize(_tuple$2[0], $Int64);
		ok = _tuple$2[1];
		if (!ok) {
			_tmp$6 = ptrType$85.nil;
			_tmp$7 = eNoHidEvent;
			res = _tmp$6;
			err = _tmp$7;
			return [res, err];
		}
		_tuple$3 = $assertType((x$4 = jsEv.Values, (3 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 3])), $Bool, true);
		res.Object.hasError = $externalize(_tuple$3[0], $Bool);
		ok = _tuple$3[1];
		if (!ok) {
			_tmp$8 = ptrType$85.nil;
			_tmp$9 = eNoHidEvent;
			res = _tmp$8;
			err = _tmp$9;
			return [res, err];
		}
		_tuple$4 = $assertType((x$5 = jsEv.Values, (4 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 4])), $String, true);
		res.Object.result = $externalize(_tuple$4[0], $String);
		ok = _tuple$4[1];
		if (!ok) {
			_tmp$10 = ptrType$85.nil;
			_tmp$11 = eNoHidEvent;
			res = _tmp$10;
			err = _tmp$11;
			return [res, err];
		}
		_tuple$5 = $assertType((x$6 = jsEv.Values, (5 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 5])), $String, true);
		res.Object.error = $externalize(_tuple$5[0], $String);
		ok = _tuple$5[1];
		if (!ok) {
			_tmp$12 = ptrType$85.nil;
			_tmp$13 = eNoHidEvent;
			res = _tmp$12;
			err = _tmp$13;
			return [res, err];
		}
		_tuple$6 = $assertType((x$7 = jsEv.Values, (6 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 6])), $String, true);
		res.Object.message = $externalize(_tuple$6[0], $String);
		ok = _tuple$6[1];
		if (!ok) {
			_tmp$14 = ptrType$85.nil;
			_tmp$15 = eNoHidEvent;
			res = _tmp$14;
			err = _tmp$15;
			return [res, err];
		}
		_tuple$7 = $assertType((x$8 = jsEv.Values, (7 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 7])), $Int64, true);
		res.Object.time = $externalize(_tuple$7[0], $Int64);
		ok = _tuple$7[1];
		if (!ok) {
			_tmp$16 = ptrType$85.nil;
			_tmp$17 = eNoHidEvent;
			res = _tmp$16;
			err = _tmp$17;
			return [res, err];
		}
		_tmp$18 = res;
		_tmp$19 = $ifaceNil;
		res = _tmp$18;
		err = _tmp$19;
		return [res, err];
	};
	jsEvent.prototype.toHidEvent = function() { return this.$val.toHidEvent(); };
	NewHIDJobStateList = function() {
		var jl;
		jl = new jsHidJobStateList.ptr(O(), null);
		jl.Object.jobs = O();
		return jl;
	};
	$pkg.NewHIDJobStateList = NewHIDJobStateList;
	jsHidJobStateList.ptr.prototype.UpdateEntry = function(id, vmId, hasFailed, hasSucceeded, message, textResult, lastUpdateTime, scriptSource) {
		var hasFailed, hasSucceeded, id, j, jl, key, lastUpdateTime, message, res, scriptSource, textResult, vmId;
		jl = this;
		key = strconv.Itoa((((id.$low + ((id.$high >> 31) * 4294967296)) >> 0)));
		j = ptrType$30.nil;
		res = jl.Object.jobs[$externalize(key, $String)];
		if (res === undefined) {
			j = new jsHidJobState.ptr(O(), new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
		} else {
			j = new jsHidJobState.ptr(res, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
		}
		j.Object.id = $externalize(id, $Int64);
		j.Object.vmId = $externalize(vmId, $Int64);
		j.Object.hasFailed = $externalize(hasFailed, $Bool);
		j.Object.hasSucceeded = $externalize(hasSucceeded, $Bool);
		j.Object.lastMessage = $externalize(message, $String);
		j.Object.textResult = $externalize(textResult, $String);
		j.Object.lastUpdateTime = $externalize(lastUpdateTime, $Int64);
		if (scriptSource.length > 0) {
			j.Object.textSource = $externalize(scriptSource, $String);
		}
		hvue.Set(new $jsObjectPtr(jl.Object.jobs), new $String(key), j);
	};
	jsHidJobStateList.prototype.UpdateEntry = function(id, vmId, hasFailed, hasSucceeded, message, textResult, lastUpdateTime, scriptSource) { return this.$val.UpdateEntry(id, vmId, hasFailed, hasSucceeded, message, textResult, lastUpdateTime, scriptSource); };
	jsHidJobStateList.ptr.prototype.Clear = function() {
		var jl;
		jl = this;
		hvue.Set(jl, new $String("jobs"), new $jsObjectPtr(O()));
	};
	jsHidJobStateList.prototype.Clear = function() { return this.$val.Clear(); };
	jsHidJobStateList.ptr.prototype.DeleteEntry = function(id) {
		var id, jl, key;
		jl = this;
		key = strconv.Itoa((((id.$low + ((id.$high >> 31) * 4294967296)) >> 0)));
		hvue.Delete(new $jsObjectPtr(jl.Object.jobs), new $String(key));
	};
	jsHidJobStateList.prototype.DeleteEntry = function(id) { return this.$val.DeleteEntry(id); };
	jsWiFiState.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.mode = ((src.Mode >> 0));
		target.Object.channel = src.Channel;
		target.Object.ssid = $externalize(src.Ssid, $String);
		target.Object.CurrentSettings = $externalize(NewWifiSettings(), ptrType$17);
		$internalize(target.Object.CurrentSettings, ptrType$17).fromGo(src.CurrentSettings);
		return;
	};
	jsWiFiState.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsWiFiState.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$14.nil;
		src = this;
		target = new P4wnP1_grpc.WiFiState.ptr(((($parseInt(src.Object.mode) >> 0) >> 0)), $parseInt(src.Object.channel) >>> 0, $internalize(src.Object.ssid, $String), $internalize(src.Object.CurrentSettings, ptrType$17).toGo());
		return target;
	};
	jsWiFiState.prototype.toGo = function() { return this.$val.toGo(); };
	jsWiFiState.ptr.prototype.ModeString = function() {
		var _1, src, strMode;
		strMode = "";
		src = this;
		_1 = $parseInt(src.Object.mode) >> 0;
		if (_1 === (0)) {
			strMode = "Not connected";
			return strMode;
		} else if (_1 === (1)) {
			strMode = "Access Point";
			return strMode;
		} else if (_1 === (2)) {
			strMode = "Connected";
			return strMode;
		} else {
			strMode = "UNKNOWN";
			return strMode;
		}
	};
	jsWiFiState.prototype.ModeString = function() { return this.$val.ModeString(); };
	NewWiFiState = function() {
		var res;
		res = new jsWiFiState.ptr(O(), 0, 0, "", ptrType$17.nil);
		res.Object.channel = 0;
		res.Object.mode = 0;
		res.Object.ssid = $externalize("", $String);
		res.Object.CurrentSettings = $externalize(NewWifiSettings(), ptrType$17);
		return res;
	};
	$pkg.NewWiFiState = NewWiFiState;
	jsWiFiSettings.ptr.prototype.toGo = function() {
		var i, jsBsscfg, numClientBss, src, target, x;
		target = ptrType$15.nil;
		src = this;
		target = new P4wnP1_grpc.WiFiSettings.ptr($internalize(src.Object.name, $String), !!(src.Object.disabled), $internalize(src.Object.reg, $String), ((($parseInt(src.Object.mode) >> 0) >> 0)), ((($parseInt(src.Object.authMode) >> 0) >> 0)), ((($parseInt(src.Object.channel) >> 0) >>> 0)), new P4wnP1_grpc.WiFiBSSCfg.ptr($internalize($internalize(src.Object.apBss, ptrType$87).Object.ssid, $String), $internalize($internalize(src.Object.apBss, ptrType$87).Object.psk, $String)), sliceType$18.nil, !!(src.Object.hideSsid), !!(src.Object.nexmon));
		if (!(src.Object.staBssList === undefined)) {
			numClientBss = $parseInt(src.Object.staBssList.length);
			if (numClientBss > 0) {
				target.Client_BSSList = $makeSlice(sliceType$18, numClientBss);
				i = 0;
				while (true) {
					if (!(i < numClientBss)) { break; }
					jsBsscfg = new jsWiFiBSSCfg.ptr(src.Object.staBssList[i], "", "");
					(x = target.Client_BSSList, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = new P4wnP1_grpc.WiFiBSSCfg.ptr($internalize(jsBsscfg.Object.ssid, $String), $internalize(jsBsscfg.Object.psk, $String))));
					i = i + (1) >> 0;
				}
			}
		} else {
			target.Client_BSSList = new sliceType$18([new P4wnP1_grpc.WiFiBSSCfg.ptr("", "")]);
		}
		target = target;
		return target;
	};
	jsWiFiSettings.prototype.toGo = function() { return this.$val.toGo(); };
	jsWiFiSettings.ptr.prototype.fromGo = function(src) {
		var _i, _ref, clientBSS, jsClBSS, jsClBSS$1, src, target;
		target = this;
		target.Object.name = $externalize(src.Name, $String);
		target.Object.mode = ((src.WorkingMode >> 0));
		target.Object.disabled = $externalize(src.Disabled, $Bool);
		target.Object.reg = $externalize(src.Regulatory, $String);
		target.Object.authMode = ((src.AuthMode >> 0));
		target.Object.nexmon = $externalize(src.Nexmon, $Bool);
		target.Object.channel = ((src.Channel >> 0));
		target.Object.hideSsid = $externalize(src.HideSsid, $Bool);
		target.Object.apBss = $externalize(new jsWiFiBSSCfg.ptr(O(), "", ""), ptrType$87);
		if (!(src.Ap_BSS === ptrType$86.nil)) {
			$internalize(target.Object.apBss, ptrType$87).Object.ssid = $externalize(src.Ap_BSS.SSID, $String);
			$internalize(target.Object.apBss, ptrType$87).Object.psk = $externalize(src.Ap_BSS.PSK, $String);
		} else {
			$internalize(target.Object.apBss, ptrType$87).Object.ssid = $externalize("", $String);
			$internalize(target.Object.apBss, ptrType$87).Object.psk = $externalize("", $String);
		}
		target.Object.staBssList = new ($global.Array)();
		_ref = src.Client_BSSList;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			clientBSS = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			jsClBSS = new jsWiFiBSSCfg.ptr(O(), "", "");
			jsClBSS.Object.ssid = $externalize(clientBSS.SSID, $String);
			jsClBSS.Object.psk = $externalize(clientBSS.PSK, $String);
			target.Object.staBssList.push($externalize(jsClBSS, jsWiFiBSSCfg));
			_i++;
		}
		if ($parseInt(target.Object.staBssList.length) === 0) {
			jsClBSS$1 = new jsWiFiBSSCfg.ptr(O(), "", "");
			jsClBSS$1.Object.ssid = $externalize("", $String);
			jsClBSS$1.Object.psk = $externalize("", $String);
			target.Object.staBssList.push($externalize(jsClBSS$1, jsWiFiBSSCfg));
		}
	};
	jsWiFiSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewWifiSettings = function() {
		var jsClBSS, res;
		res = new jsWiFiSettings.ptr(O(), "", false, "", 0, 0, 0, false, false, ptrType$87.nil, null);
		res.Object.disabled = $externalize(true, $Bool);
		res.Object.mode = 0;
		res.Object.name = $externalize("default", $String);
		res.Object.apBss = $externalize(new jsWiFiBSSCfg.ptr(O(), "", ""), ptrType$87);
		$internalize(res.Object.apBss, ptrType$87).Object.psk = $externalize("", $String);
		$internalize(res.Object.apBss, ptrType$87).Object.ssid = $externalize("", $String);
		res.Object.authMode = 1;
		res.Object.channel = 1;
		res.Object.nexmon = $externalize(false, $Bool);
		res.Object.staBssList = new ($global.Array)();
		jsClBSS = new jsWiFiBSSCfg.ptr(O(), "", "");
		jsClBSS.Object.ssid = $externalize("", $String);
		jsClBSS.Object.psk = $externalize("", $String);
		res.Object.staBssList.push($externalize(jsClBSS, jsWiFiBSSCfg));
		res.Object.hideSsid = $externalize(false, $Bool);
		res.Object.reg = $externalize("US", $String);
		return res;
	};
	$pkg.NewWifiSettings = NewWifiSettings;
	jsEthernetRequestSettingsStorage.ptr.prototype.toGo = function() {
		var rs;
		rs = this;
		return new P4wnP1_grpc.EthernetRequestSettingsStorage.ptr($internalize(rs.Object.TemplateName, $String), $internalize(rs.Object.Settings, ptrType$31).toGo());
	};
	jsEthernetRequestSettingsStorage.prototype.toGo = function() { return this.$val.toGo(); };
	jsEthernetRequestSettingsStorage.ptr.prototype.fromGo = function(src) {
		var rs, src;
		rs = this;
		rs.Object.TemplateName = $externalize(src.TemplateName, $String);
		rs.Object.Settings = $externalize(new jsEthernetInterfaceSettings.ptr(O(), "", 0, "", "", false, ptrType$32.nil, false), ptrType$31);
		$internalize(rs.Object.Settings, ptrType$31).fromGo(src.Settings);
	};
	jsEthernetRequestSettingsStorage.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewEthernetRequestSettingsStorage = function() {
		var res;
		res = new jsEthernetRequestSettingsStorage.ptr(O(), "", ptrType$31.nil);
		res.Object.TemplateName = $externalize("", $String);
		res.Object.Settings = $externalize(new jsEthernetInterfaceSettings.ptr(O(), "", 0, "", "", false, ptrType$32.nil, false), ptrType$31);
		return res;
	};
	$pkg.NewEthernetRequestSettingsStorage = NewEthernetRequestSettingsStorage;
	jsEthernetSettingsArray.ptr.prototype.fromGo = function(src) {
		var _i, _ref, ifSets, isl, jsIfSets, src;
		isl = this;
		isl.Object.interfaces = new ($global.Array)();
		_ref = src.List;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			ifSets = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			jsIfSets = new jsEthernetInterfaceSettings.ptr(O(), "", 0, "", "", false, ptrType$32.nil, false);
			jsIfSets.fromGo(ifSets);
			isl.Object.interfaces.push($externalize(jsIfSets, ptrType$31));
			_i++;
		}
		isl.Object.interfaces.sort($externalize((function(a, b) {
			var a, b;
			if ($internalize(a.Object.name, $String) > $internalize(b.Object.name, $String)) {
				return 1;
			} else if ($internalize(a.Object.name, $String) < $internalize(b.Object.name, $String)) {
				return -1;
			} else {
				return 0;
			}
		}), funcType$32));
	};
	jsEthernetSettingsArray.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsEthernetSettingsArray.ptr.prototype.updateSingleInterface = function(updatedSettings) {
		var i, isl, settings, updatedSettings;
		isl = this;
		i = 0;
		while (true) {
			if (!(i < $parseInt(isl.Object.interfaces.length))) { break; }
			settings = new jsEthernetInterfaceSettings.ptr(isl.Object.interfaces[i], "", 0, "", "", false, ptrType$32.nil, false);
			if ($internalize(settings.Object.name, $String) === $internalize(updatedSettings.Object.name, $String)) {
				hvue.Set(new $jsObjectPtr(isl.Object.interfaces), new $Int(i), updatedSettings);
				return;
			}
			i = i + (1) >> 0;
		}
		isl.Object.interfaces.push($externalize(updatedSettings, ptrType$31));
	};
	jsEthernetSettingsArray.prototype.updateSingleInterface = function(updatedSettings) { return this.$val.updateSingleInterface(updatedSettings); };
	NewEthernetSettingsList = function() {
		var res;
		res = ptrType$18.nil;
		res = new jsEthernetSettingsArray.ptr(O(), null);
		res.Object.interfaces = new ($global.Array)();
		return res;
	};
	$pkg.NewEthernetSettingsList = NewEthernetSettingsList;
	jsEthernetInterfaceSettings.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.name = $externalize(src.Name, $String);
		target.Object.mode = ((src.Mode >> 0));
		target.Object.ipAddress4 = $externalize(src.IpAddress4, $String);
		target.Object.netmask4 = $externalize(src.Netmask4, $String);
		target.Object.enabled = $externalize(src.Enabled, $Bool);
		target.Object.settingsInUse = $externalize(src.SettingsInUse, $Bool);
		if (!(src.DhcpServerSettings === ptrType$88.nil)) {
			target.Object.dhcpServerSettings = $externalize(new jsDHCPServerSettings.ptr(O(), 0, "", "", false, false, "", null, null, null), ptrType$32);
			$internalize(target.Object.dhcpServerSettings, ptrType$32).fromGo(src.DhcpServerSettings);
		}
	};
	jsEthernetInterfaceSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsEthernetInterfaceSettings.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$19.nil;
		src = this;
		target = new P4wnP1_grpc.EthernetInterfaceSettings.ptr($internalize(src.Object.name, $String), ((($parseInt(src.Object.mode) >> 0) >> 0)), $internalize(src.Object.ipAddress4, $String), $internalize(src.Object.netmask4, $String), !!(src.Object.enabled), ptrType$88.nil, !!(src.Object.settingsInUse));
		if ($internalize(src.Object.dhcpServerSettings, ptrType$32).Object === undefined) {
			console.log("DHCPServerSettings on JS object undefined");
			target.DhcpServerSettings = ptrType$88.nil;
		} else {
			target.DhcpServerSettings = $internalize(src.Object.dhcpServerSettings, ptrType$32).toGo();
		}
		return target;
	};
	jsEthernetInterfaceSettings.prototype.toGo = function() { return this.$val.toGo(); };
	jsEthernetInterfaceSettings.ptr.prototype.CreateDhcpSettingsForInterface = function() {
		var iface, optNoDNS, optNoRouter, settings;
		iface = this;
		settings = new jsDHCPServerSettings.ptr(O(), 0, "", "", false, false, "", null, null, null);
		settings.Object.listenInterface = $externalize($internalize(iface.Object.name, $String), $String);
		settings.Object.listenPort = 0;
		settings.Object.leaseFile = $externalize(common_web.NameLeaseFileDHCPSrv($internalize(iface.Object.name, $String)), $String);
		settings.Object.nonAuthoritative = $externalize(false, $Bool);
		settings.Object.doNotBindInterface = $externalize(false, $Bool);
		settings.Object.callbackScript = $externalize("", $String);
		settings.Object.ranges = new ($global.Array)();
		settings.Object.options = new ($global.Array)();
		settings.Object.staticHosts = new ($global.Array)();
		optNoRouter = new jsDHCPServerOption.ptr(O(), 0, "");
		optNoRouter.Object.option = 3;
		optNoRouter.Object.value = $externalize("", $String);
		settings.AddOption(optNoRouter);
		optNoDNS = new jsDHCPServerOption.ptr(O(), 0, "");
		optNoDNS.Object.option = 6;
		optNoDNS.Object.value = $externalize("", $String);
		settings.AddOption(optNoDNS);
		hvue.Set(iface, new $String("dhcpServerSettings"), settings);
	};
	jsEthernetInterfaceSettings.prototype.CreateDhcpSettingsForInterface = function() { return this.$val.CreateDhcpSettingsForInterface(); };
	jsDHCPServerSettings.ptr.prototype.toGo = function() {
		var _key, i, i$1, i$2, jsOption, jsRange, jsStaticHost, numOptions, numRanges, numStaticHosts, src, target, x, x$1, x$2, x$3, x$4, x$5, x$6;
		target = ptrType$88.nil;
		src = this;
		target = new P4wnP1_grpc.DHCPServerSettings.ptr(0, "", "", false, false, "", sliceType$19.nil, false, sliceType$20.nil);
		target.ListenPort = ((($parseInt(src.Object.listenPort) >> 0) >>> 0));
		target.ListenInterface = $internalize(src.Object.listenInterface, $String);
		target.LeaseFile = $internalize(src.Object.leaseFile, $String);
		target.NotAuthoritative = !!(src.Object.nonAuthoritative);
		target.DoNotBindInterface = !!(src.Object.doNotBindInterface);
		target.CallbackScript = $internalize(src.Object.callbackScript, $String);
		if (!(src.Object.ranges === undefined)) {
			numRanges = $parseInt(src.Object.ranges.length);
			if (numRanges > 0) {
				target.Ranges = $makeSlice(sliceType$19, numRanges);
				i = 0;
				while (true) {
					if (!(i < numRanges)) { break; }
					jsRange = new jsDHCPServerRange.ptr(src.Object.ranges[i], "", "", "");
					(x = target.Ranges, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = new P4wnP1_grpc.DHCPServerRange.ptr("", "", "")));
					(x$1 = target.Ranges, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).RangeUpper = $internalize(jsRange.Object.rangeUpper, $String);
					(x$2 = target.Ranges, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i])).RangeLower = $internalize(jsRange.Object.rangeLower, $String);
					(x$3 = target.Ranges, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])).LeaseTime = $internalize(jsRange.Object.leaseTime, $String);
					i = i + (1) >> 0;
				}
			}
		}
		if (!(src.Object.options === undefined)) {
			numOptions = $parseInt(src.Object.options.length);
			if (numOptions > 0) {
				target.Options = new $global.Map();
				i$1 = 0;
				while (true) {
					if (!(i$1 < numOptions)) { break; }
					jsOption = new jsDHCPServerOption.ptr(src.Object.options[i$1], 0, "");
					_key = ((($parseInt(jsOption.Object.option) >> 0) >>> 0)); (target.Options || $throwRuntimeError("assignment to entry in nil map")).set($Uint32.keyFor(_key), { k: _key, v: $internalize(jsOption.Object.value, $String) });
					i$1 = i$1 + (1) >> 0;
				}
			}
		}
		if (!(src.Object.staticHosts === undefined)) {
			numStaticHosts = $parseInt(src.Object.staticHosts.length);
			if (numStaticHosts > 0) {
				target.StaticHosts = $makeSlice(sliceType$20, numStaticHosts);
				i$2 = 0;
				while (true) {
					if (!(i$2 < numStaticHosts)) { break; }
					jsStaticHost = new jsDHCPServerStaticHost.ptr(src.Object.staticHosts[i$2], "", "");
					(x$4 = target.StaticHosts, ((i$2 < 0 || i$2 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + i$2] = new P4wnP1_grpc.DHCPServerStaticHost.ptr("", "")));
					(x$5 = target.StaticHosts, ((i$2 < 0 || i$2 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i$2])).Mac = $internalize(jsStaticHost.Object.mac, $String);
					(x$6 = target.StaticHosts, ((i$2 < 0 || i$2 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$2])).Ip = $internalize(jsStaticHost.Object.ip, $String);
					i$2 = i$2 + (1) >> 0;
				}
			}
		}
		target = target;
		return target;
	};
	jsDHCPServerSettings.prototype.toGo = function() { return this.$val.toGo(); };
	jsDHCPServerSettings.ptr.prototype.AddRange = function(dhcpRange) {
		var dhcpRange, settings;
		settings = this;
		if (settings.Object.ranges === undefined) {
			settings.Object.ranges = new ($global.Array)();
		}
		settings.Object.ranges.push($externalize(dhcpRange, ptrType$91));
	};
	jsDHCPServerSettings.prototype.AddRange = function(dhcpRange) { return this.$val.AddRange(dhcpRange); };
	jsDHCPServerSettings.ptr.prototype.RemoveRange = function(dhcpRange) {
		var dhcpRange, idx, settings;
		settings = this;
		if (settings.Object.ranges === undefined) {
			return;
		}
		idx = $parseInt(settings.Object.ranges.indexOf($externalize(dhcpRange, ptrType$91))) >> 0;
		if (idx > -1) {
			settings.Object.ranges.splice(idx, 1);
		}
	};
	jsDHCPServerSettings.prototype.RemoveRange = function(dhcpRange) { return this.$val.RemoveRange(dhcpRange); };
	jsDHCPServerSettings.ptr.prototype.AddOption = function(dhcpOption) {
		var dhcpOption, settings;
		settings = this;
		if (settings.Object.options === undefined) {
			settings.Object.options = new ($global.Array)();
		}
		settings.Object.options.push($externalize(dhcpOption, ptrType$92));
	};
	jsDHCPServerSettings.prototype.AddOption = function(dhcpOption) { return this.$val.AddOption(dhcpOption); };
	jsDHCPServerSettings.ptr.prototype.RemoveOption = function(dhcpOption) {
		var dhcpOption, idx, settings;
		settings = this;
		if (settings.Object.options === undefined) {
			return;
		}
		idx = $parseInt(settings.Object.options.indexOf($externalize(dhcpOption, ptrType$92))) >> 0;
		if (idx > -1) {
			settings.Object.options.splice(idx, 1);
		}
	};
	jsDHCPServerSettings.prototype.RemoveOption = function(dhcpOption) { return this.$val.RemoveOption(dhcpOption); };
	jsDHCPServerSettings.ptr.prototype.AddStaticHost = function(dhcpStaticHost) {
		var dhcpStaticHost, settings;
		settings = this;
		if (settings.Object.staticHosts === undefined) {
			settings.Object.staticHosts = new ($global.Array)();
		}
		settings.Object.staticHosts.push($externalize(dhcpStaticHost, ptrType$93));
	};
	jsDHCPServerSettings.prototype.AddStaticHost = function(dhcpStaticHost) { return this.$val.AddStaticHost(dhcpStaticHost); };
	jsDHCPServerSettings.ptr.prototype.RemoveStaticHost = function(dhcpStaticHost) {
		var dhcpStaticHost, idx, settings;
		settings = this;
		if (settings.Object.staticHosts === undefined) {
			return;
		}
		idx = $parseInt(settings.Object.staticHosts.indexOf($externalize(dhcpStaticHost, ptrType$93))) >> 0;
		if (idx > -1) {
			settings.Object.staticHosts.splice(idx, 1);
		}
	};
	jsDHCPServerSettings.prototype.RemoveStaticHost = function(dhcpStaticHost) { return this.$val.RemoveStaticHost(dhcpStaticHost); };
	jsDHCPServerSettings.ptr.prototype.fromGo = function(src) {
		var _entry, _i, _i$1, _i$2, _key, _keys, _ref, _ref$1, _ref$2, _size, dhcpRange, jsOption, jsRange, jsStaticHost, optId, optVal, src, staticHost, target;
		target = this;
		target.Object.listenPort = ((src.ListenPort >> 0));
		target.Object.listenInterface = $externalize(src.ListenInterface, $String);
		target.Object.leaseFile = $externalize(src.LeaseFile, $String);
		target.Object.nonAuthoritative = $externalize(src.NotAuthoritative, $Bool);
		target.Object.doNotBindInterface = $externalize(src.DoNotBindInterface, $Bool);
		target.Object.callbackScript = $externalize(src.CallbackScript, $String);
		target.Object.ranges = new ($global.Array)();
		_ref = src.Ranges;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			dhcpRange = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			jsRange = new jsDHCPServerRange.ptr(O(), "", "", "");
			jsRange.fromGo(dhcpRange);
			target.Object.ranges.push($externalize(jsRange, ptrType$91));
			_i++;
		}
		target.Object.options = new ($global.Array)();
		_ref$1 = src.Options;
		_i$1 = 0;
		_keys = _ref$1 ? _ref$1.keys() : undefined;
		_size = _ref$1 ? _ref$1.size : 0;
		while (true) {
			if (!(_i$1 < _size)) { break; }
			_key = _keys.next().value;
			_entry = _ref$1.get(_key);
			if (_entry === undefined) {
				_i$1++;
				continue;
			}
			optId = _entry.k;
			optVal = _entry.v;
			jsOption = new jsDHCPServerOption.ptr(O(), 0, "");
			jsOption.fromGo(optId, optVal);
			target.Object.options.push($externalize(jsOption, ptrType$92));
			_i$1++;
		}
		target.Object.staticHosts = new ($global.Array)();
		_ref$2 = src.StaticHosts;
		_i$2 = 0;
		while (true) {
			if (!(_i$2 < _ref$2.$length)) { break; }
			staticHost = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]);
			jsStaticHost = new jsDHCPServerStaticHost.ptr(O(), "", "");
			jsStaticHost.fromGo(staticHost);
			target.Object.ranges.push($externalize(jsStaticHost, ptrType$93));
			_i$2++;
		}
	};
	jsDHCPServerSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsDHCPServerRange.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.rangeLower = $externalize(src.RangeLower, $String);
		target.Object.rangeUpper = $externalize(src.RangeUpper, $String);
		target.Object.leaseTime = $externalize(src.LeaseTime, $String);
	};
	jsDHCPServerRange.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsDHCPServerOption.ptr.prototype.fromGo = function(srcID, srcVal) {
		var srcID, srcVal, target;
		target = this;
		target.Object.option = ((srcID >> 0));
		target.Object.value = $externalize(srcVal, $String);
	};
	jsDHCPServerOption.prototype.fromGo = function(srcID, srcVal) { return this.$val.fromGo(srcID, srcVal); };
	jsDHCPServerStaticHost.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.mac = $externalize(src.Mac, $String);
		target.Object.ip = $externalize(src.Ip, $String);
	};
	jsDHCPServerStaticHost.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewEventProcessor = function(maxEntries, jobList) {
		var eventProcesssor, jobList, maxEntries;
		eventProcesssor = new jsEventProcessor.ptr(new ($global.Object)(), null, null, 0, ptrType$27.nil);
		eventProcesssor.Object.logArray = new ($global.Array)();
		eventProcesssor.Object.eventHidArray = new ($global.Array)();
		eventProcesssor.Object.maxEntries = maxEntries;
		eventProcesssor.Object.jobList = $externalize(jobList, ptrType$27);
		return eventProcesssor;
	};
	$pkg.NewEventProcessor = NewEventProcessor;
	jsEventProcessor.ptr.prototype.handleHidEvent = function(hEv) {
		var _1, _entry, data, hEv, x, x$1, x$2, x$3, x$4, x$5;
		data = this;
		console.log("Received HID EVENT", hEv);
		_1 = $internalize(hEv.Object.evtype, $Int64);
		if ((x = new $Int64(0, 0), (_1.$high === x.$high && _1.$low === x.$low))) {
			$internalize(data.Object.jobList, ptrType$27).UpdateEntry($internalize(hEv.Object.jobId, $Int64), $internalize(hEv.Object.vmId, $Int64), !!(hEv.Object.hasError), false, "Script started", "", $internalize(hEv.Object.time, $Int64), $internalize(hEv.Object.message, $String));
		} else if ((x$1 = new $Int64(0, 6), (_1.$high === x$1.$high && _1.$low === x$1.$low))) {
			$internalize(data.Object.jobList, ptrType$27).UpdateEntry($internalize(hEv.Object.jobId, $Int64), $internalize(hEv.Object.vmId, $Int64), !!(hEv.Object.hasError), false, $internalize(hEv.Object.message, $String), $internalize(hEv.Object.error, $String), $internalize(hEv.Object.time, $Int64), "");
			QuasarNotifyError("HIDScript job " + strconv.Itoa((((x$4 = $internalize(hEv.Object.jobId, $Int64), x$4.$low + ((x$4.$high >> 31) * 4294967296)) >> 0))) + " failed", $internalize(hEv.Object.error, $String), "top");
		} else if ((x$2 = new $Int64(0, 4), (_1.$high === x$2.$high && _1.$low === x$2.$low))) {
			$internalize(data.Object.jobList, ptrType$27).UpdateEntry($internalize(hEv.Object.jobId, $Int64), $internalize(hEv.Object.vmId, $Int64), !!(hEv.Object.hasError), true, $internalize(hEv.Object.message, $String), $internalize(hEv.Object.result, $String), $internalize(hEv.Object.time, $Int64), "");
			QuasarNotifySuccess("HIDScript job " + strconv.Itoa((((x$5 = $internalize(hEv.Object.jobId, $Int64), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0))) + " succeeded", $internalize(hEv.Object.result, $String), "top");
		} else if ((x$3 = new $Int64(0, 3), (_1.$high === x$3.$high && _1.$low === x$3.$low))) {
			$internalize(data.Object.jobList, ptrType$27).UpdateEntry($internalize(hEv.Object.jobId, $Int64), $internalize(hEv.Object.vmId, $Int64), true, false, $internalize(hEv.Object.message, $String), $internalize(hEv.Object.message, $String), $internalize(hEv.Object.time, $Int64), "");
		} else {
			console.log("unhandled hid event " + (_entry = $mapIndex(common_web.EventTypeHIDName,$Int64.keyFor($internalize(hEv.Object.evtype, $Int64))), _entry !== undefined ? _entry.v : ""), hEv);
		}
	};
	jsEventProcessor.prototype.handleHidEvent = function(hEv) { return this.$val.handleHidEvent(hEv); };
	jsEventProcessor.ptr.prototype.HandleEvent = function(ev) {
		var data, ev;
		data = this;
		$go((function() {
			var _1, _tuple, _tuple$1, err, err$1, hidEv, jsEv, logEv, x, x$1;
			jsEv = NewJsEventFromNative(ev);
			_1 = $internalize(jsEv.Object.type, $Int64);
			if ((x = new $Int64(0, 1), (_1.$high === x.$high && _1.$low === x.$low))) {
				_tuple = jsEv.toLogEvent();
				logEv = _tuple[0];
				err = _tuple[1];
				if ($interfaceIsEqual(err, $ifaceNil)) {
					data.Object.logArray.push($externalize(logEv, ptrType$84));
				} else {
					console.log("couldn't convert to LogEvent: ", jsEv);
				}
			} else if ((x$1 = new $Int64(0, 3), (_1.$high === x$1.$high && _1.$low === x$1.$low))) {
				_tuple$1 = jsEv.toHidEvent();
				hidEv = _tuple$1[0];
				err$1 = _tuple$1[1];
				if ($interfaceIsEqual(err$1, $ifaceNil)) {
					data.Object.eventHidArray.push($externalize(hidEv, ptrType$85));
					data.handleHidEvent(hidEv);
				} else {
					console.log("couldn't convert to HidEvent: ", jsEv);
				}
			}
			while (true) {
				if (!($parseInt(data.Object.logArray.length) > ($parseInt(data.Object.maxEntries) >> 0))) { break; }
				data.Object.logArray.shift();
			}
			while (true) {
				if (!($parseInt(data.Object.eventHidArray.length) > ($parseInt(data.Object.maxEntries) >> 0))) { break; }
				data.Object.eventHidArray.shift();
			}
		}), []);
	};
	jsEventProcessor.prototype.HandleEvent = function(ev) { return this.$val.HandleEvent(ev); };
	generateSelectOptionsTrigger = function() {
		var _entry, _i, _ref, o, triggerLabel, triggerVal, tts;
		tts = new ($global.Array)();
		_ref = availableTriggers;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			triggerVal = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			triggerLabel = (_entry = $mapIndex(triggerNames,triggerType.keyFor(triggerVal)), _entry !== undefined ? _entry.v : "");
			o = new option.ptr(O(), "", 0);
			o.Object.value = triggerVal;
			o.Object.label = $externalize(triggerLabel, $String);
			tts.push($externalize(o, option));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsAction = function() {
		var _entry, _i, _ref, actionLabel, actionVal, o, tts;
		tts = new ($global.Array)();
		_ref = availableActions;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			actionVal = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			actionLabel = (_entry = $mapIndex(actionNames,actionType.keyFor(actionVal)), _entry !== undefined ? _entry.v : "");
			o = new option$1.ptr(O(), "", 0);
			o.Object.value = actionVal;
			o.Object.label = $externalize(actionLabel, $String);
			tts.push($externalize(o, option$1));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsGroupReceiveMultiType = function() {
		var _entry, _i, _ref, label, o, tts, value;
		tts = new ($global.Array)();
		_ref = availableGroupReceiveMulti;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			label = (_entry = $mapIndex(groupReceiveMultiNames,GroupReceiveMultiType.keyFor(value)), _entry !== undefined ? _entry.v : "");
			o = new option$2.ptr(O(), "", 0);
			o.Object.value = value;
			o.Object.label = $externalize(label, $String);
			tts.push($externalize(o, option$2));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsGPIOOutValue = function() {
		var _entry, _i, _ref, label, o, tts, value;
		tts = new ($global.Array)();
		_ref = availableGPIOOutValues;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			label = (_entry = $mapIndex(gpioOutValueNames,GPIOOutValue.keyFor(value)), _entry !== undefined ? _entry.v : "");
			o = new option$3.ptr(O(), "", 0);
			o.Object.value = value;
			o.Object.label = $externalize(label, $String);
			tts.push($externalize(o, option$3));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsGPIONames = function(vm) {
		var gpioName, gpioNames, i, o, tts, vm;
		tts = new ($global.Array)();
		gpioNames = vm.Object.$store.state.GpioNamesList;
		i = 0;
		while (true) {
			if (!(i < $parseInt(gpioNames.length))) { break; }
			gpioName = $internalize(gpioNames[i], $String);
			o = new option$4.ptr(O(), "", "");
			o.Object.value = $externalize(gpioName, $String);
			o.Object.label = $externalize(gpioName, $String);
			tts.push($externalize(o, option$4));
			i = i + (1) >> 0;
		}
		return tts;
	};
	generateSelectOptionsGPIOInPullUpDown = function() {
		var _entry, _i, _ref, label, o, tts, value;
		tts = new ($global.Array)();
		_ref = availableGPIOInPullUpDowns;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			label = (_entry = $mapIndex(gpioInPullUpDownNames,GPIOInPullUpDown.keyFor(value)), _entry !== undefined ? _entry.v : "");
			o = new option$5.ptr(O(), "", 0);
			o.Object.value = value;
			o.Object.label = $externalize(label, $String);
			tts.push($externalize(o, option$5));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsGPIOInEdges = function() {
		var _entry, _i, _ref, label, o, tts, value;
		tts = new ($global.Array)();
		_ref = availableGPIOInEdges;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			label = (_entry = $mapIndex(gpioInEdgeNames,GPIOInEdge.keyFor(value)), _entry !== undefined ? _entry.v : "");
			o = new option$6.ptr(O(), "", 0);
			o.Object.value = value;
			o.Object.label = $externalize(label, $String);
			tts.push($externalize(o, option$6));
			_i++;
		}
		return tts;
	};
	generateSelectOptionsTemplateTypes = function() {
		var _entry, _i, _ref, label, o, tts, value;
		tts = new ($global.Array)();
		_ref = availableTemplateTypes;
		_i = 0;
		while (true) {
			if (!(_i < _ref.$length)) { break; }
			value = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
			label = (_entry = $mapIndex(templateTypeNames,TemplateType.keyFor(value)), _entry !== undefined ? _entry.v : "");
			o = new option$7.ptr(O(), "", 0);
			o.Object.value = value;
			o.Object.label = $externalize(label, $String);
			tts.push($externalize(o, option$7));
			_i++;
		}
		return tts;
	};
	InitComponentsTriggerActions = function() {
		var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = hvue.Template("\n<q-page padding>\n\t<modal-string-input v-model=\"showStoreTASModal\" title=\"Store selected TriggerActions\" @save=\"storeTAS($event)\"></modal-string-input>\n\t<select-string-from-array :values=\"$store.state.StoredTriggerActionSetsList\" v-model=\"showReplaceTASModal\" title=\"Replace current Trigger Actions with stored set\" @load=\"replaceCurrentTAS($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<select-string-from-array :values=\"$store.state.StoredTriggerActionSetsList\" v-model=\"showAddTASModal\" title=\"Add stored set to current Trigger Actions\" @load=\"addToCurrentTAS($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\n\t<div class=\"row gutter-sm\">\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n\t\t\t\t<q-card-title>\n\t\t\t\t\tTriggerAction Manager\n\t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\t    \t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"primary\" label=\"add one\" @click=\"addTA\" icon=\"add_box\" /></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"secondary\" label=\"store\" @click=\"showStoreTASModal=true\" icon=\"cloud_upload\" /></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" label=\"load & replace\" @click=\"updateStoredTriggerActionSetsList(); showReplaceTASModal=true\" icon=\"cloud_download\" /></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" label=\"load & add\" @click=\"updateStoredTriggerActionSetsList(); showAddTASModal=true\" icon=\"add_to_photos\" /></div>\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\n\n\t\t\t</q-card>\n\t\t</div>\n\n\t\t<div class=\"col-12 col-lg-6\" v-for=\"ta in $store.getters.triggerActions\"> \n\t\t\t<TriggerAction :ref=\"ta.Id\" :key=\"ta.Id\" :ta=\"ta\" :edit=\"false\"></TriggerAction>\n\t\t</div>\n\t</div>\n</q-page>\t\n\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$3.ptr(O(), false, false, false, "");
			data.Object.showReplaceTASModal = $externalize(false, $Bool);
			data.Object.showAddTASModal = $externalize(false, $Bool);
			data.Object.showStoreTASModal = $externalize(false, $Bool);
			data.Object.templateName = $externalize("", $String);
			return data;
		})); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = hvue.Method("editTa", new funcType$33((function(vm, taID) {
			var taID, vm;
			vm.Object.$refs[($parseInt(taID) >> 0)][0].setEditMode($externalize(true, $Bool));
		}))); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$2 = _r$2;
		_r$3 = hvue.Method("addTA", new funcType$34((function(vm) {
			var promise, vm;
			promise = vm.Object.$store.dispatch($externalize("addTriggerAction", $String));
			promise.then($externalize((function(value) {
				var value;
				vm.Object.editTa(value);
			}), funcType$1), $externalize((function(reason) {
				var reason;
				console.log("add TriggerAction failed", reason);
			}), funcType$1));
		}))); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$3 = _r$3;
		_r$4 = hvue.Method("storeTAS", new funcType$33((function(vm, name) {
			var _i, _ref, current_tas, jsTa, name, store_tas, ta, tas_obj, vm;
			tas_obj = vm.Object.$store.state.triggerActionList;
			current_tas = new jsTriggerActionSet.ptr(tas_obj, "", null).toGo();
			store_tas = NewTriggerActionSet();
			store_tas.Object.Name = $externalize($internalize(name, $String), $String);
			_ref = current_tas.TriggerActions;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				ta = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				if (ta.IsActive && !ta.Immutable) {
					jsTa = new jsTriggerAction.ptr(O(), 0, false, false, false, 0, 0, null, null);
					jsTa.fromGo(ta);
					store_tas.UpdateEntry(jsTa);
				}
				_i++;
			}
			vm.Object.$store.dispatch($externalize("storeTriggerActionSet", $String), $externalize(store_tas, ptrType$28));
		}))); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$4 = _r$4;
		_r$5 = hvue.Method("replaceCurrentTAS", new funcType$33((function(vm, storedTASName) {
			var storedTASName, vm;
			vm.Object.$store.dispatch($externalize("deployStoredTriggerActionSetReplace", $String), storedTASName);
		}))); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$5 = _r$5;
		_r$6 = hvue.Method("addToCurrentTAS", new funcType$33((function(vm, storedTASName) {
			var storedTASName, vm;
			vm.Object.$store.dispatch($externalize("deployStoredTriggerActionSetAdd", $String), storedTASName);
		}))); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$6 = _r$6;
		_r$7 = hvue.Method("deleteStored", new funcType$33((function(vm, storedTASName) {
			var storedTASName, vm;
			vm.Object.$store.dispatch($externalize("deleteStoredTriggerActionSet", $String), storedTASName);
		}))); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$7 = _r$7;
		_arg$8 = hvue.Method("updateStoredTriggerActionSetsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredTriggerActionSetsList", $String));
		})));
		_arg$9 = hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateCurrentTriggerActionsFromServer", $String));
			vm.Object.$store.dispatch($externalize("updateGpioNamesList", $String));
			$global.tam = $externalize(vm, ptrType$44);
		}));
		$r = hvue.NewComponent("triggeraction-manager", new sliceType$16([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$10 = hvue.Template("\n<div>\n<!-- {{ ta }} -->\n\t<TriggerActionOverview :ta=\"ta\" :edit=\"Edit\" @edit=\"Edit=$event\"></TriggerActionOverview>\n</div>\n");
		_r$8 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$4.ptr(O(), false);
			data.Object.Edit = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 9; case 9: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$11 = _r$8;
		_arg$12 = hvue.PropObj("ta", sliceType$21.nil);
		_arg$13 = hvue.PropObj("edit", new sliceType$21([hvue.Types(new sliceType$22([2]))]));
		_arg$14 = hvue.Method("setEditMode", new funcType$35((function(vm, enabled) {
			var enabled, vm;
			vm.Object.$data.Edit = $externalize(enabled, $Bool);
		})));
		_arg$15 = hvue.Mounted((function(vm) {
			var vm;
			vm.Set("Edit", new $jsObjectPtr(vm.Object.edit));
		}));
		$r = hvue.NewComponent("TriggerAction", new sliceType$16([_arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$16 = hvue.Template("\n<div>\n<q-modal v-model=\"EditMode\" no-route-dismiss no-esc-dismiss no-backdrop-dismiss>\n\t<TriggerActionEdit :ta=\"ta\">\n\t\t<span slot=\"actions\">\n\t\t\t<q-btn color=\"primary\" @click=\"updateTA(); EditMode=false\" label=\"update\" />\n\t\t\t<q-btn color=\"secondary\" @click=\"cancelUpdateTA(); EditMode=false\" label=\"cancel\" />\n\t\t</span>\n\t</TriggerActionEdit>\n\t\n</q-modal>\n\n<q-card tag=\"label\" :color=\"computedColor\" :text-color=\"ta.IsActive ? '': 'light'\" :disabled=\"ta.Immutable\" :dark=\"ta.Immutable\">\n\t<q-card-title>\n\t\t{{ ta.Immutable ? \"immutable, \" : \"\" }}\n\t\t{{ ta.IsActive ? \"enabled\" : \"disabled\" }}\n\t\tTriggerAction (ID {{ ta.Id }})\n\t\n\t\t<span slot=\"subtitle\">\n\t\t\t<q-icon name=\"input\"></q-icon> \n\t\t\t{{ strTrigger }}\n\t\t\t<br><q-icon name=\"launch\"></q-icon>\n\t\t\t{{ strAction }}{{ta.OneShot ? \" only once\" : \"\" }}\t\n\t\t</span>\n\n\t\t<div slot=\"right\" v-if=\"!ta.Immutable\">\n\t\t\t<q-btn color=\"primary\" icon=\"edit\" @click=\"EditMode=true\" flat></q-btn>\n\t\t\t<q-btn color=\"negative\" icon=\"delete\" @click=\"deleteTA\" flat></q-btn>\n\t\t</div>\n\t</q-card-title>\n</q-card>\n</div>\n");
		_arg$17 = hvue.PropObj("ta", sliceType$21.nil);
		_arg$18 = hvue.PropObj("edit", new sliceType$21([hvue.Types(new sliceType$22([2]))]));
		_arg$19 = (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.edit);
		});
		_arg$20 = (function(vm, newValue) {
			var newValue, vm;
			vm.Emit("edit", new sliceType$13([new $jsObjectPtr(newValue)]));
		});
		_r$9 = hvue.ComputedWithGetSet("EditMode", _arg$19, _arg$20); /* */ $s = 11; case 11: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$21 = _r$9;
		_r$10 = hvue.Computed("computedColor", (function(vm) {
			var ta, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!!(ta.Object.Immutable)) {
				return new $String("dark");
			} else {
				return new $String("");
			}
		})); /* */ $s = 12; case 12: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_arg$22 = _r$10;
		_r$11 = hvue.Computed("strTrigger", (function(vm) {
			var _1, _entry, _entry$1, _entry$2, _i, _ref, idx, strTrigger, t, t$1, t$2, ta, val, vm, x;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			strTrigger = (_entry = $mapIndex(triggerNames,triggerType.keyFor($parseInt(ta.Object.TriggerType) >> 0)), _entry !== undefined ? _entry.v : "");
			if (ta.IsTriggerGroupReceive()) {
				t = new jsTriggerGroupReceive.ptr(ta.Object.TriggerData, "", 0);
				strTrigger = strTrigger + (" (");
				strTrigger = strTrigger + ($internalize(t.Object.GroupName, $String));
				strTrigger = strTrigger + (": " + strconv.Itoa(((($parseInt(t.Object.Value) >> 0) >> 0))));
				strTrigger = strTrigger + (")");
			} else if (ta.IsTriggerGroupReceiveMulti()) {
				t$1 = new jsTriggerGroupReceiveMulti.ptr(ta.Object.TriggerData, "", 0, sliceType$17.nil);
				strTrigger = strTrigger + (" (");
				strTrigger = strTrigger + ($internalize(t$1.Object.GroupName, $String) + ": ");
				_1 = $parseInt(t$1.Object.Type) >> 0;
				if (_1 === (0)) {
					strTrigger = strTrigger + ("sequence of");
				} else if (_1 === (3)) {
					strTrigger = strTrigger + ("exact sequence of");
				} else if (_1 === (2)) {
					strTrigger = strTrigger + ("one of");
				} else if (_1 === (1)) {
					strTrigger = strTrigger + ("all from");
				}
				strTrigger = strTrigger + (" [");
				_ref = $internalize(t$1.Object.Values, sliceType$17);
				_i = 0;
				while (true) {
					if (!(_i < _ref.$length)) { break; }
					idx = _i;
					val = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
					if (!((idx === 0))) {
						strTrigger = strTrigger + (", ");
					}
					strTrigger = strTrigger + (strconv.Itoa(((val >> 0))));
					_i++;
				}
				strTrigger = strTrigger + ("]");
				strTrigger = strTrigger + (")");
			} else if (ta.IsTriggerGPIOIn()) {
				t$2 = new jsTriggerGPIOIn.ptr(ta.Object.TriggerData, "", 0, 0, new $Int64(0, 0));
				strTrigger = strTrigger + (" (");
				strTrigger = strTrigger + ($internalize(t$2.Object.GpioName, $String));
				strTrigger = strTrigger + (": " + (_entry$1 = $mapIndex(gpioInEdgeNames,GPIOInEdge.keyFor($parseInt(t$2.Object.Edge) >> 0)), _entry$1 !== undefined ? _entry$1.v : ""));
				strTrigger = strTrigger + (", resistor: " + (_entry$2 = $mapIndex(gpioInPullUpDownNames,GPIOInPullUpDown.keyFor($parseInt(t$2.Object.PullUpDown) >> 0)), _entry$2 !== undefined ? _entry$2.v : ""));
				strTrigger = strTrigger + (", debounce: " + strconv.Itoa((((x = $internalize(t$2.Object.DebounceMillis, $Int64), x.$low + ((x.$high >> 31) * 4294967296)) >> 0))) + "ms");
				strTrigger = strTrigger + (")");
			}
			return new $String(strTrigger);
		})); /* */ $s = 13; case 13: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
		_arg$23 = _r$11;
		_r$12 = hvue.Computed("strAction", (function(vm) {
			var _entry, _entry$1, _entry$2, a, a$1, a$2, a$3, strAction, ta, tgs, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			strAction = (_entry = $mapIndex(actionNames,actionType.keyFor($parseInt(ta.Object.ActionType) >> 0)), _entry !== undefined ? _entry.v : "");
			if (ta.IsActionGroupSend()) {
				tgs = new jsActionGroupSend.ptr(ta.Object.ActionData, "", 0);
				strAction = strAction + (" (");
				strAction = strAction + ($internalize(tgs.Object.GroupName, $String));
				strAction = strAction + (": " + strconv.Itoa(((($parseInt(tgs.Object.Value) >> 0) >> 0))));
				strAction = strAction + (")");
			} else if (ta.IsActionGPIOOut()) {
				a = new jsActionGPIOOut.ptr(ta.Object.ActionData, "", 0);
				strAction = strAction + (" (");
				strAction = strAction + ($internalize(a.Object.GpioName, $String));
				strAction = strAction + (": " + (_entry$1 = $mapIndex(gpioOutValueNames,GPIOOutValue.keyFor($parseInt(a.Object.Value) >> 0)), _entry$1 !== undefined ? _entry$1.v : ""));
				strAction = strAction + (")");
			} else if (ta.IsActionBashScript()) {
				a$1 = new jsActionStartBashScript.ptr(ta.Object.ActionData, "");
				strAction = strAction + (" ('");
				strAction = strAction + ($internalize(a$1.Object.ScriptName, $String));
				strAction = strAction + ("')");
			} else if (ta.IsActionDeploySettingsTemplate()) {
				a$2 = new jsActionDeploySettingsTemplate.ptr(ta.Object.ActionData, "", 0);
				strAction = strAction + (" (");
				strAction = strAction + ((_entry$2 = $mapIndex(templateTypeNames,TemplateType.keyFor($parseInt(a$2.Object.Type) >> 0)), _entry$2 !== undefined ? _entry$2.v : ""));
				strAction = strAction + (": '" + $internalize(a$2.Object.TemplateName, $String));
				strAction = strAction + ("')");
			} else if (ta.IsActionHidScript()) {
				a$3 = new jsActionStartHIDScript.ptr(ta.Object.ActionData, "");
				strAction = strAction + (" ('");
				strAction = strAction + ($internalize(a$3.Object.ScriptName, $String));
				strAction = strAction + ("')");
			}
			return new $String(strAction);
		})); /* */ $s = 14; case 14: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
		_arg$24 = _r$12;
		_r$13 = hvue.Method("updateTA", new funcType$34((function(vm) {
			var ta_obj, updateTas, vm;
			ta_obj = vm.Object.ta;
			console.log("update ta: ", ta_obj);
			updateTas = NewTriggerActionSet();
			updateTas.UpdateEntry(new jsTriggerAction.ptr(ta_obj, 0, false, false, false, 0, 0, null, null));
			vm.Object.$store.dispatch($externalize("updateTriggerActions", $String), $externalize(updateTas, ptrType$28));
		}))); /* */ $s = 15; case 15: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
		_arg$25 = _r$13;
		_arg$26 = hvue.Method("cancelUpdateTA", new funcType$34((function(vm) {
			var vm;
			console.log("cancel update ta: ", vm.Object.ta);
			vm.Object.$store.dispatch($externalize("updateCurrentTriggerActionsFromServer", $String));
		})));
		_arg$27 = hvue.Method("deleteTA", new funcType$34((function(vm) {
			var delTas, ta_obj, vm;
			ta_obj = vm.Object.ta;
			console.log("delete ta: ", ta_obj);
			delTas = NewTriggerActionSet();
			delTas.UpdateEntry(new jsTriggerAction.ptr(ta_obj, 0, false, false, false, 0, 0, null, null));
			vm.Object.$store.dispatch($externalize("removeTriggerActions", $String), $externalize(delTas, ptrType$28));
		})));
		$r = hvue.NewComponent("TriggerActionOverview", new sliceType$16([_arg$16, _arg$17, _arg$18, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("TriggerActionEdit", new sliceType$16([hvue.Template("\n<q-card class=\"fit\">\n\t<q-card-title>\n\t\tTriggerAction\n\t\t<span slot=\"subtitle\">ID {{ ta.Id }}</span>\n\t\t<!-- <q-btn slot=\"right\" icon=\"more_vert\" flat></q-btn> -->\n\t</q-card-title>\n\t<q-list>\n\t\t\t<q-item tag=\"label\" link>\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle v-model=\"ta.IsActive\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Enabled</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>If not enabled, the triggered action is ignored</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" link :disabled=\"!ta.IsActive\">\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle v-model=\"ta.OneShot\" :disable=\"!ta.IsActive\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>One shot</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The trigger fires every time the respective event occurs. If \"one shot\" is enabled it fires only once.</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t</q-list>\n\n\t<div class=\"row items-stretch\">\n\t\t<div class=\"col-12 col-md-6\"\">\n\t\t\t<trigger :ta=\"ta\"></trigger>\n\t\t</div>\n\t\n\t\t<div class=\"col-12 col-md-6\">\n\t\t\t<action :ta=\"ta\"></action>\n\t\t</div>\n\t</div>\n\n\t<q-card-actions>\n\t\t<slot name=\"actions\"></slot>\n\t</q-card-actions>\n</q-card>\n"), hvue.PropObj("ta", sliceType$21.nil)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$28 = hvue.Props(new sliceType$9(["ta"]));
		_arg$29 = hvue.Template("\n\t\t<q-list class=\"fit\" no-border link :disabled=\"!ta.IsActive\">\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Trigger</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Chose the event which has to occur to start the selected action</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"triggerType\" :options=\"triggertypes\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGroupReceive || isTriggerGroupReceiveMulti\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Group name</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Only values send for this group name are regarded</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"ta.TriggerData.GroupName\" inverted :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGroupReceive\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Value</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The numeric value which has to be received to activate the trigger</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"ta.TriggerData.Value\" type=\"number\" inverted :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGroupReceiveMulti\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Values</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The numeric values which has to be received to activate the trigger</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-chips-input v-model=\"TriggerGroupReceiveMultiValues\" @duplicate=\"TriggerGroupReceiveMultiAddValue($event)\" type=\"number\" decimals=\"0\" inverted :disable=\"!ta.IsActive\"></q-chips-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n<!--\n\t\t\t<q-item tag=\"label\" link :disabled=\"!ta.IsActive\" v-if=\"isTriggerGroupReceiveMulti\">\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle v-model=\"ta.TriggerData.IgnoreOutOfOrder\" :disable=\"!ta.IsActive\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Ignore out-of-order values</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>If enabled the sequence may be interrupted by other values. If disabled they have to arrive in exact order.</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n-->\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGroupReceiveMulti\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Type</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Chose how values should be checked (logical OR, logical AND, sequence or exact sequence</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.TriggerData.Type\" :options=\"groupReceiveMultiSelect\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGPIOIn\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>GPIO Number</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The number of the GPIO to monitor</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.TriggerData.GpioName\" :options=\"gpioname\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGPIOIn\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Pull resistor</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Chose if internal Pull-up/down resistor should be used</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.TriggerData.PullUpDown\" :options=\"pullupdown\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGPIOIn\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Edge</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>What edge (level change) has to occur to fire the trigger</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.TriggerData.Edge\" :options=\"edge\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isTriggerGPIOIn\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Debounce duration</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Successive edge events in this duration are ignored</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"ta.TriggerData.DebounceMillis\" type=\"number\" suffix=\"ms\" inverted :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t</q-list>\n");
		_r$14 = hvue.Computed("triggertypes", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsTrigger());
		})); /* */ $s = 18; case 18: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
		_arg$30 = _r$14;
		_r$15 = hvue.Computed("pullupdown", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGPIOInPullUpDown());
		})); /* */ $s = 19; case 19: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
		_arg$31 = _r$15;
		_r$16 = hvue.Computed("groupReceiveMultiSelect", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGroupReceiveMultiType());
		})); /* */ $s = 20; case 20: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
		_arg$32 = _r$16;
		_r$17 = hvue.Computed("edge", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGPIOInEdges());
		})); /* */ $s = 21; case 21: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
		_arg$33 = _r$17;
		_r$18 = hvue.Computed("gpioname", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGPIONames(vm));
		})); /* */ $s = 22; case 22: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
		_arg$34 = _r$18;
		_arg$35 = (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.ta.TriggerType);
		});
		_arg$36 = (function(vm, newValue) {
			var newValue, tType, ta, vm;
			tType = ((($parseInt(newValue) >> 0) >> 0));
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			ta.ChangeTriggerType(tType);
		});
		_r$19 = hvue.ComputedWithGetSet("triggerType", _arg$35, _arg$36); /* */ $s = 23; case 23: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
		_arg$37 = _r$19;
		_r$20 = hvue.Method("TriggerGroupReceiveMultiAddValue", new funcType$33((function(vm, newVal) {
			var _tuple, errconv, intVal, newVal, strVal, ta, tgrs, vm;
			console.log("Force add", newVal);
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!ta.IsTriggerGroupReceiveMulti()) {
				return;
			}
			tgrs = new jsTriggerGroupReceiveMulti.ptr(ta.Object.TriggerData, "", 0, sliceType$17.nil);
			strVal = $internalize(newVal, $String);
			_tuple = strconv.Atoi(strVal);
			intVal = _tuple[0];
			errconv = _tuple[1];
			if ($interfaceIsEqual(errconv, $ifaceNil)) {
				tgrs.Object.Values = $externalize($append($internalize(tgrs.Object.Values, sliceType$17), ((intVal >> 0))), sliceType$17);
			}
		}))); /* */ $s = 24; case 24: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
		_arg$38 = _r$20;
		_arg$39 = (function(vm) {
			var _i, _ref, idx, intVal, res, ta, tgrs, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!ta.IsTriggerGroupReceiveMulti()) {
				return new sliceType$9([]);
			}
			tgrs = new jsTriggerGroupReceiveMulti.ptr(ta.Object.TriggerData, "", 0, sliceType$17.nil);
			res = $makeSlice(sliceType$9, $internalize(tgrs.Object.Values, sliceType$17).$length);
			_ref = $internalize(tgrs.Object.Values, sliceType$17);
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				idx = _i;
				intVal = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				((idx < 0 || idx >= res.$length) ? ($throwRuntimeError("index out of range"), undefined) : res.$array[res.$offset + idx] = strconv.Itoa(((intVal >> 0))));
				_i++;
			}
			return res;
		});
		_arg$40 = (function(vm, newValue) {
			var _tuple, errconv, idx, intVal, newValue, strVal, ta, tgrs, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!ta.IsTriggerGroupReceiveMulti()) {
				return;
			}
			tgrs = new jsTriggerGroupReceiveMulti.ptr(ta.Object.TriggerData, "", 0, sliceType$17.nil);
			tgrs.Object.Values = $externalize(new sliceType$17([]), sliceType$17);
			idx = 0;
			while (true) {
				if (!(idx < $parseInt(newValue.length))) { break; }
				strVal = $internalize(newValue[idx], $String);
				_tuple = strconv.Atoi(strVal);
				intVal = _tuple[0];
				errconv = _tuple[1];
				if ($interfaceIsEqual(errconv, $ifaceNil)) {
					tgrs.Object.Values = $externalize($append($internalize(tgrs.Object.Values, sliceType$17), ((intVal >> 0))), sliceType$17);
				}
				idx = idx + (1) >> 0;
			}
		});
		_r$21 = hvue.ComputedWithGetSet("TriggerGroupReceiveMultiValues", _arg$39, _arg$40); /* */ $s = 25; case 25: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
		_arg$41 = _r$21;
		_r$22 = hvue.Computed("isTriggerGPIOIn", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsTriggerGPIOIn());
		})); /* */ $s = 26; case 26: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
		_arg$42 = _r$22;
		_arg$43 = hvue.Computed("isTriggerGroupReceive", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsTriggerGroupReceive());
		}));
		_arg$44 = hvue.Computed("isTriggerGroupReceiveMulti", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsTriggerGroupReceiveMulti());
		}));
		$r = hvue.NewComponent("trigger", new sliceType$16([_arg$28, _arg$29, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$37, _arg$38, _arg$41, _arg$42, _arg$43, _arg$44])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("action", new sliceType$16([hvue.Props(new sliceType$9(["ta"])), hvue.Template("\n\t\t<q-list class=\"fit\" no-border link :disabled=\"!ta.IsActive\">\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Action</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Chose the action which should be started when the trigger fired</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"actionType\" :options=\"actiontypes\" color=\"secondary\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionBashScript\">\n<select-string-from-array :values=\"$store.state.StoredBashScriptsList\" v-model=\"ShowSelectBashScriptModal\" title=\"Select BASH script\" @load=\"ta.ActionData.ScriptName=$event\"></select-string-from-array>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Script path</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Path to the BashScript which should be issued</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n<q-input @click=\"updateStoredBashScriptsList();ShowSelectBashScriptModal=true\" v-model=\"ta.ActionData.ScriptName\" color=\"secondary\" inverted readonly :after=\"[{icon: 'more_horiz', handler(){}}]\" :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionHidScript\">\n<select-string-from-array :values=\"$store.state.StoredHIDScriptsList\" v-model=\"ShowSelectHIDScriptModal\" title=\"Select HIDScript\" @load=\"ta.ActionData.ScriptName=$event\"></select-string-from-array>\n\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Script name</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Name of a stored HIDScript</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n<q-input @click=\"updateStoredHIDScriptsList();ShowSelectHIDScriptModal=true\" v-model=\"ta.ActionData.ScriptName\" color=\"secondary\" inverted readonly :after=\"[{icon: 'more_horiz', handler(){}}]\" :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t\t\n\t\t\t\t\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionGPIOOut\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>GPIO Number</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The number of the GPIO to output on</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.ActionData.GpioName\" :options=\"gpioname\" color=\"secondary\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isActionGPIOOut\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Output</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Output low/high on the given GPIO or toggle the output</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.ActionData.Value\" :options=\"gpiooutvalues\" color=\"secondary\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionGroupSend\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Group name</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The name of the group to send to (has to match respective listeners)</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"ta.ActionData.GroupName\" color=\"secondary\" inverted :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\" v-if=\"isActionGroupSend\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Value</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The numeric value which is sent to the group channel</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"ta.ActionData.Value\" color=\"secondary\"  type=\"number\" inverted :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionDeploySettingsTemplate\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Type</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Select the type of the template to load</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"ta.ActionData.Type\" :options=\"templatetypes\" color=\"secondary\" @input=\"ta.ActionData.TemplateName=''\" inverted :disable=\"!ta.IsActive\"></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"label\" v-if=\"isActionDeploySettingsTemplate\">\n<select-string-from-array :values=\"typedTemplateList\" v-model=\"ShowSelectTemplateModal\" title=\"Select template\" @load=\"ta.ActionData.TemplateName=$event\"></select-string-from-array>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Template name</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Name of the stored settings template to load</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n<q-input @click=\"actionTemplateTypeUpdate(); ShowSelectTemplateModal=true\" v-model=\"ta.ActionData.TemplateName\" color=\"secondary\" inverted readonly :after=\"[{icon: 'more_horiz', handler(){}}]\" :disable=\"!ta.IsActive\"></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\t\t</q-list>\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$5.ptr(O(), false, false, false);
			data.Object.ShowSelectHIDScriptModal = $externalize(false, $Bool);
			data.Object.ShowSelectBashScriptModal = $externalize(false, $Bool);
			data.Object.ShowSelectTemplateModal = $externalize(false, $Bool);
			return data;
		})), hvue.Method("updateStoredHIDScriptsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredHIDScriptsList", $String));
		}))), hvue.Method("updateStoredBashScriptsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredBashScriptsList", $String));
		}))), hvue.Computed("typedTemplateList", (function(vm) {
			var _2, aData, ta, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!ta.IsActionDeploySettingsTemplate()) {
				return new sliceType$9([]);
			}
			aData = new jsActionDeploySettingsTemplate.ptr(ta.Object.ActionData, "", 0);
			_2 = $parseInt(aData.Object.Type) >> 0;
			if (_2 === (0)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredMasterTemplateList);
			} else if (_2 === (4)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredBluetoothSettingsList);
			} else if (_2 === (3)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredUSBSettingsList);
			} else if (_2 === (5)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredTriggerActionSetsList);
			} else if (_2 === (2)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredWifiSettingsList);
			} else if (_2 === (1)) {
				return new $jsObjectPtr(vm.Object.$store.state.StoredEthernetInterfaceSettingsList);
			}
			return new sliceType$9([]);
		})), hvue.Method("actionTemplateTypeUpdate", new funcType$36((function(vm) {
			var _3, aData, ta, vm;
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			if (!ta.IsActionDeploySettingsTemplate()) {
				return new sliceType$9([]);
			}
			aData = new jsActionDeploySettingsTemplate.ptr(ta.Object.ActionData, "", 0);
			_3 = $parseInt(aData.Object.Type) >> 0;
			if (_3 === (0)) {
				vm.Object.$store.dispatch($externalize("updateStoredMasterTemplateList", $String));
			} else if (_3 === (4)) {
				vm.Object.$store.dispatch($externalize("setStoredBluetoothSettingsList", $String));
			} else if (_3 === (3)) {
				vm.Object.$store.dispatch($externalize("updateStoredUSBSettingsList", $String));
			} else if (_3 === (5)) {
				vm.Object.$store.dispatch($externalize("updateStoredTriggerActionSetsList", $String));
			} else if (_3 === (2)) {
				vm.Object.$store.dispatch($externalize("updateStoredWifiSettingsList", $String));
			} else if (_3 === (1)) {
				vm.Object.$store.dispatch($externalize("updateStoredEthernetInterfaceSettingsList", $String));
			}
			return new sliceType$9([]);
		}))), hvue.Computed("actiontypes", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsAction());
		})), hvue.Computed("gpiooutvalues", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGPIOOutValue());
		})), hvue.Computed("gpioname", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsGPIONames(vm));
		})), hvue.Computed("templatetypes", (function(vm) {
			var vm;
			return new $jsObjectPtr(generateSelectOptionsTemplateTypes());
		})), hvue.ComputedWithGetSet("actionType", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.ta.ActionType);
		}), (function(vm, newValue) {
			var aType, newValue, ta, vm;
			aType = ((($parseInt(newValue) >> 0) >> 0));
			ta = new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null);
			ta.ChangeActionType(aType);
		})), hvue.Computed("isActionLog", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionLog());
		})), hvue.Computed("isActionHidScript", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionHidScript());
		})), hvue.Computed("isActionDeploySettingsTemplate", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionDeploySettingsTemplate());
		})), hvue.Computed("isActionBashScript", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionBashScript());
		})), hvue.Computed("isActionGPIOOut", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionGPIOOut());
		})), hvue.Computed("isActionGroupSend", (function(vm) {
			var vm;
			return new $Bool((new jsTriggerAction.ptr(vm.Object.ta, 0, false, false, false, 0, 0, null, null)).IsActionGroupSend());
		}))])); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsTriggerActions, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$33, _arg$34, _arg$35, _arg$36, _arg$37, _arg$38, _arg$39, _arg$4, _arg$40, _arg$41, _arg$42, _arg$43, _arg$44, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f;
	};
	$pkg.InitComponentsTriggerActions = InitComponentsTriggerActions;
	newPagination = function(rowsPerPage, startPage) {
		var res, rowsPerPage, startPage;
		res = ptrType$94.nil;
		res = new jsDataTablePagination.ptr(O(), 0, false, 0);
		res.Object.rowsPerPage = rowsPerPage;
		res.Object.page = startPage;
		res.Object.descending = $externalize(false, $Bool);
		return res;
	};
	InitComponentsNetwork = function() {
		var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = hvue.Template("\n<q-page padding>\n\t<select-string-from-array :values=\"$store.state.StoredEthernetInterfaceSettingsList\" v-model=\"showLoadModal\" title=\"Load ethernet interface settings\" @load=\"load($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<select-string-from-array :values=\"$store.state.StoredEthernetInterfaceSettingsList\" v-model=\"showDeployStoredModal\" title=\"Deploy stored ethernet interface settings\" @load=\"deployStored($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<modal-string-input v-model=\"showStoreModal\" title=\"Store current ethernet interface Settings\" @save=\"store($event)\"></modal-string-input>\n\n\t<div class=\"row gutter-sm\">\n\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n\t\t\t\t<q-card-title>\n\t\t\t\t\tNetwork Interface Settings\n\t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"primary\" @click=\"deploy(current)\" label=\"deploy\" icon=\"launch\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"primary\" @click=\"updateStoredSettingsList(); showDeployStoredModal=true\" label=\"deploy stored\" icon=\"settings_backup_restore\"></q-btn></div>\n<!--\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"secondary\" @click=\"UpdateFromDeployedGadgetSettings\" label=\"reset\" icon=\"autorenew\"></q-btn></div>\n-->\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"secondary\" @click=\"showStoreModal=true\" label=\"store\" icon=\"cloud_upload\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" @click=\"updateStoredSettingsList(); showLoadModal=true\" label=\"load stored\" icon=\"cloud_download\"></q-btn></div>\n\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\n\n\t\t\t</q-card>\n\t\t</div>\n\n\n\t\t<div class=\"col-12 col-xl-3\">\n\t\t<q-card class=\"full-height\">\n\t\t\t<q-card-title>\n\t\t    \tGeneric\n\t\t\t</q-card-title>\n\n\t\t\t<q-list link>\n\t\t\t\t<q-item-separator />\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Interface</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Select which interface to configure</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-select v-model=\"currentIdx\" :options=\"selectOptionsInterface\" color=\"secondary\" inverted></q-select>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\n\t\t\t<network-interface-settings v-if=\"current\" :interface=\"current\"></network-interface-settings>\n\t\t</q-card>\n\t\t</div>\n\n\t\t<div class=\"col-12 col-xl-9\" v-if=\"currentWithDhcp\">\n\t\t\t<dhcp-config :interface=\"current\"></dhcp-config>\n\t\t</div>\n\t</div>\n</q-page>\n\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$6.ptr(O(), 0, false, false, false);
			data.Object.currentIdx = 0;
			data.Object.showStoreModal = $externalize(false, $Bool);
			data.Object.showLoadModal = $externalize(false, $Bool);
			data.Object.showDeployStoredModal = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = hvue.Computed("interfaces", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.InterfaceSettings.interfaces);
		})); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$2 = _r$2;
		_r$3 = hvue.Computed("selectOptionsInterface", (function(vm) {
			var currentIf, i, interfaces, option$8, selectIf, vm;
			selectIf = new ($global.Array)();
			interfaces = vm.Object.$store.state.InterfaceSettings.interfaces;
			i = 0;
			while (true) {
				if (!(i < $parseInt(interfaces.length))) { break; }
				option$8 = new structType$7.ptr(O(), "", 0);
				currentIf = new jsEthernetInterfaceSettings.ptr(interfaces[i], "", 0, "", "", false, ptrType$32.nil, false);
				option$8.Object.label = $externalize($internalize(currentIf.Object.name, $String), $String);
				option$8.Object.value = i;
				selectIf.push($externalize(option$8, structType$7));
				i = i + (1) >> 0;
			}
			return new $jsObjectPtr(selectIf);
		})); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$3 = _r$3;
		_r$4 = hvue.Computed("current", (function(vm) {
			var currentIface, idx, interfaces, vm;
			interfaces = vm.Object.$store.state.InterfaceSettings.interfaces;
			idx = $parseInt(vm.Object.currentIdx) >> 0;
			currentIface = interfaces[idx];
			if (currentIface === undefined) {
				return new jsEthernetInterfaceSettings.ptr(O(), "", 0, "", "", false, ptrType$32.nil, false);
			}
			return new $jsObjectPtr(currentIface);
		})); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$4 = _r$4;
		_r$5 = hvue.Computed("currentWithDhcp", (function(vm) {
			var _entry, mode, vm;
			mode = $parseInt(vm.Object.current.mode) >> 0;
			if (mode === (_entry = $mapIndex(P4wnP1_grpc.EthernetInterfaceSettings_Mode_value,$String.keyFor("DHCP_SERVER")), _entry !== undefined ? _entry.v : 0)) {
				return new $Bool(true);
			} else {
				return new $Bool(false);
			}
		})); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$5 = _r$5;
		_r$6 = hvue.Method("deploy", new funcType$37((function(vm, ifaceSettings) {
			var ifaceSettings, vm;
			vm.Object.$store.dispatch($externalize("deployEthernetInterfaceSettings", $String), $externalize(ifaceSettings, ptrType$31));
		}))); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$6 = _r$6;
		_r$7 = hvue.Method("updateStoredSettingsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredEthernetInterfaceSettingsList", $String));
		}))); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$7 = _r$7;
		_r$8 = hvue.Method("store", new funcType$33((function(vm, name) {
			var name, sReq, vm;
			sReq = NewEthernetRequestSettingsStorage();
			sReq.Object.TemplateName = $externalize($internalize(name, $String), $String);
			sReq.Object.Settings = $externalize(new jsEthernetInterfaceSettings.ptr(vm.Object.current, "", 0, "", "", false, ptrType$32.nil, false), ptrType$31);
			console.log("Storing :", sReq);
			vm.Object.$store.dispatch($externalize("storeEthernetInterfaceSettings", $String), $externalize(sReq, ptrType$43));
			vm.Set("showStoreModal", new $Bool(false));
		}))); /* */ $s = 8; case 8: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$8 = _r$8;
		_r$9 = hvue.Method("load", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("loadEthernetInterfaceSettings", $String), name);
		}))); /* */ $s = 9; case 9: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$9 = _r$9;
		_r$10 = hvue.Method("deployStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deployStoredEthernetInterfaceSettings", $String), name);
		}))); /* */ $s = 10; case 10: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
		_arg$10 = _r$10;
		_arg$11 = hvue.Method("deleteStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Deleting template :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deleteStoredEthernetInterfaceSettings", $String), name);
		})));
		_arg$12 = hvue.Mounted((function(vm) {
			var promise, vm;
			console.log("ethernet settings component mounted");
			promise = vm.Object.$store.dispatch($externalize("updateAllEthernetInterfaceSettings", $String));
			promise.then($externalize((function() {
				console.log("ethernet interface settings reloaded");
				hvue.Set(vm, new $String("currentIdx"), new $Int(0));
			}), funcType$38), $externalize((function() {
				console.log("error in THEN ");
			}), funcType$38));
		}));
		$r = hvue.NewComponent("network", new sliceType$16([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _arg$10, _arg$11, _arg$12])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$13 = hvue.Template("\n\t<q-list link>\n\t\t<q-item-separator />\n\t\t<q-list-header>Generic settings for {{interface.name}}</q-list-header>\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"interface.enabled\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Enabled</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Enable/Disable interface</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Mode</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Enable DHCP server, client or manual configuration</q-item-tile>\n\t\t\t\t<q-item-tile>\n\t\t\t\t\t<q-select v-model=\"interface.mode\" :options=\"selectOptionsInterfaceModes\" inverted></q-select>\n\t\t\t\t</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\" v-show=\"withIP\">\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>IP</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>IPv4 address of interface in dotted decimal (f.e. 172.16.0.1)</q-item-tile>\n\t\t\t\t<q-item-tile>\n\t\t\t\t\t<q-input v-model=\"interface.ipAddress4\" inverted></q-input>\n\t\t\t\t</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\" v-show=\"withIP\">\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Netmask</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Netmask of interface in dotted decimal (f.e. 255.255.255.0)</q-item-tile>\n\t\t\t\t<q-item-tile>\n\t\t\t\t\t<q-input v-model=\"interface.netmask4\" inverted></q-input>\n\t\t\t\t</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t</q-list link>\n\n");
		_arg$14 = hvue.Props(new sliceType$9(["interface"]));
		_r$11 = hvue.Computed("selectOptionsInterfaceModes", (function(vm) {
			var _entry, _i, _key, _keys, _ref, _size, mode, modes, name, val, vm;
			modes = new ($global.Array)();
			_ref = P4wnP1_grpc.EthernetInterfaceSettings_Mode_name;
			_i = 0;
			_keys = _ref ? _ref.keys() : undefined;
			_size = _ref ? _ref.size : 0;
			while (true) {
				if (!(_i < _size)) { break; }
				_key = _keys.next().value;
				_entry = _ref.get(_key);
				if (_entry === undefined) {
					_i++;
					continue;
				}
				val = _entry.k;
				name = _entry.v;
				mode = new structType$8.ptr(O(), 0, "");
				mode.Object.value = val;
				mode.Object.label = $externalize(name, $String);
				modes.push($externalize(mode, structType$8));
				_i++;
			}
			return new $jsObjectPtr(modes);
		})); /* */ $s = 12; case 12: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
		_arg$15 = _r$11;
		_r$12 = hvue.Computed("withIP", (function(vm) {
			var _entry, _entry$1, mode, vm;
			mode = $parseInt(vm.Object.interface.mode) >> 0;
			if ((mode === (_entry = $mapIndex(P4wnP1_grpc.EthernetInterfaceSettings_Mode_value,$String.keyFor("MANUAL")), _entry !== undefined ? _entry.v : 0)) || (mode === (_entry$1 = $mapIndex(P4wnP1_grpc.EthernetInterfaceSettings_Mode_value,$String.keyFor("DHCP_SERVER")), _entry$1 !== undefined ? _entry$1.v : 0))) {
				return new $Bool(true);
			} else {
				return new $Bool(false);
			}
		})); /* */ $s = 13; case 13: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
		_arg$16 = _r$12;
		_arg$17 = hvue.Computed("withDhcp", (function(vm) {
			var _entry, mode, vm;
			mode = $parseInt(vm.Object.interface.mode) >> 0;
			if (mode === (_entry = $mapIndex(P4wnP1_grpc.EthernetInterfaceSettings_Mode_value,$String.keyFor("DHCP_SERVER")), _entry !== undefined ? _entry.v : 0)) {
				return new $Bool(true);
			} else {
				return new $Bool(false);
			}
		}));
		_arg$18 = hvue.Method("deploy", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("deployEthernetInterfaceSettings", $String), vm.Object.interface);
		})));
		$r = hvue.NewComponent("network-interface-settings", new sliceType$16([_arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$19 = hvue.Props(new sliceType$9(["interface"]));
		_arg$20 = hvue.Template("\n<q-card>\n\t<q-card-title>\n    \tDHCP Server settings for {{ interface.name }}\n\t</q-card-title>\n\n\n\t<q-list>\n\t\t<q-item-separator />\n\t\t<q-item tag=\"label\" link>\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"authoritative\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Authoritative</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>If disabled, the DHCP Server isn't authoritative</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\t\t<q-item tag=\"label\" disabled link>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Path to lease file</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>{{ config.leaseFile }}</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-list-header>DHCP ranges</q-list-header>\n\t\t<dhcp-ranges :config=\"config\"></dhcp-ranges>\n\n\t\t<q-list-header>DHCP options</q-list-header>\n\t\t<dhcp-options :config=\"config\"></dhcp-options>\n\n\t\t<q-list-header>DHCP static hosts</q-list-header>\n\t\t<dhcp-static-hosts :config=\"config\"></dhcp-static-hosts>\n\t</q-list>\n</q-card>\n");
		_r$13 = hvue.Computed("config", (function(vm) {
			var iface, vm;
			if (vm.Object.interface.dhcpServerSettings === undefined) {
				iface = new jsEthernetInterfaceSettings.ptr(vm.Object.interface, "", 0, "", "", false, ptrType$32.nil, false);
				iface.CreateDhcpSettingsForInterface();
			}
			return new $jsObjectPtr(vm.Object.interface.dhcpServerSettings);
		})); /* */ $s = 15; case 15: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
		_arg$21 = _r$13;
		_arg$22 = hvue.ComputedWithGetSet("authoritative", (function(vm) {
			var vm;
			return new $Bool(!!!(vm.Object.config.nonAuthoritative));
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.config.nonAuthoritative = $externalize(!!!(newValue), $Bool);
		}));
		$r = hvue.NewComponent("dhcp-config", new sliceType$16([_arg$19, _arg$20, _arg$21, _arg$22])); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$23 = hvue.Template("\n<q-item :link=\"false\">\n\t<q-item-main>\n\t\t<q-item-tile>\n\t\t\t<q-table\n\t\t\t\t:data=\"config.ranges\"\n\t\t\t\t:columns=\"[{name:'lower', field: 'rangeLower', label: 'Lower IP', align: 'left'}, {name:'upper', field: 'rangeUpper', label: 'Upper IP', align: 'left'}, {name:'lease', field: 'leaseTime', label: 'Lease Time', align: 'left'}, {name:'remove', label: 'Delete range', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\tv-if=\"$q.platform.is.desktop\"\n\t\t\t>\n\t\t\t\t<q-tr slot=\"header\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-th :key=\"props.cols[0].name\" :props=\"props\"> {{ props.cols[0].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[1].name\" :props=\"props\"> {{ props.cols[1].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[2].name\" :props=\"props\"> {{ props.cols[2].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[3].name\" :props=\"props\">\n\t\t\t\t\t<q-btn @click=\"addRange()\">add</q-btn>\n\t\t\t\t\t</q-th>\n\t\t\t\t</q-tr>\n\t\t\t\t\n\t\t\t\t<q-tr slot=\"body\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-td key=\"lower\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.rangeLower\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"upper\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.rangeUpper\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"lease\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.leaseTime\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"remove\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"removeRange(props.row)\">del</q-btn>\n\t\t\t\t\t</q-td>\t\n\t\t\t\t</q-tr>\n\t\t\t</q-table>\n\n<!--\n\t\t\t<q-table\n\t\t\t\t:data=\"config.ranges\"\n\t\t\t\t:columns=\"[{name:'lower', field: 'rangeLower', label: 'Lower IP', align: 'left'}, {name:'upper', field: 'rangeUpper', label: 'Upper IP', align: 'left'}, {name:'lease', field: 'leaseTime', label: 'Lease Time', align: 'left'}, {name:'remove', label: 'Delete range', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\t\n\t\t\t>\n\n\t\t\t\t<q-tr slot=\"header\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-th :key=\"props.cols[0].name\" :props=\"props\"> {{ props.cols[0].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[1].name\" :props=\"props\"> {{ props.cols[1].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[2].name\" :props=\"props\"> {{ props.cols[2].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[3].name\" :props=\"props\">\n\t\t\t\t\t<q-btn @click=\"addRange()\">add</q-btn>\n\t\t\t\t\t</q-th>\n\t\t\t\t</q-tr>\n\t\t\t\t\n\t\t\t\t<q-tr slot=\"body\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-td key=\"lower\" :props=\"props\">\n\t\t\t\t\t\t{{ props.row.rangeLower }}\n\t\t\t\t\t\t<q-popup-edit v-model=\"props.row.rangeLower\" title=\"Set lower IP\" persistent buttons>\n\t\t\t\t\t\t\t<q-input v-model=\"props.row.rangeLower\" inverted></q-input>\n\t\t\t\t\t\t</q-popup-edit>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"upper\" :props=\"props\">\n\t\t\t\t\t\t{{ props.row.rangeUpper }}\n\t\t\t\t\t\t<q-popup-edit v-model=\"props.row.rangeUpper\" title=\"Set upper IP\">\n\t\t\t\t\t\t\t<q-input v-model=\"props.row.rangeUpper\" inverted></q-input>\n\t\t\t\t\t\t</q-popup-edit>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"lease\" :props=\"props\">\n\t\t\t\t\t\t{{ props.row.leaseTime }}\n\t\t\t\t\t\t<q-popup-edit v-model=\"props.row.leaseTime\" title=\"Set lease time\">\n\t\t\t\t\t\t\t<q-input v-model=\"props.row.leaseTime\" inverted></q-input>\n\t\t\t\t\t\t</q-popup-edit>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"remove\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"removeRange(props.row)\">del</q-btn>\n\t\t\t\t\t</q-td>\t\n\t\t\t\t</q-tr>\n\t\t\t</q-table>\n-->\n\n\t\t\t<q-card v-else>\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<q-table\n\t\t\t\t\t\t:data=\"config.ranges\"\n\t\t\t\t\t\t:columns=\"[{name:'lower', field: 'rangeLower', label: 'Lower IP', align: 'left'}, {name:'upper', field: 'rangeUpper', label: 'Upper IP', align: 'left'}, {name:'lease', field: 'leaseTime', label: 'Lease Time', align: 'left'}, {name:'remove', label: 'Delete range', align: 'left'}]\"\n\t\t\t\t\t\trow-key=\"name\"\n\t\t\t\t\t\thide-header\n\t\t\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\t\t\tgrid\n\t\t\t\t\t>\n\t\t\t\t\t\t<template slot=\"top-right\" slot-scope=\"props\" class=\"q-mr-sm\">\n\t\t\t\t\t\t\t<q-btn @click=\"addRange()\" color=\"primary\">add range</q-btn>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot=\"item\"\n\t\t\t\t\t\t\tslot-scope=\"props\"\n\t\t\t\t\t\t\tclass=\"col-lg-6\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<q-card-separator />\n\t\t\t\t\t\t\t<q-list link no-border>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"remove\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-btn @click=\"removeRange(props.row)\" color=\"secondary\">delete range {{ props.row.__index + 1 }}</q-btn>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.lower.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.lower.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.rangeLower\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.upper.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.upper.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.rangeUpper\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.lease.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.lease.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.leaseTime\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t</q-list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-table>\n\t\t\t\t</q-card-main>\n\t\t\t</q-card>\n\n\t\t</q-item-tile>\n\t</q-item-main>\n</q-item>\n");
		_arg$24 = hvue.Props(new sliceType$9(["config"]));
		_r$14 = hvue.Method("addRange", new funcType$34((function(vm) {
			var r, s, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			r = new jsDHCPServerRange.ptr(O(), "", "", "");
			r.Object.rangeLower = $externalize("", $String);
			r.Object.rangeUpper = $externalize("", $String);
			r.Object.leaseTime = $externalize("1m", $String);
			s.AddRange(r);
		}))); /* */ $s = 17; case 17: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
		_arg$25 = _r$14;
		_arg$26 = hvue.Method("removeRange", new funcType$39((function(vm, delRange) {
			var delRange, s, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			s.RemoveRange(delRange);
		})));
		_arg$27 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$9.ptr(O(), ptrType$94.nil);
			data.Object.pagination = $externalize(newPagination(3, 1), ptrType$94);
			return data;
		}));
		$r = hvue.NewComponent("dhcp-ranges", new sliceType$16([_arg$23, _arg$24, _arg$25, _arg$26, _arg$27])); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$28 = hvue.Props(new sliceType$9(["config"]));
		_arg$29 = hvue.Template("\n<q-item :link=\"false\">\n\t<q-item-main>\n\t\t<q-item-tile>\n\t\t\t<q-table\n\t\t\t\t:data=\"config.options\"\n\t\t\t\t:columns=\"[{name:'optnumber', field: 'number', label: 'Option number (RFC 2132)', align: 'left'}, {name:'optvalue', field: 'value', label: 'Option string', align: 'left'}, {name:'remove', label: 'Delete option', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\tv-if=\"$q.platform.is.desktop\"\n\t\t\t>\n\t\t\t\t<q-tr slot=\"header\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-th :key=\"props.cols[0].name\" :props=\"props\"> {{ props.cols[0].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[1].name\" :props=\"props\"> {{ props.cols[1].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[2].name\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"addOption()\">add</q-btn>\n\t\t\t\t\t</q-th>\n\t\t\t\t</q-tr>\n\t\t\t\t\n\t\t\t\t<q-tr slot=\"body\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-td key=\"optnumber\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.option\" type=\"number\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"optvalue\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.value\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"remove\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"removeOption(props.row)\">del</q-btn>\n\t\t\t\t\t</q-td>\t\n\t\t\t\t</q-tr>\n\t\t\t</q-table>\n\n\t\t\t<q-card v-else>\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<q-table\n\t\t\t\t\t\t:data=\"config.options\"\n\t\t\t\t\t\t:columns=\"[{name:'optnumber', field: 'number', label: 'Option number (RFC 2132)', align: 'left'}, {name:'optvalue', field: 'value', label: 'Option string', align: 'left'}, {name:'remove', label: 'Delete option', align: 'left'}]\"\n\t\t\t\t\t\trow-key=\"name\"\n\t\t\t\t\t\thide-header\n\t\t\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\t\t\tgrid\n\t\t\t\t\t>\n\t\t\t\t\t\t<template slot=\"top-right\" slot-scope=\"props\" class=\"q-mr-sm\">\n\t\t\t\t\t\t\t<q-btn @click=\"addOption()\" color=\"primary\">add option</q-btn>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot=\"item\"\n\t\t\t\t\t\t\tslot-scope=\"props\"\n\t\t\t\t\t\t\tclass=\"col-lg-6\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<q-card-separator />\n\t\t\t\t\t\t\t<q-list link no-border>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"remove\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-btn @click=\"removeOption(props.row)\" color=\"secondary\">delete option {{ props.row.__index + 1 }}</q-btn>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.optnumber.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.optnumber.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.option\" type=\"number\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.optvalue.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.optvalue.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.value\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t</q-list>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-table>\n\t\t\t\t</q-card-main>\n\t\t\t</q-card>\n\n\t\t</q-item-tile>\n\t</q-item-main>\n</q-item>\n");
		_r$15 = hvue.Method("addOption", new funcType$34((function(vm) {
			var o, s, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			o = new jsDHCPServerOption.ptr(O(), 0, "");
			o.Object.option = 3;
			o.Object.value = $externalize("", $String);
			s.AddOption(o);
		}))); /* */ $s = 19; case 19: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
		_arg$30 = _r$15;
		_arg$31 = hvue.Method("removeOption", new funcType$40((function(vm, delOption) {
			var delOption, s, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			s.RemoveOption(delOption);
		})));
		_arg$32 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$9.ptr(O(), ptrType$94.nil);
			data.Object.pagination = $externalize(newPagination(3, 1), ptrType$94);
			return data;
		}));
		$r = hvue.NewComponent("dhcp-options", new sliceType$16([_arg$28, _arg$29, _arg$30, _arg$31, _arg$32])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("dhcp-static-hosts", new sliceType$16([hvue.Props(new sliceType$9(["config"])), hvue.Template("\n<q-item :link=\"false\">\n\t<q-item-main>\n\t\t<q-item-tile>\n\t\t\t<q-table\n\t\t\t\t:data=\"config.staticHosts\"\n\t\t\t\t:columns=\"[{name:'hostmac', field: 'mac', label: 'Host MAC', align: 'left'}, {name:'hostip', field: 'ip', label: 'Host IP', align: 'left'}, {name:'remove', label: 'Delete static host', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\tv-if=\"$q.platform.is.desktop\"\n\t\t\t>\n\t\t\t\t<q-tr slot=\"header\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-th :key=\"props.cols[0].name\" :props=\"props\"> {{ props.cols[0].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[1].name\" :props=\"props\"> {{ props.cols[1].label }} </q-th>\n\t\t\t\t\t<q-th :key=\"props.cols[2].name\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"addStaticHost()\">add</q-btn>\n\t\t\t\t\t</q-th>\n\t\t\t\t</q-tr>\n\t\t\t\t\n\t\t\t\t<q-tr slot=\"body\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t<q-td key=\"hostmac\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.mac\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"hostip\" :props=\"props\">\n\t\t\t\t\t\t<q-input v-model=\"props.row.ip\" inverted></q-input>\n\t\t\t\t\t</q-td>\n\t\t\t\t\t<q-td key=\"remove\" :props=\"props\">\n\t\t\t\t\t\t<q-btn @click=\"removeStaticHost(props.row)\">del</q-btn>\n\t\t\t\t\t</q-td>\t\n\t\t\t\t</q-tr>\n\t\t\t</q-table>\n\n\t\t\t<q-card v-else>\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<q-table\n\t\t\t\t\t\t:data=\"config.staticHosts\"\n\t\t\t\t\t\t:columns=\"[{name:'hostmac', field: 'mac', label: 'Host MAC', align: 'left'}, {name:'hostip', field: 'ip', label: 'Host IP', align: 'left'}, {name:'remove', label: 'Delete static host', align: 'left'}]\"\n\t\t\t\t\t\trow-key=\"name\"\n\t\t\t\t\t\thide-header\n\t\t\t\t\t\t:pagination.sync=\"pagination\"\n\t\t\t\t\t\tgrid\n\t\t\t\t\t>\n\t\t\t\t\t\t<template slot=\"top-right\" slot-scope=\"props\" class=\"q-mr-sm\">\n\t\t\t\t\t\t\t<q-btn @click=\"addStaticHost()\" color=\"primary\">add static host</q-btn>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tslot=\"item\"\n\t\t\t\t\t\t\tslot-scope=\"props\"\n\t\t\t\t\t\t\tclass=\"col-lg-6\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<q-card-separator />\n\t\t\t\t\t\t\t<q-list link no-border>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"remove\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-btn @click=\"removeStaticHost(props.row)\" color=\"secondary\">delete</q-btn>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.hostmac.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.hostmac.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.mac\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t\t<q-item tag=\"label\" :key=\"props.colsMap.hostip.name\">\n\t\t\t\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile label>\n\t\t\t\t\t\t\t\t\t\t\t{{ props.colsMap.hostip.label }}\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t\t\t\t<q-input v-model=\"props.row.ip\" inverted></q-input>\n\t\t\t\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t\t\t\t</q-item>\n\t\t\t\t\t\t\t</q-list>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-table>\n\t\t\t\t</q-card-main>\n\t\t\t</q-card>\n\n\t\t</q-item-tile>\n\t</q-item-main>\n</q-item>\n"), hvue.Method("addStaticHost", new funcType$34((function(vm) {
			var s, sh, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			sh = new jsDHCPServerStaticHost.ptr(O(), "", "");
			sh.Object.ip = $externalize("", $String);
			sh.Object.mac = $externalize("", $String);
			s.AddStaticHost(sh);
		}))), hvue.Method("removeStaticHost", new funcType$41((function(vm, delStaticHost) {
			var delStaticHost, s, vm;
			s = new jsDHCPServerSettings.ptr(vm.Object.config, 0, "", "", false, false, "", null, null, null);
			s.RemoveStaticHost(delStaticHost);
		}))), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$9.ptr(O(), ptrType$94.nil);
			data.Object.pagination = $externalize(newPagination(3, 1), ptrType$94);
			return data;
		}))])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsNetwork, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$18, _arg$19, _arg$2, _arg$20, _arg$21, _arg$22, _arg$23, _arg$24, _arg$25, _arg$26, _arg$27, _arg$28, _arg$29, _arg$3, _arg$30, _arg$31, _arg$32, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f;
	};
	$pkg.InitComponentsNetwork = InitComponentsNetwork;
	InitComponentsGeneric = function() {
		var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("generic", new sliceType$16([hvue.Template("\n<q-page padding>\n\t<div class=\"row gutter-sm\">\n\t\t<div class=\"col-12 col-xl\">\n\t\t\t<master-template v-model=\"$store.state.CurrentMasterTemplate\" />\n\t\t</div>\n\n\t\t<div class=\"col-12 col-xl\">\n\t\t<div class=\"row gutter-sm\">\n\t\t\t<div class=\"col-12 col-xl-6\">\n\t\t\t\t<system />\n\t\t\t</div>\n\n\t\t\t<div class=\"col-12 col-xl-6\">\n\t\t\t\t<database />\n\t\t\t</div>\n\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<startup-settings />\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n\t</div>\n</q-page>\n")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("startup-settings", new sliceType$16([hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tStartup Settings\n\t</q-card-title>\n\n\t<q-card-main>\n\t\t<div class=\"row gutter-sm\">\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"$store.state.StoredMasterTemplateList\" v-model=\"ShowTemplateSelect\" title=\"Select Master Template used on startup\" @load=\"selectMasterTemplate($event)\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"whatshot\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Startup Master Template</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>The template which is loaded on service start</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"$store.state.CurrentStartupMasterTemplateName\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelect=true\" flat /></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t</div>\n\t</q-card-main>\n</q-card>\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$10.ptr(O(), false);
			data.Object.ShowTemplateSelect = $externalize(false, $Bool);
			return data;
		})), hvue.Method("selectMasterTemplate", new funcType$33((function(vm, name) {
			var name, promise, vm;
			promise = vm.Object.$store.dispatch($externalize("setStartupMasterTemplateName", $String), name);
			promise.then($externalize((function(val) {
				var val;
				vm.Object.$store.dispatch($externalize("getStartupMasterTemplateName", $String));
			}), funcType$42));
		})))])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("system", new sliceType$16([hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tSystem\n\t</q-card-title>\n\n\t<q-card-main>\n\t\t<div class=\"row gutter-sm\">\n\t\t\t<div class=\"col\"> <q-btn class=\"fit\" color=\"warning\" label=\"reboot\" icon=\"refresh\" @click=\"reboot\" /> </div>\n\t\t\t<div class=\"col\"> <q-btn class=\"fit\" color=\"negative\" label=\"shutdown\" icon=\"power_settings_new\" @click=\"shutdown\"/> </div>\n\t\t</div>\n\t</q-card-main>\n</q-card>\n"), hvue.Method("shutdown", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("shutdown", $String));
		}))), hvue.Method("reboot", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("reboot", $String));
		})))])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg = hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tMaster Template Editor\n\t</q-card-title>\n\n<!--\t{{ $data }} -->\n\n\t<q-card-main>\n\t\t<select-string-from-array :values=\"$store.state.StoredMasterTemplateList\" v-model=\"showLoadModal\" title=\"Load stored Master Template\" @load=\"load($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t\t<select-string-from-array :values=\"$store.state.StoredMasterTemplateList\" v-model=\"showDeployStoredModal\" title=\"Deploy stored Master Template\" @load=\"deployStored($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t\t<modal-string-input v-model=\"showStoreModal\" title=\"Store current Master Template\" @save=\"store($event)\"></modal-string-input>\n\n\n\t\t<div class=\"row gutter-sm\">\n\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<div class=\"row gutter-sm\">\n\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"primary\" @click=\"deploy(MasterTemplate)\" label=\"deploy\" icon=\"launch\"></q-btn></div>\n\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"primary\" @click=\"showDeployStoredModal=true\" label=\"deploy stored\" icon=\"settings_backup_restore\"></q-btn></div>\n\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"secondary\" @click=\"showStoreModal=true\" label=\"store\" icon=\"cloud_upload\"></q-btn></div>\n\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" @click=\"showLoadModal=true\" label=\"load stored\" icon=\"cloud_download\"></q-btn></div>\n\n\t\t\t\t</div>\n\t\t\t</div>\n\n\n\t\t\t<!-- TriggerActions template -->\n\t\t\t\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"$store.state.StoredTriggerActionSetsList\"  v-model=\"ShowTemplateSelectTriggerAction\" title=\"Select TriggerActions template\" @load=\"MasterTemplate.TemplateNameTriggerActions=$event\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"whatshot\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>TriggerActions Template</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected TriggerActions are deployed along with the master template</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"MasterTemplate.TemplateNameTriggerActions\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelectTriggerAction=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"MasterTemplate.TemplateNameTriggerActions.length > 0\" icon=\"clear\" color=\"primary\" @click=\"MasterTemplate.TemplateNameTriggerActions=''\" flat /></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\t\t\t<!-- USB template -->\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"$store.state.StoredUSBSettingsList\"  v-model=\"ShowTemplateSelectUSB\" title=\"Select USB template\" @load=\"MasterTemplate.TemplateNameUSB=$event\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"usb\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>USB Template</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected USB settings are deployed along with the master template</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"MasterTemplate.TemplateNameUSB\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelectUSB=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"MasterTemplate.TemplateNameUSB.length > 0\" icon=\"clear\" color=\"primary\" @click=\"MasterTemplate.TemplateNameUSB=''\" flat /></div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<!-- WiFi template -->\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"$store.state.StoredWifiSettingsList\"  v-model=\"ShowTemplateSelectWiFi\" title=\"Select WiFi template\" @load=\"MasterTemplate.TemplateNameWiFi=$event\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"wifi\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>WiFi Template</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected WiFi settings are deployed along with the master template</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"MasterTemplate.TemplateNameWiFi\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelectWiFi=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"MasterTemplate.TemplateNameWiFi.length > 0\" icon=\"clear\" color=\"primary\" @click=\"MasterTemplate.TemplateNameWiFi=''\" flat /></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<!-- Bluetooth template -->\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"$store.state.StoredBluetoothSettingsList\"  v-model=\"ShowTemplateSelectBluetooth\" title=\"Select Bluetooth template\" @load=\"MasterTemplate.TemplateNameBluetooth=$event\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"bluetooth\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Bluetooth Template</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected Bluetooth settings are deployed along with the master template</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"MasterTemplate.TemplateNameBluetooth\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelectBluetooth=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"MasterTemplate.TemplateNameBluetooth.length > 0\" icon=\"clear\" color=\"primary\" @click=\"MasterTemplate.TemplateNameBluetooth=''\" flat /></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-network-templates \n\t\t\t\t\t:values=\"$store.state.StoredEthernetInterfaceSettingsList\" \n\t\t\t\t\t:show=\"ShowTemplateSelectNetwork\" \n\t\t\t\t\t@show=\"ShowTemplateSelectNetwork=$event\"\n\t\t\t\t\ttitle=\"Select Network templates\" \n\t\t\t\t\tv-model=\"MasterTemplate.TemplateNamesNetwork\" \n\t\t\t\t/>\n\t\t\t\t<q-item-side icon=\"settings_ethernet\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Networks templates</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Only one template could be selected per interface.</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected network templates are deployed along with the master template. Only one template could be selected per interface.</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n<!--\n\t\t\t\t\t\t\t\t<q-chips-input v-model=\"MasterTemplate.TemplateNamesNetwork\"  color=\"primary\" inverted clearable />\n-->\n\t\t\t\t\t\t\t\t<q-chips-input v-model=\"MasterTemplate.TemplateNamesNetwork\"  color=\"primary\" inverted readonly />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"ShowTemplateSelectNetwork=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"MasterTemplate.TemplateNamesNetwork.length > 0\" icon=\"clear\" color=\"primary\" @click=\"MasterTemplate.TemplateNamesNetwork=[]\" flat /></div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t</div>\n\t</q-card-main>\n</q-card>\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$11.ptr(O(), false, false, false, false, false, false, false, false);
			data.Object.ShowTemplateSelectBluetooth = $externalize(false, $Bool);
			data.Object.ShowTemplateSelectWiFi = $externalize(false, $Bool);
			data.Object.ShowTemplateSelectUSB = $externalize(false, $Bool);
			data.Object.ShowTemplateSelectTriggerAction = $externalize(false, $Bool);
			data.Object.ShowTemplateSelectNetwork = $externalize(false, $Bool);
			data.Object.showStoreModal = $externalize(false, $Bool);
			data.Object.showLoadModal = $externalize(false, $Bool);
			data.Object.showDeployStoredModal = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_arg$2 = hvue.PropObj("value", new sliceType$21([hvue.Required]));
		_arg$3 = (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		});
		_arg$4 = (function(vm, newValue) {
			var newValue, vm;
			vm.Emit("input", new sliceType$13([new $jsObjectPtr(newValue)]));
		});
		_r$2 = hvue.ComputedWithGetSet("MasterTemplate", _arg$3, _arg$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$5 = _r$2;
		_r$3 = hvue.Method("deploy", new funcType$43((function(vm, masterTemplate) {
			var masterTemplate, vm;
			vm.Object.$store.dispatch($externalize("deployMasterTemplate", $String), $externalize(masterTemplate, ptrType$29));
		}))); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$6 = _r$3;
		_r$4 = hvue.Method("store", new funcType$33((function(vm, name) {
			var name, sReq, vm;
			sReq = NewRequestMasterTemplateStorage();
			sReq.Object.TemplateName = $externalize($internalize(name, $String), $String);
			sReq.Object.Template = $externalize(new jsMasterTemplate.ptr(vm.Object.$store.state.CurrentMasterTemplate, "", "", "", "", sliceType$9.nil), ptrType$29);
			console.log("Storing :", sReq);
			vm.Object.$store.dispatch($externalize("storeMasterTemplate", $String), $externalize(sReq, ptrType$38));
			vm.Set("showStoreModal", new $Bool(false));
		}))); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$7 = _r$4;
		_r$5 = hvue.Method("load", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("loadMasterTemplate", $String), name);
		}))); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$8 = _r$5;
		_r$6 = hvue.Method("deleteStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deleteStoredMasterTemplate", $String), name);
		}))); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$9 = _r$6;
		_r$7 = hvue.Method("deployStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deployStoredMasterTemplate", $String), name);
		}))); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$10 = _r$7;
		_arg$11 = hvue.Method("updateStoredSettingsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredMasterTemplateList", $String));
		})));
		_arg$12 = hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredMasterTemplateList", $String));
		}));
		$r = hvue.NewComponent("master-template", new sliceType$16([_arg, _arg$1, _arg$2, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _arg$10, _arg$11, _arg$12])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$13 = hvue.Template("\n<q-card>\n\n\t<select-string-from-array v-model=\"ShowLoad\" :values=\"$store.state.DBBackupList\" title=\"Select DB backup\" @load=\"load($event)\"></select-string-from-array>\n\t<modal-string-input v-model=\"ShowStore\" title=\"Store current Master Template\" @save=\"store($event)\"></modal-string-input>\n\n\t<q-card-title>\n\t\tDatabase\n\t</q-card-title>\n\n\t<q-card-main>\n\t\t<div class=\"row gutter-sm\">\n\t\t\t<div class=\"col\"> <q-btn class=\"fit\" color=\"primary\" label=\"backup\" icon=\"cloud_upload\" @click=\"ShowStore=true\" /> </div>\n\t\t\t<div class=\"col\"> <q-btn class=\"fit\" color=\"negative\" label=\"restore\" icon=\"cloud_download\" @click=\"updateList();ShowLoad=true\" /> </div>\n\t\t</div>\n\t</q-card-main>\n</q-card>\n");
		_r$8 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$12.ptr(O(), false, false);
			data.Object.ShowLoad = $externalize(false, $Bool);
			data.Object.ShowStore = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 12; case 12: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
		_arg$14 = _r$8;
		_r$9 = hvue.Method("load", new funcType$33((function(vm, val) {
			var val, vm;
			vm.Object.$store.dispatch($externalize("restoreDB", $String), val);
		}))); /* */ $s = 13; case 13: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
		_arg$15 = _r$9;
		_arg$16 = hvue.Method("store", new funcType$33((function(vm, val) {
			var val, vm;
			vm.Object.$store.dispatch($externalize("backupDB", $String), val);
		})));
		_arg$17 = hvue.Method("updateList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredDBBackupList", $String));
		})));
		$r = hvue.NewComponent("database", new sliceType$16([_arg$13, _arg$14, _arg$15, _arg$16, _arg$17])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("select-network-templates", new sliceType$16([hvue.Template("\n\t<q-modal v-model=\"visible\">\n\t\t<q-modal-layout>\n\t\t\t<q-toolbar slot=\"header\">\n\t\t\t\t<q-toolbar-title>\n\t\t\t\t\t{{ title }}\n    \t\t\t\t<span slot=\"subtitle\">\n      \t\t\t\t\tOnly one template could be selected per interface\n    \t\t\t\t</span>\n\t\t\t\t</q-toolbar-title>\n\t\t\t</q-toolbar>\n\n\t\t\t<q-list>\n\n\t\t\t\t<q-item link tag=\"label\" v-for=\"name in available\" :key=\"name\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-checkbox v-model=\"selection\" :val=\"name\"/>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>{{ name }}</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t\t<q-item-side v-if=\"withDelete\" right>\n\t\t\t\t\t\t<q-btn icon=\"delete\" color=\"negative\" @click=\"onDeletePressed(name)\" round flat />\n\t\t\t\t\t</q-item-side>\n\t\t\t\t</q-item>\n\n\n\t\t\t</q-list>\n\n\t\t\t<q-list slot=\"footer\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n<!--\n\t\t\t\t\t\t\t<q-btn color=\"primary\" v-show=\"CurrentSelection != undefined\" label=\"ok\" @click=\"onLoadPressed(); visible=false\"/>\t\t\t\t\t\t\t\n-->\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\n\t\t</q-modal-layout>\n\t</q-modal>\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$13.ptr(O(), sliceType$9.nil);
			data.Object.CurrentSelection = $externalize(new sliceType$9([]), sliceType$9);
			return data;
		})), hvue.Computed("options", (function(vm) {
			var entry, i, inVals, options, val, vm;
			inVals = vm.Object.values;
			options = new ($global.Array)();
			i = 0;
			while (true) {
				if (!(i < $parseInt(inVals.length))) { break; }
				val = $internalize(inVals[i], $String);
				entry = new structType$2.ptr(O(), "", "");
				entry.Object.label = $externalize(val, $String);
				entry.Object.value = $externalize(val, $String);
				options.push($externalize(entry, structType$2));
				i = i + (1) >> 0;
			}
			return new $jsObjectPtr(options);
		})), hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.show);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("show", $String), newValue);
		})), hvue.ComputedWithGetSet("selection", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		})), hvue.Computed("available", (function(vm) {
			var _entry, _entry$1, _i, _key, _key$1, _ref, _tuple, _tuple$1, i, i$1, inPrefix, inSelected, name, prefix, res, sel, selection, selectionPrefix, v, vals, values, vm, x, x$1;
			sel = vm.Object.selection;
			selection = new $global.Map();
			selectionPrefix = new $global.Map();
			i = 0;
			while (true) {
				if (!(i < $parseInt(sel.length))) { break; }
				name = $internalize(sel[i], $String);
				_key = name; (selection || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key), { k: _key, v: true });
				_key$1 = (x = strings.Split(name, "_"), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); (selectionPrefix || $throwRuntimeError("assignment to entry in nil map")).set($String.keyFor(_key$1), { k: _key$1, v: true });
				i = i + (1) >> 0;
			}
			vals = vm.Object.values;
			values = $makeSlice(sliceType$9, $parseInt(vals.length));
			i$1 = 0;
			while (true) {
				if (!(i$1 < $parseInt(vals.length))) { break; }
				((i$1 < 0 || i$1 >= values.$length) ? ($throwRuntimeError("index out of range"), undefined) : values.$array[values.$offset + i$1] = $internalize(vals[i$1], $String));
				i$1 = i$1 + (1) >> 0;
			}
			res = sliceType$9.nil;
			_ref = values;
			_i = 0;
			while (true) {
				if (!(_i < _ref.$length)) { break; }
				v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
				prefix = (x$1 = strings.Split(v, "_"), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]));
				_tuple = (_entry = $mapIndex(selectionPrefix,$String.keyFor(prefix)), _entry !== undefined ? [_entry.v, true] : [false, false]);
				inPrefix = _tuple[1];
				_tuple$1 = (_entry$1 = $mapIndex(selection,$String.keyFor(v)), _entry$1 !== undefined ? [_entry$1.v, true] : [false, false]);
				inSelected = _tuple$1[1];
				if (!inPrefix || inSelected) {
					res = $append(res, v);
				}
				_i++;
			}
			return res;
		})), hvue.Method("onLoadPressed", new funcType$34((function(vm) {
			var vm;
			vm.Object.$emit($externalize("input", $String), vm.Object.selection);
		}))), hvue.Method("onDeletePressed", new funcType$33((function(vm, name) {
			var name, vm;
			vm.Object.$emit($externalize("delete", $String), name);
		}))), hvue.PropObj("values", new sliceType$21([hvue.Required])), hvue.PropObj("show", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))])), hvue.PropObj("with-delete", new sliceType$21([hvue.Types(new sliceType$22([2])), hvue.Default(new $Bool(false))])), hvue.PropObj("title", new sliceType$21([hvue.Types(new sliceType$22([0]))])), hvue.PropObj("value", sliceType$21.nil)])); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsGeneric, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, $s};return $f;
	};
	$pkg.InitComponentsGeneric = InitComponentsGeneric;
	InitComponentsDialog = function() {
		var {_arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = hvue.Template("\n\t<q-modal v-model=\"visible\">\n\t\t<q-modal-layout>\n\t\t\t<q-toolbar slot=\"header\">\n\t\t\t\t<q-toolbar-title>\n\t\t\t\t\t{{ title }}\n\t\t\t\t</q-toolbar-title>\n\t\t\t</q-toolbar>\n\n\t\t\t<q-list>\n\t\t\t\t<q-item link tag=\"label\" v-for=\"name in values\" :key=\"name\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-radio v-model=\"CurrentSelection\" :val=\"name\"/>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>{{ name }}</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t\t<q-item-side v-if=\"withDelete\" right>\n\t\t\t\t\t\t<q-btn icon=\"delete\" color=\"negative\" @click=\"onDeletePressed(name)\" round flat />\n\t\t\t\t\t</q-item-side>\n\t\t\t\t</q-item>\n<!--\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-btn color=\"primary\" v-show=\"CurrentSelection != undefined\" label=\"ok\" @click=\"onLoadPressed(); visible=false\"/>\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n-->\n\t\t\t</q-list>\n\n\t\t\t<q-list slot=\"footer\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-btn color=\"primary\" v-show=\"CurrentSelection != undefined\" label=\"ok\" @click=\"onLoadPressed(); visible=false\"/>\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\n\t\t</q-modal-layout>\n\t</q-modal>\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$14.ptr(O(), null);
			data.Object.CurrentSelection = O();
			return data;
		})); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = hvue.Mounted((function(vm) {
			var vm;
			vm.Set("CurrentSelection", new $jsObjectPtr(vm.Object.values[0]));
		})); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$2 = _r$2;
		_arg$3 = (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		});
		_arg$4 = (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		});
		_r$3 = hvue.ComputedWithGetSet("visible", _arg$3, _arg$4); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$5 = _r$3;
		_arg$6 = hvue.Method("onLoadPressed", new funcType$34((function(vm) {
			var vm;
			vm.Object.$emit($externalize("load", $String), vm.Object.CurrentSelection);
		})));
		_arg$7 = hvue.Method("onDeletePressed", new funcType$33((function(vm, name) {
			var name, vm;
			vm.Object.$emit($externalize("delete", $String), name);
		})));
		_arg$8 = hvue.PropObj("values", new sliceType$21([hvue.Required]));
		_arg$9 = hvue.PropObj("value", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))]));
		_arg$10 = hvue.PropObj("with-delete", new sliceType$21([hvue.Types(new sliceType$22([2])), hvue.Default(new $Bool(false))]));
		_arg$11 = hvue.PropObj("title", new sliceType$21([hvue.Types(new sliceType$22([0]))]));
		$r = hvue.NewComponent("select-string-from-array", new sliceType$16([_arg, _arg$1, _arg$2, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _arg$10, _arg$11])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg$12 = hvue.Template("\n<div>\n\t<q-modal v-model=\"visible\">\n\t\t<q-modal-layout>\n\t\t\t<q-toolbar slot=\"header\">\n\t\t\t\t<q-toolbar-title>\n\t\t\t\t\t{{ title }}\n\t\t\t\t</q-toolbar-title>\n\t\t\t</q-toolbar>\n\t\t\t<q-list>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Name</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"text\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-btn color=\"primary\" v-show=\"text != undefined && text.length > 0\" @click=\"onSavePressed(); visible=false\" label=\"store\" />\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\t\t</q-modal-layout>\n\t</q-modal>\n</div>\n");
		_r$4 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$15.ptr(O(), "");
			data.Object.text = $externalize("", $String);
			return data;
		})); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$13 = _r$4;
		_r$5 = hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		})); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$14 = _r$5;
		_arg$15 = hvue.Method("onSavePressed", new funcType$34((function(vm) {
			var vm;
			if (vm.Object.text === undefined || $internalize(vm.Object.text, $String) === "") {
				QuasarNotifyError("Can't store to empty template name", "", "top");
				return;
			}
			vm.Object.$emit($externalize("save", $String), vm.Object.text);
			console.log(vm.Object.text);
		})));
		_arg$16 = hvue.PropObj("title", new sliceType$21([hvue.Types(new sliceType$22([0]))]));
		_arg$17 = hvue.PropObj("value", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))]));
		$r = hvue.NewComponent("modal-string-input", new sliceType$16([_arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("ransom-note", new sliceType$16([hvue.Template("\n<div>\n\t<q-modal v-model=\"visible\" content-css=\"background: red;\" no-esc-dismiss no-route-dismiss no-backdrop-dismiss>\n\t\t\t<div style=\"color: white; font-size: 1.5em; font-family: monospace; padding: 10%\">\n\t\t\t\t\nYou became victim of a VERY SILLY IDEA</br>\n\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88\xE2\x96\x88</br>\n</br>\nThe web page you've been viewing, provided a sophisticated experience</br>\nin terms of keyboard automation and scripting. There were LED based triggers,</br>\nthere was scriptable mouse control, there were complex control structures</br>\nlike if-else-branching and for-loops. Not to mention the capability of running</br>\nmultiple asynchronous jobs.</br>\n</br>\nIf you really need a converter for a limited, old-school language:</br>\n</br>\n1. Ask somebody else to write one.</br>\n2. Send me 10+ BTC and I'll write one'.</br>\nor</br>\n3. Write one yourself and don't send a PR'.</br>\n</br>\nIf you want your DuckyScript encrypted, please enter it elsewhere!</br>\n\t\t\t\t\n\t\t\t</div>\n\t\t</q-card>\n\t</q-modal>\n</div>\n"), hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		})), hvue.PropObj("value", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))]))])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("disconnect-modal", new sliceType$16([hvue.Template("\n<div>\n\t<q-modal v-model=\"visible\">\n\t\t<q-modal-layout>\n\t\t\t<q-toolbar slot=\"header\">\n\t\t\t\t<q-toolbar-title>\n\t\t\t\t\tNot connection to server\n\t\t\t\t</q-toolbar-title>\n\t\t\t</q-toolbar>\n\n\t\t\t<div  class=\"layout-padding\">\n      \t\t\t<p>No connection to server</p>\n\t\t\t\t<p>Trying to reconnect ... Attempt: {{ $store.state.ConnectRetryCount }}</p>\n\t\t\t</div>\n\t\t</q-modal-layout>\n\t</q-modal>\n</div>\n"), hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		})), hvue.PropObj("value", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))]))])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsDialog, $c: true, $r, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$14, _arg$15, _arg$16, _arg$17, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, $s};return $f;
	};
	$pkg.InitComponentsDialog = InitComponentsDialog;
	jsBluetoothRequestSettingsStorage.ptr.prototype.toGo = function() {
		var rs;
		rs = this;
		return new P4wnP1_grpc.BluetoothRequestSettingsStorage.ptr($internalize(rs.Object.TemplateName, $String), $internalize(rs.Object.Settings, ptrType$95).toGo());
	};
	jsBluetoothRequestSettingsStorage.prototype.toGo = function() { return this.$val.toGo(); };
	jsBluetoothRequestSettingsStorage.ptr.prototype.fromGo = function(src) {
		var rs, src;
		rs = this;
		rs.Object.TemplateName = $externalize(src.TemplateName, $String);
		rs.Object.Settings = $externalize(NewBluetoothSettings(), ptrType$95);
		$internalize(rs.Object.Settings, ptrType$95).fromGo(src.Settings);
	};
	jsBluetoothRequestSettingsStorage.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewBluetoothRequestSettingsStorageFromArgs = function(as, ci, templateName) {
		var as, ci, res, templateName;
		res = ptrType$39.nil;
		res = new jsBluetoothRequestSettingsStorage.ptr(O(), "", ptrType$95.nil);
		res.Object.TemplateName = $externalize(templateName, $String);
		res.Object.Settings = $externalize(NewBluetoothSettings(), ptrType$95);
		$internalize(res.Object.Settings, ptrType$95).fromASandCI(as, ci);
		res = res;
		return res;
	};
	$pkg.NewBluetoothRequestSettingsStorageFromArgs = NewBluetoothRequestSettingsStorageFromArgs;
	jsBluetoothSettings.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.As = $externalize(NewBluetoothAgentSettings(), ptrType$10);
		$internalize(target.Object.As, ptrType$10).fromGo(src.As);
		target.Object.Ci = $externalize(NewBluetoothControllerInformation(), ptrType$11);
		$internalize(target.Object.Ci, ptrType$11).fromGo(src.Ci);
	};
	jsBluetoothSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsBluetoothSettings.ptr.prototype.fromASandCI = function(as, ci) {
		var as, ci, target;
		target = this;
		target.Object.As = $externalize(as, ptrType$10);
		target.Object.Ci = $externalize(ci, ptrType$11);
	};
	jsBluetoothSettings.prototype.fromASandCI = function(as, ci) { return this.$val.fromASandCI(as, ci); };
	jsBluetoothSettings.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$9.nil;
		src = this;
		target = new P4wnP1_grpc.BluetoothSettings.ptr($internalize(src.Object.Ci, ptrType$11).toGo(), $internalize(src.Object.As, ptrType$10).toGo());
		target = target;
		return target;
	};
	jsBluetoothSettings.prototype.toGo = function() { return this.$val.toGo(); };
	NewBluetoothSettings = function() {
		var res;
		res = ptrType$95.nil;
		res = new jsBluetoothSettings.ptr(O(), ptrType$11.nil, ptrType$10.nil);
		res.Object.As = $externalize(NewBluetoothAgentSettings(), ptrType$10);
		res.Object.Ci = $externalize(NewBluetoothControllerInformation(), ptrType$11);
		return res;
	};
	$pkg.NewBluetoothSettings = NewBluetoothSettings;
	jsBluetoothAgentSettings.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.Pin = $externalize(src.Pin, $String);
	};
	jsBluetoothAgentSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsBluetoothAgentSettings.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$97.nil;
		src = this;
		target = new P4wnP1_grpc.BluetoothAgentSettings.ptr("");
		target.Pin = $internalize(src.Object.Pin, $String);
		return target;
	};
	jsBluetoothAgentSettings.prototype.toGo = function() { return this.$val.toGo(); };
	NewBluetoothAgentSettings = function() {
		var res;
		res = ptrType$10.nil;
		res = new jsBluetoothAgentSettings.ptr(O(), "");
		res.Object.Pin = $externalize("", $String);
		return res;
	};
	$pkg.NewBluetoothAgentSettings = NewBluetoothAgentSettings;
	jsBluetoothControllerSettings.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.Powered = $externalize(src.Powered, $Bool);
		target.Object.Connectable = $externalize(src.Connectable, $Bool);
		target.Object.FastConnectable = $externalize(src.FastConnectable, $Bool);
		target.Object.Discoverable = $externalize(src.Discoverable, $Bool);
		target.Object.Bondable = $externalize(src.Bondable, $Bool);
		target.Object.LinkLevelSecurity = $externalize(src.LinkLevelSecurity, $Bool);
		target.Object.SecureSimplePairing = $externalize(src.SecureSimplePairing, $Bool);
		target.Object.BrEdr = $externalize(src.BrEdr, $Bool);
		target.Object.HighSpeed = $externalize(src.HighSpeed, $Bool);
		target.Object.LowEnergy = $externalize(src.LowEnergy, $Bool);
		target.Object.Advertising = $externalize(src.Advertising, $Bool);
		target.Object.SecureConnections = $externalize(src.SecureConnections, $Bool);
		target.Object.DebugKeys = $externalize(src.DebugKeys, $Bool);
		target.Object.Privacy = $externalize(src.Privacy, $Bool);
		target.Object.ControllerConfiguration = $externalize(src.ControllerConfiguration, $Bool);
		target.Object.StaticAddress = $externalize(src.StaticAddress, $Bool);
	};
	jsBluetoothControllerSettings.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	jsBluetoothControllerSettings.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$98.nil;
		src = this;
		target = new P4wnP1_grpc.BluetoothControllerSettings.ptr(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
		target.Powered = !!(src.Object.Powered);
		target.Connectable = !!(src.Object.Connectable);
		target.FastConnectable = !!(src.Object.FastConnectable);
		target.Discoverable = !!(src.Object.Discoverable);
		target.Bondable = !!(src.Object.Bondable);
		target.LinkLevelSecurity = !!(src.Object.LinkLevelSecurity);
		target.SecureSimplePairing = !!(src.Object.SecureSimplePairing);
		target.BrEdr = !!(src.Object.BrEdr);
		target.HighSpeed = !!(src.Object.HighSpeed);
		target.LowEnergy = !!(src.Object.LowEnergy);
		target.Advertising = !!(src.Object.Advertising);
		target.SecureConnections = !!(src.Object.SecureConnections);
		target.DebugKeys = !!(src.Object.DebugKeys);
		target.Privacy = !!(src.Object.Privacy);
		target.ControllerConfiguration = !!(src.Object.ControllerConfiguration);
		target.StaticAddress = !!(src.Object.StaticAddress);
		return target;
	};
	jsBluetoothControllerSettings.prototype.toGo = function() { return this.$val.toGo(); };
	NewBluetoothControllerSettings = function() {
		var res;
		res = ptrType$12.nil;
		res = new jsBluetoothControllerSettings.ptr(O(), false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
		res.Object.Powered = $externalize(false, $Bool);
		res.Object.Connectable = $externalize(false, $Bool);
		res.Object.FastConnectable = $externalize(false, $Bool);
		res.Object.Discoverable = $externalize(false, $Bool);
		res.Object.Bondable = $externalize(false, $Bool);
		res.Object.LinkLevelSecurity = $externalize(false, $Bool);
		res.Object.SecureSimplePairing = $externalize(false, $Bool);
		res.Object.BrEdr = $externalize(false, $Bool);
		res.Object.HighSpeed = $externalize(false, $Bool);
		res.Object.LowEnergy = $externalize(false, $Bool);
		res.Object.Advertising = $externalize(false, $Bool);
		res.Object.SecureConnections = $externalize(false, $Bool);
		res.Object.DebugKeys = $externalize(false, $Bool);
		res.Object.Privacy = $externalize(false, $Bool);
		res.Object.ControllerConfiguration = $externalize(false, $Bool);
		res.Object.StaticAddress = $externalize(false, $Bool);
		return res;
	};
	$pkg.NewBluetoothControllerSettings = NewBluetoothControllerSettings;
	jsBluetoothControllerInformation.ptr.prototype.toGo = function() {
		var src, target;
		target = ptrType$96.nil;
		src = this;
		target = new P4wnP1_grpc.BluetoothControllerInformation.ptr(sliceType$10.nil, 0, 0, ptrType$98.nil, ptrType$98.nil, sliceType$10.nil, "", "", false, false, false, false);
		target.IsAvailable = !!(src.Object.IsAvailable);
		target.Address = $internalize(src.Object.Address, sliceType$10);
		target.BluetoothVersion = ((($parseInt(src.Object.BluetoothVersion) << 24 >>> 24) >>> 0));
		target.Manufacturer = ((($parseInt(src.Object.Manufacturer) << 16 >>> 16) >>> 0));
		target.SupportedSettings = $internalize(src.Object.SupportedSettings, ptrType$12).toGo();
		target.CurrentSettings = $internalize(src.Object.CurrentSettings, ptrType$12).toGo();
		target.Name = $internalize(src.Object.Name, $String);
		target.ShortName = $internalize(src.Object.ShortName, $String);
		target.ServiceNetworkServerGn = !!(src.Object.ServiceNetworkServerGN);
		target.ServiceNetworkServerPanu = !!(src.Object.ServiceNetworkServerPANU);
		target.ServiceNetworkServerNap = !!(src.Object.ServiceNetworkServerNAP);
		return target;
	};
	jsBluetoothControllerInformation.prototype.toGo = function() { return this.$val.toGo(); };
	jsBluetoothControllerInformation.ptr.prototype.fromGo = function(src) {
		var src, target;
		target = this;
		target.Object.Address = $externalize(src.Address, sliceType$10);
		target.Object.IsAvailable = $externalize(src.IsAvailable, $Bool);
		target.Object.ClassOfDevice = $externalize(src.ClassOfDevice, sliceType$10);
		target.Object.BluetoothVersion = ((src.BluetoothVersion << 24 >>> 24));
		target.Object.Manufacturer = ((src.Manufacturer << 16 >>> 16));
		target.Object.SupportedSettings = $externalize(NewBluetoothControllerSettings(), ptrType$12);
		$internalize(target.Object.SupportedSettings, ptrType$12).fromGo(src.SupportedSettings);
		target.Object.CurrentSettings = $externalize(NewBluetoothControllerSettings(), ptrType$12);
		$internalize(target.Object.CurrentSettings, ptrType$12).fromGo(src.CurrentSettings);
		target.Object.Name = $externalize(src.Name, $String);
		target.Object.ShortName = $externalize(src.ShortName, $String);
		target.Object.ServiceNetworkServerGN = $externalize(src.ServiceNetworkServerGn, $Bool);
		target.Object.ServiceNetworkServerPANU = $externalize(src.ServiceNetworkServerPanu, $Bool);
		target.Object.ServiceNetworkServerNAP = $externalize(src.ServiceNetworkServerNap, $Bool);
	};
	jsBluetoothControllerInformation.prototype.fromGo = function(src) { return this.$val.fromGo(src); };
	NewBluetoothControllerInformation = function() {
		var res;
		res = ptrType$11.nil;
		res = new jsBluetoothControllerInformation.ptr(O(), false, sliceType$10.nil, 0, 0, ptrType$12.nil, ptrType$12.nil, sliceType$10.nil, "", "", false, false, false);
		res.Object.IsAvailable = $externalize(false, $Bool);
		res.Object.ShortName = $externalize("", $String);
		res.Object.Name = $externalize("", $String);
		res.Object.Manufacturer = 0;
		res.Object.BluetoothVersion = 0;
		res.Object.Address = $externalize($makeSlice(sliceType$10, 6), sliceType$10);
		res.Object.ClassOfDevice = $externalize($makeSlice(sliceType$10, 3), sliceType$10);
		res.Object.SupportedSettings = $externalize(NewBluetoothControllerSettings(), ptrType$12);
		res.Object.CurrentSettings = $externalize(NewBluetoothControllerSettings(), ptrType$12);
		res.Object.ServiceNetworkServerGN = $externalize(false, $Bool);
		res.Object.ServiceNetworkServerPANU = $externalize(false, $Bool);
		res.Object.ServiceNetworkServerNAP = $externalize(false, $Bool);
		return res;
	};
	$pkg.NewBluetoothControllerInformation = NewBluetoothControllerInformation;
	InitComponentsBluetooth = function() {
		var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = hvue.Template("\n<q-page padding>\n\n\t<select-string-from-array :values=\"$store.state.StoredBluetoothSettingsList\" v-model=\"showDeployStoredModal\" title=\"Deploy stored bluetooth settings\" @load=\"deployStored($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<modal-string-input v-model=\"showStoreModal\" title=\"Store bluetooth settings\" @save=\"store($event)\"></modal-string-input>\n\n\n\t<div class=\"row gutter-sm\">\n\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n\t\t\t\t<q-card-title>\n\t\t\t\t\tBluetooth Settings\n\t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"primary\" @click=\"updateStoredSettingsList(); showDeployStoredModal=true\" label=\"deploy stored\" icon=\"settings_backup_restore\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"secondary\" @click=\"showStoreModal=true\" label=\"store\" icon=\"cloud_upload\"></q-btn></div>\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\t\t\t</q-card>\n\t\t</div>\n\n<!--\n\t\t<div class=\"col-12\">\n\t\t\t{{ CurrentControllerInfo }}\n\t\t</div>\n-->\n\t\t<div class=\"col-12 col-lg\">\n\t\t\t<bluetooth-controller :controllerInfo=\"CurrentControllerInfo\"></bluetooth-controller>\n\t\t</div>\n\t\t<div class=\"col-12 col-lg\">\n<div class=\"row gutter-y-sm\">\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<bluetooth-controller-network-services :controllerInfo=\"CurrentControllerInfo\"></bluetooth-controller-network-services>\n\t\t\t</div>\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<bluetooth-agent :bluetoothAgent=\"CurrentBluetoothAgentSettings\"></bluetooth-agent>\n\t\t\t</div>\n</div>\n\t\t</div>\n\t</div>\n</q-page>\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$16.ptr(O(), false, false);
			data.Object.showStoreModal = $externalize(false, $Bool);
			data.Object.showDeployStoredModal = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = hvue.Computed("CurrentControllerInfo", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.CurrentBluetoothControllerInformation);
		})); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$2 = _r$2;
		_r$3 = hvue.Computed("available", (function(vm) {
			var vm;
			return new $Bool(true);
		})); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$3 = _r$3;
		_r$4 = hvue.Computed("CurrentBluetoothAgentSettings", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.CurrentBluetoothAgentSettings);
		})); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$4 = _r$4;
		_r$5 = hvue.Method("store", new funcType$33((function(vm, name) {
			var as, ci, name, sReq, vm;
			ci = new jsBluetoothControllerInformation.ptr(vm.Object.$store.state.CurrentBluetoothControllerInformation, false, sliceType$10.nil, 0, 0, ptrType$12.nil, ptrType$12.nil, sliceType$10.nil, "", "", false, false, false);
			as = new jsBluetoothAgentSettings.ptr(vm.Object.$store.state.CurrentBluetoothAgentSettings, "");
			sReq = NewBluetoothRequestSettingsStorageFromArgs(as, ci, $internalize(name, $String));
			console.log("Storing :", sReq);
			vm.Object.$store.dispatch($externalize("storedBluetoothSettings", $String), $externalize(sReq, ptrType$39));
			vm.Set("showStoreModal", new $Bool(false));
		}))); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$5 = _r$5;
		_r$6 = hvue.Method("deleteStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deleteStoredBluetoothSettings", $String), name);
		}))); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$6 = _r$6;
		_r$7 = hvue.Method("deployStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deployStoredBluetoothSettings", $String), name);
		}))); /* */ $s = 7; case 7: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
		_arg$7 = _r$7;
		_arg$8 = hvue.Method("updateStoredSettingsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("setStoredBluetoothSettingsList", $String));
		})));
		_arg$9 = hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateCurrentBluetoothControllerInformation", $String));
		}));
		$r = hvue.NewComponent("bluetooth", new sliceType$16([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("bluetooth-controller", new sliceType$16([hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tGeneric Bluetooth Controller settings\n\t</q-card-title>\n\n\t<q-list link>\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.Powered\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Enabled</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Power on/off Bluetooth controller</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Name</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Visible name of the bluetooth device</q-item-tile>\n\t\t\t\t<q-item-tile>\n\t\t\t\t\t<q-input :value=\"controllerInfo.Name\" @change=\"controllerInfo.Name = $event; $store.dispatch('deployCurrentBluetoothControllerInformation')\" inverted></q-input>\n\t\t\t\t</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.Connectable\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Connectable</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Allow incoming connections</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.Discoverable\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Discoverable</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>P4wnP1 could be discovered by other devices if enabled (only if Connectable)</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.Bondable\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Bondable</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Other devices could pair with P4wnP1</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.HighSpeed\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>High Speed</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Use alternate data channel (802.11)</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.LowEnergy\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Low Energy</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Enable Bluetooth LE (Bluetooth Smart)</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.CurrentSettings.SecureSimplePairing\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Secure Simple Pairing</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>If disabled, insecure PIN based pairing is used and HighSpeed isn't available</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\n\n\t</q-list>\n\n</q-card>\n"), hvue.PropObj("controllerInfo", sliceType$21.nil), hvue.Computed("CurrentControllerInfo", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.CurrentBluetoothControllerInformation);
		}))])); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("bluetooth-controller-network-services", new sliceType$16([hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tBNEP server services\n\t\t<span slot=\"subtitle\">Bluetooth Network Encapsulation Protocol services provided by the controller</span>\n\t</q-card-title>\n\n\n\t<q-list link>\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.ServiceNetworkServerNAP\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>NAP</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Provide Network Access Point</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.ServiceNetworkServerPANU\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>PANU</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Provide Protable Area Network Unit</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-side>\n\t\t\t\t<q-toggle v-model=\"controllerInfo.ServiceNetworkServerGN\" @input=\"$store.dispatch('deployCurrentBluetoothControllerInformation')\"></q-toggle>\n\t\t\t</q-item-side>\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>GN</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>Provide Group Ad-hoc Network</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t</q-list>\n\n\n</q-card>\n"), hvue.PropObj("controllerInfo", sliceType$21.nil), hvue.Computed("CurrentControllerInfo", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.CurrentBluetoothControllerInformation);
		}))])); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("bluetooth-agent", new sliceType$16([hvue.Template("\n<q-card>\n\t<q-card-title>\n\t\tAuthentication Agent\n\t</q-card-title>\n\n\n\t<q-list link>\n\t\t<q-item tag=\"label\">\n\t\t\t<q-item-main>\n\t\t\t\t<q-item-tile label>Pin</q-item-tile>\n\t\t\t\t<q-item-tile sublabel>PIN requested from remote devices on bonding (only if SSP is off)</q-item-tile>\n\t\t\t\t<q-item-tile>\n\t\t\t\t\t<q-input :value=\"bluetoothAgent.Pin\" @change=\"bluetoothAgent.Pin = $event; $store.dispatch('deployCurrentBluetoothAgentSettings')\" type=\"password\" inverted></q-input>\n\t\t\t\t</q-item-tile>\n\t\t\t</q-item-main>\n\t\t</q-item>\n\n\t</q-list>\n\n\n</q-card>\n"), hvue.PropObj("bluetoothAgent", sliceType$21.nil), hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateCurrentBluetoothAgentSettings", $String));
		}))])); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsBluetooth, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, $s};return $f;
	};
	$pkg.InitComponentsBluetooth = InitComponentsBluetooth;
	InitComponentsWiFi = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("wifi", new sliceType$16([hvue.Template("\n<q-page padding>\n\t<select-string-from-array :values=\"$store.state.StoredWifiSettingsList\" v-model=\"showLoadModal\" title=\"Load WiFi settings\" @load=\"load($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<select-string-from-array :values=\"$store.state.StoredWifiSettingsList\" v-model=\"showDeployStoredModal\" title=\"Deploy stored WiFi settings\" @load=\"deployStored($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<modal-string-input v-model=\"showStoreModal\" title=\"Store current WiFi Settings\" @save=\"store($event)\"></modal-string-input>\n\n<div class=\"row gutter-sm\">\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n\t\t\t\t<q-card-title>\n\t\t\t\t\tWiFi settings\n\t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn :loading=\"deploying\" class=\"fit\" color=\"primary\" @click=\"deploy(settings)\" label=\"deploy\" icon=\"launch\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"primary\" @click=\"updateStoredSettingsList(); showDeployStoredModal=true\" label=\"deploy stored\" icon=\"settings_backup_restore\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"secondary\" @click=\"reset\" label=\"reset\" icon=\"autorenew\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"\"><q-btn class=\"fit\" color=\"secondary\" @click=\"showStoreModal=true\" label=\"store\" icon=\"cloud_upload\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-12 col-sm\"><q-btn class=\"fit\" color=\"warning\" @click=\"updateStoredSettingsList(); showLoadModal=true\" label=\"load stored\" icon=\"cloud_download\"></q-btn></div>\n\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\n\n\t\t\t</q-card>\n\t\t</div>\n\n\n\t<div class=\"col-12 col-lg\">\n\t<q-card class=\"full-height\">\n\t\t<q-card-title>\n\t\t\tGeneric\n\t\t</q-card-title>\n\n\t\n\n\t\t<q-list link>\n\t\t\t<q-item-separator />\n\t\t\t<q-item>\n\t        \t<q-item-side :icon=\"wifiStateIcon\" color=\"primary\"></q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>{{ wifiStateText }}</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t\t<q-item-separator />\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle v-model=\"enabled\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Enabled</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Enable/Disable WiFi</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n<!--\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle v-model=\"enableNexmon\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Nexmon</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Enable/Disable modified nexmon firmware (needed for WiFi covert channel and KARMA)</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n-->\n\t\t\t<q-item tag=\"label\" disabled>\n\t\t\t\t<q-item-side>\n\t\t\t\t\t<q-toggle :value=\"true\" :disable=\"true\"></q-toggle>\n\t\t\t\t</q-item-side>\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Nexmon</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Enable/Disable modified nexmon firmware (needed for WiFi covert channel and KARMA)</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Regulatory domain</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Regulatory domain according to ISO/IEC 3166-1 alpha2 (example \"US\")</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-input v-model=\"settings.reg\" inverted></q-input>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\t\t\t<q-item tag=\"label\">\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Working Mode</q-item-tile>\n\t\t\t\t\t<q-item-tile sublabel>Work as Access Point or Client</q-item-tile>\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<q-select v-model=\"settings.mode\" :options=\"wifiModes\" color=\"secondary\" inverted></q-select>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\t\t</q-list>\n\t</q-card>\n\t</div>\n\n\t<div class=\"col-12 col-lg\" v-if=\"settings.mode == mode_sta || settings.mode == mode_failover\">\n\t<q-card class=\"full-height\">\n\t\t<q-card-title>\n\t\t\tWiFi client settings\n\t\t</q-card-title>\n\n\t\t<q-list link>\n\t\t\t\t<q-item-separator />\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>SSID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Network name to connect</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"settings.staBssList[0].ssid\" color=\"primary\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Pre shared key</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>If empty, a network with Open Authentication is assumed (Warning: PLAIN TRANSMISSION)</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"settings.staBssList[0].psk\" type=\"password\" color=\"primary\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\n\t\t\t<template v-if=\"settings.mode == mode_failover\">\n\t\t\t\t<q-item>\n\t\t\t\t\t<q-item-main>\n\t  \t\t\t\t<q-alert type=\"warning\">\n\t\t\t\t\t\tIf the SSID provided for client mode couldn't be connected, an attempt is started to fail over to Access Point mode with the respective settings.\n\t\t\t\t\t</q-alert>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</template>\n\t\t</q-list>\n\t</q-card>\n\t</div>\n\n\t<div class=\"col-12 col-lg\" v-if=\"settings.mode == mode_ap || settings.mode == mode_failover\">\n\t<q-card class=\"full-height\">\n\t\t<q-card-title>\n\t\t\tWiFi Access Point settings\n\t\t</q-card-title>\n\n\t\t<q-list link>\n\n\n\t\t\t<template>\n\t\t\t\t<q-item-separator />\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Channel</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Must exist in regulatory domain (example 13)</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"settings.channel\" type=\"number\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Authentication Mode</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Authentication Mode for Access Point (ignored for client mode)</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-select v-model=\"settings.authMode\" :options=\"wifiAuthModes\" color=\"primary\" inverted></q-select>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>SSID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Network name (Service Set Identifier)</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"settings.apBss.ssid\" color=\"primary\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"settings.hideSsid\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Hide SSID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Access Point doesn't send beacons with its SSID</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Pre shared key</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Warning: PLAIN TRANSMISSION</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"settings.apBss.psk\" type=\"password\" color=\"primary\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</template>\n\t\t</q-list>\n\t</q-card>\n\t</div>\n\n\n</div>\n</q-page>\t\n\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$17.ptr(O(), false, false, false, "");
			data.Object.showStoreModal = $externalize(false, $Bool);
			data.Object.showLoadModal = $externalize(false, $Bool);
			data.Object.showDeployStoredModal = $externalize(false, $Bool);
			data.Object.templateName = $externalize("", $String);
			return data;
		})), hvue.Computed("settings", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.wifiState.CurrentSettings);
		})), hvue.Computed("wifiState", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.wifiState);
		})), hvue.Computed("wifiStateIcon", (function(vm) {
			var _1, mode, vm;
			mode = $parseInt(vm.Object.$store.state.wifiState.mode) >> 0;
			_1 = mode;
			if (_1 === (2)) {
				return new $String("wifi");
			} else if (_1 === (1)) {
				return new $String("wifi_tethering");
			} else {
				return new $String("portable_wifi_off");
			}
		})), hvue.Computed("wifiStateText", (function(vm) {
			var _2, channel, mode, res, res$1, ssid, vm;
			mode = $parseInt(vm.Object.$store.state.wifiState.mode) >> 0;
			ssid = $internalize(vm.Object.$store.state.wifiState.ssid, $String);
			channel = $internalize(vm.Object.$store.state.wifiState.channel, $String);
			_2 = mode;
			if (_2 === (2)) {
				res = "Connected to network";
				if (ssid.length > 0) {
					res = res + (": '" + ssid + "' on channel " + channel);
				}
				return new $String(res);
			} else if (_2 === (1)) {
				res$1 = "Access Point running on channel " + channel;
				if (ssid.length > 0) {
					res$1 = res$1 + (": '" + ssid + "'");
				}
				return new $String(res$1);
			} else {
				return new $String("Not connected");
			}
		})), hvue.ComputedWithGetSet("enabled", (function(vm) {
			var vm;
			return new $Bool(!!!(vm.Object.settings.disabled));
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.settings.disabled = $externalize(!!!(newValue), $Bool);
		})), hvue.ComputedWithGetSet("enableNexmon", (function(vm) {
			var vm;
			return new $Bool(!!(vm.Object.settings.nexmon));
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.settings.nexmon = $externalize(!!(newValue), $Bool);
		})), hvue.Computed("wifiAuthModes", (function(vm) {
			var _3, _entry, _i, _key, _keys, _ref, _size, mode, modes, val, vm;
			modes = new ($global.Array)();
			_ref = P4wnP1_grpc.WiFiAuthMode_name;
			_i = 0;
			_keys = _ref ? _ref.keys() : undefined;
			_size = _ref ? _ref.size : 0;
			while (true) {
				if (!(_i < _size)) { break; }
				_key = _keys.next().value;
				_entry = _ref.get(_key);
				if (_entry === undefined) {
					_i++;
					continue;
				}
				val = _entry.k;
				mode = new structType$7.ptr(O(), "", 0);
				mode.Object.value = val;
				_3 = ((val >> 0));
				if (_3 === (0)) {
					mode.Object.label = $externalize("WPA2", $String);
				} else if (_3 === (1)) {
					mode.Object.label = $externalize("Open", $String);
				} else {
					mode.Object.label = $externalize("Unknown", $String);
				}
				modes.push($externalize(mode, structType$7));
				_i++;
			}
			return new $jsObjectPtr(modes);
		})), hvue.Computed("wifiModes", (function(vm) {
			var _4, _entry, _i, _key, _keys, _ref, _size, mode, modes, val, vm;
			modes = new ($global.Array)();
			_ref = P4wnP1_grpc.WiFiWorkingMode_name;
			_i = 0;
			_keys = _ref ? _ref.keys() : undefined;
			_size = _ref ? _ref.size : 0;
			while (true) {
				if (!(_i < _size)) { break; }
				_key = _keys.next().value;
				_entry = _ref.get(_key);
				if (_entry === undefined) {
					_i++;
					continue;
				}
				val = _entry.k;
				mode = new structType$7.ptr(O(), "", 0);
				mode.Object.value = val;
				_4 = ((val >> 0));
				if (_4 === (1)) {
					mode.Object.label = $externalize("Access Point (AP)", $String);
				} else if (_4 === (2)) {
					mode.Object.label = $externalize("Station (Client)", $String);
				} else if (_4 === (3)) {
					mode.Object.label = $externalize("Client with Failover to AP", $String);
				} else {
					_i++;
					continue;
				}
				modes.push($externalize(mode, structType$7));
				_i++;
			}
			return new $jsObjectPtr(modes);
		})), hvue.Computed("mode_ap", (function(vm) {
			var vm;
			return new P4wnP1_grpc.WiFiWorkingMode(1);
		})), hvue.Computed("mode_sta", (function(vm) {
			var vm;
			return new P4wnP1_grpc.WiFiWorkingMode(2);
		})), hvue.Computed("mode_failover", (function(vm) {
			var vm;
			return new P4wnP1_grpc.WiFiWorkingMode(3);
		})), hvue.Method("reset", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateCurrentWifiSettingsFromDeployed", $String));
		}))), hvue.Method("deploy", new funcType$44((function(vm, wifiSettings) {
			var vm, wifiSettings;
			vm.Object.$store.dispatch($externalize("deployWifiSettings", $String), $externalize(wifiSettings, ptrType$17));
		}))), hvue.Method("updateStoredSettingsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredWifiSettingsList", $String));
		}))), hvue.Method("store", new funcType$33((function(vm, name) {
			var name, sReq, vm;
			sReq = NewWifiRequestSettingsStorage();
			sReq.Object.TemplateName = $externalize($internalize(name, $String), $String);
			sReq.Object.Settings = $externalize(new jsWiFiSettings.ptr(vm.Object.$store.state.wifiState.CurrentSettings, "", false, "", 0, 0, 0, false, false, ptrType$87.nil, null), ptrType$17);
			console.log("Storing :", sReq);
			vm.Object.$store.dispatch($externalize("storeWifiSettings", $String), $externalize(sReq, ptrType$42));
			vm.Set("showStoreModal", new $Bool(false));
		}))), hvue.Method("load", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("loadWifiSettings", $String), name);
		}))), hvue.Method("deployStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deployStoredWifiSettings", $String), name);
		}))), hvue.Method("deleteStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deleteStoredWifiSettings", $String), name);
		}))), hvue.Computed("deploying", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.deployingWifiSettings);
		})), hvue.Mounted((function(vm) {
			var vm;
			console.log("wifi component mounted");
			vm.Object.$store.dispatch($externalize("updateStoredWifiSettingsList", $String));
			vm.Object.$store.dispatch($externalize("updateCurrentWifiSettingsFromDeployed", $String));
		}))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsWiFi, $c: true, $r, $s};return $f;
	};
	$pkg.InitComponentsWiFi = InitComponentsWiFi;
	CompUSBSettingsData.ptr.prototype.UpdateFromDeployedGadgetSettings = function(vm) {
		var c, vm;
		c = this;
		vm.Object.$store.dispatch($externalize("updateCurrentUSBSettings", $String));
	};
	CompUSBSettingsData.prototype.UpdateFromDeployedGadgetSettings = function(vm) { return this.$val.UpdateFromDeployedGadgetSettings(vm); };
	CompUSBSettingsData.ptr.prototype.ApplyGadgetSettings = function(vm) {
		var c, vm;
		c = this;
		vm.Object.$store.dispatch($externalize("deployCurrentUSBSettings", $String));
	};
	CompUSBSettingsData.prototype.ApplyGadgetSettings = function(vm) { return this.$val.ApplyGadgetSettings(vm); };
	InitCompUSBSettings = function() {
		var {_arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		_arg = hvue.Template("\n<q-page padding>\n\t<ums-settings :show=\"ShowUmsModal\" @show=\"ShowUmsModal=$event\" v-model=\"currentGadgetSettings.UmsSettings\" />\n\n\t<select-string-from-array :values=\"$store.state.StoredUSBSettingsList\" v-model=\"showLoadModal\" title=\"Load USB gadget settings\" @load=\"load($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<select-string-from-array :values=\"$store.state.StoredUSBSettingsList\" v-model=\"showDeployStoredModal\" title=\"Deploy stored USB gadget settings\" @load=\"deployStored($event)\" @delete=\"deleteStored($event)\" with-delete></select-string-from-array>\n\t<modal-string-input v-model=\"showStoreModal\" title=\"Store current USB gadget Settings\" @save=\"store($event)\"></modal-string-input>\n\n\n\t<div class=\"row gutter-sm\">\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n\t\t\t\t<q-card-title>\n\t\t\t\t\tUSB Gadget Settings\n\t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" :loading=\"deploying\" color=\"primary\" @click=\"ApplyGadgetSettings\" label=\"deploy\" icon=\"launch\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"primary\" @click=\"updateStoredSettingsList(); showDeployStoredModal=true\" label=\"deploy stored\" icon=\"settings_backup_restore\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"secondary\" @click=\"UpdateFromDeployedGadgetSettings\" label=\"reset\" icon=\"autorenew\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"secondary\" @click=\"showStoreModal=true\" label=\"store\" icon=\"cloud_upload\"></q-btn></div>\n\t\t\t\t\t\t<div class=\"col-12 col-sm\"><q-btn class=\"fit\" color=\"warning\" @click=\"updateStoredSettingsList(); showLoadModal=true\" label=\"load stored\" icon=\"cloud_download\"></q-btn></div>\n\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\n\n\t\t\t</q-card>\n\t\t</div>\n\n\n\t\t<div class=\"col-12 col-lg\">\n\t\t<q-card class=\"full-height\">\n\t\t\t<q-alert v-show=\"deploying\" type=\"warning\">If you're connected via Ethernet over USB, you will loose connection during deployment (deadline exceeded error)\"</q-alert>\n\t\t\t<q-list link>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Enabled\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Enabled</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Enable/Disable USB gadget (if enabled, at least one function has to be turned on)</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Vendor ID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Example: 0x1d6b</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.Vid\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Product ID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Example: 0x1337</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.Pid\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Manufacturer Name</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel></q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.Manufacturer\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Product Name</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel></q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.Product\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Serial Number</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel></q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.Serial\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\t\t</q-card>\n\t\t</div>\n\t\t<div class=\"col-12 col-lg\">\n\t\t<q-card class=\"full-height\">\n\t\t\t<q-list link>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_CDC_ECM\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>CDC ECM</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Ethernet over USB for Linux, Unix and OSX</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\n\n\t\t\t\t<q-collapsible icon=\"settings_ethernet\" label=\"MAC addresses for CDC ECM\" v-show=\"currentGadgetSettings.Use_CDC_ECM\" indent>\n\t\t\t\t\t<q-item tag=\"label\" indent>\n\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t<q-item-tile label>Host Address</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile sublabel>MAC of USB adapter on remote host (format: AA:BB:CC:DD:EE:FF)</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.CdcEcmSettings.HostAddr\" inverted></q-input>\n\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t</q-item>\n\t\t\t\t\t<q-item tag=\"label\" indent>\n\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t<q-item-tile label>Device Address</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile sublabel>MAC address on P4wnP1's end (format: AA:BB:CC:DD:EE:FF)</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.CdcEcmSettings.DevAddr\" inverted></q-input>\n\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t</q-item>\n\t\t\t\t</q-collapsible>\n\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_RNDIS\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>RNDIS</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Ethernet over USB for Windows (and some Linux kernels)</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\n\t\t\t\t<q-collapsible icon=\"settings_ethernet\" label=\"MAC addresses for RNDIS\" v-show=\"currentGadgetSettings.Use_RNDIS\" indent>\n\t\t\t\t\t<q-item tag=\"label\" ident>\n\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t<q-item-tile label>Host Address</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile sublabel>MAC of USB adapter on remote host - could get overwritten by host (format: AA:BB:CC:DD:EE:FF)</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.RndisSettings.HostAddr\" inverted></q-input>\n\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t</q-item>\n\t\t\t\t\t<q-item tag=\"label\" ident>\n\t\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t\t<q-item-tile label>Device Address</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile sublabel>MAC address on P4wnP1's end (format: AA:BB:CC:DD:EE:FF)</q-item-tile>\n\t\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t\t<q-input v-model=\"currentGadgetSettings.RndisSettings.DevAddr\" inverted></q-input>\n\t\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t\t</q-item-main>\n\t\t\t\t\t</q-item>\n\t\t\t\t</q-collapsible>\n\n\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_HID_KEYBOARD\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Keyboard</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>HID Keyboard functionality (needed for HID Script)</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_HID_MOUSE\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Mouse</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>HID Mouse functionality (needed for HID Script)</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_HID_RAW\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Custom HID device</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Raw HID device function, used for covert channel</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_SERIAL\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Serial Interface</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Provides a serial port over USB</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"currentGadgetSettings.Use_UMS\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Mass Storage</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>Emulates USB flash drive or CD-ROM</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t\t<q-item-side right v-if=\"currentGadgetSettings.Use_UMS\">\n\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" flat @click=\"ShowUmsModal=true\" /></div>\n\t\t\t\t\t</q-item-side>\n\n\t\t\t\t</q-item>\n\t\t\t</q-list>\t\n\t\t</q-card>\n\t\t</div>\n\t\n\t</div>\n</q-page>\n\n");
		_arg$1 = hvue.DataFunc(newCompUSBSettingsData);
		_arg$2 = hvue.MethodsOf(new CompUSBSettingsData.ptr(null, ptrType$26.nil, false, false, false, false, false, false, false));
		_r$1 = hvue.Computed("currentGadgetSettings", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.currentGadgetSettings);
		})); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$3 = _r$1;
		_r$2 = hvue.Computed("deploying", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.deployingGadgetSettings);
		})); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$4 = _r$2;
		_r$3 = hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateCurrentUSBSettings", $String));
		})); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$5 = _r$3;
		_r$4 = hvue.Method("store", new funcType$33((function(vm, name) {
			var name, sReq, vm;
			sReq = NewUSBRequestSettingsStorage();
			sReq.Object.TemplateName = $externalize($internalize(name, $String), $String);
			sReq.Object.Settings = $externalize(new jsGadgetSettings.ptr(vm.Object.$store.state.currentGadgetSettings, false, "", "", "", "", "", false, false, false, false, false, false, false, ptrType$33.nil, ptrType$33.nil, ptrType$34.nil), ptrType$26);
			console.log("Storing :", sReq);
			vm.Object.$store.dispatch($externalize("storeUSBSettings", $String), $externalize(sReq, ptrType$40));
			vm.Set("showStoreModal", new $Bool(false));
		}))); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
		_arg$6 = _r$4;
		_r$5 = hvue.Method("load", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("loadUSBSettings", $String), name);
		}))); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
		_arg$7 = _r$5;
		_r$6 = hvue.Method("deleteStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deleteStoredUSBSettings", $String), name);
		}))); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
		_arg$8 = _r$6;
		_arg$9 = hvue.Method("deployStored", new funcType$33((function(vm, name) {
			var name, vm;
			console.log("Loading :", $internalize(name, $String));
			vm.Object.$store.dispatch($externalize("deployStoredUSBSettings", $String), name);
		})));
		_arg$10 = hvue.Method("updateStoredSettingsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredUSBSettingsList", $String));
		})));
		$r = hvue.NewComponent("usb-settings", new sliceType$16([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _arg$10])); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("ums-settings", new sliceType$16([hvue.Template("\n\t<q-modal v-model=\"visible\">\n\t\t<q-modal-layout>\n\t\t\t<q-toolbar slot=\"header\">\n\t\t\t\t<q-toolbar-title>\n\t\t\t\t\tUSB Mass Storage\n\t\t\t\t</q-toolbar-title>\n\t\t\t</q-toolbar>\n\n\t\t\t<q-list>\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-side>\n\t\t\t\t\t\t<q-toggle v-model=\"value.Cdrom\" @input=\"value.File=''\"></q-toggle>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>CD-Rom</q-item-tile>\n\t\t\t\t\t\t<q-item-tile sublabel>If enabled, a CD-ROM drive is emulated instead of a writable flashdrive</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\n\n\t\t\t<q-item tag=\"div\" class=\"col-12\">\n\t\t\t\t<select-string-from-array :values=\"value.Cdrom ? $store.state.UmsImageListCdrom : $store.state.UmsImageListFlashdrive\"  v-model=\"ShowImageSelect\" title=\"Select image\" @load=\"value.File=$event\"></select-string-from-array>\n\t\t\t\t<q-item-side icon=\"archive\" color primary />\n\t\t\t\t<q-item-main>\n\t\t\t\t\t<q-item-tile label>Image file to use</q-item-tile>\n<!--\n\t\t\t\t\t<q-item-tile sublabel>If not empty, the selected TriggerActions are deployed along with the master template</q-item-tile>\n-->\n\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t<div class=\"row no-wrap\">\n\t\t\t\t\t\t\t<div class=\"fit\">\n\t\t\t\t\t\t\t\t<q-input v-model=\"value.File\" color=\"primary\" inverted readonly clearable></q-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div><q-btn icon=\"more\" color=\"primary\" @click=\"updateFileLists();ShowImageSelect=true\" flat /></div>\n\t\t\t\t\t\t\t<div><q-btn v-if=\"value.File.length > 0\" icon=\"clear\" color=\"primary\" @click=\"value.File=''\" flat /></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</q-item-tile>\n\t\t\t\t</q-item-main>\n\t\t\t</q-item>\n\n\n\n\t\t\t</q-list>\n\n\n\t\t\t<q-list slot=\"footer\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</q-list>\n\n\t\t</q-modal-layout>\n\t</q-modal>\n\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$18.ptr(O(), false);
			data.Object.ShowImageSelect = $externalize(false, $Bool);
			return data;
		})), hvue.PropObj("value", sliceType$21.nil), hvue.PropObj("show", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))])), hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.show);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("show", $String), newValue);
		})), hvue.Method("updateFileLists", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateUmsImageCdromList", $String));
			vm.Object.$store.dispatch($externalize("updateUmsImageFlashdriveList", $String));
		}))), hvue.Mounted((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateUmsImageCdromList", $String));
			vm.Object.$store.dispatch($externalize("updateUmsImageFlashdriveList", $String));
		}))])); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompUSBSettings, $c: true, $r, _arg, _arg$1, _arg$10, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, $s};return $f;
	};
	$pkg.InitCompUSBSettings = InitCompUSBSettings;
	newCompUSBSettingsData = function(vm) {
		var data, vm;
		data = new CompUSBSettingsData.ptr(new ($global.Object)(), ptrType$26.nil, false, false, false, false, false, false, false);
		data.Object.gadgetSettings = $externalize(NewUSBGadgetSettings(), ptrType$26);
		data.Object.showStoreModal = $externalize(false, $Bool);
		data.Object.showLoadModal = $externalize(false, $Bool);
		data.Object.showDeployStoredModal = $externalize(false, $Bool);
		data.Object.deployPending = $externalize(false, $Bool);
		data.Object.rndisDetails = $externalize(false, $Bool);
		data.Object.cdcEcmDetails = $externalize(false, $Bool);
		data.Object.ShowUmsModal = $externalize(false, $Bool);
		return data;
	};
	newCompToggleSwitchData = function(vm) {
		var newVM, vm;
		newVM = new CompToggleSwitchData.ptr(new ($global.Object)());
		return newVM;
	};
	InitCompToggleSwitch = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("toggle-switch", new sliceType$16([hvue.Template("\n<label class=\"toggle-switch\">\n   \t<input type=\"checkbox\" v-bind:checked=\"value\" v-on:change=\"$emit('input', $event.target.checked)\">\n   \t<div><span class=\"on\">On</span><span class=\"off\">Off</span></div>\n\t<span class=\"toggle-switch-slider\"></span>\n</label>\n"), hvue.DataFunc(newCompToggleSwitchData), hvue.PropObj("value", new sliceType$21([hvue.Types(new sliceType$22([2])), hvue.Required]))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompToggleSwitch, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompToggleSwitch = InitCompToggleSwitch;
	newCompStateData = function(vm) {
		var newVM, vm;
		newVM = new CompToggleSwitchData.ptr(O());
		return newVM;
	};
	InitCompState = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("state", new sliceType$16([hvue.Template("\n<div>\n  <p>{{ count }}</p>\n  <p>{{ text }}</p>\n  <input v-model=\"text\"></input>\n  <p>\n    <button @click=\"increment(1,2,3)\">+</button>\n\t<button @click=\"increment(2)\">+2</button>\n\t<button @click=\"actionincrement\">+x</button>\n    <button @click=\"decrement\">-</button>\n  </p>\n</div>\n"), hvue.DataFunc(newCompStateData), hvue.Computed("count", (function(vm) {
			var vm;
			return new $jsObjectPtr($global.store.state.count);
		})), hvue.ComputedWithGetSet("text", (function(vm) {
			var vm;
			return new $jsObjectPtr($global.store.state.text);
		}), (function(vm, newValue) {
			var newValue, vm;
			$global.store.commit($externalize("setText", $String), newValue);
		})), hvue.Method("actionincrement", new funcType$33((function(vm, count) {
			var count, vm;
			$global.store.dispatch($externalize("actiontest", $String));
		}))), hvue.Method("increment", new funcType$33((function(vm, count) {
			var count, vm;
			$global.store.commit($externalize("increment", $String), count);
		}))), hvue.Method("decrement", new funcType$34((function(vm) {
			var vm;
			$global.store.commit($externalize("decrement", $String));
		})))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompState, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompState = InitCompState;
	InitCompModal = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("modal", new sliceType$16([hvue.Template("\n <transition name=\"modal\">\n    <div class=\"modal-mask\">\n      <div class=\"modal-wrapper\">\n        <div class=\"modal-container\">\n\n          <div class=\"modal-header\">\n            <slot name=\"header\">\n              Modal window header\n            </slot>\n          </div>\n\n          <div class=\"modal-body\">\n            <slot name=\"body\">\n              body\n            </slot>\n          </div>\n\n          <div class=\"modal-footer\">\n            <slot name=\"footer\">\n\t\t\t\tfooter\n              <button class=\"modal-default-button\" @click=\"$emit('close')\">\n                OK\n              </button>\n            </slot>\n          </div>\n        </div>\n      </div>\n    </div>\n  </transition>\n")])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompModal, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompModal = InitCompModal;
	LogLevelClass = function(vm, level) {
		var _1, level, prefix, vm;
		prefix = "log-entry log-entry-level-";
		_1 = level;
		if (_1 === (1)) {
			return prefix + "critical";
		} else if (_1 === (2)) {
			return prefix + "error";
		} else if (_1 === (3)) {
			return prefix + "warning";
		} else if (_1 === (4)) {
			return prefix + "information";
		} else if (_1 === (5)) {
			return prefix + "verbose";
		} else {
			return prefix + "undefined";
		}
	};
	$pkg.LogLevelClass = LogLevelClass;
	InitCompLogger = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("logger", new sliceType$16([hvue.Template("\n<q-page padding>\n\t<q-card>\n\t\t<div>\n\t\t\t<q-table\n\t\t\t\t:data=\"logArray\"\n\t\t\t\t:columns=\"[{name:'logTime', field: 'time', label: 'Time', align: 'left'}, {name:'logSource', field: 'source', label: 'Source', align: 'left'}, {name:'logLevel', field: 'level', label: 'Level', align: 'left'}, {name:'logMessage', field: 'message', label: 'Message', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination=\"pagination\"\n\t\t\t\thide-bottom\n\t\t\t>\n  <q-td slot=\"body-cell-logTime\" slot-scope=\"props\" :props=\"props\">\n    {{ formatDate(props.value) }}\n  </q-td>\n\t\t\t</q-table>\n\t\t</div>\n\t</q-card>\n\n<!--\n\t<div class=\"logger\">\n\t<table class=\"log-entries\">\n\t\t<tr>\n\t\t\t<th>time</th>\n\t\t\t<th>source</th>\n\t\t\t<th>level</th>\n\t\t\t<th>message</th>\n\t\t</tr>\n        <tr v-for=\"(logEntry,idx) in logArray\" :key=\"idx\" :class=\"logLevelClass(logEntry.level)\">\n\t\t\t<td class=\"log-entry-time\">{{ logEntry.time }}</td>\n\t        <td class=\"log-entry-source\">{{ logEntry.source }}</td>\n\t\t\t<td class=\"log-entry-level\">{{ logEntry.level }}</td>\n\t\t\t<td class=\"log-entry-message\">{{ logEntry.message }}</td>\n\t    </tr>\n\t</table>\n\t</div>\n-->\n</q-page>\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$9.ptr(O(), ptrType$94.nil);
			data.Object.pagination = $externalize(newPagination(0, 1), ptrType$94);
			return data;
		})), hvue.Method("logLevelClass", new funcType$45(LogLevelClass)), hvue.PropObj("max-entries", new sliceType$21([hvue.Types(new sliceType$22([1])), hvue.Default(new $Int(5))])), hvue.Computed("classFromLevel", (function(vm) {
			var vm;
			return new $String("info");
		})), hvue.Method("formatDate", new funcType$46((function(vm, timestamp) {
			var timestamp, vm;
			return new $jsObjectPtr($global.Quasar.utils.date.formatDate(timestamp, $externalize("YYYY-MM-DD HH:mm:ss Z", $String)));
		}))), hvue.Computed("logArray", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.EventProcessor.logArray);
		}))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompLogger, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompLogger = InitCompLogger;
	newCompHIDScriptCodeEditorData = function(vm) {
		var data, vm;
		data = new CompHIDScriptCodeEditorData.ptr(O(), ptrType$99.nil);
		data.Object.codemirrorOptions = $externalize(new CodeMirrorOptionsType.ptr(O(), ptrType$100.nil, false, false, false, ptrType$101.nil), ptrType$99);
		$internalize(data.Object.codemirrorOptions, ptrType$99).Object.mode = $externalize(new CodeMirrorMode.ptr(O(), "", false), ptrType$100);
		$internalize($internalize(data.Object.codemirrorOptions, ptrType$99).Object.mode, ptrType$100).Object.name = $externalize("text/javascript", $String);
		$internalize($internalize(data.Object.codemirrorOptions, ptrType$99).Object.mode, ptrType$100).Object.globalVars = $externalize(true, $Bool);
		$internalize(data.Object.codemirrorOptions, ptrType$99).Object.extraKeys = $externalize(new CodeMirrorExtraKeys.ptr(O(), ""), ptrType$101);
		$internalize($internalize(data.Object.codemirrorOptions, ptrType$99).Object.extraKeys, ptrType$101).Object["Ctrl-Space"] = $externalize("autocomplete", $String);
		$internalize(data.Object.codemirrorOptions, ptrType$99).Object.lineNumbers = $externalize(true, $Bool);
		$internalize(data.Object.codemirrorOptions, ptrType$99).Object.autoCloseBrackets = $externalize(true, $Bool);
		return data;
	};
	InitComponentsHIDScript = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("hid-script-code-editor", new sliceType$16([hvue.Template("\n\t<q-card class=\"full-height\">\n<!--\n  \t\t<q-card-title>\n    \t\tHIDScript editor\n  \t\t</q-card-title>\n-->\n\t\t<q-card-main>\n\t\t\t<codemirror v-model=\"scriptContent\" :options=\"codemirrorOptions\"></codemirror>\n\t  \t</q-card-main>\n\t\n\t</q-card>\n"), hvue.DataFunc(newCompHIDScriptCodeEditorData), hvue.ComputedWithGetSet("scriptContent", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.currentHIDScriptSource);
		}), (function(vm, newScriptContent) {
			var newScriptContent, vm;
			vm.Object.$store.commit($externalize("setCurrentHIDScriptSource", $String), newScriptContent);
		}))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("hid-script", new sliceType$16([hvue.Template("\n<q-page padding>\n\t<ransom-note v-model=\"ShowRansom\"></ransom-note>\n\n\t<modal-string-input v-model=\"ShowStoreHIDScriptModal\" title=\"Store HIDScript\" @save=\"storeHIDScript($event)\"></modal-string-input>\n\t<select-string-from-array :values=\"$store.state.StoredHIDScriptsList\" v-model=\"ShowLoadHIDScriptModal\" title=\"Load HIDScript to editor\" @load=\"loadHIDScript($event)\"></select-string-from-array>\n\t<select-string-from-array :values=\"$store.state.StoredHIDScriptsList\" v-model=\"ShowLoadHIDScriptPrependModal\" title=\"Load HIDScript to editor\" @load=\"loadHIDScriptPrepend($event)\"></select-string-from-array>\n\n\n\t<div class=\"row gutter-sm\">\n\n\t\t<div class=\"col-12\">\n\t\t\t<q-card>\n  \t\t\t\t<q-card-title>\n    \t\t\t\tHIDScript editor\n  \t\t\t\t</q-card-title>\n\n\t\t\t\t<q-card-main>\n\t\t\t\t\t<div class=\"row gutter-sm\">\n\t    \t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"primary\" label=\"run\" @click=\"SendAndRun()\" icon=\"play_circle_filled\" /></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"secondary\" label=\"store\" icon=\"cloud_upload\" @click=\"ShowStoreHIDScriptModal=true\" /></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" label=\"load & replace\" icon=\"cloud_download\" @click=\"updateStoredHIDScriptsList(); ShowLoadHIDScriptModal=true\"/></div>\n    \t\t\t\t\t<div class=\"col-6 col-sm\"><q-btn class=\"fit\" color=\"warning\" label=\"load & prepend\" icon=\"add_to_photos\" @click=\"updateStoredHIDScriptsList(); ShowLoadHIDScriptPrependModal=true\"/></div>\n    \t\t\t\t\t<div class=\"col-12 col-sm lg\"><q-btn class=\"fit\" color=\"negative\" label=\"import DuckyScript\" icon=\"accessible\" @click=\"ShowRansom=true\"/></div>\n\t\t\t\t\t</div>\n  \t\t\t\t</q-card-main>\n\n\t\t\t</q-card>\n\t\t</div>\n\n\n\t\t<div class=\"col-12 col-md-7 col-lg-8 col-xl-9\">\n\t\t\t<hid-script-code-editor></hid-script-code-editor>\n\t\t</div>\n\t\t<div class=\"col-12 col-md-5 col-lg-4 col-xl-3\">\n\t\t\t<hid-job-overview></hid-job-overview>\n\t\t</div>\n\t\t<div class=\"col-12\" style=\"overflow: auto; max-height: 40vh;\">\n\t\t\t<hid-job-event-overview></hid-job-event-overview>\n\t\t</div>\n\t</div>\n</q-page>\n"), hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$19.ptr(O(), false, false, false, false);
			data.Object.ShowLoadHIDScriptModal = $externalize(false, $Bool);
			data.Object.ShowLoadHIDScriptPrependModal = $externalize(false, $Bool);
			data.Object.ShowStoreHIDScriptModal = $externalize(false, $Bool);
			data.Object.ShowRansom = $externalize(false, $Bool);
			return data;
		})), hvue.Method("updateStoredHIDScriptsList", new funcType$34((function(vm) {
			var vm;
			vm.Object.$store.dispatch($externalize("updateStoredHIDScriptsList", $String));
		}))), hvue.Method("loadHIDScript", new funcType$47((function(vm, name) {
			var name, updateReq, vm;
			vm.Object.$q.notify($externalize("load  " + name, $String));
			updateReq = new jsLoadHidScriptSourceReq.ptr(O(), "", 0);
			updateReq.Object.FileName = $externalize(name, $String);
			updateReq.Object.Mode = 2;
			vm.Object.$store.dispatch($externalize("updateCurrentHidScriptSourceFromRemoteFile", $String), $externalize(updateReq, ptrType$41));
		}))), hvue.Method("loadHIDScriptPrepend", new funcType$47((function(vm, name) {
			var name, updateReq, vm;
			vm.Object.$q.notify($externalize("load prepend " + name, $String));
			updateReq = new jsLoadHidScriptSourceReq.ptr(O(), "", 0);
			updateReq.Object.FileName = $externalize(name, $String);
			updateReq.Object.Mode = 0;
			vm.Object.$store.dispatch($externalize("updateCurrentHidScriptSourceFromRemoteFile", $String), $externalize(updateReq, ptrType$41));
		}))), hvue.Method("storeHIDScript", new funcType$33((function(vm, name) {
			var name, vm;
			vm.Object.$q.notify($externalize("store " + $internalize(name, $String), $String));
			vm.Object.$store.dispatch($externalize("storeCurrentHidScriptSourceToRemoteFile", $String), name);
		}))), hvue.Method("SendAndRun", new funcType$34((function(vm) {
			var sourceCode, vm;
			sourceCode = $internalize(vm.Object.$store.state.currentHIDScriptSource, $String);
			vm.Object.$store.dispatch($externalize("sendAndRunHIDScript", $String), $externalize(sourceCode, $String));
		})))])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitComponentsHIDScript, $c: true, $r, $s};return $f;
	};
	$pkg.InitComponentsHIDScript = InitComponentsHIDScript;
	newCompHIDJobsData = function(vm) {
		var cc, vm;
		cc = new CompHIDJobsData.ptr(new ($global.Object)());
		return cc;
	};
	InitCompHIDJobs = function() {
		var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$2, _r$3, $s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("hid-job-overview", new sliceType$16([hvue.Template("\n\t<q-card class=\"full-height\">\n\t\t<q-list>\n\t\t\t<q-collapsible opened icon-toggle>\n\t\t\t\t<template slot=\"header\">\n\t\t\t\t\t<q-item-main label=\"Running jobs\" :sublabel=\"'(' + $store.getters.hidjobsRunning.length + ' running jobs)'\"/>\n\t\t\t\t\t<q-item-side v-if=\"$store.getters.hidjobsRunning.length > 0\" right>\n\t\t\t\t\t\t<q-btn icon=\"cancel\" color=\"red\" @click=\"$store.dispatch('cancelAllHIDJobs')\" round inverted flat>\n\t\t\t\t\t\t\t<q-tooltip>\n\t\t\t\t\t\t\t\tcancel all running HIDScript jobs\n\t\t\t\t\t\t\t</q-tooltip>\n\t\t\t\t\t\t</q-btn>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t</template>\n\t\t\t\t<hid-job-overview-item v-for=\"job in $store.getters.hidjobsRunning\" :job=\"job\" :key=\"job.id\"></hid-job-overview-item>\n\t\t\t</q-collapsible>\n\t\t</q-list>\n\n\t\t<q-list>\n\t\t\t<q-collapsible opened icon-toggle>\n\t\t\t\t<template slot=\"header\">\n\t\t\t\t\t<q-item-main label=\"Succeeded\" :sublabel=\"'(' + $store.getters.hidjobsSucceeded.length + ' successful jobs)'\"/>\n\t\t\t\t\t<q-item-side v-if=\"$store.getters.hidjobsSucceeded.length > 0\" right>\n\t\t\t\t\t\t<q-btn icon=\"delete\" color=\"red\" @click=\"$store.dispatch('removeSucceededHidJobs')\" round inverted flat>\n\t\t\t\t\t\t\t<q-tooltip>\n\t\t\t\t\t\t\t\tdelete succeeded HID jobs from list\n\t\t\t\t\t\t\t</q-tooltip>\n\t\t\t\t\t\t</q-btn>\n\t\t\t\t\t</q-item-side>\n\t\t\t\t</template>\n\t\t\t\t<hid-job-overview-item v-for=\"job in $store.getters.hidjobsSucceeded\" :job=\"job\" :key=\"job.id\"></hid-job-overview-item>\n\t\t\t</q-collapsible>\n\t\t</q-list>\n\t\t<q-list>\n\t\t\t<q-collapsible  opened icon-toggle>\n\t\t\t\t<template slot=\"header\">\n\t\t\t\t\t<q-item-main label=\"Failed\" :sublabel=\"'(' + $store.getters.hidjobsFailed.length + ' failed jobs)'\"/>\n\t\t\t\t\t<q-item-side v-if=\"$store.getters.hidjobsFailed.length > 0\" right>\n\t\t\t\t\t\t<q-btn icon=\"delete\" color=\"red\" @click=\"$store.dispatch('removeFailedHidJobs')\" round inverted flat>\n\t\t\t\t\t\t\t<q-tooltip>\n\t\t\t\t\t\t\t\tdelete failed HID jobs from list\n\t\t\t\t\t\t\t</q-tooltip>\n\t\t\t\t\t\t</q-btn>\n\n\t\t\t\t\t</q-item-side>\n\t\t\t\t</template>\n\t\t\t\t<hid-job-overview-item v-for=\"job in $store.getters.hidjobsFailed\" :job=\"job\" :key=\"job.id\"></hid-job-overview-item>\n\t\t\t</q-collapsible>\n\t\t</q-list>\n\t</q-card>\n\n"), hvue.DataFunc(newCompHIDJobsData), hvue.Computed("jobs", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.getters.hidjobs);
		}))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		_arg = hvue.Template("\n<q-item highlight>\n\t<job-detail-modal v-model=\"ShowDetails\" :job=\"job\"></job-detail-modal>\n\n\t<q-item-side :icon=\"jobicon\" :color=\"jobcolor\" />\n\t<q-item-main>\n\t\t<q-item-tile label>Job {{ job.id }}</q-item-tile>\n\t\t<q-item-tile sublabel>State {{ jobstate }} </q-item-tile>\n\t</q-item-main>\n\n\n   \t<q-item-side right>\n\t\t<div class=\"row no-wrap\">\n\t\t\t<div v-if=\"!job.hasSucceeded && !job.hasFailed\">\n\t\t\t\t<q-btn flat round dense color=\"negative\" icon=\"cancel\" @click=\"cancel\">\n\t\t\t\t\t<q-tooltip>\n\t\t\t\t\t\tcancel HIDScript job {{ job.id }}\n\t\t\t\t\t</q-tooltip>\n\t\t\t\t</q-btn>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<q-btn flat round dense icon=\"info\" @click=\"ShowDetails=true\">\n\t\t\t\t\t<q-tooltip>\n\t\t\t\t\t\tshow HIDScript job details\n\t\t\t\t\t</q-tooltip>\n\t\t\t\t</q-btn>\n\t\t\t</div>\n\t\t</div>\n\t</q-item-side>\n\n</q-item>\n");
		_r$1 = hvue.DataFunc((function(vm) {
			var data, vm;
			data = new structType$20.ptr(O(), false);
			data.Object.ShowDetails = $externalize(false, $Bool);
			return data;
		})); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
		_arg$1 = _r$1;
		_r$2 = hvue.Method("cancel", new funcType$34((function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			console.log("Aborting job :", $internalize(job.Object.id, $Int64));
			vm.Object.$store.dispatch($externalize("cancelHIDJob", $String), $externalize($internalize(job.Object.id, $Int64), $Int64));
		}))); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
		_arg$2 = _r$2;
		_r$3 = hvue.Computed("jobstate", (function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			if (!!(job.Object.hasFailed) && !!!(job.Object.hasSucceeded)) {
				return new $String("FAILED");
			} else if (!!(job.Object.hasSucceeded) && !!!(job.Object.hasFailed)) {
				return new $String("SUCCEEDED");
			} else if (!(!!(job.Object.hasFailed) || !!(job.Object.hasSucceeded))) {
				return new $String("RUNNING");
			} else {
				return new $String("UNKNOWN_STATE");
			}
		})); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
		_arg$3 = _r$3;
		_arg$4 = hvue.Computed("jobcolor", (function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			if (!!(job.Object.hasFailed) && !!!(job.Object.hasSucceeded)) {
				return new $String("negative");
			} else if (!!(job.Object.hasSucceeded) && !!!(job.Object.hasFailed)) {
				return new $String("positive");
			} else if (!(!!(job.Object.hasFailed) || !!(job.Object.hasSucceeded))) {
				return new $String("warning");
			} else {
				return new $String("info");
			}
		}));
		_arg$5 = hvue.Computed("jobicon", (function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			if (!!(job.Object.hasFailed) && !!!(job.Object.hasSucceeded)) {
				return new $String("error");
			} else if (!!(job.Object.hasSucceeded) && !!!(job.Object.hasFailed)) {
				return new $String("check_circle");
			} else if (!(!!(job.Object.hasFailed) || !!(job.Object.hasSucceeded))) {
				return new $String("sync");
			} else {
				return new $String("help");
			}
		}));
		_arg$6 = hvue.PropObj("job", new sliceType$21([hvue.Required]));
		$r = hvue.NewComponent("hid-job-overview-item", new sliceType$16([_arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.NewComponent("job-detail-modal", new sliceType$16([hvue.Template("\n<q-modal v-model=\"visible\">\n\t<q-modal-layout>\n\t\t<q-toolbar slot=\"header\">\n\t\t\t<q-toolbar-title>\n\t\t\t\tHIDScript job details\n\t\t\t</q-toolbar-title>\n\t\t</q-toolbar>\n\n\t\t<div class=\"row gutter-sm\">\n\t\t\t<div class=\"col-3\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Job ID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input readonly v-model=\"job.id\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\t\t\t<div class=\"col-3\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>VM ID</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input readonly v-model=\"job.vmId\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\t\t\t<div class=\"col-6\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>Sate</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input readonly :color=\"jobcolor\" v-model=\"jobstate\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>HIDScript result</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input readonly :color=\"jobcolor\" v-model=\"job.textResult\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile label>HIDScript source</q-item-tile>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-input readonly type=\"textarea\" v-model=\"job.textSource\" inverted></q-input>\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\n\n\t\t\t<div class=\"col-12\">\n\t\t\t\t<q-item tag=\"label\">\n\t\t\t\t\t<q-item-main>\n\t\t\t\t\t\t<q-item-tile>\n\t\t\t\t\t\t\t<q-btn color=\"secondary\" v-close-overlay label=\"close\" />\n\t\t\t\t\t\t</q-item-tile>\n\t\t\t\t\t</q-item-main>\n\t\t\t\t</q-item>\n\t\t\t</div>\n\t\t</div>\n\t</q-modal-layout>\n</q-modal>\n"), hvue.ComputedWithGetSet("visible", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.value);
		}), (function(vm, newValue) {
			var newValue, vm;
			vm.Object.$emit($externalize("input", $String), newValue);
		})), hvue.PropObj("value", new sliceType$21([hvue.Required, hvue.Types(new sliceType$22([2]))])), hvue.PropObj("job", new sliceType$21([hvue.Required])), hvue.Computed("jobstate", (function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			if (!!(job.Object.hasFailed) && !!!(job.Object.hasSucceeded)) {
				return new $String("FAILED");
			} else if (!!(job.Object.hasSucceeded) && !!!(job.Object.hasFailed)) {
				return new $String("SUCCEEDED");
			} else if (!(!!(job.Object.hasFailed) || !!(job.Object.hasSucceeded))) {
				return new $String("RUNNING");
			} else {
				return new $String("UNKNOWN_STATE");
			}
		})), hvue.Computed("jobcolor", (function(vm) {
			var job, vm;
			job = new jsHidJobState.ptr(vm.Object.job, new $Int64(0, 0), new $Int64(0, 0), false, false, "", "", new $Int64(0, 0), "");
			if (!!(job.Object.hasFailed) && !!!(job.Object.hasSucceeded)) {
				return new $String("negative");
			} else if (!!(job.Object.hasSucceeded) && !!!(job.Object.hasFailed)) {
				return new $String("positive");
			} else if (!(!!(job.Object.hasFailed) || !!(job.Object.hasSucceeded))) {
				return new $String("warning");
			} else {
				return new $String("info");
			}
		}))])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompHIDJobs, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _r$1, _r$2, _r$3, $s};return $f;
	};
	$pkg.InitCompHIDJobs = InitCompHIDJobs;
	newCompHIDEventsData = function(vm) {
		var data, vm;
		data = new CompHIDEventsData.ptr(O(), ptrType$94.nil);
		data.Object.pagination = $externalize(newPagination(0, 1), ptrType$94);
		return data;
	};
	InitCompHIDEvents = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("hid-job-event-overview", new sliceType$16([hvue.Template("\n\t<q-card>\n<!--\t\t<div class=\"scroll\" style=\"overflow: auto;max-height: 20vh;\">\t-->\n\t\t<div>\n\t\t\t<q-table\n\t\t\t\t:data=\"events\"\n\t\t\t\t:columns=\"[{name:'timestamp', field: 'time', label: 'Time', align: 'left'}, {name:'type', field: 'evtype', label: 'Event Type', align: 'left'}, {name:'vmid', field: 'vmId', label: 'VM ID', align: 'left'}, {name:'jobid', field: 'jobId', label: 'Job ID', align: 'left'}, {name:'haserror', field: 'hasError', label: 'Has error', align: 'left'}, {name:'res', field: 'result', label: 'Result', align: 'left'}, {name:'errormsg', field: 'error', label: 'Error', align: 'left'}, {name:'msg', field: 'message', label: 'Message', align: 'left'}]\"\n\t\t\t\trow-key=\"name\"\n\t\t\t\t:pagination=\"pagination\"\n\t\t\t\thide-bottom\n\t\t\t>\n\n\t\t\t\t<q-td slot=\"body-cell-timestamp\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t{{ formatDate(props.value) }}\n\t\t\t\t</q-td>\n\n\t\t\t\t<q-td slot=\"body-cell-type\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t{{ evIdToString(props.value) }}\n\t\t\t\t</q-td>\n\t\t\t\t<q-td slot=\"body-cell-msg\" slot-scope=\"props\" :props=\"props\">\n\t\t\t\t\t{{ props.value.slice(0,30) }}\n\t\t\t\t\t<q-btn v-if=\"props.value.length > 30\" dense icon=\"more_horiz\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<q-popover>\n\t\t\t\t\t\t\t<div class=\"q-ma-md\" style=\"max-width: 400px; max-height: 400px;\">\n\t\t\t\t\t\t\t\t<pre>{{ props.value }}</pre>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</q-popover>\n\t\t\t\t\t</q-btn>\n\t\t\t\t</q-td>\n\t\t\t</q-table>\n\t\t</div>\n\t</q-card>\n"), hvue.DataFunc(newCompHIDEventsData), hvue.Computed("events", (function(vm) {
			var vm;
			return new $jsObjectPtr(vm.Object.$store.state.EventProcessor.eventHidArray);
		})), hvue.Method("formatDate", new funcType$46((function(vm, timestamp) {
			var timestamp, vm;
			return new $jsObjectPtr($global.Quasar.utils.date.formatDate(timestamp, $externalize("YYYY-MM-DD HH:mm:ss Z", $String)));
		}))), hvue.Method("evIdToString", new funcType$48((function(vm, evID) {
			var _entry, evID, res, vm;
			res = "";
			res = (_entry = $mapIndex(common_web.EventTypeHIDName,$Int64.keyFor(evID)), _entry !== undefined ? _entry.v : "");
			return res;
		})))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompHIDEvents, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompHIDEvents = InitCompHIDEvents;
	newCompEthernetAddressesData2 = function(vm) {
		var cc, vm;
		cc = new CompEthernetAddressesData2.ptr(new ($global.Object)());
		return cc;
	};
	InitCompEthernetAddresses2 = function() {
		var {$s, $r, $c} = $restore(this, {});
		/* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
		$r = hvue.NewComponent("ethernet-addresses", new sliceType$16([hvue.Template("\n<div>\n\t<table>\n\t<tr>\n\t\t<td>Host MAC address</td><td><input v-bind:value=\"settings.HostAddr\" v-on:input=\"$emit('hostAddrChange', $event.target.value)\"></td>\n\t</tr>\n\t<tr>\n\t\t<td>Device MAC address</td><td><input v-bind:value=\"settings.DevAddr\" v-on:input=\"$emit('devAddrChange', $event.target.value)\"></td>\n\t</tr>\n\t</table>\n</div>\n"), hvue.DataFunc(newCompEthernetAddressesData2), hvue.PropObj("settings", new sliceType$21([hvue.Types(new sliceType$22([4]))]))])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$s = -1; return;
		/* */ } return; } var $f = {$blk: InitCompEthernetAddresses2, $c: true, $r, $s};return $f;
	};
	$pkg.InitCompEthernetAddresses2 = InitCompEthernetAddresses2;
	O = function() {
		return new ($global.Object)();
	};
	$pkg.O = O;
	Alert = function(in$1) {
		var in$1;
		$global.alert($externalize(in$1, $emptyInterface));
	};
	$pkg.Alert = Alert;
	BytesToMD5 = function(input) {
		var dst, input, sum;
		sum = $clone(md5.Sum(input), arrayType);
		dst = $makeSlice(sliceType$10, hex.EncodedLen(16));
		hex.Encode(dst, new sliceType$10(sum));
		return ($bytesToString(dst));
	};
	$pkg.BytesToMD5 = BytesToMD5;
	ptrType$108.methods = [{prop: "GetUmsImageFlashdriveList", name: "GetUmsImageFlashdriveList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "GetUmsImageCdromList", name: "GetUmsImageCdromList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "GetStoredDBBackupList", name: "GetStoredDBBackupList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "DBBackup", name: "DBBackup", pkg: "", typ: $funcType([time.Duration, $String], [$error], false)}, {prop: "DBRestore", name: "DBRestore", pkg: "", typ: $funcType([time.Duration, $String], [$error], false)}, {prop: "GetStartupMasterTemplate", name: "GetStartupMasterTemplate", pkg: "", typ: $funcType([time.Duration], [$String, $error], false)}, {prop: "SetStartupMasterTemplate", name: "SetStartupMasterTemplate", pkg: "", typ: $funcType([time.Duration, $String], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "Reboot", name: "Reboot", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "GetGpioNamesList", name: "GetGpioNamesList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "DeployMasterTemplate", name: "DeployMasterTemplate", pkg: "", typ: $funcType([time.Duration, ptrType$7], [$error], false)}, {prop: "GetStoredMasterTemplateList", name: "GetStoredMasterTemplateList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "StoreMasterTemplate", name: "StoreMasterTemplate", pkg: "", typ: $funcType([time.Duration, ptrType$102], [$error], false)}, {prop: "GetStoredMasterTemplate", name: "GetStoredMasterTemplate", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$7, $error], false)}, {prop: "DeployStoredMasterTemplate", name: "DeployStoredMasterTemplate", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$7, $error], false)}, {prop: "DeleteStoredMasterTemplate", name: "DeleteStoredMasterTemplate", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "UploadContentToTempFile", name: "UploadContentToTempFile", pkg: "", typ: $funcType([time.Duration, sliceType$10], [$String, $error], false)}, {prop: "RunHIDScriptJob", name: "RunHIDScriptJob", pkg: "", typ: $funcType([time.Duration, $String], [ptrType$8, $error], false)}, {prop: "CancelHIDScriptJob", name: "CancelHIDScriptJob", pkg: "", typ: $funcType([time.Duration, $Uint32], [$error], false)}, {prop: "CancelAllHIDScriptJobs", name: "CancelAllHIDScriptJobs", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "GetStoredBluetoothSettingsList", name: "GetStoredBluetoothSettingsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "StoreBluetoothSettings", name: "StoreBluetoothSettings", pkg: "", typ: $funcType([time.Duration, ptrType$104], [$error], false)}, {prop: "GetStoredBluetoothSettings", name: "GetStoredBluetoothSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$9, $error], false)}, {prop: "DeployStoredBluetoothSettings", name: "DeployStoredBluetoothSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$9, $error], false)}, {prop: "DeleteStoredBluetoothSettings", name: "DeleteStoredBluetoothSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "DeleteStoredUSBSettings", name: "DeleteStoredUSBSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "DeleteStoredWifiSettings", name: "DeleteStoredWifiSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "DeleteStoredEthernetInterfaceSettings", name: "DeleteStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "DeleteStoredTriggerActionsSet", name: "DeleteStoredTriggerActionsSet", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "GetBluetoothAgentSettings", name: "GetBluetoothAgentSettings", pkg: "", typ: $funcType([time.Duration], [ptrType$10, $error], false)}, {prop: "DeployBluetoothAgentSettings", name: "DeployBluetoothAgentSettings", pkg: "", typ: $funcType([time.Duration, ptrType$10], [ptrType$10, $error], false)}, {prop: "GetBluetoothControllerInformation", name: "GetBluetoothControllerInformation", pkg: "", typ: $funcType([time.Duration], [ptrType$11, $error], false)}, {prop: "DeployBluetoothControllerInformation", name: "DeployBluetoothControllerInformation", pkg: "", typ: $funcType([time.Duration, ptrType$11], [ptrType$11, $error], false)}, {prop: "GetStoredUSBSettingsList", name: "GetStoredUSBSettingsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "StoreUSBSettings", name: "StoreUSBSettings", pkg: "", typ: $funcType([time.Duration, ptrType$105], [$error], false)}, {prop: "GetStoredUSBSettings", name: "GetStoredUSBSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$13, $error], false)}, {prop: "DeployStoredUSBSettings", name: "DeployStoredUSBSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$13, $error], false)}, {prop: "UploadBytesToFile", name: "UploadBytesToFile", pkg: "", typ: $funcType([time.Duration, $String, P4wnP1_grpc.AccessibleFolder, sliceType$10, $Bool], [$error], false)}, {prop: "DownloadFileToBytes", name: "DownloadFileToBytes", pkg: "", typ: $funcType([time.Duration, $String, P4wnP1_grpc.AccessibleFolder], [sliceType$10, $error], false)}, {prop: "GetStoredEthernetInterfaceSettingsList", name: "GetStoredEthernetInterfaceSettingsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "GetStoredBashScriptsList", name: "GetStoredBashScriptsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "GetStoredHIDScriptsList", name: "GetStoredHIDScriptsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "DeployedEthernetInterfaceSettings", name: "DeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration, ptrType$19], [$error], false)}, {prop: "GetStoredWifiSettingsList", name: "GetStoredWifiSettingsList", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "DeployWifiSettings", name: "DeployWifiSettings", pkg: "", typ: $funcType([time.Duration, ptrType$15], [ptrType$14, $error], false)}, {prop: "StoreWifiSettings", name: "StoreWifiSettings", pkg: "", typ: $funcType([time.Duration, ptrType$106], [$error], false)}, {prop: "GetStoredWifiSettings", name: "GetStoredWifiSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$15, $error], false)}, {prop: "DeployStoredWifiSettings", name: "DeployStoredWifiSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$14, $error], false)}, {prop: "GetWifiState", name: "GetWifiState", pkg: "", typ: $funcType([time.Duration], [ptrType$16, $error], false)}, {prop: "GetAllDeployedEthernetInterfaceSettings", name: "GetAllDeployedEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration], [ptrType$18, $error], false)}, {prop: "StoreEthernetInterfaceSettings", name: "StoreEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration, ptrType$107], [$error], false)}, {prop: "GetStoredEthernetInterfaceSettings", name: "GetStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$19, $error], false)}, {prop: "DeployStoredEthernetInterfaceSettings", name: "DeployStoredEthernetInterfaceSettings", pkg: "", typ: $funcType([time.Duration, ptrType$103], [$error], false)}, {prop: "GetRunningHidJobStates", name: "GetRunningHidJobStates", pkg: "", typ: $funcType([time.Duration], [sliceType$11, $error], false)}, {prop: "ListStoredTriggerActionSets", name: "ListStoredTriggerActionSets", pkg: "", typ: $funcType([time.Duration], [sliceType$9, $error], false)}, {prop: "StoreTriggerActionSet", name: "StoreTriggerActionSet", pkg: "", typ: $funcType([time.Duration, ptrType$21], [$error], false)}, {prop: "GetDeployedTriggerActionSet", name: "GetDeployedTriggerActionSet", pkg: "", typ: $funcType([time.Duration], [ptrType$21, $error], false)}, {prop: "DeployTriggerActionsSetReplace", name: "DeployTriggerActionsSetReplace", pkg: "", typ: $funcType([time.Duration, ptrType$21], [ptrType$21, $error], false)}, {prop: "DeployTriggerActionsSetRemove", name: "DeployTriggerActionsSetRemove", pkg: "", typ: $funcType([time.Duration, ptrType$21], [ptrType$21, $error], false)}, {prop: "DeployTriggerActionsSetUpdate", name: "DeployTriggerActionsSetUpdate", pkg: "", typ: $funcType([time.Duration, ptrType$21], [ptrType$21, $error], false)}, {prop: "DeployTriggerActionsSetAdd", name: "DeployTriggerActionsSetAdd", pkg: "", typ: $funcType([time.Duration, ptrType$21], [ptrType$21, $error], false)}, {prop: "DeployStoredTriggerActionsSetReplace", name: "DeployStoredTriggerActionsSetReplace", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$21, $error], false)}, {prop: "DeployStoredTriggerActionsSetAdd", name: "DeployStoredTriggerActionsSetAdd", pkg: "", typ: $funcType([time.Duration, ptrType$103], [ptrType$21, $error], false)}, {prop: "GetDeployedGadgetSettings", name: "GetDeployedGadgetSettings", pkg: "", typ: $funcType([time.Duration], [ptrType$13, $error], false)}, {prop: "DeployRemoteGadgetSettings", name: "DeployRemoteGadgetSettings", pkg: "", typ: $funcType([time.Duration, ptrType$13], [ptrType$13, $error], false)}, {prop: "ConnectionTest", name: "ConnectionTest", pkg: "", typ: $funcType([time.Duration], [$error], false)}, {prop: "StartEventListening", name: "StartEventListening", pkg: "", typ: $funcType([time.Duration], [P4wnP1_grpc.P4WNP1_EventListenClient, context.CancelFunc, $error], false)}];
	ptrType$77.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$35], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$35], false)}, {prop: "ChangeActionType", name: "ChangeActionType", pkg: "", typ: $funcType([actionType], [], false)}, {prop: "IsActionLog", name: "IsActionLog", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsActionBashScript", name: "IsActionBashScript", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsActionHidScript", name: "IsActionHidScript", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsActionDeploySettingsTemplate", name: "IsActionDeploySettingsTemplate", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsActionGroupSend", name: "IsActionGroupSend", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsActionGPIOOut", name: "IsActionGPIOOut", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ChangeTriggerType", name: "ChangeTriggerType", pkg: "", typ: $funcType([triggerType], [], false)}, {prop: "IsTriggerServiceStarted", name: "IsTriggerServiceStarted", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerSshLogin", name: "IsTriggerSshLogin", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerDhcpLeaseGranted", name: "IsTriggerDhcpLeaseGranted", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerWifiAPStarted", name: "IsTriggerWifiAPStarted", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerWifiConnectedAsSta", name: "IsTriggerWifiConnectedAsSta", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerUsbGadgetConnected", name: "IsTriggerUsbGadgetConnected", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerUsbGadgetDisconnected", name: "IsTriggerUsbGadgetDisconnected", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerGPIOIn", name: "IsTriggerGPIOIn", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerGroupReceive", name: "IsTriggerGroupReceive", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsTriggerGroupReceiveMulti", name: "IsTriggerGroupReceiveMulti", pkg: "", typ: $funcType([], [$Bool], false)}];
	jsTriggerActionSet.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$21], false)}];
	ptrType$28.methods = [{prop: "UpdateEntry", name: "UpdateEntry", pkg: "", typ: $funcType([ptrType$77], [], false)}, {prop: "DeleteEntry", name: "DeleteEntry", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}];
	ptrType$29.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$7], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$7], false)}];
	ptrType$38.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$102], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$102], [], false)}];
	ptrType$42.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$106], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$106], [], false)}];
	ptrType$40.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$105], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$105], [], false)}];
	jsGadgetSettings.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$13], false)}];
	ptrType$26.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$13], [], false)}];
	ptrType$80.methods = [{prop: "toLogEvent", name: "toLogEvent", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$84, $error], false)}, {prop: "toHidEvent", name: "toHidEvent", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$85, $error], false)}];
	ptrType$27.methods = [{prop: "UpdateEntry", name: "UpdateEntry", pkg: "", typ: $funcType([$Int64, $Int64, $Bool, $Bool, $String, $String, $Int64, $String], [], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "DeleteEntry", name: "DeleteEntry", pkg: "", typ: $funcType([$Int64], [], false)}];
	jsWiFiState.methods = [{prop: "ModeString", name: "ModeString", pkg: "", typ: $funcType([], [$String], false)}];
	ptrType$16.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$14], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$14], false)}];
	ptrType$17.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$15], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$15], [], false)}];
	ptrType$43.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$107], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$107], [], false)}];
	ptrType$18.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$109], [], false)}, {prop: "updateSingleInterface", name: "updateSingleInterface", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$31], [], false)}];
	ptrType$31.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$19], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$19], false)}, {prop: "CreateDhcpSettingsForInterface", name: "CreateDhcpSettingsForInterface", pkg: "", typ: $funcType([], [], false)}];
	ptrType$32.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$88], false)}, {prop: "AddRange", name: "AddRange", pkg: "", typ: $funcType([ptrType$91], [], false)}, {prop: "RemoveRange", name: "RemoveRange", pkg: "", typ: $funcType([ptrType$91], [], false)}, {prop: "AddOption", name: "AddOption", pkg: "", typ: $funcType([ptrType$92], [], false)}, {prop: "RemoveOption", name: "RemoveOption", pkg: "", typ: $funcType([ptrType$92], [], false)}, {prop: "AddStaticHost", name: "AddStaticHost", pkg: "", typ: $funcType([ptrType$93], [], false)}, {prop: "RemoveStaticHost", name: "RemoveStaticHost", pkg: "", typ: $funcType([ptrType$93], [], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$88], [], false)}];
	ptrType$91.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$89], [], false)}];
	ptrType$92.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([$Uint32, $String], [], false)}];
	ptrType$93.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$90], [], false)}];
	ptrType$22.methods = [{prop: "handleHidEvent", name: "handleHidEvent", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$85], [], false)}, {prop: "HandleEvent", name: "HandleEvent", pkg: "", typ: $funcType([ptrType$110], [], false)}];
	ptrType$39.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$104], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$104], [], false)}];
	ptrType$95.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$9], [], false)}, {prop: "fromASandCI", name: "fromASandCI", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$10, ptrType$11], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$9], false)}];
	ptrType$10.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$97], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$97], false)}];
	ptrType$12.methods = [{prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$98], [], false)}, {prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$98], false)}];
	ptrType$11.methods = [{prop: "toGo", name: "toGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([], [ptrType$96], false)}, {prop: "fromGo", name: "fromGo", pkg: "github.com/mame82/P4wnP1_aloa/web_client", typ: $funcType([ptrType$96], [], false)}];
	ptrType$111.methods = [{prop: "UpdateFromDeployedGadgetSettings", name: "UpdateFromDeployedGadgetSettings", pkg: "", typ: $funcType([ptrType$44], [], false)}, {prop: "ApplyGadgetSettings", name: "ApplyGadgetSettings", pkg: "", typ: $funcType([ptrType$44], [], false)}];
	VueRouterConfig.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Routes", name: "Routes", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"routes\""}]);
	VueRouterOption.init([ptrType$4], [], false);
	Rpc.init("github.com/mame82/P4wnP1_aloa/web_client", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: ptrType$5, tag: ""}, {prop: "Client", name: "Client", embedded: false, exported: true, typ: P4wnP1_grpc.P4WNP1Client, tag: ""}, {prop: "eventListeningOn", name: "eventListeningOn", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "eventListeningCtx", name: "eventListeningCtx", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "eventListeningCancel", name: "eventListeningCancel", embedded: false, exported: false, typ: context.CancelFunc, tag: ""}]);
	Quasar.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Version", name: "Version", embedded: false, exported: true, typ: $String, tag: "js:\"version\""}, {prop: "Theme", name: "Theme", embedded: false, exported: true, typ: $String, tag: "js:\"theme\""}, {prop: "Plugins", name: "Plugins", embedded: false, exported: true, typ: mapType, tag: "js:\"plugins\""}]);
	QuasarNotification.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: "js:\"message\""}, {prop: "Detail", name: "Detail", embedded: false, exported: true, typ: $String, tag: "js:\"detail\""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $String, tag: "js:\"type\""}, {prop: "Color", name: "Color", embedded: false, exported: true, typ: $String, tag: "js:\"color\""}, {prop: "TextColor", name: "TextColor", embedded: false, exported: true, typ: $String, tag: "js:\"textColor\""}, {prop: "Icon", name: "Icon", embedded: false, exported: true, typ: $String, tag: "js:\"icon\""}, {prop: "Position", name: "Position", embedded: false, exported: true, typ: $String, tag: "js:\"position\""}, {prop: "Timeout", name: "Timeout", embedded: false, exported: true, typ: $Uint, tag: "js:\"timeout\""}]);
	Promise.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "State", name: "State", embedded: false, exported: true, typ: $String, tag: "js:\"state\""}]);
	GlobalState.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Title", name: "Title", embedded: false, exported: true, typ: $String, tag: "js:\"title\""}, {prop: "CurrentHIDScriptSource", name: "CurrentHIDScriptSource", embedded: false, exported: true, typ: $String, tag: "js:\"currentHIDScriptSource\""}, {prop: "CurrentGadgetSettings", name: "CurrentGadgetSettings", embedded: false, exported: true, typ: ptrType$26, tag: "js:\"currentGadgetSettings\""}, {prop: "CurrentlyDeployingGadgetSettings", name: "CurrentlyDeployingGadgetSettings", embedded: false, exported: true, typ: $Bool, tag: "js:\"deployingGadgetSettings\""}, {prop: "CurrentlyDeployingWifiSettings", name: "CurrentlyDeployingWifiSettings", embedded: false, exported: true, typ: $Bool, tag: "js:\"deployingWifiSettings\""}, {prop: "EventProcessor", name: "EventProcessor", embedded: false, exported: true, typ: ptrType$22, tag: "js:\"EventProcessor\""}, {prop: "HidJobList", name: "HidJobList", embedded: false, exported: true, typ: ptrType$27, tag: "js:\"hidJobList\""}, {prop: "TriggerActionList", name: "TriggerActionList", embedded: false, exported: true, typ: ptrType$28, tag: "js:\"triggerActionList\""}, {prop: "IsModalEnabled", name: "IsModalEnabled", embedded: false, exported: true, typ: $Bool, tag: "js:\"isModalEnabled\""}, {prop: "IsConnected", name: "IsConnected", embedded: false, exported: true, typ: $Bool, tag: "js:\"isConnected\""}, {prop: "FailedConnectionAttempts", name: "FailedConnectionAttempts", embedded: false, exported: true, typ: $Int, tag: "js:\"failedConnectionAttempts\""}, {prop: "InterfaceSettings", name: "InterfaceSettings", embedded: false, exported: true, typ: ptrType$18, tag: "js:\"InterfaceSettings\""}, {prop: "WiFiState", name: "WiFiState", embedded: false, exported: true, typ: ptrType$16, tag: "js:\"wifiState\""}, {prop: "CurrentBluetoothControllerInformation", name: "CurrentBluetoothControllerInformation", embedded: false, exported: true, typ: ptrType$11, tag: "js:\"CurrentBluetoothControllerInformation\""}, {prop: "CurrentBluetoothAgentSettings", name: "CurrentBluetoothAgentSettings", embedded: false, exported: true, typ: ptrType$10, tag: "js:\"CurrentBluetoothAgentSettings\""}, {prop: "CurrentMasterTemplate", name: "CurrentMasterTemplate", embedded: false, exported: true, typ: ptrType$29, tag: "js:\"CurrentMasterTemplate\""}, {prop: "CurrentStartupMasterTemplateName", name: "CurrentStartupMasterTemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"CurrentStartupMasterTemplateName\""}, {prop: "StoredWifiSettingsList", name: "StoredWifiSettingsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredWifiSettingsList\""}, {prop: "StoredEthernetInterfaceSettingsList", name: "StoredEthernetInterfaceSettingsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredEthernetInterfaceSettingsList\""}, {prop: "StoredTriggerActionSetsList", name: "StoredTriggerActionSetsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredTriggerActionSetsList\""}, {prop: "StoredBashScriptsList", name: "StoredBashScriptsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredBashScriptsList\""}, {prop: "StoredHIDScriptsList", name: "StoredHIDScriptsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredHIDScriptsList\""}, {prop: "StoredUSBSettingsList", name: "StoredUSBSettingsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredUSBSettingsList\""}, {prop: "StoredBluetoothSettingsList", name: "StoredBluetoothSettingsList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredBluetoothSettingsList\""}, {prop: "StoredMasterTemplateList", name: "StoredMasterTemplateList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"StoredMasterTemplateList\""}, {prop: "DBBackupList", name: "DBBackupList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"DBBackupList\""}, {prop: "GpioNamesList", name: "GpioNamesList", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"GpioNamesList\""}, {prop: "UmsImageListCdrom", name: "UmsImageListCdrom", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"UmsImageListCdrom\""}, {prop: "UmsImageListFlashdrive", name: "UmsImageListFlashdrive", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"UmsImageListFlashdrive\""}, {prop: "ConnectRetryCount", name: "ConnectRetryCount", embedded: false, exported: true, typ: $Int, tag: "js:\"ConnectRetryCount\""}, {prop: "EventListenerRunning", name: "EventListenerRunning", embedded: false, exported: true, typ: $Bool, tag: "js:\"EventListenerRunning\""}, {prop: "EventListenerShouldBeRunning", name: "EventListenerShouldBeRunning", embedded: false, exported: true, typ: $Bool, tag: "js:\"EventListenerShouldBeRunning\""}, {prop: "EventListenerCancelFunc", name: "EventListenerCancelFunc", embedded: false, exported: true, typ: context.CancelFunc, tag: ""}]);
	jsTriggerAction.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: $Uint32, tag: "js:\"Id\""}, {prop: "OneShot", name: "OneShot", embedded: false, exported: true, typ: $Bool, tag: "js:\"OneShot\""}, {prop: "IsActive", name: "IsActive", embedded: false, exported: true, typ: $Bool, tag: "js:\"IsActive\""}, {prop: "Immutable", name: "Immutable", embedded: false, exported: true, typ: $Bool, tag: "js:\"Immutable\""}, {prop: "TriggerType", name: "TriggerType", embedded: false, exported: true, typ: triggerType, tag: "js:\"TriggerType\""}, {prop: "ActionType", name: "ActionType", embedded: false, exported: true, typ: actionType, tag: "js:\"ActionType\""}, {prop: "TriggerData", name: "TriggerData", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"TriggerData\""}, {prop: "ActionData", name: "ActionData", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"ActionData\""}]);
	jsTriggerServiceStarted.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerUSBGadgetConnected.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerUSBGadgetDisconnected.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerWifiAPStarted.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerWifiConnectedAsSta.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerSSHLogin.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "LoginUser", name: "LoginUser", embedded: false, exported: true, typ: $String, tag: "js:\"LoginUser\""}]);
	jsTriggerDHCPLeaseGranted.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerGroupReceive.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: "js:\"GroupName\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Int32, tag: "js:\"Value\""}]);
	jsTriggerGroupReceiveMulti.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: "js:\"GroupName\""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: GroupReceiveMultiType, tag: "js:\"Type\""}, {prop: "Values", name: "Values", embedded: false, exported: true, typ: sliceType$17, tag: "js:\"Values\""}]);
	jsTriggerGPIOIn.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GpioName", name: "GpioName", embedded: false, exported: true, typ: $String, tag: "js:\"GpioName\""}, {prop: "PullUpDown", name: "PullUpDown", embedded: false, exported: true, typ: GPIOInPullUpDown, tag: "js:\"PullUpDown\""}, {prop: "Edge", name: "Edge", embedded: false, exported: true, typ: GPIOInEdge, tag: "js:\"Edge\""}, {prop: "DebounceMillis", name: "DebounceMillis", embedded: false, exported: true, typ: $Int64, tag: "js:\"DebounceMillis\""}]);
	jsActionStartBashScript.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ScriptName", name: "ScriptName", embedded: false, exported: true, typ: $String, tag: "js:\"ScriptName\""}]);
	jsActionStartHIDScript.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ScriptName", name: "ScriptName", embedded: false, exported: true, typ: $String, tag: "js:\"ScriptName\""}]);
	jsActionDeploySettingsTemplate.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: TemplateType, tag: "js:\"Type\""}]);
	jsActionGPIOOut.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GpioName", name: "GpioName", embedded: false, exported: true, typ: $String, tag: "js:\"GpioName\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GPIOOutValue, tag: "js:\"Value\""}]);
	jsActionGroupSend.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GroupName", name: "GroupName", embedded: false, exported: true, typ: $String, tag: "js:\"GroupName\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $Int32, tag: "js:\"Value\""}]);
	jsActionLog.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	jsTriggerActionSet.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"Name\""}, {prop: "TriggerActions", name: "TriggerActions", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"TriggerActions\""}]);
	jsMasterTemplate.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateNameBluetooth", name: "TemplateNameBluetooth", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateNameBluetooth\""}, {prop: "TemplateNameUSB", name: "TemplateNameUSB", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateNameUSB\""}, {prop: "TemplateNameWiFi", name: "TemplateNameWiFi", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateNameWiFi\""}, {prop: "TemplateNameTriggerActions", name: "TemplateNameTriggerActions", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateNameTriggerActions\""}, {prop: "TemplateNamesNetwork", name: "TemplateNamesNetwork", embedded: false, exported: true, typ: sliceType$9, tag: "js:\"TemplateNamesNetwork\""}]);
	jsRequestMasterTemplateStorage.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Template", name: "Template", embedded: false, exported: true, typ: ptrType$29, tag: "js:\"Template\""}]);
	jsLoadHidScriptSourceReq.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "FileName", name: "FileName", embedded: false, exported: true, typ: $String, tag: "js:\"FileName\""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: jsLoadHidScriptSourceMode, tag: "js:\"Mode\""}]);
	jsWifiRequestSettingsStorage.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$17, tag: "js:\"Settings\""}]);
	jsUSBRequestSettingsStorage.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$26, tag: "js:\"Settings\""}]);
	jsGadgetSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Enabled", name: "Enabled", embedded: false, exported: true, typ: $Bool, tag: "js:\"Enabled\""}, {prop: "Vid", name: "Vid", embedded: false, exported: true, typ: $String, tag: "js:\"Vid\""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $String, tag: "js:\"Pid\""}, {prop: "Manufacturer", name: "Manufacturer", embedded: false, exported: true, typ: $String, tag: "js:\"Manufacturer\""}, {prop: "Product", name: "Product", embedded: false, exported: true, typ: $String, tag: "js:\"Product\""}, {prop: "Serial", name: "Serial", embedded: false, exported: true, typ: $String, tag: "js:\"Serial\""}, {prop: "Use_CDC_ECM", name: "Use_CDC_ECM", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_CDC_ECM\""}, {prop: "Use_RNDIS", name: "Use_RNDIS", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_RNDIS\""}, {prop: "Use_HID_KEYBOARD", name: "Use_HID_KEYBOARD", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_HID_KEYBOARD\""}, {prop: "Use_HID_MOUSE", name: "Use_HID_MOUSE", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_HID_MOUSE\""}, {prop: "Use_HID_RAW", name: "Use_HID_RAW", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_HID_RAW\""}, {prop: "Use_UMS", name: "Use_UMS", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_UMS\""}, {prop: "Use_SERIAL", name: "Use_SERIAL", embedded: false, exported: true, typ: $Bool, tag: "js:\"Use_SERIAL\""}, {prop: "RndisSettings", name: "RndisSettings", embedded: false, exported: true, typ: ptrType$33, tag: "js:\"RndisSettings\""}, {prop: "CdcEcmSettings", name: "CdcEcmSettings", embedded: false, exported: true, typ: ptrType$33, tag: "js:\"CdcEcmSettings\""}, {prop: "UmsSettings", name: "UmsSettings", embedded: false, exported: true, typ: ptrType$34, tag: "js:\"UmsSettings\""}]);
	jsGadgetSettingsEthernet.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "HostAddr", name: "HostAddr", embedded: false, exported: true, typ: $String, tag: "js:\"HostAddr\""}, {prop: "DevAddr", name: "DevAddr", embedded: false, exported: true, typ: $String, tag: "js:\"DevAddr\""}]);
	jsGadgetSettingsUMS.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Cdrom", name: "Cdrom", embedded: false, exported: true, typ: $Bool, tag: "js:\"Cdrom\""}, {prop: "File", name: "File", embedded: false, exported: true, typ: $String, tag: "js:\"File\""}]);
	jsEvent.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Int64, tag: "js:\"type\""}, {prop: "Values", name: "Values", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "JSValues", name: "JSValues", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"values\""}]);
	jsLogEvent.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "EvLogSource", name: "EvLogSource", embedded: false, exported: true, typ: $String, tag: "js:\"source\""}, {prop: "EvLogLevel", name: "EvLogLevel", embedded: false, exported: true, typ: $Int, tag: "js:\"level\""}, {prop: "EvLogMessage", name: "EvLogMessage", embedded: false, exported: true, typ: $String, tag: "js:\"message\""}, {prop: "EvLogTime", name: "EvLogTime", embedded: false, exported: true, typ: $Int64, tag: "js:\"time\""}]);
	jsHidEvent.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "EvType", name: "EvType", embedded: false, exported: true, typ: $Int64, tag: "js:\"evtype\""}, {prop: "VMId", name: "VMId", embedded: false, exported: true, typ: $Int64, tag: "js:\"vmId\""}, {prop: "JobId", name: "JobId", embedded: false, exported: true, typ: $Int64, tag: "js:\"jobId\""}, {prop: "HasError", name: "HasError", embedded: false, exported: true, typ: $Bool, tag: "js:\"hasError\""}, {prop: "Result", name: "Result", embedded: false, exported: true, typ: $String, tag: "js:\"result\""}, {prop: "Error", name: "Error", embedded: false, exported: true, typ: $String, tag: "js:\"error\""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: "js:\"message\""}, {prop: "EvLogTime", name: "EvLogTime", embedded: false, exported: true, typ: $Int64, tag: "js:\"time\""}]);
	jsHidJobState.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: $Int64, tag: "js:\"id\""}, {prop: "VmId", name: "VmId", embedded: false, exported: true, typ: $Int64, tag: "js:\"vmId\""}, {prop: "HasFailed", name: "HasFailed", embedded: false, exported: true, typ: $Bool, tag: "js:\"hasFailed\""}, {prop: "HasSucceeded", name: "HasSucceeded", embedded: false, exported: true, typ: $Bool, tag: "js:\"hasSucceeded\""}, {prop: "LastMessage", name: "LastMessage", embedded: false, exported: true, typ: $String, tag: "js:\"lastMessage\""}, {prop: "TextResult", name: "TextResult", embedded: false, exported: true, typ: $String, tag: "js:\"textResult\""}, {prop: "LastUpdateTime", name: "LastUpdateTime", embedded: false, exported: true, typ: $Int64, tag: "js:\"lastUpdateTime\""}, {prop: "ScriptSource", name: "ScriptSource", embedded: false, exported: true, typ: $String, tag: "js:\"textSource\""}]);
	jsHidJobStateList.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Jobs", name: "Jobs", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"jobs\""}]);
	jsWiFiState.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Int, tag: "js:\"mode\""}, {prop: "Channel", name: "Channel", embedded: false, exported: true, typ: $Uint32, tag: "js:\"channel\""}, {prop: "Ssid", name: "Ssid", embedded: false, exported: true, typ: $String, tag: "js:\"ssid\""}, {prop: "CurrentSettings", name: "CurrentSettings", embedded: false, exported: true, typ: ptrType$17, tag: "js:\"CurrentSettings\""}]);
	jsWiFiBSSCfg.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "SSID", name: "SSID", embedded: false, exported: true, typ: $String, tag: "js:\"ssid\""}, {prop: "PSK", name: "PSK", embedded: false, exported: true, typ: $String, tag: "js:\"psk\""}]);
	jsWiFiSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"name\""}, {prop: "Disabled", name: "Disabled", embedded: false, exported: true, typ: $Bool, tag: "js:\"disabled\""}, {prop: "Reg", name: "Reg", embedded: false, exported: true, typ: $String, tag: "js:\"reg\""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Int, tag: "js:\"mode\""}, {prop: "AuthMode", name: "AuthMode", embedded: false, exported: true, typ: $Int, tag: "js:\"authMode\""}, {prop: "Channel", name: "Channel", embedded: false, exported: true, typ: $Int, tag: "js:\"channel\""}, {prop: "HideSsid", name: "HideSsid", embedded: false, exported: true, typ: $Bool, tag: "js:\"hideSsid\""}, {prop: "Nexmon", name: "Nexmon", embedded: false, exported: true, typ: $Bool, tag: "js:\"nexmon\""}, {prop: "Ap_BSS", name: "Ap_BSS", embedded: false, exported: true, typ: ptrType$87, tag: "js:\"apBss\""}, {prop: "Client_BSSList", name: "Client_BSSList", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"staBssList\""}]);
	jsEthernetRequestSettingsStorage.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$31, tag: "js:\"Settings\""}]);
	jsEthernetSettingsArray.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Interfaces", name: "Interfaces", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"interfaces\""}]);
	jsEthernetInterfaceSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"name\""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Int, tag: "js:\"mode\""}, {prop: "IpAddress4", name: "IpAddress4", embedded: false, exported: true, typ: $String, tag: "js:\"ipAddress4\""}, {prop: "Netmask4", name: "Netmask4", embedded: false, exported: true, typ: $String, tag: "js:\"netmask4\""}, {prop: "Enabled", name: "Enabled", embedded: false, exported: true, typ: $Bool, tag: "js:\"enabled\""}, {prop: "DhcpServerSettings", name: "DhcpServerSettings", embedded: false, exported: true, typ: ptrType$32, tag: "js:\"dhcpServerSettings\""}, {prop: "SettingsInUse", name: "SettingsInUse", embedded: false, exported: true, typ: $Bool, tag: "js:\"settingsInUse\""}]);
	jsDHCPServerSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "ListenPort", name: "ListenPort", embedded: false, exported: true, typ: $Int, tag: "js:\"listenPort\""}, {prop: "ListenInterface", name: "ListenInterface", embedded: false, exported: true, typ: $String, tag: "js:\"listenInterface\""}, {prop: "LeaseFile", name: "LeaseFile", embedded: false, exported: true, typ: $String, tag: "js:\"leaseFile\""}, {prop: "NotAuthoritative", name: "NotAuthoritative", embedded: false, exported: true, typ: $Bool, tag: "js:\"nonAuthoritative\""}, {prop: "DoNotBindInterface", name: "DoNotBindInterface", embedded: false, exported: true, typ: $Bool, tag: "js:\"doNotBindInterface\""}, {prop: "CallbackScript", name: "CallbackScript", embedded: false, exported: true, typ: $String, tag: "js:\"callbackScript\""}, {prop: "Ranges", name: "Ranges", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"ranges\""}, {prop: "Options", name: "Options", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"options\""}, {prop: "StaticHosts", name: "StaticHosts", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"staticHosts\""}]);
	jsDHCPServerRange.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "RangeLower", name: "RangeLower", embedded: false, exported: true, typ: $String, tag: "js:\"rangeLower\""}, {prop: "RangeUpper", name: "RangeUpper", embedded: false, exported: true, typ: $String, tag: "js:\"rangeUpper\""}, {prop: "LeaseTime", name: "LeaseTime", embedded: false, exported: true, typ: $String, tag: "js:\"leaseTime\""}]);
	jsDHCPServerOption.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Option", name: "Option", embedded: false, exported: true, typ: $Int, tag: "js:\"option\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: "js:\"value\""}]);
	jsDHCPServerStaticHost.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Mac", name: "Mac", embedded: false, exported: true, typ: $String, tag: "js:\"mac\""}, {prop: "Ip", name: "Ip", embedded: false, exported: true, typ: $String, tag: "js:\"ip\""}]);
	jsEventProcessor.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "LogArray", name: "LogArray", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"logArray\""}, {prop: "HidEventArray", name: "HidEventArray", embedded: false, exported: true, typ: ptrType$2, tag: "js:\"eventHidArray\""}, {prop: "MaxEntries", name: "MaxEntries", embedded: false, exported: true, typ: $Int, tag: "js:\"maxEntries\""}, {prop: "JobList", name: "JobList", embedded: false, exported: true, typ: ptrType$27, tag: "js:\"jobList\""}]);
	jsDataTablePagination.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "RowsPerPage", name: "RowsPerPage", embedded: false, exported: true, typ: $Int, tag: "js:\"rowsPerPage\""}, {prop: "Descending", name: "Descending", embedded: false, exported: true, typ: $Bool, tag: "js:\"descending\""}, {prop: "Page", name: "Page", embedded: false, exported: true, typ: $Int, tag: "js:\"page\""}]);
	jsBluetoothRequestSettingsStorage.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "TemplateName", name: "TemplateName", embedded: false, exported: true, typ: $String, tag: "js:\"TemplateName\""}, {prop: "Settings", name: "Settings", embedded: false, exported: true, typ: ptrType$95, tag: "js:\"Settings\""}]);
	jsBluetoothSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Ci", name: "Ci", embedded: false, exported: true, typ: ptrType$11, tag: "js:\"Ci\""}, {prop: "As", name: "As", embedded: false, exported: true, typ: ptrType$10, tag: "js:\"As\""}]);
	jsBluetoothAgentSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Pin", name: "Pin", embedded: false, exported: true, typ: $String, tag: "js:\"Pin\""}]);
	jsBluetoothControllerSettings.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Powered", name: "Powered", embedded: false, exported: true, typ: $Bool, tag: "js:\"Powered\""}, {prop: "Connectable", name: "Connectable", embedded: false, exported: true, typ: $Bool, tag: "js:\"Connectable\""}, {prop: "FastConnectable", name: "FastConnectable", embedded: false, exported: true, typ: $Bool, tag: "js:\"FastConnectable\""}, {prop: "Discoverable", name: "Discoverable", embedded: false, exported: true, typ: $Bool, tag: "js:\"Discoverable\""}, {prop: "Bondable", name: "Bondable", embedded: false, exported: true, typ: $Bool, tag: "js:\"Bondable\""}, {prop: "LinkLevelSecurity", name: "LinkLevelSecurity", embedded: false, exported: true, typ: $Bool, tag: "js:\"LinkLevelSecurity\""}, {prop: "SecureSimplePairing", name: "SecureSimplePairing", embedded: false, exported: true, typ: $Bool, tag: "js:\"SecureSimplePairing\""}, {prop: "BrEdr", name: "BrEdr", embedded: false, exported: true, typ: $Bool, tag: "js:\"BrEdr\""}, {prop: "HighSpeed", name: "HighSpeed", embedded: false, exported: true, typ: $Bool, tag: "js:\"HighSpeed\""}, {prop: "LowEnergy", name: "LowEnergy", embedded: false, exported: true, typ: $Bool, tag: "js:\"LowEnergy\""}, {prop: "Advertising", name: "Advertising", embedded: false, exported: true, typ: $Bool, tag: "js:\"Advertising\""}, {prop: "SecureConnections", name: "SecureConnections", embedded: false, exported: true, typ: $Bool, tag: "js:\"SecureConnections\""}, {prop: "DebugKeys", name: "DebugKeys", embedded: false, exported: true, typ: $Bool, tag: "js:\"DebugKeys\""}, {prop: "Privacy", name: "Privacy", embedded: false, exported: true, typ: $Bool, tag: "js:\"Privacy\""}, {prop: "ControllerConfiguration", name: "ControllerConfiguration", embedded: false, exported: true, typ: $Bool, tag: "js:\"ControllerConfiguration\""}, {prop: "StaticAddress", name: "StaticAddress", embedded: false, exported: true, typ: $Bool, tag: "js:\"StaticAddress\""}]);
	jsBluetoothControllerInformation.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "IsAvailable", name: "IsAvailable", embedded: false, exported: true, typ: $Bool, tag: "js:\"IsAvailable\""}, {prop: "Address", name: "Address", embedded: false, exported: true, typ: sliceType$10, tag: "js:\"Address\""}, {prop: "BluetoothVersion", name: "BluetoothVersion", embedded: false, exported: true, typ: $Uint8, tag: "js:\"BluetoothVersion\""}, {prop: "Manufacturer", name: "Manufacturer", embedded: false, exported: true, typ: $Uint16, tag: "js:\"Manufacturer\""}, {prop: "SupportedSettings", name: "SupportedSettings", embedded: false, exported: true, typ: ptrType$12, tag: "js:\"SupportedSettings\""}, {prop: "CurrentSettings", name: "CurrentSettings", embedded: false, exported: true, typ: ptrType$12, tag: "js:\"CurrentSettings\""}, {prop: "ClassOfDevice", name: "ClassOfDevice", embedded: false, exported: true, typ: sliceType$10, tag: "js:\"ClassOfDevice\""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"Name\""}, {prop: "ShortName", name: "ShortName", embedded: false, exported: true, typ: $String, tag: "js:\"ShortName\""}, {prop: "ServiceNetworkServerNAP", name: "ServiceNetworkServerNAP", embedded: false, exported: true, typ: $Bool, tag: "js:\"ServiceNetworkServerNAP\""}, {prop: "ServiceNetworkServerPANU", name: "ServiceNetworkServerPANU", embedded: false, exported: true, typ: $Bool, tag: "js:\"ServiceNetworkServerPANU\""}, {prop: "ServiceNetworkServerGN", name: "ServiceNetworkServerGN", embedded: false, exported: true, typ: $Bool, tag: "js:\"ServiceNetworkServerGN\""}]);
	CompUSBSettingsData.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "GadgetSettings", name: "GadgetSettings", embedded: false, exported: true, typ: ptrType$26, tag: "js:\"gadgetSettings\""}, {prop: "DeployPending", name: "DeployPending", embedded: false, exported: true, typ: $Bool, tag: "js:\"deployPending\""}, {prop: "CdcEcmDetails", name: "CdcEcmDetails", embedded: false, exported: true, typ: $Bool, tag: "js:\"cdcEcmDetails\""}, {prop: "RndisDetails", name: "RndisDetails", embedded: false, exported: true, typ: $Bool, tag: "js:\"rndisDetails\""}, {prop: "ShowStoreModal", name: "ShowStoreModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showStoreModal\""}, {prop: "ShowLoadModal", name: "ShowLoadModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showLoadModal\""}, {prop: "ShowDeployStoredModal", name: "ShowDeployStoredModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"showDeployStoredModal\""}, {prop: "ShowUmsModal", name: "ShowUmsModal", embedded: false, exported: true, typ: $Bool, tag: "js:\"ShowUmsModal\""}]);
	CompToggleSwitchData.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	CompHIDScriptCodeEditorData.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "CodeMirrorOptions", name: "CodeMirrorOptions", embedded: false, exported: true, typ: ptrType$99, tag: "js:\"codemirrorOptions\""}]);
	CodeMirrorMode.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "js:\"name\""}, {prop: "GlobalVars", name: "GlobalVars", embedded: false, exported: true, typ: $Bool, tag: "js:\"globalVars\""}]);
	CodeMirrorExtraKeys.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "CtrlSpace", name: "CtrlSpace", embedded: false, exported: true, typ: $String, tag: "js:\"Ctrl-Space\""}]);
	CodeMirrorOptionsType.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: ptrType$100, tag: "js:\"mode\""}, {prop: "LineNumbers", name: "LineNumbers", embedded: false, exported: true, typ: $Bool, tag: "js:\"lineNumbers\""}, {prop: "LineWrapping", name: "LineWrapping", embedded: false, exported: true, typ: $Bool, tag: "js:\"lineWrapping\""}, {prop: "AutoCloseBrackets", name: "AutoCloseBrackets", embedded: false, exported: true, typ: $Bool, tag: "js:\"autoCloseBrackets\""}, {prop: "ExtraKeys", name: "ExtraKeys", embedded: false, exported: true, typ: ptrType$101, tag: "js:\"extraKeys\""}]);
	CompHIDJobsData.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	CompHIDEventsData.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Pagination", name: "Pagination", embedded: false, exported: true, typ: ptrType$94, tag: "js:\"pagination\""}]);
	CompEthernetAddressesData2.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}]);
	option.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: triggerType, tag: "js:\"value\""}]);
	option$1.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: actionType, tag: "js:\"value\""}]);
	option$2.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GroupReceiveMultiType, tag: "js:\"value\""}]);
	option$3.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GPIOOutValue, tag: "js:\"value\""}]);
	option$4.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: "js:\"value\""}]);
	option$5.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GPIOInPullUpDown, tag: "js:\"value\""}]);
	option$6.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: GPIOInEdge, tag: "js:\"value\""}]);
	option$7.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$2, tag: ""}, {prop: "Label", name: "Label", embedded: false, exported: true, typ: $String, tag: "js:\"label\""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: TemplateType, tag: "js:\"value\""}]);
	$init = function() {
		$pkg.$init = function() {};
		/* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
		$r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = md5.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hex.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = grpcweb.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = common_web.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = P4wnP1_grpc.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = hvue.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = mvuex.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = io.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = filepath.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strconv.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = strings.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = sync.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		$r = time.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
		globalState = ptrType.nil;
		$pkg.GlobalQuasar = QuasarGetQuasar();
		serverAddr = GetBaseURL();
		_r = NewRpcClient(serverAddr); /* */ $s = 17; case 17: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
		$pkg.RpcClient = $clone(_r, Rpc);
		triggerNames = $makeMap(triggerType.keyFor, [{ k: 0, v: "service started" }, { k: 1, v: "USB gadget connected to host" }, { k: 2, v: "USB Gadget disconnected from host" }, { k: 3, v: "WiFi Access Point is up" }, { k: 4, v: "joined existing WiFi" }, { k: 5, v: "SSH user login" }, { k: 6, v: "DHCP lease issued" }, { k: 7, v: "input on GPIO" }, { k: 8, v: "a value on a group channel" }, { k: 9, v: "multiple values on a group channel" }]);
		actionNames = $makeMap(actionType.keyFor, [{ k: 0, v: "write log entry" }, { k: 1, v: "start a HIDScript" }, { k: 2, v: "load and deploy settings template" }, { k: 3, v: "run a bash script" }, { k: 4, v: "set output on GPIO" }, { k: 5, v: "send a value to a group channel" }]);
		availableTriggers = new sliceType([0, 1, 2, 3, 4, 6, 7, 5, 8, 9]);
		availableActions = new sliceType$1([0, 3, 1, 2, 4, 5]);
		groupReceiveMultiNames = $makeMap(GroupReceiveMultiType.keyFor, [{ k: 0, v: "Ordered Sequence (out-of-oreder values allowed)" }, { k: 1, v: "All (logical AND)" }, { k: 2, v: "One of (logical OR)" }, { k: 3, v: "Exact ordered sequence" }]);
		availableGroupReceiveMulti = new sliceType$2([0, 3, 1, 2]);
		gpioInPullUpDownNames = $makeMap(GPIOInPullUpDown.keyFor, [{ k: 0, v: "Pull-up" }, { k: 1, v: "Pull-down" }, { k: 2, v: "Off" }]);
		availableGPIOInPullUpDowns = new sliceType$3([0, 1, 2]);
		gpioInEdgeNames = $makeMap(GPIOInEdge.keyFor, [{ k: 0, v: "Rising edge" }, { k: 1, v: "Falling edge" }, { k: 2, v: "Rising or Falling edge" }]);
		availableGPIOInEdges = new sliceType$4([0, 1, 2]);
		gpioOutValueNames = $makeMap(GPIOOutValue.keyFor, [{ k: 0, v: "Low" }, { k: 1, v: "High" }, { k: 2, v: "Toggle" }]);
		availableGPIOOutValues = new sliceType$5([0, 1, 2]);
		templateTypeNames = $makeMap(TemplateType.keyFor, [{ k: 0, v: "Overall settings" }, { k: 1, v: "Network interface settings" }, { k: 2, v: "WiFi settings" }, { k: 3, v: "USB settings" }, { k: 4, v: "Bluetooth settings" }, { k: 5, v: "Stored TriggerAction set" }]);
		availableTemplateTypes = new sliceType$6([0, 1, 2, 3, 4, 5]);
		eNoLogEvent = errors.New("No log event");
		eNoHidEvent = errors.New("No HID event");
		/* */ if ($pkg === $mainPkg) { $s = 18; continue; }
		/* */ $s = 19; continue;
		/* if ($pkg === $mainPkg) { */ case 18:
			$r = main(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
			$mainFinished = true;
		/* } */ case 19:
		/* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
	};
	$pkg.$init = $init;
	return $pkg;
})();
$synthesizeMethods();
$initAllLinknames();
var $mainPkg = $packages["github.com/mame82/P4wnP1_aloa/web_client"];
$packages["runtime"].$init();
$go($mainPkg.$init, []);
$flushConsole();

}).call(this);
//# sourceMappingURL=webapp.js.map
