{"version":3,"sources":["../src/client.ts","../src/UniversalProfiles_Apps_Logo_96px.svg.ts","../src/popup.ts","../src/server.ts","../src/index.ts"],"sourcesContent":["import debug from 'debug'\nimport EventEmitter3, { type EventEmitter } from 'eventemitter3'\nimport { JSONRPCClient, type JSONRPCParams } from 'json-rpc-2.0'\nimport { v5 as uuidv5, v4 as uuidv4 } from 'uuid'\nimport image from './UniversalProfiles_Apps_Logo_96px.svg'\nimport { create } from 'domain'\nimport { createWalletPopup, type ModalPopup } from './popup'\nimport { cleanupAccounts } from './index'\nimport { start } from 'repl'\n\nconst clientLog = debug('upProvider:client')\n\n// Unique identifier for UP Provider JSONRPC messages\nconst UP_PROVIDER_JSONRPC_TYPE = 'upProvider:jsonrpc' as const\n\ntype RequestQueueItem = {\n  resolve: (value: void | PromiseLike<void>) => unknown\n  reject: (reason: unknown) => unknown\n  sent: boolean\n  id: number | string\n  method: string\n  params: unknown[]\n}\n\ntype UPWindowConfig =\n  | Window\n  | null\n  | undefined\n  | {\n      url: string\n      mode: 'popup' | 'iframe'\n      name?: string\n      get: () => Promise<Record<string, unknown>>\n      set: (value: Record<string, unknown>) => Promise<void>\n      preventRegistration?: boolean\n      rdns?: string\n      icon?: string\n    }\n\ninterface UPClientProviderEvents {\n  connect: (args: { chainId: `0x${string}` }) => void\n  disconnect: () => void\n  accountsChanged: (accounts: `0x${string}`[]) => void\n  contextAccountsChanged: (contextAccounts: `0x${string}`[]) => void\n  requestAccounts: (accounts: `0x${string}`[]) => void\n  chainChanged: (chainId: number) => void\n  injected: (page: `0x${string}`) => void\n  rpcUrls: (rpcUrls: string[]) => void\n  windowClosed: () => void\n  initialized: () => void\n}\n\n/**\n * Internal closure for UPClientProvider to allow late initialization of class.\n */\ntype UPClientProviderOptions = {\n  client?: JSONRPCClient\n  chainId: () => number\n  switchChainId: (chainId: number) => void\n  connectEmitted: boolean\n  allowedAccounts: () => `0x${string}`[]\n  contextAccounts: () => `0x${string}`[]\n  window?: Window\n  clientChannel?: MessagePort\n  startupPromise: Promise<void>\n  popup?: ModalPopup\n  preStartupPromise: Promise<void>\n  allocateConnection: () => Promise<void>\n  isPopup?: boolean\n  isIframe?: boolean\n  loginPromise?: PromiseLike<any>\n  restart: () => void\n  init?: {\n    chainId: number\n    allowedAccounts: `0x${string}`[]\n    contextAccounts: `0x${string}`[]\n    rpcUrls: string[]\n  }\n}\n\nconst pendingRequests = new Map<string, RequestQueueItem>()\n\n/**\n * Public interface for UPClientProvider.\n */\ninterface UPClientProvider {\n  get isUPClientProvider(): boolean\n  /**\n   * Return an array listing the events for which the emitter has registered\n   * listeners.\n   */\n  eventNames(): Array<EventEmitter.EventNames<UPClientProviderEvents>>\n\n  /**\n   * Return the listeners registered for a given event.\n   */\n  listeners<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T): Array<EventEmitter.EventListener<UPClientProviderEvents, T>>\n\n  /**\n   * Return the number of listeners listening to a given event.\n   */\n  listenerCount(event: EventEmitter.EventNames<UPClientProviderEvents>): number\n\n  /**\n   * Calls each of the listeners registered for a given event.\n   */\n  emit<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, ...args: EventEmitter.EventArgs<UPClientProviderEvents, T>): boolean\n\n  /**\n   * Add a listener for a given event.\n   */\n  on<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any): this\n  addListener<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any): this\n\n  /**\n   * Add a one-time listener for a given event.\n   */\n  once<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any): this\n\n  /**\n   * Remove the listeners of a given event.\n   */\n  removeListener<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any, once?: boolean): this\n  off<T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any, once?: boolean): this\n\n  /**\n   * Remove all listeners, or those of the specified event.\n   */\n  removeAllListeners(event?: EventEmitter.EventNames<UPClientProviderEvents>): this\n\n  request(method: string, params?: JSONRPCParams, clientParams?: any): Promise<any>\n  request(method: { method: string; params?: JSONRPCParams }, clientParams?: any): Promise<any>\n\n  /**\n   * Get the current chainId this is configured for and connected to.\n   */\n  get chainId(): number\n\n  /**\n   * Mirrors allowedAccounts, the accounts the provider is connected to\n   */\n  get accounts(): `0x${string}`[]\n\n  /**\n   * Additional context accounts provided by the parent connector.\n   * Inside of the universaleverything grid this will contain the account\n   * of the owner of the displayed grid (i.e. the owner of the profile being displayed.)\n   */\n  get contextAccounts(): `0x${string}`[]\n\n  get isConnected(): boolean\n\n  get isMiniApp(): Promise<boolean>\n\n  resume(delay?: number): void\n}\n\n/**\n * Internal factory function for UPClientProvider to use closure-based private variables.\n */\nfunction createUPClientProvider(options: UPClientProviderOptions) {\n  let bufferedEvents: Array<[keyof UPClientProviderEvents, unknown[]]> | undefined = []\n  \n  const emitter = new EventEmitter3<UPClientProviderEvents>()\n  \n  const provider: UPClientProvider = {\n    get isUPClientProvider(): boolean {\n      return true\n    },\n    \n    eventNames: () => emitter.eventNames(),\n    listeners: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T) => emitter.listeners(event),\n    listenerCount: (event: EventEmitter.EventNames<UPClientProviderEvents>) => emitter.listenerCount(event),\n    \n    emit: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, ...args: EventEmitter.EventArgs<UPClientProviderEvents, T>): boolean => {\n      if (bufferedEvents) {\n        bufferedEvents.push([event, args])\n        return false\n      }\n      return emitter.emit(event, ...args)\n    },\n    \n    on: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any) => {\n      provider.resume(500)\n      emitter.on(event, fn, context)\n      return provider\n    },\n    \n    addListener: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any) => {\n      provider.resume(500)\n      emitter.addListener(event, fn, context)\n      return provider\n    },\n    \n    once: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any) => {\n      emitter.once(event, fn, context)\n      return provider\n    },\n    \n    removeListener: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any, once?: boolean) => {\n      emitter.removeListener(event, fn, context, once)\n      return provider\n    },\n    \n    off: <T extends EventEmitter.EventNames<UPClientProviderEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientProviderEvents, T>, context?: any, once?: boolean) => {\n      emitter.off(event, fn, context, once)\n      return provider\n    },\n    \n    removeAllListeners: (event?: EventEmitter.EventNames<UPClientProviderEvents>) => {\n      emitter.removeAllListeners(event)\n      return provider\n    },\n    \n    resume: (delay = 0) => {\n      const buffered = bufferedEvents\n      if (!buffered) {\n        return\n      }\n      bufferedEvents = undefined\n      setTimeout(() => {\n        while (buffered.length > 0) {\n          const val = buffered.shift()\n          if (val) {\n            const [event, args] = val\n            emitter.emit(event, ...(args as any))\n          }\n        }\n      }, delay)\n    },\n\n    get isConnected(): boolean {\n      return options.allowedAccounts().length > 0\n    },\n\n    get isMiniApp(): Promise<boolean> {\n      return options\n        ?.startupPromise.catch(() => false)\n        .then(() => true)\n    },\n\n    request: async (_method: string | { method: string; params?: JSONRPCParams }, _params?: JSONRPCParams, _clientParams?: any): Promise<any> => {\n      await options?.preStartupPromise\n      const method = typeof _method === 'string' ? _method : _method.method\n      const params = typeof _method === 'string' ? _params : _method.params\n      if (!options?.client) {\n        if ((options?.isPopup || options.isIframe) && (method === 'wallet_requestPermissions' || method === 'eth_sendTransaction' || method === 'eth_requestAccounts' || (method === 'eth_accounts' && provider.accounts?.length === 0))) {\n          await options?.allocateConnection()\n          await options?.startupPromise\n        }\n      }\n      if (method === 'eth_requestAccounts' || method === 'wallet_requestPermissions') {\n        const shouldShowUI = method === 'wallet_requestPermissions' || !provider.accounts?.length\n        \n        if ((options?.isIframe || options?.isPopup) && shouldShowUI) {\n          if (options.popup) {\n            options.popup?.openModal()\n          }\n\n          if (!options.loginPromise) {\n            options.loginPromise = options\n              .client?.request('embedded_login', ['force'], _clientParams)\n              .then((result: unknown) => {\n                return result\n              })\n          }\n          const result = await options.loginPromise\n          \n          if (method === 'wallet_requestPermissions') {\n            const accounts = Array.isArray(result) ? result : provider.accounts\n            \n            if (options?.popup) {\n              clientLog('Closing modal after wallet_requestPermissions')\n              options?.popup?.closeModal()\n            }\n            \n            return [{\n              parentCapability: 'eth_accounts',\n              invoker: window.location.origin,\n              caveats: [{\n                type: 'restrictReturnedAccounts',\n                value: accounts\n              }]\n            }]\n          }\n        }\n        if (method === 'wallet_requestPermissions') {\n          const accounts = provider.accounts\n\n          if (options?.popup) {\n            clientLog('Closing modal after wallet_requestPermissions')\n            options?.popup?.closeModal()\n          }\n          \n          return [{\n            parentCapability: 'eth_accounts',\n            invoker: window.location.origin,\n            caveats: [{\n              type: 'restrictReturnedAccounts',\n              value: accounts\n            }]\n          }]\n        }\n      }\n      if (method === 'eth_requestAccounts' || method === 'eth_accounts') {\n        if (provider.chainId && provider.accounts.length > 0) {\n          if (!options?.connectEmitted) {\n            provider.emit('connect', { chainId: `0x${provider.chainId.toString(16)}` })\n            options.connectEmitted = true\n          }\n        } else {\n          options.connectEmitted = false\n        }\n        return provider.accounts\n      }\n      if (method === 'eth_chainId') {\n        return `0x${provider.chainId.toString(16)}`\n      }\n      if (method === 'wallet_switchEthereumChain') {\n        options.switchChainId(Number(params?.[0]?.chainId))\n        return `0x${provider.chainId.toString(16)}`\n      }\n      if (method === 'eth_accounts') {\n        return provider.accounts\n      }\n      const clientParams = typeof _method === 'string' ? _clientParams : _params\n      if (method === 'up_contextAccounts') {\n        return options.contextAccounts()\n      }\n      \n      if (!options?.client) {\n        clientLog('Client not ready, allocating connection first')\n        await options?.allocateConnection()\n        await options?.startupPromise\n      }\n      \n      if (method === 'wallet_requestPermissions') {\n        const result = await options?.client?.request(method, params, clientParams)\n        if (result && result[0]?.caveats?.[0]?.type === 'restrictReturnedAccounts' && Array.isArray(result[0].caveats[0].value)) {\n          const newAccounts = result[0].caveats[0].value as `0x${string}`[]\n          const currentAccounts = options?.allowedAccounts() || []\n          \n          if ((currentAccounts?.length ?? 0) !== (newAccounts?.length ?? 0) || currentAccounts?.some((account, index) => account !== newAccounts[index])) {\n            clientLog('wallet_requestPermissions returned different accounts, expecting accountsChanged event')\n          }\n        }\n        return result\n      }\n      \n      return options?.client?.request(method, params, clientParams) || null\n    },\n\n    get chainId() {\n      return options?.chainId() || 0\n    },\n\n    get accounts() {\n      return options?.allowedAccounts() || []\n    },\n\n    get contextAccounts() {\n      return options?.contextAccounts() || []\n    }\n  }\n  \n  return provider\n}\n\n/**\n * @internal\n * Search for the parent provider and connect it. This routine is internally called\n * @param up - search input if specific window should be pinged.\n * @param remote - the provider doing the pinging.\n * @param options - the internal closure for that provider.\n * @returns The provider if it successfully connected or throws an error.\n */\nasync function testWindow(up: Window | undefined | null, remote: UPClientProvider, options: UPClientProviderOptions): Promise<UPClientProvider> {\n  const _up = up || (typeof window !== 'undefined' ? window.parent : undefined)\n  if (!_up) {\n    throw new Error('No UP found')\n  }\n  return new Promise<UPClientProvider>((resolve, reject) => {\n    let timeout: number | NodeJS.Timeout = 0\n    const channel = new MessageChannel()\n\n    const testFn = (event: MessageEvent) => {\n      // Handle wrapped JSONRPC responses for cross-origin scenarios\n      if (event.data?.type === UP_PROVIDER_JSONRPC_TYPE && !options.clientChannel) {\n        const jsonrpcMessage = event.data.payload\n        if (jsonrpcMessage && typeof jsonrpcMessage.id !== 'undefined') {\n          // This is a JSONRPC response, handle it\n          const pending = pendingRequests.get(String(jsonrpcMessage.id))\n          if (pending) {\n            if (jsonrpcMessage.error) {\n              pending.reject(jsonrpcMessage.error)\n            } else {\n              pending.resolve(jsonrpcMessage.result)\n            }\n            pendingRequests.delete(String(jsonrpcMessage.id))\n          }\n        }\n        return\n      }\n\n      if (event.data?.type === 'upProvider:windowInitialize') {\n        const { chainId, allowedAccounts, contextAccounts, rpcUrls } = event.data\n\n        clientLog('client init', event.data, _up)\n        window.removeEventListener('message', testFn)\n        if (timeout) {\n          clearTimeout(timeout)\n          timeout = 0\n        }\n\n        // Check if we received a port from the server (cross-origin case)\n        if (event.ports?.[0]) {\n          clientLog('Received MessageChannel port from server')\n          options.clientChannel = event.ports[0]\n          // Don't start yet - will start after listener is attached in doSearch\n        } else {\n          // Use our original port (same-origin case)\n          options.clientChannel = channel.port1\n          // Don't start yet - will start after listener is attached in doSearch\n        }\n\n        options.window = _up\n        try {\n          _up.addEventListener('close', () => {\n            options.restart()\n            remote.emit('windowClosed')\n          })\n        } catch {\n          // Ignore\n        }\n        options.init = { chainId, allowedAccounts, contextAccounts, rpcUrls }\n        clientLog('client connected', event.data.type, event.data)\n        options.clientChannel.postMessage({\n          type: 'upProvider:windowInitialized',\n          chainId,\n          allowedAccounts,\n          contextAccounts,\n          rpcUrls,\n        })\n        resolve(remote)\n      }\n    }\n\n    // Only listen on channel.port1 if we're expecting to use it (same-origin)\n    // For cross-origin, we'll receive a port from the server\n    channel.port1.addEventListener('message', testFn)\n    channel.port1.start()\n    window.addEventListener('message', testFn)\n\n    // Check if we can access the window's origin (same-origin check)\n    let canTransferPort = false\n    try {\n      // If we can access the location, we're same-origin\n      // Check if we can access the location\n      void _up.location.href\n      canTransferPort = true\n    } catch (e) {\n      // Cross-origin - can't transfer MessageChannel\n      clientLog('Cross-origin detected, will send without port')\n    }\n\n    // Use stored target origin or default to '*'\n    const targetOrigin = (options as any).targetOrigin || '*'\n    clientLog('Using target origin for postMessage:', targetOrigin)\n\n    // Determine which message to send based on the context\n    let messageType = 'upProvider:hasProvider'\n\n    // If we're looking for an iframe provider (authURL has a URL), use a specific message\n    if ((options as any).isIframe) {\n      messageType = 'upProvider:requestIframeProvider'\n    }\n\n    // Send with or without port based on origin check\n    if (canTransferPort) {\n      _up.postMessage(messageType, targetOrigin, [channel.port2])\n    } else {\n      _up.postMessage(messageType, targetOrigin)\n    }\n\n    timeout = setTimeout(() => {\n      timeout = 0\n      window.removeEventListener('message', testFn)\n      channel.port1.removeEventListener('message', testFn)\n\n      clientLog('client', 'No UP found', _up)\n      reject(new Error('No UP found'))\n    }, 1000)\n  })\n}\n\n/**\n * Find the up connector in the parent or popup window.\n * @param authURL - optionlly pass a URL for a popup to be launched in an iframe to connect\n * @param remote - the up provider to be connect\n * @param options - the internal closure for that provider.\n * @returns\n */\nasync function findUP(authURL: UPWindowConfig, remote: UPClientProvider, options: UPClientProviderOptions): Promise<UPClientProvider | undefined> {\n  const current = typeof window !== 'undefined' && window instanceof Window ? window.opener || window.parent : null\n  if (current) {\n    const up = await testWindow(current, remote, options)\n    if (up) {\n      return up\n    }\n  }\n  if (authURL == null) {\n    throw new Error('No UP found')\n  }\n  if (typeof authURL === 'object' && authURL instanceof Window) {\n    throw new Error('No UP found')\n  }\n  throw new Error('No UP found')\n}\n\n/**\n * Helper routines to initiate the search procedure for the parent provider.\n * @param authURL - optional URL for popup window\n * @param remote - the up provider to be connected\n * @param options - the internal closure for that provider.\n * @param search - if true then it will search, else it expects either a window or URL.\n * @returns The connected provider or throws an error.\n */\nasync function findDestination(authURL: UPWindowConfig, remote: UPClientProvider, options: UPClientProviderOptions, search = false): Promise<UPClientProvider> {\n  let theWindow: UPWindowConfig = typeof authURL === 'object' && (authURL as { url?: string })?.url ? null : authURL\n\n  // Store the target origin in options for use in testWindow\n  if (typeof authURL === 'object' && !(authURL instanceof Window) && authURL?.url) {\n    try {\n      ;(options as any).targetOrigin = new URL(authURL.url).origin\n      clientLog('Stored target origin:', (options as any).targetOrigin)\n    } catch (e) {\n      clientLog('Could not determine target origin from URL')\n    }\n  }\n\n  if (typeof authURL === 'object' && !(authURL instanceof Window) && authURL?.url) {\n    const info = localStorage.getItem(`upProvider:info:${authURL}`)\n    if (info) {\n      const { chainId, allowedAccounts, contextAccounts, rpcUrls } = JSON.parse(info)\n      options.init = { chainId, allowedAccounts, contextAccounts, rpcUrls }\n    }\n    if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n      if (authURL.mode === 'popup') {\n        const childWindow = window.open(authURL.url, 'UE Wallet', 'width=400,height=600')\n        if (childWindow) {\n          clientLog('popup opened')\n          // childWindow.addEventListener('close', () => {\n          //   clientLog('popup closed')\n          //   options.restart()\n          //   remote.emit('windowClosed')\n          // })\n          theWindow = childWindow\n        }\n      }\n      if (authURL.mode === 'iframe') {\n        const { popup, isNew } = await createWalletPopup(authURL.url)\n        if (popup) {\n          options.popup = popup\n          const { window: current } = await popup.createModal()\n\n          if (current) {\n            clientLog(isNew ? 'New iframe created' : 'Reusing existing iframe')\n\n            // Only set up event listeners for new popups\n            if (isNew) {\n              const close = (event: MessageEvent) => {\n                if (event.data?.type === 'upProvider:modalClosed') {\n                  clientLog('iframe modal closed (keeping connection)')\n                  // Don't restart or emit windowClosed - just hide the modal\n                  // The connection should persist\n                  window.removeEventListener('message', close)\n                }\n              }\n              window.addEventListener('message', close)\n              try {\n                current.addEventListener('close', () => {\n                  clientLog('iframe window actually closed')\n                  // Only restart if the window is actually destroyed, not just hidden\n                  options.restart()\n                  remote.emit('windowClosed')\n                  window.removeEventListener('message', close)\n                })\n              } catch {\n                // Ignore - cross-origin frames might not allow this\n              }\n            }\n\n            theWindow = current\n\n            // Only wait for ready message on new iframes\n            if (authURL.mode === 'iframe' && current && isNew) {\n              clientLog('Waiting for new iframe to announce ready')\n              \n              // Wait for the iframe to announce it's ready (DOM loaded)\n              await new Promise<void>(resolve => {\n                let timeoutId: NodeJS.Timeout | number\n                \n                const readyHandler = (event: MessageEvent) => {\n                  // Debug logging\n                  if (event.data === 'upProvider:ready') {\n                    clientLog('Received upProvider:ready from:', event.source, 'expected:', current, 'match:', event.source === current)\n                  }\n\n                  // For cross-origin iframes, event.source might not be accessible or comparable\n                  // So just check for the message type\n                  if (event.data === 'upProvider:ready') {\n                    clientLog('Iframe announced ready')\n                    clearTimeout(timeoutId)  // Clear the timeout since we got the ready message\n                    window.removeEventListener('message', readyHandler)\n                    resolve()\n                  }\n                }\n                window.addEventListener('message', readyHandler)\n\n                // Timeout after 3 seconds - this is expected if the iframe doesn't send ready\n                timeoutId = setTimeout(() => {\n                  window.removeEventListener('message', readyHandler)\n                  clientLog('Iframe ready timeout (proceeding anyway - this is normal)')\n                  resolve()\n                }, 3000)\n              })\n              \n              // Don't wait for provider initialization here - it blocks the channel setup!\n              // The provider will send accountsChanged through the channel once it's ready\n            }\n          }\n        }\n      }\n    }\n  }\n  let up: UPClientProvider | undefined = await testWindow(theWindow as Window | undefined | null, remote, options).catch(error => {\n    if (search) {\n      return undefined\n    }\n    throw error\n  })\n  \n\n  if (search && !up) {\n    let retry = 3\n    while (retry > 0) {\n      let current: Window | undefined = theWindow || (window.opener && window.opener !== window ? window.opener : window.parent && window.parent !== window ? window.parent : undefined)\n      while (current) {\n        up = await testWindow(current, remote, options).catch(() => undefined)\n        if (up) {\n          break\n        }\n        if (current === window.top) {\n          break\n        }\n        current = theWindow || (current.opener && current.opener !== current ? current.opener : current.parent && current.parent !== current ? current.parent : undefined)\n      }\n      if (up) {\n        break\n      }\n\n      // Wait for a second for each try.\n      await new Promise(resolve => setTimeout(resolve, 1000))\n\n      retry--\n    }\n  }\n  if (!up) {\n    throw new Error('No UP found')\n  }\n  return up\n}\n\n/**\n * Create clientUPProvider. This can be used like a normal window.ethereum or window.lukso provider.\n * It will on initialization look for a connection to a global provider.\n *\n * @param authURL Optionally put a URL to a authentication provider to provide the global provider.\n * @param search If false then don't search but take the passed in value as is.\n * @returns the client UPProvider\n */\nfunction createClientUPProvider(authURL?: UPWindowConfig, search = true): UPClientProvider {\n  let chainId = 0\n  let allowedAccounts: `0x${string}`[] = []\n  let contextAccounts: `0x${string}`[] = []\n  let rpcUrls: string[] = []\n  let startupResolve: () => void\n  let preStartupResolve: () => void = () => {}\n  const preStartupPromise = new Promise<void>(resolve => {\n    preStartupResolve = resolve\n  }).then(() => {\n    clientLog('pre startup resolved')\n  })\n  let startupPromise = new Promise<void>(resolve => {\n    startupResolve = resolve\n  }).then(() => {\n    remote.emit('initialized')\n  })\n\n  const allocateConnection = async () => {\n    const client = new JSONRPCClient(async (jsonRPCRequest: any) => {\n      await doSearch(client).then(up => {\n        options.client = client\n        return up\n      })\n\n      return new Promise((resolve, reject) => {\n        const { id, method, params } = jsonRPCRequest\n\n        pendingRequests.set(id, {\n          resolve,\n          reject,\n          sent: false,\n          id,\n          method,\n          params,\n        })\n\n        // Debug log the request being sent\n        clientLog('Sending JSONRPC request:', method, 'id:', id, 'via:', options.clientChannel ? 'MessageChannel' : 'postMessage')\n        \n        // Check if the channel is still valid\n        if (options.clientChannel) {\n          try {\n            options.clientChannel.postMessage(jsonRPCRequest)\n          } catch (e) {\n            console.error('*** MessageChannel postMessage failed:', e)\n            // Channel might be closed, need to reconnect\n            clientLog('MessageChannel appears to be broken, may need to reconnect')\n          }\n        } else if (options.window) {\n          // For cross-origin scenarios, wrap the JSONRPC message\n          options.window.postMessage(\n            {\n              type: UP_PROVIDER_JSONRPC_TYPE,\n              payload: jsonRPCRequest,\n            },\n            (options as any).targetOrigin || '*'\n          )\n        }\n      })\n    })\n\n    const request_ = client.request.bind(client)\n\n    const wrapper = async (method: string, params?: unknown[]) => {\n      await preStartupPromise\n      switch (method) {\n        case 'eth_accounts':\n        case 'eth_requestAccounts':\n          if (allowedAccounts.length > 0) {\n            return allowedAccounts\n          }\n          break\n        case 'wallet_switchEthereumChain': {\n          const { chainId: _chainId } = params?.[0] as { chainId: number | `0x${string}` }\n          if (_chainId) {\n            chainId = Number(_chainId)\n            persist()\n            remote.emit('chainChanged', chainId)\n          }\n          return `0x${chainId.toString(16)}`\n        }\n        case 'eth_chainId':\n          return `0x${chainId.toString(16)}`\n        case 'eth_call':\n          // Is this call is used to evaluate or simulate a transaction then we have to send it to the parent provider.\n          // Otherwise we can send it directly to a configured RPC endpoint.\n          if (rpcUrls.length > 0 && Object.keys((params?.[0] ?? {}) as Record<string, unknown>).every(key => !/^gasPrice|maxFeePerGas|maxPriorityFeePerGas|value$/.test(key))) {\n            clientLog('client direct rpc', rpcUrls, method, params)\n\n            const urls = [...rpcUrls]\n            const errors = []\n            while (urls.length > 0) {\n              const url = urls.shift()\n              try {\n                if (!url) {\n                  throw new Error('No RPC URL found')\n                }\n\n                const result = fetch(url, {\n                  method: 'POST',\n                  headers: {\n                    'Content-Type': 'application/json',\n                  },\n                  body: JSON.stringify({\n                    jsonrpc: '2.0',\n                    id: uuidv4(),\n                    method,\n                    params,\n                  }),\n                }).then(response => {\n                  if (response.ok) {\n                    return response.json()\n                  }\n                  throw new Error('Network response was not ok')\n                })\n\n                return result\n              } catch (error) {\n                // This is a real error log (maybe goes to sentry)\n                console.error('error', error)\n                errors.push(error)\n              }\n            }\n            const err: any = new Error(`All RPC URLs failed: ${errors.map(e => (e as { message: string }).message).join(', ')}`)\n            err.errors = errors\n            throw err\n          }\n      }\n      return request_(method, params)\n    }\n\n    client.request = async (method: string | { method: string; params: unknown[] }, params?: unknown[]) => {\n      const methodName = typeof method === 'string' ? method : method.method\n      switch (methodName) {\n        case 'wallet_revokePermissions':\n          // This is a special case for revoke permissions.\n          if ((allowedAccounts?.length ?? 0) > 0) {\n            allowedAccounts = []\n            persist()\n            remote.emit(\n              'accountsChanged',\n              // Cleanup wrong null or undefined.\n              cleanupAccounts(allowedAccounts)\n            )\n          }\n          if ((contextAccounts?.length ?? 0) > 0) {\n            contextAccounts = []\n            persist()\n            remote.emit(\n              'contextAccountsChanged',\n              // Cleanup wrong null or undefined.\n              cleanupAccounts(contextAccounts)\n            )\n          }\n          remote.emit('disconnect')\n          return null\n      }\n\n      await doSearch(client)\n\n      await startupPromise\n\n      // make it compatible with old and new type RPC.\n      if (typeof method === 'string') {\n        return await wrapper(method, params)\n      }\n      const { method: _method, params: _params } = method\n      return await wrapper(_method, _params)\n    }\n\n    await doSearch(client)\n  }\n\n  const options: UPClientProviderOptions = {\n    chainId: () => chainId,\n    switchChainId: (_chainId: number) => {\n      chainId = _chainId\n      persist()\n      remote.emit('chainChanged', chainId)\n    },\n    restart: () => {},\n    connectEmitted: false,\n    allowedAccounts: () => allowedAccounts,\n    contextAccounts: () => contextAccounts,\n    startupPromise,\n    preStartupPromise,\n    allocateConnection,\n    isPopup: (authURL as { url?: string })?.url !== undefined,\n    isIframe: (authURL as { mode?: string })?.mode === 'iframe',\n  }\n\n  options.restart = function restart() {\n    clientLog('Restarting connection - cleaning up state')\n\n    // Clean up connection state\n    options.window = undefined\n    options.clientChannel = undefined\n    options.connectEmitted = false\n    \n    // Clear the search promise so next connection will set up listeners\n    searchPromise = null\n\n    // Reset the startup promise\n    options.startupPromise = startupPromise = new Promise<void>(resolve => {\n      startupResolve = resolve\n    }).then(() => {\n      remote.emit('initialized')\n    })\n  }\n\n  const remote = createUPClientProvider(options)\n  let searchPromise: Promise<UPClientProvider> | null\n\n  if (authURL && !(authURL instanceof Window)) {\n    authURL.get().then((value: Record<string, unknown>) => {\n      if (value.chainId) {\n        chainId = value.chainId as number\n      }\n      if (value.allowedAccounts) {\n        allowedAccounts = value.allowedAccounts as `0x${string}`[]\n      }\n      if (value.rpcUrls) {\n        rpcUrls = value.rpcUrls as string[]\n      }\n      preStartupResolve()\n    })\n  } else {\n    preStartupResolve()\n  }\n  if (authURL instanceof Window || !authURL || !authURL?.preventRegistration) {\n    // Register the provider as a wallet by announcing it.\n    const info = authURL && !(authURL instanceof Window) ? authURL : undefined\n    const rdns = info?.rdns || 'dev.lukso.auth'\n    const dns = rdns.split('.').reverse().join('.')\n    const providerInfo = {\n      uuid: uuidv5(dns, uuidv5.DNS),\n      name: info?.name || 'UE Universal Profile',\n      icon: info?.icon || `data:image/svg+xml,${encodeURIComponent(image)}`,\n      rdns,\n    }\n\n    // Announce event.\n    const announceEvent = new CustomEvent('eip6963:announceProvider', {\n      detail: Object.freeze({ info: providerInfo, provider: remote }),\n    })\n\n    // The Wallet dispatches an announce event which is heard by\n    // the DApp code that had run earlier\n    window.dispatchEvent(announceEvent)\n\n    // The Wallet listens to the request events which may be\n    // dispatched later and re-dispatches the `EIP6963AnnounceProviderEvent`\n    window.addEventListener('eip6963:requestProvider', () => {\n      window.dispatchEvent(announceEvent)\n    })\n  }\n  const persist = () => {\n    if (authURL && !(authURL instanceof Window)) {\n      authURL.set({\n        chainId,\n        allowedAccounts,\n        rpcUrls,\n      })\n    }\n  }\n  const doSearch = async (client: JSONRPCClient): Promise<UPClientProvider> => {\n    if (searchPromise) {\n      return searchPromise\n    }\n    const activeSearchPromise = findDestination(authURL, remote, options, search)\n      .then(up => {\n        up?.addListener('windowClosed', () => {\n          searchPromise = null\n        })\n        const init:\n          | {\n              chainId: number\n              allowedAccounts: `0x${string}`[]\n              contextAccounts: `0x${string}`[]\n              rpcUrls: string[]\n            }\n          | undefined = options.init\n        if (init) {\n          ;({ chainId, allowedAccounts, contextAccounts, rpcUrls } = init || {})\n          persist()\n        }\n        \n        // If we have initial accounts from the provider initialization message, use them\n        if ((options as any).initialAccounts?.length) {\n          clientLog('Applying initial accounts from provider initialization:', (options as any).initialAccounts)\n          allowedAccounts = (options as any).initialAccounts\n          persist()\n          // Clear the temporary storage\n          delete (options as any).initialAccounts\n        }\n        // Set up message listener based on connection type\n        if (options.clientChannel) {\n          // MessageChannel-based communication (same-origin)\n          clientLog('Setting up MessageChannel listener, channel exists:', !!options.clientChannel)\n          options.clientChannel.addEventListener('message', event => {\n            try {\n              const response = event.data\n              clientLog('client MessageChannel message received:', response)\n              clientLog('Message details - method:', response?.method, 'params:', response?.params, 'id:', response?.id)\n              switch (response.method) {\n                case 'chainChanged':\n                  chainId = response.params[0]\n                  persist()\n                  up.emit('chainChanged', chainId)\n                  return\n                case 'contextAccountsChanged':\n                  if ((contextAccounts?.length ?? 0) !== (response.params?.length ?? 0) || contextAccounts?.some((account, index) => account !== response.params[index])) {\n                    contextAccounts = response.params\n                    up.emit(\n                      'contextAccountsChanged',\n                      // Cleanup wrong null or undefined.\n                      cleanupAccounts(contextAccounts)\n                    )\n                  }\n                  return\n                case 'accountsChanged':\n                  clientLog('Received accountsChanged:', response.params)\n                  if ((allowedAccounts?.length ?? 0) !== (response.params?.length ?? 0) || allowedAccounts?.some((account, index) => account !== response.params[index])) {\n                    clientLog('Updating allowedAccounts from', allowedAccounts, 'to', response.params)\n                    allowedAccounts = response.params\n                    persist()\n                    up.emit(\n                      'accountsChanged',\n                      // Cleanup wrong null or undefined.\n                      cleanupAccounts(allowedAccounts)\n                    )\n                  }\n                  return\n                case 'rpcUrlsChanged':\n                  rpcUrls = response.params\n                  persist()\n                  up.emit('rpcUrls', rpcUrls)\n                  return\n                case 'showPopup':\n                  clientLog('Received showPopup request:', response.params)\n                  if (options.popup) {\n                    const shouldShow = response.params?.[0]\n                    if (shouldShow === true) {\n                      clientLog('Opening modal popup')\n                      options.popup.openModal()\n                    } else if (shouldShow === false) {\n                      clientLog('Closing modal popup')\n                      options.popup.closeModal()\n                    }\n                  } else {\n                    clientLog('No popup available to control')\n                  }\n                  return\n                case 'connect':\n                  up.emit('connect', response.params[0])\n                  return\n                case 'disconnect':\n                  options.connectEmitted = false\n                  options.loginPromise = undefined\n                  if ((allowedAccounts?.length ?? 0) > 0) {\n                    allowedAccounts = []\n                    persist()\n                    up.emit(\n                      'accountsChanged',\n                      // Cleanup wrong null or undefined.\n                      cleanupAccounts(allowedAccounts)\n                    )\n                  }\n                  if ((contextAccounts?.length ?? 0) > 0) {\n                    contextAccounts = []\n                    persist()\n                    up.emit(\n                      'contextAccountsChanged',\n                      // Cleanup wrong null or undefined.\n                      cleanupAccounts(contextAccounts)\n                    )\n                  }\n                  up.emit('disconnect')\n                  return\n              }\n              const item = pendingRequests.get(response.id)\n              clientLog('Response received for id:', response.id, 'found in pending:', !!item, 'method was:', item?.method)\n              if (response.id && item) {\n                const { resolve, reject } = item\n                if (response.result !== undefined) {\n                  client.receive({ ...response, id: item.id }) // Handle the response\n                  resolve() // Resolve the corresponding promise\n                } else if (response.error) {\n                  const { error: _error, jsonrpc } = response\n                  const { method, params, id } = item\n                  const error = {\n                    ..._error,\n                    message: `${_error.message} ${JSON.stringify(method)}(${JSON.stringify(params)})`,\n                  }\n                  // This is a real error log (maybe goes to sentry)\n                  console.error('error', { error, method, params, id, jsonrpc })\n                  client.receive({ ...response, id: item.id })\n                  reject(error) // Reject in case of error\n                }\n                pendingRequests.delete(response.id) // Clean up the request\n              }\n            } catch (error) {\n              // This is a real error log (maybe goes to sentry)\n              console.error('Error parsing JSON RPC response', error, event)\n            }\n          })\n          clientLog('Starting MessageChannel listener')\n          options.clientChannel.start()\n        } else if (options.window) {\n          // Window postMessage-based communication (cross-origin)\n          const messageHandler = (event: MessageEvent) => {\n            // Only handle wrapped JSONRPC messages\n            if (event.data?.type === UP_PROVIDER_JSONRPC_TYPE) {\n              try {\n                const response = event.data.payload\n                clientLog('client (cross-origin)', response)\n                switch (response.method) {\n                  case 'chainChanged':\n                    chainId = response.params[0]\n                    persist()\n                    up.emit('chainChanged', chainId)\n                    return\n                  case 'contextAccountsChanged':\n                    if ((contextAccounts?.length ?? 0) !== (response.params?.length ?? 0) || contextAccounts?.some((account: any, index: number) => account !== response.params[index])) {\n                      contextAccounts = response.params\n                      up.emit('contextAccountsChanged', cleanupAccounts(contextAccounts))\n                    }\n                    return\n                  case 'accountsChanged':\n                    clientLog('Received accountsChanged (cross-origin):', response.params)\n                    if ((allowedAccounts?.length ?? 0) !== (response.params?.length ?? 0) || allowedAccounts?.some((account: any, index: number) => account !== response.params[index])) {\n                      clientLog('Updating allowedAccounts from', allowedAccounts, 'to', response.params)\n                      allowedAccounts = response.params\n                      persist()\n                      up.emit('accountsChanged', cleanupAccounts(allowedAccounts))\n                    }\n                    return\n                  case 'rpcUrlsChanged':\n                    rpcUrls = response.params\n                    persist()\n                    up.emit('rpcUrls', rpcUrls)\n                    return\n                  case 'showPopup':\n                    clientLog('Received showPopup request (cross-origin):', response.params)\n                    if (options.popup) {\n                      const shouldShow = response.params?.[0]\n                      if (shouldShow === true) {\n                        clientLog('Opening modal popup')\n                        options.popup.openModal()\n                      } else if (shouldShow === false) {\n                        clientLog('Closing modal popup')\n                        options.popup.closeModal()\n                      }\n                    } else {\n                      clientLog('No popup available to control')\n                    }\n                    return\n                  case 'connect':\n                    up.emit('connect', response.params[0])\n                    return\n                  case 'disconnect':\n                    options.connectEmitted = false\n                    if ((allowedAccounts?.length ?? 0) > 0) {\n                      allowedAccounts = []\n                      persist()\n                      up.emit('accountsChanged', cleanupAccounts(allowedAccounts))\n                    }\n                    if ((contextAccounts?.length ?? 0) > 0) {\n                      contextAccounts = []\n                      persist()\n                      up.emit('contextAccountsChanged', cleanupAccounts(contextAccounts))\n                    }\n                    up.emit('disconnect')\n                    return\n                }\n                // Handle regular JSONRPC responses\n                const item = pendingRequests.get(response.id)\n                clientLog('Cross-origin response received for id:', response.id, 'found in pending:', !!item, 'method was:', item?.method)\n                if (response.id && item) {\n                  const { resolve, reject } = item\n                  if (response.result !== undefined) {\n                    client.receive({ ...response, id: item.id })\n                    resolve()\n                  } else if (response.error) {\n                    const { error: _error, jsonrpc } = response\n                    const { method, params, id } = item\n                    const error = {\n                      ..._error,\n                      message: `${_error.message} ${JSON.stringify(method)}(${JSON.stringify(params)})`,\n                    }\n                    console.error('error', { error, method, params, id, jsonrpc })\n                    client.receive({ ...response, id: item.id })\n                    reject(error)\n                  }\n                  pendingRequests.delete(response.id)\n                }\n              } catch (error) {\n                console.error('Error parsing wrapped JSON RPC response', error, event.data)\n              }\n            }\n          }\n          window.addEventListener('message', messageHandler)\n        }\n        options.client = client\n        const fn = startupResolve\n        if (fn) {\n          fn()\n        }\n        startupResolve = () => {}\n        return up\n      })\n      .catch(error => {\n        options.client = client\n\n        startupResolve()\n        searchPromise = null\n        throw error\n      })\n      .then(up => {\n        if (!up) {\n          searchPromise = null\n        }\n        return up\n      })\n    searchPromise = activeSearchPromise\n    return activeSearchPromise\n  }\n\n  if (!authURL || !(authURL as { url: string; mode: 'popup' | 'iframe' })?.url || (authURL as { url: string; mode: 'popup' | 'iframe' })?.mode === 'iframe') {\n    allocateConnection()\n  }\n\n  return remote\n}\n\nexport { type UPClientProvider, type UPClientProviderEvents, createClientUPProvider }\n","const image = `<?xml version=\"1.0\" encoding=\"UTF-8\"?><svg version=\"1.1\" viewBox=\"0 0 205 205\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><style type=\"text/css\">\n\t.st0{fill:none;stroke:url(#a);stroke-width:5;stroke-miterlimit:10;}\n\t.st1{fill:none;stroke:url(#SVGID_00000056389333576465390850000010798922027916692147_);stroke-width:5;stroke-miterlimit:10;}\n\t.st2{fill:none;stroke:url(#SVGID_00000051380137365445111330000009167280533949070741_);stroke-width:5;stroke-miterlimit:10;}\n\t.st3{fill:none;stroke:url(#SVGID_00000047778497278181544540000005454496077506244747_);stroke-width:5;stroke-miterlimit:10;}\n\t.st4{fill:none;stroke:url(#SVGID_00000158713292131007947860000004514829925534755714_);stroke-width:5;stroke-miterlimit:10;}\n\t.st5{fill:none;stroke:url(#SVGID_00000176752301671797505420000008656037770344976573_);stroke-width:5;stroke-miterlimit:10;}\n\t.st6{fill:none;stroke:url(#SVGID_00000019668949540468568120000000864275969910642319_);stroke-width:5;stroke-miterlimit:10;}\n\t.st7{fill:none;stroke:url(#SVGID_00000047054428014998274810000000046417757098061213_);stroke-width:5;stroke-miterlimit:10;}\n\t.st8{fill:none;stroke:url(#SVGID_00000022549651360086842380000007881063083396207791_);stroke-width:5;stroke-miterlimit:10;}\n\t.st9{fill:none;stroke:url(#SVGID_00000130631511062807885040000011931776790515364762_);stroke-width:5;stroke-miterlimit:10;}\n\t.st10{fill:none;stroke:url(#SVGID_00000014605678686996040940000017393520465879767969_);stroke-width:5;stroke-miterlimit:10;}\n\t.st11{fill:none;stroke:url(#SVGID_00000163756482267622025550000014979451267598818966_);stroke-width:5;stroke-miterlimit:10;}\n\t.st12{fill:none;stroke:url(#SVGID_00000124141954871206116560000005273572469214934666_);stroke-width:5;stroke-miterlimit:10;}\n\t.st13{fill:none;stroke:url(#SVGID_00000105408899360936988710000010273703361233894794_);stroke-width:5;stroke-miterlimit:10;}\n\t.st14{fill:none;stroke:url(#SVGID_00000105426278926465751030000016934798543375658152_);stroke-width:5;stroke-miterlimit:10;}\n\t.st15{fill:none;stroke:url(#SVGID_00000123402864351232224400000005626520335657750453_);stroke-width:5;stroke-miterlimit:10;}\n\t.st16{fill:none;stroke:url(#SVGID_00000054240225344145864930000004454693569321605311_);stroke-width:5;stroke-miterlimit:10;}\n\t.st17{fill:none;stroke:url(#SVGID_00000165198640681901127460000012866876033927105466_);stroke-width:5;stroke-miterlimit:10;}\n\t.st18{fill:none;stroke:url(#SVGID_00000010296938220999196390000009217749098280550545_);stroke-width:5;stroke-miterlimit:10;}\n\t.st19{fill:none;stroke:url(#SVGID_00000034073387945625344930000006656368762102967742_);stroke-width:5;stroke-miterlimit:10;}\n\t.st20{fill:none;stroke:url(#SVGID_00000176743270661283872710000018309169195545041059_);stroke-width:5;stroke-miterlimit:10;}\n\t.st21{fill:none;stroke:url(#SVGID_00000015315768876778818720000011431544963531332520_);stroke-width:5;stroke-miterlimit:10;}\n\t.st22{fill:none;stroke:url(#SVGID_00000027562111282714744500000005490249511516742272_);stroke-width:5;stroke-miterlimit:10;}\n\t.st23{fill:none;stroke:url(#SVGID_00000127742865247414638530000010753077084961061270_);stroke-width:5;stroke-miterlimit:10;}\n\t.st24{fill:none;stroke:url(#SVGID_00000101789324830174438290000009297370073624241576_);stroke-width:5;stroke-miterlimit:10;}\n\t.st25{fill:none;stroke:url(#SVGID_00000017500845606749358970000015230857459735047856_);stroke-width:5;stroke-miterlimit:10;}\n\t.st26{fill:none;stroke:url(#SVGID_00000091015942850621393280000009022728536804063160_);stroke-width:5;stroke-miterlimit:10;}\n\t.st27{fill:none;stroke:url(#SVGID_00000090989720155308621060000010240571899488221826_);stroke-width:5;stroke-miterlimit:10;}\n\t.st28{fill:none;stroke:url(#SVGID_00000129902600288722924760000008573063894180376961_);stroke-width:5;stroke-miterlimit:10;}\n\t.st29{fill:none;stroke:url(#SVGID_00000058583537738930683450000015023544084554769294_);stroke-width:5;stroke-miterlimit:10;}\n\t.st30{fill:none;stroke:url(#SVGID_00000003804661720899413000000008401752229313256105_);stroke-width:5;stroke-miterlimit:10;}\n\t.st31{fill:none;stroke:url(#SVGID_00000085963063803388969600000003208953804493595038_);stroke-width:5;stroke-miterlimit:10;}\n\t.st32{fill:none;stroke:url(#SVGID_00000072966978096607921080000017898876817739748490_);stroke-width:5;stroke-miterlimit:10;}\n\t.st33{fill:none;stroke:url(#SVGID_00000044868694292747046660000008821631534945180843_);stroke-width:5;stroke-miterlimit:10;}\n\t.st34{fill:none;stroke:url(#SVGID_00000137112799151377606860000014693891205085347256_);stroke-width:5;stroke-miterlimit:10;}\n\t.st35{fill:none;stroke:url(#SVGID_00000002382026647477974920000016183252234771263910_);stroke-width:5;stroke-miterlimit:10;}\n\t.st36{fill:none;stroke:url(#SVGID_00000084525857658817268560000010083959727551026334_);stroke-width:5;stroke-miterlimit:10;}\n\t.st37{fill:none;stroke:url(#SVGID_00000070111086173007299860000009434208121563659443_);stroke-width:5;stroke-miterlimit:10;}\n\t.st38{fill:none;stroke:url(#SVGID_00000102505790783277835730000000964811951744520072_);stroke-width:5;stroke-miterlimit:10;}\n\t.st39{fill:none;stroke:url(#SVGID_00000165915544478628760480000016922512963244969366_);stroke-width:5;stroke-miterlimit:10;}\n\t.st40{fill:none;stroke:url(#SVGID_00000089546558642276323190000005391279568885040006_);stroke-width:5;stroke-miterlimit:10;}\n\t.st41{fill:none;stroke:url(#SVGID_00000167378843446581152770000011707843822981528194_);stroke-width:5;stroke-miterlimit:10;}\n\t.st42{fill:none;stroke:url(#SVGID_00000168119232016106846570000013419701087766081454_);stroke-width:5;stroke-miterlimit:10;}\n\t.st43{fill:none;stroke:url(#SVGID_00000167394825817402548920000002075089606777446556_);stroke-width:5;stroke-miterlimit:10;}\n\t.st44{fill:none;stroke:url(#SVGID_00000084510851761702941550000009477386628738193292_);stroke-width:5;stroke-miterlimit:10;}\n\t.st45{fill:none;stroke:url(#SVGID_00000056408517440310375340000010264108419479253922_);stroke-width:5;stroke-miterlimit:10;}\n\t.st46{fill:none;stroke:url(#SVGID_00000052089677177323945810000003568789998996187573_);stroke-width:5;stroke-miterlimit:10;}\n\t.st47{fill:none;stroke:url(#SVGID_00000014623913530728028500000013543833695712392346_);stroke-width:5;stroke-miterlimit:10;}\n\t.st48{fill:none;stroke:url(#SVGID_00000013154695334869467910000006421302680227263405_);stroke-width:5;stroke-miterlimit:10;}\n\t.st49{fill:none;stroke:url(#SVGID_00000050623051460253816960000007532467332512672433_);stroke-width:5;stroke-miterlimit:10;}\n\t.st50{fill:none;stroke:url(#SVGID_00000134218795595679531370000003351303235943955639_);stroke-width:5;stroke-miterlimit:10;}\n\t.st51{fill:none;stroke:url(#SVGID_00000181057842005773389870000005696612509835399060_);stroke-width:5;stroke-miterlimit:10;}\n\t.st52{fill:none;stroke:url(#SVGID_00000078742114689626592490000017020225732925789618_);stroke-width:5;stroke-miterlimit:10;}\n\t.st53{fill:none;stroke:url(#SVGID_00000028290209729755355380000012203081210844865168_);stroke-width:5;stroke-miterlimit:10;}\n\t.st54{fill:none;stroke:url(#SVGID_00000079455762041076334420000005898854641888466571_);stroke-width:5;stroke-miterlimit:10;}\n\t.st55{fill:none;stroke:url(#SVGID_00000091734002111818624060000017394333686986493568_);stroke-width:5;stroke-miterlimit:10;}\n\t.st56{fill:none;stroke:url(#SVGID_00000111182052283944150350000017412150973607273876_);stroke-width:5;stroke-miterlimit:10;}\n\t.st57{fill:none;stroke:url(#SVGID_00000101065227870351957860000010885497696594366378_);stroke-width:5;stroke-miterlimit:10;}\n\t.st58{fill:none;stroke:url(#SVGID_00000133511354585973938690000010310522060030073753_);stroke-width:5;stroke-miterlimit:10;}\n\t.st59{fill:none;stroke:url(#SVGID_00000165233680036648094120000006698224943178494357_);stroke-width:5;stroke-miterlimit:10;}\n\t.st60{fill:none;stroke:url(#SVGID_00000098904833180917867920000017049053739982670468_);stroke-width:5;stroke-miterlimit:10;}\n\t.st61{fill:none;stroke:url(#SVGID_00000167366533717241253010000012344196281903811732_);stroke-width:5;stroke-miterlimit:10;}\n\t.st62{fill:none;stroke:url(#SVGID_00000142889411660844436240000005312836201473624710_);stroke-width:5;stroke-miterlimit:10;}\n\t.st63{fill:none;stroke:url(#SVGID_00000139269393346137155550000011716049963213405095_);stroke-width:5;stroke-miterlimit:10;}\n\t.st64{fill:none;stroke:url(#SVGID_00000093876980850354128010000014534565552025921462_);stroke-width:5;stroke-miterlimit:10;}\n\t.st65{fill:none;stroke:url(#SVGID_00000136373109140918354470000006171493265636621979_);stroke-width:5;stroke-miterlimit:10;}\n\t.st66{fill:none;stroke:url(#SVGID_00000150077671619754085120000016153201097528477579_);stroke-width:5;stroke-miterlimit:10;}\n\t.st67{fill:none;stroke:url(#SVGID_00000029017252934418598770000000823255553040305052_);stroke-width:5;stroke-miterlimit:10;}\n\t.st68{fill:none;stroke:url(#SVGID_00000112604373331140592300000014777117207542942640_);stroke-width:5;stroke-miterlimit:10;}\n\t.st69{fill:none;stroke:url(#SVGID_00000116946114276402661480000004378529819849870774_);stroke-width:5;stroke-miterlimit:10;}\n\t.st70{fill:none;stroke:url(#SVGID_00000102506886172947022540000017343173005075878812_);stroke-width:5;stroke-miterlimit:10;}\n\t.st71{fill:none;stroke:url(#SVGID_00000124840978928821080400000002281832406117525145_);stroke-width:5;stroke-miterlimit:10;}\n\t.st72{fill:none;stroke:url(#SVGID_00000170245617588902170720000006912587284346141320_);stroke-width:5;stroke-miterlimit:10;}\n\t.st73{fill:none;stroke:url(#SVGID_00000083776943110666405990000011471330538153760389_);stroke-width:5;stroke-miterlimit:10;}\n\t.st74{fill:none;stroke:url(#SVGID_00000146502060470899465010000001250791755231580862_);stroke-width:5;stroke-miterlimit:10;}\n\t.st75{fill:none;stroke:url(#SVGID_00000088819347351791242500000013107193007155670658_);stroke-width:5;stroke-miterlimit:10;}\n\t.st76{fill:none;stroke:url(#SVGID_00000098192921558647243650000011278677112161862294_);stroke-width:5;stroke-miterlimit:10;}\n\t.st77{fill:none;stroke:url(#SVGID_00000042007395515809536850000003183848658102735764_);stroke-width:5;stroke-miterlimit:10;}\n\t.st78{fill:none;stroke:url(#SVGID_00000097490746738385962170000002570786228642433967_);stroke-width:5;stroke-miterlimit:10;}\n\t.st79{fill:none;stroke:url(#SVGID_00000069365943264275782720000017179113781878133889_);stroke-width:5;stroke-miterlimit:10;}\n\t.st80{fill:none;stroke:url(#SVGID_00000034055757277602214150000003488284017013618311_);stroke-width:5;stroke-miterlimit:10;}\n\t.st81{fill:none;stroke:url(#SVGID_00000034777787907783757330000016252589249423194299_);stroke-width:5;stroke-miterlimit:10;}\n\t.st82{fill:none;stroke:url(#SVGID_00000106135745597918267070000000004239942053515183_);stroke-width:5;stroke-miterlimit:10;}\n\t.st83{fill:none;stroke:url(#SVGID_00000145772689669218015590000007105130906213875112_);stroke-width:5;stroke-miterlimit:10;}\n\t.st84{fill:none;stroke:url(#SVGID_00000013891897453760358770000017670402668518874778_);stroke-width:5;stroke-miterlimit:10;}\n\t.st85{fill:none;stroke:url(#SVGID_00000109732427888582968050000015066209310374742680_);stroke-width:5;stroke-miterlimit:10;}\n\t.st86{fill:none;stroke:url(#SVGID_00000047741154486080417310000014664027673370821766_);stroke-width:5;stroke-miterlimit:10;}\n\t.st87{fill:none;stroke:url(#SVGID_00000068635049878208944190000000533216387174909059_);stroke-width:5;stroke-miterlimit:10;}\n\t.st88{fill:none;stroke:url(#SVGID_00000013153300998308834300000001513174756982371207_);stroke-width:5;stroke-miterlimit:10;}\n\t.st89{fill:none;stroke:url(#SVGID_00000106124814921120210160000014679919063178231999_);stroke-width:5;stroke-miterlimit:10;}\n\t.st90{fill:none;stroke:url(#SVGID_00000161619652674751969170000001829736489751934088_);stroke-width:5;stroke-miterlimit:10;}\n\t.st91{fill:none;stroke:url(#SVGID_00000109007922325232383460000003552756348063800755_);stroke-width:5;stroke-miterlimit:10;}\n\t.st92{fill:none;stroke:url(#SVGID_00000111183555827063523980000013185562189890078375_);stroke-width:5;stroke-miterlimit:10;}\n\t.st93{fill:none;stroke:url(#SVGID_00000031165850742261718760000004777964438470868656_);stroke-width:5;stroke-miterlimit:10;}\n\t.st94{fill:none;stroke:url(#SVGID_00000090274996417041406300000004039395265917733272_);stroke-width:5;stroke-miterlimit:10;}\n\t.st95{fill:none;stroke:url(#SVGID_00000065768075922874117940000017538962735675953081_);stroke-width:5;stroke-miterlimit:10;}\n\t.st96{fill:none;stroke:url(#SVGID_00000148646919575503628150000007519633719793660573_);stroke-width:5;stroke-miterlimit:10;}\n\t.st97{fill:none;stroke:url(#SVGID_00000065790763276290639510000000201118417240643772_);stroke-width:5;stroke-miterlimit:10;}\n\t.st98{fill:none;stroke:url(#SVGID_00000075164235789427125460000000104372776398630326_);stroke-width:5;stroke-miterlimit:10;}\n\t.st99{fill:none;stroke:url(#SVGID_00000057864297585687382250000018210493985566754213_);stroke-width:5;stroke-miterlimit:10;}\n\t.st100{fill:none;stroke:url(#SVGID_00000045595445976607013190000008611366245250715571_);stroke-width:5;stroke-miterlimit:10;}\n\t.st101{fill:none;stroke:url(#SVGID_00000182523556723523056900000003483506746862807217_);stroke-width:5;stroke-miterlimit:10;}\n\t.st102{fill:none;stroke:#757EB4;stroke-width:5;stroke-miterlimit:10;}\n\t.st103{fill:none;stroke:url(#SVGID_00000128453970100024162880000006547400476427467172_);stroke-width:5;stroke-miterlimit:10;}\n\t.st104{fill:none;stroke:url(#SVGID_00000125577602961606391520000010114338921627474585_);stroke-width:5;stroke-miterlimit:10;}\n\t.st105{fill:none;stroke:url(#SVGID_00000043456621670713235080000002553250403372169349_);stroke-width:5;stroke-miterlimit:10;}\n\t.st106{fill:none;stroke:url(#SVGID_00000127733790326717246900000007594342496987171232_);stroke-width:5;stroke-miterlimit:10;}\n\t.st107{fill:none;stroke:url(#SVGID_00000134231686295055524420000015061697689259460504_);stroke-width:5;stroke-miterlimit:10;}\n\t.st108{fill:none;stroke:url(#SVGID_00000108995926887150032590000005303979745435875213_);stroke-width:5;stroke-miterlimit:10;}\n\t.st109{fill:none;stroke:url(#SVGID_00000081642644150793862560000002022914590133615540_);stroke-width:5;stroke-miterlimit:10;}\n\t.st110{fill:none;stroke:url(#SVGID_00000041991226162332262860000001184417984240518041_);stroke-width:5;stroke-miterlimit:10;}\n\t.st111{fill:none;stroke:url(#SVGID_00000093893608351242965810000000487807601985913227_);stroke-width:5;stroke-miterlimit:10;}\n\t.st112{fill:none;stroke:url(#SVGID_00000034770163552112952210000007871950429685271683_);stroke-width:5;stroke-miterlimit:10;}\n\t.st113{fill:none;stroke:url(#SVGID_00000059989381983490265650000002034466747055463810_);stroke-width:5;stroke-miterlimit:10;}\n\t.st114{fill:none;stroke:url(#SVGID_00000125583506688367613870000018154196008315070119_);stroke-width:5;stroke-miterlimit:10;}\n\t.st115{fill:none;stroke:url(#SVGID_00000117646387355380661340000009334399988584140206_);stroke-width:5;stroke-miterlimit:10;}\n\t.st116{fill:none;stroke:url(#SVGID_00000013156276316353635230000016654269340791251641_);stroke-width:5;stroke-miterlimit:10;}\n\t.st117{fill:none;stroke:url(#SVGID_00000088845125758224684120000011621715175913805477_);stroke-width:5;stroke-miterlimit:10;}\n\t.st118{fill:none;stroke:url(#SVGID_00000062915054326126352380000010623612336048119957_);stroke-width:5;stroke-miterlimit:10;}\n\t.st119{fill:none;stroke:url(#SVGID_00000003806561593149220910000013267903521237113258_);stroke-width:5;stroke-miterlimit:10;}\n\t.st120{fill:none;stroke:url(#SVGID_00000134214034514871549610000003118520003330203270_);stroke-width:5;stroke-miterlimit:10;}\n\t.st121{fill:none;stroke:url(#SVGID_00000093167656965168574160000012240056245346630052_);stroke-width:5;stroke-miterlimit:10;}\n\t.st122{fill:none;stroke:url(#SVGID_00000174562443250177689320000005287945487715485063_);stroke-width:5;stroke-miterlimit:10;}\n\t.st123{fill:none;stroke:url(#SVGID_00000052817053787295771590000006134066193763166905_);stroke-width:5;stroke-miterlimit:10;}\n\t.st124{fill:none;stroke:url(#SVGID_00000036946792550920911210000007255713389976622504_);stroke-width:5;stroke-miterlimit:10;}\n\t.st125{fill:none;stroke:url(#SVGID_00000122686371442761706510000010773293858743901092_);stroke-width:5;stroke-miterlimit:10;}\n\t.st126{fill:none;stroke:url(#SVGID_00000183249709875249145880000016011354232562626727_);stroke-width:5;stroke-miterlimit:10;}\n\t.st127{fill:none;stroke:url(#SVGID_00000100358747981352865260000010977000215790911415_);stroke-width:5;stroke-miterlimit:10;}\n\t.st128{fill:none;stroke:url(#SVGID_00000160186203872389779700000007114474660579329686_);stroke-width:5;stroke-miterlimit:10;}\n\t.st129{fill:none;stroke:url(#SVGID_00000013160889052283306520000003996384242507041700_);stroke-width:5;stroke-miterlimit:10;}\n\t.st130{fill:none;stroke:url(#SVGID_00000127015761217743178200000016662411473063658123_);stroke-width:5;stroke-miterlimit:10;}\n\t.st131{fill:none;stroke:url(#SVGID_00000052802537056054924190000005603056556094689201_);stroke-width:5;stroke-miterlimit:10;}\n\t.st132{fill:none;stroke:url(#SVGID_00000114071916312341561010000005455098366248001423_);stroke-width:5;stroke-miterlimit:10;}\n\t.st133{fill:none;stroke:url(#SVGID_00000171714174242819446000000009744124901989503914_);stroke-width:5;stroke-miterlimit:10;}\n\t.st134{fill:none;stroke:url(#SVGID_00000043417465350265472470000017938710855653009580_);stroke-width:5;stroke-miterlimit:10;}\n\t.st135{fill:none;stroke:url(#SVGID_00000011018780746824428810000004261442624854604185_);stroke-width:5;stroke-miterlimit:10;}\n\t.st136{fill:none;stroke:url(#SVGID_00000134957448699195559800000006934429449926047130_);stroke-width:5;stroke-miterlimit:10;}\n\t.st137{fill:none;stroke:url(#SVGID_00000055677743805044780280000016506373066881847960_);stroke-width:5;stroke-miterlimit:10;}\n\t.st138{fill:none;stroke:url(#SVGID_00000038410718236291877190000018440957628807735961_);stroke-width:5;stroke-miterlimit:10;}\n\t.st139{fill:none;stroke:url(#SVGID_00000100352911268009459830000001175268917907061157_);stroke-width:5;stroke-miterlimit:10;}\n\t.st140{fill:none;stroke:url(#SVGID_00000010284569549211818030000000679282970688672900_);stroke-width:5;stroke-miterlimit:10;}\n\t.st141{fill:none;stroke:url(#SVGID_00000084492680296000541010000000530088054040073856_);stroke-width:5;stroke-miterlimit:10;}\n\t.st142{fill:none;stroke:url(#SVGID_00000029754489504380711860000009440471718934714813_);stroke-width:5;stroke-miterlimit:10;}\n\t.st143{fill:none;stroke:url(#SVGID_00000139252841737307596300000002431117634795570068_);stroke-width:5;stroke-miterlimit:10;}\n\t.st144{fill:none;stroke:url(#SVGID_00000054239915491683840770000005430746058649738664_);stroke-width:5;stroke-miterlimit:10;}\n\t.st145{fill:none;stroke:url(#SVGID_00000132070142119578294570000010307998783161211285_);stroke-width:5;stroke-miterlimit:10;}\n\t.st146{fill:none;stroke:url(#SVGID_00000029017975496332145100000010423097961941432458_);stroke-width:5;stroke-miterlimit:10;}\n\t.st147{fill:none;stroke:url(#SVGID_00000160171018853486708930000017245322569085794967_);stroke-width:5;stroke-miterlimit:10;}\n\t.st148{fill:none;stroke:url(#SVGID_00000115514444799447629560000006038347170468476858_);stroke-width:5;stroke-miterlimit:10;}\n\t.st149{fill:none;stroke:url(#SVGID_00000073681575907552194520000004453507388697710253_);stroke-width:5;stroke-miterlimit:10;}\n\t.st150{fill:none;stroke:url(#SVGID_00000008131888057925507410000014135654435796038547_);stroke-width:5;stroke-miterlimit:10;}\n\t.st151{fill:none;stroke:url(#SVGID_00000114766854745708244490000003491137928265155742_);stroke-width:5;stroke-miterlimit:10;}\n\t.st152{fill:none;stroke:url(#SVGID_00000137822457993682600630000008116636510510267270_);stroke-width:5;stroke-miterlimit:10;}\n\t.st153{fill:none;stroke:url(#SVGID_00000065787355192961699780000002216316436222616741_);stroke-width:5;stroke-miterlimit:10;}\n\t.st154{fill:none;stroke:url(#SVGID_00000158751041575611506820000000021107695557966012_);stroke-width:5;stroke-miterlimit:10;}\n\t.st155{fill:none;stroke:url(#SVGID_00000080919362883751060930000016023686073584905866_);stroke-width:5;stroke-miterlimit:10;}\n\t.st156{fill:none;stroke:url(#SVGID_00000135680139157801466770000009616510136904981171_);stroke-width:5;stroke-miterlimit:10;}\n\t.st157{fill:none;stroke:url(#SVGID_00000139295392992611807310000002273691859038170785_);stroke-width:5;stroke-miterlimit:10;}\n\t.st158{fill:none;stroke:url(#SVGID_00000124854444813742982250000016827023168389575316_);stroke-width:5;stroke-miterlimit:10;}\n\t.st159{fill:none;stroke:url(#SVGID_00000051362107904549324810000013420088189427568015_);stroke-width:5;stroke-miterlimit:10;}\n\t.st160{fill:none;stroke:url(#SVGID_00000069400308146107686460000011750810831821115063_);stroke-width:5;stroke-miterlimit:10;}\n\t.st161{fill:none;stroke:url(#SVGID_00000060709860605794185320000003429035099515703985_);stroke-width:5;stroke-miterlimit:10;}\n\t.st162{fill:none;stroke:url(#SVGID_00000107578078134441303370000007124048552455332515_);stroke-width:5;stroke-miterlimit:10;}\n\t.st163{fill:none;stroke:url(#SVGID_00000134221215268321318030000013626773960072020394_);stroke-width:5;stroke-miterlimit:10;}\n\t.st164{fill:none;stroke:url(#SVGID_00000102543157236958984970000012940659604655003539_);stroke-width:5;stroke-miterlimit:10;}\n\t.st165{fill:none;stroke:url(#SVGID_00000111157975911645384150000011796497375106214280_);stroke-width:5;stroke-miterlimit:10;}\n\t.st166{fill:none;stroke:url(#SVGID_00000095329415028924284430000008428684107072686505_);stroke-width:5;stroke-miterlimit:10;}\n\t.st167{fill:none;stroke:url(#SVGID_00000014621035806541151170000000467916282088546743_);stroke-width:5;stroke-miterlimit:10;}\n\t.st168{fill:none;stroke:url(#SVGID_00000172411910706464202030000007880271469304968856_);stroke-width:5;stroke-miterlimit:10;}\n\t.st169{fill:none;stroke:url(#SVGID_00000097467632177454747130000015920272161035589532_);stroke-width:5;stroke-miterlimit:10;}\n\t.st170{fill:none;stroke:url(#SVGID_00000018224847520583304110000010375332986654869179_);stroke-width:5;stroke-miterlimit:10;}\n\t.st171{fill:none;stroke:url(#SVGID_00000153683488792605754090000013964904151400417215_);stroke-width:5;stroke-miterlimit:10;}\n\t.st172{fill:none;stroke:url(#SVGID_00000096742079297961558140000013113367150666350734_);stroke-width:5;stroke-miterlimit:10;}\n\t.st173{fill:none;stroke:url(#SVGID_00000109026582917991442220000015325860948827979400_);stroke-width:5;stroke-miterlimit:10;}\n\t.st174{fill:none;stroke:url(#SVGID_00000072269672573927719180000006184419712149187749_);stroke-width:5;stroke-miterlimit:10;}\n\t.st175{fill:none;stroke:url(#SVGID_00000031913224269419552560000001186399608601714059_);stroke-width:5;stroke-miterlimit:10;}\n\t.st176{fill:none;stroke:url(#SVGID_00000090275425151096046310000009247821072575841430_);stroke-width:5;stroke-miterlimit:10;}\n\t.st177{fill:none;stroke:url(#SVGID_00000157281797883690809350000001707011766559905155_);stroke-width:5;stroke-miterlimit:10;}\n\t.st178{fill:none;stroke:url(#SVGID_00000001626050341965524590000014181443492502809737_);stroke-width:5;stroke-miterlimit:10;}\n\t.st179{fill:none;stroke:url(#SVGID_00000085235159434903551850000001914556320944674439_);stroke-width:5;stroke-miterlimit:10;}\n\t.st180{fill:none;stroke:url(#SVGID_00000096758145765871038250000011271958903353428378_);stroke-width:5;stroke-miterlimit:10;}\n\t.st181{fill:none;stroke:url(#SVGID_00000114782939256225768450000008730694137816860303_);stroke-width:5;stroke-miterlimit:10;}\n\t.st182{fill:none;stroke:url(#SVGID_00000107554747513931422210000002541858802449964945_);stroke-width:5;stroke-miterlimit:10;}\n\t.st183{fill:none;stroke:url(#SVGID_00000116931614747529790790000010855112819507358875_);stroke-width:5;stroke-miterlimit:10;}\n\t.st184{fill:none;stroke:url(#SVGID_00000105427415909295254790000000185738707286971008_);stroke-width:5;stroke-miterlimit:10;}\n\t.st185{fill:none;stroke:url(#SVGID_00000093894616006804096910000000639750542531299007_);stroke-width:5;stroke-miterlimit:10;}\n\t.st186{fill:none;stroke:url(#SVGID_00000063606025823076849130000009664112137161458359_);stroke-width:5;stroke-miterlimit:10;}\n\t.st187{fill:none;stroke:url(#SVGID_00000070799235951359580930000001361700777049503385_);stroke-width:5;stroke-miterlimit:10;}\n\t.st188{fill:none;stroke:url(#SVGID_00000163781170011613723670000004132486132229631162_);stroke-width:5;stroke-miterlimit:10;}\n\t.st189{fill:none;stroke:url(#SVGID_00000067951913084904503850000003097681837288707201_);stroke-width:5;stroke-miterlimit:10;}\n\t.st190{fill:none;stroke:url(#SVGID_00000059268952404469204420000010043136548961333149_);stroke-width:5;stroke-miterlimit:10;}\n\t.st191{fill:none;stroke:url(#SVGID_00000098937868177210759360000008850743351685897379_);stroke-width:5;stroke-miterlimit:10;}\n\t.st192{fill:none;stroke:url(#SVGID_00000124148318205264145110000011011237420395773848_);stroke-width:5;stroke-miterlimit:10;}\n\t.st193{fill:none;stroke:url(#SVGID_00000166647236732747623210000003974681264039691157_);stroke-width:5;stroke-miterlimit:10;}\n\t.st194{fill:none;stroke:url(#SVGID_00000004527251796857997850000017231720107554392742_);stroke-width:5;stroke-miterlimit:10;}\n\t.st195{fill:none;stroke:url(#SVGID_00000156548031804148300400000004347254282148332674_);stroke-width:5;stroke-miterlimit:10;}\n\t.st196{fill:none;stroke:url(#SVGID_00000111160500733791294190000016105503294234803387_);stroke-width:5;stroke-miterlimit:10;}\n\t.st197{fill:none;stroke:url(#SVGID_00000008107883777863030950000006104525450370205858_);stroke-width:5;stroke-miterlimit:10;}\n\t.st198{fill:none;stroke:url(#SVGID_00000144324191436601783660000015887365208115143040_);stroke-width:5;stroke-miterlimit:10;}\n\t.st199{fill:none;stroke:url(#SVGID_00000066517959197972028490000009881444364898800569_);stroke-width:5;stroke-miterlimit:10;}\n\t.st200{fill:none;stroke:url(#SVGID_00000113345733670153472110000003330974647446081666_);stroke-width:5;stroke-miterlimit:10;}\n\t.st201{fill:none;stroke:url(#SVGID_00000151512322988953826230000000068956367469679745_);stroke-width:5;stroke-miterlimit:10;}\n\t.st202{fill:none;stroke:url(#SVGID_00000088828810278578599610000007670743873603350939_);stroke-width:5;stroke-miterlimit:10;}\n\t.st203{fill:none;stroke:url(#SVGID_00000001653351069891019140000013659089616142036138_);stroke-width:5;stroke-miterlimit:10;}\n\t.st204{clip-path:url(#SVGID_00000063600701861291676710000014449124631234970538_);}\n\t.st205{fill:#989898;}\n\t.st206{fill:#A2A1A1;}\n\t.st207{fill:#ACABAA;}\n\t.st208{fill:#B6B4B4;}\n\t.st209{fill:#C0BFBE;}\n\t.st210{fill:#CCCACA;}\n\t.st211{fill:#D7D5D5;}\n\t.st212{fill:#E3E1E1;}\n\t.st213{fill:#EFEEED;}\n\t.st214{fill:#FFFFFF;}\n\t.st215{fill:#F6F5F5;}\n\t.st216{fill:#F0EFEF;}\n\t.st217{fill:#EBEAE9;}\n\t.st218{fill:#E5E4E4;}\n\t.st219{fill:#E0DFDF;}\n\t.st220{fill:#DBDADA;}\n\t.st221{fill:#D5D5D5;}\n\t.st222{fill:#D1D1D1;}\n\t.st223{fill:#CCCBCB;}\n</style><g transform=\"translate(-25.5,-25.5)\"><linearGradient id=\"a\" x1=\"66.676\" x2=\"189.32\" y1=\"21.784\" y2=\"234.22\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#414A73\" offset=\"1\"/></linearGradient><path class=\"st0\" d=\"m183.14 228h-110.28c-24.67 0-44.86-20.19-44.86-44.86v-110.28c0-24.67 20.19-44.86 44.86-44.86h110.28c24.67 0 44.86 20.19 44.86 44.86v110.28c0 24.67-20.19 44.86-44.86 44.86z\" stroke=\"url(#a)\"/><linearGradient id=\"bn\" x1=\"66.795\" x2=\"189.21\" y1=\"21.989\" y2=\"234.01\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#414A73\" offset=\"1\"/></linearGradient><path d=\"m183.03 227.8h-110.06c-24.62 0-44.77-20.15-44.77-44.77v-110.06c0-24.62 20.15-44.77 44.77-44.77h110.06c24.62 0 44.77 20.15 44.77 44.77v110.06c0 24.63-20.14 44.77-44.77 44.77z\" fill=\"none\" stroke=\"url(#bn)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cz\" x1=\"66.914\" x2=\"189.09\" y1=\"22.195\" y2=\"233.8\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#414A73\" offset=\"1\"/></linearGradient><path d=\"m182.92 227.6h-109.84c-24.58 0-44.68-20.11-44.68-44.68v-109.84c0-24.58 20.1-44.68 44.68-44.68h109.84c24.58 0 44.68 20.11 44.68 44.68v109.84c0 24.58-20.1 44.68-44.68 44.68z\" fill=\"none\" stroke=\"url(#cz)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fj\" x1=\"67.033\" x2=\"188.97\" y1=\"22.401\" y2=\"233.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424A74\" offset=\"1\"/></linearGradient><path d=\"m182.81 227.41h-109.62c-24.53 0-44.59-20.07-44.59-44.59v-109.63c0-24.53 20.07-44.59 44.59-44.59h109.63c24.53 0 44.59 20.07 44.59 44.59v109.63c0 24.52-20.07 44.59-44.6 44.59z\" fill=\"none\" stroke=\"url(#fj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ey\" x1=\"67.151\" x2=\"188.85\" y1=\"22.607\" y2=\"233.39\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424A74\" offset=\"1\"/></linearGradient><path d=\"m182.7 227.21h-109.4c-24.48 0-44.5-20.03-44.5-44.5v-109.41c0-24.48 20.03-44.5 44.5-44.5h109.4c24.48 0 44.5 20.03 44.5 44.5v109.4c0.01 24.48-20.02 44.51-44.5 44.51z\" fill=\"none\" stroke=\"url(#ey)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ep\" x1=\"67.27\" x2=\"188.73\" y1=\"22.813\" y2=\"233.19\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424B74\" offset=\"1\"/></linearGradient><path d=\"m182.59 227.01h-109.18c-24.43 0-44.42-19.99-44.42-44.42v-109.18c0-24.43 19.99-44.42 44.42-44.42h109.19c24.43 0 44.42 19.99 44.42 44.42v109.19c-0.01 24.42-20 44.41-44.43 44.41z\" fill=\"none\" stroke=\"url(#ep)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"j\" x1=\"67.389\" x2=\"188.61\" y1=\"23.019\" y2=\"232.98\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424B74\" offset=\"1\"/></linearGradient><path d=\"m182.49 226.81h-108.98c-24.38 0-44.33-19.95-44.33-44.33v-108.97c0-24.38 19.95-44.33 44.33-44.33h108.97c24.38 0 44.33 19.95 44.33 44.33v108.97c0 24.39-19.94 44.33-44.32 44.33z\" fill=\"none\" stroke=\"url(#j)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cw\" x1=\"67.508\" x2=\"188.49\" y1=\"23.225\" y2=\"232.78\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424B75\" offset=\"1\"/></linearGradient><path d=\"m182.38 226.61h-108.76c-24.33 0-44.24-19.91-44.24-44.24v-108.75c0-24.33 19.91-44.24 44.24-44.24h108.75c24.33 0 44.24 19.91 44.24 44.24v108.75c0 24.34-19.9 44.24-44.23 44.24z\" fill=\"none\" stroke=\"url(#cw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eq\" x1=\"67.627\" x2=\"188.37\" y1=\"23.431\" y2=\"232.57\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#424B75\" offset=\"1\"/></linearGradient><path d=\"m182.27 226.42h-108.54c-24.28 0-44.15-19.87-44.15-44.15v-108.54c0-24.28 19.87-44.15 44.15-44.15h108.54c24.28 0 44.15 19.87 44.15 44.15v108.54c0 24.28-19.87 44.15-44.15 44.15z\" fill=\"none\" stroke=\"url(#eq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eg\" x1=\"67.746\" x2=\"188.25\" y1=\"23.637\" y2=\"232.36\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#434B75\" offset=\"1\"/></linearGradient><path d=\"m182.16 226.22h-108.32c-24.23 0-44.06-19.83-44.06-44.06v-108.32c0-24.23 19.83-44.06 44.06-44.06h108.32c24.23 0 44.06 19.83 44.06 44.06v108.32c0 24.23-19.83 44.06-44.06 44.06z\" fill=\"none\" stroke=\"url(#eg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ag\" x1=\"67.865\" x2=\"188.14\" y1=\"23.843\" y2=\"232.16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#434C76\" offset=\"1\"/></linearGradient><path d=\"m182.05 226.02h-108.1c-24.18 0-43.97-19.79-43.97-43.97v-108.1c0-24.18 19.79-43.97 43.97-43.97h108.1c24.18 0 43.97 19.79 43.97 43.97v108.1c0 24.18-19.79 43.97-43.97 43.97z\" fill=\"none\" stroke=\"url(#ag)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"i\" x1=\"67.983\" x2=\"188.02\" y1=\"24.048\" y2=\"231.95\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#434C76\" offset=\"1\"/></linearGradient><path d=\"m181.94 225.82h-107.88c-24.14 0-43.88-19.75-43.88-43.88v-107.88c0-24.14 19.75-43.88 43.88-43.88h107.88c24.14 0 43.88 19.75 43.88 43.88v107.88c0 24.14-19.74 43.88-43.88 43.88z\" fill=\"none\" stroke=\"url(#i)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gp\" x1=\"68.102\" x2=\"187.9\" y1=\"24.254\" y2=\"231.75\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#434C76\" offset=\"1\"/></linearGradient><path d=\"m181.83 225.63h-107.66c-24.09 0-43.79-19.71-43.79-43.79v-107.67c0-24.09 19.71-43.79 43.79-43.79h107.66c24.09 0 43.79 19.71 43.79 43.79v107.66c0.01 24.09-19.7 43.8-43.79 43.8z\" fill=\"none\" stroke=\"url(#gp)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"e\" x1=\"68.221\" x2=\"187.78\" y1=\"24.46\" y2=\"231.54\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#434C76\" offset=\"1\"/></linearGradient><path d=\"m181.72 225.43h-107.44c-24.04 0-43.71-19.67-43.71-43.71v-107.44c0-24.04 19.67-43.71 43.71-43.71h107.44c24.04 0 43.71 19.67 43.71 43.71v107.44c0 24.04-19.67 43.71-43.71 43.71z\" fill=\"none\" stroke=\"url(#e)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eo\" x1=\"68.34\" x2=\"187.66\" y1=\"24.666\" y2=\"231.33\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444C76\" offset=\"1\"/></linearGradient><path d=\"m181.61 225.23h-107.22c-23.99 0-43.62-19.63-43.62-43.62v-107.22c0-23.99 19.63-43.62 43.62-43.62h107.23c23.99 0 43.62 19.63 43.62 43.62v107.23c-0.01 23.98-19.64 43.61-43.63 43.61z\" fill=\"none\" stroke=\"url(#eo)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ea\" x1=\"68.459\" x2=\"187.54\" y1=\"24.872\" y2=\"231.13\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444C77\" offset=\"1\"/></linearGradient><path d=\"m181.5 225.03h-107c-23.94 0-43.53-19.59-43.53-43.53v-107c0-23.94 19.59-43.53 43.53-43.53h107c23.94 0 43.53 19.59 43.53 43.53v107c0 23.94-19.59 43.53-43.53 43.53z\" fill=\"none\" stroke=\"url(#ea)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cp\" x1=\"68.578\" x2=\"187.42\" y1=\"25.078\" y2=\"230.92\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444C77\" offset=\"1\"/></linearGradient><path d=\"m181.39 224.83h-106.78c-23.89 0-43.44-19.55-43.44-43.44v-106.78c0-23.89 19.55-43.44 43.44-43.44h106.79c23.89 0 43.44 19.55 43.44 43.44v106.79c-0.01 23.89-19.55 43.43-43.45 43.43z\" fill=\"none\" stroke=\"url(#cp)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gm\" x1=\"68.697\" x2=\"187.3\" y1=\"25.284\" y2=\"230.72\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444C77\" offset=\"1\"/></linearGradient><path d=\"m181.29 224.64h-106.58c-23.84 0-43.35-19.51-43.35-43.35v-106.58c0-23.84 19.51-43.35 43.35-43.35h106.57c23.84 0 43.35 19.51 43.35 43.35v106.57c0.01 23.85-19.5 43.36-43.34 43.36z\" fill=\"none\" stroke=\"url(#gm)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fy\" x1=\"68.816\" x2=\"187.18\" y1=\"25.49\" y2=\"230.51\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444D77\" offset=\"1\"/></linearGradient><path d=\"m181.18 224.44h-106.36c-23.79 0-43.26-19.47-43.26-43.26v-106.36c0-23.79 19.47-43.26 43.26-43.26h106.35c23.79 0 43.26 19.47 43.26 43.26v106.35c0.01 23.8-19.46 43.27-43.25 43.27z\" fill=\"none\" stroke=\"url(#fy)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dn\" x1=\"68.935\" x2=\"187.07\" y1=\"25.696\" y2=\"230.3\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#444D78\" offset=\"1\"/></linearGradient><path d=\"m181.07 224.24h-106.14c-23.75 0-43.17-19.43-43.17-43.17v-106.14c0-23.75 19.43-43.17 43.17-43.17h106.13c23.75 0 43.17 19.43 43.17 43.17v106.13c0.01 23.75-19.42 43.18-43.16 43.18z\" fill=\"none\" stroke=\"url(#dn)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fi\" x1=\"69.053\" x2=\"186.95\" y1=\"25.902\" y2=\"230.1\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454D78\" offset=\"1\"/></linearGradient><path d=\"m180.96 224.04h-105.92c-23.7 0-43.08-19.39-43.08-43.08v-105.92c0-23.7 19.39-43.08 43.08-43.08h105.92c23.7 0 43.08 19.39 43.08 43.08v105.92c0 23.69-19.39 43.08-43.08 43.08z\" fill=\"none\" stroke=\"url(#fi)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dc\" x1=\"69.172\" x2=\"186.83\" y1=\"26.107\" y2=\"229.89\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454D78\" offset=\"1\"/></linearGradient><path d=\"m180.85 223.84h-105.7c-23.65 0-43-19.35-43-43v-105.69c0-23.65 19.35-43 43-43h105.7c23.65 0 43 19.35 43 43v105.7c-0.01 23.65-19.35 42.99-43 42.99z\" fill=\"none\" stroke=\"url(#dc)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"di\" x1=\"69.291\" x2=\"186.71\" y1=\"26.313\" y2=\"229.69\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454D79\" offset=\"1\"/></linearGradient><path d=\"m180.74 223.65h-105.48c-23.6 0-42.91-19.31-42.91-42.91v-105.48c0-23.6 19.31-42.91 42.91-42.91h105.48c23.6 0 42.91 19.31 42.91 42.91v105.48c0 23.6-19.31 42.91-42.91 42.91z\" fill=\"none\" stroke=\"url(#di)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"by\" x1=\"69.41\" x2=\"186.59\" y1=\"26.519\" y2=\"229.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454D79\" offset=\"1\"/></linearGradient><path d=\"m180.63 223.45h-105.26c-23.55 0-42.82-19.27-42.82-42.82v-105.26c0-23.55 19.27-42.82 42.82-42.82h105.26c23.55 0 42.82 19.27 42.82 42.82v105.26c0 23.55-19.27 42.82-42.82 42.82z\" fill=\"none\" stroke=\"url(#by)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gn\" x1=\"69.529\" x2=\"186.47\" y1=\"26.725\" y2=\"229.27\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454D79\" offset=\"1\"/></linearGradient><path d=\"m180.52 223.25h-105.04c-23.5 0-42.73-19.23-42.73-42.73v-105.04c0-23.5 19.23-42.73 42.73-42.73h105.04c23.5 0 42.73 19.23 42.73 42.73v105.04c0 23.5-19.23 42.73-42.73 42.73z\" fill=\"none\" stroke=\"url(#gn)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bu\" x1=\"69.648\" x2=\"186.35\" y1=\"26.931\" y2=\"229.07\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#454E79\" offset=\"1\"/></linearGradient><path d=\"m180.41 223.05h-104.82c-23.45 0-42.64-19.19-42.64-42.64v-104.82c0-23.45 19.19-42.64 42.64-42.64h104.83c23.45 0 42.64 19.19 42.64 42.64v104.83c-0.01 23.44-19.2 42.63-42.65 42.63z\" fill=\"none\" stroke=\"url(#bu)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gb\" x1=\"69.767\" x2=\"186.23\" y1=\"27.137\" y2=\"228.86\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464E7A\" offset=\"1\"/></linearGradient><path d=\"m180.3 222.86h-104.6c-23.4 0-42.55-19.15-42.55-42.55v-104.61c0-23.4 19.15-42.55 42.55-42.55h104.6c23.4 0 42.55 19.15 42.55 42.55v104.6c0.01 23.41-19.14 42.56-42.55 42.56z\" fill=\"none\" stroke=\"url(#gb)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cl\" x1=\"69.886\" x2=\"186.11\" y1=\"27.343\" y2=\"228.66\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464E7A\" offset=\"1\"/></linearGradient><path d=\"m180.19 222.66h-104.38c-23.35 0-42.46-19.11-42.46-42.46v-104.39c0-23.35 19.11-42.46 42.46-42.46h104.39c23.35 0 42.46 19.11 42.46 42.46v104.39c0 23.35-19.11 42.46-42.47 42.46z\" fill=\"none\" stroke=\"url(#cl)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fx\" x1=\"70.004\" x2=\"186\" y1=\"27.549\" y2=\"228.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464E7A\" offset=\"1\"/></linearGradient><path d=\"m180.09 222.46h-104.18c-23.31 0-42.37-19.07-42.37-42.37v-104.18c0-23.31 19.07-42.37 42.37-42.37h104.17c23.31 0 42.37 19.07 42.37 42.37v104.17c0.01 23.31-19.06 42.38-42.36 42.38z\" fill=\"none\" stroke=\"url(#fx)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bd\" x1=\"70.123\" x2=\"185.88\" y1=\"27.755\" y2=\"228.25\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464F7A\" offset=\"1\"/></linearGradient><path d=\"m179.98 222.26h-103.96c-23.26 0-42.29-19.03-42.29-42.29v-103.95c0-23.26 19.03-42.29 42.29-42.29h103.95c23.26 0 42.29 19.03 42.29 42.29v103.95c0 23.26-19.03 42.29-42.28 42.29z\" fill=\"none\" stroke=\"url(#bd)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ei\" x1=\"70.242\" x2=\"185.76\" y1=\"27.961\" y2=\"228.04\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464F7B\" offset=\"1\"/></linearGradient><path d=\"m179.87 222.06h-103.74c-23.21 0-42.2-18.99-42.2-42.2v-103.73c0-23.21 18.99-42.2 42.2-42.2h103.73c23.21 0 42.2 18.99 42.2 42.2v103.73c0 23.22-18.98 42.2-42.19 42.2z\" fill=\"none\" stroke=\"url(#ei)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bt\" x1=\"70.361\" x2=\"185.64\" y1=\"28.166\" y2=\"227.83\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#464F7B\" offset=\"1\"/></linearGradient><path d=\"m179.76 221.87h-103.52c-23.16 0-42.11-18.95-42.11-42.11v-103.52c0-23.16 18.95-42.11 42.11-42.11h103.52c23.16 0 42.11 18.95 42.11 42.11v103.52c0 23.16-18.95 42.11-42.11 42.11z\" fill=\"none\" stroke=\"url(#bt)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ap\" x1=\"70.48\" x2=\"185.52\" y1=\"28.372\" y2=\"227.63\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#474F7B\" offset=\"1\"/></linearGradient><path d=\"m179.65 221.67h-103.3c-23.11 0-42.02-18.91-42.02-42.02v-103.3c0-23.11 18.91-42.02 42.02-42.02h103.3c23.11 0 42.02 18.91 42.02 42.02v103.3c0 23.11-18.91 42.02-42.02 42.02z\" fill=\"none\" stroke=\"url(#ap)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cu\" x1=\"70.599\" x2=\"185.4\" y1=\"28.578\" y2=\"227.42\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#474F7B\" offset=\"1\"/></linearGradient><path d=\"m179.54 221.47h-103.08c-23.06 0-41.93-18.87-41.93-41.93v-103.08c0-23.06 18.87-41.93 41.93-41.93h103.08c23.06 0 41.93 18.87 41.93 41.93v103.08c0 23.06-18.87 41.93-41.93 41.93z\" fill=\"none\" stroke=\"url(#cu)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bm\" x1=\"70.718\" x2=\"185.28\" y1=\"28.784\" y2=\"227.22\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#47507C\" offset=\"1\"/></linearGradient><path d=\"m179.43 221.27h-102.86c-23.01 0-41.84-18.83-41.84-41.84v-102.86c0-23.01 18.83-41.84 41.84-41.84h102.86c23.01 0 41.84 18.83 41.84 41.84v102.86c0 23.01-18.83 41.84-41.84 41.84z\" fill=\"none\" stroke=\"url(#bm)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cd\" x1=\"70.837\" x2=\"185.16\" y1=\"28.99\" y2=\"227.01\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#47507C\" offset=\"1\"/></linearGradient><path d=\"m179.32 221.07h-102.64c-22.96 0-41.75-18.79-41.75-41.75v-102.64c0-22.96 18.79-41.75 41.75-41.75h102.64c22.96 0 41.75 18.79 41.75 41.75v102.64c0 22.97-18.78 41.75-41.75 41.75z\" fill=\"none\" stroke=\"url(#cd)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"az\" x1=\"70.955\" x2=\"185.04\" y1=\"29.196\" y2=\"226.8\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#47507C\" offset=\"1\"/></linearGradient><path d=\"m179.21 220.88h-102.42c-22.92 0-41.66-18.75-41.66-41.66v-102.43c0-22.92 18.75-41.66 41.66-41.66h102.42c22.92 0 41.66 18.75 41.66 41.66v102.42c0.01 22.92-18.74 41.67-41.66 41.67z\" fill=\"none\" stroke=\"url(#az)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gf\" x1=\"71.074\" x2=\"184.93\" y1=\"29.402\" y2=\"226.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48507C\" offset=\"1\"/></linearGradient><path d=\"m179.1 220.68h-102.2c-22.87 0-41.58-18.71-41.58-41.58v-102.2c0-22.87 18.71-41.58 41.58-41.58h102.2c22.87 0 41.58 18.71 41.58 41.58v102.2c0 22.87-18.71 41.58-41.58 41.58z\" fill=\"none\" stroke=\"url(#gf)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gk\" x1=\"71.193\" x2=\"184.81\" y1=\"29.608\" y2=\"226.39\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48507C\" offset=\"1\"/></linearGradient><path d=\"m178.99 220.48h-101.98c-22.82 0-41.49-18.67-41.49-41.49v-101.98c0-22.82 18.67-41.49 41.49-41.49h101.99c22.82 0 41.49 18.67 41.49 41.49v101.99c-0.01 22.81-18.68 41.48-41.5 41.48z\" fill=\"none\" stroke=\"url(#gk)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ca\" x1=\"71.312\" x2=\"184.69\" y1=\"29.814\" y2=\"226.19\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48507D\" offset=\"1\"/></linearGradient><path d=\"m178.89 220.28h-101.78c-22.77 0-41.4-18.63-41.4-41.4v-101.77c0-22.77 18.63-41.4 41.4-41.4h101.77c22.77 0 41.4 18.63 41.4 41.4v101.77c0 22.77-18.63 41.4-41.39 41.4z\" fill=\"none\" stroke=\"url(#ca)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"x\" x1=\"71.431\" x2=\"184.57\" y1=\"30.02\" y2=\"225.98\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48517D\" offset=\"1\"/></linearGradient><path d=\"m178.78 220.08h-101.56c-22.72 0-41.31-18.59-41.31-41.31v-101.55c0-22.72 18.59-41.31 41.31-41.31h101.55c22.72 0 41.31 18.59 41.31 41.31v101.55c0 22.73-18.58 41.31-41.3 41.31z\" fill=\"none\" stroke=\"url(#x)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dv\" x1=\"71.55\" x2=\"184.45\" y1=\"30.225\" y2=\"225.77\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48517D\" offset=\"1\"/></linearGradient><path d=\"m178.67 219.89h-101.34c-22.67 0-41.22-18.55-41.22-41.22v-101.34c0-22.67 18.55-41.22 41.22-41.22h101.33c22.67 0 41.22 18.55 41.22 41.22v101.33c0.01 22.68-18.54 41.23-41.21 41.23z\" fill=\"none\" stroke=\"url(#dv)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dh\" x1=\"71.669\" x2=\"184.33\" y1=\"30.431\" y2=\"225.57\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#48517D\" offset=\"1\"/></linearGradient><path d=\"m178.56 219.69h-101.12c-22.62 0-41.13-18.51-41.13-41.13v-101.12c0-22.62 18.51-41.13 41.13-41.13h101.12c22.62 0 41.13 18.51 41.13 41.13v101.12c0 22.62-18.51 41.13-41.13 41.13z\" fill=\"none\" stroke=\"url(#dh)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bf\" x1=\"71.788\" x2=\"184.21\" y1=\"30.637\" y2=\"225.36\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49517E\" offset=\"1\"/></linearGradient><path d=\"m178.45 219.49h-100.9c-22.57 0-41.04-18.47-41.04-41.04v-100.9c0-22.57 18.47-41.04 41.04-41.04h100.9c22.57 0 41.04 18.47 41.04 41.04v100.9c0 22.57-18.47 41.04-41.04 41.04z\" fill=\"none\" stroke=\"url(#bf)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"o\" x1=\"71.907\" x2=\"184.09\" y1=\"30.843\" y2=\"225.16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49527E\" offset=\"1\"/></linearGradient><path d=\"m178.34 219.29h-100.68c-22.52 0-40.95-18.43-40.95-40.95v-100.68c0-22.52 18.43-40.95 40.95-40.95h100.68c22.52 0 40.95 18.43 40.95 40.95v100.68c0 22.52-18.43 40.95-40.95 40.95z\" fill=\"none\" stroke=\"url(#o)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cb\" x1=\"72.025\" x2=\"183.97\" y1=\"31.049\" y2=\"224.95\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49527E\" offset=\"1\"/></linearGradient><path d=\"m178.23 219.1h-100.46c-22.48 0-40.86-18.39-40.86-40.86v-100.47c0-22.48 18.39-40.86 40.86-40.86h100.46c22.48 0 40.86 18.39 40.86 40.86v100.46c0.01 22.48-18.38 40.87-40.86 40.87z\" fill=\"none\" stroke=\"url(#cb)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ba\" x1=\"72.144\" x2=\"183.86\" y1=\"31.255\" y2=\"224.75\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49527E\" offset=\"1\"/></linearGradient><path d=\"m178.12 218.9h-100.24c-22.43 0-40.78-18.35-40.78-40.78v-100.24c0-22.43 18.35-40.78 40.78-40.78h100.24c22.43 0 40.78 18.35 40.78 40.78v100.24c0 22.43-18.35 40.78-40.78 40.78z\" fill=\"none\" stroke=\"url(#ba)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gr\" x1=\"72.263\" x2=\"183.74\" y1=\"31.461\" y2=\"224.54\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49527F\" offset=\"1\"/></linearGradient><path d=\"m178.01 218.7h-100.02c-22.38 0-40.69-18.31-40.69-40.69v-100.02c0-22.38 18.31-40.69 40.69-40.69h100.02c22.38 0 40.69 18.31 40.69 40.69v100.02c0 22.38-18.31 40.69-40.69 40.69z\" fill=\"none\" stroke=\"url(#gr)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ai\" x1=\"72.382\" x2=\"183.62\" y1=\"31.667\" y2=\"224.33\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#49527F\" offset=\"1\"/></linearGradient><path d=\"m177.9 218.5h-99.8c-22.33 0-40.6-18.27-40.6-40.6v-99.8c0-22.33 18.27-40.6 40.6-40.6h99.81c22.33 0 40.6 18.27 40.6 40.6v99.81c-0.01 22.32-18.28 40.59-40.61 40.59z\" fill=\"none\" stroke=\"url(#ai)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"w\" x1=\"72.501\" x2=\"183.5\" y1=\"31.873\" y2=\"224.13\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A527F\" offset=\"1\"/></linearGradient><path d=\"m177.79 218.3h-99.58c-22.28 0-40.51-18.23-40.51-40.51v-99.58c0-22.28 18.23-40.51 40.51-40.51h99.59c22.28 0 40.51 18.23 40.51 40.51v99.59c-0.01 22.27-18.24 40.5-40.52 40.5z\" fill=\"none\" stroke=\"url(#w)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gd\" x1=\"72.62\" x2=\"183.38\" y1=\"32.078\" y2=\"223.92\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A527F\" offset=\"1\"/></linearGradient><path d=\"m177.68 218.11h-99.36c-22.23 0-40.42-18.19-40.42-40.42v-99.37c0-22.23 18.19-40.42 40.42-40.42h99.37c22.23 0 40.42 18.19 40.42 40.42v99.37c0 22.23-18.19 40.42-40.43 40.42z\" fill=\"none\" stroke=\"url(#gd)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cg\" x1=\"72.739\" x2=\"183.26\" y1=\"32.284\" y2=\"223.72\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A5380\" offset=\"1\"/></linearGradient><path d=\"m177.58 217.91h-99.16c-22.18 0-40.33-18.15-40.33-40.33v-99.16c0-22.18 18.15-40.33 40.33-40.33h99.15c22.18 0 40.33 18.15 40.33 40.33v99.15c0.01 22.19-18.14 40.34-40.32 40.34z\" fill=\"none\" stroke=\"url(#cg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"b\" x1=\"72.857\" x2=\"183.14\" y1=\"32.49\" y2=\"223.51\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A5380\" offset=\"1\"/></linearGradient><path d=\"m177.47 217.71h-98.94c-22.13 0-40.24-18.11-40.24-40.24v-98.94c0-22.13 18.11-40.24 40.24-40.24h98.93c22.13 0 40.24 18.11 40.24 40.24v98.93c0.01 22.14-18.1 40.25-40.23 40.25z\" fill=\"none\" stroke=\"url(#b)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gs\" x1=\"72.976\" x2=\"183.02\" y1=\"32.696\" y2=\"223.3\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A5380\" offset=\"1\"/></linearGradient><path d=\"m177.36 217.51h-98.72c-22.09 0-40.15-18.07-40.15-40.15v-98.72c0-22.09 18.07-40.15 40.15-40.15h98.71c22.09 0 40.15 18.07 40.15 40.15v98.71c0.01 22.09-18.06 40.16-40.14 40.16z\" fill=\"none\" stroke=\"url(#gs)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ec\" x1=\"73.095\" x2=\"182.9\" y1=\"32.902\" y2=\"223.1\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4A5380\" offset=\"1\"/></linearGradient><path d=\"m177.25 217.31h-98.5c-22.04 0-40.07-18.03-40.07-40.07v-98.5c0-22.04 18.03-40.07 40.07-40.07h98.5c22.04 0 40.07 18.03 40.07 40.07v98.5c-0.01 22.04-18.04 40.07-40.07 40.07z\" fill=\"none\" stroke=\"url(#ec)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ef\" x1=\"73.214\" x2=\"182.79\" y1=\"33.108\" y2=\"222.89\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5380\" offset=\"1\"/></linearGradient><path d=\"m177.14 217.12h-98.28c-21.99 0-39.98-17.99-39.98-39.98v-98.28c0-21.99 17.99-39.98 39.98-39.98h98.28c21.99 0 39.98 17.99 39.98 39.98v98.28c0 21.99-17.99 39.98-39.98 39.98z\" fill=\"none\" stroke=\"url(#ef)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ct\" x1=\"73.333\" x2=\"182.67\" y1=\"33.314\" y2=\"222.69\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5380\" offset=\"1\"/></linearGradient><path d=\"m177.03 216.92h-98.06c-21.94 0-39.89-17.95-39.89-39.89v-98.06c0-21.94 17.95-39.89 39.89-39.89h98.06c21.94 0 39.89 17.95 39.89 39.89v98.06c0 21.94-17.95 39.89-39.89 39.89z\" fill=\"none\" stroke=\"url(#ct)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"be\" x1=\"73.452\" x2=\"182.55\" y1=\"33.52\" y2=\"222.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5380\" offset=\"1\"/></linearGradient><path d=\"m176.92 216.72h-97.84c-21.89 0-39.8-17.91-39.8-39.8v-97.84c0-21.89 17.91-39.8 39.8-39.8h97.84c21.89 0 39.8 17.91 39.8 39.8v97.84c0 21.89-17.91 39.8-39.8 39.8z\" fill=\"none\" stroke=\"url(#be)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"v\" x1=\"73.571\" x2=\"182.43\" y1=\"33.726\" y2=\"222.27\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5481\" offset=\"1\"/></linearGradient><path d=\"m176.81 216.52h-97.62c-21.84 0-39.71-17.87-39.71-39.71v-97.62c0-21.84 17.87-39.71 39.71-39.71h97.62c21.84 0 39.71 17.87 39.71 39.71v97.62c0 21.84-17.87 39.71-39.71 39.71z\" fill=\"none\" stroke=\"url(#v)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"p\" x1=\"73.69\" x2=\"182.31\" y1=\"33.932\" y2=\"222.07\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5481\" offset=\"1\"/></linearGradient><path d=\"m176.7 216.32h-97.4c-21.79 0-39.62-17.83-39.62-39.62v-97.4c0-21.79 17.83-39.62 39.62-39.62h97.41c21.79 0 39.62 17.83 39.62 39.62v97.41c-0.01 21.78-17.84 39.61-39.63 39.61z\" fill=\"none\" stroke=\"url(#p)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cy\" x1=\"73.809\" x2=\"182.19\" y1=\"34.138\" y2=\"221.86\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4B5481\" offset=\"1\"/></linearGradient><path d=\"m176.59 216.13h-97.18c-21.74 0-39.53-17.79-39.53-39.53v-97.19c0-21.74 17.79-39.53 39.53-39.53h97.19c21.74 0 39.53 17.79 39.53 39.53v97.19c0 21.74-17.79 39.53-39.54 39.53z\" fill=\"none\" stroke=\"url(#cy)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cm\" x1=\"73.927\" x2=\"182.07\" y1=\"34.343\" y2=\"221.66\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5482\" offset=\"1\"/></linearGradient><path d=\"m176.48 215.93h-96.96c-21.69 0-39.44-17.75-39.44-39.44v-96.97c0-21.69 17.75-39.44 39.44-39.44h96.97c21.69 0 39.44 17.75 39.44 39.44v96.97c0 21.69-17.75 39.44-39.45 39.44z\" fill=\"none\" stroke=\"url(#cm)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gv\" x1=\"74.046\" x2=\"181.95\" y1=\"34.549\" y2=\"221.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5482\" offset=\"1\"/></linearGradient><path d=\"m176.38 215.73h-96.76c-21.65 0-39.36-17.71-39.36-39.36v-96.75c0-21.65 17.71-39.36 39.36-39.36h96.75c21.65 0 39.36 17.71 39.36 39.36v96.75c0 21.65-17.71 39.36-39.35 39.36z\" fill=\"none\" stroke=\"url(#gv)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"db\" x1=\"74.165\" x2=\"181.83\" y1=\"34.755\" y2=\"221.24\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5482\" offset=\"1\"/></linearGradient><path d=\"m176.27 215.53h-96.54c-21.6 0-39.27-17.67-39.27-39.27v-96.53c0-21.6 17.67-39.27 39.27-39.27h96.53c21.6 0 39.27 17.67 39.27 39.27v96.53c0 21.6-17.67 39.27-39.26 39.27z\" fill=\"none\" stroke=\"url(#db)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cv\" x1=\"74.284\" x2=\"181.72\" y1=\"34.961\" y2=\"221.04\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5582\" offset=\"1\"/></linearGradient><path d=\"m176.16 215.34h-96.32c-21.55 0-39.18-17.63-39.18-39.18v-96.32c0-21.55 17.63-39.18 39.18-39.18h96.31c21.55 0 39.18 17.63 39.18 39.18v96.31c0.01 21.56-17.62 39.19-39.17 39.19z\" fill=\"none\" stroke=\"url(#cv)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cc\" x1=\"74.403\" x2=\"181.6\" y1=\"35.167\" y2=\"220.83\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5583\" offset=\"1\"/></linearGradient><path d=\"m176.05 215.14h-96.1c-21.5 0-39.09-17.59-39.09-39.09v-96.1c0-21.5 17.59-39.09 39.09-39.09h96.1c21.5 0 39.09 17.59 39.09 39.09v96.1c0 21.5-17.59 39.09-39.09 39.09z\" fill=\"none\" stroke=\"url(#cc)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cx\" x1=\"74.522\" x2=\"181.48\" y1=\"35.373\" y2=\"220.63\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5583\" offset=\"1\"/></linearGradient><path d=\"m175.94 214.94h-95.88c-21.45 0-39-17.55-39-39v-95.88c0-21.45 17.55-39 39-39h95.88c21.45 0 39 17.55 39 39v95.88c0 21.45-17.55 39-39 39z\" fill=\"none\" stroke=\"url(#cx)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"an\" x1=\"74.641\" x2=\"181.36\" y1=\"35.579\" y2=\"220.42\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5583\" offset=\"1\"/></linearGradient><path d=\"m175.83 214.74h-95.66c-21.4 0-38.91-17.51-38.91-38.91v-95.66c0-21.4 17.51-38.91 38.91-38.91h95.66c21.4 0 38.91 17.51 38.91 38.91v95.66c0 21.4-17.51 38.91-38.91 38.91z\" fill=\"none\" stroke=\"url(#an)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dq\" x1=\"74.759\" x2=\"181.24\" y1=\"35.785\" y2=\"220.22\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4C5583\" offset=\"1\"/></linearGradient><path d=\"m175.72 214.54h-95.44c-21.35 0-38.82-17.47-38.82-38.82v-95.44c0-21.35 17.47-38.82 38.82-38.82h95.44c21.35 0 38.82 17.47 38.82 38.82v95.44c0 21.35-17.47 38.82-38.82 38.82z\" fill=\"none\" stroke=\"url(#dq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"t\" x1=\"74.878\" x2=\"181.12\" y1=\"35.991\" y2=\"220.01\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5684\" offset=\"1\"/></linearGradient><path d=\"m175.61 214.35h-95.22c-21.3 0-38.73-17.43-38.73-38.73v-95.23c0-21.3 17.43-38.73 38.73-38.73h95.22c21.3 0 38.73 17.43 38.73 38.73v95.22c0.01 21.31-17.42 38.74-38.73 38.74z\" fill=\"none\" stroke=\"url(#t)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ak\" x1=\"74.997\" x2=\"181\" y1=\"36.196\" y2=\"219.8\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5684\" offset=\"1\"/></linearGradient><path d=\"m175.5 214.15h-95c-21.26 0-38.65-17.39-38.65-38.65v-95c0-21.26 17.39-38.65 38.65-38.65h95.01c21.26 0 38.65 17.39 38.65 38.65v95.01c-0.01 21.25-17.4 38.64-38.66 38.64z\" fill=\"none\" stroke=\"url(#ak)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ab\" x1=\"75.116\" x2=\"180.88\" y1=\"36.402\" y2=\"219.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5684\" offset=\"1\"/></linearGradient><path d=\"m175.39 213.95h-94.78c-21.21 0-38.56-17.35-38.56-38.56v-94.78c0-21.21 17.35-38.56 38.56-38.56h94.79c21.21 0 38.56 17.35 38.56 38.56v94.79c-0.01 21.2-17.36 38.55-38.57 38.55z\" fill=\"none\" stroke=\"url(#ab)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ac\" x1=\"75.235\" x2=\"180.76\" y1=\"36.608\" y2=\"219.39\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5684\" offset=\"1\"/></linearGradient><path d=\"m175.28 213.75h-94.56c-21.16 0-38.47-17.31-38.47-38.47v-94.56c0-21.16 17.31-38.47 38.47-38.47h94.57c21.16 0 38.47 17.31 38.47 38.47v94.57c-0.01 21.15-17.32 38.46-38.48 38.46z\" fill=\"none\" stroke=\"url(#ac)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bi\" x1=\"75.354\" x2=\"180.65\" y1=\"36.814\" y2=\"219.19\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5684\" offset=\"1\"/></linearGradient><path d=\"m175.18 213.55h-94.36c-21.11 0-38.38-17.27-38.38-38.38v-94.35c0-21.11 17.27-38.38 38.38-38.38h94.35c21.11 0 38.38 17.27 38.38 38.38v94.35c0 21.11-17.27 38.38-38.37 38.38z\" fill=\"none\" stroke=\"url(#bi)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bx\" x1=\"75.473\" x2=\"180.53\" y1=\"37.02\" y2=\"218.98\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5785\" offset=\"1\"/></linearGradient><path d=\"m175.07 213.36h-94.14c-21.06 0-38.29-17.23-38.29-38.29v-94.14c0-21.06 17.23-38.29 38.29-38.29h94.13c21.06 0 38.29 17.23 38.29 38.29v94.13c0.01 21.07-17.22 38.3-38.28 38.3z\" fill=\"none\" stroke=\"url(#bx)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"er\" x1=\"75.592\" x2=\"180.41\" y1=\"37.226\" y2=\"218.77\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4D5785\" offset=\"1\"/></linearGradient><path d=\"m174.96 213.16h-93.92c-21.01 0-38.2-17.19-38.2-38.2v-93.92c0-21.01 17.19-38.2 38.2-38.2h93.91c21.01 0 38.2 17.19 38.2 38.2v93.91c0.01 21.02-17.18 38.21-38.19 38.21z\" fill=\"none\" stroke=\"url(#er)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ee\" x1=\"75.711\" x2=\"180.29\" y1=\"37.432\" y2=\"218.57\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5786\" offset=\"1\"/></linearGradient><path d=\"m174.85 212.96h-93.7c-20.96 0-38.11-17.15-38.11-38.11v-93.7c0-20.96 17.15-38.11 38.11-38.11h93.7c20.96 0 38.11 17.15 38.11 38.11v93.7c0 20.96-17.15 38.11-38.11 38.11z\" fill=\"none\" stroke=\"url(#ee)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fv\" x1=\"75.829\" x2=\"180.17\" y1=\"37.638\" y2=\"218.36\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5786\" offset=\"1\"/></linearGradient><path d=\"m174.74 212.76h-93.48c-20.91 0-38.02-17.11-38.02-38.02v-93.48c0-20.91 17.11-38.02 38.02-38.02h93.48c20.91 0 38.02 17.11 38.02 38.02v93.48c0 20.91-17.11 38.02-38.02 38.02z\" fill=\"none\" stroke=\"url(#fv)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cj\" x1=\"75.948\" x2=\"180.05\" y1=\"37.844\" y2=\"218.16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5786\" offset=\"1\"/></linearGradient><path d=\"m174.63 212.57h-93.26c-20.86 0-37.94-17.07-37.94-37.94v-93.26c0-20.86 17.07-37.94 37.94-37.94h93.26c20.86 0 37.94 17.07 37.94 37.94v93.26c0 20.86-17.08 37.94-37.94 37.94z\" fill=\"none\" stroke=\"url(#cj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ax\" x1=\"76.067\" x2=\"179.93\" y1=\"38.05\" y2=\"217.95\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5886\" offset=\"1\"/></linearGradient><path d=\"m174.52 212.37h-93.04c-20.82 0-37.85-17.03-37.85-37.85v-93.04c0-20.82 17.03-37.85 37.85-37.85h93.04c20.82 0 37.85 17.03 37.85 37.85v93.04c0 20.82-17.03 37.85-37.85 37.85z\" fill=\"none\" stroke=\"url(#ax)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ft\" x1=\"76.186\" x2=\"179.81\" y1=\"38.256\" y2=\"217.74\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5887\" offset=\"1\"/></linearGradient><path d=\"m174.41 212.17h-92.82c-20.77 0-37.76-16.99-37.76-37.76v-92.82c0-20.77 16.99-37.76 37.76-37.76h92.82c20.77 0 37.76 16.99 37.76 37.76v92.82c0 20.77-16.99 37.76-37.76 37.76z\" fill=\"none\" stroke=\"url(#ft)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fd\" x1=\"76.305\" x2=\"179.7\" y1=\"38.461\" y2=\"217.54\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5887\" offset=\"1\"/></linearGradient><path d=\"m174.3 211.97h-92.6c-20.72 0-37.67-16.95-37.67-37.67v-92.6c0-20.72 16.95-37.67 37.67-37.67h92.6c20.72 0 37.67 16.95 37.67 37.67v92.6c0 20.72-16.95 37.67-37.67 37.67z\" fill=\"none\" stroke=\"url(#fd)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dr\" x1=\"76.424\" x2=\"179.58\" y1=\"38.667\" y2=\"217.33\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4E5887\" offset=\"1\"/></linearGradient><path d=\"m174.19 211.77h-92.38c-20.67 0-37.58-16.91-37.58-37.58v-92.38c0-20.67 16.91-37.58 37.58-37.58h92.39c20.67 0 37.58 16.91 37.58 37.58v92.39c-0.01 20.66-16.92 37.57-37.59 37.57z\" fill=\"none\" stroke=\"url(#dr)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dg\" x1=\"76.543\" x2=\"179.46\" y1=\"38.873\" y2=\"217.13\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5988\" offset=\"1\"/></linearGradient><path d=\"m174.08 211.58h-92.16c-20.62 0-37.49-16.87-37.49-37.49v-92.17c0-20.62 16.87-37.49 37.49-37.49h92.17c20.62 0 37.49 16.87 37.49 37.49v92.17c0 20.61-16.88 37.49-37.5 37.49z\" fill=\"none\" stroke=\"url(#dg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"r\" x1=\"76.661\" x2=\"179.34\" y1=\"39.079\" y2=\"216.92\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5988\" offset=\"1\"/></linearGradient><path d=\"m173.97 211.38h-91.94c-20.57 0-37.4-16.83-37.4-37.4v-91.95c0-20.57 16.83-37.4 37.4-37.4h91.95c20.57 0 37.4 16.83 37.4 37.4v91.95c0 20.57-16.83 37.4-37.41 37.4z\" fill=\"none\" stroke=\"url(#r)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"l\" x1=\"76.78\" x2=\"179.22\" y1=\"39.285\" y2=\"216.72\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5988\" offset=\"1\"/></linearGradient><path d=\"m173.87 211.18h-91.74c-20.52 0-37.31-16.79-37.31-37.31v-91.74c0-20.52 16.79-37.31 37.31-37.31h91.73c20.52 0 37.31 16.79 37.31 37.31v91.73c0.01 20.53-16.78 37.32-37.3 37.32z\" fill=\"none\" stroke=\"url(#l)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cf\" x1=\"76.899\" x2=\"179.1\" y1=\"39.491\" y2=\"216.51\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5988\" offset=\"1\"/></linearGradient><path d=\"m173.76 210.98h-91.52c-20.47 0-37.23-16.75-37.23-37.23v-91.51c0-20.47 16.75-37.23 37.23-37.23h91.51c20.47 0 37.23 16.75 37.23 37.23v91.51c0 20.48-16.75 37.23-37.22 37.23z\" fill=\"none\" stroke=\"url(#cf)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"aj\" x1=\"77.018\" x2=\"178.98\" y1=\"39.697\" y2=\"216.3\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5988\" offset=\"1\"/></linearGradient><path d=\"m173.65 210.78h-91.3c-20.43 0-37.14-16.71-37.14-37.14v-91.3c0-20.43 16.71-37.14 37.14-37.14h91.3c20.43 0 37.14 16.71 37.14 37.14v91.3c-0.01 20.43-16.72 37.14-37.14 37.14z\" fill=\"none\" stroke=\"url(#aj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bg\" x1=\"77.137\" x2=\"178.86\" y1=\"39.903\" y2=\"216.1\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#4F5989\" offset=\"1\"/></linearGradient><path d=\"m173.54 210.59h-91.08c-20.38 0-37.05-16.67-37.05-37.05v-91.08c0-20.38 16.67-37.05 37.05-37.05h91.08c20.38 0 37.05 16.67 37.05 37.05v91.08c0 20.37-16.68 37.05-37.05 37.05z\" fill=\"none\" stroke=\"url(#bg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bq\" x1=\"77.256\" x2=\"178.74\" y1=\"40.109\" y2=\"215.89\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#505A89\" offset=\"1\"/></linearGradient><path d=\"m173.43 210.39h-90.86c-20.33 0-36.96-16.63-36.96-36.96v-90.86c0-20.33 16.63-36.96 36.96-36.96h90.86c20.33 0 36.96 16.63 36.96 36.96v90.86c0 20.33-16.63 36.96-36.96 36.96z\" fill=\"none\" stroke=\"url(#bq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fe\" x1=\"77.375\" x2=\"178.63\" y1=\"40.314\" y2=\"215.69\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#505A89\" offset=\"1\"/></linearGradient><path d=\"m173.32 210.19h-90.64c-20.28 0-36.87-16.59-36.87-36.87v-90.64c0-20.28 16.59-36.87 36.87-36.87h90.64c20.28 0 36.87 16.59 36.87 36.87v90.64c0 20.28-16.59 36.87-36.87 36.87z\" fill=\"none\" stroke=\"url(#fe)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gj\" x1=\"77.494\" x2=\"178.51\" y1=\"40.52\" y2=\"215.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#505A8A\" offset=\"1\"/></linearGradient><path d=\"m173.21 209.99h-90.42c-20.23 0-36.78-16.55-36.78-36.78v-90.42c0-20.23 16.55-36.78 36.78-36.78h90.42c20.23 0 36.78 16.55 36.78 36.78v90.42c0 20.23-16.55 36.78-36.78 36.78z\" fill=\"none\" stroke=\"url(#gj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"aa\" x1=\"77.613\" x2=\"178.39\" y1=\"40.726\" y2=\"215.27\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#505A8A\" offset=\"1\"/></linearGradient><path d=\"m173.1 209.79h-90.2c-20.18 0-36.69-16.51-36.69-36.69v-90.2c0-20.18 16.51-36.69 36.69-36.69h90.2c20.18 0 36.69 16.51 36.69 36.69v90.2c0 20.18-16.51 36.69-36.69 36.69z\" fill=\"none\" stroke=\"url(#aa)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dy\" x1=\"77.731\" x2=\"178.27\" y1=\"40.932\" y2=\"215.07\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#505A8A\" offset=\"1\"/></linearGradient><path d=\"m172.99 209.6h-89.98c-20.13 0-36.6-16.47-36.6-36.6v-89.99c0-20.13 16.47-36.6 36.6-36.6h89.99c20.13 0 36.6 16.47 36.6 36.6v89.99c0 20.13-16.47 36.6-36.61 36.6z\" fill=\"none\" stroke=\"url(#dy)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"au\" x1=\"77.85\" x2=\"178.15\" y1=\"41.138\" y2=\"214.86\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8B\" offset=\"1\"/></linearGradient><path d=\"m172.88 209.4h-89.76c-20.08 0-36.52-16.43-36.52-36.52v-89.76c0-20.08 16.43-36.52 36.52-36.52h89.77c20.08 0 36.52 16.43 36.52 36.52v89.77c-0.01 20.08-16.44 36.51-36.53 36.51z\" fill=\"none\" stroke=\"url(#au)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"da\" x1=\"77.969\" x2=\"178.03\" y1=\"41.344\" y2=\"214.66\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8B\" offset=\"1\"/></linearGradient><path d=\"m172.77 209.2h-89.54c-20.03 0-36.43-16.39-36.43-36.43v-89.54c0-20.03 16.39-36.43 36.43-36.43h89.55c20.03 0 36.43 16.39 36.43 36.43v89.55c-0.01 20.03-16.4 36.42-36.44 36.42z\" fill=\"none\" stroke=\"url(#da)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ci\" x1=\"78.088\" x2=\"177.91\" y1=\"41.55\" y2=\"214.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8B\" offset=\"1\"/></linearGradient><path d=\"m172.67 209h-89.34c-19.98 0-36.33-16.35-36.33-36.33v-89.34c0-19.98 16.35-36.33 36.33-36.33h89.33c19.99 0 36.34 16.35 36.34 36.33v89.33c0 19.99-16.35 36.34-36.33 36.34z\" fill=\"none\" stroke=\"url(#ci)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fc\" x1=\"78.207\" x2=\"177.79\" y1=\"41.756\" y2=\"214.24\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8B\" offset=\"1\"/></linearGradient><path d=\"m172.56 208.81h-89.12c-19.94 0-36.25-16.31-36.25-36.25v-89.12c0-19.94 16.31-36.25 36.25-36.25h89.11c19.94 0 36.25 16.31 36.25 36.25v89.11c0.01 19.94-16.31 36.26-36.24 36.26z\" fill=\"none\" stroke=\"url(#fc)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dm\" x1=\"78.326\" x2=\"177.67\" y1=\"41.962\" y2=\"214.04\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8C\" offset=\"1\"/></linearGradient><path d=\"m172.45 208.61h-88.9c-19.89 0-36.16-16.27-36.16-36.16v-88.9c0-19.89 16.27-36.16 36.16-36.16h88.89c19.89 0 36.16 16.27 36.16 36.16v88.89c0.01 19.9-16.26 36.17-36.15 36.17z\" fill=\"none\" stroke=\"url(#dm)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"go\" x1=\"78.445\" x2=\"177.56\" y1=\"42.168\" y2=\"213.83\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8C\" offset=\"1\"/></linearGradient><path d=\"m172.34 208.41h-88.68c-19.84 0-36.07-16.23-36.07-36.07v-88.68c0-19.84 16.23-36.07 36.07-36.07h88.68c19.84 0 36.07 16.23 36.07 36.07v88.68c0 19.84-16.23 36.07-36.07 36.07z\" fill=\"none\" stroke=\"url(#go)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ds\" x1=\"78.563\" x2=\"177.44\" y1=\"42.374\" y2=\"213.63\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8C\" offset=\"1\"/></linearGradient><path d=\"m172.23 208.21h-88.46c-19.79 0-35.98-16.19-35.98-35.98v-88.46c0-19.79 16.19-35.98 35.98-35.98h88.46c19.79 0 35.98 16.19 35.98 35.98v88.46c0 19.79-16.19 35.98-35.98 35.98z\" fill=\"none\" stroke=\"url(#ds)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fz\" x1=\"78.682\" x2=\"177.32\" y1=\"42.579\" y2=\"213.42\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#525B8C\" offset=\"1\"/></linearGradient><path d=\"m172.12 208.01h-88.24c-19.74 0-35.89-16.15-35.89-35.89v-88.24c0-19.74 16.15-35.89 35.89-35.89h88.24c19.74 0 35.89 16.15 35.89 35.89v88.24c0 19.74-16.15 35.89-35.89 35.89z\" fill=\"none\" stroke=\"url(#fz)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><path class=\"st102\" d=\"m128.21 128.38h-0.42c-0.09 0-0.17-0.08-0.17-0.17v-0.42c0-0.09 0.08-0.17 0.17-0.17h0.42c0.09 0 0.17 0.08 0.17 0.17v0.42c0 0.09-0.08 0.17-0.17 0.17z\"/><linearGradient id=\"do\" x1=\"126.05\" x2=\"129.95\" y1=\"124.62\" y2=\"131.38\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#757EB5\" offset=\"0\"/><stop stop-color=\"#757EB4\" offset=\"1\"/></linearGradient><path d=\"m128.64 129.17h-1.29c-0.29 0-0.52-0.24-0.52-0.52v-1.29c0-0.29 0.24-0.52 0.52-0.52h1.29c0.29 0 0.52 0.24 0.52 0.52v1.29c0.01 0.28-0.23 0.52-0.52 0.52z\" fill=\"none\" stroke=\"url(#do)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bk\" x1=\"125.57\" x2=\"130.43\" y1=\"123.8\" y2=\"132.2\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#757EB5\" offset=\"0\"/><stop stop-color=\"#757DB3\" offset=\"1\"/></linearGradient><path d=\"m129.08 129.96h-2.16c-0.48 0-0.88-0.39-0.88-0.88v-2.16c0-0.48 0.39-0.88 0.88-0.88h2.16c0.48 0 0.88 0.39 0.88 0.88v2.16c0 0.48-0.4 0.88-0.88 0.88z\" fill=\"none\" stroke=\"url(#bk)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ch\" x1=\"125.1\" x2=\"130.9\" y1=\"122.98\" y2=\"133.02\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#767FB5\" offset=\"0\"/><stop stop-color=\"#747DB3\" offset=\"1\"/></linearGradient><path d=\"m129.51 130.74h-3.03c-0.68 0-1.23-0.55-1.23-1.23v-3.03c0-0.68 0.55-1.23 1.23-1.23h3.03c0.68 0 1.23 0.55 1.23 1.23v3.03c0 0.68-0.55 1.23-1.23 1.23z\" fill=\"none\" stroke=\"url(#ch)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"c\" x1=\"124.63\" x2=\"131.37\" y1=\"122.16\" y2=\"133.84\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#767FB5\" offset=\"0\"/><stop stop-color=\"#747DB2\" offset=\"1\"/></linearGradient><path d=\"m129.95 131.53h-3.9c-0.87 0-1.58-0.71-1.58-1.58v-3.9c0-0.87 0.71-1.58 1.58-1.58h3.9c0.87 0 1.58 0.71 1.58 1.58v3.9c0 0.87-0.71 1.58-1.58 1.58z\" fill=\"none\" stroke=\"url(#c)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"df\" x1=\"124.15\" x2=\"131.85\" y1=\"121.34\" y2=\"134.66\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#767FB5\" offset=\"0\"/><stop stop-color=\"#737CB2\" offset=\"1\"/></linearGradient><path d=\"m130.38 132.32h-4.77c-1.07 0-1.94-0.87-1.94-1.94v-4.77c0-1.07 0.87-1.94 1.94-1.94h4.77c1.07 0 1.94 0.87 1.94 1.94v4.77c0 1.07-0.87 1.94-1.94 1.94z\" fill=\"none\" stroke=\"url(#df)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gw\" x1=\"123.68\" x2=\"132.32\" y1=\"120.52\" y2=\"135.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#777FB5\" offset=\"0\"/><stop stop-color=\"#737CB2\" offset=\"1\"/></linearGradient><path d=\"m130.82 133.11h-5.64c-1.26 0-2.29-1.03-2.29-2.29v-5.64c0-1.26 1.03-2.29 2.29-2.29h5.64c1.26 0 2.29 1.03 2.29 2.29v5.64c0 1.26-1.03 2.29-2.29 2.29z\" fill=\"none\" stroke=\"url(#gw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fa\" x1=\"123.21\" x2=\"132.79\" y1=\"119.7\" y2=\"136.3\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#777FB5\" offset=\"0\"/><stop stop-color=\"#737CB2\" offset=\"1\"/></linearGradient><path d=\"m131.25 133.9h-6.51c-1.46 0-2.65-1.19-2.65-2.65v-6.51c0-1.46 1.19-2.65 2.65-2.65h6.51c1.46 0 2.65 1.19 2.65 2.65v6.51c0 1.46-1.19 2.65-2.65 2.65z\" fill=\"none\" stroke=\"url(#fa)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ew\" x1=\"122.73\" x2=\"133.27\" y1=\"118.88\" y2=\"137.12\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#777FB5\" offset=\"0\"/><stop stop-color=\"#737BB1\" offset=\"1\"/></linearGradient><path d=\"m131.69 134.69h-7.37c-1.65 0-3-1.35-3-3v-7.37c0-1.65 1.35-3 3-3h7.37c1.65 0 3 1.35 3 3v7.37c0 1.65-1.35 3-3 3z\" fill=\"none\" stroke=\"url(#ew)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"h\" x1=\"122.26\" x2=\"133.74\" y1=\"118.06\" y2=\"137.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7780B5\" offset=\"0\"/><stop stop-color=\"#727BB1\" offset=\"1\"/></linearGradient><path d=\"m132.12 135.48h-8.24c-1.84 0-3.35-1.51-3.35-3.35v-8.24c0-1.84 1.51-3.35 3.35-3.35h8.24c1.84 0 3.35 1.51 3.35 3.35v8.24c0.01 1.84-1.5 3.35-3.35 3.35z\" fill=\"none\" stroke=\"url(#h)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ck\" x1=\"121.79\" x2=\"134.21\" y1=\"117.24\" y2=\"138.76\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7780B5\" offset=\"0\"/><stop stop-color=\"#727BB0\" offset=\"1\"/></linearGradient><path d=\"m132.56 136.26h-9.11c-2.04 0-3.71-1.67-3.71-3.71v-9.11c0-2.04 1.67-3.71 3.71-3.71h9.11c2.04 0 3.71 1.67 3.71 3.71v9.11c-0.01 2.05-1.67 3.71-3.71 3.71z\" fill=\"none\" stroke=\"url(#ck)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"br\" x1=\"121.31\" x2=\"134.69\" y1=\"116.42\" y2=\"139.58\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7780B5\" offset=\"0\"/><stop stop-color=\"#717AB0\" offset=\"1\"/></linearGradient><path d=\"m132.99 137.05h-9.98c-2.23 0-4.06-1.83-4.06-4.06v-9.98c0-2.23 1.83-4.06 4.06-4.06h9.98c2.23 0 4.06 1.83 4.06 4.06v9.98c0 2.24-1.82 4.06-4.06 4.06z\" fill=\"none\" stroke=\"url(#br)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eh\" x1=\"120.84\" x2=\"135.16\" y1=\"115.6\" y2=\"140.4\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7780B6\" offset=\"0\"/><stop stop-color=\"#717AAF\" offset=\"1\"/></linearGradient><path d=\"m133.43 137.84h-10.85c-2.43 0-4.41-1.99-4.41-4.41v-10.85c0-2.43 1.99-4.41 4.41-4.41h10.85c2.43 0 4.41 1.99 4.41 4.41v10.85c0 2.42-1.99 4.41-4.41 4.41z\" fill=\"none\" stroke=\"url(#eh)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"aq\" x1=\"120.36\" x2=\"135.64\" y1=\"114.78\" y2=\"141.23\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7880B6\" offset=\"0\"/><stop stop-color=\"#7079AE\" offset=\"1\"/></linearGradient><path d=\"m133.86 138.63h-11.72c-2.62 0-4.77-2.15-4.77-4.77v-11.72c0-2.62 2.15-4.77 4.77-4.77h11.72c2.62 0 4.77 2.15 4.77 4.77v11.72c0 2.62-2.15 4.77-4.77 4.77z\" fill=\"none\" stroke=\"url(#aq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fs\" x1=\"119.89\" x2=\"136.11\" y1=\"113.95\" y2=\"142.05\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7880B6\" offset=\"0\"/><stop stop-color=\"#7079AE\" offset=\"1\"/></linearGradient><path d=\"m134.3 139.42h-12.6c-2.82 0-5.12-2.3-5.12-5.12v-12.6c0-2.82 2.3-5.12 5.12-5.12h12.59c2.82 0 5.12 2.3 5.12 5.12v12.59c0.01 2.82-2.3 5.13-5.11 5.13z\" fill=\"none\" stroke=\"url(#fs)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dd\" x1=\"119.42\" x2=\"136.58\" y1=\"113.13\" y2=\"142.87\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7880B6\" offset=\"0\"/><stop stop-color=\"#7078AD\" offset=\"1\"/></linearGradient><path d=\"m134.73 140.21h-13.46c-3.01 0-5.48-2.46-5.48-5.48v-13.46c0-3.01 2.46-5.48 5.48-5.48h13.46c3.01 0 5.48 2.46 5.48 5.48v13.46c0 3.01-2.47 5.48-5.48 5.48z\" fill=\"none\" stroke=\"url(#dd)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gu\" x1=\"118.94\" x2=\"137.06\" y1=\"112.31\" y2=\"143.69\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7980B7\" offset=\"0\"/><stop stop-color=\"#7078AD\" offset=\"1\"/></linearGradient><path d=\"m135.17 140.99h-14.33c-3.21 0-5.83-2.62-5.83-5.83v-14.33c0-3.21 2.62-5.83 5.83-5.83h14.33c3.21 0 5.83 2.62 5.83 5.83v14.33c-0.01 3.21-2.63 5.83-5.83 5.83z\" fill=\"none\" stroke=\"url(#gu)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ej\" x1=\"118.47\" x2=\"137.53\" y1=\"111.49\" y2=\"144.51\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7980B7\" offset=\"0\"/><stop stop-color=\"#6F78AD\" offset=\"1\"/></linearGradient><path d=\"m135.6 141.78h-15.2c-3.4 0-6.18-2.78-6.18-6.18v-15.2c0-3.4 2.78-6.18 6.18-6.18h15.2c3.4 0 6.18 2.78 6.18 6.18v15.2c0 3.4-2.78 6.18-6.18 6.18z\" fill=\"none\" stroke=\"url(#ej)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"av\" x1=\"118\" x2=\"138\" y1=\"110.67\" y2=\"145.33\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7980B7\" offset=\"0\"/><stop stop-color=\"#6F77AC\" offset=\"1\"/></linearGradient><path d=\"m136.03 142.57h-16.07c-3.6 0-6.54-2.94-6.54-6.54v-16.07c0-3.6 2.94-6.54 6.54-6.54h16.07c3.6 0 6.54 2.94 6.54 6.54v16.07c0 3.6-2.94 6.54-6.54 6.54z\" fill=\"none\" stroke=\"url(#av)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gg\" x1=\"117.52\" x2=\"138.48\" y1=\"109.85\" y2=\"146.15\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7980B7\" offset=\"0\"/><stop stop-color=\"#6E77AC\" offset=\"1\"/></linearGradient><path d=\"m136.47 143.36h-16.94c-3.79 0-6.89-3.1-6.89-6.89v-16.94c0-3.79 3.1-6.89 6.89-6.89h16.94c3.79 0 6.89 3.1 6.89 6.89v16.94c0 3.79-3.1 6.89-6.89 6.89z\" fill=\"none\" stroke=\"url(#gg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"n\" x1=\"117.05\" x2=\"138.95\" y1=\"109.03\" y2=\"146.97\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7981B7\" offset=\"0\"/><stop stop-color=\"#6E77AB\" offset=\"1\"/></linearGradient><path d=\"m136.9 144.15h-17.8c-3.98 0-7.24-3.26-7.24-7.24v-17.81c0-3.98 3.26-7.24 7.24-7.24h17.81c3.98 0 7.24 3.26 7.24 7.24v17.81c0 3.98-3.26 7.24-7.25 7.24z\" fill=\"none\" stroke=\"url(#n)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"de\" x1=\"116.58\" x2=\"139.42\" y1=\"108.21\" y2=\"147.79\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7981B7\" offset=\"0\"/><stop stop-color=\"#6E77AB\" offset=\"1\"/></linearGradient><path d=\"m137.34 144.94h-18.68c-4.18 0-7.6-3.42-7.6-7.6v-18.68c0-4.18 3.42-7.6 7.6-7.6h18.68c4.18 0 7.6 3.42 7.6 7.6v18.68c0 4.18-3.42 7.6-7.6 7.6z\" fill=\"none\" stroke=\"url(#de)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eb\" x1=\"116.1\" x2=\"139.9\" y1=\"107.39\" y2=\"148.61\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7981B7\" offset=\"0\"/><stop stop-color=\"#6E76AB\" offset=\"1\"/></linearGradient><path d=\"m137.77 145.73h-19.55c-4.37 0-7.95-3.58-7.95-7.95v-19.55c0-4.37 3.58-7.95 7.95-7.95h19.55c4.37 0 7.95 3.58 7.95 7.95v19.55c0.01 4.37-3.57 7.95-7.95 7.95z\" fill=\"none\" stroke=\"url(#eb)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"eu\" x1=\"115.63\" x2=\"140.37\" y1=\"106.57\" y2=\"149.43\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7A81B7\" offset=\"0\"/><stop stop-color=\"#6D76AA\" offset=\"1\"/></linearGradient><path d=\"m138.21 146.51h-20.42c-4.57 0-8.31-3.74-8.31-8.31v-20.42c0-4.57 3.74-8.31 8.31-8.31h20.42c4.57 0 8.31 3.74 8.31 8.31v20.42c-0.01 4.58-3.74 8.31-8.31 8.31z\" fill=\"none\" stroke=\"url(#eu)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bb\" x1=\"115.15\" x2=\"140.85\" y1=\"105.75\" y2=\"150.25\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7A82B8\" offset=\"0\"/><stop stop-color=\"#6D75AA\" offset=\"1\"/></linearGradient><path d=\"m138.64 147.3h-21.29c-4.76 0-8.66-3.9-8.66-8.66v-21.29c0-4.76 3.9-8.66 8.66-8.66h21.29c4.76 0 8.66 3.9 8.66 8.66v21.29c0 4.77-3.89 8.66-8.66 8.66z\" fill=\"none\" stroke=\"url(#bb)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"es\" x1=\"114.68\" x2=\"141.32\" y1=\"104.93\" y2=\"151.07\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7A82B8\" offset=\"0\"/><stop stop-color=\"#6C74A8\" offset=\"1\"/></linearGradient><path d=\"m139.08 148.09h-22.16c-4.96 0-9.01-4.06-9.01-9.01v-22.16c0-4.96 4.06-9.01 9.01-9.01h22.16c4.96 0 9.01 4.06 9.01 9.01v22.16c0 4.96-4.05 9.01-9.01 9.01z\" fill=\"none\" stroke=\"url(#es)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"m\" x1=\"114.21\" x2=\"141.79\" y1=\"104.11\" y2=\"151.89\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B82B8\" offset=\"0\"/><stop stop-color=\"#6C74A8\" offset=\"1\"/></linearGradient><path d=\"m139.51 148.88h-23.03c-5.15 0-9.37-4.21-9.37-9.37v-23.03c0-5.15 4.21-9.37 9.37-9.37h23.03c5.15 0 9.37 4.21 9.37 9.37v23.03c0 5.15-4.22 9.37-9.37 9.37z\" fill=\"none\" stroke=\"url(#m)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fr\" x1=\"113.73\" x2=\"142.27\" y1=\"103.29\" y2=\"152.71\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B82B8\" offset=\"0\"/><stop stop-color=\"#6B74A8\" offset=\"1\"/></linearGradient><path d=\"m139.95 149.67h-23.9c-5.35 0-9.72-4.37-9.72-9.72v-23.9c0-5.35 4.37-9.72 9.72-9.72h23.9c5.35 0 9.72 4.37 9.72 9.72v23.9c0 5.34-4.38 9.72-9.72 9.72z\" fill=\"none\" stroke=\"url(#fr)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"d\" x1=\"113.26\" x2=\"142.74\" y1=\"102.47\" y2=\"153.53\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B82B9\" offset=\"0\"/><stop stop-color=\"#6B74A7\" offset=\"1\"/></linearGradient><path d=\"m140.38 150.46h-24.76c-5.54 0-10.07-4.53-10.07-10.07v-24.76c0-5.54 4.53-10.07 10.07-10.07h24.76c5.54 0 10.07 4.53 10.07 10.07v24.76c0.01 5.53-4.53 10.07-10.07 10.07z\" fill=\"none\" stroke=\"url(#d)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dj\" x1=\"112.79\" x2=\"143.21\" y1=\"101.65\" y2=\"154.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B82B9\" offset=\"0\"/><stop stop-color=\"#6B73A7\" offset=\"1\"/></linearGradient><path d=\"m140.82 151.24h-25.63c-5.74 0-10.43-4.69-10.43-10.43v-25.63c0-5.74 4.69-10.43 10.43-10.43h25.63c5.74 0 10.43 4.69 10.43 10.43v25.63c-0.01 5.74-4.7 10.43-10.43 10.43z\" fill=\"none\" stroke=\"url(#dj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"co\" x1=\"112.31\" x2=\"143.69\" y1=\"100.83\" y2=\"155.17\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B83B9\" offset=\"0\"/><stop stop-color=\"#6B73A7\" offset=\"1\"/></linearGradient><path d=\"m141.25 152.03h-26.5c-5.93 0-10.78-4.85-10.78-10.78v-26.5c0-5.93 4.85-10.78 10.78-10.78h26.5c5.93 0 10.78 4.85 10.78 10.78v26.5c0 5.93-4.85 10.78-10.78 10.78z\" fill=\"none\" stroke=\"url(#co)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bc\" x1=\"111.84\" x2=\"144.16\" y1=\"100.01\" y2=\"155.99\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B83B9\" offset=\"0\"/><stop stop-color=\"#6A72A6\" offset=\"1\"/></linearGradient><path d=\"m141.69 152.82h-27.37c-6.12 0-11.13-5.01-11.13-11.13v-27.37c0-6.12 5.01-11.13 11.13-11.13h27.37c6.12 0 11.13 5.01 11.13 11.13v27.37c0 6.12-5.01 11.13-11.13 11.13z\" fill=\"none\" stroke=\"url(#bc)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"q\" x1=\"111.36\" x2=\"144.63\" y1=\"99.187\" y2=\"156.81\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7B83B9\" offset=\"0\"/><stop stop-color=\"#6972A6\" offset=\"1\"/></linearGradient><path d=\"m142.12 153.61h-28.24c-6.32 0-11.49-5.17-11.49-11.49v-28.24c0-6.32 5.17-11.49 11.49-11.49h28.24c6.32 0 11.49 5.17 11.49 11.49v28.24c0 6.32-5.17 11.49-11.49 11.49z\" fill=\"none\" stroke=\"url(#q)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ez\" x1=\"110.89\" x2=\"145.11\" y1=\"98.367\" y2=\"157.63\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7C83B9\" offset=\"0\"/><stop stop-color=\"#6972A5\" offset=\"1\"/></linearGradient><path d=\"m142.56 154.4h-29.11c-6.51 0-11.84-5.33-11.84-11.84v-29.11c0-6.51 5.33-11.84 11.84-11.84h29.11c6.51 0 11.84 5.33 11.84 11.84v29.11c0 6.51-5.33 11.84-11.84 11.84z\" fill=\"none\" stroke=\"url(#ez)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dz\" x1=\"110.42\" x2=\"145.58\" y1=\"97.547\" y2=\"158.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7C83B9\" offset=\"0\"/><stop stop-color=\"#6972A5\" offset=\"1\"/></linearGradient><path d=\"m142.99 155.19h-29.98c-6.71 0-12.2-5.49-12.2-12.2v-29.98c0-6.71 5.49-12.2 12.2-12.2h29.98c6.71 0 12.2 5.49 12.2 12.2v29.98c0 6.71-5.49 12.2-12.2 12.2z\" fill=\"none\" stroke=\"url(#dz)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fh\" x1=\"109.94\" x2=\"146.06\" y1=\"96.726\" y2=\"159.27\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7C84BA\" offset=\"0\"/><stop stop-color=\"#6971A5\" offset=\"1\"/></linearGradient><path d=\"m143.43 155.98h-30.85c-6.9 0-12.55-5.65-12.55-12.55v-30.85c0-6.9 5.65-12.55 12.55-12.55h30.85c6.9 0 12.55 5.65 12.55 12.55v30.85c0 6.9-5.65 12.55-12.55 12.55z\" fill=\"none\" stroke=\"url(#fh)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ao\" x1=\"109.47\" x2=\"146.53\" y1=\"95.906\" y2=\"160.09\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D84BA\" offset=\"0\"/><stop stop-color=\"#6871A5\" offset=\"1\"/></linearGradient><path d=\"m143.86 156.76h-31.72c-7.1 0-12.9-5.81-12.9-12.9v-31.72c0-7.1 5.81-12.9 12.9-12.9h31.72c7.1 0 12.9 5.81 12.9 12.9v31.72c0 7.1-5.8 12.9-12.9 12.9z\" fill=\"none\" stroke=\"url(#ao)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ae\" x1=\"109\" x2=\"147\" y1=\"95.085\" y2=\"160.91\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D84BA\" offset=\"0\"/><stop stop-color=\"#6870A3\" offset=\"1\"/></linearGradient><path d=\"m144.3 157.55h-32.6c-7.29 0-13.26-5.97-13.26-13.26v-32.59c0-7.29 5.97-13.26 13.26-13.26h32.59c7.29 0 13.26 5.97 13.26 13.26v32.59c0 7.3-5.96 13.26-13.25 13.26z\" fill=\"none\" stroke=\"url(#ae)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gh\" x1=\"108.52\" x2=\"147.48\" y1=\"94.265\" y2=\"161.74\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D84BA\" offset=\"0\"/><stop stop-color=\"#6770A3\" offset=\"1\"/></linearGradient><path d=\"m144.73 158.34h-33.46c-7.49 0-13.61-6.12-13.61-13.61v-33.46c0-7.49 6.12-13.61 13.61-13.61h33.46c7.49 0 13.61 6.12 13.61 13.61v33.46c0 7.49-6.12 13.61-13.61 13.61z\" fill=\"none\" stroke=\"url(#gh)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cq\" x1=\"108.05\" x2=\"147.95\" y1=\"93.445\" y2=\"162.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D84BB\" offset=\"0\"/><stop stop-color=\"#676FA3\" offset=\"1\"/></linearGradient><path d=\"m145.16 159.13h-34.33c-7.68 0-13.96-6.28-13.96-13.96v-34.33c0-7.68 6.28-13.96 13.96-13.96h34.33c7.68 0 13.96 6.28 13.96 13.96v34.33c0.01 7.68-6.27 13.96-13.96 13.96z\" fill=\"none\" stroke=\"url(#cq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cs\" x1=\"107.58\" x2=\"148.42\" y1=\"92.624\" y2=\"163.38\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D85BB\" offset=\"0\"/><stop stop-color=\"#666FA2\" offset=\"1\"/></linearGradient><path d=\"m145.6 159.92h-35.2c-7.87 0-14.32-6.44-14.32-14.32v-35.2c0-7.87 6.44-14.32 14.32-14.32h35.2c7.87 0 14.32 6.44 14.32 14.32v35.2c0 7.87-6.45 14.32-14.32 14.32z\" fill=\"none\" stroke=\"url(#cs)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bs\" x1=\"107.1\" x2=\"148.9\" y1=\"91.804\" y2=\"164.2\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D85BB\" offset=\"0\"/><stop stop-color=\"#666FA2\" offset=\"1\"/></linearGradient><path d=\"m146.03 160.71h-36.07c-8.07 0-14.67-6.6-14.67-14.67v-36.07c0-8.07 6.6-14.67 14.67-14.67h36.07c8.07 0 14.67 6.6 14.67 14.67v36.07c0.01 8.06-6.6 14.67-14.67 14.67z\" fill=\"none\" stroke=\"url(#bs)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bz\" x1=\"106.63\" x2=\"149.37\" y1=\"90.983\" y2=\"165.02\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7D85BB\" offset=\"0\"/><stop stop-color=\"#666FA2\" offset=\"1\"/></linearGradient><path d=\"m146.47 161.49h-36.94c-8.26 0-15.03-6.76-15.03-15.03v-36.94c0-8.26 6.76-15.03 15.03-15.03h36.94c8.26 0 15.03 6.76 15.03 15.03v36.94c-0.01 8.27-6.77 15.03-15.03 15.03z\" fill=\"none\" stroke=\"url(#bz)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ev\" x1=\"106.15\" x2=\"149.85\" y1=\"90.163\" y2=\"165.84\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7E85BB\" offset=\"0\"/><stop stop-color=\"#666EA1\" offset=\"1\"/></linearGradient><path d=\"m146.9 162.28h-37.8c-8.46 0-15.38-6.92-15.38-15.38v-37.8c0-8.46 6.92-15.38 15.38-15.38h37.81c8.46 0 15.38 6.92 15.38 15.38v37.81c-0.01 8.45-6.93 15.37-15.39 15.37z\" fill=\"none\" stroke=\"url(#ev)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"du\" x1=\"105.68\" x2=\"150.32\" y1=\"89.342\" y2=\"166.66\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7E85BB\" offset=\"0\"/><stop stop-color=\"#656EA1\" offset=\"1\"/></linearGradient><path d=\"m147.34 163.07h-38.68c-8.65 0-15.73-7.08-15.73-15.73v-38.68c0-8.65 7.08-15.73 15.73-15.73h38.68c8.65 0 15.73 7.08 15.73 15.73v38.68c0 8.65-7.08 15.73-15.73 15.73z\" fill=\"none\" stroke=\"url(#du)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bl\" x1=\"105.21\" x2=\"150.79\" y1=\"88.522\" y2=\"167.48\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7E85BB\" offset=\"0\"/><stop stop-color=\"#656EA0\" offset=\"1\"/></linearGradient><path d=\"m147.77 163.86h-39.55c-8.85 0-16.09-7.24-16.09-16.09v-39.55c0-8.85 7.24-16.09 16.09-16.09h39.55c8.85 0 16.09 7.24 16.09 16.09v39.55c0 8.85-7.24 16.09-16.09 16.09z\" fill=\"none\" stroke=\"url(#bl)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ay\" x1=\"104.73\" x2=\"151.27\" y1=\"87.702\" y2=\"168.3\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F86BC\" offset=\"0\"/><stop stop-color=\"#646DA0\" offset=\"1\"/></linearGradient><path d=\"m148.21 164.65h-40.42c-9.04 0-16.44-7.4-16.44-16.44v-40.42c0-9.04 7.4-16.44 16.44-16.44h40.42c9.04 0 16.44 7.4 16.44 16.44v40.42c0 9.04-7.4 16.44-16.44 16.44z\" fill=\"none\" stroke=\"url(#ay)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gq\" x1=\"104.26\" x2=\"151.74\" y1=\"86.881\" y2=\"169.12\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F86BC\" offset=\"0\"/><stop stop-color=\"#646DA0\" offset=\"1\"/></linearGradient><path d=\"m148.64 165.44h-41.29c-9.24 0-16.79-7.56-16.79-16.79v-41.29c0-9.24 7.56-16.79 16.79-16.79h41.29c9.24 0 16.79 7.56 16.79 16.79v41.29c0.01 9.23-7.55 16.79-16.79 16.79z\" fill=\"none\" stroke=\"url(#gq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ah\" x1=\"103.79\" x2=\"152.21\" y1=\"86.061\" y2=\"169.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F86BC\" offset=\"0\"/><stop stop-color=\"#646D9F\" offset=\"1\"/></linearGradient><path d=\"m149.08 166.23h-42.16c-9.43 0-17.15-7.72-17.15-17.15v-42.16c0-9.43 7.72-17.15 17.15-17.15h42.16c9.43 0 17.15 7.72 17.15 17.15v42.16c0 9.43-7.72 17.15-17.15 17.15z\" fill=\"none\" stroke=\"url(#ah)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gl\" x1=\"103.31\" x2=\"152.69\" y1=\"85.24\" y2=\"170.76\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F86BC\" offset=\"0\"/><stop stop-color=\"#636C9E\" offset=\"1\"/></linearGradient><path d=\"m149.51 167.01h-43.02c-9.63 0-17.5-7.88-17.5-17.5v-43.02c0-9.63 7.88-17.5 17.5-17.5h43.02c9.63 0 17.5 7.88 17.5 17.5v43.02c0 9.63-7.87 17.5-17.5 17.5z\" fill=\"none\" stroke=\"url(#gl)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ce\" x1=\"102.84\" x2=\"153.16\" y1=\"84.42\" y2=\"171.58\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8087BC\" offset=\"0\"/><stop stop-color=\"#636C9E\" offset=\"1\"/></linearGradient><path d=\"m149.95 167.8h-43.89c-9.82 0-17.86-8.03-17.86-17.86v-43.89c0-9.82 8.03-17.86 17.86-17.86h43.89c9.82 0 17.86 8.03 17.86 17.86v43.89c-0.01 9.83-8.04 17.86-17.86 17.86z\" fill=\"none\" stroke=\"url(#ce)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fu\" x1=\"102.37\" x2=\"153.63\" y1=\"83.6\" y2=\"172.4\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F87BD\" offset=\"0\"/><stop stop-color=\"#636B9E\" offset=\"1\"/></linearGradient><path d=\"m150.38 168.59h-44.76c-10.01 0-18.21-8.19-18.21-18.21v-44.76c0-10.01 8.19-18.21 18.21-18.21h44.76c10.01 0 18.21 8.19 18.21 18.21v44.76c0 10.02-8.19 18.21-18.21 18.21z\" fill=\"none\" stroke=\"url(#fu)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"el\" x1=\"101.89\" x2=\"154.11\" y1=\"82.779\" y2=\"173.22\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7F87BD\" offset=\"0\"/><stop stop-color=\"#626B9E\" offset=\"1\"/></linearGradient><path d=\"m150.82 169.38h-45.63c-10.21 0-18.56-8.35-18.56-18.56v-45.63c0-10.21 8.35-18.56 18.56-18.56h45.63c10.21 0 18.56 8.35 18.56 18.56v45.63c0 10.21-8.35 18.56-18.56 18.56z\" fill=\"none\" stroke=\"url(#el)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"af\" x1=\"101.42\" x2=\"154.58\" y1=\"81.959\" y2=\"174.04\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8087BD\" offset=\"0\"/><stop stop-color=\"#626B9D\" offset=\"1\"/></linearGradient><path d=\"m151.25 170.17h-46.5c-10.4 0-18.92-8.51-18.92-18.92v-46.5c0-10.4 8.51-18.92 18.92-18.92h46.5c10.4 0 18.92 8.51 18.92 18.92v46.5c0 10.41-8.51 18.92-18.92 18.92z\" fill=\"none\" stroke=\"url(#af)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"aw\" x1=\"100.94\" x2=\"155.06\" y1=\"81.138\" y2=\"174.86\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BD\" offset=\"0\"/><stop stop-color=\"#626B9D\" offset=\"1\"/></linearGradient><path d=\"m151.69 170.96h-47.37c-10.6 0-19.27-8.67-19.27-19.27v-47.37c0-10.6 8.67-19.27 19.27-19.27h47.37c10.6 0 19.27 8.67 19.27 19.27v47.37c0 10.59-8.68 19.27-19.27 19.27z\" fill=\"none\" stroke=\"url(#aw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bj\" x1=\"100.47\" x2=\"155.53\" y1=\"80.318\" y2=\"175.68\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BD\" offset=\"0\"/><stop stop-color=\"#626A9C\" offset=\"1\"/></linearGradient><path d=\"m152.12 171.74h-48.24c-10.79 0-19.62-8.83-19.62-19.62v-48.24c0-10.79 8.83-19.62 19.62-19.62h48.24c10.79 0 19.62 8.83 19.62 19.62v48.24c0 10.79-8.83 19.62-19.62 19.62z\" fill=\"none\" stroke=\"url(#bj)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gt\" x1=\"99.997\" x2=\"156\" y1=\"79.498\" y2=\"176.5\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BD\" offset=\"0\"/><stop stop-color=\"#616A9C\" offset=\"1\"/></linearGradient><path d=\"m152.56 172.53h-49.11c-10.99 0-19.98-8.99-19.98-19.98v-49.11c0-10.99 8.99-19.98 19.98-19.98h49.11c10.99 0 19.98 8.99 19.98 19.98v49.11c-0.01 10.99-9 19.98-19.98 19.98z\" fill=\"none\" stroke=\"url(#gt)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fo\" x1=\"99.523\" x2=\"156.48\" y1=\"78.677\" y2=\"177.32\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BD\" offset=\"0\"/><stop stop-color=\"#616A9C\" offset=\"1\"/></linearGradient><path d=\"m152.99 173.32h-49.98c-11.18 0-20.33-9.15-20.33-20.33v-49.98c0-11.18 9.15-20.33 20.33-20.33h49.98c11.18 0 20.33 9.15 20.33 20.33v49.98c0 11.18-9.15 20.33-20.33 20.33z\" fill=\"none\" stroke=\"url(#fo)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fl\" x1=\"99.05\" x2=\"156.95\" y1=\"77.857\" y2=\"178.14\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BE\" offset=\"0\"/><stop stop-color=\"#60699B\" offset=\"1\"/></linearGradient><path d=\"m153.43 174.11h-50.85c-11.38 0-20.68-9.31-20.68-20.68v-50.85c0-11.38 9.31-20.68 20.68-20.68h50.85c11.38 0 20.68 9.31 20.68 20.68v50.85c0 11.37-9.31 20.68-20.68 20.68z\" fill=\"none\" stroke=\"url(#fl)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"at\" x1=\"98.576\" x2=\"157.42\" y1=\"77.036\" y2=\"178.96\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8088BE\" offset=\"0\"/><stop stop-color=\"#60699B\" offset=\"1\"/></linearGradient><path d=\"m153.86 174.9h-51.72c-11.57 0-21.04-9.47-21.04-21.04v-51.72c0-11.57 9.47-21.04 21.04-21.04h51.72c11.57 0 21.04 9.47 21.04 21.04v51.72c0 11.57-9.47 21.04-21.04 21.04z\" fill=\"none\" stroke=\"url(#at)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ed\" x1=\"98.103\" x2=\"157.9\" y1=\"76.216\" y2=\"179.78\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8188BE\" offset=\"0\"/><stop stop-color=\"#60689A\" offset=\"1\"/></linearGradient><path d=\"m154.29 175.69h-52.59c-11.77 0-21.39-9.63-21.39-21.39v-52.59c0-11.77 9.63-21.39 21.39-21.39h52.59c11.77 0 21.39 9.63 21.39 21.39v52.59c0.01 11.76-9.62 21.39-21.39 21.39z\" fill=\"none\" stroke=\"url(#ed)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gc\" x1=\"97.629\" x2=\"158.37\" y1=\"75.396\" y2=\"180.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8189BE\" offset=\"0\"/><stop stop-color=\"#5F689A\" offset=\"1\"/></linearGradient><path d=\"m154.73 176.48h-53.46c-11.96 0-21.75-9.79-21.75-21.75v-53.46c0-11.96 9.79-21.75 21.75-21.75h53.46c11.96 0 21.75 9.79 21.75 21.75v53.46c0 11.96-9.79 21.75-21.75 21.75z\" fill=\"none\" stroke=\"url(#gc)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fw\" x1=\"97.155\" x2=\"158.84\" y1=\"74.575\" y2=\"181.42\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8189BE\" offset=\"0\"/><stop stop-color=\"#5F6799\" offset=\"1\"/></linearGradient><path d=\"m155.16 177.26h-54.33c-12.15 0-22.1-9.94-22.1-22.1v-54.33c0-12.15 9.94-22.1 22.1-22.1h54.33c12.15 0 22.1 9.94 22.1 22.1v54.33c0 12.16-9.94 22.1-22.1 22.1z\" fill=\"none\" stroke=\"url(#fw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bv\" x1=\"96.682\" x2=\"159.32\" y1=\"73.755\" y2=\"182.25\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8189BE\" offset=\"0\"/><stop stop-color=\"#5F6799\" offset=\"1\"/></linearGradient><path d=\"m155.6 178.05h-55.2c-12.35 0-22.45-10.1-22.45-22.45v-55.2c0-12.35 10.1-22.45 22.45-22.45h55.2c12.35 0 22.45 10.1 22.45 22.45v55.2c0 12.35-10.1 22.45-22.45 22.45z\" fill=\"none\" stroke=\"url(#bv)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"s\" x1=\"96.208\" x2=\"159.79\" y1=\"72.934\" y2=\"183.07\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8189BF\" offset=\"0\"/><stop stop-color=\"#5E6799\" offset=\"1\"/></linearGradient><path d=\"m156.03 178.84h-56.06c-12.54 0-22.81-10.26-22.81-22.81v-56.06c0-12.54 10.26-22.81 22.81-22.81h56.07c12.54 0 22.81 10.26 22.81 22.81v56.07c-0.01 12.54-10.27 22.8-22.82 22.8z\" fill=\"none\" stroke=\"url(#s)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"gi\" x1=\"95.734\" x2=\"160.27\" y1=\"72.114\" y2=\"183.89\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#818ABF\" offset=\"0\"/><stop stop-color=\"#5E6798\" offset=\"1\"/></linearGradient><path d=\"m156.47 179.63h-56.94c-12.74 0-23.16-10.42-23.16-23.16v-56.94c0-12.74 10.42-23.16 23.16-23.16h56.94c12.74 0 23.16 10.42 23.16 23.16v56.94c0 12.74-10.42 23.16-23.16 23.16z\" fill=\"none\" stroke=\"url(#gi)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fb\" x1=\"95.26\" x2=\"160.74\" y1=\"71.294\" y2=\"184.71\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#828ABF\" offset=\"0\"/><stop stop-color=\"#5D6698\" offset=\"1\"/></linearGradient><path d=\"m156.9 180.42h-57.8c-12.93 0-23.51-10.58-23.51-23.51v-57.81c0-12.93 10.58-23.51 23.51-23.51h57.81c12.93 0 23.51 10.58 23.51 23.51v57.81c0 12.93-10.58 23.51-23.52 23.51z\" fill=\"none\" stroke=\"url(#fb)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"g\" x1=\"94.787\" x2=\"161.21\" y1=\"70.473\" y2=\"185.53\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#828ABF\" offset=\"0\"/><stop stop-color=\"#5D6698\" offset=\"1\"/></linearGradient><path d=\"m157.34 181.21h-58.68c-13.13 0-23.87-10.74-23.87-23.87v-58.68c0-13.13 10.74-23.87 23.87-23.87h58.68c13.13 0 23.87 10.74 23.87 23.87v58.68c0 13.13-10.74 23.87-23.87 23.87z\" fill=\"none\" stroke=\"url(#g)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"et\" x1=\"94.313\" x2=\"161.69\" y1=\"69.653\" y2=\"186.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#828ABF\" offset=\"0\"/><stop stop-color=\"#5D6697\" offset=\"1\"/></linearGradient><path d=\"m157.77 181.99h-59.54c-13.32 0-24.22-10.9-24.22-24.22v-59.54c0-13.32 10.9-24.22 24.22-24.22h59.55c13.32 0 24.22 10.9 24.22 24.22v59.55c-0.01 13.31-10.91 24.21-24.23 24.21z\" fill=\"none\" stroke=\"url(#et)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dp\" x1=\"93.84\" x2=\"162.16\" y1=\"68.832\" y2=\"187.17\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#828BC0\" offset=\"0\"/><stop stop-color=\"#5D6697\" offset=\"1\"/></linearGradient><path d=\"m158.21 182.78h-60.42c-13.52 0-24.58-11.06-24.58-24.58v-60.41c0-13.52 11.06-24.58 24.58-24.58h60.42c13.52 0 24.58 11.06 24.58 24.58v60.42c-0.01 13.51-11.07 24.57-24.58 24.57z\" fill=\"none\" stroke=\"url(#dp)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fp\" x1=\"93.366\" x2=\"162.63\" y1=\"68.012\" y2=\"187.99\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5C6597\" offset=\"1\"/></linearGradient><path d=\"m158.64 183.57h-61.28c-13.71 0-24.93-11.22-24.93-24.93v-61.28c0-13.71 11.22-24.93 24.93-24.93h61.28c13.71 0 24.93 11.22 24.93 24.93v61.28c0 13.71-11.22 24.93-24.93 24.93z\" fill=\"none\" stroke=\"url(#fp)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cn\" x1=\"92.892\" x2=\"163.11\" y1=\"67.192\" y2=\"188.81\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5C6597\" offset=\"1\"/></linearGradient><path d=\"m159.08 184.36h-62.16c-13.91 0-25.28-11.38-25.28-25.28v-62.16c0-13.91 11.38-25.28 25.28-25.28h62.15c13.91 0 25.28 11.38 25.28 25.28v62.15c0.01 13.91-11.37 25.29-25.27 25.29z\" fill=\"none\" stroke=\"url(#cn)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bo\" x1=\"92.419\" x2=\"163.58\" y1=\"66.371\" y2=\"189.63\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5B6596\" offset=\"1\"/></linearGradient><path d=\"m159.51 185.15h-63.02c-14.1 0-25.64-11.54-25.64-25.64v-63.02c0-14.1 11.54-25.64 25.64-25.64h63.02c14.1 0 25.64 11.54 25.64 25.64v63.02c0 14.1-11.54 25.64-25.64 25.64z\" fill=\"none\" stroke=\"url(#bo)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ge\" x1=\"91.945\" x2=\"164.06\" y1=\"65.551\" y2=\"190.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5C6596\" offset=\"1\"/></linearGradient><path d=\"m159.95 185.94h-63.9c-14.29 0-25.99-11.7-25.99-25.99v-63.9c0-14.29 11.7-25.99 25.99-25.99h63.89c14.29 0 25.99 11.7 25.99 25.99v63.89c0.01 14.3-11.69 26-25.98 26z\" fill=\"none\" stroke=\"url(#ge)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fg\" x1=\"91.471\" x2=\"164.53\" y1=\"64.73\" y2=\"191.27\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5B6495\" offset=\"1\"/></linearGradient><path d=\"m160.38 186.73h-64.76c-14.49 0-26.34-11.85-26.34-26.34v-64.77c0-14.49 11.85-26.34 26.34-26.34h64.76c14.49 0 26.34 11.85 26.34 26.34v64.76c0.01 14.49-11.85 26.35-26.34 26.35z\" fill=\"none\" stroke=\"url(#fg)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dw\" x1=\"90.998\" x2=\"165\" y1=\"63.91\" y2=\"192.09\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838BC0\" offset=\"0\"/><stop stop-color=\"#5B6495\" offset=\"1\"/></linearGradient><path d=\"m160.82 187.51h-65.64c-14.68 0-26.7-12.01-26.7-26.7v-65.63c0-14.68 12.01-26.7 26.7-26.7h65.63c14.68 0 26.7 12.01 26.7 26.7v65.63c0 14.69-12.01 26.7-26.69 26.7z\" fill=\"none\" stroke=\"url(#dw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fq\" x1=\"90.524\" x2=\"165.48\" y1=\"63.09\" y2=\"192.91\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#838CC1\" offset=\"0\"/><stop stop-color=\"#5A6394\" offset=\"1\"/></linearGradient><path d=\"m161.25 188.3h-66.5c-14.88 0-27.05-12.17-27.05-27.05v-66.5c0-14.88 12.17-27.05 27.05-27.05h66.5c14.88 0 27.05 12.17 27.05 27.05v66.5c0 14.88-12.17 27.05-27.05 27.05z\" fill=\"none\" stroke=\"url(#fq)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"z\" x1=\"90.05\" x2=\"165.95\" y1=\"62.269\" y2=\"193.73\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#848CC2\" offset=\"0\"/><stop stop-color=\"#596394\" offset=\"1\"/></linearGradient><path d=\"m161.69 189.09h-67.38c-15.07 0-27.41-12.33-27.41-27.41v-67.37c0-15.07 12.33-27.41 27.41-27.41h67.37c15.07 0 27.41 12.33 27.41 27.41v67.37c0 15.08-12.33 27.41-27.4 27.41z\" fill=\"none\" stroke=\"url(#z)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bp\" x1=\"89.577\" x2=\"166.42\" y1=\"61.449\" y2=\"194.55\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#848CC2\" offset=\"0\"/><stop stop-color=\"#596394\" offset=\"1\"/></linearGradient><path d=\"m162.12 189.88h-68.24c-15.27 0-27.76-12.49-27.76-27.76v-68.24c0-15.27 12.49-27.76 27.76-27.76h68.24c15.27 0 27.76 12.49 27.76 27.76v68.24c0 15.27-12.49 27.76-27.76 27.76z\" fill=\"none\" stroke=\"url(#bp)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"am\" x1=\"89.103\" x2=\"166.9\" y1=\"60.628\" y2=\"195.37\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#848CC2\" offset=\"0\"/><stop stop-color=\"#596394\" offset=\"1\"/></linearGradient><path d=\"m162.56 190.67h-69.12c-15.46 0-28.11-12.65-28.11-28.11v-69.12c0-15.46 12.65-28.11 28.11-28.11h69.11c15.46 0 28.11 12.65 28.11 28.11v69.11c0.01 15.47-12.64 28.12-28.1 28.12z\" fill=\"none\" stroke=\"url(#am)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"cr\" x1=\"88.629\" x2=\"167.37\" y1=\"59.808\" y2=\"196.19\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858DC2\" offset=\"0\"/><stop stop-color=\"#596293\" offset=\"1\"/></linearGradient><path d=\"m162.99 191.46h-69.98c-15.66 0-28.47-12.81-28.47-28.47v-69.98c0-15.66 12.81-28.47 28.47-28.47h69.98c15.66 0 28.47 12.81 28.47 28.47v69.98c0 15.66-12.81 28.47-28.47 28.47z\" fill=\"none\" stroke=\"url(#cr)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"al\" x1=\"88.156\" x2=\"167.84\" y1=\"58.987\" y2=\"197.01\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858DC2\" offset=\"0\"/><stop stop-color=\"#586293\" offset=\"1\"/></linearGradient><path d=\"m163.42 192.24h-70.84c-15.85 0-28.82-12.97-28.82-28.82v-70.84c0-15.85 12.97-28.82 28.82-28.82h70.85c15.85 0 28.82 12.97 28.82 28.82v70.85c-0.01 15.85-12.97 28.81-28.83 28.81z\" fill=\"none\" stroke=\"url(#al)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fk\" x1=\"87.682\" x2=\"168.32\" y1=\"58.167\" y2=\"197.83\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858DC2\" offset=\"0\"/><stop stop-color=\"#586293\" offset=\"1\"/></linearGradient><path d=\"m163.86 193.03h-71.72c-16.05 0-29.17-13.13-29.17-29.17v-71.72c0-16.05 13.13-29.17 29.17-29.17h71.72c16.05 0 29.17 13.13 29.17 29.17v71.72c0 16.04-13.13 29.17-29.17 29.17z\" fill=\"none\" stroke=\"url(#fk)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dk\" x1=\"87.208\" x2=\"168.79\" y1=\"57.347\" y2=\"198.65\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858DC2\" offset=\"0\"/><stop stop-color=\"#586192\" offset=\"1\"/></linearGradient><path d=\"m164.29 193.82h-72.58c-16.24 0-29.53-13.29-29.53-29.53v-72.58c0-16.24 13.29-29.53 29.53-29.53h72.59c16.24 0 29.53 13.29 29.53 29.53v72.59c-0.01 16.23-13.3 29.52-29.54 29.52z\" fill=\"none\" stroke=\"url(#dk)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ad\" x1=\"86.735\" x2=\"169.27\" y1=\"56.526\" y2=\"199.47\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858EC3\" offset=\"0\"/><stop stop-color=\"#586192\" offset=\"1\"/></linearGradient><path d=\"m164.73 194.61h-73.46c-16.43 0-29.88-13.45-29.88-29.88v-73.46c0-16.43 13.45-29.88 29.88-29.88h73.46c16.43 0 29.88 13.45 29.88 29.88v73.46c0 16.43-13.45 29.88-29.88 29.88z\" fill=\"none\" stroke=\"url(#ad)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dx\" x1=\"86.261\" x2=\"169.74\" y1=\"55.706\" y2=\"200.29\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858EC3\" offset=\"0\"/><stop stop-color=\"#576192\" offset=\"1\"/></linearGradient><path d=\"m165.16 195.4h-74.32c-16.63 0-30.23-13.61-30.23-30.23v-74.33c0-16.63 13.61-30.23 30.23-30.23h74.33c16.63 0 30.23 13.61 30.23 30.23v74.33c0 16.62-13.61 30.23-30.24 30.23z\" fill=\"none\" stroke=\"url(#dx)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fm\" x1=\"85.787\" x2=\"170.21\" y1=\"54.886\" y2=\"201.11\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#858EC3\" offset=\"0\"/><stop stop-color=\"#576091\" offset=\"1\"/></linearGradient><path d=\"m165.6 196.19h-75.2c-16.82 0-30.59-13.76-30.59-30.59v-75.2c0-16.82 13.76-30.59 30.59-30.59h75.2c16.82 0 30.59 13.76 30.59 30.59v75.2c0 16.82-13.77 30.59-30.59 30.59z\" fill=\"none\" stroke=\"url(#fm)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"f\" x1=\"85.314\" x2=\"170.69\" y1=\"54.065\" y2=\"201.93\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#868EC3\" offset=\"0\"/><stop stop-color=\"#566091\" offset=\"1\"/></linearGradient><path d=\"m166.03 196.98h-76.06c-17.02 0-30.94-13.92-30.94-30.94v-76.07c0-17.02 13.92-30.94 30.94-30.94h76.07c17.02 0 30.94 13.92 30.94 30.94v76.07c0 17.01-13.93 30.94-30.95 30.94z\" fill=\"none\" stroke=\"url(#f)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"k\" x1=\"84.84\" x2=\"171.16\" y1=\"53.245\" y2=\"202.76\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#868FC3\" offset=\"0\"/><stop stop-color=\"#566090\" offset=\"1\"/></linearGradient><path d=\"m166.47 197.76h-76.94c-17.21 0-31.3-14.08-31.3-31.3v-76.93c0-17.21 14.08-31.3 31.3-31.3h76.94c17.21 0 31.3 14.08 31.3 31.3v76.94c-0.01 17.21-14.09 31.29-31.3 31.29z\" fill=\"none\" stroke=\"url(#k)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bh\" x1=\"84.366\" x2=\"171.63\" y1=\"52.424\" y2=\"203.58\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#868FC4\" offset=\"0\"/><stop stop-color=\"#555F90\" offset=\"1\"/></linearGradient><path d=\"m166.9 198.55h-77.8c-17.41 0-31.65-14.24-31.65-31.65v-77.8c0-17.41 14.24-31.65 31.65-31.65h77.81c17.41 0 31.65 14.24 31.65 31.65v77.81c-0.01 17.4-14.25 31.64-31.66 31.64z\" fill=\"none\" stroke=\"url(#bh)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"en\" x1=\"83.893\" x2=\"172.11\" y1=\"51.604\" y2=\"204.4\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#878FC4\" offset=\"0\"/><stop stop-color=\"#555F8F\" offset=\"1\"/></linearGradient><path d=\"m167.34 199.34h-78.68c-17.6 0-32-14.4-32-32v-78.68c0-17.6 14.4-32 32-32h78.68c17.6 0 32 14.4 32 32v78.68c0 17.6-14.4 32-32 32z\" fill=\"none\" stroke=\"url(#en)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ex\" x1=\"83.419\" x2=\"172.58\" y1=\"50.784\" y2=\"205.22\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#878FC4\" offset=\"0\"/><stop stop-color=\"#555F8F\" offset=\"1\"/></linearGradient><path d=\"m167.77 200.13h-79.54c-17.8 0-32.36-14.56-32.36-32.36v-79.54c0-17.8 14.56-32.36 32.36-32.36h79.54c17.8 0 32.36 14.56 32.36 32.36v79.54c0 17.8-14.56 32.36-32.36 32.36z\" fill=\"none\" stroke=\"url(#ex)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"u\" x1=\"82.945\" x2=\"173.05\" y1=\"49.963\" y2=\"206.04\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#878FC5\" offset=\"0\"/><stop stop-color=\"#555E8F\" offset=\"1\"/></linearGradient><path d=\"m168.21 200.92h-80.42c-17.99 0-32.71-14.72-32.71-32.71v-80.42c0-17.99 14.72-32.71 32.71-32.71h80.41c17.99 0 32.71 14.72 32.71 32.71v80.41c0.01 18-14.71 32.72-32.7 32.72z\" fill=\"none\" stroke=\"url(#u)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"bw\" x1=\"82.472\" x2=\"173.53\" y1=\"49.143\" y2=\"206.86\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8790C5\" offset=\"0\"/><stop stop-color=\"#545E8F\" offset=\"1\"/></linearGradient><path d=\"m168.64 201.71h-81.28c-18.19 0-33.06-14.88-33.06-33.06v-81.29c0-18.19 14.88-33.06 33.06-33.06h81.28c18.19 0 33.06 14.88 33.06 33.06v81.28c0.01 18.19-14.87 33.07-33.06 33.07z\" fill=\"none\" stroke=\"url(#bw)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"em\" x1=\"81.998\" x2=\"174\" y1=\"48.322\" y2=\"207.68\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8790C5\" offset=\"0\"/><stop stop-color=\"#545E8F\" offset=\"1\"/></linearGradient><path d=\"m169.08 202.49h-82.16c-18.38 0-33.42-15.04-33.42-33.42v-82.15c0-18.38 15.04-33.42 33.42-33.42h82.15c18.38 0 33.42 15.04 33.42 33.42v82.15c0 18.39-15.03 33.42-33.41 33.42z\" fill=\"none\" stroke=\"url(#em)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ff\" x1=\"81.524\" x2=\"174.48\" y1=\"47.502\" y2=\"208.5\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8790C5\" offset=\"0\"/><stop stop-color=\"#545D8E\" offset=\"1\"/></linearGradient><path d=\"m169.51 203.28h-83.02c-18.57 0-33.77-15.2-33.77-33.77v-83.02c0-18.57 15.2-33.77 33.77-33.77h83.02c18.57 0 33.77 15.2 33.77 33.77v83.02c0 18.58-15.19 33.77-33.77 33.77z\" fill=\"none\" stroke=\"url(#ff)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ga\" x1=\"81.051\" x2=\"174.95\" y1=\"46.681\" y2=\"209.32\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8790C5\" offset=\"0\"/><stop stop-color=\"#545D8E\" offset=\"1\"/></linearGradient><path d=\"m169.95 204.07h-83.9c-18.77 0-34.13-15.36-34.13-34.13v-83.89c0-18.77 15.36-34.13 34.13-34.13h83.89c18.77 0 34.13 15.36 34.13 34.13v83.89c0 18.78-15.35 34.13-34.12 34.13z\" fill=\"none\" stroke=\"url(#ga)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dl\" x1=\"80.577\" x2=\"175.42\" y1=\"45.861\" y2=\"210.14\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8890C5\" offset=\"0\"/><stop stop-color=\"#535D8E\" offset=\"1\"/></linearGradient><path d=\"m170.38 204.86h-84.76c-18.96 0-34.48-15.52-34.48-34.48v-84.76c0-18.96 15.52-34.48 34.48-34.48h84.76c18.96 0 34.48 15.52 34.48 34.48v84.76c0 18.96-15.52 34.48-34.48 34.48z\" fill=\"none\" stroke=\"url(#dl)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ek\" x1=\"80.103\" x2=\"175.9\" y1=\"45.041\" y2=\"210.96\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8890C5\" offset=\"0\"/><stop stop-color=\"#535D8D\" offset=\"1\"/></linearGradient><path d=\"m170.82 205.65h-85.64c-19.16 0-34.83-15.67-34.83-34.83v-85.64c0-19.16 15.67-34.83 34.83-34.83h85.63c19.16 0 34.83 15.67 34.83 34.83v85.63c0.01 19.16-15.67 34.84-34.82 34.84z\" fill=\"none\" stroke=\"url(#ek)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"ar\" x1=\"79.63\" x2=\"176.37\" y1=\"44.22\" y2=\"211.78\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8891C5\" offset=\"0\"/><stop stop-color=\"#525C8C\" offset=\"1\"/></linearGradient><path d=\"m171.25 206.44h-86.5c-19.35 0-35.19-15.83-35.19-35.19v-86.5c0-19.35 15.83-35.19 35.19-35.19h86.5c19.35 0 35.19 15.83 35.19 35.19v86.5c0 19.35-15.84 35.19-35.19 35.19z\" fill=\"none\" stroke=\"url(#ar)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"fn\" x1=\"79.156\" x2=\"176.84\" y1=\"43.4\" y2=\"212.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#525C8C\" offset=\"1\"/></linearGradient><path d=\"m171.69 207.23h-87.38c-19.55 0-35.54-15.99-35.54-35.54v-87.38c0-19.55 15.99-35.54 35.54-35.54h87.37c19.55 0 35.54 15.99 35.54 35.54v87.37c0.01 19.55-15.99 35.55-35.53 35.55z\" fill=\"none\" stroke=\"url(#fn)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><linearGradient id=\"dt\" x1=\"78.682\" x2=\"177.32\" y1=\"42.579\" y2=\"213.42\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8991C5\" offset=\"0\"/><stop stop-color=\"#515B8C\" offset=\"1\"/></linearGradient><path d=\"m172.12 208.01h-88.24c-19.74 0-35.89-16.15-35.89-35.89v-88.24c0-19.74 16.15-35.89 35.89-35.89h88.24c19.74 0 35.89 16.15 35.89 35.89v88.24c0 19.74-16.15 35.89-35.89 35.89z\" fill=\"none\" stroke=\"url(#dt)\" stroke-miterlimit=\"10\" stroke-width=\"5\"/><defs><path id=\"y\" d=\"m112.25 140.03s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1zm-28.4 24.14h-0.14-0.03 0.34-0.03-0.14zm90.55-46.51c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78zm-17.92 1.15c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.03 8.17-8.17 8.17-8.17zm31.05 20.85h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c-0.01 3.49 3.29 3.3 3.29 3.3zm3.84 7.5c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0.01-5.05-3.7-8.76-9.01-8.76z\"/></defs><clipPath id=\"as\"><use xlink:href=\"#y\"/></clipPath><g clip-path=\"url(#as)\"><path class=\"st205\" d=\"m112.25 140.15s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st205\" d=\"m83.85 164.29h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st206\" d=\"m112.6 140.5s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st206\" d=\"m84.2 164.64h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st207\" d=\"m112.95 140.85s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st207\" d=\"m84.56 164.99h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st208\" d=\"m113.3 141.2s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st208\" d=\"m84.91 165.35h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st209\" d=\"m113.66 141.56s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st209\" d=\"m85.26 165.7h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st210\" d=\"m114.01 141.91s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st210\" d=\"m85.61 166.05h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st211\" d=\"m114.36 142.26s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st211\" d=\"m85.96 166.4h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st212\" d=\"m114.71 142.61s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st212\" d=\"m86.32 166.76h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st213\" d=\"m115.07 142.97s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st213\" d=\"m86.67 167.11h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st214\" d=\"m115.42 143.32s0.18 24.02-28.26 24.14l-0.14-0.01-0.14 0.01c-28.44-0.12-28.26-24.14-28.26-24.14v-38.1s-0.61-4.94 3.96-4.94h10.94s2.72-0.12 2.72 4.63v37.31s-0.12 10.67 10.73 10.67h0.09c10.85 0 10.73-10.67 10.73-10.67v-37.31c0-4.76 2.72-4.63 2.72-4.63h10.94c4.57 0 3.96 4.94 3.96 4.94v38.1z\"/><path class=\"st214\" d=\"m87.02 167.46h-0.14-0.03 0.34-0.03-0.14z\"/><path class=\"st205\" d=\"m174.4 117.77c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st206\" d=\"m174.75 118.13c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st207\" d=\"m175.11 118.48c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st208\" d=\"m175.46 118.83c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st209\" d=\"m175.81 119.18c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.81s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c-0.01-0.01 22-0.01 22 20.78z\"/><path class=\"st210\" d=\"m176.16 119.53c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st211\" d=\"m176.52 119.89c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.82s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0-0.01 22.01-0.01 22.01 20.78z\"/><path class=\"st212\" d=\"m176.87 120.24c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st213\" d=\"m177.22 120.59c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.82s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0-0.01 22.01-0.01 22.01 20.78z\"/><path class=\"st214\" d=\"m177.57 120.94c0 20.79-16.46 22.86-23.9 23.29h-3.54s-2.99-0.12-2.99 3.41v15.61s0.18 2.87-2.87 2.87h-11.83s-2.77-0.06-2.77-2.77-0.03-59.23-0.03-59.11c0 0-0.49-4.08 4.08-4.08h21.83c0.01-0.01 22.02-0.01 22.02 20.78z\"/><path class=\"st205\" d=\"m187.53 139.78h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c-0.01 3.49 3.29 3.3 3.29 3.3z\"/><path class=\"st205\" d=\"m191.37 147.28c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0.01-5.05-3.7-8.76-9.01-8.76z\"/><path class=\"st206\" d=\"m187.88 140.13h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.49 3.29 3.3 3.29 3.3z\"/><path class=\"st206\" d=\"m191.73 147.63c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68s9.01-3.79 9.01-8.68c0-5.05-3.71-8.76-9.01-8.76z\"/><path class=\"st207\" d=\"m188.23 140.49h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st207\" d=\"m192.08 147.99c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0-5.06-3.71-8.76-9.01-8.76z\"/><path class=\"st208\" d=\"m188.58 140.84h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st208\" d=\"m192.43 148.34c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68s9.01-3.79 9.01-8.68c0-5.06-3.7-8.76-9.01-8.76z\"/><path class=\"st209\" d=\"m188.93 141.19h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st209\" d=\"m192.78 148.69c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0.01-5.05-3.7-8.76-9.01-8.76z\"/><path class=\"st210\" d=\"m189.29 141.54h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c-0.01 3.49 3.29 3.3 3.29 3.3z\"/><path class=\"st210\" d=\"m193.13 149.04c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0.01-5.05-3.7-8.76-9.01-8.76z\"/><path class=\"st211\" d=\"m189.64 141.9h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st211\" d=\"m193.49 149.39c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68s9.01-3.79 9.01-8.68c0-5.05-3.71-8.76-9.01-8.76z\"/><path class=\"st212\" d=\"m189.99 142.25h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st212\" d=\"m193.84 149.75c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0-5.06-3.7-8.76-9.01-8.76z\"/><path class=\"st213\" d=\"m190.34 142.6h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c0 3.48 3.29 3.3 3.29 3.3z\"/><path class=\"st213\" d=\"m194.19 150.1c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68s9.01-3.79 9.01-8.68c0-5.05-3.7-8.76-9.01-8.76z\"/><path class=\"st214\" d=\"m190.7 142.95h7.62c4.08 0 3.72-3.72 3.72-3.72l1.71-34.93c0-4.63-4.21-4.21-4.21-4.21h-9.45c-5.87 0-4.63 4.63-4.63 4.63l1.95 34.93c-0.01 3.49 3.29 3.3 3.29 3.3z\"/><path class=\"st214\" d=\"m194.54 150.45c-5.31 0-9.01 3.71-9.01 8.76 0 4.89 3.71 8.68 9.01 8.68 5.31 0 9.01-3.79 9.01-8.68 0.01-5.05-3.7-8.76-9.01-8.76z\"/><path class=\"st214\" d=\"m159.65 122.1c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st215\" d=\"m159.3 121.75c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st216\" d=\"m158.94 121.4c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st217\" d=\"m158.59 121.04c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.03 8.17-8.17 8.17-8.17z\"/><path class=\"st218\" d=\"m158.24 120.69c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.03 8.17-8.17 8.17-8.17z\"/><path class=\"st219\" d=\"m157.89 120.34c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st220\" d=\"m157.53 119.99c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st221\" d=\"m157.18 119.64c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/><path class=\"st222\" d=\"m156.83 119.28c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.03 8.17-8.17 8.17-8.17z\"/><path class=\"st223\" d=\"m156.48 118.93c0-7.62-5.73-7.74-5.73-7.74h-6.77l0.06 15.91h4.27c8.78-1.04 8.17-8.17 8.17-8.17z\"/></g></g></svg>`\nexport default image\n","import debug from 'debug'\n\nconst popupLog = debug('upProvider:popup')\n\nexport interface ModalPopup {\n  openModal(): void\n  closeModal(): void\n  destroyModal(): void\n  createModal(): Promise<{ isNew: boolean; window: Window }>\n  isOpen: boolean\n  contentWindow?: Window\n}\n\nclass VanillaModalPopup implements ModalPopup {\n  private modalElement: HTMLDivElement\n  private iframeElement: HTMLIFrameElement\n  private closeButton: HTMLSpanElement\n  private iframeSrc: string\n  private promise?: Promise<Window>\n  private resolve?: (window: Window) => void\n  private reject?: (error: Error) => void\n\n  isOpen = false\n  contentWindow?: Window\n\n  constructor(iframeSrc: string, id: string) {\n    this.iframeSrc = iframeSrc\n\n    // Create modal structure\n    this.modalElement = document.createElement('div')\n    this.modalElement.id = id\n    this.modalElement.className = 'up-modal'\n    this.modalElement.innerHTML = `\n      <div class=\"up-modal-content\">\n        <span class=\"up-close-button\">&times;</span>\n        <iframe src=\"about:blank\" allow=\"publickey-credentials-get; publickey-credentials-create\"></iframe>\n      </div>\n    `\n\n    // Get references\n    this.closeButton = this.modalElement.querySelector('.up-close-button')!\n    this.iframeElement = this.modalElement.querySelector('iframe')!\n\n    // Bind events\n    this.closeButton.addEventListener('click', () => this.closeModal())\n    // this.modalElement.addEventListener('click', (e) => {\n    //   if (e.target === this.modalElement) {\n    //     this.closeModal()\n    //   }\n    // })\n\n    this.iframeElement.addEventListener('load', this.handleIframeLoad)\n    this.iframeElement.addEventListener('error', this.handleIframeError)\n\n    // Add styles if not already present\n    if (!document.getElementById('up-modal-styles')) {\n      const style = document.createElement('style')\n      style.id = 'up-modal-styles'\n      style.textContent = `\n        .up-modal {\n          display: none;\n          position: fixed;\n          top: 0;\n          left: 0;\n          width: 100%;\n          height: 100%;\n          background-color: rgba(0, 0, 0, 0.5);\n          justify-content: center;\n          align-items: center;\n          z-index: 9999;\n        }\n        .up-modal.show {\n          display: flex;\n        }\n        .up-modal-content {\n          background-color: #fff;\n          border-radius: 8px;\n          overflow: hidden;\n          position: relative;\n          width: 480px;\n          height: 640px;\n          box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n        }\n        @media (max-width: 768px) {\n          .up-modal-content {\n            width: 100%;\n            height: 100%;\n            border-radius: 0;\n          }\n        }\n        .up-close-button {\n          position: absolute;\n          top: 10px;\n          right: 15px;\n          font-size: 24px;\n          cursor: pointer;\n          z-index: 10;\n          color: #000;\n          background: rgba(255, 255, 255, 0.8);\n          width: 30px;\n          height: 30px;\n          border-radius: 50%;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          line-height: 1;\n        }\n        .up-close-button:hover {\n          background: rgba(255, 255, 255, 1);\n        }\n        .up-modal iframe {\n          width: 100%;\n          height: 100%;\n          border: none;\n        }\n      `\n      document.head.appendChild(style)\n    }\n\n    // Add to DOM\n    document.body.appendChild(this.modalElement)\n  }\n\n  private handleIframeLoad = () => {\n    popupLog('Iframe loaded, contentWindow:', this.iframeElement.contentWindow)\n    this.contentWindow = this.iframeElement.contentWindow || undefined\n    this.resolve?.(this.contentWindow!)\n  }\n\n  private handleIframeError = (e: ErrorEvent) => {\n    popupLog('Iframe error occurred:', e.error, e.message)\n    this.reject?.(e.error)\n    this.closeModal()\n  }\n\n  async createModal(): Promise<{ isNew: boolean; window: Window }> {\n    popupLog('createModal called, has promise:', !!this.promise, 'iframe src:', this.iframeSrc)\n\n    if (this.promise) {\n      popupLog('Reusing existing popup promise')\n      return this.promise.then(window => ({\n        isNew: false,\n        window,\n      }))\n    }\n\n    popupLog('Creating new popup promise')\n\n    this.promise = new Promise<Window>((resolve, reject) => {\n      this.resolve = resolve\n      this.reject = reject\n\n      // Set the iframe src first\n      if (this.iframeSrc) {\n        this.iframeElement.src = this.iframeSrc\n      }\n\n      // Auto-open in debug mode after iframe src is set\n      const debugMode = window.location.search.includes('debug=true') || localStorage.getItem('upProvider:debug') === 'true'\n      if (debugMode) {\n        // Delay to ensure iframe starts loading\n        setTimeout(() => this.openModal(), 100)\n      }\n    })\n\n    return this.promise.then(window => ({\n      isNew: true,\n      window,\n    }))\n  }\n\n  openModal() {\n    if (this.isOpen) {\n      return\n    }\n    // Use requestAnimationFrame to ensure DOM is ready and styles are applied\n    requestAnimationFrame(() => {\n      this.isOpen = true\n      this.modalElement.classList.add('show')\n      popupLog('Opening popup')\n\n      // Dispatch custom event\n      this.modalElement.dispatchEvent(\n        new CustomEvent('open', {\n          bubbles: true,\n          composed: true,\n        })\n      )\n\n      window.parent.postMessage({ type: 'upProvider:modalOpened' }, '*')\n    })\n  }\n\n  closeModal() {\n    // Log the call stack to see what's triggering the close\n    popupLog('closeModal called from:', new Error().stack)\n\n    // Debug mode - check for debug flag in URL or localStorage\n    const debugMode = window.location.search.includes('debug=true') || localStorage.getItem('upProvider:debug') === 'true'\n\n    if (debugMode) {\n      popupLog('Debug mode: keeping modal open')\n      return\n    }\n\n    this.isOpen = false\n    this.modalElement.classList.remove('show')\n    popupLog('Closing popup')\n\n    // Dispatch custom event\n    this.modalElement.dispatchEvent(\n      new CustomEvent('close', {\n        bubbles: true,\n        composed: true,\n      })\n    )\n\n    window.parent.postMessage({ type: 'upProvider:modalClosed' }, '*')\n  }\n\n  destroyModal() {\n    this.contentWindow = undefined\n    this.closeModal()\n\n    // Remove event listeners\n    this.iframeElement.removeEventListener('load', this.handleIframeLoad)\n    this.iframeElement.removeEventListener('error', this.handleIframeError)\n\n    // Remove from DOM\n    this.modalElement.remove()\n\n    popupLog('Destroying popup')\n\n    // Dispatch custom event\n    this.modalElement.dispatchEvent(\n      new CustomEvent('destroy', {\n        bubbles: true,\n        composed: true,\n      })\n    )\n  }\n}\n\nexport async function createWalletPopup(_url: string): Promise<{ popup: ModalPopup; isNew: boolean }> {\n  if (typeof window === 'undefined' || typeof document === 'undefined') {\n    throw new Error('This function can only be called in a browser environment.')\n  }\n\n  const url = new URL(_url)\n  const key = `up-wallet-popup-${url.hostname.replace(/\\./g, '-')}${url.pathname.split('/').join('-')}`\n\n  // Check for existing popup\n  const existingElement = document.getElementById(key)\n  if (existingElement && (existingElement as any)._popup) {\n    return { isNew: false, popup: (existingElement as any)._popup }\n  }\n\n  popupLog('Instantiating new popup')\n  const popup = new VanillaModalPopup(_url, key)\n\n  // Store reference on the element for reuse\n  const element = document.getElementById(key)\n  if (element) {\n    ;(element as any)._popup = popup\n  }\n\n  return popup\n    .createModal()\n    .then(({ isNew }) => ({ isNew, popup }))\n    .catch(error => {\n      popupLog('Error creating popup:', error)\n      popup.destroyModal()\n      throw error\n    })\n}\n","import debug from 'debug'\nimport EventEmitter3, { type EventEmitter } from 'eventemitter3'\nimport { type JSONRPCError, type JSONRPCErrorResponse, type JSONRPCParams, JSONRPCServer, type JSONRPCSuccessResponse } from 'json-rpc-2.0'\nimport { v4 as uuidv4 } from 'uuid'\nimport { arrayChanged, cleanupAccounts } from '.'\n\nconst serverLog = debug('upProvider:server')\n\n// Unique identifier for UP Provider JSONRPC messages\nconst UP_PROVIDER_JSONRPC_TYPE = 'upProvider:jsonrpc' as const\ninterface UPClientChannelEvents {\n  connect: (args: { chainId: `0x${string}` }) => void\n  disconnect: () => void\n  contextAccountsChanged: (accounts: `0x${string}`[]) => void\n  accountsChanged: (accounts: `0x${string}`[]) => void\n  requestAccounts: (accounts: `0x${string}`[]) => void\n  chainChanged: (chainId: number) => void\n  injected: (accounts: `0x${string}`[]) => void\n  sentTransaction: (tx: { from: `0x${string}`; to: `0x${string}`; value?: bigint; error?: JSONRPCError; result?: any }) => void\n}\n\n/**\n * API for client channel, each time an iframe's UPClientProvider is allocated and connected\n * the UPProviderConnector will create and emit a new UPClientChannel.\n * The UPClientChannel will have the API to control that channel.\n * The configuration will default to values from the UPProviderConnector but enable will be false.\n */\ninterface UPClientChannel {\n  readonly window: Window\n  readonly element: HTMLIFrameElement | null\n  readonly id: string\n\n  /**\n   * Return an array listing the events for which the emitter has registered\n   * listeners.\n   */\n  eventNames(): Array<EventEmitter.EventNames<UPClientChannelEvents>>\n\n  /**\n   * Return the listeners registered for a given event.\n   */\n  listeners<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T): Array<EventEmitter.EventListener<UPClientChannelEvents, T>>\n\n  /**\n   * Return the number of listeners listening to a given event.\n   */\n  listenerCount(event: EventEmitter.EventNames<UPClientChannelEvents>): number\n\n  /**\n   * Calls each of the listeners registered for a given event.\n   */\n  emit<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, ...args: EventEmitter.EventArgs<UPClientChannelEvents, T>): boolean\n\n  /**\n   * Add a listener for a given event.\n   */\n  on<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any): this\n  addListener<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any): this\n\n  /**\n   * Add a one-time listener for a given event.\n   */\n  once<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any): this\n\n  /**\n   * Remove the listeners of a given event.\n   */\n  removeListener<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any, once?: boolean): this\n  off<T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any, once?: boolean): this\n\n  /**\n   * Remove all listeners, or those of the specified event.\n   */\n  removeAllListeners(event?: EventEmitter.EventNames<UPClientChannelEvents>): this\n\n  /**\n   * Resume after a delay\n   * @param delay - delay in milliseconds\n   */\n  resume(delay: number): void\n  /**\n   * Send message to dapp.\n   * @param method - method name/event\n   * @param params - parameters\n   */\n  send(method: string, params: unknown[]): Promise<void>\n\n  /**\n   * This represents the normal \"eth_accounts\" method list.\n   * @param accounts - list of addresses\n   */\n  setAllowedAccounts(accounts: `0x${string}`[]): Promise<void>\n\n  /**\n   * This represents the normal \"eth_accounts\" method list. (setter mirrors setAllowedAccounts)\n   */\n  set allowedAccounts(accounts: `0x${string}`[])\n\n  /**\n   * This represents the normal \"eth_accounts\" method list.\n   * @returns list of accounts\n   */\n  get allowedAccounts(): `0x${string}`[]\n\n  /**\n   * These are extra accounts sent to each provider. In the ue.io grid, this is used to\n   * represent the account that is the grid owner.\n   * @param accounts - list of addresses\n   */\n  setContextAccounts(contextAccounts: `0x${string}`[]): Promise<void>\n\n  /**\n   * These are extra accounts sent to each provider. In the ue.io grid, this is used to\n   * represent the account that is the grid owner. (setter mirrors setContextAccounts)\n   * @param accounts - list of addresses\n   */\n  set contextAccounts(contextAccounts: `0x${string}`[])\n\n  /**\n   * These are extra accounts sent to each provider. In the ue.io grid, this is used to\n   * represent the account that is the grid owner.\n   * @returns list of addresses\n   */\n  get contextAccounts(): `0x${string}`[]\n\n  /**\n   * ChainId\n   * @param chainId - chain id\n   */\n  setChainId(chainId: number): Promise<void>\n\n  /**\n   * ChainId\n   * @param chainId - chain id\n   */\n  set chainId(chainId: number)\n\n  /**\n   * ChainId\n   * @returns chain id\n   */\n  get chainId(): number\n\n  /**\n   * Enable or disable the channel.\n   * @param enable - enable or disable the channel\n   */\n  setEnable(enable: boolean): Promise<void>\n\n  /**\n   * Enable or disable the channel.\n   * @returns is channel enabled\n   */\n  get enable(): boolean\n\n  /**\n   * Enable or disable the channel.\n   * @param enable - enable or disable the channel\n   */\n  set enable(value: boolean)\n\n  /**\n   * RPC urls\n   * @param rpcUrls - list of rpc urls (used by client provider to short circuit requests)\n   */\n  setRpcUrls(rpcUrls: string[]): Promise<void>\n\n  /**\n   * RPC urls\n   * @param rpcUrls - list of rpc urls (used by client provider to short circuit requests)\n   */\n  set rpcUrls(rpcUrls: string[])\n\n  /**\n   * RPC urls\n   * @returns list of rpc urls (used by client provider to short circuit requests)\n   */\n  get rpcUrls(): string[]\n\n  /**\n   * Helper to setup the channel with all the necessary information.\n   * @param enable - enable\n   * @param accounts - accounts (allowed accounts)\n   * @param contextAccounts - context accounts\n   * @param chainId - chainId\n   */\n  setupChannel(enable: boolean, accounts: `0x${string}`[], contextAccounts: `0x${string}`[], chainId: number): Promise<void>\n\n  /**\n   * Show or hide the popup/modal\n   * @param show - true to show, false to hide\n   */\n  showPopup(show: boolean): Promise<void>\n\n  /**\n   * Close the channel\n   */\n  close(): void\n\n  _serverChannel: MessagePort\n}\n\nfunction createUPClientChannel(\n  serverChannel: MessagePort,\n  window: Window,\n  element: HTMLIFrameElement | null,\n  id: string,\n  server: JSONRPCServer,\n  getter: () => boolean,\n  setter: (value: boolean) => void\n): UPClientChannel {\n  let accounts: `0x${string}`[] = []\n  let contextAccounts: `0x${string}`[] = []\n  let chainId = 0\n  let rpcUrls: string[] = []\n  let bufferedEvents: Array<[keyof UPClientChannelEvents, unknown[]]> | undefined = []\n  \n  const emitter = new EventEmitter3<UPClientChannelEvents>()\n  \n  const channel: UPClientChannel = {\n    _serverChannel: serverChannel,\n    window,\n    element,\n    id,\n    \n    eventNames: () => emitter.eventNames(),\n    listeners: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T) => emitter.listeners(event),\n    listenerCount: (event: EventEmitter.EventNames<UPClientChannelEvents>) => emitter.listenerCount(event),\n    \n    emit: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, ...args: EventEmitter.EventArgs<UPClientChannelEvents, T>): boolean => {\n      if (bufferedEvents) {\n        bufferedEvents.push([event, args])\n        return false\n      }\n      return emitter.emit(event, ...args)\n    },\n    \n    on: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any) => {\n      channel.resume(100)\n      emitter.on(event, fn, context)\n      return channel\n    },\n    \n    addListener: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any) => {\n      channel.resume(100)\n      emitter.addListener(event, fn, context)\n      return channel\n    },\n    \n    once: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any) => {\n      emitter.once(event, fn, context)\n      return channel\n    },\n    \n    removeListener: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any, once?: boolean) => {\n      emitter.removeListener(event, fn, context, once)\n      return channel\n    },\n    \n    off: <T extends EventEmitter.EventNames<UPClientChannelEvents>>(event: T, fn?: EventEmitter.EventListener<UPClientChannelEvents, T>, context?: any, once?: boolean) => {\n      emitter.off(event, fn, context, once)\n      return channel\n    },\n    \n    removeAllListeners: (event?: EventEmitter.EventNames<UPClientChannelEvents>) => {\n      emitter.removeAllListeners(event)\n      return channel\n    },\n    \n    resume: (delay = 0) => {\n      const buffered = bufferedEvents\n      if (!buffered) {\n        return\n      }\n      bufferedEvents = undefined\n      setTimeout(() => {\n        while (buffered.length > 0) {\n          const val = buffered.shift()\n          if (val) {\n            const [event, args] = val\n            emitter.emit(event, ...(args as any))\n          }\n        }\n      }, delay)\n    },\n    \n    send: async (method: string, params: unknown[]): Promise<void> => {\n      const message = {\n        jsonrpc: '2.0',\n        id: uuidv4(),\n        method,\n        params,\n      }\n      serverChannel.postMessage(message)\n    },\n    \n    setAllowedAccounts: async (newAccounts: `0x${string}`[]): Promise<void> => {\n      serverLog('allowedAccounts', newAccounts)\n      const accountsChanged = arrayChanged(accounts, newAccounts)\n      if (accountsChanged) {\n        const wasEmpty = accounts.length === 0\n        accounts = [...newAccounts]\n        if (getter()) {\n          await channel.send('accountsChanged', cleanupAccounts([...accounts]))\n          if (wasEmpty !== (accounts.length === 0)) {\n            if (getter() && accounts.length > 0) {\n              const hexChainId = `0x${chainId.toString(16)}` as `0x${string}`\n              channel.emit('connect', { chainId: hexChainId })\n              channel.send('connect', [{ chainId: hexChainId }])\n            } else {\n              channel.emit('disconnect')\n              channel.send('disconnect', [])\n            }\n          }\n        }\n      }\n    },\n    \n    set allowedAccounts(newAccounts: `0x${string}`[]) {\n      channel.setAllowedAccounts(newAccounts)\n    },\n    \n    get allowedAccounts(): `0x${string}`[] {\n      return [...accounts]\n    },\n    \n    setContextAccounts: async (newContextAccounts: `0x${string}`[]): Promise<void> => {\n      const accountsChanged = arrayChanged(contextAccounts, newContextAccounts)\n      if (accountsChanged) {\n        serverLog('contextAccounts', newContextAccounts)\n        contextAccounts = [...newContextAccounts]\n        await channel.send('contextAccountsChanged', cleanupAccounts([...contextAccounts]))\n      }\n    },\n    \n    set contextAccounts(newContextAccounts: `0x${string}`[]) {\n      channel.setContextAccounts(newContextAccounts)\n    },\n    \n    get contextAccounts(): `0x${string}`[] {\n      return [...contextAccounts]\n    },\n    \n    setupChannel: async (enable: boolean, newAccounts: `0x${string}`[], newContextAccounts: `0x${string}`[], newChainId: number): Promise<void> => {\n      const accountsChanged = arrayChanged(accounts, newAccounts)\n      let sendAccountsChanged = false\n      if (accountsChanged) {\n        serverLog('allowedAccounts', newAccounts)\n        accounts = [...newAccounts]\n        sendAccountsChanged = enable\n      }\n      const contextAccountsChanged = arrayChanged(contextAccounts, newContextAccounts)\n      let sendContextAccountsChanged = false\n      if (contextAccountsChanged) {\n        serverLog('contextAccounts', newContextAccounts)\n        contextAccounts = [...newContextAccounts]\n        sendContextAccountsChanged = true\n      }\n      let sendChainChanged = false\n      if (chainId !== newChainId) {\n        serverLog('chainId', newChainId)\n        chainId = newChainId\n        sendChainChanged = true\n      }\n      if (enable !== channel.enable) {\n        serverLog('enable', enable)\n        setter(enable)\n        sendAccountsChanged = true\n      }\n      if (sendChainChanged) {\n        await channel.send('chainChanged', [newChainId])\n        channel.emit('chainChanged', newChainId)\n      }\n      if (sendContextAccountsChanged) {\n        await channel.send('contextAccountsChanged', cleanupAccounts([...contextAccounts]))\n      }\n      if (sendAccountsChanged) {\n        await channel.send('accountsChanged', cleanupAccounts(getter() ? [...accounts] : []))\n        if (getter() && accounts.length > 0) {\n          const hexChainId = `0x${chainId.toString(16)}` as `0x${string}`\n          channel.emit('connect', { chainId: hexChainId })\n          channel.send('connect', [{ chainId: hexChainId }])\n        } else {\n          channel.emit('disconnect')\n          channel.send('disconnect', [])\n        }\n      }\n    },\n    \n    setEnable: async (value: boolean): Promise<void> => {\n      if (value !== channel.enable) {\n        setter(value)\n        channel.send('accountsChanged', cleanupAccounts(getter() ? [...accounts] : []))\n        if (getter() && accounts.length > 0) {\n          const hexChainId = `0x${chainId.toString(16)}` as `0x${string}`\n          channel.emit('connect', { chainId: hexChainId })\n          channel.send('connect', [{ chainId: hexChainId }])\n        } else {\n          channel.emit('disconnect')\n          channel.send('disconnect', [])\n        }\n      }\n    },\n    \n    set enable(value: boolean) {\n      channel.setEnable(value)\n    },\n    \n    get enable(): boolean {\n      return getter()\n    },\n    \n    setChainId: async (newChainId: number): Promise<void> => {\n      if (chainId !== newChainId) {\n        chainId = newChainId\n        await channel.send('chainChanged', [newChainId])\n        channel.emit('chainChanged', newChainId)\n      }\n    },\n    \n    get chainId(): number {\n      return chainId\n    },\n    \n    set chainId(newChainId: number) {\n      channel.setChainId(newChainId)\n    },\n    \n    setRpcUrls: async (newRpcUrls: string[]): Promise<void> => {\n      if (arrayChanged(newRpcUrls, rpcUrls)) {\n        rpcUrls = newRpcUrls\n        await channel.send('rpcUrlsChanged', newRpcUrls)\n      }\n    },\n    \n    get rpcUrls(): string[] {\n      return [...rpcUrls]\n    },\n    \n    set rpcUrls(newRpcUrls: string[]) {\n      channel.setRpcUrls(newRpcUrls)\n    },\n    \n    showPopup: async (show: boolean): Promise<void> => {\n      serverLog('showPopup requested:', show)\n      await channel.send('showPopup', [show])\n    },\n    \n    close: () => {\n      const el: any = element || window\n      try {\n        if (el.upChannel === channel) {\n          el.upChannel = undefined\n        }\n      } catch {\n        // ignore\n      }\n      serverChannel.close()\n    }\n  }\n  \n  return channel\n}\n\ninterface UPProviderEndpointEvents {\n  accountsChanged: (accounts: `0x${string}`[]) => void\n  chainChanged: (chainId: number) => void\n  connect: ({ chainId }: { chainId: number }) => void\n  disconnect: (error: Error) => void\n}\ninterface UPProviderEndpoint {\n  on<T extends EventEmitter.EventNames<UPProviderEndpointEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderEndpointEvents, T>, context?: any): this\n  off<T extends EventEmitter.EventNames<UPProviderEndpointEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderEndpointEvents, T>, context?: any): this\n  request(message: { method: string; params: JSONRPCParams }, clientParams?: any): Promise<any>\n  request(method: string | { method: string; params: JSONRPCParams }, params?: JSONRPCParams, clientParams?: any): Promise<any>\n}\n\ntype UPProviderConnectorOptions = {\n  providerHandler?: (e: MessageEvent) => void\n  allowedAccounts: `0x${string}`[]\n  contextAccounts: `0x${string}`[]\n  provider: UPProviderEndpoint\n  providerAccountsChangedCallback?: (accounts: `0x${string}`[]) => void\n  promise: Promise<void>\n  rpcUrls: string[]\n  chainId: number\n}\n\ninterface UPProviderConnectorEvents {\n  channelCreated: (id: HTMLIFrameElement | Window | string, channel: UPClientChannel) => void\n}\n\n/**\n * API for provider connector\n */\ninterface UPProviderConnector {\n  /**\n   * Return an array listing the events for which the emitter has registered\n   * listeners.\n   */\n  eventNames(): Array<EventEmitter.EventNames<UPProviderConnectorEvents>>\n\n  /**\n   * Return the listeners registered for a given event.\n   */\n  listeners<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T): Array<EventEmitter.EventListener<UPProviderConnectorEvents, T>>\n\n  /**\n   * Return the number of listeners listening to a given event.\n   */\n  listenerCount(event: EventEmitter.EventNames<UPProviderConnectorEvents>): number\n\n  /**\n   * Calls each of the listeners registered for a given event.\n   */\n  emit<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, ...args: EventEmitter.EventArgs<UPProviderConnectorEvents, T>): boolean\n\n  /**\n   * Add a listener for a given event.\n   */\n  on<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any): this\n  addListener<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any): this\n\n  /**\n   * Add a one-time listener for a given event.\n   */\n  once<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any): this\n\n  /**\n   * Remove the listeners of a given event.\n   */\n  removeListener<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn?: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any, once?: boolean): this\n  off<T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn?: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any, once?: boolean): this\n\n  /**\n   * Remove all listeners, or those of the specified event.\n   */\n  removeAllListeners(event?: EventEmitter.EventNames<UPProviderConnectorEvents>): this\n\n  close(): void\n\n  get provider(): UPProviderEndpoint\n\n  /**\n   * Get a map of all clients by their ID.\n   */\n  get channels(): Map<string, UPClientChannel>\n\n  /**\n   * Find the client for the element, window or proxy object of the client.\n   * @param id\n   * @returns actual UPClientChannel\n   */\n  getChannel(id: string | Window | HTMLIFrameElement | UPClientChannel | null): UPClientChannel | null\n\n  /**\n   * Inject additional addresses into the client's accountsChanged event.\n   * Account[0] will be linked to the signed when making transactions.\n   * Starting at Account[1] is where additional addresses are injected.\n   * This routine injects on all connections. You can also inject using\n   * the channel's allowedAccounts method.\n   * @param page list of addresses\n   */\n  setContextAccounts(accounts: `0x${string}`[]): Promise<void>\n  set contextAccounts(accounts: `0x${string}`[])\n  get contextAccounts(): `0x${string}`[]\n\n  setAllowedAccounts(accounts: `0x${string}`[]): Promise<void>\n  set allowedAccounts(accounts: `0x${string}`[])\n  get allowedAccounts(): `0x${string}`[]\n\n  setChainId(chainId: number): Promise<void>\n  set chainId(chainId: number)\n  get chainId(): number\n\n  /**\n   * Connect this provider externally. This will be called during initial construction\n   * but can be called at a later time if desired to re-initialize or tear down\n   * the connection.\n   * @param provider\n   * @param rpcUrls\n   */\n  setupProvider(provider: UPProviderEndpoint, rpcUrls: string | string[]): Promise<void>\n}\n\nfunction _createUPProviderConnector(\n  channels: Map<string, UPClientChannel>,\n  options: UPProviderConnectorOptions\n): UPProviderConnector {\n  const emitter = new EventEmitter3<UPProviderConnectorEvents>()\n  \n  const getChannels = (): Map<string, UPClientChannel> => channels\n  \n  const connector: UPProviderConnector = {\n    eventNames: () => emitter.eventNames(),\n    listeners: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T) => emitter.listeners(event),\n    listenerCount: (event: EventEmitter.EventNames<UPProviderConnectorEvents>) => emitter.listenerCount(event),\n    \n    emit: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, ...args: EventEmitter.EventArgs<UPProviderConnectorEvents, T>): boolean => {\n      return emitter.emit(event, ...args)\n    },\n    \n    on: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any) => {\n      emitter.on(event, fn, context)\n      return connector\n    },\n    \n    addListener: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any) => {\n      emitter.addListener(event, fn, context)\n      return connector\n    },\n    \n    once: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any) => {\n      emitter.once(event, fn, context)\n      return connector\n    },\n    \n    removeListener: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn?: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any, once?: boolean) => {\n      emitter.removeListener(event, fn, context, once)\n      return connector\n    },\n    \n    off: <T extends EventEmitter.EventNames<UPProviderConnectorEvents>>(event: T, fn?: EventEmitter.EventListener<UPProviderConnectorEvents, T>, context?: any, once?: boolean) => {\n      emitter.off(event, fn, context, once)\n      return connector\n    },\n    \n    removeAllListeners: (event?: EventEmitter.EventNames<UPProviderConnectorEvents>) => {\n      emitter.removeAllListeners(event)\n      return connector\n    },\n    \n    close: () => {\n      if (options.providerHandler) {\n        window.removeEventListener('message', options.providerHandler as any)\n        options.providerHandler = undefined\n      }\n    },\n\n    get provider(): UPProviderEndpoint {\n      return options.provider\n    },\n\n    setAllowedAccounts: async (accounts: `0x${string}`[]): Promise<void> => {\n      const allowedAccountsChanged = arrayChanged(options.allowedAccounts, accounts)\n      if (allowedAccountsChanged) {\n        options.allowedAccounts = [...accounts]\n        for (const item of connector.channels.values()) {\n          await item.setAllowedAccounts(item.enable ? cleanupAccounts(options.allowedAccounts) : [])\n        }\n      }\n    },\n    \n    get allowedAccounts(): `0x${string}`[] {\n      return cleanupAccounts(options.allowedAccounts)\n    },\n    \n    set allowedAccounts(accounts: `0x${string}`[]) {\n      connector.setAllowedAccounts(accounts)\n    },\n\n    setChainId: async (chainId: number): Promise<void> => {\n      if (options.chainId !== chainId) {\n        options.chainId = chainId\n        for (const item of connector.channels.values()) {\n          await item.setChainId(options.chainId)\n        }\n      }\n    },\n    \n    get chainId(): number {\n      return options.chainId\n    },\n    \n    set chainId(chainId: number) {\n      connector.setChainId(chainId)\n    },\n    \n    get channels(): Map<string, UPClientChannel> {\n      return new Map(getChannels())\n    },\n\n    getChannel: (id: string | Window | HTMLIFrameElement | UPClientChannel | null): UPClientChannel | null => {\n      let _id = id\n      if (typeof _id === 'string') {\n        return getChannels().get(_id) || null\n      }\n\n      // Special handling when running inside an iframe and looking up parent window\n      // Do this BEFORE any property access that might fail on cross-origin objects\n      if (window.parent !== window && _id === window.parent) {\n        serverLog('getChannel: Looking up parent window channel')\n        // Check if we already have a channel for the parent window\n        for (const item of getChannels().values()) {\n          // For parent window, we can't compare directly due to cross-origin\n          // Instead, check if this is our special parent window channel\n          if (item.window === window.parent) {\n            return item\n          }\n        }\n        // No existing channel for parent window\n        return null\n      }\n\n      if (window.opener !== window && _id === window.opener) {\n        serverLog('getChannel: Looking up parent window channel')\n        // Check if we already have a channel for the parent window\n        for (const item of getChannels().values()) {\n          // For parent window, we can't compare directly due to cross-origin\n          // Instead, check if this is our special parent window channel\n          if (item.window === window.opener) {\n            return item\n          }\n        }\n        // No existing channel for parent window\n        return null\n      }\n\n      // Now safe to check if it's a UPClientChannel (only for non-parent windows)\n      if ('element' in (_id as any) || 'window' in (_id as any)) {\n        _id = (_id as UPClientChannel).element || (_id as UPClientChannel).window\n      }\n\n      for (const item of getChannels().values()) {\n        if (item.window === _id || item.element === _id) {\n          return item\n        }\n      }\n      return null\n    },\n\n    setContextAccounts: async (contextAccounts: `0x${string}`[]) => {\n      const contextAccountsChanged = arrayChanged(options.contextAccounts, contextAccounts)\n      if (contextAccountsChanged) {\n        options.contextAccounts = [...contextAccounts]\n        for (const item of connector.channels.values()) {\n          await item.setContextAccounts(cleanupAccounts(options.contextAccounts))\n        }\n      }\n    },\n    \n    get contextAccounts(): `0x${string}`[] {\n      return cleanupAccounts(options.contextAccounts)\n    },\n    \n    set contextAccounts(contextAccounts: `0x${string}`[]) {\n      connector.setContextAccounts(contextAccounts)\n    },\n\n    setupProvider: async (provider: any, rpcUrls: string | string[]): Promise<void> => {\n      // Create a new promise that will be awaited by new connections\n      const previousPromise = options.promise\n      options.promise = new Promise<void>((resolve, reject) => {\n        ;(async () => {\n          try {\n            // Wait for any previous initialization to complete\n            await previousPromise\n            const oldCallback = options.providerAccountsChangedCallback\n            if (options.provider && oldCallback && typeof options.provider.off === 'function') {\n              options.provider.off('accountsChanged', oldCallback)\n              options.providerAccountsChangedCallback = undefined\n            }\n            options.provider = provider\n            const newRpcUrls = Array.isArray(rpcUrls) ? rpcUrls : [rpcUrls]\n            if (arrayChanged(newRpcUrls, options.rpcUrls)) {\n              options.rpcUrls = newRpcUrls\n              for (const item of connector.channels.values()) {\n                await item.setRpcUrls(options.rpcUrls)\n              }\n            }\n            const _chainId = Number(\n              (await options.provider?.request({\n                method: 'eth_chainId',\n                params: [],\n              })) || options.chainId\n            )\n            if (_chainId !== options.chainId) {\n              options.chainId = _chainId\n              for (const item of connector.channels.values()) {\n                await item.setChainId(options.chainId)\n              }\n            }\n            const _accounts =\n              (await options.provider?.request({\n                method: 'eth_accounts',\n                params: [],\n              })) || []\n            const accountsChanged = arrayChanged(options.allowedAccounts, _accounts)\n            if (accountsChanged) {\n              options.allowedAccounts = [..._accounts]\n              for (const item of connector.channels.values()) {\n                await item.setAllowedAccounts(cleanupAccounts(options.allowedAccounts))\n              }\n            }\n            const accountsChangedCallback = async (_accounts: `0x${string}`[]) => {\n              const accountsChanged = arrayChanged(options.allowedAccounts, _accounts)\n              if (accountsChanged) {\n                options.allowedAccounts = [..._accounts]\n                for (const item of connector.channels.values()) {\n                  await item.setAllowedAccounts(cleanupAccounts(options.allowedAccounts))\n                }\n              }\n            }\n            if (options.provider && typeof options.provider.on === 'function') {\n              options.providerAccountsChangedCallback = accountsChangedCallback\n              options.provider.on('accountsChanged', accountsChangedCallback)\n            }\n            resolve()\n          } catch (err) {\n            reject(err)\n          }\n        })()\n      })\n    }\n  }\n  \n  return connector\n}\n\nlet globalUPProvider: UPProviderConnector | null = null\n\n/**\n * Global method to find channel in case `up-channel-connected` event was missed.\n *\n * @param id how to find the UPClientChannel instance (this can be the id, frame (not the frame's element id) or window)\n * @returns UPClientChannel\n */\nfunction getUPProviderChannel(id: string | Window | HTMLIFrameElement | UPClientChannel | null): UPClientChannel | null {\n  if (id == null) {\n    return null\n  }\n  if (!globalUPProvider) {\n    throw new Error('Global UP Provider not set up')\n  }\n  return globalUPProvider.getChannel(id)\n}\n\n/**\n * Install a global UPProvider inside of the particular window which will listen for client\n * connections and establish them. It will fire `up-channel-connected` on the particular iframe if it's reachable.\n * It will fire a local `channelCreated` event as well.\n *\n * @param provider the initial provider to proxy\n * @param rpcUrls rpc urls to give to the clients to locally connect for non eth_sendTransaction and so on.\n * @returns The global provider and event sing for `channelCreated` events.\n */\nfunction createUPProviderConnector(provider?: any, rpcUrls?: string | string[]): UPProviderConnector {\n  if (globalUPProvider) {\n    return globalUPProvider\n  }\n  const channels = new Map<string, UPClientChannel>()\n\n  // Allow for late initialization of class properties.\n  const options: UPProviderConnectorOptions = {\n    provider: provider ?? null,\n    rpcUrls: Array.isArray(rpcUrls) ? rpcUrls : rpcUrls != null ? [rpcUrls] : [],\n    chainId: 0,\n    allowedAccounts: [],\n    contextAccounts: [],\n    promise: Promise.resolve(),\n  }\n  globalUPProvider = _createUPProviderConnector(channels, options)\n\n  serverLog('server listen', window)\n\n  // Server handler to accept new client provider connections\n  options.providerHandler = (event: MessageEvent) => {\n    // Handle wrapped JSONRPC messages for cross-origin scenarios (when no channel exists yet)\n    if (event.data?.type === UP_PROVIDER_JSONRPC_TYPE) {\n      // Find the channel for this source\n      for (const [channelId, channel] of channels) {\n        if (channel.window === event.source) {\n          // Forward to the channel's handler\n          const serverChannel = (channel as any)._serverChannel\n          if (serverChannel) {\n            // Unwrap and send through the channel\n            serverChannel.postMessage(event.data.payload)\n          }\n          return\n        }\n      }\n      // If no channel found, ignore (might be from another wallet)\n      return\n    }\n\n    // Handle both regular provider requests and iframe-specific requests\n    if (event.data === 'upProvider:hasProvider' || event.data === 'upProvider:requestIframeProvider') {\n      // If we're running inside an iframe, only respond to iframe-specific requests\n      const isInIframe = window.parent !== window\n      if (isInIframe && event.data === 'upProvider:hasProvider') {\n        serverLog('Ignoring regular provider request while in iframe')\n        return\n      }\n\n      let iframe: HTMLIFrameElement | null = null\n\n      // Log all iframes found\n      const allIframes = document.querySelectorAll('iframe')\n      serverLog('Found iframes:', allIframes.length)\n\n      // Try to find the iframe that sent this message\n      // For cross-origin iframes, we can't access contentWindow directly\n      for (const element of document.querySelectorAll('iframe')) {\n        try {\n          if (element.contentWindow === event.source) {\n            serverLog('server hasProvider - matched iframe', element)\n            iframe = element\n            break\n          }\n        } catch (e) {\n          // Cross-origin access denied - this is expected for cross-origin iframes\n          // We'll handle this case below by using the Window reference directly\n          serverLog('Cross-origin iframe detected, cannot access contentWindow for', element.src)\n        }\n      }\n\n      if (!iframe) {\n        serverLog('No matching iframe found, using Window reference directly')\n      }\n\n      const previous = iframe ? getUPProviderChannel(iframe) : getUPProviderChannel(event.source as Window)\n      let channelId: string\n      let serverChannel = event.ports?.[0]\n      const server = new JSONRPCServer()\n      // Enable by default for iframe/popup mode (when requestIframeProvider is used)\n      let enabled = event.data === 'upProvider:requestIframeProvider'\n\n      // If no port was provided (cross-origin case), create our own MessageChannel\n      let createdChannel: MessageChannel | undefined\n      if (!serverChannel) {\n        serverLog('No port received, creating MessageChannel in server')\n        createdChannel = new MessageChannel()\n        serverChannel = createdChannel.port1\n      }\n\n      // Server handler to forward requests to the provider\n      if (previous) {\n        channelId = previous.id\n      } else {\n        channelId = uuidv4()\n      }\n\n      // Wrapper for representation of client connection inside of global provider space.\n      const channel_ = createUPClientChannel(\n        serverChannel,\n        event.source as Window,\n        iframe,\n        channelId,\n        server,\n        () => enabled,\n        (value: boolean) => {\n          enabled = value\n        }\n      )\n\n      server.applyMiddleware(async (_, request) => {\n        await options.promise\n        const { method: _method, params: _params, id, jsonrpc } = request\n        const method =\n          typeof _method === 'string'\n            ? _method\n            : (\n                _method as unknown as {\n                  method: string\n                  params: unknown[]\n                }\n              ).method\n        const params =\n          typeof _method === 'string'\n            ? _params\n            : (\n                _method as unknown as {\n                  method: string\n                  params: unknown[]\n                }\n              ).params\n        switch (method) {\n          case 'chainChanged':\n            serverLog('short circuit response', request, [options.chainId])\n            channel_.emit('chainChanged', options.chainId)\n            return {\n              ...request,\n              result: [options.chainId],\n            } as JSONRPCSuccessResponse\n          case 'accounts': {\n            const accounts = cleanupAccounts(enabled ? [...channel_.allowedAccounts] : [])\n            serverLog('short circuit response', request)\n            channel_.emit('requestAccounts', accounts)\n            return {\n              ...request,\n              result: accounts,\n            } as JSONRPCSuccessResponse\n          }\n          case 'contextAccountsChanged': {\n            const accounts = cleanupAccounts([...channel_.contextAccounts])\n            serverLog('short circuit response', request)\n            channel_.emit('contextAccountsChanged', accounts)\n            return {\n              ...request,\n              result: accounts,\n            } as JSONRPCSuccessResponse\n          }\n          case 'wallet_switchEthereumChain': {\n            serverLog('short circuit response', request)\n            globalUPProvider?.setChainId(Number(params[0]?.chainId ?? options.chainId))\n            return {\n              ...request,\n              result: null,\n            } as JSONRPCSuccessResponse\n          }\n          case 'eth_requestAccounts': {\n            const accounts = cleanupAccounts(enabled ? [...channel_.allowedAccounts] : [])\n            serverLog('short circuit response', request, accounts)\n            channel_.emit('requestAccounts', accounts)\n            return {\n              ...request,\n              result: accounts,\n            } as JSONRPCSuccessResponse\n          }\n          case 'eth_chainId':\n            return {\n              ...request,\n              result: `0x${options.chainId.toString(16)}`,\n            } as JSONRPCSuccessResponse\n          case 'eth_accounts': {\n            const accounts = cleanupAccounts(enabled ? [...channel_.allowedAccounts] : [])\n            channel_.emit('accountsChanged', accounts)\n            return {\n              ...request,\n              result: accounts,\n            } as JSONRPCSuccessResponse\n          }\n        }\n        try {\n          if (!options.provider) {\n            throw new Error('Global Provider not connected')\n          }\n          const response = await options.provider.request({ method, params })\n          serverLog('response', request, response)\n          return {\n            id,\n            jsonrpc,\n            result: response,\n          } as JSONRPCSuccessResponse\n        } catch (error) {\n          console.error(error)\n          const response = {\n            id,\n            jsonrpc,\n            error,\n          } as JSONRPCErrorResponse\n          serverLog('response error', request, response)\n          return response\n        }\n      })\n\n      const channelHandler = (event: MessageEvent) => {\n        // Handle wrapped JSONRPC messages for cross-origin scenarios\n        if (event.data?.type === UP_PROVIDER_JSONRPC_TYPE) {\n          const jsonrpcMessage = event.data.payload\n          if (jsonrpcMessage) {\n            // Process as regular JSONRPC message\n            const mockEvent = { data: jsonrpcMessage }\n            channelHandler(mockEvent as MessageEvent)\n          }\n          return\n        }\n\n        if (event.data.type === 'upProvider:windowInitialized') {\n          serverLog('channel created', event.data.type, event.data)\n          globalUPProvider?.emit('channelCreated', channel_.element || channel_.window || null, channel_)\n          const destination = channel_.element || channel_.window || null\n          if (destination != null) {\n            let usePostMessage = false\n            try {\n              ;(destination as any).upChannel = channel_\n            } catch {\n              // Ignore\n              usePostMessage = true\n            }\n            const detail = {\n              channel: channel_,\n              chainId: options.chainId,\n              allowedAccounts: [],\n              contextAccounts: options.contextAccounts,\n              rpcUrls: options.rpcUrls,\n              enable: false,\n            }\n            serverLog('channel receipt', detail)\n            const event = new CustomEvent('up-channel-connected', {\n              detail,\n            })\n            if (usePostMessage) {\n              // Need to specify target origin for cross-origin communication\n              ;(destination as Window)?.postMessage({ ...detail, channel: undefined }, '*')\n            } else {\n              try {\n                destination.dispatchEvent(event)\n              } catch {}\n            }\n          }\n          return\n        }\n        try {\n          const request = {\n            ...event.data,\n            id: `${channelId}:${event.data.id}`,\n          }\n          server.receive(request).then(\n            response => {\n              serverLog('server response', response)\n              if (response && typeof response.id === 'string') {\n                if (request.method === 'eth_sendTransaction') {\n                  if (response.error) {\n                    console.error('Error sending transaction', response.error)\n                  }\n                  channel_.emit('sentTransaction', {\n                    from: request.params[0]?.from,\n                    to: request.params[0]?.to,\n                    value: request.params[0]?.value,\n                    result: response.result,\n                    error: response.error,\n                  })\n                }\n\n                // Handle wallet_requestPermissions response for popup/iframe modes\n                // return [{\n                //   parentCapability: 'eth_accounts',\n                //   invoker: window.location.origin,\n                //   caveats: [{\n                //     type: 'restrictReturnedAccounts',\n                //     value: accounts\n                //   }]\n                // }]\n                if (request.method === 'wallet_requestPermissions' && response.result) {\n                  // Only update accounts automatically for iframe/popup modes\n                  const isIframeOrPopup = channel_.element !== null || (channel_.window && channel_.window !== window)\n\n                  if (isIframeOrPopup) {\n                    const permissions = response.result[0]\n                    if (permissions?.caveats?.[0]?.type === 'restrictReturnedAccounts' && Array.isArray(permissions.caveats[0].value)) {\n                      const newAccounts = permissions.caveats[0].value as `0x${string}`[]\n                      const currentAccounts = channel_.allowedAccounts\n\n                      // Check if accounts changed using same logic as elsewhere\n                      if ((currentAccounts?.length ?? 0) !== (newAccounts?.length ?? 0) || currentAccounts?.some((account, index) => account !== newAccounts[index])) {\n                        serverLog('wallet_requestPermissions returned new accounts, updating and sending accountsChanged', {\n                          enabled,\n                          isIframeOrPopup,\n                          newAccounts,\n                          currentAccounts,\n                        })\n                        // Update the accounts - this will trigger accountsChanged event\n                        channel_.setAllowedAccounts(newAccounts)\n                      }\n                    }\n                  }\n                }\n                if (!response.id.startsWith(`${channelId}:`)) {\n                  console.error(`Invalid response id ${response.id} on channel ${channelId}`)\n                  return\n                }\n                // Check if we need to wrap the response for cross-origin\n                const responseMessage = {\n                  ...response,\n                  id: JSON.parse(response.id.replace(`${channelId}:`, '')),\n                }\n\n                // Check if this is a cross-origin scenario where we can't use MessageChannel\n                // We should use MessageChannel if we have serverChannel, regardless of window comparison\n                const needsWrapping = !serverChannel && channel_.window\n                if (needsWrapping && channel_.window) {\n                  // Wrap and send via window.postMessage\n                  channel_.window.postMessage(\n                    {\n                      type: UP_PROVIDER_JSONRPC_TYPE,\n                      payload: responseMessage,\n                    },\n                    '*'\n                  )\n                } else {\n                  // Use MessageChannel\n                  serverLog('Sending response via MessageChannel, serverChannel exists:', !!serverChannel, 'responseMessage:', responseMessage)\n                  if (serverChannel) {\n                    serverChannel.postMessage(responseMessage)\n                  } else {\n                    console.error('serverChannel is null/undefined, cannot send response!')\n                  }\n                }\n              }\n            },\n            (error: any) => {\n              if (request.method === 'eth_sendTransaction') {\n                if (error) {\n                  console.error('Error sending transaction', error)\n                }\n                channel_.emit('sentTransaction', {\n                  from: request.params[0]?.from,\n                  to: request.params[0]?.to,\n                  value: request.params[0]?.value,\n                  error,\n                })\n              }\n              const errorMessage = {\n                error,\n                id: JSON.parse(request.id.replace(`${channelId}:`, '')),\n              }\n\n              // Check if this is a cross-origin scenario where we can't use MessageChannel\n              // We should use MessageChannel if we have serverChannel, regardless of window comparison\n              const needsWrapping = !serverChannel && channel_.window\n              if (needsWrapping && channel_.window) {\n                // Wrap and send via window.postMessage\n                channel_.window.postMessage(\n                  {\n                    type: UP_PROVIDER_JSONRPC_TYPE,\n                    payload: errorMessage,\n                  },\n                  '*'\n                )\n              } else {\n                // Use MessageChannel\n                serverChannel?.postMessage(errorMessage)\n              }\n            }\n          )\n        } catch (error) {\n          console.error('Error parsing JSON RPC request', error, event)\n        }\n      }\n\n      channels.set(channelId, channel_)\n      serverLog('server hasProvider', event.data, event.ports)\n      serverChannel.addEventListener('message', channelHandler)\n      serverChannel.start()\n\n      serverLog('server accept', serverChannel)\n\n      // Wait for provider to be fully initialized before sending windowInitialize\n      options.promise.then(() => {\n        // For iframe/popup mode (enabled=true), send the allowed accounts\n        // For extension mode (enabled=false), send empty accounts until explicitly connected\n        const initMessage = {\n          type: 'upProvider:windowInitialize',\n          chainId: options.chainId,\n          allowedAccounts: cleanupAccounts(enabled ? options.allowedAccounts : []),\n          contextAccounts: cleanupAccounts(options.contextAccounts),\n          rpcUrls: options.rpcUrls,\n        }\n\n        serverLog('Sending windowInitialize after provider ready', initMessage)\n\n        if (createdChannel) {\n          // Send the port along with the init message via postMessage\n          serverLog('Sending created port back to client')\n          ;(event.source as Window).postMessage(initMessage, event.origin, [createdChannel.port2])\n        } else {\n          // Normal flow - send via the channel\n          serverChannel?.postMessage(initMessage)\n        }\n\n        if (enabled && options.allowedAccounts.length > 0) {\n          channel_.emit('connect', { chainId: `0x${options.chainId.toString(16)}` })\n        }\n      })\n    }\n  }\n  window.addEventListener('message', options.providerHandler)\n\n  // If provider was passed, set it up after handler is registered\n  if (provider) {\n    globalUPProvider.setupProvider(provider, rpcUrls || []).catch(console.error)\n  }\n\n  return globalUPProvider\n}\n\nexport { type UPClientChannel, type UPClientChannelEvents, type UPProviderConnector, type UPProviderConnectorEvents, type UPProviderEndpoint, type UPProviderEndpointEvents, getUPProviderChannel, createUPProviderConnector }\n","export * from './client'\nexport * from './server'\nexport * from './popup'\n\n/**\n * Small helper function to compare two arrays of addresses.\n * This allow null, undefined, or empty strings to be considered the same.\n * @param _addresses1 - array 1\n * @param _addresses2 - array 2\n * @returns Returns true if there were changes between the two arrays.\n */\nexport const arrayChanged = (_addresses1?: Array<`0x${string}` | string | null | undefined>, _addresses2?: Array<`0x${string}` | string | null | undefined>) => {\n  const addresses1 = _addresses1 ?? []\n  const addresses2 = _addresses2 ?? []\n  for (let i = 0; i < addresses1.length || i < addresses2.length; i++) {\n    const is1Null = addresses1[i] === null || addresses1[i] === undefined\n    const is2Null = addresses2[i] === null || addresses2[i] === undefined\n    if (is1Null && is2Null) {\n      continue\n    }\n    if (addresses1[i] !== addresses2[i]) {\n      return true\n    }\n  }\n  return false\n}\n\n/**\n * Cleanup accounts array so there are no sparse values (i.e. empty values in the middle, this is not compatible\n *  with many of the web3 libraries (web3.js and viem)).\n * @param values - original array\n * @returns Returns copy of array which makes 0x00..., null, undefined and empty string mark the end of the array\n *         This is useful for cleaning up the array of accounts.\n */\nexport const cleanupAccounts = (values: Array<`0x${string}` | undefined>): `0x${string}`[] => {\n  const output = []\n  for (const value of values) {\n    if (!value || /^0x0+$/.test(value)) {\n      break\n    }\n    output.push(value)\n  }\n  return output as Array<`0x${string}`>\n}\n"],"mappings":"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","names":["debug","window","debug","result","debug","EventEmitter3","uuidv4","debug","UP_PROVIDER_JSONRPC_TYPE","window","EventEmitter3","uuidv4","_accounts","accountsChanged","event"]}