(function (_, kotlin_dev_whyoleg_cryptography_cryptography_core, kotlin_kotlin) {
  'use strict';
  //region block: imports
  var CryptographyProvider = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.c;
  var Companion_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.j;
  var equals = kotlin_kotlin.$_$.ic;
  var Companion_getInstance_0 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.l;
  var Companion_getInstance_1 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.t;
  var Companion_getInstance_2 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.g;
  var Companion_getInstance_3 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.i;
  var Companion_getInstance_4 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.h;
  var Companion_getInstance_5 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.n;
  var Companion_getInstance_6 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.o;
  var Companion_getInstance_7 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.m;
  var Companion_getInstance_8 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.f;
  var Companion_getInstance_9 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.e;
  var Companion_getInstance_10 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.d;
  var Companion_getInstance_11 = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.k;
  var SHA512_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.s;
  var SHA384_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.r;
  var SHA256_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.q;
  var SHA1_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.p;
  var THROW_CCE = kotlin_kotlin.$_$.vi;
  var CryptographyAlgorithm = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.b;
  var isInterface = kotlin_kotlin.$_$.ed;
  var protoOf = kotlin_kotlin.$_$.od;
  var initMetadataForObject = kotlin_kotlin.$_$.vc;
  var VOID = kotlin_kotlin.$_$.c;
  var lazy = kotlin_kotlin.$_$.tj;
  var initMetadataForClass = kotlin_kotlin.$_$.pc;
  var initMetadataForCompanion = kotlin_kotlin.$_$.qc;
  var Hasher = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.a;
  var toString = kotlin_kotlin.$_$.rd;
  var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.u2;
  var CoroutineImpl = kotlin_kotlin.$_$.xa;
  var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.fa;
  var initMetadataForCoroutine = kotlin_kotlin.$_$.rc;
  var Unit_instance = kotlin_kotlin.$_$.b1;
  var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.y2;
  var CryptographySystem_getInstance = kotlin_dev_whyoleg_cryptography_cryptography_core.$_$.v;
  var defineProp = kotlin_kotlin.$_$.hc;
  var intercepted = kotlin_kotlin.$_$.ia;
  var SafeContinuation_init_$Create$ = kotlin_kotlin.$_$.c2;
  var Companion_instance = kotlin_kotlin.$_$.w;
  var _Result___init__impl__xyqfz8 = kotlin_kotlin.$_$.y3;
  var createFailure = kotlin_kotlin.$_$.mj;
  //endregion
  //region block: pre-declaration
  initMetadataForObject(WebCryptoCryptographyProvider, 'WebCryptoCryptographyProvider', VOID, CryptographyProvider);
  initMetadataForClass(WebCryptoEncodableKey, 'WebCryptoEncodableKey', VOID, VOID, VOID, [1]);
  initMetadataForClass(AesKey, 'AesKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForClass(WebCryptoAes, 'WebCryptoAes', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForClass(WebCryptoKeyProcessor, 'WebCryptoKeyProcessor');
  initMetadataForObject(AesKeyProcessor, 'AesKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForClass(AesCbcKey, 'AesCbcKey', VOID, AesKey, VOID, [1]);
  initMetadataForObject(WebCryptoAesCbc, 'WebCryptoAesCbc', VOID, WebCryptoAes, [CryptographyAlgorithm]);
  initMetadataForClass(AesCtrKey, 'AesCtrKey', VOID, AesKey, VOID, [1]);
  initMetadataForObject(WebCryptoAesCtr, 'WebCryptoAesCtr', VOID, WebCryptoAes, [CryptographyAlgorithm]);
  initMetadataForClass(AesGcmKey, 'AesGcmKey', VOID, AesKey, VOID, [1]);
  initMetadataForObject(WebCryptoAesGcm, 'WebCryptoAesGcm', VOID, WebCryptoAes, [CryptographyAlgorithm]);
  initMetadataForCompanion(Companion);
  initMetadataForClass(WebCryptoDigest, 'WebCryptoDigest', VOID, VOID, [CryptographyAlgorithm, Hasher], [1]);
  initMetadataForClass(EcPublicKey, 'EcPublicKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForClass(EcPrivateKey, 'EcPrivateKey', VOID, WebCryptoEncodableKey, VOID, [0, 1]);
  initMetadataForClass(WebCryptoEc, 'WebCryptoEc', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForObject(EcPublicKeyProcessor, 'EcPublicKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(EcPrivateKeyProcessor, 'EcPrivateKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForClass(EcdhKeyPair, 'EcdhKeyPair');
  initMetadataForClass(EcdhPublicKey, 'EcdhPublicKey', VOID, EcPublicKey, VOID, [1]);
  initMetadataForClass(EcdhPrivateKey, 'EcdhPrivateKey', VOID, EcPrivateKey, VOID, [1, 0]);
  initMetadataForObject(WebCryptoEcdh, 'WebCryptoEcdh', VOID, WebCryptoEc, [CryptographyAlgorithm]);
  initMetadataForClass(EcdsaKeyPair, 'EcdsaKeyPair');
  initMetadataForClass(EcdsaPublicKey, 'EcdsaPublicKey', VOID, EcPublicKey, VOID, [1]);
  initMetadataForClass(EcdsaPrivateKey, 'EcdsaPrivateKey', VOID, EcPrivateKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoEcdsa, 'WebCryptoEcdsa', VOID, WebCryptoEc, [CryptographyAlgorithm]);
  initMetadataForClass(EdDsaKeyPair, 'EdDsaKeyPair');
  initMetadataForClass(EdDsaPublicKey, 'EdDsaPublicKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForClass(EdDsaPrivateKey, 'EdDsaPrivateKey', VOID, WebCryptoEncodableKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoEdDsa, 'WebCryptoEdDsa', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForObject(EdPublicKeyProcessor, 'EdPublicKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(EdPrivateKeyProcessor, 'EdPrivateKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(WebCryptoHkdf, 'WebCryptoHkdf', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForClass(HmacKey, 'HmacKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForObject(WebCryptoHmac, 'WebCryptoHmac', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForObject(HmacKeyProcessor, 'HmacKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(WebCryptoPbkdf2, 'WebCryptoPbkdf2', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForClass(RsaPublicKey, 'RsaPublicKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForClass(RsaPrivateKey, 'RsaPrivateKey', VOID, WebCryptoEncodableKey, VOID, [0, 1]);
  initMetadataForClass(WebCryptoRsa, 'WebCryptoRsa', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForObject(RsaPublicKeyProcessor, 'RsaPublicKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(RsaPrivateKeyProcessor, 'RsaPrivateKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForClass(RsaOaepKeyPair, 'RsaOaepKeyPair');
  initMetadataForClass(RsaOaepPublicKey, 'RsaOaepPublicKey', VOID, RsaPublicKey, VOID, [1]);
  initMetadataForClass(RsaOaepPrivateKey, 'RsaOaepPrivateKey', VOID, RsaPrivateKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoRsaOaep, 'WebCryptoRsaOaep', VOID, WebCryptoRsa, [CryptographyAlgorithm]);
  initMetadataForClass(RsaPkcs1KeyPair, 'RsaPkcs1KeyPair');
  initMetadataForClass(RsaPkcs1PublicKey, 'RsaPkcs1PublicKey', VOID, RsaPublicKey, VOID, [1]);
  initMetadataForClass(RsaPkcs1PrivateKey, 'RsaPkcs1PrivateKey', VOID, RsaPrivateKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoRsaPkcs1, 'WebCryptoRsaPkcs1', VOID, WebCryptoRsa, [CryptographyAlgorithm]);
  initMetadataForClass(RsaPssKeyPair, 'RsaPssKeyPair');
  initMetadataForClass(RsaPssPublicKey, 'RsaPssPublicKey', VOID, RsaPublicKey, VOID, [1]);
  initMetadataForClass(RsaPssPrivateKey, 'RsaPssPrivateKey', VOID, RsaPrivateKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoRsaPss, 'WebCryptoRsaPss', VOID, WebCryptoRsa, [CryptographyAlgorithm]);
  initMetadataForClass(XdhKeyPair, 'XdhKeyPair');
  initMetadataForClass(XdhPublicKey, 'XdhPublicKey', VOID, WebCryptoEncodableKey, VOID, [1]);
  initMetadataForClass(XdhPrivateKey, 'XdhPrivateKey', VOID, WebCryptoEncodableKey, VOID, [0, 1]);
  initMetadataForObject(WebCryptoXdh, 'WebCryptoXdh', VOID, VOID, [CryptographyAlgorithm]);
  initMetadataForObject(XdhPublicKeyProcessor, 'XdhPublicKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForObject(XdhPrivateKeyProcessor, 'XdhPrivateKeyProcessor', VOID, WebCryptoKeyProcessor);
  initMetadataForCoroutine($digestCOROUTINE$, CoroutineImpl);
  initMetadataForObject(WebCrypto, 'WebCrypto', VOID, VOID, VOID, [2, 3, 4, 5]);
  initMetadataForClass(WebCryptoKeyWrapper, 'WebCryptoKeyWrapper');
  //endregion
  function get_defaultProvider() {
    _init_properties_WebCryptoCryptographyProvider_kt__i22tls();
    return defaultProvider;
  }
  var defaultProvider;
  var WebCrypto$delegate;
  function WebCryptoCryptographyProvider() {
    WebCryptoCryptographyProvider_instance = this;
    CryptographyProvider.call(this);
  }
  protoOf(WebCryptoCryptographyProvider).d6e = function (identifier) {
    var tmp = equals(identifier, SHA1_getInstance()) ? Companion_getInstance_12().w9t_1 : equals(identifier, SHA256_getInstance()) ? Companion_getInstance_12().x9t_1 : equals(identifier, SHA384_getInstance()) ? Companion_getInstance_12().y9t_1 : equals(identifier, SHA512_getInstance()) ? Companion_getInstance_12().z9t_1 : equals(identifier, Companion_getInstance_11()) ? WebCryptoHmac_getInstance() : equals(identifier, Companion_getInstance_10()) ? WebCryptoAesCbc_getInstance() : equals(identifier, Companion_getInstance_9()) ? WebCryptoAesCtr_getInstance() : equals(identifier, Companion_getInstance_8()) ? WebCryptoAesGcm_getInstance() : equals(identifier, Companion_getInstance_7()) ? WebCryptoRsaOaep_getInstance() : equals(identifier, Companion_getInstance_6()) ? WebCryptoRsaPss_getInstance() : equals(identifier, Companion_getInstance_5()) ? WebCryptoRsaPkcs1_getInstance() : equals(identifier, Companion_getInstance_4()) ? WebCryptoEcdsa_getInstance() : equals(identifier, Companion_getInstance_3()) ? WebCryptoEdDsa_getInstance() : equals(identifier, Companion_getInstance_2()) ? WebCryptoEcdh_getInstance() : equals(identifier, Companion_getInstance_1()) ? WebCryptoXdh_getInstance() : equals(identifier, Companion_getInstance_0()) ? WebCryptoPbkdf2_instance : equals(identifier, Companion_getInstance()) ? WebCryptoHkdf_instance : null;
    return (tmp == null ? true : isInterface(tmp, CryptographyAlgorithm)) ? tmp : THROW_CCE();
  };
  var WebCryptoCryptographyProvider_instance;
  function WebCryptoCryptographyProvider_getInstance() {
    if (WebCryptoCryptographyProvider_instance == null)
      new WebCryptoCryptographyProvider();
    return WebCryptoCryptographyProvider_instance;
  }
  function defaultProvider$lambda() {
    _init_properties_WebCryptoCryptographyProvider_kt__i22tls();
    return WebCryptoCryptographyProvider_getInstance();
  }
  var properties_initialized_WebCryptoCryptographyProvider_kt_n89q9u;
  function _init_properties_WebCryptoCryptographyProvider_kt__i22tls() {
    if (!properties_initialized_WebCryptoCryptographyProvider_kt_n89q9u) {
      properties_initialized_WebCryptoCryptographyProvider_kt_n89q9u = true;
      defaultProvider = lazy(defaultProvider$lambda);
      WebCrypto$delegate = get_defaultProvider();
    }
  }
  function AesKey(key) {
    WebCryptoEncodableKey.call(this, key, AesKeyProcessor_getInstance());
    this.c9u_1 = key;
  }
  function WebCryptoAes(algorithmName, keyWrapper) {
    this.d9u_1 = algorithmName;
    this.e9u_1 = keyWrapper;
  }
  function AesKeyProcessor() {
    AesKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var AesKeyProcessor_instance;
  function AesKeyProcessor_getInstance() {
    if (AesKeyProcessor_instance == null)
      new AesKeyProcessor();
    return AesKeyProcessor_instance;
  }
  function AesCbcKey(key) {
    AesKey.call(this, key);
  }
  function WebCryptoAesCbc$AesCbcKey$_init_$ref_lop2vf() {
    var l = function (p0) {
      return new AesCbcKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoAesCbc() {
    WebCryptoAesCbc_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['encrypt', 'decrypt'];
    WebCryptoAes.call(this, 'AES-CBC', new WebCryptoKeyWrapper(tmp, WebCryptoAesCbc$AesCbcKey$_init_$ref_lop2vf()));
  }
  var WebCryptoAesCbc_instance;
  function WebCryptoAesCbc_getInstance() {
    if (WebCryptoAesCbc_instance == null)
      new WebCryptoAesCbc();
    return WebCryptoAesCbc_instance;
  }
  function AesCtrKey(key) {
    AesKey.call(this, key);
  }
  function WebCryptoAesCtr$AesCtrKey$_init_$ref_5qzjvv() {
    var l = function (p0) {
      return new AesCtrKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoAesCtr() {
    WebCryptoAesCtr_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['encrypt', 'decrypt'];
    WebCryptoAes.call(this, 'AES-CTR', new WebCryptoKeyWrapper(tmp, WebCryptoAesCtr$AesCtrKey$_init_$ref_5qzjvv()));
  }
  var WebCryptoAesCtr_instance;
  function WebCryptoAesCtr_getInstance() {
    if (WebCryptoAesCtr_instance == null)
      new WebCryptoAesCtr();
    return WebCryptoAesCtr_instance;
  }
  function AesGcmKey(key) {
    AesKey.call(this, key);
  }
  function WebCryptoAesGcm$AesGcmKey$_init_$ref_c6pr3f() {
    var l = function (p0) {
      return new AesGcmKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoAesGcm() {
    WebCryptoAesGcm_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['encrypt', 'decrypt'];
    WebCryptoAes.call(this, 'AES-GCM', new WebCryptoKeyWrapper(tmp, WebCryptoAesGcm$AesGcmKey$_init_$ref_c6pr3f()));
  }
  var WebCryptoAesGcm_instance;
  function WebCryptoAesGcm_getInstance() {
    if (WebCryptoAesGcm_instance == null)
      new WebCryptoAesGcm();
    return WebCryptoAesGcm_instance;
  }
  function Companion() {
    Companion_instance_0 = this;
    this.w9t_1 = new WebCryptoDigest('SHA-1', SHA1_getInstance());
    this.x9t_1 = new WebCryptoDigest('SHA-256', SHA256_getInstance());
    this.y9t_1 = new WebCryptoDigest('SHA-384', SHA384_getInstance());
    this.z9t_1 = new WebCryptoDigest('SHA-512', SHA512_getInstance());
  }
  var Companion_instance_0;
  function Companion_getInstance_12() {
    if (Companion_instance_0 == null)
      new Companion();
    return Companion_instance_0;
  }
  function WebCryptoDigest(algorithm, id) {
    Companion_getInstance_12();
    this.f9u_1 = algorithm;
    this.g9u_1 = id;
  }
  protoOf(WebCryptoDigest).a9f = function () {
    return this;
  };
  protoOf(WebCryptoDigest).p6e = function (data, $completion) {
    return WebCrypto_getInstance().i9u(this.f9u_1, data, $completion);
  };
  protoOf(WebCryptoDigest).o6e = function () {
    nonBlocking();
  };
  protoOf(WebCryptoDigest).q6e = function (data) {
    nonBlocking();
  };
  function EcPublicKey(publicKey) {
    WebCryptoEncodableKey.call(this, publicKey, EcPublicKeyProcessor_getInstance());
    this.l9u_1 = publicKey;
  }
  function EcPrivateKey($outer, privateKey) {
    this.p9u_1 = $outer;
    WebCryptoEncodableKey.call(this, privateKey, EcPrivateKeyProcessor_getInstance());
    this.o9u_1 = privateKey;
  }
  function WebCryptoEc$keyPairWrapper$lambda($keyPairWrapper, this$0) {
    return function (it) {
      return $keyPairWrapper(this$0.t9u_1.r9u_1(it.publicKey), this$0.u9u_1.r9u_1(it.privateKey));
    };
  }
  function WebCryptoEc(algorithmName, publicKeyWrapper, privateKeyWrapper, keyPairWrapper) {
    this.s9u_1 = algorithmName;
    this.t9u_1 = publicKeyWrapper;
    this.u9u_1 = privateKeyWrapper;
    var tmp = this;
    var tmp0 = this.t9u_1.q9u_1;
    // Inline function 'kotlin.collections.plus' call
    var elements = this.u9u_1.q9u_1;
    // Inline function 'kotlin.js.asDynamic' call
    tmp.v9u_1 = tmp0.concat(elements);
    var tmp_0 = this;
    tmp_0.w9u_1 = WebCryptoEc$keyPairWrapper$lambda(keyPairWrapper, this);
  }
  function EcPublicKeyProcessor() {
    EcPublicKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var EcPublicKeyProcessor_instance;
  function EcPublicKeyProcessor_getInstance() {
    if (EcPublicKeyProcessor_instance == null)
      new EcPublicKeyProcessor();
    return EcPublicKeyProcessor_instance;
  }
  function EcPrivateKeyProcessor() {
    EcPrivateKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var EcPrivateKeyProcessor_instance;
  function EcPrivateKeyProcessor_getInstance() {
    if (EcPrivateKeyProcessor_instance == null)
      new EcPrivateKeyProcessor();
    return EcPrivateKeyProcessor_instance;
  }
  function EcdhKeyPair(publicKey, privateKey) {
    this.x9u_1 = publicKey;
    this.y9u_1 = privateKey;
  }
  function EcdhPublicKey(publicKey) {
    EcPublicKey.call(this, publicKey);
  }
  function EcdhPrivateKey(privateKey) {
    EcPrivateKey.call(this, WebCryptoEcdh_getInstance(), privateKey);
  }
  function WebCryptoEcdh$EcdhPublicKey$_init_$ref_x8kjxe() {
    var l = function (p0) {
      return new EcdhPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdh$EcdhPrivateKey$_init_$ref_1xgfie() {
    var l = function (p0) {
      return new EcdhPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdh$EcdhKeyPair$_init_$ref_fqllqz() {
    var l = function (p0, p1) {
      return new EcdhKeyPair(p0, p1);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdh() {
    WebCryptoEcdh_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = [];
    var tmp_0 = new WebCryptoKeyWrapper(tmp, WebCryptoEcdh$EcdhPublicKey$_init_$ref_x8kjxe());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = ['deriveBits'];
    var tmp_2 = new WebCryptoKeyWrapper(tmp_1, WebCryptoEcdh$EcdhPrivateKey$_init_$ref_1xgfie());
    WebCryptoEc.call(this, 'ECDH', tmp_0, tmp_2, WebCryptoEcdh$EcdhKeyPair$_init_$ref_fqllqz());
  }
  var WebCryptoEcdh_instance;
  function WebCryptoEcdh_getInstance() {
    if (WebCryptoEcdh_instance == null)
      new WebCryptoEcdh();
    return WebCryptoEcdh_instance;
  }
  function EcdsaKeyPair(publicKey, privateKey) {
    this.z9u_1 = publicKey;
    this.a9v_1 = privateKey;
  }
  function EcdsaPublicKey(publicKey) {
    EcPublicKey.call(this, publicKey);
  }
  function EcdsaPrivateKey(privateKey) {
    EcPrivateKey.call(this, WebCryptoEcdsa_getInstance(), privateKey);
  }
  function WebCryptoEcdsa$EcdsaPublicKey$_init_$ref_5egfgi() {
    var l = function (p0) {
      return new EcdsaPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdsa$EcdsaPrivateKey$_init_$ref_8mqrbu() {
    var l = function (p0) {
      return new EcdsaPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdsa$EcdsaKeyPair$_init_$ref_l5vyez() {
    var l = function (p0, p1) {
      return new EcdsaKeyPair(p0, p1);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEcdsa() {
    WebCryptoEcdsa_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['verify'];
    var tmp_0 = new WebCryptoKeyWrapper(tmp, WebCryptoEcdsa$EcdsaPublicKey$_init_$ref_5egfgi());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = ['sign'];
    var tmp_2 = new WebCryptoKeyWrapper(tmp_1, WebCryptoEcdsa$EcdsaPrivateKey$_init_$ref_8mqrbu());
    WebCryptoEc.call(this, 'ECDSA', tmp_0, tmp_2, WebCryptoEcdsa$EcdsaKeyPair$_init_$ref_l5vyez());
  }
  var WebCryptoEcdsa_instance;
  function WebCryptoEcdsa_getInstance() {
    if (WebCryptoEcdsa_instance == null)
      new WebCryptoEcdsa();
    return WebCryptoEcdsa_instance;
  }
  function EdDsaKeyPair(publicKey, privateKey) {
    this.b9v_1 = publicKey;
    this.c9v_1 = privateKey;
  }
  function EdDsaPublicKey(publicKey) {
    WebCryptoEncodableKey.call(this, publicKey, EdPublicKeyProcessor_getInstance());
    this.f9v_1 = publicKey;
  }
  function EdDsaPrivateKey(privateKey) {
    WebCryptoEncodableKey.call(this, privateKey, EdPrivateKeyProcessor_getInstance());
    this.i9v_1 = privateKey;
  }
  function WebCryptoEdDsa$EdDsaPublicKey$_init_$ref_xkwfek() {
    var l = function (p0) {
      return new EdDsaPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEdDsa$EdDsaPrivateKey$_init_$ref_9jweho() {
    var l = function (p0) {
      return new EdDsaPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoEdDsa$keyPairWrapper$lambda(it) {
    return new EdDsaKeyPair(new EdDsaPublicKey(it.publicKey), new EdDsaPrivateKey(it.privateKey));
  }
  function WebCryptoEdDsa() {
    WebCryptoEdDsa_instance = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_0 = ['verify'];
    tmp.j9v_1 = new WebCryptoKeyWrapper(tmp_0, WebCryptoEdDsa$EdDsaPublicKey$_init_$ref_xkwfek());
    var tmp_1 = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_2 = ['sign'];
    tmp_1.k9v_1 = new WebCryptoKeyWrapper(tmp_2, WebCryptoEdDsa$EdDsaPrivateKey$_init_$ref_9jweho());
    var tmp_3 = this;
    var tmp0 = this.j9v_1.q9u_1;
    // Inline function 'kotlin.collections.plus' call
    var elements = this.k9v_1.q9u_1;
    // Inline function 'kotlin.js.asDynamic' call
    tmp_3.l9v_1 = tmp0.concat(elements);
    var tmp_4 = this;
    tmp_4.m9v_1 = WebCryptoEdDsa$keyPairWrapper$lambda;
  }
  var WebCryptoEdDsa_instance;
  function WebCryptoEdDsa_getInstance() {
    if (WebCryptoEdDsa_instance == null)
      new WebCryptoEdDsa();
    return WebCryptoEdDsa_instance;
  }
  function EdPublicKeyProcessor() {
    EdPublicKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var EdPublicKeyProcessor_instance;
  function EdPublicKeyProcessor_getInstance() {
    if (EdPublicKeyProcessor_instance == null)
      new EdPublicKeyProcessor();
    return EdPublicKeyProcessor_instance;
  }
  function EdPrivateKeyProcessor() {
    EdPrivateKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var EdPrivateKeyProcessor_instance;
  function EdPrivateKeyProcessor_getInstance() {
    if (EdPrivateKeyProcessor_instance == null)
      new EdPrivateKeyProcessor();
    return EdPrivateKeyProcessor_instance;
  }
  function WebCryptoHkdf() {
  }
  var WebCryptoHkdf_instance;
  function WebCryptoHkdf_getInstance() {
    return WebCryptoHkdf_instance;
  }
  function HmacKey(key) {
    WebCryptoEncodableKey.call(this, key, HmacKeyProcessor_getInstance());
    this.p9v_1 = key;
  }
  function WebCryptoHmac$HmacKey$_init_$ref_enwl2t() {
    var l = function (p0) {
      return new HmacKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoHmac() {
    WebCryptoHmac_instance = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_0 = ['sign', 'verify'];
    tmp.q9v_1 = new WebCryptoKeyWrapper(tmp_0, WebCryptoHmac$HmacKey$_init_$ref_enwl2t());
  }
  var WebCryptoHmac_instance;
  function WebCryptoHmac_getInstance() {
    if (WebCryptoHmac_instance == null)
      new WebCryptoHmac();
    return WebCryptoHmac_instance;
  }
  function HmacKeyProcessor() {
    HmacKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var HmacKeyProcessor_instance;
  function HmacKeyProcessor_getInstance() {
    if (HmacKeyProcessor_instance == null)
      new HmacKeyProcessor();
    return HmacKeyProcessor_instance;
  }
  function WebCryptoPbkdf2() {
  }
  var WebCryptoPbkdf2_instance;
  function WebCryptoPbkdf2_getInstance() {
    return WebCryptoPbkdf2_instance;
  }
  function RsaPublicKey(publicKey) {
    WebCryptoEncodableKey.call(this, publicKey, RsaPublicKeyProcessor_getInstance());
    this.t9v_1 = publicKey;
  }
  function RsaPrivateKey($outer, privateKey) {
    this.x9v_1 = $outer;
    WebCryptoEncodableKey.call(this, privateKey, RsaPrivateKeyProcessor_getInstance());
    this.w9v_1 = privateKey;
  }
  function WebCryptoRsa$keyPairWrapper$lambda($keyPairWrapper, this$0) {
    return function (it) {
      return $keyPairWrapper(this$0.z9v_1.r9u_1(it.publicKey), this$0.a9w_1.r9u_1(it.privateKey));
    };
  }
  function WebCryptoRsa(algorithmName, publicKeyWrapper, privateKeyWrapper, keyPairWrapper) {
    this.y9v_1 = algorithmName;
    this.z9v_1 = publicKeyWrapper;
    this.a9w_1 = privateKeyWrapper;
    var tmp = this;
    var tmp0 = this.z9v_1.q9u_1;
    // Inline function 'kotlin.collections.plus' call
    var elements = this.a9w_1.q9u_1;
    // Inline function 'kotlin.js.asDynamic' call
    tmp.b9w_1 = tmp0.concat(elements);
    var tmp_0 = this;
    tmp_0.c9w_1 = WebCryptoRsa$keyPairWrapper$lambda(keyPairWrapper, this);
  }
  function RsaPublicKeyProcessor() {
    RsaPublicKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var RsaPublicKeyProcessor_instance;
  function RsaPublicKeyProcessor_getInstance() {
    if (RsaPublicKeyProcessor_instance == null)
      new RsaPublicKeyProcessor();
    return RsaPublicKeyProcessor_instance;
  }
  function RsaPrivateKeyProcessor() {
    RsaPrivateKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var RsaPrivateKeyProcessor_instance;
  function RsaPrivateKeyProcessor_getInstance() {
    if (RsaPrivateKeyProcessor_instance == null)
      new RsaPrivateKeyProcessor();
    return RsaPrivateKeyProcessor_instance;
  }
  function RsaOaepKeyPair(publicKey, privateKey) {
    this.d9w_1 = publicKey;
    this.e9w_1 = privateKey;
  }
  function RsaOaepPublicKey(publicKey) {
    RsaPublicKey.call(this, publicKey);
  }
  function RsaOaepPrivateKey(privateKey) {
    RsaPrivateKey.call(this, WebCryptoRsaOaep_getInstance(), privateKey);
  }
  function WebCryptoRsaOaep$RsaOaepPublicKey$_init_$ref_2xzkj4() {
    var l = function (p0) {
      return new RsaOaepPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaOaep$RsaOaepPrivateKey$_init_$ref_ds5c3s() {
    var l = function (p0) {
      return new RsaOaepPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaOaep$RsaOaepKeyPair$_init_$ref_whtofn() {
    var l = function (p0, p1) {
      return new RsaOaepKeyPair(p0, p1);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaOaep() {
    WebCryptoRsaOaep_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['encrypt'];
    var tmp_0 = new WebCryptoKeyWrapper(tmp, WebCryptoRsaOaep$RsaOaepPublicKey$_init_$ref_2xzkj4());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = ['decrypt'];
    var tmp_2 = new WebCryptoKeyWrapper(tmp_1, WebCryptoRsaOaep$RsaOaepPrivateKey$_init_$ref_ds5c3s());
    WebCryptoRsa.call(this, 'RSA-OAEP', tmp_0, tmp_2, WebCryptoRsaOaep$RsaOaepKeyPair$_init_$ref_whtofn());
  }
  var WebCryptoRsaOaep_instance;
  function WebCryptoRsaOaep_getInstance() {
    if (WebCryptoRsaOaep_instance == null)
      new WebCryptoRsaOaep();
    return WebCryptoRsaOaep_instance;
  }
  function RsaPkcs1KeyPair(publicKey, privateKey) {
    this.f9w_1 = publicKey;
    this.g9w_1 = privateKey;
  }
  function RsaPkcs1PublicKey(publicKey) {
    RsaPublicKey.call(this, publicKey);
  }
  function RsaPkcs1PrivateKey(privateKey) {
    RsaPrivateKey.call(this, WebCryptoRsaPkcs1_getInstance(), privateKey);
  }
  function WebCryptoRsaPkcs1$RsaPkcs1PublicKey$_init_$ref_kiwvhe() {
    var l = function (p0) {
      return new RsaPkcs1PublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPkcs1$RsaPkcs1PrivateKey$_init_$ref_y0qpl2() {
    var l = function (p0) {
      return new RsaPkcs1PrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPkcs1$RsaPkcs1KeyPair$_init_$ref_s062w5() {
    var l = function (p0, p1) {
      return new RsaPkcs1KeyPair(p0, p1);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPkcs1() {
    WebCryptoRsaPkcs1_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['verify'];
    var tmp_0 = new WebCryptoKeyWrapper(tmp, WebCryptoRsaPkcs1$RsaPkcs1PublicKey$_init_$ref_kiwvhe());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = ['sign'];
    var tmp_2 = new WebCryptoKeyWrapper(tmp_1, WebCryptoRsaPkcs1$RsaPkcs1PrivateKey$_init_$ref_y0qpl2());
    WebCryptoRsa.call(this, 'RSASSA-PKCS1-v1_5', tmp_0, tmp_2, WebCryptoRsaPkcs1$RsaPkcs1KeyPair$_init_$ref_s062w5());
  }
  var WebCryptoRsaPkcs1_instance;
  function WebCryptoRsaPkcs1_getInstance() {
    if (WebCryptoRsaPkcs1_instance == null)
      new WebCryptoRsaPkcs1();
    return WebCryptoRsaPkcs1_instance;
  }
  function RsaPssKeyPair(publicKey, privateKey) {
    this.h9w_1 = publicKey;
    this.i9w_1 = privateKey;
  }
  function RsaPssPublicKey(publicKey) {
    RsaPublicKey.call(this, publicKey);
  }
  function RsaPssPrivateKey(privateKey) {
    RsaPrivateKey.call(this, WebCryptoRsaPss_getInstance(), privateKey);
  }
  function WebCryptoRsaPss$RsaPssPublicKey$_init_$ref_o813fm() {
    var l = function (p0) {
      return new RsaPssPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPss$RsaPssPrivateKey$_init_$ref_6l5g3q() {
    var l = function (p0) {
      return new RsaPssPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPss$RsaPssKeyPair$_init_$ref_3h8asb() {
    var l = function (p0, p1) {
      return new RsaPssKeyPair(p0, p1);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoRsaPss() {
    WebCryptoRsaPss_instance = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = ['verify'];
    var tmp_0 = new WebCryptoKeyWrapper(tmp, WebCryptoRsaPss$RsaPssPublicKey$_init_$ref_o813fm());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_1 = ['sign'];
    var tmp_2 = new WebCryptoKeyWrapper(tmp_1, WebCryptoRsaPss$RsaPssPrivateKey$_init_$ref_6l5g3q());
    WebCryptoRsa.call(this, 'RSA-PSS', tmp_0, tmp_2, WebCryptoRsaPss$RsaPssKeyPair$_init_$ref_3h8asb());
  }
  var WebCryptoRsaPss_instance;
  function WebCryptoRsaPss_getInstance() {
    if (WebCryptoRsaPss_instance == null)
      new WebCryptoRsaPss();
    return WebCryptoRsaPss_instance;
  }
  function XdhKeyPair(publicKey, privateKey) {
    this.j9w_1 = publicKey;
    this.k9w_1 = privateKey;
  }
  function XdhPublicKey(publicKey) {
    WebCryptoEncodableKey.call(this, publicKey, XdhPublicKeyProcessor_getInstance());
    this.n9w_1 = publicKey;
  }
  function XdhPrivateKey(privateKey) {
    WebCryptoEncodableKey.call(this, privateKey, XdhPrivateKeyProcessor_getInstance());
    this.q9w_1 = privateKey;
  }
  function WebCryptoXdh$XdhPublicKey$_init_$ref_58foni() {
    var l = function (p0) {
      return new XdhPublicKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoXdh$XdhPrivateKey$_init_$ref_gt5z3q() {
    var l = function (p0) {
      return new XdhPrivateKey(p0);
    };
    l.callableName = '<init>';
    return l;
  }
  function WebCryptoXdh$keyPairWrapper$lambda(it) {
    return new XdhKeyPair(new XdhPublicKey(it.publicKey), new XdhPrivateKey(it.privateKey));
  }
  function WebCryptoXdh() {
    WebCryptoXdh_instance = this;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_0 = [];
    tmp.r9w_1 = new WebCryptoKeyWrapper(tmp_0, WebCryptoXdh$XdhPublicKey$_init_$ref_58foni());
    var tmp_1 = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_2 = ['deriveBits'];
    tmp_1.s9w_1 = new WebCryptoKeyWrapper(tmp_2, WebCryptoXdh$XdhPrivateKey$_init_$ref_gt5z3q());
    var tmp_3 = this;
    var tmp0 = this.r9w_1.q9u_1;
    // Inline function 'kotlin.collections.plus' call
    var elements = this.s9w_1.q9u_1;
    // Inline function 'kotlin.js.asDynamic' call
    tmp_3.t9w_1 = tmp0.concat(elements);
    var tmp_4 = this;
    tmp_4.u9w_1 = WebCryptoXdh$keyPairWrapper$lambda;
  }
  var WebCryptoXdh_instance;
  function WebCryptoXdh_getInstance() {
    if (WebCryptoXdh_instance == null)
      new WebCryptoXdh();
    return WebCryptoXdh_instance;
  }
  function XdhPublicKeyProcessor() {
    XdhPublicKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var XdhPublicKeyProcessor_instance;
  function XdhPublicKeyProcessor_getInstance() {
    if (XdhPublicKeyProcessor_instance == null)
      new XdhPublicKeyProcessor();
    return XdhPublicKeyProcessor_instance;
  }
  function XdhPrivateKeyProcessor() {
    XdhPrivateKeyProcessor_instance = this;
    WebCryptoKeyProcessor.call(this);
  }
  var XdhPrivateKeyProcessor_instance;
  function XdhPrivateKeyProcessor_getInstance() {
    if (XdhPrivateKeyProcessor_instance == null)
      new XdhPrivateKeyProcessor();
    return XdhPrivateKeyProcessor_instance;
  }
  function getSubtleCrypto() {
    var tmp0_safe_receiver = getCrypto();
    var tmp0 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.subtle;
    var tmp$ret$0;
    $l$block: {
      // Inline function 'kotlin.requireNotNull' call
      if (tmp0 == null) {
        var message = 'WebCrypto API is not available. Check Secure Contexts definition (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) or report an issue';
        throw IllegalArgumentException_init_$Create$(toString(message));
      } else {
        tmp$ret$0 = tmp0;
        break $l$block;
      }
    }
    return tmp$ret$0;
  }
  function getCrypto() {
    return globalThis ? globalThis.crypto : window.crypto || window.msCrypto;
  }
  function $digestCOROUTINE$(_this__u8e3s4, algorithmName, data, resultContinuation) {
    CoroutineImpl.call(this, resultContinuation);
    this.d9x_1 = _this__u8e3s4;
    this.e9x_1 = algorithmName;
    this.f9x_1 = data;
  }
  protoOf($digestCOROUTINE$).m9 = function () {
    var suspendResult = this.g9_1;
    $sm: do
      try {
        var tmp = this.e9_1;
        switch (tmp) {
          case 0:
            this.f9_1 = 2;
            this.e9_1 = 1;
            suspendResult = await_0(this.d9x_1.h9u_1.digest(this.e9x_1, toInt8Array(this.f9x_1)), this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 1:
            var ARGUMENT = suspendResult;
            return toByteArray(ARGUMENT);
          case 2:
            throw this.h9_1;
        }
      } catch ($p) {
        var e = $p;
        if (this.f9_1 === 2) {
          throw e;
        } else {
          this.e9_1 = this.f9_1;
          this.h9_1 = e;
        }
      }
     while (true);
  };
  function WebCrypto() {
    WebCrypto_instance = this;
    this.h9u_1 = getSubtleCrypto();
  }
  protoOf(WebCrypto).i9u = function (algorithmName, data, $completion) {
    var tmp = new $digestCOROUTINE$(this, algorithmName, data, $completion);
    tmp.g9_1 = Unit_instance;
    tmp.h9_1 = null;
    return tmp.m9();
  };
  var WebCrypto_instance;
  function WebCrypto_getInstance() {
    if (WebCrypto_instance == null)
      new WebCrypto();
    return WebCrypto_instance;
  }
  function nonBlocking() {
    throw IllegalStateException_init_$Create$('Only non-blocking(suspend) calls are supported in WebCrypto');
  }
  function WebCryptoEncodableKey(key, keyProcessor) {
    this.g9x_1 = key;
    this.h9x_1 = keyProcessor;
  }
  function WebCryptoKeyProcessor() {
  }
  function WebCryptoKeyWrapper(usages, wrap) {
    this.q9u_1 = usages;
    this.r9u_1 = wrap;
  }
  function get_initHook() {
    return initHook;
  }
  var initHook;
  function initHook$init$() {
    CryptographySystem_getInstance().l6e(get_defaultProvider(), 100);
    return Unit_instance;
  }
  function toInt8Array(_this__u8e3s4) {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return _this__u8e3s4;
  }
  function toByteArray(_this__u8e3s4) {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return new Int8Array(_this__u8e3s4);
  }
  function await_0(_this__u8e3s4, $completion) {
    var safe = SafeContinuation_init_$Create$(intercepted($completion));
    var tmp = await$lambda(safe);
    _this__u8e3s4.then(tmp, await$lambda_0(safe));
    return safe.w9();
  }
  function await$lambda($continuation) {
    return function (it) {
      // Inline function 'kotlin.coroutines.resume' call
      var this_0 = $continuation;
      // Inline function 'kotlin.Companion.success' call
      var tmp$ret$1 = _Result___init__impl__xyqfz8(it);
      this_0.p9(tmp$ret$1);
      return null;
    };
  }
  function await$lambda_0($continuation) {
    return function (it) {
      // Inline function 'kotlin.coroutines.resumeWithException' call
      var this_0 = $continuation;
      // Inline function 'kotlin.Companion.failure' call
      var tmp$ret$1 = _Result___init__impl__xyqfz8(createFailure(it));
      this_0.p9(tmp$ret$1);
      return null;
    };
  }
  //region block: init
  WebCryptoHkdf_instance = new WebCryptoHkdf();
  WebCryptoPbkdf2_instance = new WebCryptoPbkdf2();
  //endregion
  //region block: eager init
  initHook = initHook$init$();
  //endregion
  //region block: exports
  function $jsExportAll$(_) {
    var dev = _.dev || (_.dev = {});
    var whyoleg = dev.whyoleg || (dev.whyoleg = {});
    var cryptography = whyoleg.cryptography || (whyoleg.cryptography = {});
    var providers = cryptography.providers || (cryptography.providers = {});
    var webcrypto = providers.webcrypto || (providers.webcrypto = {});
    defineProp(webcrypto, 'initHook', get_initHook, VOID, true);
  }
  $jsExportAll$(_);
  _.$jsExportAll$ = $jsExportAll$;
  //endregion
  return _;
}(module.exports, require('./cryptography-kotlin-cryptography-core.js'), require('./kotlin-kotlin-stdlib.js')));

//# sourceMappingURL=cryptography-kotlin-cryptography-provider-webcrypto.js.map
