1
|
{"version":3,"file":"additionalScripts.js","sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/additionalScripts.js","webpack:///./apps/files_sharing/src/collaborationresourceshandler.js","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?fbff","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./apps/files_sharing/src/additionalScripts.js\");\n","import './share';\nimport './sharebreadcrumbview';\nimport './style/sharebreadcrumb.scss';\nimport './collaborationresourceshandler.js'; // eslint-disable-next-line camelcase\n\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/'); // eslint-disable-next-line camelcase\n\n__webpack_nonce__ = btoa(OC.requestToken);\nwindow.OCA.Sharing = OCA.Sharing;","// eslint-disable-next-line camelcase\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/'); // eslint-disable-next-line camelcase\n\n__webpack_nonce__ = btoa(OC.requestToken);\nwindow.OCP.Collaboration.registerType('file', {\n action: function action() {\n return new Promise(function (resolve, reject) {\n OC.dialogs.filepicker(t('files_sharing', 'Link to a file'), function (f) {\n var client = OC.Files.getClient();\n client.getFileInfo(f).then(function (status, fileInfo) {\n resolve(fileInfo.id);\n }).fail(function () {\n reject(new Error('Cannot get fileinfo'));\n });\n }, false, null, false, OC.dialogs.FILEPICKER_TYPE_CHOOSE, '', {\n allowDirectoryChooser: true\n });\n });\n },\n typeString: t('files_sharing', 'Link to a file'),\n typeIconClass: 'icon-files-dark'\n});","/* eslint-disable */\n\n/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\nimport escapeHTML from 'escape-html';\n\n(function () {\n _.extend(OC.Files.Client, {\n PROPERTY_SHARE_TYPES: '{' + OC.Files.Client.NS_OWNCLOUD + '}share-types',\n PROPERTY_OWNER_ID: '{' + OC.Files.Client.NS_OWNCLOUD + '}owner-id',\n PROPERTY_OWNER_DISPLAY_NAME: '{' + OC.Files.Client.NS_OWNCLOUD + '}owner-display-name'\n });\n\n if (!OCA.Sharing) {\n OCA.Sharing = {};\n }\n /**\n * @namespace\n */\n\n\n OCA.Sharing.Util = {\n /**\n * Regular expression for splitting parts of remote share owners:\n * \"user@example.com/\"\n * \"user@example.com/path/to/owncloud\"\n * \"user@anotherexample.com@example.com/path/to/owncloud\n */\n _REMOTE_OWNER_REGEXP: new RegExp('^(([^@]*)@(([^@^/^\\\\s]*)@)?)([^[\\\\s/]*)([/](.*))?$'),\n\n /**\n * Initialize the sharing plugin.\n *\n * Registers the \"Share\" file action and adds additional\n * DOM attributes for the sharing file info.\n *\n * @param {OCA.Files.FileList} fileList file list to be extended\n */\n attach: function attach(fileList) {\n // core sharing is disabled/not loaded\n if (!OC.Share) {\n return;\n }\n\n if (fileList.id === 'trashbin' || fileList.id === 'files.public') {\n return;\n }\n\n var fileActions = fileList.fileActions;\n var oldCreateRow = fileList._createRow;\n\n fileList._createRow = function (fileData) {\n var tr = oldCreateRow.apply(this, arguments);\n var sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData);\n\n if (fileData.permissions === 0) {\n // no permission, disabling sidebar\n delete fileActions.actions.all.Comment;\n delete fileActions.actions.all.Details;\n delete fileActions.actions.all.Goto;\n }\n\n tr.attr('data-share-permissions', sharePermissions);\n\n if (fileData.shareOwner) {\n tr.attr('data-share-owner', fileData.shareOwner);\n tr.attr('data-share-owner-id', fileData.shareOwnerId); // user should always be able to rename a mount point\n\n if (fileData.mountType === 'shared-root') {\n tr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);\n }\n }\n\n if (fileData.recipientData && !_.isEmpty(fileData.recipientData)) {\n tr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData));\n }\n\n if (fileData.shareTypes) {\n tr.attr('data-share-types', fileData.shareTypes.join(','));\n }\n\n return tr;\n };\n\n var oldElementToFile = fileList.elementToFile;\n\n fileList.elementToFile = function ($el) {\n var fileInfo = oldElementToFile.apply(this, arguments);\n fileInfo.sharePermissions = $el.attr('data-share-permissions') || undefined;\n fileInfo.shareOwner = $el.attr('data-share-owner') || undefined;\n fileInfo.shareOwnerId = $el.attr('data-share-owner-id') || undefined;\n\n if ($el.attr('data-share-types')) {\n fileInfo.shareTypes = $el.attr('data-share-types').split(',');\n }\n\n if ($el.attr('data-expiration')) {\n var expirationTimestamp = parseInt($el.attr('data-expiration'));\n fileInfo.shares = [];\n fileInfo.shares.push({\n expiration: expirationTimestamp\n });\n }\n\n return fileInfo;\n };\n\n var oldGetWebdavProperties = fileList._getWebdavProperties;\n\n fileList._getWebdavProperties = function () {\n var props = oldGetWebdavProperties.apply(this, arguments);\n props.push(OC.Files.Client.PROPERTY_OWNER_ID);\n props.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME);\n props.push(OC.Files.Client.PROPERTY_SHARE_TYPES);\n return props;\n };\n\n fileList.filesClient.addFileInfoParser(function (response) {\n var data = {};\n var props = response.propStat[0].properties;\n var permissionsProp = props[OC.Files.Client.PROPERTY_PERMISSIONS];\n\n if (permissionsProp && permissionsProp.indexOf('S') >= 0) {\n data.shareOwner = props[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME];\n data.shareOwnerId = props[OC.Files.Client.PROPERTY_OWNER_ID];\n }\n\n var shareTypesProp = props[OC.Files.Client.PROPERTY_SHARE_TYPES];\n\n if (shareTypesProp) {\n data.shareTypes = _.chain(shareTypesProp).filter(function (xmlvalue) {\n return xmlvalue.namespaceURI === OC.Files.Client.NS_OWNCLOUD && xmlvalue.nodeName.split(':')[1] === 'share-type';\n }).map(function (xmlvalue) {\n return parseInt(xmlvalue.textContent || xmlvalue.text, 10);\n }).value();\n }\n\n return data;\n }); // use delegate to catch the case with multiple file lists\n\n fileList.$el.on('fileActionsReady', function (ev) {\n var $files = ev.$files;\n\n _.each($files, function (file) {\n var $tr = $(file);\n var shareTypes = $tr.attr('data-share-types') || '';\n var shareOwner = $tr.attr('data-share-owner');\n\n if (shareTypes || shareOwner) {\n var hasLink = false;\n var hasShares = false;\n\n _.each(shareTypes.split(',') || [], function (shareType) {\n shareType = parseInt(shareType, 10);\n\n if (shareType === OC.Share.SHARE_TYPE_LINK) {\n hasLink = true;\n } else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n hasLink = true;\n } else if (shareType === OC.Share.SHARE_TYPE_USER) {\n hasShares = true;\n } else if (shareType === OC.Share.SHARE_TYPE_GROUP) {\n hasShares = true;\n } else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n hasShares = true;\n } else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n hasShares = true;\n } else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n hasShares = true;\n }\n });\n\n OCA.Sharing.Util._updateFileActionIcon($tr, hasShares, hasLink);\n }\n });\n });\n fileList.$el.on('changeDirectory', function () {\n OCA.Sharing.sharesLoaded = false;\n });\n fileActions.registerAction({\n name: 'Share',\n displayName: function displayName(context) {\n if (context && context.$file) {\n var shareType = parseInt(context.$file.data('share-types'), 10);\n var shareOwner = context.$file.data('share-owner-id');\n\n if (shareType >= 0 || shareOwner) {\n return t('core', 'Shared');\n }\n }\n\n return t('core', 'Share');\n },\n altText: t('core', 'Share'),\n mime: 'all',\n order: -150,\n permissions: OC.PERMISSION_ALL,\n iconClass: function iconClass(fileName, context) {\n var shareType = parseInt(context.$file.data('share-types'), 10);\n\n if (shareType === OC.Share.SHARE_TYPE_EMAIL || shareType === OC.Share.SHARE_TYPE_LINK) {\n return 'icon-public';\n }\n\n return 'icon-shared';\n },\n icon: function icon(fileName, context) {\n var shareOwner = context.$file.data('share-owner-id');\n\n if (shareOwner) {\n return OC.generateUrl(\"/avatar/\".concat(shareOwner, \"/32\"));\n }\n },\n type: OCA.Files.FileActions.TYPE_INLINE,\n actionHandler: function actionHandler(fileName, context) {\n // do not open sidebar if permission is set and equal to 0\n var permissions = parseInt(context.$file.data('share-permissions'), 10);\n\n if (isNaN(permissions) || permissions > 0) {\n fileList.showDetailsView(fileName, 'sharing');\n }\n },\n render: function render(actionSpec, isDefault, context) {\n var permissions = parseInt(context.$file.data('permissions'), 10); // if no share permissions but share owner exists, still show the link\n\n if ((permissions & OC.PERMISSION_SHARE) !== 0 || context.$file.attr('data-share-owner')) {\n return fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context);\n } // don't render anything\n\n\n return null;\n }\n }); // register share breadcrumbs component\n\n var breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView();\n fileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView);\n },\n\n /**\n * Update file list data attributes\n */\n _updateFileListDataAttributes: function _updateFileListDataAttributes(fileList, $tr, shareModel) {\n // files app current cannot show recipients on load, so we don't update the\n // icon when changed for consistency\n if (fileList.id === 'files') {\n return;\n }\n\n var recipients = _.pluck(shareModel.get('shares'), 'share_with_displayname'); // note: we only update the data attribute because updateIcon()\n\n\n if (recipients.length) {\n var recipientData = _.mapObject(shareModel.get('shares'), function (share) {\n return {\n shareWith: share.share_with,\n shareWithDisplayName: share.share_with_displayname\n };\n });\n\n $tr.attr('data-share-recipient-data', JSON.stringify(recipientData));\n } else {\n $tr.removeAttr('data-share-recipient-data');\n }\n },\n\n /**\n * Update the file action share icon for the given file\n *\n * @param $tr file element of the file to update\n * @param {boolean} hasUserShares true if a user share exists\n * @param {boolean} hasLinkShares true if a link share exists\n *\n * @returns {boolean} true if the icon was set, false otherwise\n */\n _updateFileActionIcon: function _updateFileActionIcon($tr, hasUserShares, hasLinkShares) {\n // if the statuses are loaded already, use them for the icon\n // (needed when scrolling to the next page)\n if (hasUserShares || hasLinkShares || $tr.attr('data-share-recipient-data') || $tr.attr('data-share-owner')) {\n OCA.Sharing.Util._markFileAsShared($tr, true, hasLinkShares);\n\n return true;\n }\n\n return false;\n },\n\n /**\n * Marks/unmarks a given file as shared by changing its action icon\n * and folder icon.\n *\n * @param $tr file element to mark as shared\n * @param hasShares whether shares are available\n * @param hasLink whether link share is available\n */\n _markFileAsShared: function _markFileAsShared($tr, hasShares, hasLink) {\n var action = $tr.find('.fileactions .action[data-action=\"Share\"]');\n var type = $tr.data('type');\n var icon = action.find('.icon');\n var message, recipients, avatars;\n var ownerId = $tr.attr('data-share-owner-id');\n var owner = $tr.attr('data-share-owner');\n var mountType = $tr.attr('data-mounttype');\n var shareFolderIcon;\n var iconClass = 'icon-shared';\n action.removeClass('shared-style'); // update folder icon\n\n if (type === 'dir' && (hasShares || hasLink || ownerId)) {\n if (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType);\n } else if (hasLink) {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-public');\n } else {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-shared');\n }\n\n $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n $tr.attr('data-icon', shareFolderIcon);\n } else if (type === 'dir') {\n var isEncrypted = $tr.attr('data-e2eencrypted'); // FIXME: duplicate of FileList._createRow logic for external folder,\n // need to refactor the icon logic into a single code path eventually\n\n if (isEncrypted === 'true') {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted');\n $tr.attr('data-icon', shareFolderIcon);\n } else if (mountType && mountType.indexOf('external') === 0) {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-external');\n $tr.attr('data-icon', shareFolderIcon);\n } else {\n shareFolderIcon = OC.MimeType.getIconUrl('dir'); // back to default\n\n $tr.removeAttr('data-icon');\n }\n\n $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n } // update share action text / icon\n\n\n if (hasShares || ownerId) {\n recipients = $tr.data('share-recipient-data');\n action.addClass('shared-style');\n avatars = '<span>' + t('core', 'Shared') + '</span>'; // even if reshared, only show \"Shared by\"\n\n if (ownerId) {\n message = t('core', 'Shared by');\n avatars = OCA.Sharing.Util._formatRemoteShare(ownerId, owner, message);\n } else if (recipients) {\n avatars = OCA.Sharing.Util._formatShareList(recipients);\n }\n\n action.html(avatars).prepend(icon);\n\n if (ownerId || recipients) {\n var avatarElement = action.find('.avatar');\n avatarElement.each(function () {\n $(this).avatar($(this).data('username'), 32);\n });\n action.find('span[title]').tooltip({\n placement: 'top'\n });\n }\n } else {\n action.html('<span class=\"hidden-visually\">' + t('core', 'Shared') + '</span>').prepend(icon);\n }\n\n if (hasLink) {\n iconClass = 'icon-public';\n }\n\n icon.removeClass('icon-shared icon-public').addClass(iconClass);\n },\n\n /**\t\n * Format a remote address\t\n *\t\n * @param {String} shareWith userid, full remote share, or whatever\t\n * @param {String} shareWithDisplayName\t\n * @param {String} message\t\n * @returns {String} HTML code to display\t\n */\n _formatRemoteShare: function _formatRemoteShare(shareWith, shareWithDisplayName, message) {\n var parts = OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(shareWith);\n\n if (!parts || !parts[6]) {\n // display avatar of the user\t\n var avatar = '<span class=\"avatar\" data-username=\"' + escapeHTML(shareWith) + '\" title=\"' + message + ' ' + escapeHTML(shareWithDisplayName) + '\"></span>';\n var hidden = '<span class=\"hidden-visually\">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> ';\n return avatar + hidden;\n }\n\n var userName = parts[2];\n var userDomain = parts[4];\n var server = parts[5];\n var tooltip = message + ' ' + userName;\n\n if (userDomain) {\n tooltip += '@' + userDomain;\n }\n\n if (server) {\n tooltip += '@' + server;\n }\n\n var html = '<span class=\"remoteAddress\" title=\"' + escapeHTML(tooltip) + '\">';\n html += '<span class=\"username\">' + escapeHTML(userName) + '</span>';\n\n if (userDomain) {\n html += '<span class=\"userDomain\">@' + escapeHTML(userDomain) + '</span>';\n }\n\n html += '</span> ';\n return html;\n },\n\n /**\t\n * Loop over all recipients in the list and format them using\t\n * all kind of fancy magic.\t\n *\t\n * @param {Object} recipients array of all the recipients\t\n * @returns {String[]} modified list of recipients\t\n */\n _formatShareList: function _formatShareList(recipients) {\n var _parent = this;\n\n recipients = _.toArray(recipients);\n recipients.sort(function (a, b) {\n return a.shareWithDisplayName.localeCompare(b.shareWithDisplayName);\n });\n return $.map(recipients, function (recipient) {\n return _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('core', 'Shared with'));\n });\n },\n\n /**\t\n * Marks/unmarks a given file as shared by changing its action icon\t\n * and folder icon.\t\n *\t\n * @param $tr file element to mark as shared\t\n * @param hasShares whether shares are available\t\n * @param hasLink whether link share is available\t\n */\n markFileAsShared: function markFileAsShared($tr, hasShares, hasLink) {\n var action = $tr.find('.fileactions .action[data-action=\"Share\"]');\n var type = $tr.data('type');\n var icon = action.find('.icon');\n var message, recipients, avatars;\n var ownerId = $tr.attr('data-share-owner-id');\n var owner = $tr.attr('data-share-owner');\n var mountType = $tr.attr('data-mounttype');\n var shareFolderIcon;\n var iconClass = 'icon-shared';\n action.removeClass('shared-style'); // update folder icon\t\n\n if (type === 'dir' && (hasShares || hasLink || ownerId)) {\n if (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType);\n } else if (hasLink) {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-public');\n } else {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-shared');\n }\n\n $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n $tr.attr('data-icon', shareFolderIcon);\n } else if (type === 'dir') {\n var isEncrypted = $tr.attr('data-e2eencrypted'); // FIXME: duplicate of FileList._createRow logic for external folder,\t\n // need to refactor the icon logic into a single code path eventually\t\n\n if (isEncrypted === 'true') {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted');\n $tr.attr('data-icon', shareFolderIcon);\n } else if (mountType && mountType.indexOf('external') === 0) {\n shareFolderIcon = OC.MimeType.getIconUrl('dir-external');\n $tr.attr('data-icon', shareFolderIcon);\n } else {\n shareFolderIcon = OC.MimeType.getIconUrl('dir'); // back to default\t\n\n $tr.removeAttr('data-icon');\n }\n\n $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n } // update share action text / icon\t\n\n\n if (hasShares || ownerId) {\n recipients = $tr.data('share-recipient-data');\n action.addClass('shared-style');\n avatars = '<span>' + t('core', 'Shared') + '</span>'; // even if reshared, only show \"Shared by\"\t\n\n if (ownerId) {\n message = t('core', 'Shared by');\n avatars = this._formatRemoteShare(ownerId, owner, message);\n } else if (recipients) {\n avatars = this._formatShareList(recipients);\n }\n\n action.html(avatars).prepend(icon);\n\n if (ownerId || recipients) {\n var avatarElement = action.find('.avatar');\n avatarElement.each(function () {\n $(this).avatar($(this).data('username'), 32);\n });\n action.find('span[title]').tooltip({\n placement: 'top'\n });\n }\n } else {\n action.html('<span class=\"hidden-visually\">' + t('core', 'Shared') + '</span>').prepend(icon);\n }\n\n if (hasLink) {\n iconClass = 'icon-public';\n }\n\n icon.removeClass('icon-shared icon-public').addClass(iconClass);\n },\n\n /**\n * @param {Array} fileData\n * @returns {String}\n */\n getSharePermissions: function getSharePermissions(fileData) {\n return fileData.sharePermissions;\n }\n };\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util);","/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n(function () {\n 'use strict';\n\n var BreadCrumbView = OC.Backbone.View.extend({\n tagName: 'span',\n events: {\n click: '_onClick'\n },\n _dirInfo: undefined,\n render: function render(data) {\n this._dirInfo = data.dirInfo || null;\n\n if (this._dirInfo !== null && (this._dirInfo.path !== '/' || this._dirInfo.name !== '')) {\n var isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0;\n this.$el.removeClass('shared icon-public icon-shared');\n\n if (isShared) {\n this.$el.addClass('shared');\n\n if (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) {\n this.$el.addClass('icon-public');\n } else {\n this.$el.addClass('icon-shared');\n }\n } else {\n this.$el.addClass('icon-shared');\n }\n\n this.$el.show();\n this.delegateEvents();\n } else {\n this.$el.removeClass('shared icon-public icon-shared');\n this.$el.hide();\n }\n\n return this;\n },\n _onClick: function _onClick(e) {\n e.preventDefault();\n var fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo);\n var self = this;\n fileInfoModel.on('change', function () {\n self.render({\n dirInfo: self._dirInfo\n });\n });\n var path = fileInfoModel.attributes.path + '/' + fileInfoModel.attributes.name;\n OCA.Files.Sidebar.open(path);\n OCA.Files.Sidebar.setActiveTab('sharing');\n }\n });\n OCA.Sharing.ShareBreadCrumbView = BreadCrumbView;\n})();","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./sharebreadcrumb.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"57e7eec1\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./sharebreadcrumb.scss\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./sharebreadcrumb.scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/**\\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\ndiv.crumb span.icon-shared,\\ndiv.crumb span.icon-public {\\n display: inline-block;\\n cursor: pointer;\\n opacity: 0.2;\\n margin-right: 6px; }\\n\\ndiv.crumb span.icon-shared.shared,\\ndiv.crumb span.icon-public.shared {\\n opacity: 0.7; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACthBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7NA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;A","sourceRoot":""}
|