UNPKG

aivmlib-web

Version:

Aivis Voice Model File (.aivm/.aivmx) Utility Library for Web

3,043 lines 147 kB
import y from "protobufjs";
var f = y.Reader, c = y.Writer, l = y.util, e = y.roots.default || (y.roots.default = {});
e.onnx = function() {
  var d = {};
  return d.Version = function() {
    var i = {}, u = Object.create(i);
    return u[i[0] = "_START_VERSION"] = 0, u[i[1] = "IR_VERSION_2017_10_10"] = 1, u[i[2] = "IR_VERSION_2017_10_30"] = 2, u[i[3] = "IR_VERSION_2017_11_3"] = 3, u[i[4] = "IR_VERSION_2019_1_22"] = 4, u[i[5] = "IR_VERSION_2019_3_18"] = 5, u[i[6] = "IR_VERSION_2019_9_19"] = 6, u[i[7] = "IR_VERSION_2020_5_8"] = 7, u[i[8] = "IR_VERSION_2021_7_30"] = 8, u[i[9] = "IR_VERSION"] = 9, u;
  }(), d.AttributeProto = function() {
    function i(u) {
      if (this.floats = [], this.ints = [], this.strings = [], this.tensors = [], this.graphs = [], this.sparseTensors = [], this.typeProtos = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.name = "", i.prototype.refAttrName = "", i.prototype.docString = "", i.prototype.type = 0, i.prototype.f = 0, i.prototype.i = l.Long ? l.Long.fromBits(0, 0, !1) : 0, i.prototype.s = l.newBuffer([]), i.prototype.t = null, i.prototype.g = null, i.prototype.sparseTensor = null, i.prototype.tp = null, i.prototype.floats = l.emptyArray, i.prototype.ints = l.emptyArray, i.prototype.strings = l.emptyArray, i.prototype.tensors = l.emptyArray, i.prototype.graphs = l.emptyArray, i.prototype.sparseTensors = l.emptyArray, i.prototype.typeProtos = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.name), n.f != null && Object.hasOwnProperty.call(n, "f") && o.uint32(
        /* id 2, wireType 5 =*/
        21
      ).float(n.f), n.i != null && Object.hasOwnProperty.call(n, "i") && o.uint32(
        /* id 3, wireType 0 =*/
        24
      ).int64(n.i), n.s != null && Object.hasOwnProperty.call(n, "s") && o.uint32(
        /* id 4, wireType 2 =*/
        34
      ).bytes(n.s), n.t != null && Object.hasOwnProperty.call(n, "t") && e.onnx.TensorProto.encode(n.t, o.uint32(
        /* id 5, wireType 2 =*/
        42
      ).fork()).ldelim(), n.g != null && Object.hasOwnProperty.call(n, "g") && e.onnx.GraphProto.encode(n.g, o.uint32(
        /* id 6, wireType 2 =*/
        50
      ).fork()).ldelim(), n.floats != null && n.floats.length) {
        o.uint32(
          /* id 7, wireType 2 =*/
          58
        ).fork();
        for (var t = 0; t < n.floats.length; ++t) o.float(n.floats[t]);
        o.ldelim();
      }
      if (n.ints != null && n.ints.length) {
        o.uint32(
          /* id 8, wireType 2 =*/
          66
        ).fork();
        for (var t = 0; t < n.ints.length; ++t) o.int64(n.ints[t]);
        o.ldelim();
      }
      if (n.strings != null && n.strings.length)
        for (var t = 0; t < n.strings.length; ++t)
          o.uint32(
            /* id 9, wireType 2 =*/
            74
          ).bytes(n.strings[t]);
      if (n.tensors != null && n.tensors.length)
        for (var t = 0; t < n.tensors.length; ++t)
          e.onnx.TensorProto.encode(n.tensors[t], o.uint32(
            /* id 10, wireType 2 =*/
            82
          ).fork()).ldelim();
      if (n.graphs != null && n.graphs.length)
        for (var t = 0; t < n.graphs.length; ++t)
          e.onnx.GraphProto.encode(n.graphs[t], o.uint32(
            /* id 11, wireType 2 =*/
            90
          ).fork()).ldelim();
      if (n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 13, wireType 2 =*/
        106
      ).string(n.docString), n.tp != null && Object.hasOwnProperty.call(n, "tp") && e.onnx.TypeProto.encode(n.tp, o.uint32(
        /* id 14, wireType 2 =*/
        114
      ).fork()).ldelim(), n.typeProtos != null && n.typeProtos.length)
        for (var t = 0; t < n.typeProtos.length; ++t)
          e.onnx.TypeProto.encode(
            n.typeProtos[t],
            o.uint32(
              /* id 15, wireType 2 =*/
              122
            ).fork()
          ).ldelim();
      if (n.type != null && Object.hasOwnProperty.call(n, "type") && o.uint32(
        /* id 20, wireType 0 =*/
        160
      ).int32(n.type), n.refAttrName != null && Object.hasOwnProperty.call(n, "refAttrName") && o.uint32(
        /* id 21, wireType 2 =*/
        170
      ).string(n.refAttrName), n.sparseTensor != null && Object.hasOwnProperty.call(n, "sparseTensor") && e.onnx.SparseTensorProto.encode(
        n.sparseTensor,
        o.uint32(
          /* id 22, wireType 2 =*/
          178
        ).fork()
      ).ldelim(), n.sparseTensors != null && n.sparseTensors.length)
        for (var t = 0; t < n.sparseTensors.length; ++t)
          e.onnx.SparseTensorProto.encode(
            n.sparseTensors[t],
            o.uint32(
              /* id 23, wireType 2 =*/
              186
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.AttributeProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.name = n.string();
            break;
          }
          case 21: {
            r.refAttrName = n.string();
            break;
          }
          case 13: {
            r.docString = n.string();
            break;
          }
          case 20: {
            r.type = n.int32();
            break;
          }
          case 2: {
            r.f = n.float();
            break;
          }
          case 3: {
            r.i = n.int64();
            break;
          }
          case 4: {
            r.s = n.bytes();
            break;
          }
          case 5: {
            r.t = e.onnx.TensorProto.decode(n, n.uint32());
            break;
          }
          case 6: {
            r.g = e.onnx.GraphProto.decode(n, n.uint32());
            break;
          }
          case 22: {
            r.sparseTensor = e.onnx.SparseTensorProto.decode(n, n.uint32());
            break;
          }
          case 14: {
            r.tp = e.onnx.TypeProto.decode(n, n.uint32());
            break;
          }
          case 7: {
            if (r.floats && r.floats.length || (r.floats = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.floats.push(n.float());
            else r.floats.push(n.float());
            break;
          }
          case 8: {
            if (r.ints && r.ints.length || (r.ints = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.ints.push(n.int64());
            else r.ints.push(n.int64());
            break;
          }
          case 9: {
            r.strings && r.strings.length || (r.strings = []), r.strings.push(n.bytes());
            break;
          }
          case 10: {
            r.tensors && r.tensors.length || (r.tensors = []), r.tensors.push(e.onnx.TensorProto.decode(n, n.uint32()));
            break;
          }
          case 11: {
            r.graphs && r.graphs.length || (r.graphs = []), r.graphs.push(e.onnx.GraphProto.decode(n, n.uint32()));
            break;
          }
          case 23: {
            r.sparseTensors && r.sparseTensors.length || (r.sparseTensors = []), r.sparseTensors.push(e.onnx.SparseTensorProto.decode(n, n.uint32()));
            break;
          }
          case 15: {
            r.typeProtos && r.typeProtos.length || (r.typeProtos = []), r.typeProtos.push(e.onnx.TypeProto.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.refAttrName != null && n.hasOwnProperty("refAttrName") && !l.isString(n.refAttrName))
        return "refAttrName: string expected";
      if (n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString))
        return "docString: string expected";
      if (n.type != null && n.hasOwnProperty("type"))
        switch (n.type) {
          default:
            return "type: enum value expected";
          case 0:
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
          case 11:
          case 13:
          case 6:
          case 7:
          case 8:
          case 9:
          case 10:
          case 12:
          case 14:
            break;
        }
      if (n.f != null && n.hasOwnProperty("f") && typeof n.f != "number")
        return "f: number expected";
      if (n.i != null && n.hasOwnProperty("i") && !l.isInteger(n.i) && !(n.i && l.isInteger(n.i.low) && l.isInteger(n.i.high)))
        return "i: integer|Long expected";
      if (n.s != null && n.hasOwnProperty("s") && !(n.s && typeof n.s.length == "number" || l.isString(n.s)))
        return "s: buffer expected";
      if (n.t != null && n.hasOwnProperty("t")) {
        var o = e.onnx.TensorProto.verify(n.t);
        if (o) return "t." + o;
      }
      if (n.g != null && n.hasOwnProperty("g")) {
        var o = e.onnx.GraphProto.verify(n.g);
        if (o) return "g." + o;
      }
      if (n.sparseTensor != null && n.hasOwnProperty("sparseTensor")) {
        var o = e.onnx.SparseTensorProto.verify(n.sparseTensor);
        if (o) return "sparseTensor." + o;
      }
      if (n.tp != null && n.hasOwnProperty("tp")) {
        var o = e.onnx.TypeProto.verify(n.tp);
        if (o) return "tp." + o;
      }
      if (n.floats != null && n.hasOwnProperty("floats")) {
        if (!Array.isArray(n.floats)) return "floats: array expected";
        for (var t = 0; t < n.floats.length; ++t)
          if (typeof n.floats[t] != "number") return "floats: number[] expected";
      }
      if (n.ints != null && n.hasOwnProperty("ints")) {
        if (!Array.isArray(n.ints)) return "ints: array expected";
        for (var t = 0; t < n.ints.length; ++t)
          if (!l.isInteger(n.ints[t]) && !(n.ints[t] && l.isInteger(n.ints[t].low) && l.isInteger(n.ints[t].high)))
            return "ints: integer|Long[] expected";
      }
      if (n.strings != null && n.hasOwnProperty("strings")) {
        if (!Array.isArray(n.strings)) return "strings: array expected";
        for (var t = 0; t < n.strings.length; ++t)
          if (!(n.strings[t] && typeof n.strings[t].length == "number" || l.isString(n.strings[t])))
            return "strings: buffer[] expected";
      }
      if (n.tensors != null && n.hasOwnProperty("tensors")) {
        if (!Array.isArray(n.tensors)) return "tensors: array expected";
        for (var t = 0; t < n.tensors.length; ++t) {
          var o = e.onnx.TensorProto.verify(n.tensors[t]);
          if (o) return "tensors." + o;
        }
      }
      if (n.graphs != null && n.hasOwnProperty("graphs")) {
        if (!Array.isArray(n.graphs)) return "graphs: array expected";
        for (var t = 0; t < n.graphs.length; ++t) {
          var o = e.onnx.GraphProto.verify(n.graphs[t]);
          if (o) return "graphs." + o;
        }
      }
      if (n.sparseTensors != null && n.hasOwnProperty("sparseTensors")) {
        if (!Array.isArray(n.sparseTensors)) return "sparseTensors: array expected";
        for (var t = 0; t < n.sparseTensors.length; ++t) {
          var o = e.onnx.SparseTensorProto.verify(n.sparseTensors[t]);
          if (o) return "sparseTensors." + o;
        }
      }
      if (n.typeProtos != null && n.hasOwnProperty("typeProtos")) {
        if (!Array.isArray(n.typeProtos)) return "typeProtos: array expected";
        for (var t = 0; t < n.typeProtos.length; ++t) {
          var o = e.onnx.TypeProto.verify(n.typeProtos[t]);
          if (o) return "typeProtos." + o;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.AttributeProto) return n;
      var o = new e.onnx.AttributeProto();
      switch (n.name != null && (o.name = String(n.name)), n.refAttrName != null && (o.refAttrName = String(n.refAttrName)), n.docString != null && (o.docString = String(n.docString)), n.type) {
        default:
          if (typeof n.type == "number") {
            o.type = n.type;
            break;
          }
          break;
        case "UNDEFINED":
        case 0:
          o.type = 0;
          break;
        case "FLOAT":
        case 1:
          o.type = 1;
          break;
        case "INT":
        case 2:
          o.type = 2;
          break;
        case "STRING":
        case 3:
          o.type = 3;
          break;
        case "TENSOR":
        case 4:
          o.type = 4;
          break;
        case "GRAPH":
        case 5:
          o.type = 5;
          break;
        case "SPARSE_TENSOR":
        case 11:
          o.type = 11;
          break;
        case "TYPE_PROTO":
        case 13:
          o.type = 13;
          break;
        case "FLOATS":
        case 6:
          o.type = 6;
          break;
        case "INTS":
        case 7:
          o.type = 7;
          break;
        case "STRINGS":
        case 8:
          o.type = 8;
          break;
        case "TENSORS":
        case 9:
          o.type = 9;
          break;
        case "GRAPHS":
        case 10:
          o.type = 10;
          break;
        case "SPARSE_TENSORS":
        case 12:
          o.type = 12;
          break;
        case "TYPE_PROTOS":
        case 14:
          o.type = 14;
          break;
      }
      if (n.f != null && (o.f = Number(n.f)), n.i != null && (l.Long ? (o.i = l.Long.fromValue(n.i)).unsigned = !1 : typeof n.i == "string" ? o.i = parseInt(n.i, 10) : typeof n.i == "number" ? o.i = n.i : typeof n.i == "object" && (o.i = new l.LongBits(n.i.low >>> 0, n.i.high >>> 0).toNumber())), n.s != null && (typeof n.s == "string" ? l.base64.decode(n.s, o.s = l.newBuffer(l.base64.length(n.s)), 0) : n.s.length >= 0 && (o.s = n.s)), n.t != null) {
        if (typeof n.t != "object") throw TypeError(".onnx.AttributeProto.t: object expected");
        o.t = e.onnx.TensorProto.fromObject(n.t);
      }
      if (n.g != null) {
        if (typeof n.g != "object") throw TypeError(".onnx.AttributeProto.g: object expected");
        o.g = e.onnx.GraphProto.fromObject(n.g);
      }
      if (n.sparseTensor != null) {
        if (typeof n.sparseTensor != "object")
          throw TypeError(".onnx.AttributeProto.sparseTensor: object expected");
        o.sparseTensor = e.onnx.SparseTensorProto.fromObject(n.sparseTensor);
      }
      if (n.tp != null) {
        if (typeof n.tp != "object") throw TypeError(".onnx.AttributeProto.tp: object expected");
        o.tp = e.onnx.TypeProto.fromObject(n.tp);
      }
      if (n.floats) {
        if (!Array.isArray(n.floats)) throw TypeError(".onnx.AttributeProto.floats: array expected");
        o.floats = [];
        for (var t = 0; t < n.floats.length; ++t) o.floats[t] = Number(n.floats[t]);
      }
      if (n.ints) {
        if (!Array.isArray(n.ints)) throw TypeError(".onnx.AttributeProto.ints: array expected");
        o.ints = [];
        for (var t = 0; t < n.ints.length; ++t)
          l.Long ? (o.ints[t] = l.Long.fromValue(n.ints[t])).unsigned = !1 : typeof n.ints[t] == "string" ? o.ints[t] = parseInt(n.ints[t], 10) : typeof n.ints[t] == "number" ? o.ints[t] = n.ints[t] : typeof n.ints[t] == "object" && (o.ints[t] = new l.LongBits(n.ints[t].low >>> 0, n.ints[t].high >>> 0).toNumber());
      }
      if (n.strings) {
        if (!Array.isArray(n.strings)) throw TypeError(".onnx.AttributeProto.strings: array expected");
        o.strings = [];
        for (var t = 0; t < n.strings.length; ++t)
          typeof n.strings[t] == "string" ? l.base64.decode(
            n.strings[t],
            o.strings[t] = l.newBuffer(l.base64.length(n.strings[t])),
            0
          ) : n.strings[t].length >= 0 && (o.strings[t] = n.strings[t]);
      }
      if (n.tensors) {
        if (!Array.isArray(n.tensors)) throw TypeError(".onnx.AttributeProto.tensors: array expected");
        o.tensors = [];
        for (var t = 0; t < n.tensors.length; ++t) {
          if (typeof n.tensors[t] != "object") throw TypeError(".onnx.AttributeProto.tensors: object expected");
          o.tensors[t] = e.onnx.TensorProto.fromObject(n.tensors[t]);
        }
      }
      if (n.graphs) {
        if (!Array.isArray(n.graphs)) throw TypeError(".onnx.AttributeProto.graphs: array expected");
        o.graphs = [];
        for (var t = 0; t < n.graphs.length; ++t) {
          if (typeof n.graphs[t] != "object") throw TypeError(".onnx.AttributeProto.graphs: object expected");
          o.graphs[t] = e.onnx.GraphProto.fromObject(n.graphs[t]);
        }
      }
      if (n.sparseTensors) {
        if (!Array.isArray(n.sparseTensors)) throw TypeError(".onnx.AttributeProto.sparseTensors: array expected");
        o.sparseTensors = [];
        for (var t = 0; t < n.sparseTensors.length; ++t) {
          if (typeof n.sparseTensors[t] != "object")
            throw TypeError(".onnx.AttributeProto.sparseTensors: object expected");
          o.sparseTensors[t] = e.onnx.SparseTensorProto.fromObject(n.sparseTensors[t]);
        }
      }
      if (n.typeProtos) {
        if (!Array.isArray(n.typeProtos)) throw TypeError(".onnx.AttributeProto.typeProtos: array expected");
        o.typeProtos = [];
        for (var t = 0; t < n.typeProtos.length; ++t) {
          if (typeof n.typeProtos[t] != "object")
            throw TypeError(".onnx.AttributeProto.typeProtos: object expected");
          o.typeProtos[t] = e.onnx.TypeProto.fromObject(n.typeProtos[t]);
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.floats = [], t.ints = [], t.strings = [], t.tensors = [], t.graphs = [], t.typeProtos = [], t.sparseTensors = []), o.defaults) {
        if (t.name = "", t.f = 0, l.Long) {
          var r = new l.Long(0, 0, !1);
          t.i = o.longs === String ? r.toString() : o.longs === Number ? r.toNumber() : r;
        } else t.i = o.longs === String ? "0" : 0;
        o.bytes === String ? t.s = "" : (t.s = [], o.bytes !== Array && (t.s = l.newBuffer(t.s))), t.t = null, t.g = null, t.docString = "", t.tp = null, t.type = o.enums === String ? "UNDEFINED" : 0, t.refAttrName = "", t.sparseTensor = null;
      }
      if (n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.f != null && n.hasOwnProperty("f") && (t.f = o.json && !isFinite(n.f) ? String(n.f) : n.f), n.i != null && n.hasOwnProperty("i") && (typeof n.i == "number" ? t.i = o.longs === String ? String(n.i) : n.i : t.i = o.longs === String ? l.Long.prototype.toString.call(n.i) : o.longs === Number ? new l.LongBits(n.i.low >>> 0, n.i.high >>> 0).toNumber() : n.i), n.s != null && n.hasOwnProperty("s") && (t.s = o.bytes === String ? l.base64.encode(n.s, 0, n.s.length) : o.bytes === Array ? Array.prototype.slice.call(n.s) : n.s), n.t != null && n.hasOwnProperty("t") && (t.t = e.onnx.TensorProto.toObject(n.t, o)), n.g != null && n.hasOwnProperty("g") && (t.g = e.onnx.GraphProto.toObject(n.g, o)), n.floats && n.floats.length) {
        t.floats = [];
        for (var a = 0; a < n.floats.length; ++a)
          t.floats[a] = o.json && !isFinite(n.floats[a]) ? String(n.floats[a]) : n.floats[a];
      }
      if (n.ints && n.ints.length) {
        t.ints = [];
        for (var a = 0; a < n.ints.length; ++a)
          typeof n.ints[a] == "number" ? t.ints[a] = o.longs === String ? String(n.ints[a]) : n.ints[a] : t.ints[a] = o.longs === String ? l.Long.prototype.toString.call(n.ints[a]) : o.longs === Number ? new l.LongBits(n.ints[a].low >>> 0, n.ints[a].high >>> 0).toNumber() : n.ints[a];
      }
      if (n.strings && n.strings.length) {
        t.strings = [];
        for (var a = 0; a < n.strings.length; ++a)
          t.strings[a] = o.bytes === String ? l.base64.encode(n.strings[a], 0, n.strings[a].length) : o.bytes === Array ? Array.prototype.slice.call(n.strings[a]) : n.strings[a];
      }
      if (n.tensors && n.tensors.length) {
        t.tensors = [];
        for (var a = 0; a < n.tensors.length; ++a)
          t.tensors[a] = e.onnx.TensorProto.toObject(n.tensors[a], o);
      }
      if (n.graphs && n.graphs.length) {
        t.graphs = [];
        for (var a = 0; a < n.graphs.length; ++a)
          t.graphs[a] = e.onnx.GraphProto.toObject(n.graphs[a], o);
      }
      if (n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.tp != null && n.hasOwnProperty("tp") && (t.tp = e.onnx.TypeProto.toObject(n.tp, o)), n.typeProtos && n.typeProtos.length) {
        t.typeProtos = [];
        for (var a = 0; a < n.typeProtos.length; ++a)
          t.typeProtos[a] = e.onnx.TypeProto.toObject(n.typeProtos[a], o);
      }
      if (n.type != null && n.hasOwnProperty("type") && (t.type = o.enums === String ? e.onnx.AttributeProto.AttributeType[n.type] === void 0 ? n.type : e.onnx.AttributeProto.AttributeType[n.type] : n.type), n.refAttrName != null && n.hasOwnProperty("refAttrName") && (t.refAttrName = n.refAttrName), n.sparseTensor != null && n.hasOwnProperty("sparseTensor") && (t.sparseTensor = e.onnx.SparseTensorProto.toObject(n.sparseTensor, o)), n.sparseTensors && n.sparseTensors.length) {
        t.sparseTensors = [];
        for (var a = 0; a < n.sparseTensors.length; ++a)
          t.sparseTensors[a] = e.onnx.SparseTensorProto.toObject(n.sparseTensors[a], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.AttributeProto";
    }, i.AttributeType = function() {
      var u = {}, n = Object.create(u);
      return n[u[0] = "UNDEFINED"] = 0, n[u[1] = "FLOAT"] = 1, n[u[2] = "INT"] = 2, n[u[3] = "STRING"] = 3, n[u[4] = "TENSOR"] = 4, n[u[5] = "GRAPH"] = 5, n[u[11] = "SPARSE_TENSOR"] = 11, n[u[13] = "TYPE_PROTO"] = 13, n[u[6] = "FLOATS"] = 6, n[u[7] = "INTS"] = 7, n[u[8] = "STRINGS"] = 8, n[u[9] = "TENSORS"] = 9, n[u[10] = "GRAPHS"] = 10, n[u[12] = "SPARSE_TENSORS"] = 12, n[u[14] = "TYPE_PROTOS"] = 14, n;
    }(), i;
  }(), d.ValueInfoProto = function() {
    function i(u) {
      if (u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.name = "", i.prototype.type = null, i.prototype.docString = "", i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      return o || (o = c.create()), n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.name), n.type != null && Object.hasOwnProperty.call(n, "type") && e.onnx.TypeProto.encode(n.type, o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).fork()).ldelim(), n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 3, wireType 2 =*/
        26
      ).string(n.docString), o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.ValueInfoProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.name = n.string();
            break;
          }
          case 2: {
            r.type = e.onnx.TypeProto.decode(n, n.uint32());
            break;
          }
          case 3: {
            r.docString = n.string();
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.type != null && n.hasOwnProperty("type")) {
        var o = e.onnx.TypeProto.verify(n.type);
        if (o) return "type." + o;
      }
      return n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString) ? "docString: string expected" : null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.ValueInfoProto) return n;
      var o = new e.onnx.ValueInfoProto();
      if (n.name != null && (o.name = String(n.name)), n.type != null) {
        if (typeof n.type != "object") throw TypeError(".onnx.ValueInfoProto.type: object expected");
        o.type = e.onnx.TypeProto.fromObject(n.type);
      }
      return n.docString != null && (o.docString = String(n.docString)), o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      return o.defaults && (t.name = "", t.type = null, t.docString = ""), n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.type != null && n.hasOwnProperty("type") && (t.type = e.onnx.TypeProto.toObject(n.type, o)), n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.ValueInfoProto";
    }, i;
  }(), d.NodeProto = function() {
    function i(u) {
      if (this.input = [], this.output = [], this.attribute = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.input = l.emptyArray, i.prototype.output = l.emptyArray, i.prototype.name = "", i.prototype.opType = "", i.prototype.domain = "", i.prototype.attribute = l.emptyArray, i.prototype.docString = "", i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.input != null && n.input.length)
        for (var t = 0; t < n.input.length; ++t)
          o.uint32(
            /* id 1, wireType 2 =*/
            10
          ).string(n.input[t]);
      if (n.output != null && n.output.length)
        for (var t = 0; t < n.output.length; ++t)
          o.uint32(
            /* id 2, wireType 2 =*/
            18
          ).string(n.output[t]);
      if (n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 3, wireType 2 =*/
        26
      ).string(n.name), n.opType != null && Object.hasOwnProperty.call(n, "opType") && o.uint32(
        /* id 4, wireType 2 =*/
        34
      ).string(n.opType), n.attribute != null && n.attribute.length)
        for (var t = 0; t < n.attribute.length; ++t)
          e.onnx.AttributeProto.encode(
            n.attribute[t],
            o.uint32(
              /* id 5, wireType 2 =*/
              42
            ).fork()
          ).ldelim();
      return n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 6, wireType 2 =*/
        50
      ).string(n.docString), n.domain != null && Object.hasOwnProperty.call(n, "domain") && o.uint32(
        /* id 7, wireType 2 =*/
        58
      ).string(n.domain), o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.NodeProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.input && r.input.length || (r.input = []), r.input.push(n.string());
            break;
          }
          case 2: {
            r.output && r.output.length || (r.output = []), r.output.push(n.string());
            break;
          }
          case 3: {
            r.name = n.string();
            break;
          }
          case 4: {
            r.opType = n.string();
            break;
          }
          case 7: {
            r.domain = n.string();
            break;
          }
          case 5: {
            r.attribute && r.attribute.length || (r.attribute = []), r.attribute.push(e.onnx.AttributeProto.decode(n, n.uint32()));
            break;
          }
          case 6: {
            r.docString = n.string();
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.input != null && n.hasOwnProperty("input")) {
        if (!Array.isArray(n.input)) return "input: array expected";
        for (var o = 0; o < n.input.length; ++o)
          if (!l.isString(n.input[o])) return "input: string[] expected";
      }
      if (n.output != null && n.hasOwnProperty("output")) {
        if (!Array.isArray(n.output)) return "output: array expected";
        for (var o = 0; o < n.output.length; ++o)
          if (!l.isString(n.output[o])) return "output: string[] expected";
      }
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.opType != null && n.hasOwnProperty("opType") && !l.isString(n.opType))
        return "opType: string expected";
      if (n.domain != null && n.hasOwnProperty("domain") && !l.isString(n.domain))
        return "domain: string expected";
      if (n.attribute != null && n.hasOwnProperty("attribute")) {
        if (!Array.isArray(n.attribute)) return "attribute: array expected";
        for (var o = 0; o < n.attribute.length; ++o) {
          var t = e.onnx.AttributeProto.verify(n.attribute[o]);
          if (t) return "attribute." + t;
        }
      }
      return n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString) ? "docString: string expected" : null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.NodeProto) return n;
      var o = new e.onnx.NodeProto();
      if (n.input) {
        if (!Array.isArray(n.input)) throw TypeError(".onnx.NodeProto.input: array expected");
        o.input = [];
        for (var t = 0; t < n.input.length; ++t) o.input[t] = String(n.input[t]);
      }
      if (n.output) {
        if (!Array.isArray(n.output)) throw TypeError(".onnx.NodeProto.output: array expected");
        o.output = [];
        for (var t = 0; t < n.output.length; ++t) o.output[t] = String(n.output[t]);
      }
      if (n.name != null && (o.name = String(n.name)), n.opType != null && (o.opType = String(n.opType)), n.domain != null && (o.domain = String(n.domain)), n.attribute) {
        if (!Array.isArray(n.attribute)) throw TypeError(".onnx.NodeProto.attribute: array expected");
        o.attribute = [];
        for (var t = 0; t < n.attribute.length; ++t) {
          if (typeof n.attribute[t] != "object") throw TypeError(".onnx.NodeProto.attribute: object expected");
          o.attribute[t] = e.onnx.AttributeProto.fromObject(n.attribute[t]);
        }
      }
      return n.docString != null && (o.docString = String(n.docString)), o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.input = [], t.output = [], t.attribute = []), o.defaults && (t.name = "", t.opType = "", t.docString = "", t.domain = ""), n.input && n.input.length) {
        t.input = [];
        for (var r = 0; r < n.input.length; ++r) t.input[r] = n.input[r];
      }
      if (n.output && n.output.length) {
        t.output = [];
        for (var r = 0; r < n.output.length; ++r) t.output[r] = n.output[r];
      }
      if (n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.opType != null && n.hasOwnProperty("opType") && (t.opType = n.opType), n.attribute && n.attribute.length) {
        t.attribute = [];
        for (var r = 0; r < n.attribute.length; ++r)
          t.attribute[r] = e.onnx.AttributeProto.toObject(n.attribute[r], o);
      }
      return n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.domain != null && n.hasOwnProperty("domain") && (t.domain = n.domain), t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.NodeProto";
    }, i;
  }(), d.TrainingInfoProto = function() {
    function i(u) {
      if (this.initializationBinding = [], this.updateBinding = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.initialization = null, i.prototype.algorithm = null, i.prototype.initializationBinding = l.emptyArray, i.prototype.updateBinding = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.initialization != null && Object.hasOwnProperty.call(n, "initialization") && e.onnx.GraphProto.encode(n.initialization, o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).fork()).ldelim(), n.algorithm != null && Object.hasOwnProperty.call(n, "algorithm") && e.onnx.GraphProto.encode(n.algorithm, o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).fork()).ldelim(), n.initializationBinding != null && n.initializationBinding.length)
        for (var t = 0; t < n.initializationBinding.length; ++t)
          e.onnx.StringStringEntryProto.encode(
            n.initializationBinding[t],
            o.uint32(
              /* id 3, wireType 2 =*/
              26
            ).fork()
          ).ldelim();
      if (n.updateBinding != null && n.updateBinding.length)
        for (var t = 0; t < n.updateBinding.length; ++t)
          e.onnx.StringStringEntryProto.encode(
            n.updateBinding[t],
            o.uint32(
              /* id 4, wireType 2 =*/
              34
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.TrainingInfoProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.initialization = e.onnx.GraphProto.decode(n, n.uint32());
            break;
          }
          case 2: {
            r.algorithm = e.onnx.GraphProto.decode(n, n.uint32());
            break;
          }
          case 3: {
            r.initializationBinding && r.initializationBinding.length || (r.initializationBinding = []), r.initializationBinding.push(e.onnx.StringStringEntryProto.decode(n, n.uint32()));
            break;
          }
          case 4: {
            r.updateBinding && r.updateBinding.length || (r.updateBinding = []), r.updateBinding.push(e.onnx.StringStringEntryProto.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.initialization != null && n.hasOwnProperty("initialization")) {
        var o = e.onnx.GraphProto.verify(n.initialization);
        if (o) return "initialization." + o;
      }
      if (n.algorithm != null && n.hasOwnProperty("algorithm")) {
        var o = e.onnx.GraphProto.verify(n.algorithm);
        if (o) return "algorithm." + o;
      }
      if (n.initializationBinding != null && n.hasOwnProperty("initializationBinding")) {
        if (!Array.isArray(n.initializationBinding)) return "initializationBinding: array expected";
        for (var t = 0; t < n.initializationBinding.length; ++t) {
          var o = e.onnx.StringStringEntryProto.verify(n.initializationBinding[t]);
          if (o) return "initializationBinding." + o;
        }
      }
      if (n.updateBinding != null && n.hasOwnProperty("updateBinding")) {
        if (!Array.isArray(n.updateBinding)) return "updateBinding: array expected";
        for (var t = 0; t < n.updateBinding.length; ++t) {
          var o = e.onnx.StringStringEntryProto.verify(n.updateBinding[t]);
          if (o) return "updateBinding." + o;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.TrainingInfoProto) return n;
      var o = new e.onnx.TrainingInfoProto();
      if (n.initialization != null) {
        if (typeof n.initialization != "object")
          throw TypeError(".onnx.TrainingInfoProto.initialization: object expected");
        o.initialization = e.onnx.GraphProto.fromObject(n.initialization);
      }
      if (n.algorithm != null) {
        if (typeof n.algorithm != "object") throw TypeError(".onnx.TrainingInfoProto.algorithm: object expected");
        o.algorithm = e.onnx.GraphProto.fromObject(n.algorithm);
      }
      if (n.initializationBinding) {
        if (!Array.isArray(n.initializationBinding))
          throw TypeError(".onnx.TrainingInfoProto.initializationBinding: array expected");
        o.initializationBinding = [];
        for (var t = 0; t < n.initializationBinding.length; ++t) {
          if (typeof n.initializationBinding[t] != "object")
            throw TypeError(".onnx.TrainingInfoProto.initializationBinding: object expected");
          o.initializationBinding[t] = e.onnx.StringStringEntryProto.fromObject(
            n.initializationBinding[t]
          );
        }
      }
      if (n.updateBinding) {
        if (!Array.isArray(n.updateBinding))
          throw TypeError(".onnx.TrainingInfoProto.updateBinding: array expected");
        o.updateBinding = [];
        for (var t = 0; t < n.updateBinding.length; ++t) {
          if (typeof n.updateBinding[t] != "object")
            throw TypeError(".onnx.TrainingInfoProto.updateBinding: object expected");
          o.updateBinding[t] = e.onnx.StringStringEntryProto.fromObject(n.updateBinding[t]);
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.initializationBinding = [], t.updateBinding = []), o.defaults && (t.initialization = null, t.algorithm = null), n.initialization != null && n.hasOwnProperty("initialization") && (t.initialization = e.onnx.GraphProto.toObject(n.initialization, o)), n.algorithm != null && n.hasOwnProperty("algorithm") && (t.algorithm = e.onnx.GraphProto.toObject(n.algorithm, o)), n.initializationBinding && n.initializationBinding.length) {
        t.initializationBinding = [];
        for (var r = 0; r < n.initializationBinding.length; ++r)
          t.initializationBinding[r] = e.onnx.StringStringEntryProto.toObject(
            n.initializationBinding[r],
            o
          );
      }
      if (n.updateBinding && n.updateBinding.length) {
        t.updateBinding = [];
        for (var r = 0; r < n.updateBinding.length; ++r)
          t.updateBinding[r] = e.onnx.StringStringEntryProto.toObject(n.updateBinding[r], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.TrainingInfoProto";
    }, i;
  }(), d.ModelProto = function() {
    function i(u) {
      if (this.opsetImport = [], this.metadataProps = [], this.trainingInfo = [], this.functions = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.irVersion = l.Long ? l.Long.fromBits(0, 0, !1) : 0, i.prototype.opsetImport = l.emptyArray, i.prototype.producerName = "", i.prototype.producerVersion = "", i.prototype.domain = "", i.prototype.modelVersion = l.Long ? l.Long.fromBits(0, 0, !1) : 0, i.prototype.docString = "", i.prototype.graph = null, i.prototype.metadataProps = l.emptyArray, i.prototype.trainingInfo = l.emptyArray, i.prototype.functions = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.irVersion != null && Object.hasOwnProperty.call(n, "irVersion") && o.uint32(
        /* id 1, wireType 0 =*/
        8
      ).int64(n.irVersion), n.producerName != null && Object.hasOwnProperty.call(n, "producerName") && o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).string(n.producerName), n.producerVersion != null && Object.hasOwnProperty.call(n, "producerVersion") && o.uint32(
        /* id 3, wireType 2 =*/
        26
      ).string(n.producerVersion), n.domain != null && Object.hasOwnProperty.call(n, "domain") && o.uint32(
        /* id 4, wireType 2 =*/
        34
      ).string(n.domain), n.modelVersion != null && Object.hasOwnProperty.call(n, "modelVersion") && o.uint32(
        /* id 5, wireType 0 =*/
        40
      ).int64(n.modelVersion), n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 6, wireType 2 =*/
        50
      ).string(n.docString), n.graph != null && Object.hasOwnProperty.call(n, "graph") && e.onnx.GraphProto.encode(n.graph, o.uint32(
        /* id 7, wireType 2 =*/
        58
      ).fork()).ldelim(), n.opsetImport != null && n.opsetImport.length)
        for (var t = 0; t < n.opsetImport.length; ++t)
          e.onnx.OperatorSetIdProto.encode(
            n.opsetImport[t],
            o.uint32(
              /* id 8, wireType 2 =*/
              66
            ).fork()
          ).ldelim();
      if (n.metadataProps != null && n.metadataProps.length)
        for (var t = 0; t < n.metadataProps.length; ++t)
          e.onnx.StringStringEntryProto.encode(
            n.metadataProps[t],
            o.uint32(
              /* id 14, wireType 2 =*/
              114
            ).fork()
          ).ldelim();
      if (n.trainingInfo != null && n.trainingInfo.length)
        for (var t = 0; t < n.trainingInfo.length; ++t)
          e.onnx.TrainingInfoProto.encode(
            n.trainingInfo[t],
            o.uint32(
              /* id 20, wireType 2 =*/
              162
            ).fork()
          ).ldelim();
      if (n.functions != null && n.functions.length)
        for (var t = 0; t < n.functions.length; ++t)
          e.onnx.FunctionProto.encode(
            n.functions[t],
            o.uint32(
              /* id 25, wireType 2 =*/
              202
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.ModelProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.irVersion = n.int64();
            break;
          }
          case 8: {
            r.opsetImport && r.opsetImport.length || (r.opsetImport = []), r.opsetImport.push(e.onnx.OperatorSetIdProto.decode(n, n.uint32()));
            break;
          }
          case 2: {
            r.producerName = n.string();
            break;
          }
          case 3: {
            r.producerVersion = n.string();
            break;
          }
          case 4: {
            r.domain = n.string();
            break;
          }
          case 5: {
            r.modelVersion = n.int64();
            break;
          }
          case 6: {
            r.docString = n.string();
            break;
          }
          case 7: {
            r.graph = e.onnx.GraphProto.decode(n, n.uint32());
            break;
          }
          case 14: {
            r.metadataProps && r.metadataProps.length || (r.metadataProps = []), r.metadataProps.push(e.onnx.StringStringEntryProto.decode(n, n.uint32()));
            break;
          }
          case 20: {
            r.trainingInfo && r.trainingInfo.length || (r.trainingInfo = []), r.trainingInfo.push(e.onnx.TrainingInfoProto.decode(n, n.uint32()));
            break;
          }
          case 25: {
            r.functions && r.functions.length || (r.functions = []), r.functions.push(e.onnx.FunctionProto.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.irVersion != null && n.hasOwnProperty("irVersion") && !l.isInteger(n.irVersion) && !(n.irVersion && l.isInteger(n.irVersion.low) && l.isInteger(n.irVersion.high)))
        return "irVersion: integer|Long expected";
      if (n.opsetImport != null && n.hasOwnProperty("opsetImport")) {
        if (!Array.isArray(n.opsetImport)) return "opsetImport: array expected";
        for (var o = 0; o < n.opsetImport.length; ++o) {
          var t = e.onnx.OperatorSetIdProto.verify(n.opsetImport[o]);
          if (t) return "opsetImport." + t;
        }
      }
      if (n.producerName != null && n.hasOwnProperty("producerName") && !l.isString(n.producerName))
        return "producerName: string expected";
      if (n.producerVersion != null && n.hasOwnProperty("producerVersion") && !l.isString(n.producerVersion))
        return "producerVersion: string expected";
      if (n.domain != null && n.hasOwnProperty("domain") && !l.isString(n.domain))
        return "domain: string expected";
      if (n.modelVersion != null && n.hasOwnProperty("modelVersion") && !l.isInteger(n.modelVersion) && !(n.modelVersion && l.isInteger(n.modelVersion.low) && l.isInteger(n.modelVersion.high)))
        return "modelVersion: integer|Long expected";
      if (n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString))
        return "docString: string expected";
      if (n.graph != null && n.hasOwnProperty("graph")) {
        var t = e.onnx.GraphProto.verify(n.graph);
        if (t) return "graph." + t;
      }
      if (n.metadataProps != null && n.hasOwnProperty("metadataProps")) {
        if (!Array.isArray(n.metadataProps)) return "metadataProps: array expected";
        for (var o = 0; o < n.metadataProps.length; ++o) {
          var t = e.onnx.StringStringEntryProto.verify(n.metadataProps[o]);
          if (t) return "metadataProps." + t;
        }
      }
      if (n.trainingInfo != null && n.hasOwnProperty("trainingInfo")) {
        if (!Array.isArray(n.trainingInfo)) return "trainingInfo: array expected";
        for (var o = 0; o < n.trainingInfo.length; ++o) {
          var t = e.onnx.TrainingInfoProto.verify(n.trainingInfo[o]);
          if (t) return "trainingInfo." + t;
        }
      }
      if (n.functions != null && n.hasOwnProperty("functions")) {
        if (!Array.isArray(n.functions)) return "functions: array expected";
        for (var o = 0; o < n.functions.length; ++o) {
          var t = e.onnx.FunctionProto.verify(n.functions[o]);
          if (t) return "functions." + t;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.ModelProto) return n;
      var o = new e.onnx.ModelProto();
      if (n.irVersion != null && (l.Long ? (o.irVersion = l.Long.fromValue(n.irVersion)).unsigned = !1 : typeof n.irVersion == "string" ? o.irVersion = parseInt(n.irVersion, 10) : typeof n.irVersion == "number" ? o.irVersion = n.irVersion : typeof n.irVersion == "object" && (o.irVersion = new l.LongBits(n.irVersion.low >>> 0, n.irVersion.high >>> 0).toNumber())), n.opsetImport) {
        if (!Array.isArray(n.opsetImport)) throw TypeError(".onnx.ModelProto.opsetImport: array expected");
        o.opsetImport = [];
        for (var t = 0; t < n.opsetImport.length; ++t) {
          if (typeof n.opsetImport[t] != "object")
            throw TypeError(".onnx.ModelProto.opsetImport: object expected");
          o.opsetImport[t] = e.onnx.OperatorSetIdProto.fromObject(n.opsetImport[t]);
        }
      }
      if (n.producerName != null && (o.producerName = String(n.producerName)), n.producerVersion != null && (o.producerVersion = String(n.producerVersion)), n.domain != null && (o.domain = String(n.domain)), n.modelVersion != null && (l.Long ? (o.modelVersion = l.Long.fromValue(n.modelVersion)).unsigned = !1 : typeof n.modelVersion == "string" ? o.modelVersion = parseInt(n.modelVersion, 10) : typeof n.modelVersion == "number" ? o.modelVersion = n.modelVersion : typeof n.modelVersion == "object" && (o.modelVersion = new l.LongBits(
        n.modelVersion.low >>> 0,
        n.modelVersion.high >>> 0
      ).toNumber())), n.docString != null && (o.docString = String(n.docString)), n.graph != null) {
        if (typeof n.graph != "object") throw TypeError(".onnx.ModelProto.graph: object expected");
        o.graph = e.onnx.GraphProto.fromObject(n.graph);
      }
      if (n.metadataProps) {
        if (!Array.isArray(n.metadataProps)) throw TypeError(".onnx.ModelProto.metadataProps: array expected");
        o.metadataProps = [];
        for (var t = 0; t < n.metadataProps.length; ++t) {
          if (typeof n.metadataProps[t] != "object")
            throw TypeError(".onnx.ModelProto.metadataProps: object expected");
          o.metadataProps[t] = e.onnx.StringStringEntryProto.fromObject(n.metadataProps[t]);
        }
      }
      if (n.trainingInfo) {
        if (!Array.isArray(n.trainingInfo)) throw TypeError(".onnx.ModelProto.trainingInfo: array expected");
        o.trainingInfo = [];
        for (var t = 0; t < n.trainingInfo.length; ++t) {
          if (typeof n.trainingInfo[t] != "object")
            throw TypeError(".onnx.ModelProto.trainingInfo: object expected");
          o.trainingInfo[t] = e.onnx.TrainingInfoProto.fromObject(n.trainingInfo[t]);
        }
      }
      if (n.functions) {
        if (!Array.isArray(n.functions)) throw TypeError(".onnx.ModelProto.functions: array expected");
        o.functions = [];
        for (var t = 0; t < n.functions.length; ++t) {
          if (typeof n.functions[t] != "object") throw TypeError(".onnx.ModelProto.functions: object expected");
          o.functions[t] = e.onnx.FunctionProto.fromObject(n.functions[t]);
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.opsetImport = [], t.metadataProps = [], t.trainingInfo = [], t.functions = []), o.defaults) {
        if (l.Long) {
          var r = new l.Long(0, 0, !1);
          t.irVersion = o.longs === String ? r.toString() : o.longs === Number ? r.toNumber() : r;
        } else t.irVersion = o.longs === String ? "0" : 0;
        if (t.producerName = "", t.producerVersion = "", t.domain = "", l.Long) {
          var r = new l.Long(0, 0, !1);
          t.modelVersion = o.longs === String ? r.toString() : o.longs === Number ? r.toNumber() : r;
        } else t.modelVersion = o.longs === String ? "0" : 0;
        t.docString = "", t.graph = null;
      }
      if (n.irVersion != null && n.hasOwnProperty("irVersion") && (typeof n.irVersion == "number" ? t.irVersion = o.longs === String ? String(n.irVersion) : n.irVersion : t.irVersion = o.longs === String ? l.Long.prototype.toString.call(n.irVersion) : o.longs === Number ? new l.LongBits(n.irVersion.low >>> 0, n.irVersion.high >>> 0).toNumber() : n.irVersion), n.producerName != null && n.hasOwnProperty("producerName") && (t.producerName = n.producerName), n.producerVersion != null && n.hasOwnProperty("producerVersion") && (t.producerVersion = n.producerVersion), n.domain != null && n.hasOwnProperty("domain") && (t.domain = n.domain), n.modelVersion != null && n.hasOwnProperty("modelVersion") && (typeof n.modelVersion == "number" ? t.modelVersion = o.longs === String ? String(n.modelVersion) : n.modelVersion : t.modelVersion = o.longs === String ? l.Long.prototype.toString.call(n.modelVersion) : o.longs === Number ? new l.LongBits(n.modelVersion.low >>> 0, n.modelVersion.high >>> 0).toNumber() : n.modelVersion), n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.graph != null && n.hasOwnProperty("graph") && (t.graph = e.onnx.GraphProto.toObject(n.graph, o)), n.opsetImport && n.opsetImport.length) {
        t.opsetImport = [];
        for (var a = 0; a < n.opsetImport.length; ++a)
          t.opsetImport[a] = e.onnx.OperatorSetIdProto.toObject(n.opsetImport[a], o);
      }
      if (n.metadataProps && n.metadataProps.length) {
        t.metadataProps = [];
        for (var a = 0; a < n.metadataProps.length; ++a)
          t.metadataProps[a] = e.onnx.StringStringEntryProto.toObject(n.metadataProps[a], o);
      }
      if (n.trainingInfo && n.trainingInfo.length) {
        t.trainingInfo = [];
        for (var a = 0; a < n.trainingInfo.length; ++a)
          t.trainingInfo[a] = e.onnx.TrainingInfoProto.toObject(n.trainingInfo[a], o);
      }
      if (n.functions && n.functions.length) {
        t.functions = [];
        for (var a = 0; a < n.functions.length; ++a)
          t.functions[a] = e.onnx.FunctionProto.toObject(n.functions[a], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.ModelProto";
    }, i;
  }(), d.StringStringEntryProto = function() {
    function i(u) {
      if (u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.key = "", i.prototype.value = "", i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      return o || (o = c.create()), n.key != null && Object.hasOwnProperty.call(n, "key") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.key), n.value != null && Object.hasOwnProperty.call(n, "value") && o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).string(n.value), o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.StringStringEntryProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.key = n.string();
            break;
          }
          case 2: {
            r.value = n.string();
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      return typeof n != "object" || n === null ? "object expected" : n.key != null && n.hasOwnProperty("key") && !l.isString(n.key) ? "key: string expected" : n.value != null && n.hasOwnProperty("value") && !l.isString(n.value) ? "value: string expected" : null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.StringStringEntryProto) return n;
      var o = new e.onnx.StringStringEntryProto();
      return n.key != null && (o.key = String(n.key)), n.value != null && (o.value = String(n.value)), o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      return o.defaults && (t.key = "", t.value = ""), n.key != null && n.hasOwnProperty("key") && (t.key = n.key), n.value != null && n.hasOwnProperty("value") && (t.value = n.value), t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.StringStringEntryProto";
    }, i;
  }(), d.TensorAnnotation = function() {
    function i(u) {
      if (this.quantParameterTensorNames = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.tensorName = "", i.prototype.quantParameterTensorNames = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.tensorName != null && Object.hasOwnProperty.call(n, "tensorName") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.tensorName), n.quantParameterTensorNames != null && n.quantParameterTensorNames.length)
        for (var t = 0; t < n.quantParameterTensorNames.length; ++t)
          e.onnx.StringStringEntryProto.encode(
            n.quantParameterTensorNames[t],
            o.uint32(
              /* id 2, wireType 2 =*/
              18
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.TensorAnnotation(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.tensorName = n.string();
            break;
          }
          case 2: {
            r.quantParameterTensorNames && r.quantParameterTensorNames.length || (r.quantParameterTensorNames = []), r.quantParameterTensorNames.push(e.onnx.StringStringEntryProto.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.tensorName != null && n.hasOwnProperty("tensorName") && !l.isString(n.tensorName))
        return "tensorName: string expected";
      if (n.quantParameterTensorNames != null && n.hasOwnProperty("quantParameterTensorNames")) {
        if (!Array.isArray(n.quantParameterTensorNames)) return "quantParameterTensorNames: array expected";
        for (var o = 0; o < n.quantParameterTensorNames.length; ++o) {
          var t = e.onnx.StringStringEntryProto.verify(n.quantParameterTensorNames[o]);
          if (t) return "quantParameterTensorNames." + t;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.TensorAnnotation) return n;
      var o = new e.onnx.TensorAnnotation();
      if (n.tensorName != null && (o.tensorName = String(n.tensorName)), n.quantParameterTensorNames) {
        if (!Array.isArray(n.quantParameterTensorNames))
          throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: array expected");
        o.quantParameterTensorNames = [];
        for (var t = 0; t < n.quantParameterTensorNames.length; ++t) {
          if (typeof n.quantParameterTensorNames[t] != "object")
            throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: object expected");
          o.quantParameterTensorNames[t] = e.onnx.StringStringEntryProto.fromObject(
            n.quantParameterTensorNames[t]
          );
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.quantParameterTensorNames = []), o.defaults && (t.tensorName = ""), n.tensorName != null && n.hasOwnProperty("tensorName") && (t.tensorName = n.tensorName), n.quantParameterTensorNames && n.quantParameterTensorNames.length) {
        t.quantParameterTensorNames = [];
        for (var r = 0; r < n.quantParameterTensorNames.length; ++r)
          t.quantParameterTensorNames[r] = e.onnx.StringStringEntryProto.toObject(
            n.quantParameterTensorNames[r],
            o
          );
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.TensorAnnotation";
    }, i;
  }(), d.GraphProto = function() {
    function i(u) {
      if (this.node = [], this.initializer = [], this.sparseInitializer = [], this.input = [], this.output = [], this.valueInfo = [], this.quantizationAnnotation = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.node = l.emptyArray, i.prototype.name = "", i.prototype.initializer = l.emptyArray, i.prototype.sparseInitializer = l.emptyArray, i.prototype.docString = "", i.prototype.input = l.emptyArray, i.prototype.output = l.emptyArray, i.prototype.valueInfo = l.emptyArray, i.prototype.quantizationAnnotation = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.node != null && n.node.length)
        for (var t = 0; t < n.node.length; ++t)
          e.onnx.NodeProto.encode(n.node[t], o.uint32(
            /* id 1, wireType 2 =*/
            10
          ).fork()).ldelim();
      if (n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).string(n.name), n.initializer != null && n.initializer.length)
        for (var t = 0; t < n.initializer.length; ++t)
          e.onnx.TensorProto.encode(
            n.initializer[t],
            o.uint32(
              /* id 5, wireType 2 =*/
              42
            ).fork()
          ).ldelim();
      if (n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 10, wireType 2 =*/
        82
      ).string(n.docString), n.input != null && n.input.length)
        for (var t = 0; t < n.input.length; ++t)
          e.onnx.ValueInfoProto.encode(
            n.input[t],
            o.uint32(
              /* id 11, wireType 2 =*/
              90
            ).fork()
          ).ldelim();
      if (n.output != null && n.output.length)
        for (var t = 0; t < n.output.length; ++t)
          e.onnx.ValueInfoProto.encode(
            n.output[t],
            o.uint32(
              /* id 12, wireType 2 =*/
              98
            ).fork()
          ).ldelim();
      if (n.valueInfo != null && n.valueInfo.length)
        for (var t = 0; t < n.valueInfo.length; ++t)
          e.onnx.ValueInfoProto.encode(
            n.valueInfo[t],
            o.uint32(
              /* id 13, wireType 2 =*/
              106
            ).fork()
          ).ldelim();
      if (n.quantizationAnnotation != null && n.quantizationAnnotation.length)
        for (var t = 0; t < n.quantizationAnnotation.length; ++t)
          e.onnx.TensorAnnotation.encode(
            n.quantizationAnnotation[t],
            o.uint32(
              /* id 14, wireType 2 =*/
              114
            ).fork()
          ).ldelim();
      if (n.sparseInitializer != null && n.sparseInitializer.length)
        for (var t = 0; t < n.sparseInitializer.length; ++t)
          e.onnx.SparseTensorProto.encode(
            n.sparseInitializer[t],
            o.uint32(
              /* id 15, wireType 2 =*/
              122
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.GraphProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.node && r.node.length || (r.node = []), r.node.push(e.onnx.NodeProto.decode(n, n.uint32()));
            break;
          }
          case 2: {
            r.name = n.string();
            break;
          }
          case 5: {
            r.initializer && r.initializer.length || (r.initializer = []), r.initializer.push(e.onnx.TensorProto.decode(n, n.uint32()));
            break;
          }
          case 15: {
            r.sparseInitializer && r.sparseInitializer.length || (r.sparseInitializer = []), r.sparseInitializer.push(e.onnx.SparseTensorProto.decode(n, n.uint32()));
            break;
          }
          case 10: {
            r.docString = n.string();
            break;
          }
          case 11: {
            r.input && r.input.length || (r.input = []), r.input.push(e.onnx.ValueInfoProto.decode(n, n.uint32()));
            break;
          }
          case 12: {
            r.output && r.output.length || (r.output = []), r.output.push(e.onnx.ValueInfoProto.decode(n, n.uint32()));
            break;
          }
          case 13: {
            r.valueInfo && r.valueInfo.length || (r.valueInfo = []), r.valueInfo.push(e.onnx.ValueInfoProto.decode(n, n.uint32()));
            break;
          }
          case 14: {
            r.quantizationAnnotation && r.quantizationAnnotation.length || (r.quantizationAnnotation = []), r.quantizationAnnotation.push(e.onnx.TensorAnnotation.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.node != null && n.hasOwnProperty("node")) {
        if (!Array.isArray(n.node)) return "node: array expected";
        for (var o = 0; o < n.node.length; ++o) {
          var t = e.onnx.NodeProto.verify(n.node[o]);
          if (t) return "node." + t;
        }
      }
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.initializer != null && n.hasOwnProperty("initializer")) {
        if (!Array.isArray(n.initializer)) return "initializer: array expected";
        for (var o = 0; o < n.initializer.length; ++o) {
          var t = e.onnx.TensorProto.verify(n.initializer[o]);
          if (t) return "initializer." + t;
        }
      }
      if (n.sparseInitializer != null && n.hasOwnProperty("sparseInitializer")) {
        if (!Array.isArray(n.sparseInitializer)) return "sparseInitializer: array expected";
        for (var o = 0; o < n.sparseInitializer.length; ++o) {
          var t = e.onnx.SparseTensorProto.verify(n.sparseInitializer[o]);
          if (t) return "sparseInitializer." + t;
        }
      }
      if (n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString))
        return "docString: string expected";
      if (n.input != null && n.hasOwnProperty("input")) {
        if (!Array.isArray(n.input)) return "input: array expected";
        for (var o = 0; o < n.input.length; ++o) {
          var t = e.onnx.ValueInfoProto.verify(n.input[o]);
          if (t) return "input." + t;
        }
      }
      if (n.output != null && n.hasOwnProperty("output")) {
        if (!Array.isArray(n.output)) return "output: array expected";
        for (var o = 0; o < n.output.length; ++o) {
          var t = e.onnx.ValueInfoProto.verify(n.output[o]);
          if (t) return "output." + t;
        }
      }
      if (n.valueInfo != null && n.hasOwnProperty("valueInfo")) {
        if (!Array.isArray(n.valueInfo)) return "valueInfo: array expected";
        for (var o = 0; o < n.valueInfo.length; ++o) {
          var t = e.onnx.ValueInfoProto.verify(n.valueInfo[o]);
          if (t) return "valueInfo." + t;
        }
      }
      if (n.quantizationAnnotation != null && n.hasOwnProperty("quantizationAnnotation")) {
        if (!Array.isArray(n.quantizationAnnotation)) return "quantizationAnnotation: array expected";
        for (var o = 0; o < n.quantizationAnnotation.length; ++o) {
          var t = e.onnx.TensorAnnotation.verify(n.quantizationAnnotation[o]);
          if (t) return "quantizationAnnotation." + t;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.GraphProto) return n;
      var o = new e.onnx.GraphProto();
      if (n.node) {
        if (!Array.isArray(n.node)) throw TypeError(".onnx.GraphProto.node: array expected");
        o.node = [];
        for (var t = 0; t < n.node.length; ++t) {
          if (typeof n.node[t] != "object") throw TypeError(".onnx.GraphProto.node: object expected");
          o.node[t] = e.onnx.NodeProto.fromObject(n.node[t]);
        }
      }
      if (n.name != null && (o.name = String(n.name)), n.initializer) {
        if (!Array.isArray(n.initializer)) throw TypeError(".onnx.GraphProto.initializer: array expected");
        o.initializer = [];
        for (var t = 0; t < n.initializer.length; ++t) {
          if (typeof n.initializer[t] != "object")
            throw TypeError(".onnx.GraphProto.initializer: object expected");
          o.initializer[t] = e.onnx.TensorProto.fromObject(n.initializer[t]);
        }
      }
      if (n.sparseInitializer) {
        if (!Array.isArray(n.sparseInitializer))
          throw TypeError(".onnx.GraphProto.sparseInitializer: array expected");
        o.sparseInitializer = [];
        for (var t = 0; t < n.sparseInitializer.length; ++t) {
          if (typeof n.sparseInitializer[t] != "object")
            throw TypeError(".onnx.GraphProto.sparseInitializer: object expected");
          o.sparseInitializer[t] = e.onnx.SparseTensorProto.fromObject(n.sparseInitializer[t]);
        }
      }
      if (n.docString != null && (o.docString = String(n.docString)), n.input) {
        if (!Array.isArray(n.input)) throw TypeError(".onnx.GraphProto.input: array expected");
        o.input = [];
        for (var t = 0; t < n.input.length; ++t) {
          if (typeof n.input[t] != "object") throw TypeError(".onnx.GraphProto.input: object expected");
          o.input[t] = e.onnx.ValueInfoProto.fromObject(n.input[t]);
        }
      }
      if (n.output) {
        if (!Array.isArray(n.output)) throw TypeError(".onnx.GraphProto.output: array expected");
        o.output = [];
        for (var t = 0; t < n.output.length; ++t) {
          if (typeof n.output[t] != "object") throw TypeError(".onnx.GraphProto.output: object expected");
          o.output[t] = e.onnx.ValueInfoProto.fromObject(n.output[t]);
        }
      }
      if (n.valueInfo) {
        if (!Array.isArray(n.valueInfo)) throw TypeError(".onnx.GraphProto.valueInfo: array expected");
        o.valueInfo = [];
        for (var t = 0; t < n.valueInfo.length; ++t) {
          if (typeof n.valueInfo[t] != "object") throw TypeError(".onnx.GraphProto.valueInfo: object expected");
          o.valueInfo[t] = e.onnx.ValueInfoProto.fromObject(n.valueInfo[t]);
        }
      }
      if (n.quantizationAnnotation) {
        if (!Array.isArray(n.quantizationAnnotation))
          throw TypeError(".onnx.GraphProto.quantizationAnnotation: array expected");
        o.quantizationAnnotation = [];
        for (var t = 0; t < n.quantizationAnnotation.length; ++t) {
          if (typeof n.quantizationAnnotation[t] != "object")
            throw TypeError(".onnx.GraphProto.quantizationAnnotation: object expected");
          o.quantizationAnnotation[t] = e.onnx.TensorAnnotation.fromObject(n.quantizationAnnotation[t]);
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.node = [], t.initializer = [], t.input = [], t.output = [], t.valueInfo = [], t.quantizationAnnotation = [], t.sparseInitializer = []), o.defaults && (t.name = "", t.docString = ""), n.node && n.node.length) {
        t.node = [];
        for (var r = 0; r < n.node.length; ++r)
          t.node[r] = e.onnx.NodeProto.toObject(n.node[r], o);
      }
      if (n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.initializer && n.initializer.length) {
        t.initializer = [];
        for (var r = 0; r < n.initializer.length; ++r)
          t.initializer[r] = e.onnx.TensorProto.toObject(n.initializer[r], o);
      }
      if (n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.input && n.input.length) {
        t.input = [];
        for (var r = 0; r < n.input.length; ++r)
          t.input[r] = e.onnx.ValueInfoProto.toObject(n.input[r], o);
      }
      if (n.output && n.output.length) {
        t.output = [];
        for (var r = 0; r < n.output.length; ++r)
          t.output[r] = e.onnx.ValueInfoProto.toObject(n.output[r], o);
      }
      if (n.valueInfo && n.valueInfo.length) {
        t.valueInfo = [];
        for (var r = 0; r < n.valueInfo.length; ++r)
          t.valueInfo[r] = e.onnx.ValueInfoProto.toObject(n.valueInfo[r], o);
      }
      if (n.quantizationAnnotation && n.quantizationAnnotation.length) {
        t.quantizationAnnotation = [];
        for (var r = 0; r < n.quantizationAnnotation.length; ++r)
          t.quantizationAnnotation[r] = e.onnx.TensorAnnotation.toObject(
            n.quantizationAnnotation[r],
            o
          );
      }
      if (n.sparseInitializer && n.sparseInitializer.length) {
        t.sparseInitializer = [];
        for (var r = 0; r < n.sparseInitializer.length; ++r)
          t.sparseInitializer[r] = e.onnx.SparseTensorProto.toObject(n.sparseInitializer[r], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.GraphProto";
    }, i;
  }(), d.TensorProto = function() {
    function i(u) {
      if (this.dims = [], this.floatData = [], this.int32Data = [], this.stringData = [], this.int64Data = [], this.externalData = [], this.doubleData = [], this.uint64Data = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.dims = l.emptyArray, i.prototype.dataType = 0, i.prototype.segment = null, i.prototype.floatData = l.emptyArray, i.prototype.int32Data = l.emptyArray, i.prototype.stringData = l.emptyArray, i.prototype.int64Data = l.emptyArray, i.prototype.name = "", i.prototype.docString = "", i.prototype.rawData = l.newBuffer([]), i.prototype.externalData = l.emptyArray, i.prototype.dataLocation = 0, i.prototype.doubleData = l.emptyArray, i.prototype.uint64Data = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.dims != null && n.dims.length) {
        o.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork();
        for (var t = 0; t < n.dims.length; ++t) o.int64(n.dims[t]);
        o.ldelim();
      }
      if (n.dataType != null && Object.hasOwnProperty.call(n, "dataType") && o.uint32(
        /* id 2, wireType 0 =*/
        16
      ).int32(n.dataType), n.segment != null && Object.hasOwnProperty.call(n, "segment") && e.onnx.TensorProto.Segment.encode(
        n.segment,
        o.uint32(
          /* id 3, wireType 2 =*/
          26
        ).fork()
      ).ldelim(), n.floatData != null && n.floatData.length) {
        o.uint32(
          /* id 4, wireType 2 =*/
          34
        ).fork();
        for (var t = 0; t < n.floatData.length; ++t) o.float(n.floatData[t]);
        o.ldelim();
      }
      if (n.int32Data != null && n.int32Data.length) {
        o.uint32(
          /* id 5, wireType 2 =*/
          42
        ).fork();
        for (var t = 0; t < n.int32Data.length; ++t) o.int32(n.int32Data[t]);
        o.ldelim();
      }
      if (n.stringData != null && n.stringData.length)
        for (var t = 0; t < n.stringData.length; ++t)
          o.uint32(
            /* id 6, wireType 2 =*/
            50
          ).bytes(n.stringData[t]);
      if (n.int64Data != null && n.int64Data.length) {
        o.uint32(
          /* id 7, wireType 2 =*/
          58
        ).fork();
        for (var t = 0; t < n.int64Data.length; ++t) o.int64(n.int64Data[t]);
        o.ldelim();
      }
      if (n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 8, wireType 2 =*/
        66
      ).string(n.name), n.rawData != null && Object.hasOwnProperty.call(n, "rawData") && o.uint32(
        /* id 9, wireType 2 =*/
        74
      ).bytes(n.rawData), n.doubleData != null && n.doubleData.length) {
        o.uint32(
          /* id 10, wireType 2 =*/
          82
        ).fork();
        for (var t = 0; t < n.doubleData.length; ++t) o.double(n.doubleData[t]);
        o.ldelim();
      }
      if (n.uint64Data != null && n.uint64Data.length) {
        o.uint32(
          /* id 11, wireType 2 =*/
          90
        ).fork();
        for (var t = 0; t < n.uint64Data.length; ++t) o.uint64(n.uint64Data[t]);
        o.ldelim();
      }
      if (n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 12, wireType 2 =*/
        98
      ).string(n.docString), n.externalData != null && n.externalData.length)
        for (var t = 0; t < n.externalData.length; ++t)
          e.onnx.StringStringEntryProto.encode(
            n.externalData[t],
            o.uint32(
              /* id 13, wireType 2 =*/
              106
            ).fork()
          ).ldelim();
      return n.dataLocation != null && Object.hasOwnProperty.call(n, "dataLocation") && o.uint32(
        /* id 14, wireType 0 =*/
        112
      ).int32(n.dataLocation), o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.TensorProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            if (r.dims && r.dims.length || (r.dims = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.dims.push(n.int64());
            else r.dims.push(n.int64());
            break;
          }
          case 2: {
            r.dataType = n.int32();
            break;
          }
          case 3: {
            r.segment = e.onnx.TensorProto.Segment.decode(n, n.uint32());
            break;
          }
          case 4: {
            if (r.floatData && r.floatData.length || (r.floatData = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.floatData.push(n.float());
            else r.floatData.push(n.float());
            break;
          }
          case 5: {
            if (r.int32Data && r.int32Data.length || (r.int32Data = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.int32Data.push(n.int32());
            else r.int32Data.push(n.int32());
            break;
          }
          case 6: {
            r.stringData && r.stringData.length || (r.stringData = []), r.stringData.push(n.bytes());
            break;
          }
          case 7: {
            if (r.int64Data && r.int64Data.length || (r.int64Data = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.int64Data.push(n.int64());
            else r.int64Data.push(n.int64());
            break;
          }
          case 8: {
            r.name = n.string();
            break;
          }
          case 12: {
            r.docString = n.string();
            break;
          }
          case 9: {
            r.rawData = n.bytes();
            break;
          }
          case 13: {
            r.externalData && r.externalData.length || (r.externalData = []), r.externalData.push(e.onnx.StringStringEntryProto.decode(n, n.uint32()));
            break;
          }
          case 14: {
            r.dataLocation = n.int32();
            break;
          }
          case 10: {
            if (r.doubleData && r.doubleData.length || (r.doubleData = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.doubleData.push(n.double());
            else r.doubleData.push(n.double());
            break;
          }
          case 11: {
            if (r.uint64Data && r.uint64Data.length || (r.uint64Data = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.uint64Data.push(n.uint64());
            else r.uint64Data.push(n.uint64());
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.dims != null && n.hasOwnProperty("dims")) {
        if (!Array.isArray(n.dims)) return "dims: array expected";
        for (var o = 0; o < n.dims.length; ++o)
          if (!l.isInteger(n.dims[o]) && !(n.dims[o] && l.isInteger(n.dims[o].low) && l.isInteger(n.dims[o].high)))
            return "dims: integer|Long[] expected";
      }
      if (n.dataType != null && n.hasOwnProperty("dataType") && !l.isInteger(n.dataType))
        return "dataType: integer expected";
      if (n.segment != null && n.hasOwnProperty("segment")) {
        var t = e.onnx.TensorProto.Segment.verify(n.segment);
        if (t) return "segment." + t;
      }
      if (n.floatData != null && n.hasOwnProperty("floatData")) {
        if (!Array.isArray(n.floatData)) return "floatData: array expected";
        for (var o = 0; o < n.floatData.length; ++o)
          if (typeof n.floatData[o] != "number") return "floatData: number[] expected";
      }
      if (n.int32Data != null && n.hasOwnProperty("int32Data")) {
        if (!Array.isArray(n.int32Data)) return "int32Data: array expected";
        for (var o = 0; o < n.int32Data.length; ++o)
          if (!l.isInteger(n.int32Data[o])) return "int32Data: integer[] expected";
      }
      if (n.stringData != null && n.hasOwnProperty("stringData")) {
        if (!Array.isArray(n.stringData)) return "stringData: array expected";
        for (var o = 0; o < n.stringData.length; ++o)
          if (!(n.stringData[o] && typeof n.stringData[o].length == "number" || l.isString(n.stringData[o])))
            return "stringData: buffer[] expected";
      }
      if (n.int64Data != null && n.hasOwnProperty("int64Data")) {
        if (!Array.isArray(n.int64Data)) return "int64Data: array expected";
        for (var o = 0; o < n.int64Data.length; ++o)
          if (!l.isInteger(n.int64Data[o]) && !(n.int64Data[o] && l.isInteger(n.int64Data[o].low) && l.isInteger(n.int64Data[o].high)))
            return "int64Data: integer|Long[] expected";
      }
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString))
        return "docString: string expected";
      if (n.rawData != null && n.hasOwnProperty("rawData") && !(n.rawData && typeof n.rawData.length == "number" || l.isString(n.rawData)))
        return "rawData: buffer expected";
      if (n.externalData != null && n.hasOwnProperty("externalData")) {
        if (!Array.isArray(n.externalData)) return "externalData: array expected";
        for (var o = 0; o < n.externalData.length; ++o) {
          var t = e.onnx.StringStringEntryProto.verify(n.externalData[o]);
          if (t) return "externalData." + t;
        }
      }
      if (n.dataLocation != null && n.hasOwnProperty("dataLocation"))
        switch (n.dataLocation) {
          default:
            return "dataLocation: enum value expected";
          case 0:
          case 1:
            break;
        }
      if (n.doubleData != null && n.hasOwnProperty("doubleData")) {
        if (!Array.isArray(n.doubleData)) return "doubleData: array expected";
        for (var o = 0; o < n.doubleData.length; ++o)
          if (typeof n.doubleData[o] != "number") return "doubleData: number[] expected";
      }
      if (n.uint64Data != null && n.hasOwnProperty("uint64Data")) {
        if (!Array.isArray(n.uint64Data)) return "uint64Data: array expected";
        for (var o = 0; o < n.uint64Data.length; ++o)
          if (!l.isInteger(n.uint64Data[o]) && !(n.uint64Data[o] && l.isInteger(n.uint64Data[o].low) && l.isInteger(n.uint64Data[o].high)))
            return "uint64Data: integer|Long[] expected";
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.TensorProto) return n;
      var o = new e.onnx.TensorProto();
      if (n.dims) {
        if (!Array.isArray(n.dims)) throw TypeError(".onnx.TensorProto.dims: array expected");
        o.dims = [];
        for (var t = 0; t < n.dims.length; ++t)
          l.Long ? (o.dims[t] = l.Long.fromValue(n.dims[t])).unsigned = !1 : typeof n.dims[t] == "string" ? o.dims[t] = parseInt(n.dims[t], 10) : typeof n.dims[t] == "number" ? o.dims[t] = n.dims[t] : typeof n.dims[t] == "object" && (o.dims[t] = new l.LongBits(n.dims[t].low >>> 0, n.dims[t].high >>> 0).toNumber());
      }
      if (n.dataType != null && (o.dataType = n.dataType | 0), n.segment != null) {
        if (typeof n.segment != "object") throw TypeError(".onnx.TensorProto.segment: object expected");
        o.segment = e.onnx.TensorProto.Segment.fromObject(n.segment);
      }
      if (n.floatData) {
        if (!Array.isArray(n.floatData)) throw TypeError(".onnx.TensorProto.floatData: array expected");
        o.floatData = [];
        for (var t = 0; t < n.floatData.length; ++t) o.floatData[t] = Number(n.floatData[t]);
      }
      if (n.int32Data) {
        if (!Array.isArray(n.int32Data)) throw TypeError(".onnx.TensorProto.int32Data: array expected");
        o.int32Data = [];
        for (var t = 0; t < n.int32Data.length; ++t) o.int32Data[t] = n.int32Data[t] | 0;
      }
      if (n.stringData) {
        if (!Array.isArray(n.stringData)) throw TypeError(".onnx.TensorProto.stringData: array expected");
        o.stringData = [];
        for (var t = 0; t < n.stringData.length; ++t)
          typeof n.stringData[t] == "string" ? l.base64.decode(
            n.stringData[t],
            o.stringData[t] = l.newBuffer(l.base64.length(n.stringData[t])),
            0
          ) : n.stringData[t].length >= 0 && (o.stringData[t] = n.stringData[t]);
      }
      if (n.int64Data) {
        if (!Array.isArray(n.int64Data)) throw TypeError(".onnx.TensorProto.int64Data: array expected");
        o.int64Data = [];
        for (var t = 0; t < n.int64Data.length; ++t)
          l.Long ? (o.int64Data[t] = l.Long.fromValue(n.int64Data[t])).unsigned = !1 : typeof n.int64Data[t] == "string" ? o.int64Data[t] = parseInt(n.int64Data[t], 10) : typeof n.int64Data[t] == "number" ? o.int64Data[t] = n.int64Data[t] : typeof n.int64Data[t] == "object" && (o.int64Data[t] = new l.LongBits(
            n.int64Data[t].low >>> 0,
            n.int64Data[t].high >>> 0
          ).toNumber());
      }
      if (n.name != null && (o.name = String(n.name)), n.docString != null && (o.docString = String(n.docString)), n.rawData != null && (typeof n.rawData == "string" ? l.base64.decode(
        n.rawData,
        o.rawData = l.newBuffer(l.base64.length(n.rawData)),
        0
      ) : n.rawData.length >= 0 && (o.rawData = n.rawData)), n.externalData) {
        if (!Array.isArray(n.externalData)) throw TypeError(".onnx.TensorProto.externalData: array expected");
        o.externalData = [];
        for (var t = 0; t < n.externalData.length; ++t) {
          if (typeof n.externalData[t] != "object")
            throw TypeError(".onnx.TensorProto.externalData: object expected");
          o.externalData[t] = e.onnx.StringStringEntryProto.fromObject(n.externalData[t]);
        }
      }
      switch (n.dataLocation) {
        default:
          if (typeof n.dataLocation == "number") {
            o.dataLocation = n.dataLocation;
            break;
          }
          break;
        case "DEFAULT":
        case 0:
          o.dataLocation = 0;
          break;
        case "EXTERNAL":
        case 1:
          o.dataLocation = 1;
          break;
      }
      if (n.doubleData) {
        if (!Array.isArray(n.doubleData)) throw TypeError(".onnx.TensorProto.doubleData: array expected");
        o.doubleData = [];
        for (var t = 0; t < n.doubleData.length; ++t) o.doubleData[t] = Number(n.doubleData[t]);
      }
      if (n.uint64Data) {
        if (!Array.isArray(n.uint64Data)) throw TypeError(".onnx.TensorProto.uint64Data: array expected");
        o.uint64Data = [];
        for (var t = 0; t < n.uint64Data.length; ++t)
          l.Long ? (o.uint64Data[t] = l.Long.fromValue(n.uint64Data[t])).unsigned = !0 : typeof n.uint64Data[t] == "string" ? o.uint64Data[t] = parseInt(n.uint64Data[t], 10) : typeof n.uint64Data[t] == "number" ? o.uint64Data[t] = n.uint64Data[t] : typeof n.uint64Data[t] == "object" && (o.uint64Data[t] = new l.LongBits(
            n.uint64Data[t].low >>> 0,
            n.uint64Data[t].high >>> 0
          ).toNumber(!0));
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.dims = [], t.floatData = [], t.int32Data = [], t.stringData = [], t.int64Data = [], t.doubleData = [], t.uint64Data = [], t.externalData = []), o.defaults && (t.dataType = 0, t.segment = null, t.name = "", o.bytes === String ? t.rawData = "" : (t.rawData = [], o.bytes !== Array && (t.rawData = l.newBuffer(t.rawData))), t.docString = "", t.dataLocation = o.enums === String ? "DEFAULT" : 0), n.dims && n.dims.length) {
        t.dims = [];
        for (var r = 0; r < n.dims.length; ++r)
          typeof n.dims[r] == "number" ? t.dims[r] = o.longs === String ? String(n.dims[r]) : n.dims[r] : t.dims[r] = o.longs === String ? l.Long.prototype.toString.call(n.dims[r]) : o.longs === Number ? new l.LongBits(n.dims[r].low >>> 0, n.dims[r].high >>> 0).toNumber() : n.dims[r];
      }
      if (n.dataType != null && n.hasOwnProperty("dataType") && (t.dataType = n.dataType), n.segment != null && n.hasOwnProperty("segment") && (t.segment = e.onnx.TensorProto.Segment.toObject(n.segment, o)), n.floatData && n.floatData.length) {
        t.floatData = [];
        for (var r = 0; r < n.floatData.length; ++r)
          t.floatData[r] = o.json && !isFinite(n.floatData[r]) ? String(n.floatData[r]) : n.floatData[r];
      }
      if (n.int32Data && n.int32Data.length) {
        t.int32Data = [];
        for (var r = 0; r < n.int32Data.length; ++r) t.int32Data[r] = n.int32Data[r];
      }
      if (n.stringData && n.stringData.length) {
        t.stringData = [];
        for (var r = 0; r < n.stringData.length; ++r)
          t.stringData[r] = o.bytes === String ? l.base64.encode(n.stringData[r], 0, n.stringData[r].length) : o.bytes === Array ? Array.prototype.slice.call(n.stringData[r]) : n.stringData[r];
      }
      if (n.int64Data && n.int64Data.length) {
        t.int64Data = [];
        for (var r = 0; r < n.int64Data.length; ++r)
          typeof n.int64Data[r] == "number" ? t.int64Data[r] = o.longs === String ? String(n.int64Data[r]) : n.int64Data[r] : t.int64Data[r] = o.longs === String ? l.Long.prototype.toString.call(n.int64Data[r]) : o.longs === Number ? new l.LongBits(n.int64Data[r].low >>> 0, n.int64Data[r].high >>> 0).toNumber() : n.int64Data[r];
      }
      if (n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.rawData != null && n.hasOwnProperty("rawData") && (t.rawData = o.bytes === String ? l.base64.encode(n.rawData, 0, n.rawData.length) : o.bytes === Array ? Array.prototype.slice.call(n.rawData) : n.rawData), n.doubleData && n.doubleData.length) {
        t.doubleData = [];
        for (var r = 0; r < n.doubleData.length; ++r)
          t.doubleData[r] = o.json && !isFinite(n.doubleData[r]) ? String(n.doubleData[r]) : n.doubleData[r];
      }
      if (n.uint64Data && n.uint64Data.length) {
        t.uint64Data = [];
        for (var r = 0; r < n.uint64Data.length; ++r)
          typeof n.uint64Data[r] == "number" ? t.uint64Data[r] = o.longs === String ? String(n.uint64Data[r]) : n.uint64Data[r] : t.uint64Data[r] = o.longs === String ? l.Long.prototype.toString.call(n.uint64Data[r]) : o.longs === Number ? new l.LongBits(n.uint64Data[r].low >>> 0, n.uint64Data[r].high >>> 0).toNumber(!0) : n.uint64Data[r];
      }
      if (n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.externalData && n.externalData.length) {
        t.externalData = [];
        for (var r = 0; r < n.externalData.length; ++r)
          t.externalData[r] = e.onnx.StringStringEntryProto.toObject(n.externalData[r], o);
      }
      return n.dataLocation != null && n.hasOwnProperty("dataLocation") && (t.dataLocation = o.enums === String ? e.onnx.TensorProto.DataLocation[n.dataLocation] === void 0 ? n.dataLocation : e.onnx.TensorProto.DataLocation[n.dataLocation] : n.dataLocation), t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.TensorProto";
    }, i.DataType = function() {
      var u = {}, n = Object.create(u);
      return n[u[0] = "UNDEFINED"] = 0, n[u[1] = "FLOAT"] = 1, n[u[2] = "UINT8"] = 2, n[u[3] = "INT8"] = 3, n[u[4] = "UINT16"] = 4, n[u[5] = "INT16"] = 5, n[u[6] = "INT32"] = 6, n[u[7] = "INT64"] = 7, n[u[8] = "STRING"] = 8, n[u[9] = "BOOL"] = 9, n[u[10] = "FLOAT16"] = 10, n[u[11] = "DOUBLE"] = 11, n[u[12] = "UINT32"] = 12, n[u[13] = "UINT64"] = 13, n[u[14] = "COMPLEX64"] = 14, n[u[15] = "COMPLEX128"] = 15, n[u[16] = "BFLOAT16"] = 16, n[u[17] = "FLOAT8E4M3FN"] = 17, n[u[18] = "FLOAT8E4M3FNUZ"] = 18, n[u[19] = "FLOAT8E5M2"] = 19, n[u[20] = "FLOAT8E5M2FNUZ"] = 20, n;
    }(), i.Segment = function() {
      function u(n) {
        if (n)
          for (var o = Object.keys(n), t = 0; t < o.length; ++t)
            n[o[t]] != null && (this[o[t]] = n[o[t]]);
      }
      return u.prototype.begin = l.Long ? l.Long.fromBits(0, 0, !1) : 0, u.prototype.end = l.Long ? l.Long.fromBits(0, 0, !1) : 0, u.create = function(o) {
        return new u(o);
      }, u.encode = function(o, t) {
        return t || (t = c.create()), o.begin != null && Object.hasOwnProperty.call(o, "begin") && t.uint32(
          /* id 1, wireType 0 =*/
          8
        ).int64(o.begin), o.end != null && Object.hasOwnProperty.call(o, "end") && t.uint32(
          /* id 2, wireType 0 =*/
          16
        ).int64(o.end), t;
      }, u.encodeDelimited = function(o, t) {
        return this.encode(o, t).ldelim();
      }, u.decode = function(o, t) {
        o instanceof f || (o = f.create(o));
        for (var r = t === void 0 ? o.len : o.pos + t, a = new e.onnx.TensorProto.Segment(); o.pos < r; ) {
          var p = o.uint32();
          switch (p >>> 3) {
            case 1: {
              a.begin = o.int64();
              break;
            }
            case 2: {
              a.end = o.int64();
              break;
            }
            default:
              o.skipType(p & 7);
              break;
          }
        }
        return a;
      }, u.decodeDelimited = function(o) {
        return o instanceof f || (o = new f(o)), this.decode(o, o.uint32());
      }, u.verify = function(o) {
        return typeof o != "object" || o === null ? "object expected" : o.begin != null && o.hasOwnProperty("begin") && !l.isInteger(o.begin) && !(o.begin && l.isInteger(o.begin.low) && l.isInteger(o.begin.high)) ? "begin: integer|Long expected" : o.end != null && o.hasOwnProperty("end") && !l.isInteger(o.end) && !(o.end && l.isInteger(o.end.low) && l.isInteger(o.end.high)) ? "end: integer|Long expected" : null;
      }, u.fromObject = function(o) {
        if (o instanceof e.onnx.TensorProto.Segment) return o;
        var t = new e.onnx.TensorProto.Segment();
        return o.begin != null && (l.Long ? (t.begin = l.Long.fromValue(o.begin)).unsigned = !1 : typeof o.begin == "string" ? t.begin = parseInt(o.begin, 10) : typeof o.begin == "number" ? t.begin = o.begin : typeof o.begin == "object" && (t.begin = new l.LongBits(o.begin.low >>> 0, o.begin.high >>> 0).toNumber())), o.end != null && (l.Long ? (t.end = l.Long.fromValue(o.end)).unsigned = !1 : typeof o.end == "string" ? t.end = parseInt(o.end, 10) : typeof o.end == "number" ? t.end = o.end : typeof o.end == "object" && (t.end = new l.LongBits(o.end.low >>> 0, o.end.high >>> 0).toNumber())), t;
      }, u.toObject = function(o, t) {
        t || (t = {});
        var r = {};
        if (t.defaults) {
          if (l.Long) {
            var a = new l.Long(0, 0, !1);
            r.begin = t.longs === String ? a.toString() : t.longs === Number ? a.toNumber() : a;
          } else r.begin = t.longs === String ? "0" : 0;
          if (l.Long) {
            var a = new l.Long(0, 0, !1);
            r.end = t.longs === String ? a.toString() : t.longs === Number ? a.toNumber() : a;
          } else r.end = t.longs === String ? "0" : 0;
        }
        return o.begin != null && o.hasOwnProperty("begin") && (typeof o.begin == "number" ? r.begin = t.longs === String ? String(o.begin) : o.begin : r.begin = t.longs === String ? l.Long.prototype.toString.call(o.begin) : t.longs === Number ? new l.LongBits(o.begin.low >>> 0, o.begin.high >>> 0).toNumber() : o.begin), o.end != null && o.hasOwnProperty("end") && (typeof o.end == "number" ? r.end = t.longs === String ? String(o.end) : o.end : r.end = t.longs === String ? l.Long.prototype.toString.call(o.end) : t.longs === Number ? new l.LongBits(o.end.low >>> 0, o.end.high >>> 0).toNumber() : o.end), r;
      }, u.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, u.getTypeUrl = function(o) {
        return o === void 0 && (o = "type.googleapis.com"), o + "/onnx.TensorProto.Segment";
      }, u;
    }(), i.DataLocation = function() {
      var u = {}, n = Object.create(u);
      return n[u[0] = "DEFAULT"] = 0, n[u[1] = "EXTERNAL"] = 1, n;
    }(), i;
  }(), d.SparseTensorProto = function() {
    function i(u) {
      if (this.dims = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.values = null, i.prototype.indices = null, i.prototype.dims = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.values != null && Object.hasOwnProperty.call(n, "values") && e.onnx.TensorProto.encode(n.values, o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).fork()).ldelim(), n.indices != null && Object.hasOwnProperty.call(n, "indices") && e.onnx.TensorProto.encode(n.indices, o.uint32(
        /* id 2, wireType 2 =*/
        18
      ).fork()).ldelim(), n.dims != null && n.dims.length) {
        o.uint32(
          /* id 3, wireType 2 =*/
          26
        ).fork();
        for (var t = 0; t < n.dims.length; ++t) o.int64(n.dims[t]);
        o.ldelim();
      }
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.SparseTensorProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.values = e.onnx.TensorProto.decode(n, n.uint32());
            break;
          }
          case 2: {
            r.indices = e.onnx.TensorProto.decode(n, n.uint32());
            break;
          }
          case 3: {
            if (r.dims && r.dims.length || (r.dims = []), (a & 7) === 2)
              for (var p = n.uint32() + n.pos; n.pos < p; ) r.dims.push(n.int64());
            else r.dims.push(n.int64());
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.values != null && n.hasOwnProperty("values")) {
        var o = e.onnx.TensorProto.verify(n.values);
        if (o) return "values." + o;
      }
      if (n.indices != null && n.hasOwnProperty("indices")) {
        var o = e.onnx.TensorProto.verify(n.indices);
        if (o) return "indices." + o;
      }
      if (n.dims != null && n.hasOwnProperty("dims")) {
        if (!Array.isArray(n.dims)) return "dims: array expected";
        for (var t = 0; t < n.dims.length; ++t)
          if (!l.isInteger(n.dims[t]) && !(n.dims[t] && l.isInteger(n.dims[t].low) && l.isInteger(n.dims[t].high)))
            return "dims: integer|Long[] expected";
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.SparseTensorProto) return n;
      var o = new e.onnx.SparseTensorProto();
      if (n.values != null) {
        if (typeof n.values != "object") throw TypeError(".onnx.SparseTensorProto.values: object expected");
        o.values = e.onnx.TensorProto.fromObject(n.values);
      }
      if (n.indices != null) {
        if (typeof n.indices != "object") throw TypeError(".onnx.SparseTensorProto.indices: object expected");
        o.indices = e.onnx.TensorProto.fromObject(n.indices);
      }
      if (n.dims) {
        if (!Array.isArray(n.dims)) throw TypeError(".onnx.SparseTensorProto.dims: array expected");
        o.dims = [];
        for (var t = 0; t < n.dims.length; ++t)
          l.Long ? (o.dims[t] = l.Long.fromValue(n.dims[t])).unsigned = !1 : typeof n.dims[t] == "string" ? o.dims[t] = parseInt(n.dims[t], 10) : typeof n.dims[t] == "number" ? o.dims[t] = n.dims[t] : typeof n.dims[t] == "object" && (o.dims[t] = new l.LongBits(n.dims[t].low >>> 0, n.dims[t].high >>> 0).toNumber());
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.dims = []), o.defaults && (t.values = null, t.indices = null), n.values != null && n.hasOwnProperty("values") && (t.values = e.onnx.TensorProto.toObject(n.values, o)), n.indices != null && n.hasOwnProperty("indices") && (t.indices = e.onnx.TensorProto.toObject(n.indices, o)), n.dims && n.dims.length) {
        t.dims = [];
        for (var r = 0; r < n.dims.length; ++r)
          typeof n.dims[r] == "number" ? t.dims[r] = o.longs === String ? String(n.dims[r]) : n.dims[r] : t.dims[r] = o.longs === String ? l.Long.prototype.toString.call(n.dims[r]) : o.longs === Number ? new l.LongBits(n.dims[r].low >>> 0, n.dims[r].high >>> 0).toNumber() : n.dims[r];
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.SparseTensorProto";
    }, i;
  }(), d.TensorShapeProto = function() {
    function i(u) {
      if (this.dim = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.dim = l.emptyArray, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.dim != null && n.dim.length)
        for (var t = 0; t < n.dim.length; ++t)
          e.onnx.TensorShapeProto.Dimension.encode(
            n.dim[t],
            o.uint32(
              /* id 1, wireType 2 =*/
              10
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.TensorShapeProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.dim && r.dim.length || (r.dim = []), r.dim.push(e.onnx.TensorShapeProto.Dimension.decode(n, n.uint32()));
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.dim != null && n.hasOwnProperty("dim")) {
        if (!Array.isArray(n.dim)) return "dim: array expected";
        for (var o = 0; o < n.dim.length; ++o) {
          var t = e.onnx.TensorShapeProto.Dimension.verify(n.dim[o]);
          if (t) return "dim." + t;
        }
      }
      return null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.TensorShapeProto) return n;
      var o = new e.onnx.TensorShapeProto();
      if (n.dim) {
        if (!Array.isArray(n.dim)) throw TypeError(".onnx.TensorShapeProto.dim: array expected");
        o.dim = [];
        for (var t = 0; t < n.dim.length; ++t) {
          if (typeof n.dim[t] != "object") throw TypeError(".onnx.TensorShapeProto.dim: object expected");
          o.dim[t] = e.onnx.TensorShapeProto.Dimension.fromObject(n.dim[t]);
        }
      }
      return o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.dim = []), n.dim && n.dim.length) {
        t.dim = [];
        for (var r = 0; r < n.dim.length; ++r)
          t.dim[r] = e.onnx.TensorShapeProto.Dimension.toObject(n.dim[r], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.TensorShapeProto";
    }, i.Dimension = function() {
      function u(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      u.prototype.dimValue = null, u.prototype.dimParam = null, u.prototype.denotation = "";
      var n;
      return Object.defineProperty(u.prototype, "value", {
        get: l.oneOfGetter(n = ["dimValue", "dimParam"]),
        set: l.oneOfSetter(n)
      }), u.create = function(t) {
        return new u(t);
      }, u.encode = function(t, r) {
        return r || (r = c.create()), t.dimValue != null && Object.hasOwnProperty.call(t, "dimValue") && r.uint32(
          /* id 1, wireType 0 =*/
          8
        ).int64(t.dimValue), t.dimParam != null && Object.hasOwnProperty.call(t, "dimParam") && r.uint32(
          /* id 2, wireType 2 =*/
          18
        ).string(t.dimParam), t.denotation != null && Object.hasOwnProperty.call(t, "denotation") && r.uint32(
          /* id 3, wireType 2 =*/
          26
        ).string(t.denotation), r;
      }, u.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, u.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TensorShapeProto.Dimension(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.dimValue = t.int64();
              break;
            }
            case 2: {
              p.dimParam = t.string();
              break;
            }
            case 3: {
              p.denotation = t.string();
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, u.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, u.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        var r = {};
        if (t.dimValue != null && t.hasOwnProperty("dimValue") && (r.value = 1, !l.isInteger(t.dimValue) && !(t.dimValue && l.isInteger(t.dimValue.low) && l.isInteger(t.dimValue.high))))
          return "dimValue: integer|Long expected";
        if (t.dimParam != null && t.hasOwnProperty("dimParam")) {
          if (r.value === 1) return "value: multiple values";
          if (r.value = 1, !l.isString(t.dimParam)) return "dimParam: string expected";
        }
        return t.denotation != null && t.hasOwnProperty("denotation") && !l.isString(t.denotation) ? "denotation: string expected" : null;
      }, u.fromObject = function(t) {
        if (t instanceof e.onnx.TensorShapeProto.Dimension) return t;
        var r = new e.onnx.TensorShapeProto.Dimension();
        return t.dimValue != null && (l.Long ? (r.dimValue = l.Long.fromValue(t.dimValue)).unsigned = !1 : typeof t.dimValue == "string" ? r.dimValue = parseInt(t.dimValue, 10) : typeof t.dimValue == "number" ? r.dimValue = t.dimValue : typeof t.dimValue == "object" && (r.dimValue = new l.LongBits(t.dimValue.low >>> 0, t.dimValue.high >>> 0).toNumber())), t.dimParam != null && (r.dimParam = String(t.dimParam)), t.denotation != null && (r.denotation = String(t.denotation)), r;
      }, u.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.denotation = ""), t.dimValue != null && t.hasOwnProperty("dimValue") && (typeof t.dimValue == "number" ? a.dimValue = r.longs === String ? String(t.dimValue) : t.dimValue : a.dimValue = r.longs === String ? l.Long.prototype.toString.call(t.dimValue) : r.longs === Number ? new l.LongBits(t.dimValue.low >>> 0, t.dimValue.high >>> 0).toNumber() : t.dimValue, r.oneofs && (a.value = "dimValue")), t.dimParam != null && t.hasOwnProperty("dimParam") && (a.dimParam = t.dimParam, r.oneofs && (a.value = "dimParam")), t.denotation != null && t.hasOwnProperty("denotation") && (a.denotation = t.denotation), a;
      }, u.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, u.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TensorShapeProto.Dimension";
      }, u;
    }(), i;
  }(), d.TypeProto = function() {
    function i(n) {
      if (n)
        for (var o = Object.keys(n), t = 0; t < o.length; ++t)
          n[o[t]] != null && (this[o[t]] = n[o[t]]);
    }
    i.prototype.tensorType = null, i.prototype.sequenceType = null, i.prototype.mapType = null, i.prototype.optionalType = null, i.prototype.sparseTensorType = null, i.prototype.denotation = "";
    var u;
    return Object.defineProperty(i.prototype, "value", {
      get: l.oneOfGetter(
        u = ["tensorType", "sequenceType", "mapType", "optionalType", "sparseTensorType"]
      ),
      set: l.oneOfSetter(u)
    }), i.create = function(o) {
      return new i(o);
    }, i.encode = function(o, t) {
      return t || (t = c.create()), o.tensorType != null && Object.hasOwnProperty.call(o, "tensorType") && e.onnx.TypeProto.Tensor.encode(
        o.tensorType,
        t.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()
      ).ldelim(), o.sequenceType != null && Object.hasOwnProperty.call(o, "sequenceType") && e.onnx.TypeProto.Sequence.encode(
        o.sequenceType,
        t.uint32(
          /* id 4, wireType 2 =*/
          34
        ).fork()
      ).ldelim(), o.mapType != null && Object.hasOwnProperty.call(o, "mapType") && e.onnx.TypeProto.Map.encode(o.mapType, t.uint32(
        /* id 5, wireType 2 =*/
        42
      ).fork()).ldelim(), o.denotation != null && Object.hasOwnProperty.call(o, "denotation") && t.uint32(
        /* id 6, wireType 2 =*/
        50
      ).string(o.denotation), o.sparseTensorType != null && Object.hasOwnProperty.call(o, "sparseTensorType") && e.onnx.TypeProto.SparseTensor.encode(
        o.sparseTensorType,
        t.uint32(
          /* id 8, wireType 2 =*/
          66
        ).fork()
      ).ldelim(), o.optionalType != null && Object.hasOwnProperty.call(o, "optionalType") && e.onnx.TypeProto.Optional.encode(
        o.optionalType,
        t.uint32(
          /* id 9, wireType 2 =*/
          74
        ).fork()
      ).ldelim(), t;
    }, i.encodeDelimited = function(o, t) {
      return this.encode(o, t).ldelim();
    }, i.decode = function(o, t) {
      o instanceof f || (o = f.create(o));
      for (var r = t === void 0 ? o.len : o.pos + t, a = new e.onnx.TypeProto(); o.pos < r; ) {
        var p = o.uint32();
        switch (p >>> 3) {
          case 1: {
            a.tensorType = e.onnx.TypeProto.Tensor.decode(o, o.uint32());
            break;
          }
          case 4: {
            a.sequenceType = e.onnx.TypeProto.Sequence.decode(o, o.uint32());
            break;
          }
          case 5: {
            a.mapType = e.onnx.TypeProto.Map.decode(o, o.uint32());
            break;
          }
          case 9: {
            a.optionalType = e.onnx.TypeProto.Optional.decode(o, o.uint32());
            break;
          }
          case 8: {
            a.sparseTensorType = e.onnx.TypeProto.SparseTensor.decode(o, o.uint32());
            break;
          }
          case 6: {
            a.denotation = o.string();
            break;
          }
          default:
            o.skipType(p & 7);
            break;
        }
      }
      return a;
    }, i.decodeDelimited = function(o) {
      return o instanceof f || (o = new f(o)), this.decode(o, o.uint32());
    }, i.verify = function(o) {
      if (typeof o != "object" || o === null) return "object expected";
      var t = {};
      if (o.tensorType != null && o.hasOwnProperty("tensorType")) {
        t.value = 1;
        {
          var r = e.onnx.TypeProto.Tensor.verify(o.tensorType);
          if (r) return "tensorType." + r;
        }
      }
      if (o.sequenceType != null && o.hasOwnProperty("sequenceType")) {
        if (t.value === 1) return "value: multiple values";
        t.value = 1;
        {
          var r = e.onnx.TypeProto.Sequence.verify(o.sequenceType);
          if (r) return "sequenceType." + r;
        }
      }
      if (o.mapType != null && o.hasOwnProperty("mapType")) {
        if (t.value === 1) return "value: multiple values";
        t.value = 1;
        {
          var r = e.onnx.TypeProto.Map.verify(o.mapType);
          if (r) return "mapType." + r;
        }
      }
      if (o.optionalType != null && o.hasOwnProperty("optionalType")) {
        if (t.value === 1) return "value: multiple values";
        t.value = 1;
        {
          var r = e.onnx.TypeProto.Optional.verify(o.optionalType);
          if (r) return "optionalType." + r;
        }
      }
      if (o.sparseTensorType != null && o.hasOwnProperty("sparseTensorType")) {
        if (t.value === 1) return "value: multiple values";
        t.value = 1;
        {
          var r = e.onnx.TypeProto.SparseTensor.verify(o.sparseTensorType);
          if (r) return "sparseTensorType." + r;
        }
      }
      return o.denotation != null && o.hasOwnProperty("denotation") && !l.isString(o.denotation) ? "denotation: string expected" : null;
    }, i.fromObject = function(o) {
      if (o instanceof e.onnx.TypeProto) return o;
      var t = new e.onnx.TypeProto();
      if (o.tensorType != null) {
        if (typeof o.tensorType != "object") throw TypeError(".onnx.TypeProto.tensorType: object expected");
        t.tensorType = e.onnx.TypeProto.Tensor.fromObject(o.tensorType);
      }
      if (o.sequenceType != null) {
        if (typeof o.sequenceType != "object") throw TypeError(".onnx.TypeProto.sequenceType: object expected");
        t.sequenceType = e.onnx.TypeProto.Sequence.fromObject(o.sequenceType);
      }
      if (o.mapType != null) {
        if (typeof o.mapType != "object") throw TypeError(".onnx.TypeProto.mapType: object expected");
        t.mapType = e.onnx.TypeProto.Map.fromObject(o.mapType);
      }
      if (o.optionalType != null) {
        if (typeof o.optionalType != "object") throw TypeError(".onnx.TypeProto.optionalType: object expected");
        t.optionalType = e.onnx.TypeProto.Optional.fromObject(o.optionalType);
      }
      if (o.sparseTensorType != null) {
        if (typeof o.sparseTensorType != "object")
          throw TypeError(".onnx.TypeProto.sparseTensorType: object expected");
        t.sparseTensorType = e.onnx.TypeProto.SparseTensor.fromObject(o.sparseTensorType);
      }
      return o.denotation != null && (t.denotation = String(o.denotation)), t;
    }, i.toObject = function(o, t) {
      t || (t = {});
      var r = {};
      return t.defaults && (r.denotation = ""), o.tensorType != null && o.hasOwnProperty("tensorType") && (r.tensorType = e.onnx.TypeProto.Tensor.toObject(o.tensorType, t), t.oneofs && (r.value = "tensorType")), o.sequenceType != null && o.hasOwnProperty("sequenceType") && (r.sequenceType = e.onnx.TypeProto.Sequence.toObject(o.sequenceType, t), t.oneofs && (r.value = "sequenceType")), o.mapType != null && o.hasOwnProperty("mapType") && (r.mapType = e.onnx.TypeProto.Map.toObject(o.mapType, t), t.oneofs && (r.value = "mapType")), o.denotation != null && o.hasOwnProperty("denotation") && (r.denotation = o.denotation), o.sparseTensorType != null && o.hasOwnProperty("sparseTensorType") && (r.sparseTensorType = e.onnx.TypeProto.SparseTensor.toObject(o.sparseTensorType, t), t.oneofs && (r.value = "sparseTensorType")), o.optionalType != null && o.hasOwnProperty("optionalType") && (r.optionalType = e.onnx.TypeProto.Optional.toObject(o.optionalType, t), t.oneofs && (r.value = "optionalType")), r;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(o) {
      return o === void 0 && (o = "type.googleapis.com"), o + "/onnx.TypeProto";
    }, i.Tensor = function() {
      function n(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      return n.prototype.elemType = 0, n.prototype.shape = null, n.create = function(t) {
        return new n(t);
      }, n.encode = function(t, r) {
        return r || (r = c.create()), t.elemType != null && Object.hasOwnProperty.call(t, "elemType") && r.uint32(
          /* id 1, wireType 0 =*/
          8
        ).int32(t.elemType), t.shape != null && Object.hasOwnProperty.call(t, "shape") && e.onnx.TensorShapeProto.encode(t.shape, r.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim(), r;
      }, n.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, n.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TypeProto.Tensor(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.elemType = t.int32();
              break;
            }
            case 2: {
              p.shape = e.onnx.TensorShapeProto.decode(t, t.uint32());
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, n.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, n.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        if (t.elemType != null && t.hasOwnProperty("elemType") && !l.isInteger(t.elemType))
          return "elemType: integer expected";
        if (t.shape != null && t.hasOwnProperty("shape")) {
          var r = e.onnx.TensorShapeProto.verify(t.shape);
          if (r) return "shape." + r;
        }
        return null;
      }, n.fromObject = function(t) {
        if (t instanceof e.onnx.TypeProto.Tensor) return t;
        var r = new e.onnx.TypeProto.Tensor();
        if (t.elemType != null && (r.elemType = t.elemType | 0), t.shape != null) {
          if (typeof t.shape != "object") throw TypeError(".onnx.TypeProto.Tensor.shape: object expected");
          r.shape = e.onnx.TensorShapeProto.fromObject(t.shape);
        }
        return r;
      }, n.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.elemType = 0, a.shape = null), t.elemType != null && t.hasOwnProperty("elemType") && (a.elemType = t.elemType), t.shape != null && t.hasOwnProperty("shape") && (a.shape = e.onnx.TensorShapeProto.toObject(t.shape, r)), a;
      }, n.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, n.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TypeProto.Tensor";
      }, n;
    }(), i.Sequence = function() {
      function n(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      return n.prototype.elemType = null, n.create = function(t) {
        return new n(t);
      }, n.encode = function(t, r) {
        return r || (r = c.create()), t.elemType != null && Object.hasOwnProperty.call(t, "elemType") && e.onnx.TypeProto.encode(t.elemType, r.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim(), r;
      }, n.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, n.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TypeProto.Sequence(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.elemType = e.onnx.TypeProto.decode(t, t.uint32());
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, n.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, n.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        if (t.elemType != null && t.hasOwnProperty("elemType")) {
          var r = e.onnx.TypeProto.verify(t.elemType);
          if (r) return "elemType." + r;
        }
        return null;
      }, n.fromObject = function(t) {
        if (t instanceof e.onnx.TypeProto.Sequence) return t;
        var r = new e.onnx.TypeProto.Sequence();
        if (t.elemType != null) {
          if (typeof t.elemType != "object")
            throw TypeError(".onnx.TypeProto.Sequence.elemType: object expected");
          r.elemType = e.onnx.TypeProto.fromObject(t.elemType);
        }
        return r;
      }, n.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.elemType = null), t.elemType != null && t.hasOwnProperty("elemType") && (a.elemType = e.onnx.TypeProto.toObject(t.elemType, r)), a;
      }, n.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, n.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TypeProto.Sequence";
      }, n;
    }(), i.Map = function() {
      function n(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      return n.prototype.keyType = 0, n.prototype.valueType = null, n.create = function(t) {
        return new n(t);
      }, n.encode = function(t, r) {
        return r || (r = c.create()), t.keyType != null && Object.hasOwnProperty.call(t, "keyType") && r.uint32(
          /* id 1, wireType 0 =*/
          8
        ).int32(t.keyType), t.valueType != null && Object.hasOwnProperty.call(t, "valueType") && e.onnx.TypeProto.encode(t.valueType, r.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim(), r;
      }, n.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, n.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TypeProto.Map(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.keyType = t.int32();
              break;
            }
            case 2: {
              p.valueType = e.onnx.TypeProto.decode(t, t.uint32());
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, n.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, n.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        if (t.keyType != null && t.hasOwnProperty("keyType") && !l.isInteger(t.keyType))
          return "keyType: integer expected";
        if (t.valueType != null && t.hasOwnProperty("valueType")) {
          var r = e.onnx.TypeProto.verify(t.valueType);
          if (r) return "valueType." + r;
        }
        return null;
      }, n.fromObject = function(t) {
        if (t instanceof e.onnx.TypeProto.Map) return t;
        var r = new e.onnx.TypeProto.Map();
        if (t.keyType != null && (r.keyType = t.keyType | 0), t.valueType != null) {
          if (typeof t.valueType != "object") throw TypeError(".onnx.TypeProto.Map.valueType: object expected");
          r.valueType = e.onnx.TypeProto.fromObject(t.valueType);
        }
        return r;
      }, n.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.keyType = 0, a.valueType = null), t.keyType != null && t.hasOwnProperty("keyType") && (a.keyType = t.keyType), t.valueType != null && t.hasOwnProperty("valueType") && (a.valueType = e.onnx.TypeProto.toObject(t.valueType, r)), a;
      }, n.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, n.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TypeProto.Map";
      }, n;
    }(), i.Optional = function() {
      function n(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      return n.prototype.elemType = null, n.create = function(t) {
        return new n(t);
      }, n.encode = function(t, r) {
        return r || (r = c.create()), t.elemType != null && Object.hasOwnProperty.call(t, "elemType") && e.onnx.TypeProto.encode(t.elemType, r.uint32(
          /* id 1, wireType 2 =*/
          10
        ).fork()).ldelim(), r;
      }, n.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, n.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TypeProto.Optional(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.elemType = e.onnx.TypeProto.decode(t, t.uint32());
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, n.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, n.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        if (t.elemType != null && t.hasOwnProperty("elemType")) {
          var r = e.onnx.TypeProto.verify(t.elemType);
          if (r) return "elemType." + r;
        }
        return null;
      }, n.fromObject = function(t) {
        if (t instanceof e.onnx.TypeProto.Optional) return t;
        var r = new e.onnx.TypeProto.Optional();
        if (t.elemType != null) {
          if (typeof t.elemType != "object")
            throw TypeError(".onnx.TypeProto.Optional.elemType: object expected");
          r.elemType = e.onnx.TypeProto.fromObject(t.elemType);
        }
        return r;
      }, n.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.elemType = null), t.elemType != null && t.hasOwnProperty("elemType") && (a.elemType = e.onnx.TypeProto.toObject(t.elemType, r)), a;
      }, n.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, n.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TypeProto.Optional";
      }, n;
    }(), i.SparseTensor = function() {
      function n(o) {
        if (o)
          for (var t = Object.keys(o), r = 0; r < t.length; ++r)
            o[t[r]] != null && (this[t[r]] = o[t[r]]);
      }
      return n.prototype.elemType = 0, n.prototype.shape = null, n.create = function(t) {
        return new n(t);
      }, n.encode = function(t, r) {
        return r || (r = c.create()), t.elemType != null && Object.hasOwnProperty.call(t, "elemType") && r.uint32(
          /* id 1, wireType 0 =*/
          8
        ).int32(t.elemType), t.shape != null && Object.hasOwnProperty.call(t, "shape") && e.onnx.TensorShapeProto.encode(t.shape, r.uint32(
          /* id 2, wireType 2 =*/
          18
        ).fork()).ldelim(), r;
      }, n.encodeDelimited = function(t, r) {
        return this.encode(t, r).ldelim();
      }, n.decode = function(t, r) {
        t instanceof f || (t = f.create(t));
        for (var a = r === void 0 ? t.len : t.pos + r, p = new e.onnx.TypeProto.SparseTensor(); t.pos < a; ) {
          var h = t.uint32();
          switch (h >>> 3) {
            case 1: {
              p.elemType = t.int32();
              break;
            }
            case 2: {
              p.shape = e.onnx.TensorShapeProto.decode(t, t.uint32());
              break;
            }
            default:
              t.skipType(h & 7);
              break;
          }
        }
        return p;
      }, n.decodeDelimited = function(t) {
        return t instanceof f || (t = new f(t)), this.decode(t, t.uint32());
      }, n.verify = function(t) {
        if (typeof t != "object" || t === null) return "object expected";
        if (t.elemType != null && t.hasOwnProperty("elemType") && !l.isInteger(t.elemType))
          return "elemType: integer expected";
        if (t.shape != null && t.hasOwnProperty("shape")) {
          var r = e.onnx.TensorShapeProto.verify(t.shape);
          if (r) return "shape." + r;
        }
        return null;
      }, n.fromObject = function(t) {
        if (t instanceof e.onnx.TypeProto.SparseTensor) return t;
        var r = new e.onnx.TypeProto.SparseTensor();
        if (t.elemType != null && (r.elemType = t.elemType | 0), t.shape != null) {
          if (typeof t.shape != "object") throw TypeError(".onnx.TypeProto.SparseTensor.shape: object expected");
          r.shape = e.onnx.TensorShapeProto.fromObject(t.shape);
        }
        return r;
      }, n.toObject = function(t, r) {
        r || (r = {});
        var a = {};
        return r.defaults && (a.elemType = 0, a.shape = null), t.elemType != null && t.hasOwnProperty("elemType") && (a.elemType = t.elemType), t.shape != null && t.hasOwnProperty("shape") && (a.shape = e.onnx.TensorShapeProto.toObject(t.shape, r)), a;
      }, n.prototype.toJSON = function() {
        return this.constructor.toObject(this, y.util.toJSONOptions);
      }, n.getTypeUrl = function(t) {
        return t === void 0 && (t = "type.googleapis.com"), t + "/onnx.TypeProto.SparseTensor";
      }, n;
    }(), i;
  }(), d.OperatorSetIdProto = function() {
    function i(u) {
      if (u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.domain = "", i.prototype.version = l.Long ? l.Long.fromBits(0, 0, !1) : 0, i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      return o || (o = c.create()), n.domain != null && Object.hasOwnProperty.call(n, "domain") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.domain), n.version != null && Object.hasOwnProperty.call(n, "version") && o.uint32(
        /* id 2, wireType 0 =*/
        16
      ).int64(n.version), o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.OperatorSetIdProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.domain = n.string();
            break;
          }
          case 2: {
            r.version = n.int64();
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      return typeof n != "object" || n === null ? "object expected" : n.domain != null && n.hasOwnProperty("domain") && !l.isString(n.domain) ? "domain: string expected" : n.version != null && n.hasOwnProperty("version") && !l.isInteger(n.version) && !(n.version && l.isInteger(n.version.low) && l.isInteger(n.version.high)) ? "version: integer|Long expected" : null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.OperatorSetIdProto) return n;
      var o = new e.onnx.OperatorSetIdProto();
      return n.domain != null && (o.domain = String(n.domain)), n.version != null && (l.Long ? (o.version = l.Long.fromValue(n.version)).unsigned = !1 : typeof n.version == "string" ? o.version = parseInt(n.version, 10) : typeof n.version == "number" ? o.version = n.version : typeof n.version == "object" && (o.version = new l.LongBits(n.version.low >>> 0, n.version.high >>> 0).toNumber())), o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if (o.defaults)
        if (t.domain = "", l.Long) {
          var r = new l.Long(0, 0, !1);
          t.version = o.longs === String ? r.toString() : o.longs === Number ? r.toNumber() : r;
        } else t.version = o.longs === String ? "0" : 0;
      return n.domain != null && n.hasOwnProperty("domain") && (t.domain = n.domain), n.version != null && n.hasOwnProperty("version") && (typeof n.version == "number" ? t.version = o.longs === String ? String(n.version) : n.version : t.version = o.longs === String ? l.Long.prototype.toString.call(n.version) : o.longs === Number ? new l.LongBits(n.version.low >>> 0, n.version.high >>> 0).toNumber() : n.version), t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.OperatorSetIdProto";
    }, i;
  }(), d.OperatorStatus = function() {
    var i = {}, u = Object.create(i);
    return u[i[0] = "EXPERIMENTAL"] = 0, u[i[1] = "STABLE"] = 1, u;
  }(), d.FunctionProto = function() {
    function i(u) {
      if (this.input = [], this.output = [], this.attribute = [], this.attributeProto = [], this.node = [], this.opsetImport = [], u)
        for (var n = Object.keys(u), o = 0; o < n.length; ++o)
          u[n[o]] != null && (this[n[o]] = u[n[o]]);
    }
    return i.prototype.name = "", i.prototype.input = l.emptyArray, i.prototype.output = l.emptyArray, i.prototype.attribute = l.emptyArray, i.prototype.attributeProto = l.emptyArray, i.prototype.node = l.emptyArray, i.prototype.docString = "", i.prototype.opsetImport = l.emptyArray, i.prototype.domain = "", i.create = function(n) {
      return new i(n);
    }, i.encode = function(n, o) {
      if (o || (o = c.create()), n.name != null && Object.hasOwnProperty.call(n, "name") && o.uint32(
        /* id 1, wireType 2 =*/
        10
      ).string(n.name), n.input != null && n.input.length)
        for (var t = 0; t < n.input.length; ++t)
          o.uint32(
            /* id 4, wireType 2 =*/
            34
          ).string(n.input[t]);
      if (n.output != null && n.output.length)
        for (var t = 0; t < n.output.length; ++t)
          o.uint32(
            /* id 5, wireType 2 =*/
            42
          ).string(n.output[t]);
      if (n.attribute != null && n.attribute.length)
        for (var t = 0; t < n.attribute.length; ++t)
          o.uint32(
            /* id 6, wireType 2 =*/
            50
          ).string(n.attribute[t]);
      if (n.node != null && n.node.length)
        for (var t = 0; t < n.node.length; ++t)
          e.onnx.NodeProto.encode(n.node[t], o.uint32(
            /* id 7, wireType 2 =*/
            58
          ).fork()).ldelim();
      if (n.docString != null && Object.hasOwnProperty.call(n, "docString") && o.uint32(
        /* id 8, wireType 2 =*/
        66
      ).string(n.docString), n.opsetImport != null && n.opsetImport.length)
        for (var t = 0; t < n.opsetImport.length; ++t)
          e.onnx.OperatorSetIdProto.encode(
            n.opsetImport[t],
            o.uint32(
              /* id 9, wireType 2 =*/
              74
            ).fork()
          ).ldelim();
      if (n.domain != null && Object.hasOwnProperty.call(n, "domain") && o.uint32(
        /* id 10, wireType 2 =*/
        82
      ).string(n.domain), n.attributeProto != null && n.attributeProto.length)
        for (var t = 0; t < n.attributeProto.length; ++t)
          e.onnx.AttributeProto.encode(
            n.attributeProto[t],
            o.uint32(
              /* id 11, wireType 2 =*/
              90
            ).fork()
          ).ldelim();
      return o;
    }, i.encodeDelimited = function(n, o) {
      return this.encode(n, o).ldelim();
    }, i.decode = function(n, o) {
      n instanceof f || (n = f.create(n));
      for (var t = o === void 0 ? n.len : n.pos + o, r = new e.onnx.FunctionProto(); n.pos < t; ) {
        var a = n.uint32();
        switch (a >>> 3) {
          case 1: {
            r.name = n.string();
            break;
          }
          case 4: {
            r.input && r.input.length || (r.input = []), r.input.push(n.string());
            break;
          }
          case 5: {
            r.output && r.output.length || (r.output = []), r.output.push(n.string());
            break;
          }
          case 6: {
            r.attribute && r.attribute.length || (r.attribute = []), r.attribute.push(n.string());
            break;
          }
          case 11: {
            r.attributeProto && r.attributeProto.length || (r.attributeProto = []), r.attributeProto.push(e.onnx.AttributeProto.decode(n, n.uint32()));
            break;
          }
          case 7: {
            r.node && r.node.length || (r.node = []), r.node.push(e.onnx.NodeProto.decode(n, n.uint32()));
            break;
          }
          case 8: {
            r.docString = n.string();
            break;
          }
          case 9: {
            r.opsetImport && r.opsetImport.length || (r.opsetImport = []), r.opsetImport.push(e.onnx.OperatorSetIdProto.decode(n, n.uint32()));
            break;
          }
          case 10: {
            r.domain = n.string();
            break;
          }
          default:
            n.skipType(a & 7);
            break;
        }
      }
      return r;
    }, i.decodeDelimited = function(n) {
      return n instanceof f || (n = new f(n)), this.decode(n, n.uint32());
    }, i.verify = function(n) {
      if (typeof n != "object" || n === null) return "object expected";
      if (n.name != null && n.hasOwnProperty("name") && !l.isString(n.name))
        return "name: string expected";
      if (n.input != null && n.hasOwnProperty("input")) {
        if (!Array.isArray(n.input)) return "input: array expected";
        for (var o = 0; o < n.input.length; ++o)
          if (!l.isString(n.input[o])) return "input: string[] expected";
      }
      if (n.output != null && n.hasOwnProperty("output")) {
        if (!Array.isArray(n.output)) return "output: array expected";
        for (var o = 0; o < n.output.length; ++o)
          if (!l.isString(n.output[o])) return "output: string[] expected";
      }
      if (n.attribute != null && n.hasOwnProperty("attribute")) {
        if (!Array.isArray(n.attribute)) return "attribute: array expected";
        for (var o = 0; o < n.attribute.length; ++o)
          if (!l.isString(n.attribute[o])) return "attribute: string[] expected";
      }
      if (n.attributeProto != null && n.hasOwnProperty("attributeProto")) {
        if (!Array.isArray(n.attributeProto)) return "attributeProto: array expected";
        for (var o = 0; o < n.attributeProto.length; ++o) {
          var t = e.onnx.AttributeProto.verify(n.attributeProto[o]);
          if (t) return "attributeProto." + t;
        }
      }
      if (n.node != null && n.hasOwnProperty("node")) {
        if (!Array.isArray(n.node)) return "node: array expected";
        for (var o = 0; o < n.node.length; ++o) {
          var t = e.onnx.NodeProto.verify(n.node[o]);
          if (t) return "node." + t;
        }
      }
      if (n.docString != null && n.hasOwnProperty("docString") && !l.isString(n.docString))
        return "docString: string expected";
      if (n.opsetImport != null && n.hasOwnProperty("opsetImport")) {
        if (!Array.isArray(n.opsetImport)) return "opsetImport: array expected";
        for (var o = 0; o < n.opsetImport.length; ++o) {
          var t = e.onnx.OperatorSetIdProto.verify(n.opsetImport[o]);
          if (t) return "opsetImport." + t;
        }
      }
      return n.domain != null && n.hasOwnProperty("domain") && !l.isString(n.domain) ? "domain: string expected" : null;
    }, i.fromObject = function(n) {
      if (n instanceof e.onnx.FunctionProto) return n;
      var o = new e.onnx.FunctionProto();
      if (n.name != null && (o.name = String(n.name)), n.input) {
        if (!Array.isArray(n.input)) throw TypeError(".onnx.FunctionProto.input: array expected");
        o.input = [];
        for (var t = 0; t < n.input.length; ++t) o.input[t] = String(n.input[t]);
      }
      if (n.output) {
        if (!Array.isArray(n.output)) throw TypeError(".onnx.FunctionProto.output: array expected");
        o.output = [];
        for (var t = 0; t < n.output.length; ++t) o.output[t] = String(n.output[t]);
      }
      if (n.attribute) {
        if (!Array.isArray(n.attribute)) throw TypeError(".onnx.FunctionProto.attribute: array expected");
        o.attribute = [];
        for (var t = 0; t < n.attribute.length; ++t) o.attribute[t] = String(n.attribute[t]);
      }
      if (n.attributeProto) {
        if (!Array.isArray(n.attributeProto))
          throw TypeError(".onnx.FunctionProto.attributeProto: array expected");
        o.attributeProto = [];
        for (var t = 0; t < n.attributeProto.length; ++t) {
          if (typeof n.attributeProto[t] != "object")
            throw TypeError(".onnx.FunctionProto.attributeProto: object expected");
          o.attributeProto[t] = e.onnx.AttributeProto.fromObject(n.attributeProto[t]);
        }
      }
      if (n.node) {
        if (!Array.isArray(n.node)) throw TypeError(".onnx.FunctionProto.node: array expected");
        o.node = [];
        for (var t = 0; t < n.node.length; ++t) {
          if (typeof n.node[t] != "object") throw TypeError(".onnx.FunctionProto.node: object expected");
          o.node[t] = e.onnx.NodeProto.fromObject(n.node[t]);
        }
      }
      if (n.docString != null && (o.docString = String(n.docString)), n.opsetImport) {
        if (!Array.isArray(n.opsetImport)) throw TypeError(".onnx.FunctionProto.opsetImport: array expected");
        o.opsetImport = [];
        for (var t = 0; t < n.opsetImport.length; ++t) {
          if (typeof n.opsetImport[t] != "object")
            throw TypeError(".onnx.FunctionProto.opsetImport: object expected");
          o.opsetImport[t] = e.onnx.OperatorSetIdProto.fromObject(n.opsetImport[t]);
        }
      }
      return n.domain != null && (o.domain = String(n.domain)), o;
    }, i.toObject = function(n, o) {
      o || (o = {});
      var t = {};
      if ((o.arrays || o.defaults) && (t.input = [], t.output = [], t.attribute = [], t.node = [], t.opsetImport = [], t.attributeProto = []), o.defaults && (t.name = "", t.docString = "", t.domain = ""), n.name != null && n.hasOwnProperty("name") && (t.name = n.name), n.input && n.input.length) {
        t.input = [];
        for (var r = 0; r < n.input.length; ++r) t.input[r] = n.input[r];
      }
      if (n.output && n.output.length) {
        t.output = [];
        for (var r = 0; r < n.output.length; ++r) t.output[r] = n.output[r];
      }
      if (n.attribute && n.attribute.length) {
        t.attribute = [];
        for (var r = 0; r < n.attribute.length; ++r) t.attribute[r] = n.attribute[r];
      }
      if (n.node && n.node.length) {
        t.node = [];
        for (var r = 0; r < n.node.length; ++r)
          t.node[r] = e.onnx.NodeProto.toObject(n.node[r], o);
      }
      if (n.docString != null && n.hasOwnProperty("docString") && (t.docString = n.docString), n.opsetImport && n.opsetImport.length) {
        t.opsetImport = [];
        for (var r = 0; r < n.opsetImport.length; ++r)
          t.opsetImport[r] = e.onnx.OperatorSetIdProto.toObject(n.opsetImport[r], o);
      }
      if (n.domain != null && n.hasOwnProperty("domain") && (t.domain = n.domain), n.attributeProto && n.attributeProto.length) {
        t.attributeProto = [];
        for (var r = 0; r < n.attributeProto.length; ++r)
          t.attributeProto[r] = e.onnx.AttributeProto.toObject(n.attributeProto[r], o);
      }
      return t;
    }, i.prototype.toJSON = function() {
      return this.constructor.toObject(this, y.util.toJSONOptions);
    }, i.getTypeUrl = function(n) {
      return n === void 0 && (n = "type.googleapis.com"), n + "/onnx.FunctionProto";
    }, i;
  }(), d;
}();
const P = e.onnx;
export {
  P as onnx
};
//# sourceMappingURL=onnx.mjs.map