{"version":3,"sources":["vendor/ember-cli/app-prefix.js","a2s-test/almacenamiento-archivos/controller.js","a2s-test/almacenamiento-archivos/route.js","a2s-test/almacenamiento-archivos/template.js","a2s-test/almacenamiento-multimedia/controller.js","a2s-test/almacenamiento-multimedia/route.js","a2s-test/almacenamiento-multimedia/template.js","a2s-test/almacenamiento/docs/route.js","a2s-test/almacenamiento/docs/template.js","a2s-test/almacenamiento/hook-post/controller.js","a2s-test/almacenamiento/hook-post/route.js","a2s-test/almacenamiento/hook-post/template.js","a2s-test/almacenamiento/hook-pre/controller.js","a2s-test/almacenamiento/hook-pre/route.js","a2s-test/almacenamiento/hook-pre/template.js","a2s-test/almacenamiento/index/route.js","a2s-test/almacenamiento/index/template.js","a2s-test/almacenamiento/route.js","a2s-test/almacenamiento/template.js","a2s-test/almacenamiento/validacion-fail/controller.js","a2s-test/almacenamiento/validacion-fail/route.js","a2s-test/almacenamiento/validacion-fail/template.js","a2s-test/almacenamiento/validacion-ok/controller.js","a2s-test/almacenamiento/validacion-ok/route.js","a2s-test/almacenamiento/validacion-ok/template.js","a2s-test/api/controller.js","a2s-test/api/create/controller.js","a2s-test/api/create/route.js","a2s-test/api/create/template.js","a2s-test/api/delete/controller.js","a2s-test/api/delete/route.js","a2s-test/api/delete/template.js","a2s-test/api/docs/route.js","a2s-test/api/docs/template.js","a2s-test/api/index/route.js","a2s-test/api/index/template.js","a2s-test/api/read/controller.js","a2s-test/api/read/route.js","a2s-test/api/read/template.js","a2s-test/api/route.js","a2s-test/api/template.js","a2s-test/api/update/controller.js","a2s-test/api/update/route.js","a2s-test/api/update/template.js","a2s-test/app.js","a2s-test/application/controller.js","a2s-test/application/route.js","a2s-test/application/service.js","a2s-test/application/template.js","a2s-test/components/a2/bd-callout/component.js","a2s-test/components/a2/bd-callout/template.js","a2s-test/components/a2/bs-alert/component.js","a2s-test/components/a2/bs-alert/template.js","a2s-test/components/bs-accordion.js","a2s-test/components/bs-accordion/item.js","a2s-test/components/bs-accordion/item/body.js","a2s-test/components/bs-accordion/item/title.js","a2s-test/components/bs-alert.js","a2s-test/components/bs-button-group.js","a2s-test/components/bs-button-group/button.js","a2s-test/components/bs-button.js","a2s-test/components/bs-carousel.js","a2s-test/components/bs-carousel/slide.js","a2s-test/components/bs-collapse.js","a2s-test/components/bs-dropdown.js","a2s-test/components/bs-dropdown/button.js","a2s-test/components/bs-dropdown/menu.js","a2s-test/components/bs-dropdown/menu/divider.js","a2s-test/components/bs-dropdown/menu/item.js","a2s-test/components/bs-dropdown/menu/link-to.js","a2s-test/components/bs-dropdown/toggle.js","a2s-test/components/bs-form.js","a2s-test/components/bs-form/element.js","a2s-test/components/bs-form/element/control.js","a2s-test/components/bs-form/element/control/checkbox.js","a2s-test/components/bs-form/element/control/input.js","a2s-test/components/bs-form/element/control/textarea.js","a2s-test/components/bs-form/element/errors.js","a2s-test/components/bs-form/element/feedback-icon.js","a2s-test/components/bs-form/element/help-text.js","a2s-test/components/bs-form/element/label.js","a2s-test/components/bs-form/element/layout/horizontal.js","a2s-test/components/bs-form/element/layout/horizontal/checkbox.js","a2s-test/components/bs-form/element/layout/inline.js","a2s-test/components/bs-form/element/layout/inline/checkbox.js","a2s-test/components/bs-form/element/layout/vertical.js","a2s-test/components/bs-form/element/layout/vertical/checkbox.js","a2s-test/components/bs-form/group.js","a2s-test/components/bs-modal-simple.js","a2s-test/components/bs-modal.js","a2s-test/components/bs-modal/body.js","a2s-test/components/bs-modal/dialog.js","a2s-test/components/bs-modal/footer.js","a2s-test/components/bs-modal/header.js","a2s-test/components/bs-modal/header/close.js","a2s-test/components/bs-modal/header/title.js","a2s-test/components/bs-nav.js","a2s-test/components/bs-nav/item.js","a2s-test/components/bs-nav/link-to.js","a2s-test/components/bs-navbar.js","a2s-test/components/bs-navbar/content.js","a2s-test/components/bs-navbar/link-to.js","a2s-test/components/bs-navbar/nav.js","a2s-test/components/bs-navbar/toggle.js","a2s-test/components/bs-popover.js","a2s-test/components/bs-popover/element.js","a2s-test/components/bs-progress.js","a2s-test/components/bs-progress/bar.js","a2s-test/components/bs-tab.js","a2s-test/components/bs-tab/pane.js","a2s-test/components/bs-tooltip.js","a2s-test/components/bs-tooltip/element.js","a2s-test/components/copy-button.js","a2s-test/components/ember-popper-targeting-parent.js","a2s-test/components/ember-popper.js","a2s-test/components/labeled-radio-button.js","a2s-test/components/photo-swipe.js","a2s-test/components/radio-button-input.js","a2s-test/components/radio-button.js","a2s-test/components/show-log/component.js","a2s-test/components/show-log/template.js","a2s-test/components/torii-iframe-placeholder.js","a2s-test/components/welcome-page.js","a2s-test/email/controller.js","a2s-test/email/route.js","a2s-test/email/template.js","a2s-test/estadistica/controller.js","a2s-test/estadistica/route.js","a2s-test/estadistica/template.js","a2s-test/geolocalizacion/docs/route.js","a2s-test/geolocalizacion/docs/template.js","a2s-test/geolocalizacion/geocercas/controller.js","a2s-test/geolocalizacion/geocercas/route.js","a2s-test/geolocalizacion/geocercas/template.js","a2s-test/geolocalizacion/geopuntos/controller.js","a2s-test/geolocalizacion/geopuntos/route.js","a2s-test/geolocalizacion/geopuntos/template.js","a2s-test/geolocalizacion/index/route.js","a2s-test/geolocalizacion/index/template.js","a2s-test/geolocalizacion/radio/controller.js","a2s-test/geolocalizacion/radio/route.js","a2s-test/geolocalizacion/radio/template.js","a2s-test/geolocalizacion/route.js","a2s-test/geolocalizacion/template.js","a2s-test/git/controller.js","a2s-test/git/route.js","a2s-test/git/template.js","a2s-test/helpers/app-version.js","a2s-test/helpers/bs-contains.js","a2s-test/helpers/bs-eq.js","a2s-test/helpers/cancel-all.js","a2s-test/helpers/is-clipboard-supported.js","a2s-test/helpers/perform.js","a2s-test/helpers/pluralize.js","a2s-test/helpers/singularize.js","a2s-test/helpers/task.js","a2s-test/index/controller.js","a2s-test/index/route.js","a2s-test/index/template.js","a2s-test/initializers/app-version.js","a2s-test/initializers/application.js","a2s-test/initializers/container-debug-adapter.js","a2s-test/initializers/ember-concurrency.js","a2s-test/initializers/ember-data.js","a2s-test/initializers/export-application-global.js","a2s-test/initializers/initialize-torii-callback.js","a2s-test/initializers/initialize-torii-session.js","a2s-test/initializers/initialize-torii.js","a2s-test/initializers/load-bootstrap-config.js","a2s-test/instance-initializers/ember-data.js","a2s-test/instance-initializers/setup-routes.js","a2s-test/instance-initializers/walk-providers.js","a2s-test/media-streaming/controller.js","a2s-test/media-streaming/route.js","a2s-test/media-streaming/template.js","a2s-test/pubsub/controller.js","a2s-test/pubsub/route.js","a2s-test/pubsub/template.js","a2s-test/push/controller.js","a2s-test/push/route.js","a2s-test/push/template.js","a2s-test/resolver.js","a2s-test/router.js","a2s-test/seguridad/controller.js","a2s-test/seguridad/route.js","a2s-test/seguridad/template.js","a2s-test/server-side/controller.js","a2s-test/server-side/route.js","a2s-test/server-side/template.js","a2s-test/services/ajax.js","a2s-test/services/popup.js","a2s-test/services/torii-session.js","a2s-test/services/torii.js","a2s-test/sms/controller.js","a2s-test/sms/route.js","a2s-test/sms/template.js","a2s-test/social/controller.js","a2s-test/social/route.js","a2s-test/social/template.js","a2s-test/templates/components/ember-popper-targeting-parent.js","a2s-test/templates/components/ember-popper.js","a2s-test/usuarios/correo/controller.js","a2s-test/usuarios/correo/route.js","a2s-test/usuarios/correo/template.js","a2s-test/usuarios/docs/route.js","a2s-test/usuarios/docs/template.js","a2s-test/usuarios/facebook/controller.js","a2s-test/usuarios/facebook/route.js","a2s-test/usuarios/facebook/template.js","a2s-test/usuarios/index/route.js","a2s-test/usuarios/index/template.js","a2s-test/usuarios/route.js","a2s-test/usuarios/telefono/controller.js","a2s-test/usuarios/telefono/route.js","a2s-test/usuarios/telefono/template.js","a2s-test/usuarios/template.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["\"use strict\";\n\n\n","define('a2s-test/almacenamiento-archivos/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    model: \"\",\n    messages: Ember.A(),\n    msgModal: \"\",\n\n    init() {\n      this._super(...arguments);\n    },\n    clear() {\n      this.get('messages').clear();\n      this.clearModal();\n    },\n    clearModal() {\n      this.set('openModal', false);\n      this.set('msgModal', \"\");\n    },\n    showModal(msg) {\n      this.set('openModal', true);\n      this.set('msgModal', msg);\n    },\n    getFiles() {\n      this.set(\"application.textLog\", \"OBTENER Archivos\");\n      this.get('application').req('GET', 'srv/storage?service=gcloud&container=a2server-pruebas', {}).then(resp => {\n        this.set('model', resp.files);\n      });\n    },\n    actions: {\n      delete(ele) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"ELIMINAR Archivo\");\n        this.get('application').req('DELETE', `srv/storage?service=gcloud&container=a2server-pruebas&path=${ele.path}`, {}, {});\n        let model = this.get('model');\n        this.get('messages').pushObject({ type: \"success\", msg: `Archivo ${ele.path} eliminado correctamente` });\n        model.removeObject(ele);\n      },\n      upload(ele) {\n        //validar si no existen archivos\n        //validar si el tamaño es muy grande\n        let self = this;\n        this.get('messages').clear();\n        let input = document.querySelector('input[type=\"file\"]');\n        let file = input.files[0] || null;\n        if (!file) {\n          this.showModal(\"Debe seleccionar un archivo primero\");\n        } else if (file.size > 5 * 1024 * 1024) {\n          this.showModal(\"¡El Archivo es muy grande! <br> Debe ser menor a 6Mb\");\n        } else {\n          this.set(\"application.textLog\", \"SUBIR Archivo\");\n\n          var data = new FormData();\n          data.append('fileUpload', input.files[0]);\n          data.append('path', `app-demo/files/${input.files[0].name}`);\n          console.log('Tmaño', input.files[0].size);\n\n          this.get('application').upload('srv/storage/upload?service=gcloud&container=a2server-pruebas&public=true', data).then(resp => {\n            if (resp.file.path) {\n              this.get('messages').pushObject({ type: \"success\", msg: `Archivo ${resp.file.path} subido` });\n              self.getFiles();\n            } else {\n              this.get('messages').pushObject({ type: \"danger\", msg: \"Error: Archivo no subido\" });\n            }\n            //\n          });\n        }\n      }\n    }\n  });\n});","define('a2s-test/almacenamiento-archivos/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n      controller.getFiles();\n    }\n  });\n});","define(\"a2s-test/almacenamiento-archivos/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Yyw1YZMe\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"file\\\",\\\"form\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Servicio de Almacenamiento de Archivos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Este servicio permite almacenar archivos en La Nube.\\\\n      El almacenamiento puede hacerse en el propio servidor de A2 Server, o en servicios de terceros como S3 de Amazon AWS, o Google Cloud Storage.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para este ejemplo, se utilizará el almacenamiento remoto de \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Google Cloud Storage\\\"],[8],[0,\\\" en un contenedor llamado \\\\\\\"a2server-pruebas\\\\\\\".      \\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,null,{\\\"statements\\\":[[4,\\\"component\\\",[[19,3,[\\\"group\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[6,\\\"label\\\"],[9,\\\"class\\\",\\\"control-label\\\"],[7],[0,\\\"Selecciona un archivo para subir al almacenamiento remoto:\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"input\\\"],[9,\\\"type\\\",\\\"file\\\"],[9,\\\"class\\\",\\\"form-control-file\\\"],[9,\\\"id\\\",\\\"exampleFormControlFile1\\\"],[7],[8],[0,\\\"              \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[6,\\\"button\\\"],[9,\\\"type\\\",\\\"button\\\"],[9,\\\"class\\\",\\\"btn btn-primary\\\"],[10,\\\"onClick\\\",[25,\\\"action\\\",[[19,0,[]],\\\"upload\\\"],null],null],[7],[0,\\\"Subir\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,4,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,4,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null]],\\\"parameters\\\":[3]},null],[0,\\\"    \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Ésta es la lista de archivos que ya se encuentran subidos al contenedor \\\\\\\"a2server-pruebas\\\\\\\":\\\\n    \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Path\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Service\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Acciones\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"path\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"service\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"            \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"rel\\\",\\\"noopener noreferrer\\\"],[10,\\\"href\\\",[19,2,[\\\"url\\\"]],null],[9,\\\"class\\\",\\\"btn btn-sm btn-outline-success\\\"],[9,\\\"role\\\",\\\"button\\\"],[7],[0,\\\"Descargar\\\"],[8],[0,\\\"\\\\n              \\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"class\\\",\\\"onClick\\\"],[\\\"button\\\",\\\"btn btn-sm btn-outline-danger\\\",[25,\\\"action\\\",[[19,0,[]],\\\"delete\\\",[19,2,[]]],null]]],{\\\"statements\\\":[[0,\\\"Eliminar\\\"]],\\\"parameters\\\":[]},null],[0,\\\" \\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[8],[0,\\\"      \\\\n    \\\"],[8],[0,\\\"       \\\\n    \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,null,{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-storage_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Almacenamiento de Archivos\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-storage.Storage.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Almacenamiento de Archivos\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-storage.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Almacenamiento de Archivos\\\"],[8],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],true],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\\n\\\\n\\\"],[4,\\\"bs-modal-simple\\\",null,[[\\\"open\\\",\\\"title\\\",\\\"size\\\",\\\"onHidden\\\"],[[20,[\\\"openModal\\\"]],\\\"Alerta\\\",\\\"sm\\\",[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"openModal\\\"]]],null],false],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[1,[18,\\\"msgModal\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento-archivos/template.hbs\" } });\n});","define('a2s-test/almacenamiento-multimedia/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    model: \"\",\n    messages: Ember.A(),\n    images: Ember.A(),\n    msgModal: \"\",\n    cortar: \"squared\",\n    rotar: \"90\",\n    t: true,\n    s: true,\n    m: true,\n    title: \" Prueba desde ToroBack\",\n    description: \" Estoy subiendo un vídeo desde el servicio ToroBack (A2 Server) a una cuenta de pruebas.\",\n    clear() {\n      this.get('messages').clear();\n      this.clearModal();\n    },\n    clearModal() {\n      this.set('openModal', false);\n      this.set('msgModal', \"\");\n    },\n    showModal(msg) {\n      this.set('openModal', true);\n      this.set('msgModal', msg);\n    },\n    actions: {\n      onChange() {\n        this.get('messages').clear();\n      },\n      uploadVideo(form) {\n        let self = this;\n        this.get('messages').clear();\n        let input = document.querySelector('input[name=\"videoFlickr\"]');\n        let file = input.files[0] || null;\n        if (!file) {\n          this.showModal(\"Debes seleccionar un archivo primero\");\n        } else if (file.size > 20 * 1024 * 1024) {\n          this.showModal(\"¡El Archivo es muy grande!<br>Debe ser menor a 20 MB\");\n        } else {\n          this.set(\"application.textLog\", \"Subir Vídeo a Flickr\");\n          var data = new FormData();\n          data.append('fileUpload', input.files[0]);\n          data.append('data.title', form.title);\n          data.append('data.description', form.description);\n          data.append('data.private', false);\n          console.log(\"file\", file);\n          console.log(\"form.title\", form.title);\n          console.log(\"form.description\", form.description);\n          this.get('messages').pushObject({ type: \"warning\", msg: \"Subiendo vídeo: por favor espera unos segundos...\" });\n          this.get('application').upload('srv/social/post?service=flickr', data).then(resp => {\n            this.get('messages').clear();\n            return resp;\n          }).then(resp => {\n            if (resp.id && resp.url) {\n              this.get('messages').pushObject({ type: \"success\", msg: `Vídeo subido correctamente a Flickr<br>Puedes verlo aquí: <a target=\"_blank\" href=\"${resp.url}\">${resp.url}</a>` });\n            } else {\n              this.get('messages').pushObject({ type: \"warning\", msg: \"Error: Archivo no subido\" });\n            }\n          }).catch(() => {\n            this.get('messages').pushObject({ type: \"danger\", msg: \"Error inesperado\" });\n          });\n        }\n      },\n      upload(ele) {\n        //validar si no existen archivos\n        //validar si el tamaño es muy grande\n        let self = this;\n        this.get('messages').clear();\n        let input = document.querySelector('input[name=\"imageUpload\"]');\n        console.log(input);\n        let file = input.files[0] || null;\n        let image = {};\n        let resize = [];\n        if (this.get(\"rotar\") != \"0\") image.rotate = this.get(\"rotar\");\n        if (this.get(\"cortar\") != \"0\") image.crop = this.get(\"cortar\");\n        if (this.get('t')) resize.push('t');\n        if (this.get('s')) resize.push('s');\n        if (this.get('m')) resize.push('m');\n        if (this.get('l')) resize.push('l');\n        if (this.get('xl')) resize.push('xl');\n        if (resize.length > 0) image.resize = resize;\n\n        if (!file) {\n          this.showModal(\"Debes seleccionar un archivo primero\");\n        } else if (file.size > 5 * 1024 * 1024) {\n          this.showModal(\"¡El Archivo es muy grande! <br> Debe ser menor a 5 MB\");\n        } else {\n          this.set(\"application.textLog\", \"Transformar Archivo multimedia\");\n\n          var data = new FormData();\n          data.append('fileUpload', input.files[0]);\n          data.append('path', `app-demo/mm/${input.files[0].name}`);\n          let fileName = input.files[0].name;\n          let fileSplit = fileName.split(\".\");\n          this.get('application').upload('srv/storage/upload?service=gcloud&container=a2server-pruebas&public=true', data).then(resp => {\n            if (resp.file.path) {\n              let path = resp.file.path;\n              let service = resp.file.service;\n              let container = resp.file.container;\n              //this.get('messages').pushObject({type:\"success\", msg: `Archivo ${resp.file.path} subido`});\n              // {\"file\":{\"path\":\"app-demo/mm/9A.png\",\"service\":\"gcloud\",\"container\":\"a2server-pruebas\",\"public\":true,\"url\":\"https://www.googleapis.com/download/storage/v1/b/a2server-pruebas/o/app-demo%2Fmm%2F9A.png?generation=1540316467706324&alt=media\"}}\n\n              this.get('application').req('POST', 'srv/multimedia/editImage', {}, {\n                \"input\": { // esto es la respuesta \"file\" del comando del upload\n                  \"path\": path,\n                  \"service\": service,\n                  \"container\": container\n                },\n                \"image\": image,\n                \"output\": {\n                  \"service\": service,\n                  \"container\": container,\n                  \"pathPrefix\": `app-demo/mm/${fileSplit[0]}-`,\n                  \"public\": true\n                }\n              }).then(resp => {\n                this.get('messages').pushObject({ type: \"success\", msg: `Archivo subido y transformado` });\n\n                this.set('images', resp.images);\n              });\n            } else {\n              this.get('messages').pushObject({ type: \"danger\", msg: \"Error: Archivo no subido\" });\n            }\n          });\n        }\n      }\n    }\n\n  });\n});","define('a2s-test/almacenamiento-multimedia/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/almacenamiento-multimedia/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"bPN7K5vf\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\",\\\"message\\\",\\\"form\\\",\\\"image\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Almacenamiento multimedia\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Esta funcionalidad permite \\\"],[6,\\\"strong\\\"],[7],[0,\\\"almacenar archivos multimedia que requieren algún tipo de procesamiento previo\\\"],[8],[0,\\\" antes de ser almacenados en La Nube. De esta forma, los desarrolladores pueden manipular y almacenar multimedia en un sólo paso.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Se permiten dos funcionalidades distintas dependiendo del tipo de archivo multimedia:\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"para imágenes\\\"],[8],[0,\\\", permite rotarlas, cortarlas y editar su tamaño, para luego ser almacenadas automáticamente en alguno de los servicios de almacenamiento en la nube que estén configurados en A2 Server.\\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"para vídeos\\\"],[8],[0,\\\", permite subir archivos en formatos comunes (como MP4, AVI, MOV, etc.), y alojarlos en servicios de terceros (como Flickr o Vimeo) para que puedan ser reproducidos en streaming desde ahí, sin necesidad de que el usuario tenga que transformarlos previamente.\\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En ambos casos, la idea es facilitar la \\\"],[6,\\\"strong\\\"],[7],[0,\\\"subida de archivos multimedia que necesitan algún procesamiento previo\\\"],[8],[0,\\\" (edición, rotación, transformación a formato streaming, etc.) antes de que estén disponibles para que los vean los usuarios.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"onChange\\\"],[[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\" 1: Edición y almacenamiento de imágenes\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Esta funcionalidad permite subir imágenes en formato PNG o JPG, transformarlas, almacenarlas y dejarlas listas para que puedan ser visualizadas por las aplicaciones clientes.\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Las imágenes se subirán a un contenedor de pruebas en Google Cloud Storage.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"upload\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,4,[\\\"group\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[6,\\\"label\\\"],[9,\\\"class\\\",\\\"control-label\\\"],[7],[0,\\\"Seleccionar archivo de imagen para transformar:\\\"],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"input\\\"],[9,\\\"type\\\",\\\"file\\\"],[9,\\\"class\\\",\\\"form-control-file\\\"],[9,\\\"id\\\",\\\"exampleFormControlFile1\\\"],[9,\\\"name\\\",\\\"imageUpload\\\"],[9,\\\"accept\\\",\\\"image/*\\\"],[7],[8],[0,\\\"              \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[6,\\\"label\\\"],[9,\\\"class\\\",\\\"control-label\\\"],[7],[0,\\\"Seleccionar las opciones de transformación:\\\"],[8],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            Rotar:  \\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"0\\\",[20,[\\\"rotar\\\"]]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"No \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"90\\\",[20,[\\\"rotar\\\"]]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"90 \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"180\\\",[20,[\\\"rotar\\\"]]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"180 \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"270\\\",[20,[\\\"rotar\\\"]]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"270 \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"           \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n            Cortar:  \\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"0\\\",[20,[\\\"cortar\\\"]]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"span\\\"],[7],[0,\\\"No \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"squared\\\",[20,[\\\"cortar\\\"]]]],{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"label\\\"],[7],[0,\\\"Cuadrada \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\"],[\\\"rounded\\\",[20,[\\\"cortar\\\"]]]],{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"label\\\"],[7],[0,\\\"Redonda \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"           \\\\n            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"form-check-inline\\\"],[7],[0,\\\"\\\\n              Ajustar tamaño:\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Mini.\\\",\\\"t\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Peq.\\\",\\\"s\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Med.\\\",\\\"m\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Grd.\\\",\\\"l\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"ExtGrd.\\\",\\\"xl\\\"]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Procesar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,6,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,6,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"  \\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"images\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"li\\\"],[7],[0,\\\" \\\"],[6,\\\"strong\\\"],[7],[1,[19,5,[\\\"path\\\"]],false],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[10,\\\"href\\\",[19,5,[\\\"url\\\"]],null],[7],[1,[19,5,[\\\"url\\\"]],false],[8],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"            \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\" 2: Almacenamiento de vídeos en streaming\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Con esta funcionalidad se permite subir archivos de vídeo y alojarlos en servicios externos de streaming, como Vimeo o Flickr.\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"El procesamiento en estos servicios puede tardar varios minutos antes de que esté disponible para ser visualizado en streaming, dependiendo del tamaño del archivo.\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Para esta prueba, se subirá un vídeo a una cuenta de pruebas en el servicio \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Flickr\\\"],[8],[0,\\\".\\\\n            Se pueden conseguir archivos de vídeo de muestra en páginas como éstas:\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"http://file-examples.com/index.php/sample-video-files/sample-mp4-files/\\\"],[7],[0,\\\"http://file-examples.com/index.php/sample-video-files/sample-mp4-files/\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://textinmotion.tv/help/samples\\\"],[7],[0,\\\"https://textinmotion.tv/help/samples\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Se recomienda usar un vídeo de muestra de pocos MB\\\"],[8],[0,\\\" para que el tiempo de espera en esta prueba mientras se transforma el archivo a streaming no sea muy largo. Por ejemplo, se puede usar un vídeo corto como éste:\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://d2qguwbxlx1sbt.cloudfront.net/TextInMotion-VideoSample-576p.mp4\\\"],[7],[0,\\\"https://d2qguwbxlx1sbt.cloudfront.net/TextInMotion-VideoSample-576p.mp4\\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"uploadVideo\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,2,[\\\"group\\\"]]],[[\\\"required\\\"],[true]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[6,\\\"label\\\"],[9,\\\"class\\\",\\\"control-label\\\"],[7],[0,\\\"Seleccionar un vídeo para publicar en Flickr:\\\"],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"input\\\"],[9,\\\"type\\\",\\\"file\\\"],[9,\\\"class\\\",\\\"form-control-file\\\"],[9,\\\"id\\\",\\\"videoFlickr\\\"],[9,\\\"name\\\",\\\"videoFlickr\\\"],[9,\\\"accept\\\",\\\".mp4, .avi, .mov\\\"],[7],[8],[0,\\\"              \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Título del vídeo a publicar\\\",\\\"Título del vídeo a publicar\\\",\\\"title\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n           \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Descripción del vídeo\\\",\\\"Descripción del vídeo\\\",\\\"description\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Publicar vídeo en Flickr\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,3,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,3,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Edición y Almacenamiento de \\\"],[6,\\\"strong\\\"],[7],[0,\\\"imágenes\\\"],[8],[0,\\\":\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-multimedia_routes.html#Editimage__anchor\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-multimedia.Multimedia.html#editImage__anchor\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-multimedia.html\\\"],[7],[0,\\\"Tutorial de ejemplo (ir a sección \\\\\\\"Edición de imágenes\\\\\\\")\\\"],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Procesamiento y Almacenamiento de \\\"],[6,\\\"strong\\\"],[7],[0,\\\"vídeos\\\"],[8],[0,\\\" (Vimeo y Flickr):\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-social_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-social.Client.html#post__anchor\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-social.html\\\"],[7],[0,\\\"Tutorial de ejemplo\\\"],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\\n\\\\n\\\\n\\\"],[4,\\\"bs-modal-simple\\\",null,[[\\\"open\\\",\\\"title\\\",\\\"size\\\",\\\"onHidden\\\"],[[20,[\\\"openModal\\\"]],\\\"Alerta\\\",\\\"sm\\\",[25,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"openModal\\\"]]],null],false],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[1,[18,\\\"msgModal\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento-multimedia/template.hbs\" } });\n});","define('a2s-test/almacenamiento/docs/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/almacenamiento/docs/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"oDMlAtjK\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Documentación\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-Database_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Almacenamiento de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-Database.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Almacenamiento de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-api-admin.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Almacenamiento de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/docs/template.hbs\" } });\n});","define('a2s-test/almacenamiento/hook-post/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    actions: {\n      delete(row) {\n        this.set(\"application.textLog\", \"DELETE vehiculos\");\n        this.get('application').req('DELETE', `col/vehiculos/${row._id}`, {}, {});\n        let model = this.get('model.vehiculos');\n        model.removeObject(row);\n      }\n    }\n  });\n});","define('a2s-test/almacenamiento/hook-post/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    model() {\n      return this.get('application').req('GET', 'col/vehiculos', {});\n    }\n  });\n});","define(\"a2s-test/almacenamiento/hook-post/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Fb6xwTOo\", \"block\": \"{\\\"symbols\\\":[\\\"vehiculo\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Prueba hook Post-Delete: Luego de Eliminar\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      En este caso, se ejecutará el hook \\\\\\\"post-delete\\\\\\\", (o \\\\\\\"post-remove\\\\\\\") el cual consiste en la ejecución de código fuente \\\\n      justo \\\"],[6,\\\"strong\\\"],[7],[0,\\\"después\\\"],[8],[0,\\\" de eliminar un documento de la colección \\\\\\\"vehiculos\\\\\\\".\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"/assets/images/3C.png\\\"],[9,\\\"alt\\\",\\\"Post Hook\\\"],[9,\\\"width\\\",\\\"100%\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En el hook se envía un correo electrónico \\\"],[6,\\\"strong\\\"],[7],[0,\\\"después\\\"],[8],[0,\\\" de eliminar exitosamente un vehículo de la base de datos, \\\\n      siempre y cuando el campo \\\\\\\"notificar\\\\\\\" contenga alguna dirección de correo electrónico.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para esta prueba, \\\"],[6,\\\"strong\\\"],[7],[0,\\\"eliminar un vehículo\\\"],[8],[0,\\\" cuya dirección de correo para la notificación se pueda revisar.\\\\n      Al eliminar el vehículo, se recibirá un correo en dicha dirección (revisar Spam si no se recibe en unos segundos).\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Modelo\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Notificar\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Acción\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\",\\\"vehiculos\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"modelo\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"notificar\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"            \\\"],[6,\\\"td\\\"],[7],[4,\\\"bs-button\\\",null,[[\\\"icon\\\",\\\"class\\\",\\\"onClick\\\"],[\\\"fa fa-trash\\\",\\\"btn btn-sm btn-outline-primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"delete\\\",[19,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"Eliminar\\\"]],\\\"parameters\\\":[]},null],[0,\\\" \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"      \\\\n    \\\"],[8],[0,\\\"    \\\\n  \\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/hook-post/template.hbs\" } });\n});","define('a2s-test/almacenamiento/hook-pre/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    modelo: \"SEAT León\",\n    //matricula: \"1234TGV\",\n    matricula: Ember.computed('', function () {\n      return Math.floor(Math.random() * 100000 + 1) + \"AS\";\n    }),\n\n    year: \"2018\",\n    notificar: \"maga.napanga@gmail.com\",\n\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n      this.set('matricula', Math.floor(Math.random() * 100000 + 1) + \"AS\");\n      this.set('year', \"2018\");\n    },\n\n    actions: {\n      submit(form) {\n        this.set(\"application.textLog\", \"Crear documento vehiculo\");\n        let self = this;\n        let matricula = form.get('matricula');\n        this.get('application').req('POST', 'col/vehiculos', {}, {\n          \"vehiculo\": {\n            \"modelo\": form.modelo,\n            \"matricula\": matricula,\n            \"year\": form.year,\n            \"notificar\": form.notificar\n          }\n        }).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n            self.set('resMessage', null);\n          } else {\n            self.set('errMessage', null);\n            self.set('resMessage', resp.vehiculo[0].detalles);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/almacenamiento/hook-pre/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n\n  });\n});","define(\"a2s-test/almacenamiento/hook-pre/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"OLTS3Fo5\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Prueba hook Pre-Save: Antes de Guardar\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      En este ejemplo, se demuestra cómo se ejecutan los hooks definidos en el modelo. Un \\\\\\\"hook\\\\\\\" es un código fuente que se ejecuta justo antes o justo después de alguna otra acción.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"En este caso, se ejecutará el hook \\\\\\\"pre-save\\\\\\\", el cual consiste en la ejecución de código fuente justo \\\"],[6,\\\"strong\\\"],[7],[0,\\\"antes\\\"],[8],[0,\\\" de almacenar o modificar un documento de la colección \\\\\\\"vehiculos\\\\\\\".\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"/assets/images/3B.png\\\"],[9,\\\"alt\\\",\\\"Pre Hook\\\"],[9,\\\"width\\\",\\\"100%\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En el hook se modifica la propiedad \\\\\\\"detalles\\\\\\\" con un texto que depende del año (\\\\\\\"year\\\\\\\"). \\\\n      Se hace \\\"],[6,\\\"strong\\\"],[7],[0,\\\"antes\\\"],[8],[0,\\\" de almacenar el documento en base de datos, por lo que el documento almacenado contiene dicha propiedad \\\\n      a pesar de que no haya sido enviada en el comando (en este caso, con los datos del formulario de pruebas).\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Modelo\\\",\\\"Modelo\\\",\\\"modelo\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Matrícula\\\",\\\"Matrícula\\\",\\\"matricula\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Año\\\",\\\"Año\\\",\\\"year\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"email\\\",\\\"Notificar\\\",\\\"Dirección de correo\\\",\\\"notificar\\\",true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Info\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\" \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/hook-pre/template.hbs\" } });\n});","define('a2s-test/almacenamiento/index/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/almacenamiento/index/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"QfyfCebN\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"h3\\\"],[7],[0,\\\"Información\\\"],[8],[0,\\\" \\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"A2 Server provee de un manejo automático de almacenamiento en base de datos noSQL.\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"Los datos se almacenan en colecciones definidas por un esquema (modelo de datos) en donde se pueden definir:\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"Las \\\"],[6,\\\"strong\\\"],[7],[0,\\\"propiedades\\\"],[8],[0,\\\" que formarán parte de cada documento para dicha colección.\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Validaciones\\\"],[8],[0,\\\" para cada propiedad: el documento no será almacenado si no cumple ciertas restricciones.\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Valores por defecto\\\"],[8],[0,\\\" de las propiedades si son omitidas al insertar.\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Hooks PRE y POST\\\"],[8],[0,\\\": ejecución de código antes o después de alguna acción sobre la base de datos.\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"Se muestra abajo un ejemplo de cómo se define el esquema para el modelo \\\\\\\"vehiculo\\\\\\\", en el cual:\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"Se definen los tipos de datos para cada propiedad de cada documento \\\\\\\"vehiculo\\\\\\\" y cuáles de ellos son obligatorios (\\\\\\\"required\\\\\\\")\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"La propiedad \\\\\\\"matricula\\\\\\\" debe ser única en toda la colección (tiene índice único)\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"El año (\\\\\\\"year\\\\\\\") está restringido a los valores entre 1900 y 2018\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"El campo de fecha de creación \\\\\\\"cDate\\\\\\\" se asigna por defecto con la fecha en la cual es creado el documento\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"/assets/images/3A.png\\\"],[9,\\\"alt\\\",\\\"Pre Hook\\\"],[9,\\\"width\\\",\\\"100%\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n  Los desarrolladores pueden definir modelos como éste o cualquier otro que necesiten en la \\\\n  \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2server.a2system.net\\\"],[7],[0,\\\"Interfaz de Configuración de A2 Server\\\"],[8],[0,\\\". \\\\n  Más adelante en estas pruebas se explicará dónde.\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[1,[18,\\\"outlet\\\"],false]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/index/template.hbs\" } });\n});","define('a2s-test/almacenamiento/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/almacenamiento/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"qr4M0eIq\", \"block\": \"{\\\"symbols\\\":[\\\"nav\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container-fluid h-100\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-2 submenu h-100\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"bs-nav\\\",null,[[\\\"class\\\",\\\"type\\\"],[\\\"nav nav-pills flex-column\\\",\\\"tabs\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.index\\\"],null,{\\\"statements\\\":[[0,\\\"Información\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.validacion-ok\\\"],null,{\\\"statements\\\":[[0,\\\"Prueba validación correcta\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.validacion-fail\\\"],null,{\\\"statements\\\":[[0,\\\"Prueba validación fallida\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.hook-pre\\\"],null,{\\\"statements\\\":[[0,\\\"Prueba hook: pre-save\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.hook-post\\\"],null,{\\\"statements\\\":[[0,\\\"Prueba hook: post-delete\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"almacenamiento.docs\\\"],null,{\\\"statements\\\":[[0,\\\"Documentación\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"           \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-10 h-100\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/template.hbs\" } });\n});","define('a2s-test/almacenamiento/validacion-fail/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    modelo: \"SEAT León\",\n    //matricula: \"1234TGV\",\n    matricula: Ember.computed('', function () {\n      return Math.floor(Math.random() * 100000 + 1) + \"AS\";\n    }),\n    year: \"3025\",\n    notificar: \"maga.napanga@gmail.com\",\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n      this.set('matricula', Math.floor(Math.random() * 100000 + 1) + \"AS\");\n      this.set('year', \"3025\");\n    },\n    actions: {\n      submit(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"Crear documento vehiculo\");\n        let matricula = form.get('matricula');\n        this.get('application').req('POST', 'col/vehiculos', {}, {\n          \"vehiculo\": {\n            \"modelo\": form.modelo,\n            \"matricula\": matricula,\n            \"year\": form.year,\n            \"notificar\": form.notificar\n          }\n        }).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n          } else {\n            self.set('errMessage', null);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/almacenamiento/validacion-fail/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/almacenamiento/validacion-fail/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"BlfvdFWZ\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Prueba de validación fallida de Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      En esta prueba se intentará insertar un documento en la misma colección \\\\\\\"vehiculos\\\\\\\".\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      En esta ocasión el año se encuentra fuera del rango válido (1900-2018), por lo que la inserción dará error y el documento no será almacenado en la base de datos. \\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Modelo\\\",\\\"Modelo\\\",\\\"modelo\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Matricula\\\",\\\"Matricula\\\",\\\"matricula\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Año\\\",\\\"Año\\\",\\\"year\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"email\\\",\\\"Notificar\\\",\\\"Email\\\",\\\"notificar\\\",true]]],false],[0,\\\"\\\\n\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear Vehículo\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/validacion-fail/template.hbs\" } });\n});","define('a2s-test/almacenamiento/validacion-ok/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    modelo: \"SEAT León\",\n    //matricula: \"1234TGV\",\n    matricula: Ember.computed('', function () {\n      return Math.floor(Math.random() * 100000 + 1) + \"AS\";\n    }),\n\n    year: \"2018\",\n    notificar: \"\",\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n      this.set('matricula', Math.floor(Math.random() * 100000 + 1) + \"AS\");\n      this.set('year', \"2018\");\n    },\n    actions: {\n      submit(form) {\n        this.set(\"application.textLog\", \"Crear documento vehiculo\");\n        let self = this;\n        let matricula = form.get('matricula');\n        this.get('application').req('POST', 'col/vehiculos', {}, {\n          \"vehiculo\": {\n            \"modelo\": form.modelo,\n            \"matricula\": matricula,\n            \"year\": form.year,\n            \"notificar\": form.notificar\n          }\n        }).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n          } else {\n            self.set('errMessage', null);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/almacenamiento/validacion-ok/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/almacenamiento/validacion-ok/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"DL/V7/si\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Prueba de validación correcta de Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      En esta prueba se insertará un documento en la colección \\\\\\\"vehiculos\\\\\\\".\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      Si la matrícula no se repite respecto a otro vehiculo (validación de índice único), y el año está en el rango 1900-2018 (validación de máximo y mínimo), el documento se insertará sin problemas.\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Se recomienda introducir una dirección de correo válida\\\"],[8],[0,\\\" (donde se puedan revisar correos recibidos) que servirá para pruebas posteriores.\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"        \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Modelo\\\",\\\"Modelo\\\",\\\"modelo\\\",true]]],false],[0,\\\"\\\\n        \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Matrícula\\\",\\\"Matrícula\\\",\\\"matricula\\\",true]]],false],[0,\\\"\\\\n        \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Año\\\",\\\"Año\\\",\\\"year\\\",true]]],false],[0,\\\"\\\\n        \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"email\\\",\\\"Notificar\\\",\\\"Dirección de correo\\\",\\\"notificar\\\",true,\\\"Introduzca su dirección de correo\\\"]]],false],[0,\\\"\\\\n\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear Vehículo\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/almacenamiento/validacion-ok/template.hbs\" } });\n});","define('a2s-test/api/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({});\n});","define('a2s-test/api/create/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      create(form) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"Crear documento\");\n        this.get('application').req('POST', 'col/frutas', {}, {\n          \"fruta\": {\n            \"nombre\": form.nombre,\n            \"color\": form.color,\n            \"precio\": form.precio,\n            \"inventario\": form.inventario\n          }\n        }).then(resp => {\n          if (resp.frutas) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Fruta: ${resp.frutas[0].nombre} creada correctamente` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al crear` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n    }\n  });\n});","define('a2s-test/api/create/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    model() {},\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/api/create/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"2HMkUwEd\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Crud (Create) Inserción en Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Desde aquí se pueden \\\"],[6,\\\"strong\\\"],[7],[0,\\\"crear\\\"],[8],[0,\\\" nuevos documentos para almacenar en la colección \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"frutas\\\\\\\"\\\"],[8],[0,\\\" de la base de datos.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"create\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Nombre\\\",\\\"Nombre de la fruta\\\",\\\"nombre\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Color\\\",\\\"Color de la fruta\\\",\\\"color\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Precio\\\",\\\"Precio de la fruta\\\",\\\"precio\\\",true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Inventario\\\",\\\"Cantidad\\\",\\\"inventario\\\",true]]],false],[0,\\\"\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"error\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],true],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/create/template.hbs\" } });\n});","define('a2s-test/api/delete/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      delete(row) {\n        let self = this;\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"DELETE frutas\");\n        this.get('application').req('DELETE', `col/frutas/${row._id}`, {}, {}).then(resp => {\n          if (resp.frutas) {\n            self.get('messages').pushObject({ type: \"success\", msg: `Fruta: ${resp.frutas.nombre} eliminada correctamente` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al eliminar` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Error de Servidor` });\n        });\n        let model = this.get('model.frutas');\n        model.removeObject(row);\n      }\n    }\n  });\n});","define('a2s-test/api/delete/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    model() {\n      return this.get('application').req('GET', 'col/frutas', {});\n    },\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/api/delete/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"mKgzKHqd\", \"block\": \"{\\\"symbols\\\":[\\\"fruit\\\",\\\"message\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"cruD (Delete) Eliminación de Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Desde aquí se pueden \\\"],[6,\\\"strong\\\"],[7],[0,\\\"eliminar\\\"],[8],[0,\\\" los documentos almacenados en la colección \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"frutas\\\\\\\"\\\"],[8],[0,\\\" de la base de datos.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Nombre\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Color\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Precio\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Acción\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\",\\\"frutas\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"nombre\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"color\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"input\\\",null,[[\\\"value\\\"],[[19,1,[\\\"precio\\\"]]]]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n              \\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"class\\\",\\\"onClick\\\"],[\\\"danger\\\",\\\"btn btn-sm btn-outline-danger\\\",[25,\\\"action\\\",[[19,0,[]],\\\"delete\\\",[19,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"Eliminar\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\\n            \\\"],[8],[0,\\\"\\\\n\\\"],[0,\\\"          \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"      \\\\n    \\\"],[8],[0,\\\"       \\\\n\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/delete/template.hbs\" } });\n});","define('a2s-test/api/docs/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/api/docs/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"QyzTLpim\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Documentación\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-Database_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Operaciones CRUD sobre la Base de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-Database.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Operaciones CRUD sobre la Base de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-api-admin.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Operaciones CRUD sobre la Base de Datos\\\"],[8],[8],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/docs/template.hbs\" } });\n});","define('a2s-test/api/index/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/api/index/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"5PoA+q2Q\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"API Generation\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"A2 Server provee de un \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API\\\"],[8],[0,\\\" que permite realizar operaciones \\\"],[6,\\\"strong\\\"],[7],[0,\\\"CRUD\\\"],[8],[0,\\\" sobre las colecciones de base de datos.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"El API es generado automáticamente, es decir, A2 Server permite realizar dichas operaciones CRUD sobre cualquier colección, incluso creadas a través del mismo API, sin necesidad de que el desarrollador tenga que realizar ningún paso o desarrollo adicional.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Las operaciones \\\"],[6,\\\"strong\\\"],[7],[0,\\\"CRUD\\\"],[8],[0,\\\" consisten en:\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"C\\\"],[8],[0,\\\"reate (crear): consiste en insertar un documento nuevo en la base de datos.\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"R\\\"],[8],[0,\\\"ead (leer): consiste en consultar documentos de la base de datos.\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"U\\\"],[8],[0,\\\"pdate (actualizar): consiste en actualizar la información de documentos ya existentes.\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"D\\\"],[8],[0,\\\"elete (eliminar): consiste en eliminar documentos de la base de datos.\\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"El acceso a este API se permite a través de:\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (vía HTTP en formato JSON API)\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"API internos\\\"],[8],[0,\\\" en el código del servidor, para que el desarrollador pueda ejecutar su propio código fuente integrando código en \\\"],[6,\\\"strong\\\"],[7],[0,\\\"JavaScript\\\"],[8],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Esta funcionalidad se demostrará realizando las operaciones \\\"],[6,\\\"strong\\\"],[7],[0,\\\"CRUD\\\"],[8],[0,\\\" sobre una colección llamada \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"frutas\\\\\\\"\\\"],[8],[0,\\\".\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/index/template.hbs\" } });\n});","define('a2s-test/api/read/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      read() {\n        this.set(\"application.textLog\", \"RECEIVE\");\n        this.get('application').req('GET', 'col/frutas', {}).then(resp => {\n          this.set(\"model\", resp.frutas);\n        });\n      }\n    }\n  });\n});","define('a2s-test/api/read/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/api/read/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"6F+7wRhK\", \"block\": \"{\\\"symbols\\\":[\\\"fruit\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"cRud (Read) Lectura Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Desde aquí se pueden \\\"],[6,\\\"strong\\\"],[7],[0,\\\"leer\\\"],[8],[0,\\\" todos los documentos almacenados en la colección \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"frutas\\\\\\\"\\\"],[8],[0,\\\" de la base de datos.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"onClick\\\"],[\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"read\\\"],null]]],{\\\"statements\\\":[[0,\\\"      Leer\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Nombre\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Color\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Precio\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Inventario\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"nombre\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"color\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"precio\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"inventario\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"          \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"      \\\\n    \\\"],[8],[0,\\\"          \\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/read/template.hbs\" } });\n});","define('a2s-test/api/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/api/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"U1Mzhvbs\", \"block\": \"{\\\"symbols\\\":[\\\"nav\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container-fluid h-100\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-2 submenu h-100\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"bs-nav\\\",null,[[\\\"class\\\",\\\"type\\\"],[\\\"nav nav-pills flex-column\\\",\\\"tabs\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.index\\\"],null,{\\\"statements\\\":[[0,\\\"Información\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.create\\\"],null,{\\\"statements\\\":[[0,\\\"Crud (Create) Inserción en Base de Datos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.read\\\"],null,{\\\"statements\\\":[[0,\\\"cRud (Read) Lectura Base de Datos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.update\\\"],null,{\\\"statements\\\":[[0,\\\"crUd (Update) Actualización de Base de Datos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.delete\\\"],null,{\\\"statements\\\":[[0,\\\"cruD (Delete) Eliminación de Base de Datos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"api.docs\\\"],null,{\\\"statements\\\":[[0,\\\"Documentación\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-10 h-100\\\"],[7],[0,\\\"\\\\n      \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/template.hbs\" } });\n});","define('a2s-test/api/update/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      update(id, precio) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"UPDATE frutas\");\n        this.get('application').req('PUT', `col/frutas/${id}`, {}, { fruta: { \"precio\": precio } }).then(resp => {\n          if (resp.frutas) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Fruta: ${resp.frutas[0].nombre} actualizada correctamente` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al actualizar` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n    }\n\n  });\n});","define('a2s-test/api/update/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    model() {\n      return this.get('application').req('GET', 'col/frutas', {});\n    },\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/api/update/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"IOfcIdZ/\", \"block\": \"{\\\"symbols\\\":[\\\"fruit\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"crUd (Update) Actualización de Base de Datos\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Desde aquí se pueden \\\"],[6,\\\"strong\\\"],[7],[0,\\\"actualizar\\\"],[8],[0,\\\" los documentos almacenados en la colección \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"frutas\\\\\\\"\\\"],[8],[0,\\\" de la base de datos. Para este ejemplo, se actualizará el campo \\\\\\\"precio\\\\\\\" de alguna fruta.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Nombre\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Color\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Precio\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Acción\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\",\\\"frutas\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"nombre\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"color\\\"]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[1,[25,\\\"input\\\",null,[[\\\"value\\\"],[[19,1,[\\\"precio\\\"]]]]],false],[8],[0,\\\"\\\\n            \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n              \\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"class\\\",\\\"onClick\\\"],[\\\"primary\\\",\\\"btn btn-sm btn-outline-primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"update\\\",[19,1,[\\\"_id\\\"]],[19,1,[\\\"precio\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"Actualizar\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\\n            \\\"],[8],[0,\\\"\\\\n\\\"],[0,\\\"          \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"      \\\\n    \\\"],[8],[0,\\\"     \\\\n\\\\n\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/api/update/template.hbs\" } });\n});","define('a2s-test/app', ['exports', 'a2s-test/resolver', 'ember-load-initializers', 'a2s-test/config/environment'], function (exports, _resolver, _emberLoadInitializers, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  const App = Ember.Application.extend({\n    modulePrefix: _environment.default.modulePrefix,\n    podModulePrefix: _environment.default.podModulePrefix,\n    Resolver: _resolver.default\n  });\n\n  (0, _emberLoadInitializers.default)(App, _environment.default.modulePrefix);\n\n  exports.default = App;\n});","define('a2s-test/application/controller', ['exports', 'fetch'], function (exports, _fetch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    login: false,\n    email: \"\",\n    password: \"\",\n    error: false,\n    errMessage: \"Ha introducido incorrectamente el email o la clave.\",\n    actions: {\n      submit() {\n        if (true || this.get('email') == \"tester2@a2system.net\" && this.get('password') === \"t3st3r4cc0unt\") {\n\n          (0, _fetch.default)('https://a2server.a2system.net:4541/api/v1/col/users/login', {\n            credentials: 'include',\n            method: 'POST',\n            headers: {\n              'Content-Type': 'application/json'\n            },\n            body: JSON.stringify({\n              \"user\": {\n                \"email\": {\n                  \"login\": 'test99@mail.com',\n                  \"password\": 'patataman'\n                }\n              },\n              \"type\": \"mail\"\n            })\n          }).then(response => {\n            this.set('error', false);\n            this.set('login', true);\n            this.sendAction('login');\n            // console.log(\"bien\");\n            // console.log(response.json());\n            // return response.json();\n          }).catch(err => {\n            this.set('errMessage', \"Problemas con el servidor intente más tarde o comuníquese con el administrador\");\n            this.set('error', true);\n          });\n        } else {\n          this.set('error', true);\n        }\n        // return fetch('https://a2server.a2system.net:4541/api/v1/col/users/login',{\n        //   method: 'POST',\n        //   headers: {\n        //     'Content-Type': 'application/json'\n        //   },\n        //   body: JSON.stringify({\n        //     \"user\": {\n        //         \"email\":{\n        //           \"login\": this.get('email'),\n        //           \"password\": this.get('password'),\n        //         }\n        //     },\n        //     \"type\":\"mail\"\n        //   })        \n        // }).then(response =>{\n        //   this.set('login', true);\n        //   this.sendAction('login');\n        //   // console.log(\"bien\");\n        //   // console.log(response.json());\n        //   // return response.json();\n        // }).catch(err=>{\n        //   console.log(err);\n        // });\n      }\n    }\n  });\n});","define('a2s-test/application/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController(controller, model) {\n      this._super(controller, model);\n      // Implement your custom setup after\n      // this.controllerFor('application').set('showingPhotos', true); \n      controller.send('submit');\n    },\n\n    actions: {\n      login() {\n        this.transitionTo('index');\n      }\n    }\n  });\n});","define('a2s-test/application/service', ['exports', 'a2s-test/config/environment', 'fetch'], function (exports, _environment, _fetch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Service.extend({\n    textLog: \"\",\n    addLog(text) {\n      this.set(\"textLog\", this.get(\"textLog\").concat(text));\n    },\n    setLog(text) {\n      this.set(\"textLog\", text);\n    },\n    req(method, sufUrl, options, body) {\n      let url = `${_environment.default.srv}${sufUrl}`;\n      let app = this;\n      let bb = body ? JSON.stringify(body, null, \" \") : \"\";\n      let logData = this.get('textLog') + `<br><br><strong>->TX:</strong> ${method} ${url} <br>${bb}`;\n      this.set('textLog', logData);\n      return new Promise(function (resolve, reject) {\n        options = {\n          credentials: 'include',\n          method: method,\n          headers: {\n            'Content-Type': 'application/json'\n          }\n        };\n        if (method != \"GET\") options.body = JSON.stringify(body);\n\n        (0, _fetch.default)(url, options).then(response => {\n          response.json().then(data => {\n            let logData = app.get('textLog') + `<br><br><strong><-RX:</strong> ${JSON.stringify(data, null, ' ')}`;\n            app.set('textLog', logData);\n            resolve(data);\n          }).catch(err => {\n            reject(err);\n          });\n        }).catch(err => {\n          // this.set('errMessage', \"Problemas con el servidor intente más tarde o comuníquese con el administrador\");\n          // this.set('error', true);\n          this.set('logData', \"error\");\n          reject(err);\n        });\n      });\n    },\n    upload(sufUrl, data) {\n      let url = `${_environment.default.srv}${sufUrl}`;\n      let app = this;\n      let logData = this.get('textLog') + `<br>-->POST ${url}`;\n      this.set('textLog', logData);\n      return new Promise(function (resolve, reject) {\n        (0, _fetch.default)(url, {\n          credentials: 'include',\n          method: 'POST',\n          body: data\n        }).then(response => {\n          response.json().then(resp => {\n            let logData = app.get('textLog') + `<br><--${JSON.stringify(resp)}`;\n            app.set('textLog', logData);\n            resolve(resp);\n          });\n        }).catch(err => {\n          // this.set('errMessage', \"Problemas con el servidor intente más tarde o comuníquese con el administrador\");\n          // this.set('error', true);\n          this.set('logData', \"error\");\n          reject(err);\n        });\n      });\n    }\n  });\n});","define(\"a2s-test/application/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"jmFf41cU\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\",\\\"nav\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"style\\\",\\\"background-color: white;\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"login\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container-fluid h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-2 menu h-100\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n        \\\"],[6,\\\"h6\\\"],[9,\\\"style\\\",\\\"color:white\\\"],[7],[0,\\\"Cliente de Prueba A2 Server\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-nav\\\",null,[[\\\"class\\\",\\\"type\\\"],[\\\"nav nav-pills flex-column\\\",\\\"tabs\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"index\\\"],null,{\\\"statements\\\":[[0,\\\"Inicio\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"usuarios\\\"],null,{\\\"statements\\\":[[0,\\\"Manejo de Usuarios\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"seguridad\\\"],null,{\\\"statements\\\":[[0,\\\"Seguridad (pasos)\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"almacenamiento\\\"],null,{\\\"statements\\\":[[0,\\\"Almacenamiento de Datos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"geolocalizacion\\\"],null,{\\\"statements\\\":[[0,\\\"Geolocalización\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"pubsub\\\"],null,{\\\"statements\\\":[[0,\\\"Publish/Subscribe\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"push\\\"],null,{\\\"statements\\\":[[0,\\\"Push Notifications\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"almacenamiento-archivos\\\"],null,{\\\"statements\\\":[[0,\\\"Almacenamiento Archivos\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"almacenamiento-multimedia\\\"],null,{\\\"statements\\\":[[0,\\\"Almacenamiento Multimedia\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"media-streaming\\\"],null,{\\\"statements\\\":[[0,\\\"Media Streaming\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"social\\\"],null,{\\\"statements\\\":[[0,\\\"Social Service\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"sms\\\"],null,{\\\"statements\\\":[[0,\\\"SMS Service\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"email\\\"],null,{\\\"statements\\\":[[0,\\\"Email Service\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"api\\\"],null,{\\\"statements\\\":[[0,\\\"API Generation\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"git\\\"],null,{\\\"statements\\\":[[0,\\\"Git Integration\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"estadistica\\\"],null,{\\\"statements\\\":[[0,\\\"Estadisticas e Informes\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,2,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,2,[\\\"link-to\\\"]],\\\"server-side\\\"],null,{\\\"statements\\\":[[0,\\\"Server-Side Logic\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-10\\\"],[9,\\\"style\\\",\\\"padding-left:0px;\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-8\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"email\\\",\\\"Email\\\",\\\"Email\\\",\\\"email\\\",true]]],false],[0,\\\"\\\\n          \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"password\\\",\\\"Clave\\\",\\\"Clave\\\",\\\"password\\\",true]]],false],[0,\\\" \\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"error\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Login\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[8],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/application/template.hbs\" } });\n});","define('a2s-test/components/a2/bd-callout/component', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({});\n});","define(\"a2s-test/components/a2/bd-callout/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"acKVqCAT\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"show\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[10,\\\"class\\\",[26,[\\\"bd-callout \\\",[25,\\\"concat\\\",[\\\"bd-callout-\\\",[25,\\\"if\\\",[[20,[\\\"type\\\"]],[20,[\\\"type\\\"]],\\\"info\\\"],null]],null]]]],[7],[0,\\\"\\\\n    \\\"],[6,\\\"button\\\"],[9,\\\"type\\\",\\\"button\\\"],[9,\\\"class\\\",\\\"close\\\"],[9,\\\"aria-label\\\",\\\"Close\\\"],[3,\\\"action\\\",[[19,0,[]],[25,\\\"mut\\\",[[20,[\\\"show\\\"]]],null],false]],[7],[0,\\\"\\\\n       \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"now-ui-icons ui-1_simple-remove\\\"],[7],[8],[0,\\\"\\\\n\\\"],[0,\\\"    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[1,[18,\\\"title\\\"],false],[8],[0,\\\"\\\\n    \\\"],[11,1],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/components/a2/bd-callout/template.hbs\" } });\n});","define('a2s-test/components/a2/bs-alert/component', ['exports', 'ember-bootstrap/components/bs-alert'], function (exports, _bsAlert) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _bsAlert.default.extend({});\n});","define(\"a2s-test/components/a2/bs-alert/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"aZ1A6E5g\", \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[4,\\\"unless\\\",[[20,[\\\"hidden\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"dismissible\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[6,\\\"button\\\"],[9,\\\"type\\\",\\\"button\\\"],[9,\\\"class\\\",\\\"close\\\"],[9,\\\"data-dismiss\\\",\\\"alert\\\"],[9,\\\"aria-label\\\",\\\"Close\\\"],[3,\\\"action\\\",[[19,0,[]],\\\"dismiss\\\"]],[7],[0,\\\"\\\\n      \\\"],[6,\\\"span\\\"],[9,\\\"aria-hidden\\\",\\\"true\\\"],[7],[0,\\\" \\\"],[6,\\\"i\\\"],[9,\\\"class\\\",\\\"now-ui-icons ui-1_simple-remove\\\"],[7],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[11,1],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/components/a2/bs-alert/template.hbs\" } });\n});","define('a2s-test/components/bs-accordion', ['exports', 'ember-bootstrap/components/bs-accordion'], function (exports, _bsAccordion) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsAccordion.default;\n    }\n  });\n});","define('a2s-test/components/bs-accordion/item', ['exports', 'ember-bootstrap/components/bs-accordion/item'], function (exports, _item) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define('a2s-test/components/bs-accordion/item/body', ['exports', 'ember-bootstrap/components/bs-accordion/item/body'], function (exports, _body) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});","define('a2s-test/components/bs-accordion/item/title', ['exports', 'ember-bootstrap/components/bs-accordion/item/title'], function (exports, _title) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});","define('a2s-test/components/bs-alert', ['exports', 'ember-bootstrap/components/bs-alert'], function (exports, _bsAlert) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsAlert.default;\n    }\n  });\n});","define('a2s-test/components/bs-button-group', ['exports', 'ember-bootstrap/components/bs-button-group'], function (exports, _bsButtonGroup) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsButtonGroup.default;\n    }\n  });\n});","define('a2s-test/components/bs-button-group/button', ['exports', 'ember-bootstrap/components/bs-button-group/button'], function (exports, _button) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});","define('a2s-test/components/bs-button', ['exports', 'ember-bootstrap/components/bs-button'], function (exports, _bsButton) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsButton.default;\n    }\n  });\n});","define('a2s-test/components/bs-carousel', ['exports', 'ember-bootstrap/components/bs-carousel'], function (exports, _bsCarousel) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsCarousel.default;\n    }\n  });\n});","define('a2s-test/components/bs-carousel/slide', ['exports', 'ember-bootstrap/components/bs-carousel/slide'], function (exports, _slide) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _slide.default;\n    }\n  });\n});","define('a2s-test/components/bs-collapse', ['exports', 'ember-bootstrap/components/bs-collapse'], function (exports, _bsCollapse) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsCollapse.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown', ['exports', 'ember-bootstrap/components/bs-dropdown'], function (exports, _bsDropdown) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsDropdown.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/button', ['exports', 'ember-bootstrap/components/bs-dropdown/button'], function (exports, _button) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/menu', ['exports', 'ember-bootstrap/components/bs-dropdown/menu'], function (exports, _menu) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _menu.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/menu/divider', ['exports', 'ember-bootstrap/components/bs-dropdown/menu/divider'], function (exports, _divider) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _divider.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/menu/item', ['exports', 'ember-bootstrap/components/bs-dropdown/menu/item'], function (exports, _item) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/menu/link-to', ['exports', 'ember-bootstrap/components/bs-dropdown/menu/link-to'], function (exports, _linkTo) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define('a2s-test/components/bs-dropdown/toggle', ['exports', 'ember-bootstrap/components/bs-dropdown/toggle'], function (exports, _toggle) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});","define('a2s-test/components/bs-form', ['exports', 'ember-bootstrap/components/bs-form'], function (exports, _bsForm) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsForm.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element', ['exports', 'ember-bootstrap/components/bs-form/element'], function (exports, _element) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/control', ['exports', 'ember-bootstrap/components/bs-form/element/control'], function (exports, _control) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _control.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/control/checkbox', ['exports', 'ember-bootstrap/components/bs-form/element/control/checkbox'], function (exports, _checkbox) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/control/input', ['exports', 'ember-bootstrap/components/bs-form/element/control/input'], function (exports, _input) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _input.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/control/textarea', ['exports', 'ember-bootstrap/components/bs-form/element/control/textarea'], function (exports, _textarea) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _textarea.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/errors', ['exports', 'ember-bootstrap/components/bs-form/element/errors'], function (exports, _errors) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _errors.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/feedback-icon', ['exports', 'ember-bootstrap/components/bs-form/element/feedback-icon'], function (exports, _feedbackIcon) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _feedbackIcon.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/help-text', ['exports', 'ember-bootstrap/components/bs-form/element/help-text'], function (exports, _helpText) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _helpText.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/label', ['exports', 'ember-bootstrap/components/bs-form/element/label'], function (exports, _label) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _label.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/horizontal', ['exports', 'ember-bootstrap/components/bs-form/element/layout/horizontal'], function (exports, _horizontal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _horizontal.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/horizontal/checkbox', ['exports', 'ember-bootstrap/components/bs-form/element/layout/horizontal/checkbox'], function (exports, _checkbox) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/inline', ['exports', 'ember-bootstrap/components/bs-form/element/layout/inline'], function (exports, _inline) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _inline.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/inline/checkbox', ['exports', 'ember-bootstrap/components/bs-form/element/layout/inline/checkbox'], function (exports, _checkbox) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/vertical', ['exports', 'ember-bootstrap/components/bs-form/element/layout/vertical'], function (exports, _vertical) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _vertical.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/element/layout/vertical/checkbox', ['exports', 'ember-bootstrap/components/bs-form/element/layout/vertical/checkbox'], function (exports, _checkbox) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define('a2s-test/components/bs-form/group', ['exports', 'ember-bootstrap/components/bs-form/group'], function (exports, _group) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _group.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal-simple', ['exports', 'ember-bootstrap/components/bs-modal-simple'], function (exports, _bsModalSimple) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsModalSimple.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal', ['exports', 'ember-bootstrap/components/bs-modal'], function (exports, _bsModal) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsModal.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/body', ['exports', 'ember-bootstrap/components/bs-modal/body'], function (exports, _body) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/dialog', ['exports', 'ember-bootstrap/components/bs-modal/dialog'], function (exports, _dialog) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _dialog.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/footer', ['exports', 'ember-bootstrap/components/bs-modal/footer'], function (exports, _footer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _footer.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/header', ['exports', 'ember-bootstrap/components/bs-modal/header'], function (exports, _header) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _header.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/header/close', ['exports', 'ember-bootstrap/components/bs-modal/header/close'], function (exports, _close) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _close.default;\n    }\n  });\n});","define('a2s-test/components/bs-modal/header/title', ['exports', 'ember-bootstrap/components/bs-modal/header/title'], function (exports, _title) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});","define('a2s-test/components/bs-nav', ['exports', 'ember-bootstrap/components/bs-nav'], function (exports, _bsNav) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsNav.default;\n    }\n  });\n});","define('a2s-test/components/bs-nav/item', ['exports', 'ember-bootstrap/components/bs-nav/item'], function (exports, _item) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define('a2s-test/components/bs-nav/link-to', ['exports', 'ember-bootstrap/components/bs-nav/link-to'], function (exports, _linkTo) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define('a2s-test/components/bs-navbar', ['exports', 'ember-bootstrap/components/bs-navbar'], function (exports, _bsNavbar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsNavbar.default;\n    }\n  });\n});","define('a2s-test/components/bs-navbar/content', ['exports', 'ember-bootstrap/components/bs-navbar/content'], function (exports, _content) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _content.default;\n    }\n  });\n});","define('a2s-test/components/bs-navbar/link-to', ['exports', 'ember-bootstrap/components/bs-navbar/link-to'], function (exports, _linkTo) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define('a2s-test/components/bs-navbar/nav', ['exports', 'ember-bootstrap/components/bs-navbar/nav'], function (exports, _nav) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _nav.default;\n    }\n  });\n});","define('a2s-test/components/bs-navbar/toggle', ['exports', 'ember-bootstrap/components/bs-navbar/toggle'], function (exports, _toggle) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});","define('a2s-test/components/bs-popover', ['exports', 'ember-bootstrap/components/bs-popover'], function (exports, _bsPopover) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsPopover.default;\n    }\n  });\n});","define('a2s-test/components/bs-popover/element', ['exports', 'ember-bootstrap/components/bs-popover/element'], function (exports, _element) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define('a2s-test/components/bs-progress', ['exports', 'ember-bootstrap/components/bs-progress'], function (exports, _bsProgress) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsProgress.default;\n    }\n  });\n});","define('a2s-test/components/bs-progress/bar', ['exports', 'ember-bootstrap/components/bs-progress/bar'], function (exports, _bar) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bar.default;\n    }\n  });\n});","define('a2s-test/components/bs-tab', ['exports', 'ember-bootstrap/components/bs-tab'], function (exports, _bsTab) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsTab.default;\n    }\n  });\n});","define('a2s-test/components/bs-tab/pane', ['exports', 'ember-bootstrap/components/bs-tab/pane'], function (exports, _pane) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _pane.default;\n    }\n  });\n});","define('a2s-test/components/bs-tooltip', ['exports', 'ember-bootstrap/components/bs-tooltip'], function (exports, _bsTooltip) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsTooltip.default;\n    }\n  });\n});","define('a2s-test/components/bs-tooltip/element', ['exports', 'ember-bootstrap/components/bs-tooltip/element'], function (exports, _element) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define('a2s-test/components/copy-button', ['exports', 'ember-cli-clipboard/components/copy-button'], function (exports, _copyButton) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _copyButton.default;\n    }\n  });\n});","define('a2s-test/components/ember-popper-targeting-parent', ['exports', 'ember-popper/components/ember-popper-targeting-parent'], function (exports, _emberPopperTargetingParent) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});","define('a2s-test/components/ember-popper', ['exports', 'ember-popper/components/ember-popper'], function (exports, _emberPopper) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});","define('a2s-test/components/labeled-radio-button', ['exports', 'ember-radio-button/components/labeled-radio-button'], function (exports, _labeledRadioButton) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _labeledRadioButton.default;\n    }\n  });\n});","define('a2s-test/components/photo-swipe', ['exports', 'ember-photoswipe/components/photo-swipe'], function (exports, _photoSwipe) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _photoSwipe.default;\n    }\n  });\n});","define('a2s-test/components/radio-button-input', ['exports', 'ember-radio-button/components/radio-button-input'], function (exports, _radioButtonInput) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _radioButtonInput.default;\n    }\n  });\n});","define('a2s-test/components/radio-button', ['exports', 'ember-radio-button/components/radio-button'], function (exports, _radioButton) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _radioButton.default;\n    }\n  });\n});","define('a2s-test/components/show-log/component', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Component.extend({\n    tagName: '',\n    init() {\n      this._super(...arguments);\n      this.set(\"application.textLog\", \"\");\n    }\n  });\n});","define(\"a2s-test/components/show-log/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"x9WkeMWq\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"style\\\",\\\"width:100%;  word-wrap: break-word; background-color:#000000; color: rgb(226, 255, 119); font-size:12px; padding:5px;\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"h5\\\"],[7],[0,\\\"Comunicación  con el A2 Server\\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"pre\\\"],[9,\\\"style\\\",\\\"color: rgb(226, 255, 119);\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[20,[\\\"application\\\",\\\"textLog\\\"]],true],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"    \\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/components/show-log/template.hbs\" } });\n});","define('a2s-test/components/torii-iframe-placeholder', ['exports', 'torii/components/torii-iframe-placeholder'], function (exports, _toriiIframePlaceholder) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _toriiIframePlaceholder.default;\n});","define('a2s-test/components/welcome-page', ['exports', 'ember-welcome-page/components/welcome-page'], function (exports, _welcomePage) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _welcomePage.default;\n    }\n  });\n});","define('a2s-test/email/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n\n      this.set('to', \"\");\n      this.set('subject', \"\");\n      this.set('body', \"\");\n    },\n    actions: {\n      submit(form) {\n        this.set('resMessage', null);\n        this.set('errMessage', null);\n        let self = this;\n        this.set(\"application.textLog\", \"Enviar Email\");\n        let numero = '34' + form.get('number');\n        this.get('application').req('POST', 'col/emails/send', {}, {\n          \"to\": form.to,\n          \"subject\": form.subject,\n          \"text\": form.body\n        }).then(resp => {\n          if (resp.resp.accepted.length) {\n            self.set('resMessage', `Enviado a: ${resp.resp.accepted}`);\n            self.set('errMessage', null);\n          } else {\n            self.set('resMessage', null);\n            self.set('errMessage', \"No enviado\");\n          }\n        }).catch(err => {\n          self.set('resMessage', null);\n          self.set('errMessage', \"Error inesperado!, contacte al administrador\");\n        });\n      }\n    }\n  });\n});","define('a2s-test/email/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/email/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"jgOF2oFz\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[9,\\\"style\\\",\\\"padding-left: 15px;\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Email Service\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Este servicio permite hacer envío de correos electrónicos.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para esta prueba, escribe una dirección de correo electrónico donde puedas verificar el mensaje recibido.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"email\\\",\\\"Destinatario\\\",\\\"Escribe un correo electrónico válido\\\",\\\"to\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Título\\\",\\\"Escribe el título del correo\\\",\\\"subject\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Mensaje\\\",\\\"Escribe el mensaje de correo a enviar\\\",\\\"body\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Enviar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[9,\\\"style\\\",\\\"color:grey\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"* \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Nota:\\\"],[8],[0,\\\" Si no recibes el correo en un par de minutos, asegúrate de haber escito la dirección correctamente. De ser así, revisa la carpeta de Spam.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,null,{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-email.Client.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para el Envío de Email\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-email.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Envío de Email\\\"],[8],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/email/template.hbs\" } });\n});","define('a2s-test/estadistica/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    items1: [{\n      src: 'assets/images/15A.png',\n      w: '886',\n      h: '366',\n      pid: 'image-A',\n      txt: '&bullet; Desde el menú lateral, seleccionar \"Aplicaciones\" -> \"Ver\" (DemoApp)<br>&nbsp;'\n    }, {\n      src: 'assets/images/15B.png',\n      w: '1560',\n      h: '923',\n      pid: 'image-B',\n      iB: true,\n      txt: '&bullet; Por defecto, al crear una aplicación se pueden ver 3 secciones con gráficas útiles para el desarrollador.<br>Se incluye una sección de usuarios registrados por tipo de cuenta (email, número de teléfono, nombre de usuario, etc.), y también por tipo de cliente (dispositivo Android, dispositivo iOS, o cliente Web).<br>&nbsp;'\n    }, {\n      src: 'assets/images/15C.png',\n      w: '1467',\n      h: '843',\n      pid: 'image-C',\n      iB: true,\n      txt: '&bullet; Otra sección de estadísticas de envío de notificaciones push, separada por dispositivos móviles (Android, iOS), y de otros grupos (incluyendo notificaciones a navegadore web). Se pueden ver también contablización de errores en los envíos, si los hubiera.<br>&nbsp;'\n    }, {\n      src: 'assets/images/15D.png',\n      w: '1253',\n      h: '493',\n      pid: 'image-D',\n      iB: true,\n      txt: '&bullet; Adicionalmente, reportes de uso de conexiones realizadas por cliente.<br>&nbsp;'\n    }],\n    items2: [{\n      src: 'assets/images/15E.png',\n      w: '585',\n      h: '298',\n      pid: 'image-E',\n      txt: '&bullet; Desde el \"Panel de Control\", entrar en \"Administrar Gráficas\" -> \"Crear Nueva Sección\".<br>&nbsp;'\n    }, {\n      src: 'assets/images/15F.png',\n      w: '968',\n      h: '351',\n      pid: 'image-F',\n      iB: true\n    }, {\n      src: 'assets/images/15G.png',\n      w: '603',\n      h: '245',\n      pid: 'image-G',\n      txt: '&bullet; Agregar el nombre que se desea para dicha sección que contendrá las gráficas nuevas.<br>&nbsp;'\n    }, {\n      src: 'assets/images/15H.png',\n      w: '949',\n      h: '299',\n      pid: 'image-H',\n      iB: true,\n      txt: '&bullet; Se debe \"Activar\" la sección nueva, y luego \"Editar\" para entrar a ver sus gráficas asociadas.  Hacer click en \"Crear nueva Gráfica\".<br>&nbsp;'\n    }, {\n      src: 'assets/images/15I.png',\n      w: '969',\n      h: '431',\n      pid: 'image-I'\n    }, {\n      src: 'assets/images/15J.png',\n      w: '595',\n      h: '725',\n      pid: 'image-J',\n      iB: true,\n      txt: `&bullet; Rellenar los datos requeridos para la nueva gráfica<br>\n      <ul>\n      <li>El nombre de la gráfica para mostrar en el \"Panel de Control\".</li>\n      <li>La ruta REST API de donde se obtendrán los datos. Para este ejemplo, se puede usar la ruta \"app/charts/users\" para mostrar una gráfica de usuarios. Un desarrollador podría crear su propia ruta y proveer de datos personalizados para sus gráficas.</li>\n      <li>Hacer click en el botón \"Probar\" para saber si la ruta ha sido bien configurada.</li>\n      <li>Seleccionar el tipo de gráfica que se quiere mostrar. Puede ser de barras verticales, horizontales, de líneas, radiales tipo radar o donut, etc.</li>\n      <li>Seleccionar el tamaño que se quiere que ocupe la gráfica en el ancho de la pantalla.</li>\n      <li>Confirmar la creación de la gráfica.</li>\n      </ul>\n      <br>&nbsp;\n      `\n    }, {\n      src: 'assets/images/15K.png',\n      w: '804',\n      h: '156',\n      pid: 'image-K',\n      txt: '&bullet; Luego, en el \"Panel de Control\", se puede ver la nueva sección que ha sido creada, y las gráficas que se le han agregado.<br>&nbsp;'\n    }, {\n      src: 'assets/images/15L.png',\n      w: '764',\n      h: '420',\n      pid: 'image-L',\n      iB: true\n    }],\n    actions: {\n      onChange() {\n        window.scrollTo(0, 0);\n      }\n    }\n  });\n});","define('a2s-test/estadistica/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/estadistica/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"2vAOVWVq\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"photoswipe\\\",\\\"item\\\",\\\"index\\\",\\\"photoswipe\\\",\\\"item\\\",\\\"index\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-8\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Estadísticas e informes\\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"A través de la \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2server.a2system.net\\\"],[7],[0,\\\"interfaz de configuración de A2 Server\\\"],[8],[0,\\\" (ingresar con las credenciales suministradas), se tiene acceso a un conjunto de estadísticas y gráficas de uso de la aplicación.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Estas gráficas son configurables, y se pueden editar según las estadísticas que más le interese ver al desarrollador en el \\\\\\\"Panel de Control\\\\\\\".\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"onChange\\\"],[[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Visualización de gráficas por defecto\\\"]],{\\\"statements\\\":[[4,\\\"photo-swipe\\\",null,[[\\\"items\\\",\\\"history\\\"],[[20,[\\\"items1\\\"]],false]],{\\\"statements\\\":[[4,\\\"each\\\",[[20,[\\\"items1\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"if\\\",[[19,6,[\\\"txt\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[1,[19,6,[\\\"txt\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            \\\"],[6,\\\"img\\\"],[10,\\\"src\\\",[19,6,[\\\"src\\\"]],null],[9,\\\"width\\\",\\\"100%\\\"],[3,\\\"action\\\",[[19,0,[]],[19,5,[\\\"actions\\\",\\\"open\\\"]],[25,\\\"hash\\\",null,[[\\\"index\\\"],[[19,7,[]]]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6,7]},null]],\\\"parameters\\\":[5]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Creación de gráficas adicionales\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"La \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net\\\"],[7],[0,\\\"interfaz de configuración de A2 Server\\\"],[8],[0,\\\" permite además que los desarrolladores editen o agreguen las gráficas que le sean de más utilidad. Pueden incluso crear sus propios comandos en el código fuente que devuelvan datos que sirvan para mostrar gráficas totalmente personalizadas.\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Se agregará una gráfica de ejemplo para mostrar la funcionalidad.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"photo-swipe\\\",null,[[\\\"items\\\",\\\"history\\\"],[[20,[\\\"items2\\\"]],false]],{\\\"statements\\\":[[4,\\\"each\\\",[[20,[\\\"items2\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"if\\\",[[19,3,[\\\"txt\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[1,[19,3,[\\\"txt\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            \\\"],[6,\\\"img\\\"],[10,\\\"src\\\",[19,3,[\\\"src\\\"]],null],[9,\\\"width\\\",\\\"100%\\\"],[3,\\\"action\\\",[[19,0,[]],[19,2,[\\\"actions\\\",\\\"open\\\"]],[25,\\\"hash\\\",null,[[\\\"index\\\"],[[19,4,[]]]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3,4]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-4\\\"],[7],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/estadistica/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/docs/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/geolocalizacion/docs/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"9LrAWIPa\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Documentación\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/docs/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/geocercas/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    items: [\"Sevilla\", \"Madrid\"],\n    resMessage: \"\",\n    citySelected: \"Sevilla\",\n    latitud: Ember.computed('citySelected', function () {\n      return this.get('citySelected') === \"Sevilla\" ? 37.392554 : 40.434152;\n    }),\n    longitud: Ember.computed('citySelected', function () {\n      return this.get('citySelected') === \"Sevilla\" ? -5.984927 : -3.702205;\n    }),\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n\n      this.set('citySelected', \"Sevilla\");\n    },\n    actions: {\n      changeItems(item) {\n        this.set('citySelected', item);\n        this.set('resMessage', null);\n      },\n      submit(form) {\n        let self = this;\n        this.set('resMessage', null);\n\n        this.set(\"application.textLog\", \"COMPROBAR GEOCERCAS\");\n        let longitud = form.get('longitud');\n        let latitud = form.get('latitud');\n\n        this.get('application').req('GET', `col/geocercas?q={\"loc\":{\"$geoIntersects\":{\"$geometry\":{\"type\": \"Point\",\"coordinates\":[ ${longitud}, ${latitud} ]}}}}`, {}).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n          } else {\n            let num = resp.meta.total;\n            let where = num ? 'dentro' : 'fuera';\n            self.set('resMessage', `${num} Geocercas encontradas.<br>Significa que el geopunto está <strong>${where}</strong> de la geocerca.`);\n            self.set('errMessage', null);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/geolocalizacion/geocercas/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/geolocalizacion/geocercas/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"dj7ysR3/\", \"block\": \"{\\\"symbols\\\":[\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6 h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Geocercas\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      En esta prueba se comprueba si un geopunto está dentro o fuera de un área geográfica (una geocerca).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Por facilidad para las pruebas, se ha creado 1 geocerca que aproximadamente representa el área de Andalucía. \\\\n      Se muestran también 2 puntos de prueba (dentro y fuera de Andalucía): Sevilla y Madrid.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"La prueba consiste en saber si las coordenadas consultadas (geopunto) están dentro o fuera de \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Andalucía\\\"],[8],[0,\\\" (geocerca).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"• Si el geopunto está \\\"],[6,\\\"strong\\\"],[7],[0,\\\"dentro\\\"],[8],[0,\\\" de la geocerca de Andalucía, se recibirá la geocerca como respuesta.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"• Si el geopunto está \\\"],[6,\\\"strong\\\"],[7],[0,\\\"fuera\\\"],[8],[0,\\\" de la geocerca de Andalucía, no se recibirá ninguna geocerca como respuesta.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Selecciona un punto para consultar:\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n    \\\"],[6,\\\"select\\\"],[9,\\\"class\\\",\\\"form-control\\\"],[9,\\\"id\\\",\\\"exampleFormControlSelect1\\\"],[10,\\\"onchange\\\",[25,\\\"action\\\",[[19,0,[]],\\\"changeItems\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]],null],[7],[0,\\\"\\\\n      \\\"],[6,\\\"option\\\"],[7],[0,\\\"Sevilla\\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"option\\\"],[7],[0,\\\"Madrid\\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"        \\\\n    \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"readonly\\\",\\\"required\\\"],[\\\"text\\\",\\\"Latitud\\\",\\\"Latitud\\\",\\\"latitud\\\",true,true]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,1,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"readonly\\\",\\\"required\\\"],[\\\"text\\\",\\\"Longitud\\\",\\\"Longitud\\\",\\\"longitud\\\",true,true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Comprobar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6 h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\" \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/geocercas/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/geopuntos/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n\n    geoName: \"repsol\",\n\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n\n      this.set('geoName', \"repsol\");\n      this.set('gasolineras', []);\n    },\n    actions: {\n      submit(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"BUSCAR GEOPUNTOS POR NOMBRE\");\n        this.set('gasolineras', []);\n        let geoName = form.geoName.trim();\n        this.get('application').req('GET', `col/gasolineras?limit=100&fields=loc,workingHours,name,localId,currency,prices&q={\"name\":{\"$regex\":\"${geoName}\", \"$options\": \"i\"}}`, {}).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n          } else {\n            let num = resp.gasolineras.length;\n            self.set('resMessage', `${num} Gasolineras Encontradas`);\n            self.set('gasolineras', resp.gasolineras);\n            self.set('errMessage', null);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/geolocalizacion/geopuntos/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/geolocalizacion/geopuntos/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"dcDiEJ3w\", \"block\": \"{\\\"symbols\\\":[\\\"gasolinera\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6 h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Geopuntos / Georeferencias\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Esta prueba devuelve los documentos (gasolineras) filtrados en base a uno de sus campos. En este ejemplo, se filtra en base al nombre de la gasolinera.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Este tipo de datos se usarían, por ejemplo, para pintar los geopuntos en un mapa para que los vea el usuario.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Se ha limitado la respuesta a 100 documentos. Se puede cambiar el nombre de la gasolinera para realizar otras búsquedas.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\\n          \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Nombre Gasolinera\\\",\\\"Nombre de la gasolinera\\\",\\\"geoName\\\",true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Buscar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[4,\\\"if\\\",[[20,[\\\"gasolineras\\\",\\\"length\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Coordenadas\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Gasolinera\\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"gasolineras\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"loc\\\",\\\"coordinates\\\"]],false],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"name\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"              \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"          \\\"],[8],[0,\\\"      \\\\n        \\\"],[8],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6 h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\" \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/geopuntos/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/index/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/geolocalizacion/index/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"2BG6viKF\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Geolocalización\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Esta funcionalidad permite a los desarrolladores hacer consultas relacionadas a geolocalización y manejo de coordenadas. Se suele usar para manejo de coordenadas terrestres (esféricas), pero en general se puede usar sobre cualquier plano cartesiano.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"A2 Server permite llamar al REST API para fácilmente realizar cálculos de distancia entre puntos (geopuntos o georeferencias), localizar puntos dentro de un área (geocerca), localizar puntos cercanos a otro punto, saber si un punto está dentro de un área, y varias otras funcionalidades típicas del manejo de mapas y coordenadas.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para ello, los desarrolladores deben crear una colección con los datos de sus geopuntos y geocercas en el estándar GeoJSON (por ejemplo, una lista de puntos de la ubicación de sus usuarios). Luego, A2 Server permite hacer consultas sobre los puntos en esta colección.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para realizar esta prueba, se han cargado en la base de datos una lista de las gasolineras en España y sus coordenadas geográficas (que actuarán como geopuntos). Se ha cargado también una geocerca de Andalucía.\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/index/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/radio/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    latitud: 0,\n    longitud: 0,\n    radio: 0,\n\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n\n      this.set('latitud', 36.713424);\n      this.set('longitud', -4.4607517);\n      this.set('radio', 3);\n      this.set('gasolineras', []);\n    },\n    actions: {\n      submit(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"BUSCAR POR RADIO\");\n        this.set('gasolineras', []);\n        let radio = form.radio / 6378.1;\n        this.get('application').req('GET', `col/gasolineras?limit=100&fields=loc,workingHours,name,localId,currency,prices&q={\"loc\":{\"$geoWithin\":{\"$centerSphere\":[[${form.longitud},${form.latitud}],${radio}]}}}`, {}).then(resp => {\n          if (resp.errors && resp.errors[0].status == \"422\" && resp.errors[0].title && resp.errors[0].detail) {\n            self.set('errMessage', `${resp.errors[0].title}:${resp.errors[0].detail}`);\n          } else {\n            let num = resp.gasolineras.length;\n            self.set('resMessage', `${num} Gasolineras Encontradas`);\n            self.set('gasolineras', resp.gasolineras);\n            self.set('errMessage', null);\n          }\n        });\n      }\n    }\n  });\n});","define('a2s-test/geolocalizacion/radio/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/geolocalizacion/radio/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"VoSFeIRq\", \"block\": \"{\\\"symbols\\\":[\\\"gasolinera\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Búsqueda en un radio\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Para esta prueba, se utilizará la lista de gasolineras para consultar cuáles de ellas están dentro de un radio según un geopunto de referencia.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Se ha limitado la respuesta a 100 documentos. Se pueden cambiar las coordenadas y el radio para ubicar gasolineras en otro punto de España.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\\n          \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"GeoPunto Latidud\\\",\\\"Latidud\\\",\\\"latitud\\\",true]]],false],[0,\\\"\\\\n          \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"GeoPunto Longitud\\\",\\\"Longitud\\\",\\\"longitud\\\",true]]],false],[0,\\\"\\\\n          \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"number\\\",\\\"Radio (en kilometros)\\\",\\\"Radio\\\",\\\"radio\\\",true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Buscar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[4,\\\"if\\\",[[20,[\\\"gasolineras\\\",\\\"length\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Coordenadas\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Gasolinera\\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"gasolineras\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"loc\\\",\\\"coordinates\\\"]],false],[8],[0,\\\"\\\\n                \\\"],[6,\\\"td\\\"],[7],[1,[19,1,[\\\"name\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"              \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"          \\\"],[8],[0,\\\"      \\\\n        \\\"],[8],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\" \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/radio/template.hbs\" } });\n});","define('a2s-test/geolocalizacion/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/geolocalizacion/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"pLJ4QjQE\", \"block\": \"{\\\"symbols\\\":[\\\"nav\\\"],\\\"statements\\\":[[0,\\\"  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container-fluid h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-2 submenu h-100\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"bs-nav\\\",null,[[\\\"class\\\",\\\"type\\\"],[\\\"nav nav-pills flex-column\\\",\\\"tabs\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"geolocalizacion.index\\\"],null,{\\\"statements\\\":[[0,\\\"Información\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"geolocalizacion.radio\\\"],null,{\\\"statements\\\":[[0,\\\"Búsqueda en un radio\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"geolocalizacion.geopuntos\\\"],null,{\\\"statements\\\":[[0,\\\"Geopuntos/Georefrencias\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"geolocalizacion.geocercas\\\"],null,{\\\"statements\\\":[[0,\\\"Geocercas\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"geolocalizacion.docs\\\"],null,{\\\"statements\\\":[[0,\\\"Documentación\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-10 h-100\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/geolocalizacion/template.hbs\" } });\n});","define('a2s-test/git/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    items: [{\n      src: 'assets/images/14A.png',\n      w: '949',\n      h: '439',\n      pid: 'image-A',\n      txt: '&bullet; Desde el menú lateral, seleccionar \"Aplicaciones\" -> \"Editar\" (DemoApp)<br>&nbsp;'\n    }, {\n      src: 'assets/images/14B.png',\n      w: '745',\n      h: '550',\n      pid: 'image-B',\n      iB: true,\n      txt: '&bullet; Pestaña \"Repositorio\"<br>&nbsp;'\n    }, {\n      src: 'assets/images/14C.png',\n      w: '734',\n      h: '357',\n      pid: 'image-C',\n      iB: true,\n      txt: '&bullet; Seleccionar la rama \"develop\" en la sección de \"Checkout\"<br>&nbsp;'\n    }, {\n      src: 'assets/images/14D.png',\n      w: '706',\n      h: '348',\n      pid: 'image-D',\n      iB: true,\n      txt: '&bullet; Solicitar el cambio de rama con el botón \"Checkout\" y luego confirmar<br>&nbsp;'\n    }, {\n      src: 'assets/images/14E.png',\n      w: '606',\n      h: '262',\n      pid: 'image-E',\n      iB: true\n\n    }, {\n      src: 'assets/images/14F.png',\n      w: '952',\n      h: '443',\n      pid: 'image-F',\n      iB: true,\n      txt: '&bullet; <mark><strong>Para que el cambio surja efecto, se debe reiniciar la aplicación.</strong></mark><br>Desde el menú lateral, seleccionar \"Aplicaciones\" -> \"Reiniciar\" (DemoApp). Luego, confirmar el reinicio en \"Reiniciar\".<br>&nbsp;'\n    }, {\n      src: 'assets/images/14G.png',\n      w: '606',\n      h: '197',\n      pid: 'image-G',\n      iB: true\n\n    }],\n    actions: {\n      git1() {\n        this.get('messages').clear();\n        this.get(\"application\").setLog(\"PRUEBA GIT 1\");\n        this.get('application').req('GET', 'col/geos/git-test', {}).then(resp => {\n          console.log(resp);\n          if (resp.resp) {\n            this.get('messages').pushObject({ type: \"success\", msg: `¡Bien! ${JSON.stringify(resp.resp, null, 2)}` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Problemas con la petición` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n    }\n  });\n});","define('a2s-test/git/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/git/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ngytGi4c\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"message\\\",\\\"photoswipe\\\",\\\"item\\\",\\\"index\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Git Integration\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Esta funcionalidad permite a los desarrolladores alojar el código fuente de los cambios que hayan hecho en su aplicación de A2 Server en un repositorio GIT, ya sea privado o en servidores públicos de GIT como GitHub.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"El repositorio de esta aplicación de pruebas (\\\\\\\"DemoApp\\\\\\\") se encuentra alojado en los repositorios públicos de GitHub: \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://github.com/a2system/a2server-demo\\\"],[7],[0,\\\" https://github.com/a2system/a2server-demo\\\"],[8],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Para esta prueba, se hará \\\\\\\"desplegar\\\\\\\" (\\\\\\\"checkout\\\\\\\") de una rama distinta, y se verá el cambio en el código fuente y en el funcionamiento del servidor.\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\"],[\\\"1\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.- Comando de ejemplo\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          El código del servidor está actualmente en la rama \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"master\\\\\\\"\\\"],[8],[0,\\\".\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Se pedirá un comado de pruebas, con el cual el servidor está respondiendo un texto que está programado en la rama \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"master\\\\\\\"\\\"],[8],[0,\\\".\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"onClick\\\"],[\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"git1\\\"],null]]],{\\\"statements\\\":[[0,\\\"          Prueba Git\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,6,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,6,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Cambio a otra rama del repositorio\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          Ahora, \\\"],[6,\\\"strong\\\"],[7],[0,\\\"se cambiará el código fuente que está corriendo en el servidor\\\"],[8],[0,\\\" por el de otra rama llamada \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"develop\\\\\\\"\\\"],[8],[0,\\\", y se verá la diferencia al solicitar el mismo comando.\\\\n        \\\"],[8],[0,\\\"    \\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          Para cambiar el código fuente a otra rama del repositorio GIT, se debe entrar en la Interfaz de Configuración de A2 Server \\\\n          (\\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2server.a2system.net\\\"],[7],[0,\\\"https://a2server.a2system.net\\\"],[8],[0,\\\") \\\\n          con las credenciales suministradas.\\\\n        \\\"],[8],[0,\\\" \\\\n\\\"],[4,\\\"photo-swipe\\\",null,[[\\\"items\\\",\\\"history\\\"],[[20,[\\\"items\\\"]],false]],{\\\"statements\\\":[[4,\\\"each\\\",[[20,[\\\"items\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"if\\\",[[19,4,[\\\"txt\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[1,[19,4,[\\\"txt\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            \\\"],[6,\\\"img\\\"],[10,\\\"src\\\",[19,4,[\\\"src\\\"]],null],[9,\\\"width\\\",\\\"100%\\\"],[3,\\\"action\\\",[[19,0,[]],[19,3,[\\\"actions\\\",\\\"open\\\"]],[25,\\\"hash\\\",null,[[\\\"index\\\"],[[19,5,[]]]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4,5]},null]],\\\"parameters\\\":[3]},null],[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"Luego de seguir estos pasos se puede realizar la prueba del Paso 3.\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Paso 3.- Mismo comando de ejemplo, en otra rama\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Éste es el mismo comando del Paso 1. Sin embargo, \\\"],[6,\\\"strong\\\"],[7],[0,\\\"al haber cambiado el código del servidor\\\"],[8],[0,\\\" (por haber cambiado de rama), \\\"],[6,\\\"strong\\\"],[7],[0,\\\"este comando de pruebas responde ahora un texto distinto\\\"],[8],[0,\\\" al que respondió en el Paso 1.\\\"],[8],[0,\\\"     \\\\n\\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"onClick\\\"],[\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"git1\\\"],null]]],{\\\"statements\\\":[[0,\\\"          Prueba Git\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"  \\\\n        \\\"],[6,\\\"p\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Antes del cambio de rama, el comando respondía con el texto \\\\\\\"master\\\\\\\", y ahora con el texto \\\\\\\"develop\\\\\\\".\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Los detalles de las diferencias en el código fuente se pueden ver a través de la interfaz de configuración de A2 Server, o en el repositorio en GitHub.:\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"El comando de pruebas en la rama \\\\\\\"master\\\\\\\":\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://github.com/a2system/a2server-demo/blob/master/routes/col/geos.js#L10\\\"],[7],[0,\\\"https://github.com/a2system/a2server-demo/blob/master/routes/col/geos.js#L10\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"El comando de pruebas en la rama \\\\\\\"develop\\\\\\\":\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://github.com/a2system/a2server-demo/blob/develop/routes/col/geos.js#L10\\\"],[7],[0,\\\"https://github.com/a2system/a2server-demo/blob/develop/routes/col/geos.js#L10\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/git/template.hbs\" } });\n});","define('a2s-test/helpers/app-version', ['exports', 'a2s-test/config/environment', 'ember-cli-app-version/utils/regexp'], function (exports, _environment, _regexp) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.appVersion = appVersion;\n  function appVersion(_, hash = {}) {\n    const version = _environment.default.APP.version;\n    // e.g. 1.0.0-alpha.1+4jds75hf\n\n    // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n    let versionOnly = hash.versionOnly || hash.hideSha;\n    let shaOnly = hash.shaOnly || hash.hideVersion;\n\n    let match = null;\n\n    if (versionOnly) {\n      if (hash.showExtended) {\n        match = version.match(_regexp.versionExtendedRegExp); // 1.0.0-alpha.1\n      }\n      // Fallback to just version\n      if (!match) {\n        match = version.match(_regexp.versionRegExp); // 1.0.0\n      }\n    }\n\n    if (shaOnly) {\n      match = version.match(_regexp.shaRegExp); // 4jds75hf\n    }\n\n    return match ? match[0] : version;\n  }\n\n  exports.default = Ember.Helper.helper(appVersion);\n});","define('a2s-test/helpers/bs-contains', ['exports', 'ember-bootstrap/helpers/bs-contains'], function (exports, _bsContains) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsContains.default;\n    }\n  });\n  Object.defineProperty(exports, 'bsContains', {\n    enumerable: true,\n    get: function () {\n      return _bsContains.bsContains;\n    }\n  });\n});","define('a2s-test/helpers/bs-eq', ['exports', 'ember-bootstrap/helpers/bs-eq'], function (exports, _bsEq) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _bsEq.default;\n    }\n  });\n  Object.defineProperty(exports, 'eq', {\n    enumerable: true,\n    get: function () {\n      return _bsEq.eq;\n    }\n  });\n});","define('a2s-test/helpers/cancel-all', ['exports', 'ember-concurrency/helpers/cancel-all'], function (exports, _cancelAll) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _cancelAll.default;\n    }\n  });\n});","define('a2s-test/helpers/is-clipboard-supported', ['exports', 'ember-cli-clipboard/helpers/is-clipboard-supported'], function (exports, _isClipboardSupported) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _isClipboardSupported.default;\n    }\n  });\n  Object.defineProperty(exports, 'isClipboardSupported', {\n    enumerable: true,\n    get: function () {\n      return _isClipboardSupported.isClipboardSupported;\n    }\n  });\n});","define('a2s-test/helpers/perform', ['exports', 'ember-concurrency/helpers/perform'], function (exports, _perform) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _perform.default;\n    }\n  });\n});","define('a2s-test/helpers/pluralize', ['exports', 'ember-inflector/lib/helpers/pluralize'], function (exports, _pluralize) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _pluralize.default;\n});","define('a2s-test/helpers/singularize', ['exports', 'ember-inflector/lib/helpers/singularize'], function (exports, _singularize) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _singularize.default;\n});","define('a2s-test/helpers/task', ['exports', 'ember-concurrency/helpers/task'], function (exports, _task) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _task.default;\n    }\n  });\n});","define('a2s-test/index/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({});\n});","define('a2s-test/index/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/index/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"pCDHNkII\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container\\\"],[7],[0,\\\"\\\\n\\\"],[6,\\\"h1\\\"],[7],[0,\\\"Cliente para facilitar las pruebas de A2 Server\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"h2\\\"],[7],[0,\\\"Importante:\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n\\\"],[6,\\\"strong\\\"],[7],[0,\\\"A2 Server es un servicio de \\\\\\\"back-end\\\\\\\". Eso quiere decir que no tiene pantallas (\\\\\\\"front-end\\\\\\\") que visualizar.\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\nPara facilitar las pruebas del servicio, se ha creado este cliente web (\\\\\\\"front-end\\\\\\\") que se conecta e interactúa con el servicio A2 Server (\\\\\\\"back-end\\\\\\\") para demostrar sus funcionalidades.\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n\\\"],[6,\\\"li\\\"],[7],[6,\\\"mark\\\"],[7],[0,\\\"Para realizar las pruebas de las funcionalidades existentes, seguir el menú de la izquierda.\\\"],[8],[8],[0,\\\"\\\\n\\\"],[6,\\\"li\\\"],[7],[0,\\\"Si se desean realizar pruebas más detalladas de todas las funcionalidades, se puede consultar la documentación mostrada abajo.\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"strong\\\"],[7],[0,\\\"Más información\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"Cliente de Pruebas A2 Server (esta página web): \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2client.a2system.net\\\"],[7],[0,\\\"https://a2client.a2system.net\\\"],[8],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"Interfaz de Configuración A2 Server: \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net\\\"],[7],[0,\\\"https://a2server.a2system.net\\\"],[8],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\\\\"ToroBack\\\\\\\" es el nombre comercial del proyecto \\\\\\\"A2 Server\\\\\\\", por ello en algunos sitios se verá este otro nombre usado indistintamente.\\\"],[8],[0,\\\"\\\\n\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\\n\\\"],[6,\\\"strong\\\"],[7],[0,\\\"Documentación\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[0,\\\"Información general sobre el servicio y las funcionalidades disponibles:\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://www.toroback.com/\\\"],[7],[0,\\\"https://www.toroback.com/\\\"],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://www.toroback.com/funcionalidades/\\\"],[7],[0,\\\"https://www.toroback.com/funcionalidades/\\\"],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2client.a2system.net\\\"],[7],[0,\\\"Cliente de pruebas\\\"],[8],[0,\\\" (recomendado): \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2client.a2system.net\\\"],[7],[0,\\\" https://a2client.a2system.net/\\\"],[8],[0,\\\" (esta página web)\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://drive.google.com/file/d/0B80BVtG6dUdfcHhVa0lvZDJPZlk/view?usp=sharing\\\"],[7],[0,\\\"Guía de pruebas\\\"],[8],[0,\\\" (sólo para pruebas más avanzadas): incluye descripción del servicio desarrollado y cómo realizar las pruebas hacia el servidor de back-end utilizando \\\"],[6,\\\"a\\\"],[9,\\\"href\\\",\\\"https://www.getpostman.com/apps\\\"],[7],[0,\\\"POSTMAN\\\"],[8],[0,\\\" como cliente\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://www.getpostman.com/collections/43b363d3352d3b34f101\\\"],[9,\\\"download\\\",\\\"pruebas-a2server.json\\\"],[7],[0,\\\"Colección de POSTMAN\\\"],[8],[0,\\\": incluye ejemplos de las llamadas vía REST API que se pueden hacer a ToroBack para realizar pruebas avanzadas\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n  \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/\\\"],[7],[0,\\\"Documentación detallada\\\"],[8],[0,\\\" sobre cómo utilizar las REST API desde cliente o ampliar la funcionalidad de back-end en el servidor\\\"],[8],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"\\\\n\\\\n\\\\n\\\"],[1,[18,\\\"outlet\\\"],false]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/index/template.hbs\" } });\n});","define('a2s-test/initializers/app-version', ['exports', 'ember-cli-app-version/initializer-factory', 'a2s-test/config/environment'], function (exports, _initializerFactory, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  let name, version;\n  if (_environment.default.APP) {\n    name = _environment.default.APP.name;\n    version = _environment.default.APP.version;\n  }\n\n  exports.default = {\n    name: 'App Version',\n    initialize: (0, _initializerFactory.default)(name, version)\n  };\n});","define('a2s-test/initializers/application', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize(application) {\n    application.inject('route', 'application', 'service:application');\n    application.inject('controller', 'application', 'service:application');\n    application.inject('component', 'application', 'service:application');\n  }\n\n  exports.default = {\n    initialize\n  };\n});","define('a2s-test/initializers/container-debug-adapter', ['exports', 'ember-resolver/resolvers/classic/container-debug-adapter'], function (exports, _containerDebugAdapter) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'container-debug-adapter',\n\n    initialize() {\n      let app = arguments[1] || arguments[0];\n\n      app.register('container-debug-adapter:main', _containerDebugAdapter.default);\n      app.inject('container-debug-adapter:main', 'namespace', 'application:main');\n    }\n  };\n});","define('a2s-test/initializers/ember-concurrency', ['exports', 'ember-concurrency/initializers/ember-concurrency'], function (exports, _emberConcurrency) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberConcurrency.default;\n    }\n  });\n});","define('a2s-test/initializers/ember-data', ['exports', 'ember-data/setup-container', 'ember-data'], function (exports, _setupContainer) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'ember-data',\n    initialize: _setupContainer.default\n  };\n});","define('a2s-test/initializers/export-application-global', ['exports', 'a2s-test/config/environment'], function (exports, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize() {\n    var application = arguments[1] || arguments[0];\n    if (_environment.default.exportApplicationGlobal !== false) {\n      var theGlobal;\n      if (typeof window !== 'undefined') {\n        theGlobal = window;\n      } else if (typeof global !== 'undefined') {\n        theGlobal = global;\n      } else if (typeof self !== 'undefined') {\n        theGlobal = self;\n      } else {\n        // no reasonable global, just bail\n        return;\n      }\n\n      var value = _environment.default.exportApplicationGlobal;\n      var globalName;\n\n      if (typeof value === 'string') {\n        globalName = value;\n      } else {\n        globalName = Ember.String.classify(_environment.default.modulePrefix);\n      }\n\n      if (!theGlobal[globalName]) {\n        theGlobal[globalName] = application;\n\n        application.reopen({\n          willDestroy: function () {\n            this._super.apply(this, arguments);\n            delete theGlobal[globalName];\n          }\n        });\n      }\n    }\n  }\n\n  exports.default = {\n    name: 'export-application-global',\n\n    initialize: initialize\n  };\n});","define('a2s-test/initializers/initialize-torii-callback', ['exports', 'a2s-test/config/environment', 'torii/redirect-handler'], function (exports, _environment, _redirectHandler) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'torii-callback',\n    before: 'torii',\n    initialize(application) {\n      if (arguments[1]) {\n        // Ember < 2.1\n        application = arguments[1];\n      }\n      if (_environment.default.torii && _environment.default.torii.disableRedirectInitializer) {\n        return;\n      }\n      application.deferReadiness();\n      _redirectHandler.default.handle(window).catch(function () {\n        application.advanceReadiness();\n      });\n    }\n  };\n});","define('a2s-test/initializers/initialize-torii-session', ['exports', 'torii/bootstrap/session', 'torii/configuration'], function (exports, _session, _configuration) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'torii-session',\n    after: 'torii',\n\n    initialize(application) {\n      if (arguments[1]) {\n        // Ember < 2.1\n        application = arguments[1];\n      }\n      const configuration = (0, _configuration.getConfiguration)();\n      if (!configuration.sessionServiceName) {\n        return;\n      }\n\n      (0, _session.default)(application, configuration.sessionServiceName);\n\n      var sessionFactoryName = 'service:' + configuration.sessionServiceName;\n      application.inject('adapter', configuration.sessionServiceName, sessionFactoryName);\n    }\n  };\n});","define('a2s-test/initializers/initialize-torii', ['exports', 'torii/bootstrap/torii', 'torii/configuration', 'a2s-test/config/environment'], function (exports, _torii, _configuration, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  var initializer = {\n    name: 'torii',\n    initialize(application) {\n      if (arguments[1]) {\n        // Ember < 2.1\n        application = arguments[1];\n      }\n      (0, _configuration.configure)(_environment.default.torii || {});\n      (0, _torii.default)(application);\n      application.inject('route', 'torii', 'service:torii');\n    }\n  };\n\n  exports.default = initializer;\n});","define('a2s-test/initializers/load-bootstrap-config', ['exports', 'a2s-test/config/environment', 'ember-bootstrap/config'], function (exports, _environment, _config) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.initialize = initialize;\n  function initialize() /* container, application */{\n    _config.default.load(_environment.default['ember-bootstrap'] || {});\n  }\n\n  exports.default = {\n    name: 'load-bootstrap-config',\n    initialize\n  };\n});","define(\"a2s-test/instance-initializers/ember-data\", [\"exports\", \"ember-data/initialize-store-service\"], function (exports, _initializeStoreService) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: \"ember-data\",\n    initialize: _initializeStoreService.default\n  };\n});","define('a2s-test/instance-initializers/setup-routes', ['exports', 'torii/bootstrap/routing', 'torii/configuration', 'torii/compat/get-router-instance', 'torii/compat/get-router-lib', 'torii/router-dsl-ext'], function (exports, _routing, _configuration, _getRouterInstance, _getRouterLib) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'torii-setup-routes',\n    initialize(applicationInstance /*, registry */) {\n      const configuration = (0, _configuration.getConfiguration)();\n\n      if (!configuration.sessionServiceName) {\n        return;\n      }\n\n      let router = (0, _getRouterInstance.default)(applicationInstance);\n      var setupRoutes = function () {\n        let routerLib = (0, _getRouterLib.default)(router);\n        var authenticatedRoutes = routerLib.authenticatedRoutes;\n        var hasAuthenticatedRoutes = !Ember.isEmpty(authenticatedRoutes);\n        if (hasAuthenticatedRoutes) {\n          (0, _routing.default)(applicationInstance, authenticatedRoutes);\n        }\n        router.off('willTransition', setupRoutes);\n      };\n      router.on('willTransition', setupRoutes);\n    }\n  };\n});","define('a2s-test/instance-initializers/walk-providers', ['exports', 'torii/lib/container-utils', 'torii/configuration'], function (exports, _containerUtils, _configuration) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = {\n    name: 'torii-walk-providers',\n    initialize(applicationInstance) {\n      let configuration = (0, _configuration.getConfiguration)();\n      // Walk all configured providers and eagerly instantiate\n      // them. This gives providers with initialization side effects\n      // like facebook-connect a chance to load up assets.\n      for (var key in configuration.providers) {\n        if (configuration.providers.hasOwnProperty(key)) {\n          (0, _containerUtils.lookup)(applicationInstance, 'torii-provider:' + key);\n        }\n      }\n    }\n  };\n});","define('a2s-test/media-streaming/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    inVideo: \"\",\n    idJob: \"\",\n    android: true,\n    ios: true,\n    web: true,\n    sd: true,\n    hd: true,\n    outputs: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n      this.set(\"inVideo\", \"https://d2qguwbxlx1sbt.cloudfront.net/TextInMotion-VideoSample-576p.mp4\");\n      this.get('outputs').clear();\n    },\n    actions: {\n      onChange() {\n        this.get('messages').clear();\n      },\n      transformar(form) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"Transformar Vídeo\");\n\n        let targets = [];\n        if (form.android) targets.push('ANDROID');\n        if (form.ios) targets.push('IOS');\n        if (form.web) targets.push('WEB_MPEG_DASH');\n\n        let qualities = [];\n        if (form.sd) qualities.push('SD');\n        if (form.hd) qualities.push('HD');\n        if (form.fhd) qualities.push('FHD');\n        if (form.uhd) qualities.push('UHD');\n\n        this.get('application').req('POST', 'srv/multimedia/streaming', {}, {\n          \"input\": {\n            \"service\": \"url\",\n            \"path\": this.get('inVideo')\n          },\n          \"output\": {\n            \"service\": \"aws\",\n            \"container\": \"micontenedor\",\n            \"pathPrefix\": \"test-streaming/prueba-video-\" + Math.floor(Math.random() * 1000 + 1),\n            \"targets\": targets,\n            \"qualities\": qualities,\n            \"thumbnail\": true\n          }\n        }).then(resp => {\n          if (resp) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Proceso: ${resp.id} ${resp.status}` });\n            this.set('idJob', resp.id);\n            this.set(\"showJob\", false);\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al procesar` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      },\n      verificar() {\n        this.get('messages').clear();\n        this.set(\"showJob\", false);\n        this.set(\"application.textLog\", \"Verificar Video\");\n\n        //1539964340899-4rufk7\n        if (this.inVideo.length > 0) {\n          let url = `srv/multimedia/streaming/${this.get('idJob')}`;\n          this.get('application').req('GET', url, {}).then(resp => {\n            if (resp.status === \"processing\") {\n              this.set(\"showJob\", true);\n              this.set(\"statJob\", \"warning\");\n              this.set(\"titleJob\", \"Procesando Job\");\n              this.set(\"jobMessage\", \"Aún se está procesando el vídeo. Espera unos segundos y haz click nuevamente en el botón <strong>Verificar</strong>\");\n            } else {\n              this.set(\"showJob\", true);\n              this.set(\"statJob\", \"info\");\n              this.set(\"titleJob\", \"Job Procesado Correctamente\");\n              this.set(\"jobMessage\", \"La transformación fue un éxito. Ve al paso 3 para comprobar el resultado\");\n              let o = resp.outputs.map(ele => {\n                ele.playlist = `https://s3.eu-central-1.amazonaws.com/micontenedor/${ele.playlist}`;\n                return ele;\n              });\n              this.set(\"outputs\", o);\n            }\n          }).catch(() => {\n            this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n          });\n        }\n      }\n    }\n  });\n});","define('a2s-test/media-streaming/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/media-streaming/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"7GXDkvke\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"video\\\",\\\"form\\\",\\\"message\\\",\\\"form\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Media Streaming\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Este servicio permite transformar vídeos desde formatos comunes (como MP4, AVI, MOV) a formatos que pueden ser reproducidos en streaming, compatibles con clientes web, y con clientes móviles iOS y Android.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"La diferencia entre formatos como el MP4 y el formato streaming es que un vídeo MP4 debe ser descargado por completo antes de poder ser reproducido; en cambio, el formato streaming permite al cliente comenzar a reproducir el vídeo sin necesidad de haberlo descargado por completo.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"En esta prueba, se solicitará un \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"trabajo de transformación\\\\\\\" a streaming\\\"],[8],[0,\\\". Como dichas transformaciones pueden tomar unos pocos segundos o varios minutos, dependiendo del tamaño del vídeo original, A2 Server responde pronto con un \\\"],[6,\\\"strong\\\"],[7],[0,\\\"ID de trabajo\\\"],[8],[0,\\\", el cual se puede luego consultar para saber si ya se ha terminado de transformar el vídeo.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"onChange\\\"],[[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.-  Solicitud de transformación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Los vídeos que transformará A2 Server, no sólo se pueden subir desde el cliente (en este caso, tu ordenador), sino que pueden tomarse directamente desde un URL público que contenga un vídeo.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para esta prueba, el origen del vídeo a transformar será un URL. Se provee de un URL de ejemplo, pero puedes colocar cualquier otro URL que apunte a un vídeo en formato MP4, AVI, MOV... el cual se tranformará en formato streaming y se alojará en Google Cloud Storage.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Se pueden tomar otros URL de una página de vídeos de muestra como ésta:\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://standaloneinstaller.com/blog/big-list-of-sample-videos-for-testers-124.html\\\"],[7],[0,\\\"https://standaloneinstaller.com/blog/big-list-of-sample-videos-for-testers-124.html\\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"(Debes copiar el URL de descarga en vez de descargar el archivo).\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"transformar\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Escribe el URL de un vídeo (MP4, AVI, MOV...):\\\",\\\"URL del video a transformar\\\",\\\"inVideo\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"form-check-inline\\\"],[7],[0,\\\"\\\\n              Plataformas objetivo:\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Android\\\",\\\"android\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"iOS\\\",\\\"ios\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"Web\\\",\\\"web\\\"]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"form-check-inline\\\"],[7],[0,\\\"\\\\n              Calidad de vídeo:\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"SD\\\",\\\"sd\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"HD\\\",\\\"hd\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"FHD\\\",\\\"fhd\\\"]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,5,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"property\\\"],[\\\"checkbox\\\",\\\"UHD\\\",\\\"uhd\\\"]]],false],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Transformar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,6,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,6,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null]],\\\"parameters\\\":[5]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Verificación del estado del trabajo\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Como la transformación del vídeo puede tomar algo de tiempo, se debe verificar el estado del trabajo solicitado.\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Si verificas el trabajo y aún no está listo, espera unos segundos y verifícalo de nuevo.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"verificar\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,3,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"ID del trabajo solicitado (Job ID):\\\",\\\"ID del trabajo en proceso\\\",\\\"idJob\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Verificar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,4,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,4,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null]],\\\"parameters\\\":[3]},null],[4,\\\"a2/bd-callout\\\",null,[[\\\"title\\\",\\\"type\\\",\\\"show\\\"],[[20,[\\\"titleJob\\\"]],[20,[\\\"statJob\\\"]],[20,[\\\"showJob\\\"]]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[18,\\\"jobMessage\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Paso 3.- Reproducción de los vídeos resultantes\\\"]],{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"outputs\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Cada uno de los vídeos resultantes debe ser reproducido en su plataforma correspondiente: Android, iOS o Web.\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Copia el URL de la plataforma donde desees probar, y sigue las instrucciones de abajo para dicha plataforma.\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table  small\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Plataforma\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Url\\\"],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[8],[0,\\\"\\\\n                \\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"outputs\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"target\\\"]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"playlist\\\"]],false],[8],[0,\\\"\\\\n                    \\\"],[6,\\\"td\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"copy-button\\\",null,[[\\\"class\\\",\\\"clipboardText\\\",\\\"title\\\"],[\\\"btn btn-sm btn-outline-primary\\\",[19,2,[\\\"playlist\\\"]],\\\"copiar en el portapapeles\\\"]],{\\\"statements\\\":[[0,\\\"                        Copiar\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"                    \\\"],[8],[0,\\\"\\\\n                  \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"              \\\"],[8],[0,\\\"      \\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Plataforma iOS\\\"],[8],[0,\\\": \\\"],[6,\\\"i\\\"],[7],[0,\\\"(Prueba recomendada - fácil)\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"El URL de iOS debe ser abierto desde un navegador en un dispositivo iOS (iPhone o iPad). Háztelo llegar al móvil y pincha el enlace: se abrirá un navegador y reproducirá el vídeo.\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Plataforma Web\\\"],[8],[0,\\\": \\\"],[6,\\\"i\\\"],[7],[0,\\\"(Prueba recomendada - fácil)\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"El URL de Web debe ser abierto desde un reproductor de streaming en un navegador desde el ordenador. Para ello:\\\\n              \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"li\\\"],[7],[0,\\\"Copia el URL de la plataforma Web (WEB_MPEG_DASH)\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"li\\\"],[7],[0,\\\"Ingresa en: \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://reference.dashif.org/dash.js/v2.9.1/samples/dash-if-reference-player/index.html\\\"],[7],[0,\\\"dashif.org\\\"],[8],[0,\\\" (reproductor de streaming)\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"li\\\"],[7],[0,\\\"Pega el enlace en el campo \\\\\\\"Stream\\\\\\\"\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"li\\\"],[7],[0,\\\"Haz click en el botón \\\\\\\"Load\\\\\\\" para iniciar la reproducción\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"img\\\"],[9,\\\"src\\\",\\\"assets/images/9A.png\\\"],[9,\\\"alt\\\",\\\"Video Reproductor\\\"],[9,\\\"width\\\",\\\"100%\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Plataforma Android\\\"],[8],[0,\\\": \\\"],[6,\\\"i\\\"],[7],[0,\\\"(Más difícil de probar)\\\"],[8],[0,\\\"\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"El URL de Android debe ser abierto en un dispositivo Android (móvil o tablet) desde una aplicación que permita reproducir vídeos en streaming. Se puede descargar cualquier app desde el Google Play Store que permita reproducir vídeos en streaming (por ejemplo, VLC, XPlayer, etc.).\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"Al hacer la prueba, nota que el vídeo se comienza a reproducir de inmediato (por estar en formato streaming), sin tener que esperar a que se descargue el archivo completo (como sucedería si el formato fuese MP4).\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"a2/bd-callout\\\",null,[[\\\"title\\\",\\\"type\\\",\\\"show\\\"],[\\\"Aún no hay vídeos procesados\\\",\\\"danger\\\",true]],{\\\"statements\\\":[[0,\\\"              Verifica el estado del proceso en el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Paso 2\\\"],[8],[0,\\\" hasta que indique que está terminado.\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"4\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-multimedia_routes.html#Getstraminginfo__anchor\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Transformación de vídeos a formato streaming\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-multimedia.Multimedia.html#readJob__anchor\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Transformación de vídeos a formato streaming\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-storage.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Transformación de vídeos a formato streaming\\\"],[8],[0,\\\" (ir a sección \\\\\\\"Video streaming\\\\\\\")\\\"],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\\n\\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/media-streaming/template.hbs\" } });\n});","define('a2s-test/pubsub/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    logData: \"\",\n    model: \"\",\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      onChange() {\n        this.get('messages').clear();\n      },\n      subscribe() /*topic*/{\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"SUBSCRIBE\");\n        this.get('application').req('PUT', 'srv/pubsub', {}, { \"topic\": \"series\" }).then(resp => {\n          if (resp.resp === \"ok\") {\n            this.get('messages').pushObject({ type: \"success\", msg: `Se ha suscrito correctamente al tema \"series\"` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Error: ${resp.message}` });\n          }\n        });\n        // .then(data=>{\n        //   console.log(data);\n        // })\n        // .catch(err=>{\n        //   console.log(err);\n        // })\n\n        //PUT https://a2server.a2system.net:4541/api/v1/srv/pubsub\n      },\n      publish(message) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"PUBLISH\");\n        this.get('application').req('POST', 'srv/pubsub', {}, { \"topic\": \"series\", \"message\": message }).then(resp => {\n          if (resp.resp === \"ok\") {\n            this.get('messages').pushObject({ type: \"success\", msg: `Mensaje publicado correctamente: ${resp.resp}` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `Error: ${resp.message}` });\n          }\n        });\n      },\n      receive() {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"RECEIVE\");\n        this.get('application').req('GET', 'srv/pubsub', {}).then(resp => {\n          console.log(resp);\n          if (resp.messages.length === 0) {\n            this.get('messages').pushObject({ type: \"success\", msg: `No hay mensajes nuevos en este canal. Publica algún mensaje primero (en el Paso 2)` });\n          } else {\n            this.get('messages').pushObject({ type: \"success\", msg: `${resp.messages.length} mensajes recibidos.` });\n          }\n          this.set('model', resp.messages);\n        });\n        //GET \"https://a2server.a2system.net:4541/api/v1/srv/pubsub\"\n      }\n\n    }\n  });\n});","define('a2s-test/pubsub/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/pubsub/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"EVD10pz7\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"msg\\\",\\\"message\\\",\\\"form\\\",\\\"message\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[9,\\\"style\\\",\\\"padding-left: 15px;\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Publish / Subscribe ( Pub/Sub )\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Publish / Subscribe (más conocido como Pub/Sub) es un servicio que permite a los usuarios \\\"],[6,\\\"strong\\\"],[7],[0,\\\"suscribirse\\\"],[8],[0,\\\" (\\\\\\\"Subscribe\\\\\\\") a canales de mensajería (de acuerdo a algún tema de su interés), y recibir los mensajes que allí se pubiquen. El usuario también puede \\\"],[6,\\\"strong\\\"],[7],[0,\\\"publicar\\\"],[8],[0,\\\" (\\\\\\\"Publish\\\\\\\") sus mensajes en algún canal, y los demás usuarios suscritos a dicho canal recibirán sus mensajes.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Una vez que un mensaje es recibido por un usuario, dicho mensaje es marcado como \\\\\\\"leído\\\\\\\", y el usuario ya no lo vuelve a recibir. Es decir, es un servicio en el que los mensajes son eliminados una vez han sido recibidos por el destinatario.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Esta prueba consiste en suscribirse a un canal de mensajes, luego publicar en dicho canal, y luego recibir los mensajes que han sido publicados en ese mismo canal.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\",\\\"onChange\\\"],[\\\"1\\\",[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.- Suscribirse a un canal (Subscribe)\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Para este ejemplo, el usuario se suscribirá al canal con el tema \\\\\\\"series\\\\\\\".\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"onClick\\\"],[\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"subscribe\\\",\\\"series\\\"],null]]],{\\\"statements\\\":[[0,\\\"            Suscribirse\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,6,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,6,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Publicar mensaje (Publish)\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            En este paso, se publicará un mensaje en el canal con el tema \\\\\\\"series\\\\\\\".\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Se pueden publicar tantos mensajes distintos como se desee probar.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"publish\\\",[20,[\\\"message\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Mensaje\\\",\\\"Escribe un mensaje\\\",\\\"message\\\",true]]],false],[0,\\\"\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"error\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Publicar\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"publish\\\",[20,[\\\"message\\\"]]],null]]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,5,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,5,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null]],\\\"parameters\\\":[4]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Paso 3.- Recibir mensajes (Receive)\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Aquí se pueden solicitar los \\\"],[6,\\\"strong\\\"],[7],[0,\\\"mensajes no leídos\\\"],[8],[0,\\\" del canal \\\\\\\"series\\\\\\\".\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-button\\\",null,[[\\\"type\\\",\\\"onClick\\\"],[\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"receive\\\",\\\"series\\\"],null]]],{\\\"statements\\\":[[0,\\\"            Recibir\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,3,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,3,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Tema\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Mensaje\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"Fecha\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"topic\\\"]],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"message\\\"]],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"date\\\"]],false],[8],[0,\\\"\\\\n\\\"],[0,\\\"                \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"            \\\"],[8],[0,\\\"      \\\\n          \\\"],[8],[0,\\\"  \\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"4\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-pubsub_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Pub/Sub\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-pubsub.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Pub/Sub\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-pubsub.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Pub/Sub\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"   \\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/pubsub/template.hbs\" } });\n});","define('a2s-test/push/controller', ['exports', 'fetch'], function (exports, _fetch) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    email: \"tester2@a2system.net\", //\"javierarpa@gmail.com\",\n    title: \"Prueba Push\",\n    message: \"Mensaje de Push. Todo bien! 👍\",\n    messages: Ember.A(),\n    srv: \"https://service.tourme.com/api/v1/\",\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      push(form) {\n        let email = form.email.toLowerCase();\n        let title = form.title;\n        let message = form.message;\n        let app = this.get('application');\n\n        this.get('messages').clear();\n        app.setLog(\"PUSH Prueba\");\n        let url = `${this.get('srv')}col/users?email.login=${email}&fields=_id`;\n        app.addLog(`<br><br><strong>->TX:</strong> GET ${url}`);\n        (0, _fetch.default)(url).then(resp => resp.json()).then(resp => {\n          app.addLog(`<br><br><strong><-RX:</strong> ${JSON.stringify(resp, null, ' ')}`);\n          if (resp.users[0]) {\n            let id = resp.users[0]._id;\n            let url = `${this.get('srv')}col/devices?uid=${id}&sort=-lastLogin&limit=1`;\n            app.addLog(`<br><br><strong>->TX:</strong> GET ${url}`);\n            return (0, _fetch.default)(url).then(resp => resp.json());\n          } else {\n            this.get('messages').pushObject({ type: \"danger\", msg: `Usuario no registrado en la aplicación. Por favor realiza el Paso 1 o verifica la dirección de correo.` });\n          }\n        }).then(resp => {\n          if (resp) {\n            app.addLog(`<br><br><strong><-RX:</strong> ${JSON.stringify(resp, null, ' ')}`);\n            if (resp.devices && resp.devices.length) {\n              let token = resp.devices[0].push_token;\n              let platform = resp.devices[0].platform === 'android' ? 'google' : resp.devices[0].platform;\n              let client = resp.devices[0].appName;\n              let url = `${this.get('srv')}srv/push/send?service=${platform}&platform=${resp.devices[0].platform}&client=${client}`;\n              let bb = {\n                \"to\": token,\n                \"data\": {\n                  \"alert\": {\n                    \"title\": title,\n                    \"body\": message\n                  },\n                  \"payload\": {},\n                  \"certId\": \"production\"\n                }\n              };\n              app.addLog(`<br><br><strong>->TX:</strong> POST ${url} <br> ${JSON.stringify(bb, null, ' ')}`);\n\n              (0, _fetch.default)(url, {\n                method: 'POST',\n                headers: {\n                  'Accept': 'application/json',\n                  'Content-Type': 'application/json'\n                },\n                body: JSON.stringify(bb)\n              }).then(resp => resp.json()).then(resp => {\n                app.addLog(`<br><br><strong><-RX:</strong> ${JSON.stringify(resp, null, ' ')}`);\n                if (!resp.error) {\n                  this.get('messages').pushObject({ type: \"success\", msg: `¡Bien! Push Enviado` });\n                } else {\n                  this.get('messages').pushObject({ type: \"warning\", msg: `Error: ${resp.resp.error}` });\n                }\n              });\n            } else {\n              this.get('messages').pushObject({ type: \"danger\", msg: `Este Número no tiene dispositivo asociado` });\n            }\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n    }\n  });\n});","define('a2s-test/push/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/push/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"9qFAvynA\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Push Notifications\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Esta funcionalidad permite a los desarrolladores enviar notificaciones push a las aplicaciones cliente que desarrollen para iOS y Android.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Para poder hacer esta prueba, es necesario tener una aplicación en el móvil que reciba la notificación push. Se hará la prueba con una aplicación llamada \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"TourMe\\\\\\\"\\\"],[8],[0,\\\" que está publicada en las tiendas \\\"],[6,\\\"strong\\\"],[7],[0,\\\"App Store\\\"],[8],[0,\\\" y \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Google Play Store\\\"],[8],[0,\\\".\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\"],[\\\"1\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1: Descargar aplicación de pruebas\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Descarga la aplicación \\\"],[6,\\\"strong\\\"],[7],[0,\\\"\\\\\\\"TourMe\\\\\\\"\\\"],[8],[0,\\\" según el dispositivo en el que vayas a realizar la prueba:\\\"],[8],[0,\\\"     \\\\n        \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Google Play Store (Android)\\\"],[8],[0,\\\":\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://play.google.com/store/apps/details?id=com.tourme.tourist\\\"],[7],[0,\\\"https://play.google.com/store/apps/details?id=com.tourme.tourist\\\"],[8],[6,\\\"br\\\"],[7],[8],[0,\\\" \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"App Store (iOS)\\\"],[8],[0,\\\":\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://itunes.apple.com/app/tourme/id1332645977\\\"],[7],[0,\\\"https://itunes.apple.com/app/tourme/id1332645977\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2: Login y aceptación de permisos\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Hacer login con el siguiente usuario de pruebas:\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Usuario: \\\"],[8],[0,\\\"tester2@a2system.net\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Contraseña: \\\"],[8],[0,\\\"T12345\\\"],[6,\\\"br\\\"],[7],[8],[0,\\\" \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[6,\\\"p\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Importante: \\\"],[6,\\\"mark\\\"],[7],[0,\\\" aceptar el permiso de recepción de notificaciones push\\\"],[8],[8],[0,\\\" luego de hacer login.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Paso 3: Cerrar la aplicación\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Debes \\\"],[6,\\\"mark\\\"],[7],[0,\\\"cerrar la aplicación o enviarla a background\\\"],[8],[0,\\\" para poder ver la notificación push recibida.\\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Si no cierras la aplicación, la notificación será recibida por la aplicación y no será visible.\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"4\\\",\\\"Paso 4: Envío de Notificación Push\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"Ingresa el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"correo electrónico con el cual has hecho login\\\"],[8],[0,\\\" y haz click en \\\\\\\"Enviar notificación push\\\\\\\" para enviarte una notificación de pruebas.\\\"],[8],[0,\\\"     \\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"push\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"email\\\",\\\"Correo electrónico con el que se ha hecho login:\\\",\\\"Correo electrónico usado en el login\\\",\\\"email\\\",true,\\\"\\\"]]],false],[0,\\\"            \\\\n            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Título de la notificación:\\\",\\\"Título de la notificación\\\",\\\"title\\\",true]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Texto de la notificación:\\\",\\\"Texto de la notificación\\\",\\\"message\\\",true]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Enviar notificación\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,3,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,3,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null],[0,\\\"      \\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-push_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Push Notifications\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-push.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Push Notifications\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-push.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Push Notifications\\\"],[8],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/push/template.hbs\" } });\n});","define('a2s-test/resolver', ['exports', 'ember-resolver'], function (exports, _emberResolver) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = _emberResolver.default;\n});","define('a2s-test/router', ['exports', 'a2s-test/config/environment'], function (exports, _environment) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n\n  const Router = Ember.Router.extend({\n    location: _environment.default.locationType,\n    rootURL: _environment.default.rootURL\n  });\n\n  Router.map(function () {\n    this.route('usuarios', function () {\n      this.route('correo');\n      this.route('telefono');\n      this.route('facebook');\n      this.route('docs');\n    });\n    this.route('seguridad', function () {\n      this.route('acl');\n      this.route('restringido');\n    });\n    this.route('almacenamiento', function () {\n      this.route('validacion-ok');\n      this.route('validacion-fail');\n      this.route('hook-pre');\n      this.route('hook-post');\n      this.route('docs');\n    });\n    this.route('geolocalizacion', function () {\n      this.route('radio');\n      this.route('geopuntos');\n      this.route('geocercas');\n      this.route('docs');\n    });\n    this.route('pupsub');\n    this.route('pubsub');\n\n    this.route('usuario', function () {\n      this.route('correo');\n      this.route('telefono');\n    });\n    this.route('push');\n    this.route('almacenamiento-archivos');\n    this.route('almacenamiento-multimedia');\n    this.route('media-streaming');\n    this.route('social');\n    this.route('sms');\n    this.route('email');\n    this.route('api', function () {\n      this.route('create');\n      this.route('read');\n      this.route('update');\n      this.route('delete');\n      this.route('docs');\n    });\n    this.route('git');\n    this.route('estadistica');\n    this.route('server-side', function () {\n      this.route('post');\n      this.route('externo');\n    });\n  });\n\n  exports.default = Router;\n});","define('a2s-test/seguridad/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    model: Ember.A(),\n    items: [{\n      src: 'assets/images/2A.png',\n      w: '949',\n      h: '439',\n      pid: 'image-A',\n      txt: '&bullet; Desde el menú lateral, seleccionar <strong>\"Aplicaciones\"</strong> -> <strong>\"Editar\"</strong> (DemoApp)<br>&nbsp;'\n    }, {\n      src: 'assets/images/2B.png',\n      w: '1065',\n      h: '559',\n      pid: 'image-B',\n      iB: true,\n      txt: '&bullet; Seleccionar la pestaña <strong>\"ACL\"</strong> -> pestaña <strong>\"Colecciones\"</strong>.<br>&nbsp;'\n    }, {\n      src: 'assets/images/2C.png',\n      w: '840',\n      h: '897',\n      pid: 'image-C',\n      iB: true,\n      txt: `&bullet; Bajar hasta encontrar la colección <strong>\"emails\"</strong> (cerca del fondo), seleccionarla, y desmarcar la casilla <strong>\"authenticate\"</strong>\n           (que se refiere a lo que pueden hacer los usuarios autenticados).<br><mark><strong>Importante:</strong> Asegurarse de desmarcar \n           sólo la colección <strong>\"emails\"</strong> y no otra, pues se podría restringir el acceso al resto de las pruebas</mark><br>&nbsp;`\n    }, {\n      src: 'assets/images/2D.png',\n      w: '642',\n      h: '260',\n      pid: 'image-D',\n      iB: true,\n      txt: '&bullet; La colección \"emails\" debe quedar desmarcada, así:<br>&nbsp;'\n    }, {\n      src: 'assets/images/2E.png',\n      w: '840',\n      h: '344',\n      pid: 'image-E',\n      iB: true,\n      txt: '&bullet; Para finalizar, guardar los cambios:<br>&nbsp;'\n\n    }],\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      onChange() {\n        this.get('messages').clear();\n        this.get('model').clear();\n      },\n      read() {\n        this.clear();\n        this.set(\"application.textLog\", \"GET emails\");\n        this.get('application').req('GET', 'col/emails', {}).then(resp => {\n          if (resp.emails) {\n            this.get('messages').pushObject({ type: \"success\", msg: `¡Bien! Emails Recibidos` });\n\n            this.set(\"model\", resp.emails);\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `${resp.message}` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n    }\n  });\n});","define('a2s-test/seguridad/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/seguridad/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"Ldg9i+sA\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"email\\\",\\\"message\\\",\\\"photoswipe\\\",\\\"item\\\",\\\"index\\\",\\\"email\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Seguridad\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Para proveer de seguridad al servidor, A2 Server maneja \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Listas de Control de Acceso\\\"],[8],[0,\\\" (Access Control List, ACL) que permiten \\\"],[6,\\\"strong\\\"],[7],[0,\\\"autorizar o restringir las llamadas REST API\\\"],[8],[0,\\\" de acuerdo al estado de autenticación del usuario, y a su rol dentro del servicio.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Por ejemplo, cualquier usuario sin autenticarse (sin hacer login) podría llamar la REST API que permite registrar una cuenta nueva de usuario. Pero sólo los usuarios autenticados (registrados y que hayan hecho login) podrán hacer otras llamadas REST API que les permita usar el resto de los servicios (por ejemplo, leer datos de una colección de base de datos, o subir un archivo multimedia).\\\\n      A su vez, sólo los usuarios con el rol de \\\\\\\"Administradores\\\\\\\" podrán realizar llamadas REST API específicas de los servicios de administración de A2 Server.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Esta prueba consiste en realizar llamadas REST API sobre una colección de la base de datos. Primero, se hará la llamada mientras el ACL sí autoriza la lectura de esa colección. Posteriormente, se configurará el ACL para restringir la lectura y se realizará la misma llamada, confirmándose así la restricción de lectura sobre esa colección.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"onChange\\\"],[[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"1: REST API con acceso autorizado\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Se hará una llamada al REST API para leer información de la colección \\\\\\\"emails\\\\\\\". El ACL está permitiendo esta petición, por lo que la llamada estará autorizada y se recibirán los datos solicitados.\\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Pedir Emails\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"read\\\"],null]]]],false],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,8,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,8,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[8]},null],[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"id\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"email\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,7,[\\\"_id\\\"]],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,7,[\\\"email\\\"]],false],[8],[0,\\\"\\\\n\\\\n                \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[7]},null],[0,\\\"            \\\"],[8],[0,\\\"      \\\\n          \\\"],[8],[0,\\\"            \\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"2: Configuración de ACL\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            Para cambiar la configuración de ACL, se debe entrar en la Interfaz de Configuración de A2 Server \\\\n            (\\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2server.a2system.net\\\"],[7],[0,\\\"https://a2server.a2system.net\\\"],[8],[0,\\\") \\\\n            con las credenciales suministradas.\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"photo-swipe\\\",null,[[\\\"items\\\",\\\"history\\\"],[[20,[\\\"items\\\"]],false]],{\\\"statements\\\":[[4,\\\"each\\\",[[20,[\\\"items\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"if\\\",[[19,5,[\\\"txt\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[1,[19,5,[\\\"txt\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            \\\"],[6,\\\"img\\\"],[10,\\\"src\\\",[19,5,[\\\"src\\\"]],null],[9,\\\"width\\\",\\\"100%\\\"],[3,\\\"action\\\",[[19,0,[]],[19,4,[\\\"actions\\\",\\\"open\\\"]],[25,\\\"hash\\\",null,[[\\\"index\\\"],[[19,6,[]]]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5,6]},null]],\\\"parameters\\\":[4]},null],[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"Una vez lista la configuración del ACL, se puede seguir con el paso 3.\\\"],[8],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\" 3: REST API con acceso restringido\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Se hará la misma llamada REST API anterior pero, en esta ocación, no se permitirá la lectura de los emails porque el rol de autenticación de este usuario no lo tiene permitido.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Si el ACL ha sido correctamente configurado, se mostrará un error que indica que no está autorizado a realizar la llamada.\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Pedir Emails\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"read\\\"],null]]]],false],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,3,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,3,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\\n          \\\"],[6,\\\"table\\\"],[9,\\\"class\\\",\\\"table\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"thead\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"id\\\"],[8],[0,\\\"\\\\n                \\\"],[6,\\\"th\\\"],[9,\\\"scope\\\",\\\"col\\\"],[7],[0,\\\"email\\\"],[8],[0,\\\"\\\\n              \\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"tbody\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"model\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[6,\\\"tr\\\"],[7],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"_id\\\"]],false],[8],[0,\\\"\\\\n                  \\\"],[6,\\\"td\\\"],[7],[1,[19,2,[\\\"email\\\"]],false],[8],[0,\\\"\\\\n\\\\n                \\\"],[8],[0,\\\"        \\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"            \\\"],[8],[0,\\\"      \\\\n          \\\"],[8],[0,\\\"            \\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"4\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-acl.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Seguridad y ACL\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/seguridad/template.hbs\" } });\n});","define('a2s-test/server-side/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    messages: Ember.A(),\n    items: [{\n      src: 'assets/images/16A.png',\n      w: '886',\n      h: '366',\n      pid: 'image-A',\n      txt: '&bullet; Desde el menú lateral, seleccionar \"Aplicaciones\" -> \"Ver\" (DemoApp)<br>&nbsp;'\n    }, {\n      src: 'assets/images/16B.png',\n      w: '924',\n      h: '661',\n      pid: 'image-B',\n      iB: true,\n      txt: '&bullet; Luego, \"Colecciones\" -> \"Modelo\" (vehiculos)<br>&nbsp;'\n    }, {\n      src: 'assets/images/16C.png',\n      w: '710',\n      h: '696',\n      pid: 'image-C',\n      iB: true,\n      txt: `&bullet; Bajo la definición del modelo de base de datos se pueden ver 2 hooks sobre la colección \"vehículos\" de la base de datos:\n      <ul>\n       <li><strong>Hook Pre-Save</strong>: en este hook se modifica la propiedad \"detalles\" del documento, <strong>ANTES de que sea almacenado</strong> en la base de datos (tanto al crear el documento como al modificarlo).</li>\n       <li><strong>Hook Post-Delete</strong> (remove): en este hook se envía un email para notificar la eliminación de un documento, <strong>DESPUÉS de que el documento ha sido eliminado</strong> exitosamente.</li>\n      </ul>\n      <br>&nbsp;\n      `\n    }],\n    clear() {\n      this.get('messages').clear();\n    },\n    actions: {\n      probar(type, file) {\n        let app = this.get('application');\n        this.get('messages').clear();\n        app.setLog(\"<strong>Prueba Ejecución de Código</strong>\");\n\n        this.get('application').req('POST', 'col/geos/exec', {}, {\n          \"type\": type,\n          \"file\": file\n        }).then(resp => {\n          if (resp.stdout.length) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Respuesta ${resp.stdout}` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `${resp.stderr}` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n        });\n      }\n\n    }\n  });\n});","define('a2s-test/server-side/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/server-side/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"GY5tlz4P\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"message\\\",\\\"photoswipe\\\",\\\"item\\\",\\\"index\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Server-Side Logic \\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Esta funcionalidad permite a los desarrolladores agregar código fuente que se ejecute justo antes o justo después de solicitar acciones sobre la Base de Datos, acciones sobre los servicios (email, SMS, multimedia, etc.), o mandar a ejecutar ese código directamente mendiante un comando de REST API.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Esto le permite al desarrollador ejecutar una funcionalidad específica que él mismo hubiese agregado al servidor de A2 Server.\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-accordion\\\",null,null,{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1: Algunos ejemplos de PRE y POST Hooks\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"A continuación se muestran un par de ejemplos de código fuente hecho por el desarrollador que ha sido incorporado en A2 Server.\\\\n          Es código que puede ser agregado y editado por el desarrollados, y así ejecutar la funcionalidad que requiera en cada caso.\\\\n          Para verlo, es necesario entrar en la \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\" https://a2server.a2system.net\\\"],[7],[0,\\\"interfaz de configuración de A2 Server\\\"],[8],[0,\\\", con las credenciales suministradas.\\\\n        \\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"photo-swipe\\\",null,[[\\\"items\\\",\\\"history\\\"],[[20,[\\\"items\\\"]],false]],{\\\"statements\\\":[[4,\\\"each\\\",[[20,[\\\"items\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"if\\\",[[19,4,[\\\"txt\\\"]]],null,{\\\"statements\\\":[[6,\\\"p\\\"],[7],[8],[1,[19,4,[\\\"txt\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n            \\\"],[6,\\\"img\\\"],[10,\\\"src\\\",[19,4,[\\\"src\\\"]],null],[9,\\\"width\\\",\\\"100%\\\"],[3,\\\"action\\\",[[19,0,[]],[19,3,[\\\"actions\\\",\\\"open\\\"]],[25,\\\"hash\\\",null,[[\\\"index\\\"],[[19,5,[]]]]]]],[7],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4,5]},null]],\\\"parameters\\\":[3]},null],[0,\\\"        \\\\n        \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"Un desarrollador puede modificar este código fuente para ejecutar las funcionalidades que requiera su aplicación.\\\\n        Se dispone de hooks que se disparan antes (\\\\\\\"pre\\\\\\\" hooks) y después (\\\\\\\"post\\\\\\\" hooks) de cada una de las acciones que se pueden ejecutar sobre las colecciones de base de datos (CRUD: Create, Read, Update, Delete, de cada documento).\\\"],[8],[0,\\\"\\\\n       \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2: Ejemplos y pruebas de ejecución de código\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          También es posible crear \\\"],[6,\\\"strong\\\"],[7],[0,\\\"scripts y archivos ejecutables\\\"],[8],[0,\\\", y correrlos desde A2 Server.\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"En la ruta del repositorio en GitHub se pueden ver fácilmente algunos archivos que se han creado para las pruebas. Contienen código fuente muy sencillo, pero suficiente para mostrar la funcionalidad de ejecución de código en el servidor:\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://github.com/a2system/a2server-demo/tree/master/scripts\\\"],[7],[0,\\\"https://github.com/a2system/a2server-demo/tree/master/scripts\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            Prueba 1: Ejecución de código PHP \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\" \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Probar\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"probar\\\",\\\"php\\\",\\\"prueba1.php\\\"],null]]]],false],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            Prueba 2: Ejecución de código PHP (otro script) \\\"],[6,\\\"br\\\"],[7],[8],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Probar\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"probar\\\",\\\"php\\\",\\\"prueba2.php\\\"],null]]]],false],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            Prueba 3: Ejecución de código JavaScript \\\"],[6,\\\"br\\\"],[7],[8],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Probar\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"probar\\\",\\\"node\\\",\\\"prueba3.js\\\"],null]]]],false],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"li\\\"],[7],[0,\\\"\\\\n            Prueba 4: Ejecución de un comando en bash (listado de directorio) \\\"],[6,\\\"br\\\"],[7],[8],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"onClick\\\"],[\\\"Probar\\\",\\\"primary\\\",[25,\\\"action\\\",[[19,0,[]],\\\"probar\\\",\\\"bin\\\",\\\"ls -l\\\"],null]]]],false],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\\n        \\\"],[8],[0,\\\"\\\\n          \\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"     \\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\\n\\\\n\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/server-side/template.hbs\" } });\n});","define('a2s-test/services/ajax', ['exports', 'ember-ajax/services/ajax'], function (exports, _ajax) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _ajax.default;\n    }\n  });\n});","define('a2s-test/services/popup', ['exports', 'torii/services/popup'], function (exports, _popup) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _popup.default;\n    }\n  });\n});","define('a2s-test/services/torii-session', ['exports', 'torii/services/torii-session'], function (exports, _toriiSession) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _toriiSession.default;\n    }\n  });\n});","define('a2s-test/services/torii', ['exports', 'torii/services/torii'], function (exports, _torii) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _torii.default;\n    }\n  });\n});","define('a2s-test/sms/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n\n      this.set('number', \"\");\n      this.set('message', \"\");\n    },\n    actions: {\n      sendSMS(form) {\n        this.set('resMessage', null);\n        this.set('errMessage', null);\n        let self = this;\n        this.set(\"application.textLog\", \"Enviar SMS\");\n        let numero = '34' + form.get('number');\n        this.get('application').req('POST', 'srv/sms/send', {}, {\n          \"to\": numero,\n          \"msg\": form.message\n        }).then(resp => {\n          if (resp.status) {\n            self.set('resMessage', resp.msg);\n            self.set('errMessage', null);\n          } else {\n            self.set('resMessage', null);\n            self.set('errMessage', resp.message);\n          }\n        }).catch(err => {\n          self.set('resMessage', null);\n          self.set('errMessage', \"Error inesperado!, contacte al administrador\");\n        });\n      }\n    }\n  });\n});","define('a2s-test/sms/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/sms/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"fgGb6DCP\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[9,\\\"style\\\",\\\"padding-left: 15px;\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"SMS service\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      Este servicio permite hacer envíos de mensajes de texto SMS (Short Message Service) a un número de teléfono móvil en cualquier lugar del mundo.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"En este ejemplo para la prueba, se utiliza el prefijo telefónico de España (+34) para enviar mensajes a un móvil en este país.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Utiliza un móvil en el que puedas recibir SMS para verificar la prueba.\\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"sendSMS\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Destinatario\\\",\\\"Número de móvil. Ejemplo: 673123123\\\",\\\"number\\\",true,\\\"Escribe el número de teléfono móvil sin el prefijo +34. Ejemplo: 673123123\\\"]]],false],[0,\\\"\\\\n      \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Mensaje\\\",\\\"Mensaje\\\",\\\"message\\\",true,\\\"Máximo 160 caracteres y sin acentos\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"success\\\",[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"visible\\\"],[\\\"danger\\\",[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Enviar\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[6,\\\"p\\\"],[9,\\\"style\\\",\\\"color:grey\\\"],[7],[6,\\\"br\\\"],[7],[8],[0,\\\"* \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Nota:\\\"],[8],[0,\\\" en algunas ocasiones se han presentado retrasos en la recepción de los SMS, en espacial en la operadora Simyo. Si no recibes el SMS en unos pocos segundos, por favor inténtalo con un móvil de otra operadora.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[6,\\\"br\\\"],[7],[8],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,null,{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n          \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-sms-service_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para el Envío de SMS\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-sms-service.SMS.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para el Envío de SMS\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-sms.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Envío de SMS\\\"],[8],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/sms/template.hbs\" } });\n});","define('a2s-test/social/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    logData: \"\",\n    model: \"\",\n    hasFacebook: false,\n    userId: \"\",\n    accessToken: \"\",\n    pageToken: \"\",\n    torii: Ember.inject.service('torii'),\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n      this.set('twtMsg', \"\");\n      this.set('twtLnk', \"https://www.nationalgeographic.com.es/animales/elefantes\");\n      this.set('hasFacebook', false);\n      this.set('accessToken', '');\n      this.set('pageToken', '');\n    },\n    loginFb(auth) {\n      console.log('FaceBook Auth: ' + auth.userId);\n      console.log(auth.accessToken);\n      this.get(\"application\").addLog(`<br>AUTH a A2Server con Token de Facebook`);\n\n      this.get('application').req('POST', 'col/users/login', {}, {\n        \"user\": {\n          \"fb\": {\n            \"id\": auth.userId,\n            \"token\": auth.accessToken\n          }\n        },\n        \"type\": \"fb\"\n      }).then(resp => {\n        console.log(resp);\n        if (resp.user) {\n          this.get('messages').pushObject({ type: \"success\", msg: `${resp.user.name} Hizo Login en A2Server correctamente` });\n        } else {\n          this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al hacer login` });\n        }\n      }).catch(err => {\n        console.log(err);\n        this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n      });\n    },\n    actions: {\n      onChange() {},\n      twtPost(form) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"POST en Twitter\");\n        this.get('application').req('POST', 'srv/social/post?service=twitter', {}, {\n          \"token\": \"2558633478-4SjodcSfuZ8fiyDHlgsRe0k7vvZe2PgMnYFD0wj\",\n          \"tokenSecret\": \"XWf6g367B2UG2aGEFWvRcwb7EZNUA5CoGAf9PP9p2k0Z3\",\n          \"data\": {\n            \"message\": form.twtMsg,\n            \"link\": form.twtLnk\n          }\n        }).then(resp => {\n          if (resp.created_at) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Publicacion creada: ${resp.text}\n          <br><br>Ver al usuario <a target=\"_blank\" href=\"https://twitter.com/wesingyou\">@wesingyou en Twitter.</a>` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `¡Problemas al publicar! ${resp.message}` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `¡Error inesperado del servidor!` });\n        });\n      },\n      signInToComment() {\n\n        //var controller = this.controllerFor('post');\n        // The provider name is passed to `open`\n        this.get(\"application\").setLog(\"AUTH Facebook\");\n        this.get('torii').open('facebook-connect').then(authorization => {\n          this.get(\"application\").addLog(`<br><br><strong><-RX:</strong>${JSON.stringify(authorization, null, ' ')}`);\n\n          if (authorization.accessToken) {\n            this.set('accessToken', authorization.accessToken);\n            this.set('userId', authorization.userId);\n            this.set('hasFacebook', true);\n            this.get('messages').pushObject({ type: \"success\", msg: `Autenticado correctamente con Facebook` });\n\n            this.get(\"application\").addLog(\"GET Facebook Page Token\");\n\n            this.get('application').req('GET', `srv/social/pagetoken?service=facebook&page_id=311119459484572&access_token=${authorization.accessToken}`, {}).then(resp => {\n              if (resp.access_token) {\n                this.set('pageToken', resp.access_token);\n              } else {\n                this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al obtener autorización para publicar en la página` });\n              }\n            }).catch(err => {\n              this.get('messages').pushObject({ type: \"danger\", msg: `¡Problemas al hacer Login! ${err}` });\n            });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `NO SE HA Autenticado correctamente con Facebook` });\n          }\n        }).catch(err => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `¡Problemas al hacer Login! ${err}` });\n          console.log(\"mal\", err);\n        });\n        //this.send('signInToCommentRoute');\n      },\n      fbPost(form) {\n        this.get('messages').clear();\n        this.set(\"application.textLog\", \"POST en Facebook\");\n        this.get('application').req('POST', 'srv/social/post?service=facebook', {}, {\n          \"token\": this.get('pageToken'),\n\n          \"data\": {\n            \"message\": form.twtMsg,\n            \"link\": form.twtLnk\n          }\n        }).then(resp => {\n          if (resp.id) {\n            this.get('messages').pushObject({ type: \"success\", msg: `Publicacion creada!\n          <br><br>Entra de nuevo en <a target=\"_blank\" href=\"https://www.facebook.com/ToroBack-Testing-Page-311119459484572\">Pagina de prueba Toroback en Facebook</a> para actualizarla y ver la Publicación.` });\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `¡Problemas al publicar! ${resp.message}` });\n          }\n        }).catch(() => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `¡Error inesperado del servidor!` });\n        });\n      }\n    }\n  });\n});","define('a2s-test/social/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/social/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"ZB2G1KL0\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\",\\\"message\\\",\\\"form\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row content-wos\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Social Service\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Este servicio permite hacer \\\"],[6,\\\"strong\\\"],[7],[0,\\\"publicaciones en las redes sociales\\\"],[8],[0,\\\" (Facebook, Google+, Twitter o LinkedIn), a nombre de un usuario.\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"Se demostrará esta funcionalidad publicando en Twitter y Facebook.\\\"],[8],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\",\\\"onChange\\\"],[\\\"1\\\",[25,\\\"action\\\",[[19,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Publicar en Twitter\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"Para esta prueba, utilizará un usuario de pruebas de Twitter que ha sido configurado previamente en A2 Server. Se pueden ver sus publicaciones actuales aquí: \\\"],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://twitter.com/wesingyou\\\"],[7],[0,\\\"@wesingyou en Twitter.\\\"],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n          \\\"],[6,\\\"p\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"Escribe un texto para publicar un Tweet a nombre del usuario de pruebas.\\\"],[8],[0,\\\" Puedes compartir también un enlace, opcionalmente.\\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"twtPost\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Texto del mensaje\\\",\\\"Escribe un mensaje\\\",\\\"twtMsg\\\",true]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Enlace a compartir\\\",\\\"Enlace a compartir\\\",\\\"twtLnk\\\",false]]],false],[0,\\\"\\\\n\\\\n\\\\n            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Publicar en Twitter\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,5,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,5,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"          \\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Publicar en Facebook\\\"]],{\\\"statements\\\":[[4,\\\"if\\\",[[20,[\\\"hasFacebook\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              Se realizará una publicación en una página de pruebas:\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://www.facebook.com/ToroBack-Testing-Page-311119459484572\\\"],[7],[0,\\\"https://www.facebook.com/ToroBack-Testing-Page-311119459484572\\\"],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[9,\\\"style\\\",\\\"color:gray\\\"],[7],[0,\\\"\\\\n              Nota: El contenido de esta página de pruebas sólo se puede ver si estás conectado a Facebook con la cuenta de pruebas suministrada.\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Para realizar esta prueba, escribe un mensaje y opcionalmente un enlace para publicar en la página de pruebas, a nombre del usuario de pruebas:\\\\n            \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"fbPost\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Texto del mensaje\\\",\\\"Escribe un mensaje\\\",\\\"twtMsg\\\",true]]],false],[0,\\\"\\\\n              \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\"],[\\\"text\\\",\\\"Enlace a compartir\\\",\\\"Enlace a compartir\\\",\\\"twtLnk\\\",false]]],false],[0,\\\"\\\\n\\\\n\\\\n              \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Publicar en Facebook\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n              \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,3,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,3,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"            \\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              Para esta prueba, debes hacer login en Facebook con este usuario de pruebas:\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Usuario: \\\"],[8],[0,\\\"uno_zanhddw_user@tfbnw.net\\\\n              \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Contraseña: \\\"],[8],[0,\\\"usu4r10t3st3r\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[9,\\\"style\\\",\\\"color:gray\\\"],[7],[0,\\\"\\\\n              Nota: \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Asegúrate de usar este usuario\\\"],[8],[0,\\\" y no uno personal, pues sólo este usuario tiene acceso a la página de pruebas donde se realizará la publicación.\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"button\\\"],[9,\\\"type\\\",\\\"button\\\"],[9,\\\"class\\\",\\\"btn btn-primary\\\"],[10,\\\"onClick\\\",[25,\\\"action\\\",[[19,0,[]],\\\"signInToComment\\\"],null],null],[7],[0,\\\"Login con Facebook\\\"],[8],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Documentación\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n            \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n            \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-social_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Rutas REST API para Publicaciones en Redes Sociales\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-tb-social.Client.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno para Publicaciones en Redes Sociales\\\"],[8],[8],[8],[0,\\\"\\\\n              \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-tb-social.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Publicaciones en Redes Sociales\\\"],[8],[8],[8],[0,\\\"\\\\n            \\\"],[8],[0,\\\"\\\\n            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n          \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/social/template.hbs\" } });\n});","define('a2s-test/templates/components/ember-popper-targeting-parent', ['exports', 'ember-popper/templates/components/ember-popper-targeting-parent'], function (exports, _emberPopperTargetingParent) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});","define('a2s-test/templates/components/ember-popper', ['exports', 'ember-popper/templates/components/ember-popper'], function (exports, _emberPopper) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(exports, 'default', {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});","define(\"a2s-test/usuarios/correo/controller\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    resMessage: \"\",\n    errMessage: \"\",\n    resMessage1: \"\",\n    errMessage1: \"\",\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n      this.set('resMessage1', null);\n      this.set('errMessage1', null);\n\n      this.set('email', \"\");\n      this.set('clave', \"\");\n    },\n    actions: {\n      submit(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"Crear cuenta con Correo\");\n        this.get('application').req('POST', 'col/users', {}, {\n          \"user\": {\n            \"email\": {\n              \"login\": form.email,\n              \"password\": form.clave\n            }\n          }\n        }).then(resp => {\n          if (!resp.errors) {\n            self.set('resMessage', `Registro ${resp.users[0].name} creado`);\n            self.set('errMessage', null);\n          } else {\n            self.set('resMessage', null);\n            let msg = resp.errors[0].detail;\n            if (msg && msg.startsWith('E11000')) {\n              msg = '<strong> - Este usuario ya existe</strong><br>' + msg;\n            }\n            this.set('errMessage', msg);\n          }\n        }).catch(err => {\n          self.set('resMessage', null);\n          self.set('errMessage', \"Error Inesperado\");\n        });\n      },\n      login(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"Login con cuenta con Correo\");\n        this.get('application').req('POST', 'col/users/login', {}, {\n          \"user\": {\n            \"email\": {\n              \"login\": form.email,\n              \"password\": form.clave\n            }\n          },\n          \"type\": \"mail\"\n        }).then(resp => {\n          if (resp.user) {\n            self.set('resMessage1', `Login correcto, accessToken ${resp.accessToken} `);\n            self.set('errMessage1', null);\n          } else {\n            self.set('resMessage1', null);\n            this.set('errMessage1', resp.message);\n          }\n        }).catch(err => {\n          self.set('resMessage1', null);\n          self.set('errMessage1', \"Error Inesperado\");\n        });\n      }\n    }\n  });\n});","define('a2s-test/usuarios/correo/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/usuarios/correo/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"N5M56Hnw\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Manejo de Usuarios - Correo\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En esta prueba, se creará un usuario en A2 Server utilizando un \\\"],[6,\\\"strong\\\"],[7],[0,\\\"correo electrónico y una contraseña\\\"],[8],[0,\\\".\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Una vez que el usuario ha sido creado con éxito, la aplicación cliente puede proceder a hacer login (autenticarse) con el usuario ya creado.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\"],[\\\"1\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.- Creación de usuario con correo electrónico:\\\"]],{\\\"statements\\\":[[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,3,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"email\\\",\\\"Email\\\",\\\"Escribe un correo electrónico válido\\\",\\\"email\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,3,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"password\\\",\\\"Clave\\\",\\\"Clave de acceso\\\",\\\"clave\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"success\\\",false,[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"danger\\\",false,[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear Cuenta\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Login de usuario con correo electrónico:\\\"]],{\\\"statements\\\":[[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"login\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"email\\\",\\\"Login\\\",\\\"Escribe un correo electrónico válido\\\",\\\"email\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"password\\\",\\\"Clave\\\",\\\"Clave de acceso\\\",\\\"clave\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"success\\\",false,[20,[\\\"resMessage1\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage1\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"danger\\\",false,[20,[\\\"errMessage1\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage1\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Login\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n   \\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/correo/template.hbs\" } });\n});","define('a2s-test/usuarios/docs/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/usuarios/docs/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"6uCLJptv\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Documentación\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En la documentación se pueden conseguir más detalles sobre cómo utilizar el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" (para llamar desde una aplicación cliente) y el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"API interno\\\"],[8],[0,\\\" (para programar en JavaScript para modificar el código de su aplicación en A2 Server).\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"\\\\n      \\\"],[6,\\\"ul\\\"],[7],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/module-user_routes.html\\\"],[7],[0,\\\"Documentación sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Manejo de Usuarios\\\"],[8],[8],[8],[0,\\\"\\\\n        \\\"],[6,\\\"li\\\"],[7],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/tutorial-user_.html\\\"],[7],[0,\\\"Tutorial de ejemplo sobre \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Manejo de Usuarios\\\"],[8],[8],[8],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"p\\\"],[7],[0,\\\"Adicionalmente:\\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://a2server.a2system.net/doc/index.html\\\"],[7],[0,\\\"Documentación completa de ToroBack (A2 Server)\\\"],[8],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/docs/template.hbs\" } });\n});","define('a2s-test/usuarios/facebook/controller', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    hasFacebook: false,\n    userId: \"\",\n    accessToken: \"\",\n    torii: Ember.inject.service('torii'),\n    messages: Ember.A(),\n    clear() {\n      this.get('messages').clear();\n    },\n    loginFb(auth) {\n      console.log('FaceBook Auth: ' + auth.userId);\n      console.log(auth.accessToken);\n      this.get(\"application\").addLog(`<br>AUTH a A2Server con Token de Facebook`);\n\n      this.get('application').req('POST', 'col/users/login', {}, {\n        \"user\": {\n          \"fb\": {\n            \"id\": auth.userId,\n            \"token\": auth.accessToken\n          }\n        },\n        \"type\": \"fb\"\n      }).then(resp => {\n        console.log(resp);\n        if (resp.user) {\n          this.get('messages').pushObject({ type: \"success\", msg: `${resp.user.name} Hizo Login en A2Server correctamente` });\n        } else {\n          this.get('messages').pushObject({ type: \"warning\", msg: `Problemas al hacer login` });\n        }\n      }).catch(err => {\n        console.log(err);\n        this.get('messages').pushObject({ type: \"danger\", msg: `Problema Inesperado` });\n      });\n    },\n    actions: {\n      signInToComment() {\n\n        //var controller = this.controllerFor('post');\n        // The provider name is passed to `open`\n        this.get(\"application\").setLog(\"AUTH Facebook\");\n        this.get('torii').open('facebook-connect').then(authorization => {\n          this.get(\"application\").addLog(`<br><br><strong><-RX:</strong>${JSON.stringify(authorization, null, ' ')}`);\n\n          if (authorization.accessToken) {\n            this.set('accessToken', authorization.accessToken);\n            this.set('userId', authorization.userId);\n            this.set('hasFacebook', true);\n            this.get('messages').pushObject({ type: \"success\", msg: `Autenticado correctamente con Facebook` });\n            this.loginFb(authorization);\n          } else {\n            this.get('messages').pushObject({ type: \"warning\", msg: `NO SE HA Autenticado correctamente con Facebook` });\n          }\n        }).catch(err => {\n          this.get('messages').pushObject({ type: \"danger\", msg: `¡Problemas al hacer Login! ${err}` });\n          console.log(\"mal\", err);\n        });\n        //this.send('signInToCommentRoute');\n      }\n    }\n  });\n});","define('a2s-test/usuarios/facebook/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    },\n    actions: {\n      signInToCommentRoute: function () {\n        var controller = this.controllerFor('usuarios.facebook');\n        // The provider name is passed to `open`\n        this.get('torii').open('facebook-connect').then(function (authorization) {\n          // FB.api is now available. authorization contains the UID and\n          // accessToken.\n          controller.set('hasFacebook', true);\n        });\n      }\n    }\n  });\n});","define(\"a2s-test/usuarios/facebook/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"TNWh/XpH\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"message\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Manejo de Usuarios - Facebook\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En esta prueba, se creará un usuario en A2 Server utilizando una \\\"],[6,\\\"strong\\\"],[7],[0,\\\"cuenta del servicio Facebook\\\"],[8],[0,\\\".\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para ello, el usuario (en este caso, tú mismo) debe haber \\\"],[6,\\\"strong\\\"],[7],[0,\\\"iniciado sesión en Facebook desde el navegador\\\"],[8],[0,\\\". Ello permitirá a la aplicación cliente obtener un \\\\\\\"access token\\\\\\\" de Facebook que le servirá para registrar dicha cuenta de Facebook en A2 Server.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"El registro de la cuenta y el login (autenticación) se realizan en un sólo paso. El \\\\\\\"access token\\\\\\\" de Facebook recibido en el registro es suficiente para autenticarle.\\\\n    \\\"],[8],[0,\\\"\\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\"],[\\\"1\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.- Hacer Login en Facebook con Usuario de Pruebas\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          Se ha creado un usuario de pruebas de Facebook para facilitar las pruebas. Por favor, ingresa en el link mostrado e inicia sesión con el siguiente usuario:\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"a\\\"],[9,\\\"target\\\",\\\"_blank\\\"],[9,\\\"href\\\",\\\"https://www.facebook.com\\\"],[7],[0,\\\"https://www.facebook.com\\\"],[8],[0,\\\"\\\\n        \\\"],[8],[0,\\\"\\\\n        \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n          \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Usuario: \\\"],[8],[0,\\\"uno_zanhddw_user@tfbnw.net\\\\n          \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"strong\\\"],[7],[0,\\\"Contraseña: \\\"],[8],[0,\\\"usu4r10t3st3r\\\\n        \\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\\n\\\"],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Registro y login en A2 Server con la cuenta de Facebook\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[6,\\\"strong\\\"],[7],[0,\\\"IMPORTANTE:\\\"],[8],[0,\\\" Para probar esta funcionalidad, debes haber iniciado sesión en Facebook con el usuario de pruebas del Paso 1.\\\"],[8],[0,\\\"\\\\n          \\\\n\\\"],[4,\\\"if\\\",[[20,[\\\"hasFacebook\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"p\\\"],[7],[0,\\\"Ya está Autenticado con Facebook\\\"],[8],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[6,\\\"button\\\"],[9,\\\"type\\\",\\\"button\\\"],[9,\\\"class\\\",\\\"btn btn-primary\\\"],[10,\\\"onClick\\\",[25,\\\"action\\\",[[19,0,[]],\\\"signInToComment\\\"],null],null],[7],[0,\\\" Login con Facebook\\\"],[8],[0,\\\"   \\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"          \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"   \\\\n\\\"],[4,\\\"each\\\",[[20,[\\\"messages\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\"],[[19,2,[\\\"type\\\"]],true]],{\\\"statements\\\":[[1,[19,2,[\\\"msg\\\"]],true]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/facebook/template.hbs\" } });\n});","define('a2s-test/usuarios/index/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/usuarios/index/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"D2HLpZ7u\", \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Manejo de Usuarios\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Los desarrolladores de aplicaciones cliente (ya sea aplicaciones Web, móviles, etc.) pueden enfocarse en el desarrollo de su aplicación (\\\\\\\"front-end\\\\\\\"), mientras que A2 Server se encarga del manejo de la creación de usuarios y autenticación a nivel de servidor (\\\\\\\"back-end\\\\\\\").\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Así, los desarrolladores sólo deben hacer una llamada al \\\"],[6,\\\"strong\\\"],[7],[0,\\\"REST API\\\"],[8],[0,\\\" de A2 Server para crear un usuario, y otra llamada para hacer login (autenticarse) con dicho usuario.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"Al autenticarse con un usuario, A2 Server permitirá a la aplicación cliente realizar otras llamadas al REST API que sólo están permitidas para usuarios autenticados.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"A2 Server permite el registro de usuarios utilizando un correo electrónico, a través de su número de teléfono móvil, o a través de redes sociales como Facebook, Twitter, y Google+.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Para esta funcionalidad, se harán las pruebas de registro y login con correo electrónico, con número de móvil, y con la red social Facebook.\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/index/template.hbs\" } });\n});","define('a2s-test/usuarios/route', ['exports', 'fetch'], function (exports, _fetch) {\n    'use strict';\n\n    Object.defineProperty(exports, \"__esModule\", {\n        value: true\n    });\n    exports.default = Ember.Route.extend({});\n});","define(\"a2s-test/usuarios/telefono/controller\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Controller.extend({\n    resMessage: \"\",\n    errMessage: \"\",\n    resMessage1: \"\",\n    errMessage1: \"\",\n    password: \"\",\n    clear() {\n      this.set('resMessage', null);\n      this.set('errMessage', null);\n      this.set('resMessage1', null);\n      this.set('errMessage1', null);\n      this.set('resMessage2', null);\n      this.set('errMessage2', null);\n\n      this.set('phone', \"\");\n      this.set('code', \"\");\n      this.set('password', \"\");\n    },\n    actions: {\n      submit(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"Crear cuenta con Teléfono\");\n        this.get('application').req('POST', 'col/users', {}, {\n          \"user\": {\n            \"tel\": {\n              \"id\": form.phone\n            }\n          }\n        }).then(resp => {\n          if (!resp.errors) {\n            self.set('resMessage', `Registro ${resp.users[0].tel.id} creado`);\n            self.set('errMessage', null);\n          } else {\n            self.set('resMessage', null);\n            let msg = resp.errors[0].detail;\n            if (msg && msg.startsWith('E11000')) {\n              msg = '<strong> - Este usuario ya existe</strong><br>' + msg;\n            }\n            this.set('errMessage', msg);\n          }\n        }).catch(err => {\n          self.set('resMessage', null);\n          self.set('errMessage', \"Error Inesperado\");\n        });\n      },\n      login(form) {\n        let self = this;\n        let password = form.password.trim();\n        this.set(\"application.textLog\", \"Login con cuenta con Correo\");\n        this.get('application').req('POST', 'col/users/login', {}, {\n          \"user\": {\n            \"tel\": {\n              \"id\": form.phone\n            },\n            \"systemPassword\": password\n          },\n          \"device\": {},\n          \"type\": \"tel\"\n        }).then(resp => {\n          if (resp.user) {\n            self.set('resMessage2', `Login correcto, accessToken ${resp.accessToken} `);\n            self.set('errMessage2', null);\n          } else {\n            self.set('resMessage2', null);\n            this.set('errMessage2', resp.message);\n          }\n        }).catch(err => {\n          self.set('resMessage2', null);\n          self.set('errMessage2', \"Error Inesperado\");\n        });\n      },\n      confirm(form) {\n        let self = this;\n        this.set(\"application.textLog\", \"Login con cuenta con Correo\");\n        this.get('application').req('POST', 'col/users/confirm', {}, {\n          \"code\": form.code,\n          \"tel\": form.phone,\n          \"type\": \"tel\"\n        }).then(resp => {\n          if (resp.user) {\n            self.set(\"password\", resp.systemPassword);\n            self.set('resMessage1', `Login correcto, Contraseña Temporal: ${resp.systemPassword} (se usará en el paso 3)`);\n            self.set('errMessage1', null);\n          } else {\n            self.set('resMessage1', null);\n            this.set('errMessage1', resp.message);\n          }\n        }).catch(err => {\n          self.set('resMessage1', null);\n          self.set('errMessage1', \"Error Inesperado\");\n        });\n      }\n    }\n  });\n});","define('a2s-test/usuarios/telefono/route', ['exports'], function (exports) {\n  'use strict';\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.Route.extend({\n    setupController: function (controller, model) {\n      this._super(controller, model);\n      controller.clear();\n    }\n  });\n});","define(\"a2s-test/usuarios/telefono/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"VwJu/oHe\", \"block\": \"{\\\"symbols\\\":[\\\"acc\\\",\\\"form\\\",\\\"form\\\",\\\"form\\\"],\\\"statements\\\":[[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row\\\"],[7],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[8],[0,\\\"\\\\n    \\\"],[6,\\\"h4\\\"],[7],[0,\\\"Manejo de Usuarios - Número de Teléfono Móvil\\\"],[8],[0,\\\"\\\\n    \\\"],[6,\\\"p\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[0,\\\"En esta prueba, se creará un usuario en A2 Server utilizando el \\\"],[6,\\\"strong\\\"],[7],[0,\\\"número de teléfono móvil\\\"],[8],[0,\\\" del usuario. La intención de este caso es registrar usuarios fácilmente cuando están utilizando un cliente desde su móvil (aplicación móvil, por ejemplo), confirmando su identidad a través de su número de teléfono.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"El usuario recibirá un \\\"],[6,\\\"strong\\\"],[7],[0,\\\"SMS con un código de verificación\\\"],[8],[0,\\\" para asegurar que dicho número de teléfono le pertenece.\\\\n      \\\"],[6,\\\"br\\\"],[7],[8],[6,\\\"br\\\"],[7],[8],[0,\\\"Una vez validado el código, la aplicación cliente puede proceder a hacer login (autenticarse) con el usuario ya creado y la contraseña temporal que recibe luego validar el código SMS.\\\\n    \\\"],[8],[0,\\\" \\\\n\\\"],[4,\\\"bs-accordion\\\",null,[[\\\"selected\\\"],[\\\"1\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"1\\\",\\\"Paso 1.- Creación de usuario con número de teléfono móvil:\\\"]],{\\\"statements\\\":[[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"submit\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,4,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"number\\\",\\\"Número de Teléfono Móvil\\\",\\\"Escribe tu número de teléfono\\\",\\\"phone\\\",true,\\\"Escribe el teléfono en formato internacional sin el +. Ejm: 34678555444\\\"]]],false],[0,\\\"\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"success\\\",false,[20,[\\\"resMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"danger\\\",false,[20,[\\\"errMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage\\\"],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Crear Cuenta\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"2\\\",\\\"Paso 2.- Validación del código recibido por SMS:\\\"]],{\\\"statements\\\":[[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"confirm\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,3,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"number\\\",\\\"Número de Teléfono\\\",\\\"Escribe tu número de teléfono\\\",\\\"phone\\\",true,\\\"Escriba el teléfono en formato internacional sin el +. ej: 34678555444\\\"]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,3,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Código\\\",\\\"Código recibido por SMS\\\",\\\"code\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"success\\\",false,[20,[\\\"resMessage1\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage1\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"danger\\\",false,[20,[\\\"errMessage1\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage1\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Validar Código\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],[[\\\"value\\\",\\\"title\\\"],[\\\"3\\\",\\\"Paso 3.- Login con la contraseña recibida en el paso 2:\\\"]],{\\\"statements\\\":[[4,\\\"bs-form\\\",null,[[\\\"formLayout\\\",\\\"model\\\",\\\"onSubmit\\\"],[[20,[\\\"formLayout\\\"]],[19,0,[]],[25,\\\"action\\\",[[19,0,[]],\\\"login\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"number\\\",\\\"Número de Teléfono\\\",\\\"Escribe tu número de teléfono\\\",\\\"phone\\\",true,\\\"Escriba el teléfono en formato internacional sin el +. ej: 34666555444\\\"]]],false],[0,\\\"\\\\n            \\\"],[1,[25,\\\"component\\\",[[19,2,[\\\"element\\\"]]],[[\\\"controlType\\\",\\\"label\\\",\\\"placeholder\\\",\\\"property\\\",\\\"required\\\",\\\"helpText\\\"],[\\\"text\\\",\\\"Contraseña\\\",\\\"Contraseña recibida en el paso 2\\\",\\\"password\\\",true,\\\"\\\"]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"success\\\",false,[20,[\\\"resMessage2\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"¡Bien!\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"resMessage2\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"bs-alert\\\",null,[[\\\"type\\\",\\\"dismissible\\\",\\\"visible\\\"],[\\\"danger\\\",false,[20,[\\\"errMessage2\\\"]]]],{\\\"statements\\\":[[0,\\\"              \\\"],[6,\\\"strong\\\"],[7],[0,\\\"Error\\\"],[8],[0,\\\" \\\"],[1,[18,\\\"errMessage2\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[1,[25,\\\"bs-button\\\",null,[[\\\"defaultText\\\",\\\"type\\\",\\\"buttonType\\\"],[\\\"Login\\\",\\\"primary\\\",\\\"submit\\\"]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n   \\\\n  \\\"],[8],[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-6\\\"],[7],[0,\\\"\\\\n    \\\"],[1,[18,\\\"show-log\\\"],false],[0,\\\"\\\\n  \\\"],[8],[0,\\\"\\\\n\\\"],[8],[0,\\\"  \\\"]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/telefono/template.hbs\" } });\n});","define(\"a2s-test/usuarios/template\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n  exports.default = Ember.HTMLBars.template({ \"id\": \"9leLks4I\", \"block\": \"{\\\"symbols\\\":[\\\"nav\\\"],\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"container-fluid h-100\\\"],[7],[0,\\\"\\\\n    \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"row h-100\\\"],[7],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-2 submenu h-100\\\"],[7],[0,\\\"\\\\n\\\"],[4,\\\"bs-nav\\\",null,[[\\\"class\\\",\\\"type\\\"],[\\\"nav nav-pills flex-column \\\",\\\"tabs\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"usuarios.index\\\"],null,{\\\"statements\\\":[[0,\\\"Información\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"usuarios.correo\\\"],null,{\\\"statements\\\":[[0,\\\"Cuenta de Correo\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"usuarios.telefono\\\"],null,{\\\"statements\\\":[[0,\\\"Número de Teléfono\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"usuarios.facebook\\\"],null,{\\\"statements\\\":[[0,\\\"Cuenta de Facebook\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"component\\\",[[19,1,[\\\"item\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[4,\\\"component\\\",[[19,1,[\\\"link-to\\\"]],\\\"usuarios.docs\\\"],null,{\\\"statements\\\":[[0,\\\"Documentación\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"      \\\"],[8],[0,\\\"\\\\n      \\\"],[6,\\\"div\\\"],[9,\\\"class\\\",\\\"col-10\\\"],[7],[0,\\\"\\\\n        \\\"],[1,[18,\\\"outlet\\\"],false],[0,\\\"\\\\n      \\\"],[8],[0,\\\"\\\\n    \\\"],[8],[0,\\\"\\\\n  \\\"],[8]],\\\"hasEval\\\":false}\", \"meta\": { \"moduleName\": \"a2s-test/usuarios/template.hbs\" } });\n});","\n","define('a2s-test/config/environment', [], function() {\n  var prefix = 'a2s-test';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(unescape(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","if (!runningTests) {\n  require(\"a2s-test/app\")[\"default\"].create({\"name\":\"a2s-test\",\"version\":\"0.0.0+4f7d168e\"});\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;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;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;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;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;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;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;","file":"a2s-test.js"}