{"version":3,"file":"bundle.js","sources":["../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/@babel/runtime/helpers/esm/construct.js","../../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/svelte/internal/index.mjs","../../src/App.svelte"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n  if (isNativeReflectConstruct()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !isNativeFunction(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return construct(Class, arguments, getPrototypeOf(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return setPrototypeOf(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n    // @ts-ignore\n    for (const k in src)\n        tar[k] = src[k];\n    return tar;\n}\nfunction is_promise(value) {\n    return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n    element.__svelte_meta = {\n        loc: { file, line, column, char }\n    };\n}\nfunction run(fn) {\n    return fn();\n}\nfunction blank_object() {\n    return Object.create(null);\n}\nfunction run_all(fns) {\n    fns.forEach(run);\n}\nfunction is_function(thing) {\n    return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n    return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n    return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n    if (store != null && typeof store.subscribe !== 'function') {\n        throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n    }\n}\nfunction subscribe(store, ...callbacks) {\n    if (store == null) {\n        return noop;\n    }\n    const unsub = store.subscribe(...callbacks);\n    return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n    let value;\n    subscribe(store, _ => value = _)();\n    return value;\n}\nfunction component_subscribe(component, store, callback) {\n    component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n    if (definition) {\n        const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n        return definition[0](slot_ctx);\n    }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n    return definition[1] && fn\n        ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n        : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n    if (definition[2] && fn) {\n        const lets = definition[2](fn(dirty));\n        if ($$scope.dirty === undefined) {\n            return lets;\n        }\n        if (typeof lets === 'object') {\n            const merged = [];\n            const len = Math.max($$scope.dirty.length, lets.length);\n            for (let i = 0; i < len; i += 1) {\n                merged[i] = $$scope.dirty[i] | lets[i];\n            }\n            return merged;\n        }\n        return $$scope.dirty | lets;\n    }\n    return $$scope.dirty;\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n    const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n    if (slot_changes) {\n        const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n        slot.p(slot_context, slot_changes);\n    }\n}\nfunction update_slot_spread(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_spread_changes_fn, get_slot_context_fn) {\n    const slot_changes = get_slot_spread_changes_fn(dirty) | get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n    if (slot_changes) {\n        const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n        slot.p(slot_context, slot_changes);\n    }\n}\nfunction exclude_internal_props(props) {\n    const result = {};\n    for (const k in props)\n        if (k[0] !== '$')\n            result[k] = props[k];\n    return result;\n}\nfunction compute_rest_props(props, keys) {\n    const rest = {};\n    keys = new Set(keys);\n    for (const k in props)\n        if (!keys.has(k) && k[0] !== '$')\n            rest[k] = props[k];\n    return rest;\n}\nfunction compute_slots(slots) {\n    const result = {};\n    for (const key in slots) {\n        result[key] = true;\n    }\n    return result;\n}\nfunction once(fn) {\n    let ran = false;\n    return function (...args) {\n        if (ran)\n            return;\n        ran = true;\n        fn.call(this, ...args);\n    };\n}\nfunction null_to_empty(value) {\n    return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n    store.set(value);\n    return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n    return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n    ? () => window.performance.now()\n    : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n    now = fn;\n}\nfunction set_raf(fn) {\n    raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n    tasks.forEach(task => {\n        if (!task.c(now)) {\n            tasks.delete(task);\n            task.f();\n        }\n    });\n    if (tasks.size !== 0)\n        raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n    tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n    let task;\n    if (tasks.size === 0)\n        raf(run_tasks);\n    return {\n        promise: new Promise(fulfill => {\n            tasks.add(task = { c: callback, f: fulfill });\n        }),\n        abort() {\n            tasks.delete(task);\n        }\n    };\n}\n\nfunction append(target, node) {\n    target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n    target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n    node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n    for (let i = 0; i < iterations.length; i += 1) {\n        if (iterations[i])\n            iterations[i].d(detaching);\n    }\n}\nfunction element(name) {\n    return document.createElement(name);\n}\nfunction element_is(name, is) {\n    return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n    const target = {};\n    for (const k in obj) {\n        if (has_prop(obj, k)\n            // @ts-ignore\n            && exclude.indexOf(k) === -1) {\n            // @ts-ignore\n            target[k] = obj[k];\n        }\n    }\n    return target;\n}\nfunction svg_element(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n    return document.createTextNode(data);\n}\nfunction space() {\n    return text(' ');\n}\nfunction empty() {\n    return text('');\n}\nfunction listen(node, event, handler, options) {\n    node.addEventListener(event, handler, options);\n    return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n    return function (event) {\n        event.preventDefault();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction stop_propagation(fn) {\n    return function (event) {\n        event.stopPropagation();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction self(fn) {\n    return function (event) {\n        // @ts-ignore\n        if (event.target === this)\n            fn.call(this, event);\n    };\n}\nfunction attr(node, attribute, value) {\n    if (value == null)\n        node.removeAttribute(attribute);\n    else if (node.getAttribute(attribute) !== value)\n        node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n    // @ts-ignore\n    const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n    for (const key in attributes) {\n        if (attributes[key] == null) {\n            node.removeAttribute(key);\n        }\n        else if (key === 'style') {\n            node.style.cssText = attributes[key];\n        }\n        else if (key === '__value') {\n            node.value = node[key] = attributes[key];\n        }\n        else if (descriptors[key] && descriptors[key].set) {\n            node[key] = attributes[key];\n        }\n        else {\n            attr(node, key, attributes[key]);\n        }\n    }\n}\nfunction set_svg_attributes(node, attributes) {\n    for (const key in attributes) {\n        attr(node, key, attributes[key]);\n    }\n}\nfunction set_custom_element_data(node, prop, value) {\n    if (prop in node) {\n        node[prop] = value;\n    }\n    else {\n        attr(node, prop, value);\n    }\n}\nfunction xlink_attr(node, attribute, value) {\n    node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n    const value = new Set();\n    for (let i = 0; i < group.length; i += 1) {\n        if (group[i].checked)\n            value.add(group[i].__value);\n    }\n    if (!checked) {\n        value.delete(__value);\n    }\n    return Array.from(value);\n}\nfunction to_number(value) {\n    return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n    const array = [];\n    for (let i = 0; i < ranges.length; i += 1) {\n        array.push({ start: ranges.start(i), end: ranges.end(i) });\n    }\n    return array;\n}\nfunction children(element) {\n    return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n    for (let i = 0; i < nodes.length; i += 1) {\n        const node = nodes[i];\n        if (node.nodeName === name) {\n            let j = 0;\n            const remove = [];\n            while (j < node.attributes.length) {\n                const attribute = node.attributes[j++];\n                if (!attributes[attribute.name]) {\n                    remove.push(attribute.name);\n                }\n            }\n            for (let k = 0; k < remove.length; k++) {\n                node.removeAttribute(remove[k]);\n            }\n            return nodes.splice(i, 1)[0];\n        }\n    }\n    return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n    for (let i = 0; i < nodes.length; i += 1) {\n        const node = nodes[i];\n        if (node.nodeType === 3) {\n            node.data = '' + data;\n            return nodes.splice(i, 1)[0];\n        }\n    }\n    return text(data);\n}\nfunction claim_space(nodes) {\n    return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n    data = '' + data;\n    if (text.wholeText !== data)\n        text.data = data;\n}\nfunction set_input_value(input, value) {\n    input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n    try {\n        input.type = type;\n    }\n    catch (e) {\n        // do nothing\n    }\n}\nfunction set_style(node, key, value, important) {\n    node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        if (option.__value === value) {\n            option.selected = true;\n            return;\n        }\n    }\n}\nfunction select_options(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        option.selected = ~value.indexOf(option.__value);\n    }\n}\nfunction select_value(select) {\n    const selected_option = select.querySelector(':checked') || select.options[0];\n    return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n    return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n    if (crossorigin === undefined) {\n        crossorigin = false;\n        try {\n            if (typeof window !== 'undefined' && window.parent) {\n                void window.parent.document;\n            }\n        }\n        catch (error) {\n            crossorigin = true;\n        }\n    }\n    return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n    const computed_style = getComputedStyle(node);\n    if (computed_style.position === 'static') {\n        node.style.position = 'relative';\n    }\n    const iframe = element('iframe');\n    iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n        'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n    iframe.setAttribute('aria-hidden', 'true');\n    iframe.tabIndex = -1;\n    const crossorigin = is_crossorigin();\n    let unsubscribe;\n    if (crossorigin) {\n        iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n        unsubscribe = listen(window, 'message', (event) => {\n            if (event.source === iframe.contentWindow)\n                fn();\n        });\n    }\n    else {\n        iframe.src = 'about:blank';\n        iframe.onload = () => {\n            unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n        };\n    }\n    append(node, iframe);\n    return () => {\n        if (crossorigin) {\n            unsubscribe();\n        }\n        else if (unsubscribe && iframe.contentWindow) {\n            unsubscribe();\n        }\n        detach(iframe);\n    };\n}\nfunction toggle_class(element, name, toggle) {\n    element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n    const e = document.createEvent('CustomEvent');\n    e.initCustomEvent(type, false, false, detail);\n    return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n    return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n    constructor(anchor = null) {\n        this.a = anchor;\n        this.e = this.n = null;\n    }\n    m(html, target, anchor = null) {\n        if (!this.e) {\n            this.e = element(target.nodeName);\n            this.t = target;\n            this.h(html);\n        }\n        this.i(anchor);\n    }\n    h(html) {\n        this.e.innerHTML = html;\n        this.n = Array.from(this.e.childNodes);\n    }\n    i(anchor) {\n        for (let i = 0; i < this.n.length; i += 1) {\n            insert(this.t, this.n[i], anchor);\n        }\n    }\n    p(html) {\n        this.d();\n        this.h(html);\n        this.i(this.a);\n    }\n    d() {\n        this.n.forEach(detach);\n    }\n}\nfunction attribute_to_object(attributes) {\n    const result = {};\n    for (const attribute of attributes) {\n        result[attribute.name] = attribute.value;\n    }\n    return result;\n}\nfunction get_custom_elements_slots(element) {\n    const result = {};\n    element.childNodes.forEach((node) => {\n        result[node.slot || 'default'] = true;\n    });\n    return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n    let hash = 5381;\n    let i = str.length;\n    while (i--)\n        hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n    return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n    const step = 16.666 / duration;\n    let keyframes = '{\\n';\n    for (let p = 0; p <= 1; p += step) {\n        const t = a + (b - a) * ease(p);\n        keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n    }\n    const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n    const name = `__svelte_${hash(rule)}_${uid}`;\n    const doc = node.ownerDocument;\n    active_docs.add(doc);\n    const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n    const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n    if (!current_rules[name]) {\n        current_rules[name] = true;\n        stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n    }\n    const animation = node.style.animation || '';\n    node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n    active += 1;\n    return name;\n}\nfunction delete_rule(node, name) {\n    const previous = (node.style.animation || '').split(', ');\n    const next = previous.filter(name\n        ? anim => anim.indexOf(name) < 0 // remove specific animation\n        : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n    );\n    const deleted = previous.length - next.length;\n    if (deleted) {\n        node.style.animation = next.join(', ');\n        active -= deleted;\n        if (!active)\n            clear_rules();\n    }\n}\nfunction clear_rules() {\n    raf(() => {\n        if (active)\n            return;\n        active_docs.forEach(doc => {\n            const stylesheet = doc.__svelte_stylesheet;\n            let i = stylesheet.cssRules.length;\n            while (i--)\n                stylesheet.deleteRule(i);\n            doc.__svelte_rules = {};\n        });\n        active_docs.clear();\n    });\n}\n\nfunction create_animation(node, from, fn, params) {\n    if (!from)\n        return noop;\n    const to = node.getBoundingClientRect();\n    if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n        return noop;\n    const { delay = 0, duration = 300, easing = identity, \n    // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n    start: start_time = now() + delay, \n    // @ts-ignore todo:\n    end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n    let running = true;\n    let started = false;\n    let name;\n    function start() {\n        if (css) {\n            name = create_rule(node, 0, 1, duration, delay, easing, css);\n        }\n        if (!delay) {\n            started = true;\n        }\n    }\n    function stop() {\n        if (css)\n            delete_rule(node, name);\n        running = false;\n    }\n    loop(now => {\n        if (!started && now >= start_time) {\n            started = true;\n        }\n        if (started && now >= end) {\n            tick(1, 0);\n            stop();\n        }\n        if (!running) {\n            return false;\n        }\n        if (started) {\n            const p = now - start_time;\n            const t = 0 + 1 * easing(p / duration);\n            tick(t, 1 - t);\n        }\n        return true;\n    });\n    start();\n    tick(0, 1);\n    return stop;\n}\nfunction fix_position(node) {\n    const style = getComputedStyle(node);\n    if (style.position !== 'absolute' && style.position !== 'fixed') {\n        const { width, height } = style;\n        const a = node.getBoundingClientRect();\n        node.style.position = 'absolute';\n        node.style.width = width;\n        node.style.height = height;\n        add_transform(node, a);\n    }\n}\nfunction add_transform(node, a) {\n    const b = node.getBoundingClientRect();\n    if (a.left !== b.left || a.top !== b.top) {\n        const style = getComputedStyle(node);\n        const transform = style.transform === 'none' ? '' : style.transform;\n        node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n    }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n    current_component = component;\n}\nfunction get_current_component() {\n    if (!current_component)\n        throw new Error('Function called outside component initialization');\n    return current_component;\n}\nfunction beforeUpdate(fn) {\n    get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n    get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n    get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n    get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n    const component = get_current_component();\n    return (type, detail) => {\n        const callbacks = component.$$.callbacks[type];\n        if (callbacks) {\n            // TODO are there situations where events could be dispatched\n            // in a server (non-DOM) environment?\n            const event = custom_event(type, detail);\n            callbacks.slice().forEach(fn => {\n                fn.call(component, event);\n            });\n        }\n    };\n}\nfunction setContext(key, context) {\n    get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n    return get_current_component().$$.context.get(key);\n}\nfunction hasContext(key) {\n    return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n    const callbacks = component.$$.callbacks[event.type];\n    if (callbacks) {\n        callbacks.slice().forEach(fn => fn(event));\n    }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n    if (!update_scheduled) {\n        update_scheduled = true;\n        resolved_promise.then(flush);\n    }\n}\nfunction tick() {\n    schedule_update();\n    return resolved_promise;\n}\nfunction add_render_callback(fn) {\n    render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n    flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n    if (flushing)\n        return;\n    flushing = true;\n    do {\n        // first, call beforeUpdate functions\n        // and update components\n        for (let i = 0; i < dirty_components.length; i += 1) {\n            const component = dirty_components[i];\n            set_current_component(component);\n            update(component.$$);\n        }\n        set_current_component(null);\n        dirty_components.length = 0;\n        while (binding_callbacks.length)\n            binding_callbacks.pop()();\n        // then, once components are updated, call\n        // afterUpdate functions. This may cause\n        // subsequent updates...\n        for (let i = 0; i < render_callbacks.length; i += 1) {\n            const callback = render_callbacks[i];\n            if (!seen_callbacks.has(callback)) {\n                // ...so guard against infinite loops\n                seen_callbacks.add(callback);\n                callback();\n            }\n        }\n        render_callbacks.length = 0;\n    } while (dirty_components.length);\n    while (flush_callbacks.length) {\n        flush_callbacks.pop()();\n    }\n    update_scheduled = false;\n    flushing = false;\n    seen_callbacks.clear();\n}\nfunction update($$) {\n    if ($$.fragment !== null) {\n        $$.update();\n        run_all($$.before_update);\n        const dirty = $$.dirty;\n        $$.dirty = [-1];\n        $$.fragment && $$.fragment.p($$.ctx, dirty);\n        $$.after_update.forEach(add_render_callback);\n    }\n}\n\nlet promise;\nfunction wait() {\n    if (!promise) {\n        promise = Promise.resolve();\n        promise.then(() => {\n            promise = null;\n        });\n    }\n    return promise;\n}\nfunction dispatch(node, direction, kind) {\n    node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n    outros = {\n        r: 0,\n        c: [],\n        p: outros // parent group\n    };\n}\nfunction check_outros() {\n    if (!outros.r) {\n        run_all(outros.c);\n    }\n    outros = outros.p;\n}\nfunction transition_in(block, local) {\n    if (block && block.i) {\n        outroing.delete(block);\n        block.i(local);\n    }\n}\nfunction transition_out(block, local, detach, callback) {\n    if (block && block.o) {\n        if (outroing.has(block))\n            return;\n        outroing.add(block);\n        outros.c.push(() => {\n            outroing.delete(block);\n            if (callback) {\n                if (detach)\n                    block.d(1);\n                callback();\n            }\n        });\n        block.o(local);\n    }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = false;\n    let animation_name;\n    let task;\n    let uid = 0;\n    function cleanup() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n        tick(0, 1);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        if (task)\n            task.abort();\n        running = true;\n        add_render_callback(() => dispatch(node, true, 'start'));\n        task = loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(1, 0);\n                    dispatch(node, true, 'end');\n                    cleanup();\n                    return running = false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(t, 1 - t);\n                }\n            }\n            return running;\n        });\n    }\n    let started = false;\n    return {\n        start() {\n            if (started)\n                return;\n            delete_rule(node);\n            if (is_function(config)) {\n                config = config();\n                wait().then(go);\n            }\n            else {\n                go();\n            }\n        },\n        invalidate() {\n            started = false;\n        },\n        end() {\n            if (running) {\n                cleanup();\n                running = false;\n            }\n        }\n    };\n}\nfunction create_out_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = true;\n    let animation_name;\n    const group = outros;\n    group.r += 1;\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        add_render_callback(() => dispatch(node, false, 'start'));\n        loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(0, 1);\n                    dispatch(node, false, 'end');\n                    if (!--group.r) {\n                        // this will result in `end()` being called,\n                        // so we don't need to clean up here\n                        run_all(group.c);\n                    }\n                    return false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(1 - t, t);\n                }\n            }\n            return running;\n        });\n    }\n    if (is_function(config)) {\n        wait().then(() => {\n            // @ts-ignore\n            config = config();\n            go();\n        });\n    }\n    else {\n        go();\n    }\n    return {\n        end(reset) {\n            if (reset && config.tick) {\n                config.tick(1, 0);\n            }\n            if (running) {\n                if (animation_name)\n                    delete_rule(node, animation_name);\n                running = false;\n            }\n        }\n    };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n    let config = fn(node, params);\n    let t = intro ? 0 : 1;\n    let running_program = null;\n    let pending_program = null;\n    let animation_name = null;\n    function clear_animation() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function init(program, duration) {\n        const d = program.b - t;\n        duration *= Math.abs(d);\n        return {\n            a: t,\n            b: program.b,\n            d,\n            duration,\n            start: program.start,\n            end: program.start + duration,\n            group: program.group\n        };\n    }\n    function go(b) {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        const program = {\n            start: now() + delay,\n            b\n        };\n        if (!b) {\n            // @ts-ignore todo: improve typings\n            program.group = outros;\n            outros.r += 1;\n        }\n        if (running_program || pending_program) {\n            pending_program = program;\n        }\n        else {\n            // if this is an intro, and there's a delay, we need to do\n            // an initial tick and/or apply CSS animation immediately\n            if (css) {\n                clear_animation();\n                animation_name = create_rule(node, t, b, duration, delay, easing, css);\n            }\n            if (b)\n                tick(0, 1);\n            running_program = init(program, duration);\n            add_render_callback(() => dispatch(node, b, 'start'));\n            loop(now => {\n                if (pending_program && now > pending_program.start) {\n                    running_program = init(pending_program, duration);\n                    pending_program = null;\n                    dispatch(node, running_program.b, 'start');\n                    if (css) {\n                        clear_animation();\n                        animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n                    }\n                }\n                if (running_program) {\n                    if (now >= running_program.end) {\n                        tick(t = running_program.b, 1 - t);\n                        dispatch(node, running_program.b, 'end');\n                        if (!pending_program) {\n                            // we're done\n                            if (running_program.b) {\n                                // intro — we can tidy up immediately\n                                clear_animation();\n                            }\n                            else {\n                                // outro — needs to be coordinated\n                                if (!--running_program.group.r)\n                                    run_all(running_program.group.c);\n                            }\n                        }\n                        running_program = null;\n                    }\n                    else if (now >= running_program.start) {\n                        const p = now - running_program.start;\n                        t = running_program.a + running_program.d * easing(p / running_program.duration);\n                        tick(t, 1 - t);\n                    }\n                }\n                return !!(running_program || pending_program);\n            });\n        }\n    }\n    return {\n        run(b) {\n            if (is_function(config)) {\n                wait().then(() => {\n                    // @ts-ignore\n                    config = config();\n                    go(b);\n                });\n            }\n            else {\n                go(b);\n            }\n        },\n        end() {\n            clear_animation();\n            running_program = pending_program = null;\n        }\n    };\n}\n\nfunction handle_promise(promise, info) {\n    const token = info.token = {};\n    function update(type, index, key, value) {\n        if (info.token !== token)\n            return;\n        info.resolved = value;\n        let child_ctx = info.ctx;\n        if (key !== undefined) {\n            child_ctx = child_ctx.slice();\n            child_ctx[key] = value;\n        }\n        const block = type && (info.current = type)(child_ctx);\n        let needs_flush = false;\n        if (info.block) {\n            if (info.blocks) {\n                info.blocks.forEach((block, i) => {\n                    if (i !== index && block) {\n                        group_outros();\n                        transition_out(block, 1, 1, () => {\n                            if (info.blocks[i] === block) {\n                                info.blocks[i] = null;\n                            }\n                        });\n                        check_outros();\n                    }\n                });\n            }\n            else {\n                info.block.d(1);\n            }\n            block.c();\n            transition_in(block, 1);\n            block.m(info.mount(), info.anchor);\n            needs_flush = true;\n        }\n        info.block = block;\n        if (info.blocks)\n            info.blocks[index] = block;\n        if (needs_flush) {\n            flush();\n        }\n    }\n    if (is_promise(promise)) {\n        const current_component = get_current_component();\n        promise.then(value => {\n            set_current_component(current_component);\n            update(info.then, 1, info.value, value);\n            set_current_component(null);\n        }, error => {\n            set_current_component(current_component);\n            update(info.catch, 2, info.error, error);\n            set_current_component(null);\n            if (!info.hasCatch) {\n                throw error;\n            }\n        });\n        // if we previously had a then/catch block, destroy it\n        if (info.current !== info.pending) {\n            update(info.pending, 0);\n            return true;\n        }\n    }\n    else {\n        if (info.current !== info.then) {\n            update(info.then, 1, info.value, promise);\n            return true;\n        }\n        info.resolved = promise;\n    }\n}\n\nconst globals = (typeof window !== 'undefined'\n    ? window\n    : typeof globalThis !== 'undefined'\n        ? globalThis\n        : global);\n\nfunction destroy_block(block, lookup) {\n    block.d(1);\n    lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n    transition_out(block, 1, 1, () => {\n        lookup.delete(block.key);\n    });\n}\nfunction fix_and_destroy_block(block, lookup) {\n    block.f();\n    destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n    block.f();\n    outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n    let o = old_blocks.length;\n    let n = list.length;\n    let i = o;\n    const old_indexes = {};\n    while (i--)\n        old_indexes[old_blocks[i].key] = i;\n    const new_blocks = [];\n    const new_lookup = new Map();\n    const deltas = new Map();\n    i = n;\n    while (i--) {\n        const child_ctx = get_context(ctx, list, i);\n        const key = get_key(child_ctx);\n        let block = lookup.get(key);\n        if (!block) {\n            block = create_each_block(key, child_ctx);\n            block.c();\n        }\n        else if (dynamic) {\n            block.p(child_ctx, dirty);\n        }\n        new_lookup.set(key, new_blocks[i] = block);\n        if (key in old_indexes)\n            deltas.set(key, Math.abs(i - old_indexes[key]));\n    }\n    const will_move = new Set();\n    const did_move = new Set();\n    function insert(block) {\n        transition_in(block, 1);\n        block.m(node, next);\n        lookup.set(block.key, block);\n        next = block.first;\n        n--;\n    }\n    while (o && n) {\n        const new_block = new_blocks[n - 1];\n        const old_block = old_blocks[o - 1];\n        const new_key = new_block.key;\n        const old_key = old_block.key;\n        if (new_block === old_block) {\n            // do nothing\n            next = new_block.first;\n            o--;\n            n--;\n        }\n        else if (!new_lookup.has(old_key)) {\n            // remove old block\n            destroy(old_block, lookup);\n            o--;\n        }\n        else if (!lookup.has(new_key) || will_move.has(new_key)) {\n            insert(new_block);\n        }\n        else if (did_move.has(old_key)) {\n            o--;\n        }\n        else if (deltas.get(new_key) > deltas.get(old_key)) {\n            did_move.add(new_key);\n            insert(new_block);\n        }\n        else {\n            will_move.add(old_key);\n            o--;\n        }\n    }\n    while (o--) {\n        const old_block = old_blocks[o];\n        if (!new_lookup.has(old_block.key))\n            destroy(old_block, lookup);\n    }\n    while (n)\n        insert(new_blocks[n - 1]);\n    return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n    const keys = new Set();\n    for (let i = 0; i < list.length; i++) {\n        const key = get_key(get_context(ctx, list, i));\n        if (keys.has(key)) {\n            throw new Error('Cannot have duplicate keys in a keyed each');\n        }\n        keys.add(key);\n    }\n}\n\nfunction get_spread_update(levels, updates) {\n    const update = {};\n    const to_null_out = {};\n    const accounted_for = { $$scope: 1 };\n    let i = levels.length;\n    while (i--) {\n        const o = levels[i];\n        const n = updates[i];\n        if (n) {\n            for (const key in o) {\n                if (!(key in n))\n                    to_null_out[key] = 1;\n            }\n            for (const key in n) {\n                if (!accounted_for[key]) {\n                    update[key] = n[key];\n                    accounted_for[key] = 1;\n                }\n            }\n            levels[i] = n;\n        }\n        else {\n            for (const key in o) {\n                accounted_for[key] = 1;\n            }\n        }\n    }\n    for (const key in to_null_out) {\n        if (!(key in update))\n            update[key] = undefined;\n    }\n    return update;\n}\nfunction get_spread_object(spread_props) {\n    return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n    'allowfullscreen',\n    'allowpaymentrequest',\n    'async',\n    'autofocus',\n    'autoplay',\n    'checked',\n    'controls',\n    'default',\n    'defer',\n    'disabled',\n    'formnovalidate',\n    'hidden',\n    'ismap',\n    'loop',\n    'multiple',\n    'muted',\n    'nomodule',\n    'novalidate',\n    'open',\n    'playsinline',\n    'readonly',\n    'required',\n    'reversed',\n    'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n    const attributes = Object.assign({}, ...args);\n    if (classes_to_add) {\n        if (attributes.class == null) {\n            attributes.class = classes_to_add;\n        }\n        else {\n            attributes.class += ' ' + classes_to_add;\n        }\n    }\n    let str = '';\n    Object.keys(attributes).forEach(name => {\n        if (invalid_attribute_name_character.test(name))\n            return;\n        const value = attributes[name];\n        if (value === true)\n            str += ' ' + name;\n        else if (boolean_attributes.has(name.toLowerCase())) {\n            if (value)\n                str += ' ' + name;\n        }\n        else if (value != null) {\n            str += ` ${name}=\"${String(value).replace(/\"/g, '&#34;').replace(/'/g, '&#39;')}\"`;\n        }\n    });\n    return str;\n}\nconst escaped = {\n    '\"': '&quot;',\n    \"'\": '&#39;',\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;'\n};\nfunction escape(html) {\n    return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n    let str = '';\n    for (let i = 0; i < items.length; i += 1) {\n        str += fn(items[i], i);\n    }\n    return str;\n}\nconst missing_component = {\n    $$render: () => ''\n};\nfunction validate_component(component, name) {\n    if (!component || !component.$$render) {\n        if (name === 'svelte:component')\n            name += ' this={...}';\n        throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n    }\n    return component;\n}\nfunction debug(file, line, column, values) {\n    console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n    console.log(values); // eslint-disable-line no-console\n    return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n    function $$render(result, props, bindings, slots) {\n        const parent_component = current_component;\n        const $$ = {\n            on_destroy,\n            context: new Map(parent_component ? parent_component.$$.context : []),\n            // these will be immediately discarded\n            on_mount: [],\n            before_update: [],\n            after_update: [],\n            callbacks: blank_object()\n        };\n        set_current_component({ $$ });\n        const html = fn(result, props, bindings, slots);\n        set_current_component(parent_component);\n        return html;\n    }\n    return {\n        render: (props = {}, options = {}) => {\n            on_destroy = [];\n            const result = { title: '', head: '', css: new Set() };\n            const html = $$render(result, props, {}, options);\n            run_all(on_destroy);\n            return {\n                html,\n                css: {\n                    code: Array.from(result.css).map(css => css.code).join('\\n'),\n                    map: null // TODO\n                },\n                head: result.title + result.head\n            };\n        },\n        $$render\n    };\n}\nfunction add_attribute(name, value, boolean) {\n    if (value == null || (boolean && !value))\n        return '';\n    return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n    return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n    const index = component.$$.props[name];\n    if (index !== undefined) {\n        component.$$.bound[index] = callback;\n        callback(component.$$.ctx[index]);\n    }\n}\nfunction create_component(block) {\n    block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n    block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n    const { fragment, on_mount, on_destroy, after_update } = component.$$;\n    fragment && fragment.m(target, anchor);\n    if (!customElement) {\n        // onMount happens before the initial afterUpdate\n        add_render_callback(() => {\n            const new_on_destroy = on_mount.map(run).filter(is_function);\n            if (on_destroy) {\n                on_destroy.push(...new_on_destroy);\n            }\n            else {\n                // Edge case - component was destroyed immediately,\n                // most likely as a result of a binding initialising\n                run_all(new_on_destroy);\n            }\n            component.$$.on_mount = [];\n        });\n    }\n    after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n    const $$ = component.$$;\n    if ($$.fragment !== null) {\n        run_all($$.on_destroy);\n        $$.fragment && $$.fragment.d(detaching);\n        // TODO null out other refs, including component.$$ (but need to\n        // preserve final state?)\n        $$.on_destroy = $$.fragment = null;\n        $$.ctx = [];\n    }\n}\nfunction make_dirty(component, i) {\n    if (component.$$.dirty[0] === -1) {\n        dirty_components.push(component);\n        schedule_update();\n        component.$$.dirty.fill(0);\n    }\n    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n    const parent_component = current_component;\n    set_current_component(component);\n    const $$ = component.$$ = {\n        fragment: null,\n        ctx: null,\n        // state\n        props,\n        update: noop,\n        not_equal,\n        bound: blank_object(),\n        // lifecycle\n        on_mount: [],\n        on_destroy: [],\n        on_disconnect: [],\n        before_update: [],\n        after_update: [],\n        context: new Map(parent_component ? parent_component.$$.context : []),\n        // everything else\n        callbacks: blank_object(),\n        dirty,\n        skip_bound: false\n    };\n    let ready = false;\n    $$.ctx = instance\n        ? instance(component, options.props || {}, (i, ret, ...rest) => {\n            const value = rest.length ? rest[0] : ret;\n            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n                if (!$$.skip_bound && $$.bound[i])\n                    $$.bound[i](value);\n                if (ready)\n                    make_dirty(component, i);\n            }\n            return ret;\n        })\n        : [];\n    $$.update();\n    ready = true;\n    run_all($$.before_update);\n    // `false` as a special case of no DOM component\n    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n    if (options.target) {\n        if (options.hydrate) {\n            const nodes = children(options.target);\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.l(nodes);\n            nodes.forEach(detach);\n        }\n        else {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.c();\n        }\n        if (options.intro)\n            transition_in(component.$$.fragment);\n        mount_component(component, options.target, options.anchor, options.customElement);\n        flush();\n    }\n    set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n    SvelteElement = class extends HTMLElement {\n        constructor() {\n            super();\n            this.attachShadow({ mode: 'open' });\n        }\n        connectedCallback() {\n            const { on_mount } = this.$$;\n            this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n            // @ts-ignore todo: improve typings\n            for (const key in this.$$.slotted) {\n                // @ts-ignore todo: improve typings\n                this.appendChild(this.$$.slotted[key]);\n            }\n        }\n        attributeChangedCallback(attr, _oldValue, newValue) {\n            this[attr] = newValue;\n        }\n        disconnectedCallback() {\n            run_all(this.$$.on_disconnect);\n        }\n        $destroy() {\n            destroy_component(this, 1);\n            this.$destroy = noop;\n        }\n        $on(type, callback) {\n            // TODO should this delegate to addEventListener?\n            const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n            callbacks.push(callback);\n            return () => {\n                const index = callbacks.indexOf(callback);\n                if (index !== -1)\n                    callbacks.splice(index, 1);\n            };\n        }\n        $set($$props) {\n            if (this.$$set && !is_empty($$props)) {\n                this.$$.skip_bound = true;\n                this.$$set($$props);\n                this.$$.skip_bound = false;\n            }\n        }\n    };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n    $destroy() {\n        destroy_component(this, 1);\n        this.$destroy = noop;\n    }\n    $on(type, callback) {\n        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n        callbacks.push(callback);\n        return () => {\n            const index = callbacks.indexOf(callback);\n            if (index !== -1)\n                callbacks.splice(index, 1);\n        };\n    }\n    $set($$props) {\n        if (this.$$set && !is_empty($$props)) {\n            this.$$.skip_bound = true;\n            this.$$set($$props);\n            this.$$.skip_bound = false;\n        }\n    }\n}\n\nfunction dispatch_dev(type, detail) {\n    document.dispatchEvent(custom_event(type, Object.assign({ version: '3.35.0' }, detail)));\n}\nfunction append_dev(target, node) {\n    dispatch_dev('SvelteDOMInsert', { target, node });\n    append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n    dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n    insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n    dispatch_dev('SvelteDOMRemove', { node });\n    detach(node);\n}\nfunction detach_between_dev(before, after) {\n    while (before.nextSibling && before.nextSibling !== after) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction detach_before_dev(after) {\n    while (after.previousSibling) {\n        detach_dev(after.previousSibling);\n    }\n}\nfunction detach_after_dev(before) {\n    while (before.nextSibling) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n    const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n    if (has_prevent_default)\n        modifiers.push('preventDefault');\n    if (has_stop_propagation)\n        modifiers.push('stopPropagation');\n    dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n    const dispose = listen(node, event, handler, options);\n    return () => {\n        dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n        dispose();\n    };\n}\nfunction attr_dev(node, attribute, value) {\n    attr(node, attribute, value);\n    if (value == null)\n        dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n    else\n        dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n    node[property] = value;\n    dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n    node.dataset[property] = value;\n    dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n    data = '' + data;\n    if (text.wholeText === data)\n        return;\n    dispatch_dev('SvelteDOMSetData', { node: text, data });\n    text.data = data;\n}\nfunction validate_each_argument(arg) {\n    if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n        let msg = '{#each} only iterates over array-like objects.';\n        if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n            msg += ' You can use a spread to convert this iterable into an array.';\n        }\n        throw new Error(msg);\n    }\n}\nfunction validate_slots(name, slot, keys) {\n    for (const slot_key of Object.keys(slot)) {\n        if (!~keys.indexOf(slot_key)) {\n            console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n        }\n    }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n    constructor(options) {\n        if (!options || (!options.target && !options.$$inline)) {\n            throw new Error(\"'target' is a required option\");\n        }\n        super();\n    }\n    $destroy() {\n        super.$destroy();\n        this.$destroy = () => {\n            console.warn('Component was already destroyed'); // eslint-disable-line no-console\n        };\n    }\n    $capture_state() { }\n    $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to seperate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n    constructor(options) {\n        super(options);\n    }\n}\nfunction loop_guard(timeout) {\n    const start = Date.now();\n    return () => {\n        if (Date.now() - start > timeout) {\n            throw new Error('Infinite loop detected');\n        }\n    };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_custom_elements_slots, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, update_slot, update_slot_spread, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","<svelte:options tag=\"prodamsp-componente-consentimento\" />\n\n<script>\n    import { onMount } from \"svelte\";\n    /* import url from \"./url\";*/\n\n    /*controles de estado*/\n    let CookieConfig = {};\n    let AcessoAnonimo = false;\n    let ExibePanelTermo = true;\n    let ExibePanelUsoCookies = true;\n    let ExisteNaAPI = false;\n    let algumaPermissaoObrigatoriaNaoEfetuada = false;\n    let listPermissaoObrigatoriaNaoEfetuada = [];\n    let AceiteExpirou = true;\n    let isOpen = false;\n    let isOpenDefincoes = false;\n    let isOpenPolitica = false;\n    let periodoRevogacao = 365;\n    let firefoxAgent =\n        navigator.userAgent.toLowerCase().indexOf(\"firefox\") > -1;\n\n    /*Export  - parâmetros gerais do componente  */\n    export let pessoacompgrafico = \"\";\n    export let tppessoacompgrafico = \"\";\n    export let indsaidasimplificada = \"0\";\n    export let tokencac;\n    export let timeouttokencac = 180000; //segundos\n    export let urlapi = \"http://webdesenv5.prodam/SF9421_api/api/v1/cookies/\";\n    export let urllogout = \"\";\n    export let exibepanelfooter = \"0\";\n    export let exibepanelatencao = \"\";\n    export let showpanelatencao = \"0\";\n    export let str_tipos_cookies = \"\";\n    export let str_tipos_cookies_necessarios = \"\";\n\n    /*Export  - regiao do footer*/\n    export let name;\n    export let footer_textoatencao = \"\";\n    export let footer_textowebsite = \"\";\n    export let footer_website;\n    export let panel_textodefinicaocookies = \"\";\n    export let footer_urlpolitica;\n    export let panel_textolinkpolitica = \"\";\n\n    /*Export  - regiao do panel central*/\n    export let panel_central_title;\n    export let panel_textoatencao;\n    export let panel_textoconsentimento;\n\n    /*Export  - regiao do modal*/\n    export let modal_central_title;\n    export let modal_termo_responsabilidade_title;\n    export let modal_termo_textoresponsabilidade;\n    export let modal_termo_preencherresponsabilidade;\n    export let modal_usocookie_title;\n    export let modal_usocookie_texto;\n    export let modal_usocookie_preencher;\n    export let modal_usocookie_txsimplificado;\n    export let tx_confirmar_sair =\n        \"Não foram selecionadas as opções minimamente necessárias para o funcionamento adequado da aplicação. Clique em cancelar para selecionar os termos, ou OK para sair e ser desconectado\";\n\n    /* Model CheckBox */\n    let isCheckedAceiteTermos = false;\n    let tiposDeCookiesObrigatorios = [];\n    let tiposDeCookies = [];\n    let tiposDeCookiesPosEscolha = []; //para gravação\n    let situacaoConsentimento = \"\";\n\n    export function getCookieConfig() {\n        console.log(CookieConfig);\n    }\n\n    export function GetSituacaoConsentimento() {\n        return situacaoConsentimento;\n    }\n\n    /*inicialização do componente ---------------------------------------------- ---------------------*/\n    onMount(() => {\n        return Iniciar();\n    });\n\n    export function Iniciar() {\n        //console.clear();\n        /* console.log(\"Iniciando o componente...\")*/\n        showpanelatencao = exibepanelatencao == \"1\" ? \"1\" : \"0\";\n        HideModalConfirmAceiteTermoResponsa();\n\n        /*carrega os tipos de cookies*/\n        tiposDeCookies = JSON.parse(str_tipos_cookies);\n        tiposDeCookiesObrigatorios = JSON.parse(str_tipos_cookies_necessarios);\n        tiposDeCookiesPosEscolha = tiposDeCookies; /* temporaria */\n\n        /* verifica se os parametros foram minimanente oferecidos*/\n        ValidarConfiguracoesCookies(\n            pessoacompgrafico,\n            tppessoacompgrafico,\n            indsaidasimplificada,\n            tokencac\n        );\n        /* set AcessoAnonimo=true para anonimo   vazio*/\n        if (pessoacompgrafico === \"\") {\n            AcessoAnonimo = true;\n        } else if (pessoacompgrafico !== \"\") {\n            AcessoAnonimo = false;\n        }\n\n        GetParametroRevogacao()\n            .then(\n                function (result) {\n                    periodoRevogacao = result;\n                },\n                function (err) {\n                    periodoRevogacao = 365;\n                }\n            )\n            .finally(function () {\n                /* carrega configuracoes já existente na api, se não for anonimo */\n                if (!AcessoAnonimo) {\n                    CarregaConfiguracoesDoUsuarioAPI()\n                        .then(\n                            function (newResult) {\n                                console.log(\n                                    \"[A]fim carregar dados da api: \",\n                                    newResult\n                                );\n                            },\n                            function (falha) {\n                                console.log(\n                                    \"[A]fim carregar dados da api: \",\n                                    falha\n                                );\n                            }\n                        )\n                        .finally(() => ValidaExibicaoPainel());\n                } else {\n                    ValidaExibicaoPainel();\n                    console.log(\"[NA]fim carregar dados da api\");\n                }\n            });\n    }\n\n    /*click do botao Continue (5)*/\n    export function SalvarConsentimento() {\n        let retorno = { CodRetorno: 0, MensagemRetorno: \"\" };\n\n        try {\n            retorno = salvar();\n\n            if (retorno.CodRetorno == 888) {\n                //operação cancelada\n                situacaoConsentimento = \"888\";\n            } else if (retorno.CodRetorno == 889) {\n                //888=usuário confirmou faltando os obrigatorios\n                HideModalConfirmAceiteTermoResponsa();\n\n                situacaoConsentimento = \"889\";\n\n                //e só redireciona se tiver urllogout\n\n                setTimeout(function () {\n                    if (urllogout != \"\") {\n                        Redirecionar(urllogout);\n                    }\n                    showpanelatencao = \"0\";\n                }, 800);\n            } else {\n                /* oculta os modais internos e  marca que efetuou o consentimento*/\n                HideModalConfirmAceiteTermoResponsa();\n                situacaoConsentimento = \"1\";\n                showpanelatencao = \"0\";\n            }\n        } catch (error) {\n            retorno = { CodRetorno: 999, MensagemRetorno: error };\n            console.log(\n                \"Erro ao salvar no componente de configuracao de cookies.!\",\n                error\n            );\n            HideModalConfirmAceiteTermoResponsa();\n            showpanelatencao = \"0\";\n        }\n\n        //chama evento callback\n        this.dispatchEvent(\n            new CustomEvent(\"SalvarConsentimento\", {\n                composed: true,\n                detail: { key: retorno },\n            })\n        );\n    }\n\n    /* botão 1*/\n    export function AutorizarCookiesEPolitica() {\n        isCheckedAceiteTermos = true;\n        ConfigurarListaParaGravacao(false);\n        let retorno = { CodRetorno: 0, MensagemRetorno: \"\" };\n        try {\n            retorno = salvar();\n            situacaoConsentimento = \"1\";\n        } catch (e) {\n            retorno = e;\n            console.log(\n                \"Erro ao carregar o componente de configuracao de cookies.!\",\n                e.message\n            );\n        }\n\n        //chama evento callback\n        this.dispatchEvent(\n            new CustomEvent(\"AutorizarCookiesEPolitica\", {\n                composed: true,\n                detail: { key: retorno },\n            })\n        );\n\n        /* oculta os modais internos */\n        HideModalConfirmAceiteTermoResponsa();\n        showpanelatencao = \"0\";\n    }\n\n    /*click do botao 2*/\n    export function AutorizarCookiesNecessariosEPolitica() {\n        /*guarda o estado do indicardor para voltar ao estado de postback*/\n        let _indsaidasimplificada = indsaidasimplificada;\n        indsaidasimplificada = \"1\";\n        isCheckedAceiteTermos = true;\n\n        ConfigurarListaParaGravacao(true);\n\n        let retorno = { CodRetorno: 0, MensagemRetorno: \"\" };\n\n        try {\n            retorno = salvar();\n            situacaoConsentimento = \"1\";\n        } catch (e) {\n            retorno = e;\n            console.log(\n                \"Erro ao carregar o componente de configuracao de cookies.!\",\n                e.message\n            );\n        }\n\n        /*retorar ao estado de configuração,  ao estado de postback*/\n        indsaidasimplificada = _indsaidasimplificada;\n\n        /*chama evento callback*/\n        this.dispatchEvent(\n            new CustomEvent(\"AutorizarCookiesNecessariosEPolitica\", {\n                composed: true,\n                detail: { key: retorno },\n            })\n        );\n\n        /* oculta os modais internos */\n        HideModalConfirmAceiteTermoResponsa();\n        showpanelatencao = \"0\";\n    }\n\n    /*click do botao 3*/\n    export function AutorizarPoliticaEEscolherCookies() {\n        // isCheckedAceiteTermos = false;\n\n        /*exibe o painel para escolher os cookies */\n        isOpen = !isOpen;\n    }\n\n    /*click do botao 4*/\n    export function SairSemAutorizar(e) {\n        //se houver popup aberto\n        HideModalConfirmAceiteTermoResponsa();\n        let result = { CodRetorno: \"00\", MensagemRetorno: \"\" };\n        var r = confirm(tx_confirmar_sair);\n\n        if (r == true) {\n            situacaoConsentimento = \"889\";\n            isCheckedAceiteTermos = false;\n            DesistirAceiteTermoResponsaSimplAnonimo();\n\n            if (!AcessoAnonimo) {\n                //retornoAssincrono = {CodRetorno:\"11\", MensagemRetorno:\"Obtenha o Retorno getRetornoAssincrono(); \"};\n                FinalizarConfiguracaoModoNaoAnonimo().then(function (retorno) {\n                    result = retorno;\n\n                    if (urllogout != \"\") {\n                        setTimeout(function () {\n                            if (urllogout != \"\") {\n                                Redirecionar(urllogout);\n                            }\n                        }, 800);\n                    }\n                });\n            }\n\n            showpanelatencao = \"0\";\n\n            if (urllogout != \"\") {\n                setTimeout(function () {\n                    if (urllogout != \"\") {\n                        Redirecionar(urllogout);\n                    }\n                }, 800);\n            }\n        }\n\n        /* comportamento estranho do firefox ...*/\n        if (!firefoxAgent) {\n            //chama evento callback\n            this.dispatchEvent(\n                new CustomEvent(\"SairSemAutorizar\", {\n                    composed: true,\n                    detail: { key: result },\n                })\n            );\n        } else {\n            setTimeout(function () {\n                //chama evento callback\n                this.dispatchEvent(\n                    new CustomEvent(\"SairSemAutorizar\", {\n                        composed: true,\n                        detail: { key: result },\n                    })\n                );\n            }, 1200);\n        }\n    }\n\n    function ValidaExibicaoPainel() {\n        /* carrega configuracoes dos cookies no checkbox */\n        CarregaConfiguracoesDoUsuarioCookie();\n        console.log(\n            \"algumaPermissaoObrigatoriaNaoEfetuada\",\n            algumaPermissaoObrigatoriaNaoEfetuada\n        );\n        console.log(\n            \"listPermissaoObrigatoriaNaoEfetuada\",\n            listPermissaoObrigatoriaNaoEfetuada\n        );\n        console.log(\"ExisteNaAPI\", ExisteNaAPI);\n        console.log(\"AceiteExpirou\", AceiteExpirou);\n        console.log(\"AcessoAnonimo\", AcessoAnonimo);\n\n        if (\n            algumaPermissaoObrigatoriaNaoEfetuada ||\n            (ExisteNaAPI && AceiteExpirou) ||\n            (!ExisteNaAPI && !AcessoAnonimo)\n        ) {\n            /*registra um refresh para obter novo token*/\n            let timeout = timeouttokencac;\n            setTimeout(function () {\n                if (showpanelatencao == \"1\") {\n                    //alert('O componente de consentimento de cookies expirou e será recarregado.');\n                    location.reload();\n                }\n            }, timeout);\n\n            //só mostra o painel se != \"0\" ou AceiteExpirou no modo nao anonimo\n            if (\n                exibepanelatencao != \"0\" ||\n                (AceiteExpirou && !AcessoAnonimo) ||\n                (algumaPermissaoObrigatoriaNaoEfetuada &&\n                    exibepanelatencao != \"0\")\n            ) {\n                showpanelatencao = \"1\";\n            }\n        } else {\n            //só mostra o painel se != \"0\" ou AceiteExpirou  no modo nao anonimo\n\n            if (\n                exibepanelatencao != \"0\" ||\n                (AceiteExpirou && !AcessoAnonimo) ||\n                (algumaPermissaoObrigatoriaNaoEfetuada &&\n                    exibepanelatencao != \"0\")\n            ) {\n                showpanelatencao = \"1\";\n            } else {\n                showpanelatencao = \"0\";\n            }\n        }\n    }\n\n    /* funcoes estado do componente ------------------------------------------------------------------------------*/\n\n    function CarregaConfiguracoesDoUsuarioCookie() {\n        algumaPermissaoObrigatoriaNaoEfetuada = false;\n\n        /*Obter dados do cookie*/\n        if (checkIfCookieExist(\"SWCookieConfig\") || ExisteNaAPI) {\n            var data =\n                getCookie(\"SWCookieConfig\") != \"\"\n                    ? getCookie(\"SWCookieConfig\")\n                    : JSON.stringify(CookieConfig);\n\n            CookieConfig = JSON.parse(data);\n\n            if (!Object.entries) {\n                Object.entries = function (obj) {\n                    var ownProps = Object.keys(obj),\n                        i = ownProps.length,\n                        resArray = new Array(i); // preallocate the Array\n                    while (i--) resArray[i] = [ownProps[i], obj[ownProps[i]]];\n\n                    return resArray;\n                };\n            }\n\n            let tiposDC = Object.entries(CookieConfig);\n\n            for (let i = 0; i < tiposDC.length; i++) {\n                if (tiposDC[i][0] == \"aceiteTermos\") {\n                    if (tiposDC[i][1] == \"S\") {\n                        isCheckedAceiteTermos = true;\n                    }\n                }\n            }\n\n            var item;\n\n            for (let i = 0; i < tiposDC.length; i++) {\n                item = tiposDC[i];\n                for (let y = 0; y < tiposDeCookies.length; y++) {\n                    if (tiposDeCookies[y].id == item[0]) {\n                        var valor = [];\n                        if (item[1] == \"S\") {\n                            valor.push(item[0]);\n                        }\n                        tiposDeCookies[y].valor = valor;\n                        continue;\n                    }\n                }\n            }\n\n            for (let i = 0; i < tiposDC.length; i++) {\n                item = tiposDC[i];\n                for (let y = 0; y < tiposDeCookiesObrigatorios.length; y++) {\n                    if (tiposDeCookiesObrigatorios[y].id == item[0]) {\n                        var valor = [];\n                        if (item[1] == \"S\") {\n                            valor.push(item[0]);\n                        } else {\n                            listPermissaoObrigatoriaNaoEfetuada.push(item);\n                            algumaPermissaoObrigatoriaNaoEfetuada = true;\n                        }\n                        tiposDeCookiesObrigatorios[y].valor = valor;\n                        continue;\n                    }\n                }\n            }\n\n            if (CookieConfig.aceiteTermos === \"N\") {\n                algumaPermissaoObrigatoriaNaoEfetuada = true;\n            }\n\n            if (!algumaPermissaoObrigatoriaNaoEfetuada) {\n                exibepanelatencao = \"0\";\n            }\n        } else {\n            /*se nao existir*/\n            tiposDeCookies.forEach(MontarConfig);\n            CookieConfig.aceiteTermos = \"N\";\n            var myJSON = JSON.stringify(CookieConfig);\n            setCookie(\"SWCookieConfig\", myJSON);\n\n            if (!AcessoAnonimo) {\n                showpanelatencao = \"1\";\n                algumaPermissaoObrigatoriaNaoEfetuada = true;\n            }\n        }\n    }\n\n    export function CarregaConfiguracoesDoUsuarioAPI() {\n        ExisteNaAPI = false; /*existe configuracao em banco*/\n        ExibePanelTermo = true;\n        ExibePanelUsoCookies = true;\n\n        CookieConfig = {};\n        let retornoJSON = [];\n        console.log(\"tppessoacompgrafico:\" + tppessoacompgrafico);\n        console.log(\"pessoacompgrafico:\" + pessoacompgrafico);\n        let result = ObtemConfiguracoesDoUsuarioAPI(\n            tppessoacompgrafico,\n            pessoacompgrafico\n        );\n\n        return result.then(\n            function (retorno) {\n                retornoJSON = retorno;\n\n                console.log(\n                    \"[CarregaConfiguracoesDoUsuarioAPI] - 1 Retornou valor de ObtemConfiguracoesDoUsuarioAPI\"\n                );\n                try {\n                    /*carrega o cookie a partir da api*/\n                    CookieConfig = {};\n\n                    if (!Object.entries) {\n                        Object.entries = function (obj) {\n                            var ownProps = Object.keys(obj),\n                                i = ownProps.length,\n                                resArray = new Array(i); // preallocate the Array\n                            while (i--)\n                                resArray[i] = [ownProps[i], obj[ownProps[i]]];\n\n                            return resArray;\n                        };\n                    }\n\n                    Object.entries(retorno).forEach(MontarConfigApi);\n\n                    var myJSON = JSON.stringify(CookieConfig);\n                    setCookie(\"SWCookieConfig\", myJSON);\n\n                    var dataAtual = new Date();\n                    var from = retornoJSON.DtAtualizacao.split(\"/\");\n\n                    let dia = parseInt(from[0]);\n                    let mes = parseInt(from[1]) - 1;\n                    let ano = parseInt(from[2]);\n\n                    let dataUltimaConfiguracao = new Date(ano, mes, dia);\n\n                    ExisteNaAPI = true;\n                    if (\n                        VerificaSePeriodoDoAceiteExpirou(\n                            dataAtual,\n                            dataUltimaConfiguracao\n                        )\n                    ) {\n                        console.log(\n                            \"[CarregaConfiguracoesDoUsuarioAPI] - 2 Aceite expirou\"\n                        );\n                        AceiteExpirou = true;\n                    }\n                    {\n                        console.log(\n                            \"[CarregaConfiguracoesDoUsuarioAPI] - 2 Aceite N expirou\"\n                        );\n                        AceiteExpirou = false;\n                    }\n                } catch (error) {\n                    console.log(\n                        \"[CarregaConfiguracoesDoUsuarioAPI] - 1.1 Retornou erro de ObtemConfiguracoesDoUsuarioAPI\"\n                    );\n                    console.log(\"Erro ao consultar a data na api\");\n                    //evitar o erro split\n                }\n\n                //se retorno 00 ou 07 é saída simplificada\n                if (retornoJSON.CodRetorno == \"00\") {\n                    console.log(\n                        \"[CarregaConfiguracoesDoUsuarioAPI] - 3  Retorno 00\"\n                    );\n                    ExisteNaAPI = true;\n                } else if (retornoJSON.CodRetorno == \"07\") {\n                    console.log(\n                        \"[CarregaConfiguracoesDoUsuarioAPI] - 3 Retorno O7\"\n                    );\n                    ExisteNaAPI = false;\n                } else {\n                    algumaPermissaoObrigatoriaNaoEfetuada = true;\n                    if (retornoJSON.MensagemRetorno !== undefined) {\n                        console.log(\n                            \"[CarregaConfiguracoesDoUsuarioAPI] - 4 Erro ao carregar o componente de configuracao de cookies: \" +\n                                retornoJSON.MensagemRetorno\n                        );\n                    } else {\n                        console.log(retornoJSON.MensagemRetorno);\n                    }\n                }\n            },\n\n            function (error) {\n                console.log(\n                    \"[CarregaConfiguracoesDoUsuarioAPI] - 1 Erro ao carregar o componente de configuracao de cookies!\",\n                    error\n                );\n                algumaPermissaoObrigatoriaNaoEfetuada = true;\n            }\n        );\n    }\n\n    /* Inicio Funcoes de Cookies   ----------------------------------------------------------------- */\n    function VerificaSePeriodoDoAceiteExpirou(\n        dataAtual,\n        dataUltimaConfiguracao\n    ) {\n        let startDay = new Date(dataAtual);\n        let endDay = new Date(dataUltimaConfiguracao);\n        let millisecondsPerDay = 1000 * 60 * 60 * 24;\n\n        let millisBetween = endDay.getTime() - startDay.getTime();\n        let days = millisBetween / millisecondsPerDay;\n        let result = Math.floor(days);\n        let diasDecorridos = Math.abs(result);\n        /*console.log(\"dias decorridos (\" + diasDecorridos+ \") > revogação (\"+periodoRevogacaoInt+\") : \" ,  (diasDecorridos > periodoRevogacaoInt))*/\n        if (diasDecorridos > periodoRevogacao) {\n            return true;\n        }\n        return false;\n    }\n\n    function setCookie(cname, cvalue) {\n        let exdays = periodoRevogacao;\n        var d = new Date();\n        d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n        var expires = \"expires=\" + d.toUTCString();\n        document.cookie =\n            cname + \"=\" + cvalue + \";\" + expires + \";path=/\" + \";\";\n\n        console.log(\"conteudo a gravar no cookie\", cvalue);\n    }\n\n    function getCookie(cname) {\n        var name = cname + \"=\";\n        try {\n            var ca = document.cookie.split(\";\");\n            for (var i = 0; i < ca.length; i++) {\n                var c = ca[i];\n                while (c.charAt(0) == \" \") {\n                    c = c.substring(1);\n                }\n                if (c.indexOf(name) == 0) {\n                    return c.substring(name.length, c.length);\n                }\n            }\n        } catch (error) {\n            /* evitar o erro do split*/\n        }\n\n        return \"\";\n    }\n\n    function checkIfCookieExist(nome) {\n        var user = getCookie(nome);\n        if (user != \"\") {\n            return true;\n        } else {\n            return false;\n        }\n    }\n    /* Fim  Funcoes de Cookies   ----------------------------------------------------------------- */\n\n    /*Carregado no load da pagina - cria Config a partir da lista da api */\n    function MontarConfig(item) {\n        var valor = \"N\";\n\n        if (item.valor.length != 0) {\n            valor = \"S\";\n        }\n\n        Object.defineProperty(CookieConfig, item.id, {\n            value: valor,\n            writable: true,\n            enumerable: true,\n            configurable: true,\n        });\n    }\n\n    function MontarConfigApi(item) {\n        /*apenas as propridades com a palavrava aceite*/\n        if (item[0].includes(\"aceite\")) {\n            var valor = \"N\";\n            if (item[1] === \"S\") {\n                valor = \"S\";\n            }\n\n            Object.defineProperty(CookieConfig, item[0], {\n                value: valor,\n                writable: true,\n                enumerable: true,\n                configurable: true,\n            });\n\n            if (item[0] == \"aceiteTermos\") {\n                if (item[1] === \"S\") {\n                    isCheckedAceiteTermos = true;\n                }\n            }\n        }\n    }\n\n    /*valida se todos os parametros foram informados pelo aplicação cliente */\n    function ValidarConfiguracoesCookies(\n        pPessoaCompGrafico,\n        pTpPessoaCompGrafico,\n        pIndSaidaSimplificada,\n        pTokencac\n    ) {\n        /*  if (\n            pTokencac == \"\" ||\n            pTokencac == undefined ||\n            pTokencac == \"undefined\"\n        ) {\n            alert(\"Token  de autenticação não informado.\");\n            return false;\n        }\n\n        if (\n            urlapi == \"\" ||\n            urlapi == undefined ||\n            urlapi == \"undefined\"\n        ) {\n            alert(\"A url da api de persistencia dos cookies não foi informada.\");\n            return false;\n        }*/\n\n        if (\n            pIndSaidaSimplificada == undefined ||\n            pIndSaidaSimplificada === \"\" ||\n            (pIndSaidaSimplificada != \"0\" && pIndSaidaSimplificada != \"1\")\n        ) {\n            if (pIndSaidaSimplificada != \"0\" && pIndSaidaSimplificada != \"1\") {\n                alert(\"Indicador de saída inválido.\");\n            } else {\n                alert(\"Indicador de saída simplificada não informado.\");\n            }\n\n            return false;\n        } else {\n            if (pPessoaCompGrafico != undefined && pPessoaCompGrafico !== \"\") {\n                if (\n                    pTpPessoaCompGrafico == undefined ||\n                    pTpPessoaCompGrafico === \"\"\n                ) {\n                    alert(\n                        \"Ao informar o campo PessoaCompGrafico deve se informar o TpPessoaCompGrafico.\"\n                    );\n                    return false;\n                }\n            }\n\n            if (\n                pTpPessoaCompGrafico != undefined &&\n                pTpPessoaCompGrafico !== \"\"\n            ) {\n                if (\n                    pPessoaCompGrafico == undefined ||\n                    pPessoaCompGrafico === \"\"\n                ) {\n                    alert(\n                        \"Ao informar o campo TpPessoaCompGrafico deve se informar o campo PessoaCompGrafico.\"\n                    );\n                    return false;\n                }\n            }\n        }\n    }\n\n    export function ValidaObrigatorios() {\n        var item;\n\n        for (let i = 0; i < tiposDeCookiesPosEscolha.length; i++) {\n            item = tiposDeCookiesPosEscolha[i];\n\n            for (let y = 0; y < tiposDeCookiesObrigatorios.length; y++) {\n                if (tiposDeCookiesObrigatorios[y].id == item.id) {\n                    if (item.valor.length == 0) {\n                        return false;\n                    }\n                }\n            }\n        }\n\n        if (!isCheckedAceiteTermos) {\n            return false;\n        }\n\n        return true;\n    }\n\n    export function ExibicaoPanelAtencao(value) {\n        showpanelatencao = value ? \"1\" : \"0\";\n\n        this.dispatchEvent(\n            new CustomEvent(\"ExibicaoPanelAtencao\", {\n                composed: true,\n                detail: { key: false },\n            })\n        );\n    }\n\n    export function GetExibicaoPanelAtencao() {\n        this.dispatchEvent(\n            new CustomEvent(\"GetExibicaoPanelAtencao\", {\n                composed: true,\n                detail: { key: false },\n            })\n        );\n\n        return showpanelatencao;\n    }\n\n    function handlePoliticaLinkClick(e) {\n        e.preventDefault();\n\n        var win = window.open(footer_urlpolitica, \"_blank\");\n        win.focus();\n    }\n\n    function handleKeydownModaPolitica(event) {\n        event.preventDefault();\n        if (`${event.key}` == \"Escape\") {\n            closePolitica();\n        }\n    }\n\n    function handleKeydownModaDefinicoes(event) {\n        event.preventDefault();\n        if (`${event.key}` == \"Escape\") {\n            closeDefincoes();\n        }\n    }\n\n    /*esq para fechar modais*/\n    function handleKeydownModal(event) {\n        event.preventDefault();\n        if (`${event.key}` == \"Escape\") {\n            HideModalConfirmAceiteTermoResponsa();\n        }\n    }\n\n    /*esq para fechar modais*/\n    function handleKeydownAtencao(event) {\n        event.preventDefault();\n        if (`${event.key}` == \"Escape\") {\n            SairSemAutorizar();\n        }\n    }\n\n    /*abrir e fechar popup de Cookies*/\n    function close() {\n        isOpen = false;\n    }\n\n    /*abrir e fechar popup de Definicoes*/\n    function openDefincoes() {\n        isOpenDefincoes = true;\n    }\n    function closeDefincoes() {\n        isOpenDefincoes = false;\n    }\n\n    /*abrir e fechar popup de Definicoes*/\n    function openPolitica() {\n        isOpenPolitica = true;\n    }\n    function closePolitica() {\n        isOpenPolitica = false;\n    }\n\n    export function HideModalConfirmAceiteTermoResponsa() {\n        try {\n            close();\n        } catch (error) {\n            /*nada  a fazer*/\n        }\n\n        try {\n            closeDefincoes();\n        } catch (error) {\n            /*nada  a fazer*/\n        }\n\n        try {\n            closePolitica();\n        } catch (error) {\n            /*nada  a fazer*/\n        }\n    }\n\n    function Redirecionar(strUrl) {\n        var validURL = strUrl.toUpperCase().indexOf(\"HTTP\") > -1;\n\n        if (validURL) {\n            if (strUrl.toUpperCase().substring(0, 4) != \"HTTP\") {\n                //endereco relativo\n                window.location.replace(strUrl);\n            } else if (location.protocol == strUrl.split(\"/\")[0]) {\n                //mesmo protocolo\n                window.location.replace(strUrl);\n            } else {\n                alert(\n                    \"O endereço de retorno está com protocolo diferente da pagina atual. Será necessário clicar novamente no botão do consentimento de cookie.\"\n                );\n                location.replace(\n                    window.location.href.replace(\"http:\", \"https:\")\n                );\n            }\n        } else {\n            document.querySelector(\"#\" + strUrl).click();\n        }\n\n        return false;\n    }\n\n    function DesistirAceiteTermoResponsaSimplAnonimo() {\n        CookieConfig = {};\n\n        for (let i = 0; i < tiposDeCookies.length; i++) {\n            tiposDeCookies[i].valor = [];\n        }\n\n        tiposDeCookies.forEach(MontarConfig);\n        CookieConfig.aceiteTermos = \"N\";\n        var myJSON = JSON.stringify(CookieConfig);\n        setCookie(\"SWCookieConfig\", myJSON);\n    }\n\n    function salvar() {\n        /* precisa de todos os tipos de cookies por isso inicial com todos*/\n        tiposDeCookiesPosEscolha = tiposDeCookies;\n\n        /*popular a lista para gravação*/\n        if (indsaidasimplificada == \"1\") {\n            /* se lista simplificada */\n            tiposDeCookiesObrigatorios.forEach(ObterCheckboxSelecionados);\n        }\n\n        var obrigatoriosNaoPreenchidos = false;\n        var usuarioConfirmouNaoAceite = false;\n\n        /*valida os obrigatorios*/\n        if (!ValidaObrigatorios()) {\n            obrigatoriosNaoPreenchidos = true;\n            usuarioConfirmouNaoAceite = confirm(tx_confirmar_sair);\n\n            if (!usuarioConfirmouNaoAceite) {\n                return {\n                    CodRetorno: \"888\",\n                    MensagemRetorno:\n                        \"Error: Não foram selecionados os obrigatórios.\",\n                };\n            }\n        }\n\n        var retornoFinalizar = { CodRetorno: \"00\", MensagemRetorno: \"\" };\n\n        if (AcessoAnonimo) {\n            retornoFinalizar = FinalizarConfiguracaoModoAnonimo();\n        } else {\n            retornoFinalizar = FinalizarConfiguracaoModoNaoAnonimo();\n        }\n\n        if (obrigatoriosNaoPreenchidos && usuarioConfirmouNaoAceite) {\n            return {\n                CodRetorno: \"889\",\n                MensagemRetorno:\n                    \"Usuário não consentiu com os termos obritórios\",\n            };\n        }\n\n        return retornoFinalizar;\n    }\n\n    function ObterCheckboxSelecionados(item) {\n        for (let i = 0; i < tiposDeCookiesPosEscolha.length; i++) {\n            if (tiposDeCookiesPosEscolha[i].id == item.id) {\n                tiposDeCookiesPosEscolha[i].valor = item.valor;\n            }\n        }\n    }\n\n    /*Finaliza configuracao modo nao anonimo - Nome correto (FinalizarConfiguracaoModoNaoAnonimo)*/\n    function FinalizarConfiguracaoModoNaoAnonimo() {\n        /*monta configs */\n        CookieConfig = {};\n        tiposDeCookiesPosEscolha.forEach(MontarConfig);\n        CookieConfig.aceiteTermos = isCheckedAceiteTermos ? \"S\" : \"N\";\n        var myJSON = JSON.stringify(CookieConfig);\n        setCookie(\"SWCookieConfig\", myJSON);\n\n        /*Precisa verificar se o usuario ja existe ou nao p definir o que fazer.      */\n        if (ExisteNaAPI) {\n            console.log(\"chamou AlterarConfiguracoesDoUsuarioAPI\");\n            return AlterarConfiguracoesDoUsuarioAPI(\n                pessoacompgrafico,\n                tppessoacompgrafico,\n                CookieConfig.aceiteTermos,\n                CookieConfig.aceiteSessao,\n                CookieConfig.aceiteDesempenho,\n                CookieConfig.aceiteEstatisticos,\n                CookieConfig.aceitePersistentes\n            );\n        } else {\n            console.log(\"chamou IncluirConfiguracoesDoUsuarioAPI\");\n            return IncluirConfiguracoesDoUsuarioAPI(\n                pessoacompgrafico,\n                tppessoacompgrafico,\n                CookieConfig.aceiteTermos,\n                CookieConfig.aceiteSessao,\n                CookieConfig.aceiteDesempenho,\n                CookieConfig.aceiteEstatisticos,\n                CookieConfig.aceitePersistentes\n            );\n        }\n    }\n\n    /*Finaliza configura modo simplificado anonimo Nome correto - FinalizarConfiguracaoModoAnonimo*/\n    function FinalizarConfiguracaoModoAnonimo() {\n        /* forcar valores no anonimo*/\n        CookieConfig = {};\n        tiposDeCookiesPosEscolha.forEach(MontarConfig);\n        CookieConfig.aceiteTermos = isCheckedAceiteTermos ? \"S\" : \"N\";\n\n        var myJSON = JSON.stringify(CookieConfig);\n        setCookie(\"SWCookieConfig\", myJSON);\n\n        return { CodRetorno: \"00\", MensagemRetorno: \"\" };\n    }\n\n    function ConfigurarListaParaGravacao(ApenasCoockiesObrigatorios) {\n        if (indsaidasimplificada == \"1\" || ApenasCoockiesObrigatorios) {\n            console.log(\"apenas obrigatorios\");\n            /* se lista simplificada (apenas aceites obrigatorios) */\n\n            /*deixa todas as escolhas em branco*/\n            for (let i = 0; i < tiposDeCookiesPosEscolha.length; i++) {\n                tiposDeCookiesPosEscolha[i].valor = [];\n            }\n\n            /*marcar todos os obrigatorios*/\n            for (let i = 0; i < tiposDeCookiesObrigatorios.length; i++) {\n                var item = [];\n                item.push(tiposDeCookiesObrigatorios[i].id);\n                tiposDeCookiesObrigatorios[i].valor = item;\n            }\n        } else {\n            //0, então ão simplificada (lista completa)\n            //carrega todas as escolhas na listaTiposDeCookies\n            for (let i = 0; i < tiposDeCookiesPosEscolha.length; i++) {\n                var item = [];\n                item.push(tiposDeCookies[i].id);\n                tiposDeCookiesPosEscolha[i].valor = item;\n            }\n        }\n    }\n\n    /* funcoes webapi ------------------------------------------------------------------------------*/\n\n    function getRequest(url, method, jsonParameter) {\n        return new Promise(function (resolve, reject) {\n            var xhr = new XMLHttpRequest();\n\n            xhr.open(method, url, true);\n            xhr.setRequestHeader(\n                \"Content-type\",\n                \"application/json; charset=utf-8\"\n            );\n            xhr.setRequestHeader(\"Authorization\", \"Bearer \" + tokencac);\n            xhr.setRequestHeader(\"Access-Control-Allow-Origin\", \"*\");\n            xhr.setRequestHeader(\n                \"Access-Control-Allow-Methods\",\n                \"ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL\"\n            );\n            xhr.setRequestHeader(\n                \"Access-Control-Allow-Headers\",\n                \"Overwrite, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-Range, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Location, Lock-Token, If\"\n            );\n            xhr.setRequestHeader(\n                \"Access-Control-Expose-Headers\",\n                \"DAV, content-length, Allow\"\n            );\n            xhr.setRequestHeader(\"Access-Control-Allow-Credentials\", true);\n            xhr.timeout = 4000; // Set timeout to 4 seconds (4000 milliseconds)\n            xhr.ontimeout = function () {\n                console.log(\"Request Timeout: 4s\");\n            };\n\n            xhr.onload = function () {\n                if (xhr.status == 200) {\n                    let retorno = JSON.parse(xhr.responseText);\n                    if (retorno.CodRetorno != undefined) {\n                        if (!retorno.CodRetorno != \"00\") {\n                            console.log(\"ERRO NO WEBSERVICE\", xhr.responseText);\n                            console.log(\"Parametros:\", jsonParameter);\n                        }\n                    }\n\n                    resolve(retorno);\n                } else {\n                    console.log(\"FALHA\", xhr.responseText);\n                    reject(\n                        JSON.parse(\n                            '{\"CodRetorno\":\"' +\n                                999 +\n                                '\", \"MensagemRetorno\":\"' +\n                                xhr.statusText +\n                                '\"}'\n                        )\n                    );\n                }\n            };\n\n            xhr.onerror = function () {\n                let texterro = \"Erro ao obter dados da api.\";\n                if (xhr.status == 401) {\n                    texterro + \" ( Token de acesso Expirado ) \";\n                }\n                console.log(\"** An error occurred during the transaction\");\n                reject(\n                    JSON.parse(\n                        '{\"CodRetorno\":\"' +\n                            999 +\n                            '\", \"MensagemRetorno\":\"' +\n                            texterro +\n                            '\"}'\n                    )\n                );\n            };\n\n            xhr.send(JSON.stringify(jsonParameter));\n        });\n    }\n\n    function GetParametroRevogacao() {\n        if (urlapi === \"\") {\n            return new Promise((resolve, reject) => {\n                resolve(periodoRevogacao);\n            });\n        } else {\n            return getRequest(urlapi + \"GetPeriRevogPolitCookies\", \"Post\", {});\n        }\n    }\n\n    export function ObtemConfiguracoesDoUsuarioAPI(\n        pessoaIndicador,\n        pessoaNumero\n    ) {\n        pessoaNumero = pessoaNumero.toString().replace(/[^\\d]+/g, \"\");\n        let dataJSON = {\n            pessoaNumero: pessoaNumero,\n            pessoaIndicador: pessoaIndicador,\n        };\n        return getRequest(urlapi + \"consultar\", \"Post\", dataJSON);\n    }\n\n    function IncluirConfiguracoesDoUsuarioAPI(\n        pessoaNumero,\n        pessoaIndicador,\n        aceiteTermos,\n        aceiteSessao,\n        aceiteDesempenho,\n        aceiteEstatisticos,\n        aceitePersistentes\n    ) {\n        pessoaNumero = pessoaNumero.replace(/[^\\d]+/g, \"\");\n        console.log(\"IncluirConfiguracoesDoUsuarioAPI - salvando não anonimo\");\n        let dataJSON = {\n            pessoaNumero: pessoaNumero,\n            pessoaIndicador: pessoaIndicador,\n            aceiteTermos: aceiteTermos,\n            aceiteSessao: aceiteSessao,\n            aceiteDesempenho: aceiteDesempenho,\n            aceiteEstatisticos: aceiteEstatisticos,\n            aceitePersistentes: aceitePersistentes,\n        };\n\n        return getRequest(urlapi + \"Inserir\", \"Post\", dataJSON);\n    }\n\n    function AlterarConfiguracoesDoUsuarioAPI(\n        pessoaNumero,\n        pessoaIndicador,\n        aceiteTermos,\n        aceiteSessao,\n        aceiteDesempenho,\n        aceiteEstatisticos,\n        aceitePersistentes\n    ) {\n        pessoaNumero = pessoaNumero.replace(/[^\\d]+/g, \"\");\n\n        let dataJSON = {\n            pessoaNumero: pessoaNumero,\n            pessoaIndicador: pessoaIndicador,\n            aceiteTermos: aceiteTermos,\n            aceiteSessao: aceiteSessao,\n            aceiteDesempenho: aceiteDesempenho,\n            aceiteEstatisticos: aceiteEstatisticos,\n            aceitePersistentes: aceitePersistentes,\n        };\n\n        return getRequest(urlapi + \"Alterar\", \"Post\", dataJSON);\n    }\n</script>\n\n<main>\n    <!-- Inicio html- regiao do Componente Panel Atencao -----  import Atencao  from './Atencao.svelte';                   -->\n    {#if showpanelatencao == \"1\"}\n        <div\n            id=\"modalPanelAtencao\"\n            class=\"cc__modal\"\n            on:keydown={handleKeydownAtencao}\n            tabindex={0}\n        >\n            <div />\n\n            <div class=\"cc__content__wrapper\">\n                <h2 style=\"text-align:center;\">{name}</h2>\n\n                <div class=\"cc__panel\">\n                    <div class=\"cc__panel__header\">\n                        <h3>{panel_central_title}</h3>\n                    </div>\n                    <div class=\"cc__panel__body__container\">\n                        <div class=\"cc__panel__body\">\n                            <p>\n                                {@html panel_textoatencao}\n                                <!--chamada do modal aqui-->\n                                <input\n                                    type=\"button\"\n                                    class=\"cc__linkbutton\"\n                                    on:click={openDefincoes}\n                                    value={panel_textodefinicaocookies}\n                                />\n                            </p>\n                            <p>\n                                {@html panel_textoconsentimento}\n\n                                <button\n                                    class=\"cc__linkbutton\"\n                                    on:click={handlePoliticaLinkClick}\n                                    >{panel_textolinkpolitica}</button\n                                >\n                            </p>\n                            <div class=\"cc__panel__aut__buttons\">\n                                <input\n                                    type=\"button\"\n                                    class=\"cc__button__autorizacao--all\"\n                                    role=\"tab\"\n                                    on:click={AutorizarCookiesEPolitica}\n                                    value=\"Autorizo o uso de todos os cookies e estou de acordo com a pol&iacute;tica de privacidade.\"\n                                />\n                                <input\n                                    type=\"button\"\n                                    class=\"cc__button__autorizacao\"\n                                    role=\"tab\"\n                                    on:click={AutorizarCookiesNecessariosEPolitica}\n                                    value=\"Use somente cookies necess&aacute;rios. Estou de acordo com a pol&iacute;tica de privacidade.\"\n                                />\n                                <input\n                                    type=\"button\"\n                                    class=\"cc__button__autorizacao\"\n                                    role=\"tab\"\n                                    on:click={AutorizarPoliticaEEscolherCookies}\n                                    value=\"Vou escolher os cookies. Estou de acordo com a pol&iacute;tica de privacidade.\"\n                                />\n                                <input\n                                    type=\"button\"\n                                    class=\"cc__button__autorizacao\"\n                                    role=\"tab\"\n                                    on:click={SairSemAutorizar}\n                                    value=\"Sair sem autorizar \"\n                                />\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    {/if}\n    <!-- Fim html- regiao do Atencao -----  import Atencao  from './Atencao.svelte';                   -->\n\n    <!-- Inicio html- regiao do footer -----  import Footer  from './Footer.svelte';                   -->\n    {#if exibepanelfooter == \"1\"}\n        <footer id=\"cc__footer\">\n            <div id=\"cc__footer__content\">\n                <div>\n                    <p>\n                        {footer_textoatencao} <br />\n                        {@html footer_textowebsite}<a\n                            href=\"/\"\n                            on:click={handlePoliticaLinkClick}\n                            >{footer_website}</a\n                        >\n                    </p>\n                    <div style=\"text-align:center; margin-top: -13px;\">\n                        <button\n                            class=\"cc_prefBotton\"\n                            on:click={AutorizarPoliticaEEscolherCookies}\n                            >Preferências de Cookies</button\n                        >\n                        <button\n                            class=\"cc_okBotton\"\n                            on:click={AutorizarCookiesEPolitica}>OK</button\n                        >\n                    </div>\n                </div>\n            </div>\n        </footer>\n    {/if}\n    <!-- Fim html - regiao do footer -----  import Footer  from './Footer.svelte';                     -->\n\n    <!-- Inicio html- regiao do modal -----  import Footer  from './Modal.svelte';                   -->\n    {#if isOpen}\n        <div\n            id=\"modalTermo\"\n            class=\"cc__modal\"\n            on:keydown={handleKeydownModal}\n            tabindex={0}\n        >\n            <div on:click={close} />\n\n            <div class=\"cc__content__wrapper_cookie\">\n                <div class=\"cc__modalDivOrgao\">\n                    <img\n                        style=\"float: left\"\n                        src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logosp.png\"\n                        alt=\"Logo Prefeitura de São Paulo\"\n                    />\n\n                    <img\n                        style=\"float: right\"\n                        src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logopmsp.png\"\n                        alt=\"Logo Prefeitura de São Paulo\"\n                    />\n                </div>\n\n                <div class=\"cc__modal__titulo\">\n                    <h1>{modal_central_title}</h1>\n                </div>\n\n                <div class=\"cc_content\">\n                    {#if ExibePanelTermo}\n                        <div class=\"cc__panelModal\">\n                            <div class=\"cc__panelModal__header\">\n                                <h3>{modal_termo_responsabilidade_title}</h3>\n                            </div>\n\n                            <div class=\"cc__panelModal__body__container\">\n                                <div class=\"cc__panelModal__body\">\n                                    <p>\n                                        {@html modal_termo_textoresponsabilidade}\n                                    </p>\n                                    <p>\n                                        {@html modal_termo_preencherresponsabilidade}\n                                    </p>\n                                    <ul style=\"list-style-type:none;\">\n                                        <li>\n                                            <input\n                                                type=\"checkbox\"\n                                                bind:checked={isCheckedAceiteTermos}\n                                            />\n                                            <b\n                                                >Aceito os termos de\n                                                responsabilidade\n                                            </b>\n                                        </li>\n                                    </ul>\n                                </div>\n                            </div>\n                        </div>\n                    {/if}\n                    {#if ExibePanelUsoCookies}\n                        <div class=\"cc__panelModal\" style=\"margin-top:20px;\">\n                            <div class=\"cc__panelModal__header\">\n                                <h3>{modal_usocookie_title}</h3>\n                            </div>\n\n                            {#if !AcessoAnonimo}\n                                <div class=\"cc__panelModal__body__container\">\n                                    <div class=\"cc__panelModal__body\">\n                                        <p>{@html modal_usocookie_texto}</p>\n                                        <p>{@html modal_usocookie_preencher}</p>\n\n                                        <ul style=\"list-style-type:none;\">\n                                            {#if indsaidasimplificada == \"0\"}\n                                                {#each tiposDeCookies as tipoCookie, index (tipoCookie.id)}\n                                                    <li>\n                                                        <input\n                                                            type=\"checkbox\"\n                                                            bind:group={tipoCookie.valor}\n                                                            value={tipoCookie.id}\n                                                        />\n                                                        <b\n                                                            >{tipoCookie.descricao}</b\n                                                        >\n                                                    </li>\n                                                {/each}\n                                            {:else}\n                                                {#each tiposDeCookiesObrigatorios as tipoCookie, index (tipoCookie.id)}\n                                                    <li>\n                                                        <input\n                                                            type=\"checkbox\"\n                                                            bind:group={tipoCookie.valor}\n                                                            value={tipoCookie.id}\n                                                        />\n                                                        <b\n                                                            >{tipoCookie.descricao}</b\n                                                        >\n                                                    </li>\n                                                {/each}\n                                            {/if}\n                                        </ul>\n                                    </div>\n                                </div>\n\n                                <div style=\"width:100%; text-align: center; \">\n                                    <div\n                                        role=\"button\"\n                                        aria-pressed=\"false\"\n                                        tabindex=\"0\"\n                                        id=\"continuarapp\"\n                                        class=\"cc__linkbutton\"\n                                        on:click={SalvarConsentimento}\n                                    >\n                                        Continuar\n                                    </div>\n                                </div>\n                            {:else}\n                                <div class=\"cc__panelModal__body__container\">\n                                    {#if indsaidasimplificada == \"1\"}\n                                        <div class=\"cc__panelModal__body\">\n                                            <p>\n                                                {@html modal_usocookie_txsimplificado}\n                                            </p>\n                                            <p>\n                                                {@html footer_textowebsite}<a\n                                                    href=\"/\"\n                                                    on:click={handlePoliticaLinkClick}\n                                                    >{footer_website}</a\n                                                >\n                                            </p>\n\n                                            <div\n                                                style=\"text-align:center; padding-bottom:10px;\"\n                                            >\n                                                <button\n                                                    class=\"cc_prefBotton\"\n                                                    on:click={() => {\n                                                        Redirecionar(\n                                                            footer_urlpolitica\n                                                        );\n                                                    }}\n                                                    >Retornar ao Portal PMSP</button\n                                                >\n                                                <button\n                                                    class=\"cc_prefBotton\"\n                                                    on:click={AutorizarCookiesNecessariosEPolitica}\n                                                    >Aceitar e Continuar</button\n                                                >\n                                            </div>\n                                        </div>\n                                    {:else}\n                                        <div class=\"cc__panelModal__body\">\n                                            <p>{@html modal_usocookie_texto}</p>\n                                            <p>\n                                                {@html modal_usocookie_preencher}\n                                            </p>\n                                            <ul style=\"list-style-type:none;\">\n                                                {#each tiposDeCookies as tipoCookie, index (tipoCookie.id)}\n                                                    <li>\n                                                        <input\n                                                            type=\"checkbox\"\n                                                            bind:group={tipoCookie.valor}\n                                                            value={tipoCookie.id}\n                                                        />\n                                                        <b\n                                                            >{tipoCookie.descricao}</b\n                                                        >\n                                                    </li>\n                                                {/each}\n                                            </ul>\n                                        </div>\n\n                                        <div\n                                            style=\"width:100%; text-align: center; \"\n                                        >\n                                            <input\n                                                type=\"button\"\n                                                id=\"continuarappa\"\n                                                class=\"cc__linkbutton\"\n                                                on:click={SalvarConsentimento}\n                                                value=\"Continuar\"\n                                            />\n                                        </div>\n                                    {/if}\n                                </div>\n                            {/if}\n                        </div>\n                    {/if}\n                </div>\n            </div>\n        </div>\n    {/if}\n    <!-- Fim html- regiao do modal -----  import Footer  from './Modal.svelte';                   -->\n\n    {#if isOpenPolitica}\n        <div\n            class=\"cc__modal\"\n            on:keydown={handleKeydownModaPolitica}\n            tabindex={0}\n        >\n            <div on:click={closePolitica} />\n\n            <div class=\"cc__content__wrapper_cookie\">\n                <slot name=\"header\">\n                    <div class=\"cc__modalDivOrgao\">\n                        <img\n                            style=\"float: left\"\n                            src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logosp.png\"\n                            alt=\"Logo Prefeitura de São Paulo\"\n                        />\n\n                        <img\n                            style=\"float: right\"\n                            src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logopmsp.png\"\n                            alt=\"Logo Prefeitura de São Paulo\"\n                        />\n                    </div>\n                    <div class=\"cc__modal__titulo\">\n                        <h1>{modal_central_title}</h1>\n                    </div>\n                </slot>\n                <slot name=\"content\">\n                    <div class=\"cc__panelModal\">\n                        <div class=\"cc__panelModal__header\">\n                            <h3>\n                                Política <button\n                                    class=\"cc__linkbutton\"\n                                    style=\"float:right;\"\n                                    on:click={closePolitica}>Fechar</button\n                                >\n                            </h3>\n                        </div>\n                        <div class=\"cc__panelModal__body__container\">\n                            <iframe\n                                title=\"Política\"\n                                id=\"cc_politica\"\n                                style=\"width:100%; height: 100%; min-height: 900px;\"\n                                sandbox=\"allow-same-origin allow-forms allow-popups allow-scripts\"\n                                src={footer_urlpolitica}\n                            />\n                        </div>\n                    </div>\n                </slot>\n            </div>\n        </div>\n    {/if}\n\n    <!-- Inicio html- regiao do modal Definicoes -----  import Footer  from './Modal.svelte';                   -->\n    {#if isOpenDefincoes}\n        <div\n            class=\"cc__modal\"\n            on:keydown={handleKeydownModaDefinicoes}\n            tabindex={0}\n        >\n            <div on:click={closeDefincoes} />\n\n            <div class=\"cc__content__wrapper_cookie\">\n                <slot name=\"header\">\n                    <div class=\"cc__modalDivOrgao\">\n                        <img\n                            style=\"float: left\"\n                            src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logosp.png\"\n                            alt=\"Logo Prefeitura de São Paulo\"\n                        />\n\n                        <img\n                            style=\"float: right\"\n                            src=\"https://senhawebsts.prefeitura.sp.gov.br/prodam.cdn.senhaweb/img/logopmsp.png\"\n                            alt=\"Logo Prefeitura de São Paulo\"\n                        />\n                    </div>\n                    <div class=\"cc__modal__titulo\">\n                        <h1>{modal_central_title}</h1>\n                    </div>\n                </slot>\n\n                <slot name=\"content\">\n                    <div class=\"cc__panelModal\">\n                        <div class=\"cc__panelModal__header\">\n                            <h3>\n                                O que s&atilde;o cookies? <button\n                                    class=\"cc__linkbutton\"\n                                    style=\"float:right;\"\n                                    on:click={closeDefincoes}>Fechar</button\n                                >\n                            </h3>\n                        </div>\n                        <div class=\"cc__panelModal__body__container\">\n                            <div class=\"cc__panelModal__body\">\n                                <p>\n                                    <b>Cookies</b> s&atilde;o arquivos salvos em\n                                    seu computador, tablet ou telefone quando voc&ecirc;\n                                    visita um site. Elas servem para controlar o\n                                    tr&aacute;fego, identificar o in&iacute;cio de\n                                    uma sess&atilde;o, armazenar conte&uacute;dos\n                                    ou permitir a aplica&ccedil;&atilde;o de elementos\n                                    de seguran&ccedil;a. Assim, permitem que as p&aacute;ginas\n                                    carreguem mais r&aacute;pido e facilitam a navega&ccedil;&atilde;o.\n                                </p>\n\n                                <p style=\"color:red;\">\n                                    Os cookies utilizados nesse site n&atilde;o\n                                    transmitem informa&ccedil;&otilde;es\n                                    pessoalmente identific&aacute;veis a\n                                    terceiros.\n                                </p>\n\n                                <p>\n                                    <b>Cookies de sess&atilde;o</b>: tipo de\n                                    cookie essencial para armazenar\n                                    informa&ccedil;&otilde;es da sess&atilde;o\n                                    do usu&aacute;rio autenticado. Sem esse\n                                    cookie, as aplica&ccedil;&otilde;es que\n                                    necessitam de autentica&ccedil;&atilde;o\n                                    n&atilde;o conseguem funcionar corretamente.\n                                    S&atilde;o armazenados no seu computador\n                                    durante a sess&atilde;o da web e s&atilde;o\n                                    exclu&iacute;dos automaticamente quando\n                                    voc&ecirc; fecha o navegador - eles\n                                    geralmente armazenam uma ID de sess&atilde;o\n                                    an&ocirc;nima, permitindo que voc&ecirc;\n                                    navegue em um site sem ter que fazer login\n                                    em cada p&aacute;gina, mas n&atilde;o\n                                    coletam nenhum dado pessoal.\n                                </p>\n\n                                <p>\n                                    <b>Cookies persistentes</b>: s&atilde;o\n                                    armazenados como um arquivo no seu\n                                    computador e permanece l&aacute; quando\n                                    voc&ecirc; fecha o navegador. O cookie pode\n                                    ser lido pelo site que o criou quando\n                                    voc&ecirc; visitar esse site novamente. Esse\n                                    tipo de cookie n&atilde;o deve ser\n                                    obrigat&oacute;rio e o usu&aacute;rio pode\n                                    escolher n&atilde;o autoriz&aacute;-lo.\n                                </p>\n\n                                <p>\n                                    <b>Cookies de desempenho</b>: Esses cookies\n                                    nos permitem monitorar e melhorar o\n                                    desempenho do nosso site. Por exemplo, eles\n                                    nos permitem contar visitas, identificar\n                                    origens de tr&aacute;fego e ver quais partes\n                                    do site s&atilde;o mais populares e auxiliar\n                                    na an&aacute;lise de melhorias. S&atilde;o\n                                    geralmente origin&aacute;rios de ferramentas\n                                    externas ao dom&iacute;nio principal e, por\n                                    isso devem ser opcionais ao usu&aacute;rio.\n                                </p>\n\n                                <p>\n                                    <b>Cookies estat&iacute;sticos</b>:\n                                    conhecidos tamb&eacute;m por \"cookie de\n                                    terceiros\", s&atilde;o cookies que guardam\n                                    prefer&ecirc;ncias do usu&aacute;rio. Por\n                                    exemplo, os cookies do Google Analytics.\n                                    Esse tipo de cookie deve ser opcional e a\n                                    aplica&ccedil;&atilde;o deve funcionar\n                                    normalmente caso o usu&aacute;rio n&atilde;o\n                                    autorize sua utiliza&ccedil;&atilde;o.\n                                </p>\n                            </div>\n                        </div>\n                    </div>\n                </slot>\n            </div>\n        </div>\n    {/if}\n</main>\n\n<!-- <svelte:window on:keydown={handleKeydownModal} />  -->\n\n<!-- Fim html- regiao do modal definicao -----  import Footer  from './Modal.svelte';                   -->\n<style>\n    /*regiao do footer*/\n    #cc__footer {\n        position: absolute;\n        bottom: 14.5px;\n        width: 99.3%;\n        height: 56px; /* a altura total do footer   */\n    }\n\n    #cc__footer__content {\n        background-color: #fff3d4;\n        border: 1px solid #41320e;\n        height: 52px; /* altura + top/bottom paddding + top/bottom border deve bater com alatura do footer */\n        padding: 0px;\n        text-align: justify;\n        line-height: 0.9;\n        text-indent: 0;\n        margin-bottom: 1.05em;\n        display: table;\n        width: 99%;\n    }\n\n    #cc__footer__content p {\n        padding: 0px;\n        text-indent: 3ch;\n        text-align: center;\n        color: #838340;\n        font-weight: normal;\n        font-stretch: normal;\n        font-style: normal;\n        line-height: normal;\n        letter-spacing: -0.45px;\n        font-size: small;\n        margin-top: 1px;\n    }\n\n    .cc_okBotton {\n        z-index: 2000;\n        cursor: pointer;\n        padding: 3px;\n        border: 1px solid #4cae4c;\n        color: #000;\n        background-image: linear-gradient(45deg, #4cae4c 50%, transparent 50%);\n        background-position: 100%;\n        background-size: 400%;\n        transition: background 300ms ease-in-out;\n        width: 60px;\n        font-size: small;\n    }\n\n    .cc_okBotton:hover {\n        background-position: 0;\n    }\n\n    .cc_prefBotton {\n        z-index: 2000;\n        cursor: pointer;\n        padding: 3px;\n        border: 1px solid #4cae4c;\n        background-image: linear-gradient(45deg, #4cae4c 50%, transparent 50%);\n        background-position: 100%;\n        background-size: 400%;\n        transition: background 300ms ease-in-out;\n        font-size: small;\n    }\n\n    .cc_prefBotton:hover {\n        background-position: 0;\n        color: #000000;\n    }\n\n    /*regiao do painel*/\n    .cc__panel {\n        border: 1px solid #ddd;\n        background: #ffffff;\n        border-radius: 0.4rem;\n        width: 60%;\n        margin: 0 20%;\n        min-width: 0;\n        float: left;\n        box-shadow: 2px 1px 10px rgb(0 0 0 / 40%);\n        font-size: small;\n    }\n\n    .cc__panel__header {\n        background: #fff3d4;\n        border-bottom: 1px solid #ddd;\n        padding: 0.1rem 1rem 1rem;\n        height: 36px;\n        color: #78783c;\n        font-size: large;\n    }\n\n    .cc__panel__body {\n        background: #fdfcfa;\n        height: auto;\n        overflow: hidden;\n        border: 1px solid #ddd;\n        border-radius: 0.4rem;\n        text-indent: 3ch;\n        text-align: justify;\n        font-size: medium;\n        padding: 0 10px;\n        width: calc(100% - 20px);\n    }\n\n    .cc__panel__body__container {\n        background-color: transparent;\n        width: 100%;\n        padding: 0;\n        margin: 0;\n        float: left;\n        position: relative;\n    }\n\n    .cc__panel__aut__buttons {\n        background-color: transparent;\n        font-size: large;\n        margin: 0 auto;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        width: 100%;\n    }\n\n    .cc__button__autorizacao {\n        border: 2px solid black;\n        padding: 5px 5px;\n        height: 142px;\n        width: 137px;\n        min-width: 10rem;\n        background-color: #ffffff;\n        border-color: #06b9cd;\n        color: #000000;\n        font-size: medium;\n        background-image: linear-gradient(45deg, #96d7de 50%, transparent 50%);\n        background-position: 100%;\n        background-size: 400%;\n        transition: background 300ms ease-in-out;\n        vertical-align: middle;\n        text-align: center;\n        margin: 0.2em;\n        line-height: 20px;\n        white-space: normal;\n    }\n\n    .cc__button__autorizacao:hover {\n        background-position: 0;\n        color: #000000;\n    }\n\n    .cc__button__autorizacao--all {\n        border: 2px solid black;\n        padding: 5px 5px;\n        height: 142px;\n        width: 137px;\n        min-width: 10rem;\n        background-color: #ffffff;\n        border-color: #85cd06;\n        color: #000000;\n        font-size: medium;\n        background-image: linear-gradient(45deg, #d9f0b1 50%, transparent 50%);\n        background-position: 100%;\n        background-size: 400%;\n        transition: background 300ms ease-in-out;\n        vertical-align: middle;\n        text-align: center;\n        margin: 0.2em;\n        line-height: 20px;\n        white-space: normal;\n    }\n\n    .cc__button__autorizacao--all:hover {\n        background-position: 0;\n        color: #000000;\n    }\n\n    :global(.cc__panel-minimal .cc__panel__body + .cc__panel__body) {\n        border-top: 1px solid #eee;\n    }\n\n    /* regiao do modal*/\n    /*.cc__modal {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;        \n        height: 100%;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        z-index: 10040;\n         \n        overflow: auto;\n        overflow-y: auto;    \n        padding-left: 10px;\n        padding-right: 10px;\n        background-color: rgba(0, 0, 0, 0.4);\n        -webkit-animation-name: fadeIn;\n        -webkit-animation-duration: 0.4s;\n        animation-name: fadeIn;\n        animation-duration: 0.4s;\n        text-align: left;            \n        transition: max-height 1s ease-in-out;\n      }*/\n    #modalPanelAtencao.cc__modal {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        display: block;\n        z-index: 10040;\n        background-color: rgba(0, 0, 0, 0.4);\n        -webkit-animation-name: fadeIn;\n        -webkit-animation-duration: 0.4s;\n        animation-name: fadeIn;\n        animation-duration: 0.4s;\n        text-align: left;\n        transition: max-height 1s ease-in-out;\n        padding: 0;\n        overflow: hidden;\n    }\n    #modalTermo.cc__modal {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        display: block;\n        z-index: 10060;\n        background-color: rgba(0, 0, 0, 0.4);\n        -webkit-animation-name: fadeIn;\n        -webkit-animation-duration: 0.4s;\n        animation-name: fadeIn;\n        animation-duration: 0.4s;\n        text-align: left;\n        transition: max-height 1s ease-in-out;\n        padding: 0;\n        overflow: hidden;\n    }\n\n    :global(.cc_hideModal) {\n        max-height: 0;\n        pointer-events: none;\n    }\n\n    .cc__content__wrapper_cookie {\n        z-index: 10050;\n        width: 100%;\n        max-width: 100%;\n        border-radius: 0.3rem;\n        height: 100%;\n        overflow: hidden;\n        overflow-y: scroll;\n        float: left;\n        padding: 0;\n        position: relative;\n        background: #fff;\n    }\n    .cc__content__wrapper {\n        z-index: 10050;\n        width: 100%;\n        max-width: 100%;\n        border-radius: 0.3rem;\n        height: 100%;\n        overflow: hidden;\n        float: left;\n        padding: 0;\n        position: relative;\n    }\n\n    .cc_content {\n        /*  max-height: 50vh;*/\n        overflow: auto;\n        margin-top: 0;\n    }\n\n    .cc__modalDivOrgao {\n        border: 1;\n        background-color: #000;\n        border-color: #000;\n        border-top: 2px solid #000;\n        border-bottom: 2px solid #000;\n        padding-bottom: 50px;\n        text-align: center;\n    }\n\n    .cc__modal__titulo {\n        position: relative;\n        color: #777;\n        z-index: 1000;\n        min-height: 50px;\n        margin-top: -20px;\n        border: 1px solid transparent;\n        -webkit-box-shadow: 2px 1px 10px rgba(0, 0, 0, 0.395);\n        -moz-box-shadow: 2px 1px 10px rgba(0, 0, 0, 0.395);\n        box-shadow: 2px 1px 10px rgba(0, 0, 0, 0.395);\n        text-align: center;\n    }\n\n    .cc__panelModal {\n        border: 1px solid #ddd;\n        background: #ffffff;\n        border-radius: 0.4rem;\n        width: auto;\n        margin: 0 10px;\n        min-width: 0;\n        float: left;\n        box-shadow: 2px 1px 10px rgb(0 0 0 / 40%);\n        font-size: small;\n        width: calc(100% - 20px);\n    }\n\n    .cc__panelModal__body__container {\n        background-color: transparent;\n        padding-left: 20px;\n        padding-right: 20px;\n    }\n\n    .cc__panelModal__header {\n        border-bottom: 1px solid #000000;\n        padding: 0.1rem 1rem 1rem;\n        height: auto;\n        color: #2e2e21;\n        font-size: large;\n        background: #dddddd;\n        background-image: linear-gradient(45deg, #dddddd 50%, transparent 50%);\n        background-position: 100%;\n        background-size: 400%;\n        transition: background 300ms ease-in-out;\n    }\n\n    .cc__panelModal__header:hover {\n        background-position: 0;\n        color: #000000;\n    }\n\n    .cc__panelModal__body {\n        background: #ffffff;\n        width: 100%;\n        /*height: 100%;*/\n        padding: 0;\n\n        text-indent: 3ch;\n        text-align: justify;\n        font-size: medium;\n    }\n\n    .cc__linkbutton {\n        background: none !important;\n        border: none;\n        padding: 0 !important;\n        color: #069;\n        text-decoration: underline;\n        cursor: pointer;\n        font-size: medium;\n    }\n\n    main {\n        text-align: center;\n        padding: 1em;\n        max-width: 500px;\n        margin: 0 auto;\n    }\n\n    h1 {\n        color: #ff3e00;\n        text-transform: uppercase;\n        font-size: 4em;\n        font-weight: 100;\n    }\n    h3 {\n        margin: 8px 0;\n    }\n    @media (min-width: 640px) {\n        main {\n            max-width: none;\n        }\n    }\n    @media (max-width: 600px) {\n        .cc__panel__aut__buttons {\n            background-color: transparent;\n            font-size: large;\n            margin: 0 auto;\n            display: inline-block;\n            width: 100%;\n        }\n        .cc__panel__aut__buttons input[type=\"button\"] {\n            width: 100%;\n            height: auto;\n            overflow: hidden;\n            float: left;\n        }\n        \n    }\n    @media (min-width: 601px) {\n        .cc__panel {\n            border: 1px solid #ddd;\n            background: #ffffff;\n            border-radius: 0.4rem;\n            width: 60%;\n            margin: 0 20%;\n            min-width: 0;\n            float: left;\n            box-shadow: 2px 1px 10px rgb(0 0 0 / 40%);\n            font-size: small;\n        }\n        .cc__panel__aut__buttons {\n            background-color: transparent;\n            font-size: large;\n            margin: 0 auto;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            width: 100%;\n        }\n    }\n</style>"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","constructor","value","_typeof","obj","Symbol","iterator","_possibleConstructorReturn","call","assertThisInitialized","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_construct","Parent","args","Class","isNativeReflectConstruct","a","push","apply","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","toString","indexOf","has","get","set","Wrapper","this","_arrayLikeToArray","arr","len","arr2","Array","_toConsumableArray","isArray","arrayLikeToArray","arrayWithoutHoles","iter","from","iterableToArray","minLen","n","slice","name","test","unsupportedIterableToArray","nonIterableSpread","noop","run","blank_object","run_all","fns","forEach","is_function","thing","safe_not_equal","b","append","node","appendChild","insert","anchor","insertBefore","detach","parentNode","removeChild","element","document","createElement","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","attr","attribute","removeAttribute","getAttribute","setAttribute","get_binding_group_value","group","__value","checked","Set","add","delete","children","childNodes","set_data","wholeText","set_style","important","style","setProperty","current_component","HtmlTag","html","nodeName","t","h","innerHTML","d","attribute_to_object","attributes","result","set_current_component","component","onMount","Error","get_current_component","$$","on_mount","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","Promise","resolve","update_scheduled","add_render_callback","flushing","seen_callbacks","flush","update","pop","callback","clear","fragment","before_update","dirty","ctx","after_update","SvelteElement","outroing","transition_in","block","local","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","list","destroy","create_each_block","next","get_context","old_indexes","new_blocks","new_lookup","deltas","child_ctx","c","Math","abs","will_move","did_move","m","first","new_block","old_block","new_key","old_key","mount_component","customElement","on_destroy","new_on_destroy","map","filter","make_dirty","then","fill","descricao","id","valor","getCookie","cname","ca","cookie","split","charAt","substring","error","Redirecionar","strUrl","toUpperCase","location","protocol","window","replace","alert","href","querySelector","click","CookieConfig","AcessoAnonimo","ExibePanelTermo","ExibePanelUsoCookies","ExisteNaAPI","algumaPermissaoObrigatoriaNaoEfetuada","listPermissaoObrigatoriaNaoEfetuada","AceiteExpirou","isOpen","isOpenDefincoes","isOpenPolitica","periodoRevogacao","firefoxAgent","navigator","userAgent","toLowerCase","pessoacompgrafico","tppessoacompgrafico","indsaidasimplificada","tokencac","timeouttokencac","urlapi","urllogout","exibepanelfooter","exibepanelatencao","showpanelatencao","str_tipos_cookies","str_tipos_cookies_necessarios","footer_textoatencao","footer_textowebsite","footer_website","panel_textodefinicaocookies","footer_urlpolitica","panel_textolinkpolitica","panel_central_title","panel_textoatencao","panel_textoconsentimento","modal_central_title","modal_termo_responsabilidade_title","modal_termo_textoresponsabilidade","modal_termo_preencherresponsabilidade","modal_usocookie_title","modal_usocookie_texto","modal_usocookie_preencher","modal_usocookie_txsimplificado","tx_confirmar_sair","isCheckedAceiteTermos","tiposDeCookiesObrigatorios","tiposDeCookies","tiposDeCookiesPosEscolha","situacaoConsentimento","Iniciar","pPessoaCompGrafico","pTpPessoaCompGrafico","pIndSaidaSimplificada","HideModalConfirmAceiteTermoResponsa","JSON","parse","reject","getRequest","err","finally","ValidaExibicaoPainel","console","log","CarregaConfiguracoesDoUsuarioAPI","newResult","falha","SairSemAutorizar","CodRetorno","MensagemRetorno","confirm","MontarConfig","aceiteTermos","setCookie","stringify","DesistirAceiteTermoResponsaSimplAnonimo","FinalizarConfiguracaoModoNaoAnonimo","retorno","setTimeout","dispatchEvent","CustomEvent","composed","detail","nome","checkIfCookieExist","entries","ownProps","keys","resArray","item","tiposDC","y","CarregaConfiguracoesDoUsuarioCookie","reload","retornoJSON","ObtemConfiguracoesDoUsuarioAPI","MontarConfigApi","dataAtual","Date","DtAtualizacao","dia","parseInt","mes","ano","dataUltimaConfiguracao","startDay","endDay","millisecondsPerDay","days","getTime","floor","VerificaSePeriodoDoAceiteExpirou","cvalue","exdays","setTime","expires","toUTCString","includes","ValidaObrigatorios","close","closeDefincoes","closePolitica","salvar","ObterCheckboxSelecionados","obrigatoriosNaoPreenchidos","usuarioConfirmouNaoAceite","retornoFinalizar","pessoaNumero","pessoaIndicador","aceiteSessao","aceiteDesempenho","aceiteEstatisticos","aceitePersistentes","IncluirConfiguracoesDoUsuarioAPI","ConfigurarListaParaGravacao","ApenasCoockiesObrigatorios","url","method","jsonParameter","xhr","XMLHttpRequest","open","setRequestHeader","timeout","ontimeout","onload","status","responseText","statusText","onerror","send","message","_indsaidasimplificada","preventDefault","focus","HTMLElement","attachShadow","mode","on_disconnect","slotted","_oldValue","newValue","detaching","$destroy","type","callbacks","index","splice","$$props","$$set","skip_bound","create_fragment","not_equal","parent_component","bound","context","ready","ret","hydrate","nodes","l","intro"],"mappings":"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"}