diff --git a/application/controllers/ComponenteCurricularController.php b/application/controllers/ComponenteCurricularController.php
index 360f713..407f67e 100755
--- a/application/controllers/ComponenteCurricularController.php
+++ b/application/controllers/ComponenteCurricularController.php
@@ -110,7 +110,7 @@ public function findByCodPpc($codPpc)
}
/**
- * @api {get} componentes-curriculares/:codCompCurric Solicitar uma componente curricular
+ * @api {get} componentes-curriculares/:codCompCurric Listar dados de uma componente curricular
* @apiName findByCodCompCurric
* @apiGroup Componente Curricular
*
@@ -156,7 +156,7 @@ public function findByCodCompCurric($codCompCurric)
}
/**
- * @api {get} componentes-curriculares/tipos Solicitar tipos definidos de componente curricular
+ * @api {get} componentes-curriculares/tipos Listar tipos definidos de componente curricular
* @apiName findTipos
* @apiGroup Componente Curricular
*
@@ -375,7 +375,7 @@ public function update($codCompCurric)
}
/**
- * @api {delete} componentes-curriculares/:codCompCurric Deletar Componente Curricular
+ * @api {delete} componentes-curriculares/:codCompCurric Excluir Componente Curricular
* @apiName delete
* @apiGroup Componente Curricular
*
diff --git a/application/controllers/CorrespondenciaController.php b/application/controllers/CorrespondenciaController.php
index 9170c08..8acd72d 100755
--- a/application/controllers/CorrespondenciaController.php
+++ b/application/controllers/CorrespondenciaController.php
@@ -278,7 +278,7 @@ public function update($codCompCurric, $codCompCorresp)
}
/**
- * @api {delete} correspondencias/:codCompCurric/:codCompCorresp Deletar Correspondência
+ * @api {delete} correspondencias/:codCompCurric/:codCompCorresp Excluir Correspondência
* @apiName delete
* @apiGroup Correspondência
*
diff --git a/application/controllers/CursoController.php b/application/controllers/CursoController.php
index 6771a79..80f7969 100755
--- a/application/controllers/CursoController.php
+++ b/application/controllers/CursoController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} cursos Solicitar todos Cursos registrados.
+ * @api {get} cursos Listar todos Cursos registrados.
* @apiName findAll
* @apiGroup Curso
* @apiPermission ADMINISTRATOR
@@ -46,7 +46,7 @@ public function findAll()
}
/**
- * @api {get} cursos/:codCurso Solicitar dados de um Curso.
+ * @api {get} cursos/:codCurso Listar dados de um Curso.
* @apiName findById
* @apiGroup Curso
*
diff --git a/application/controllers/DepartamentoController.php b/application/controllers/DepartamentoController.php
index 35d7d86..e37db07 100755
--- a/application/controllers/DepartamentoController.php
+++ b/application/controllers/DepartamentoController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} departamentos Solicitar dados de todos Departamentos.
+ * @api {get} departamentos Listar dados de todos Departamentos.
* @apiName findAll
* @apiGroup Departamento
* @apiPermission ADMINISTRATOR
@@ -44,7 +44,7 @@ public function findAll()
}
/**
- * @api {get} departamentos/:codDepto Solicitar dados de um Departamento específico.
+ * @api {get} departamentos/:codDepto Listar dados de um Departamento específico.
* @apiName findById
* @apiGroup Departamento
* @apiPermission ADMINISTRATOR
@@ -141,7 +141,7 @@ public function create()
}
/**
- * @api {put} departamentos/:codDepto Atualizar dados de um Departamento.
+ * @api {put} departamentos/:codDepto Listar dados de um Departamento.
* @apiName update
* @apiGroup Departamento
* @apiPermission ADMINISTRATOR
diff --git a/application/controllers/DependenciaController.php b/application/controllers/DependenciaController.php
index 401dc1f..26655e4 100755
--- a/application/controllers/DependenciaController.php
+++ b/application/controllers/DependenciaController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {GET} dependencias Solicitar todas dependências existentes entre componentes curriculares.
+ * @api {GET} dependencias Listar todas dependências existentes entre componentes curriculares.
*
* @apiName findAll
* @apiGroup Dependência
@@ -45,7 +45,7 @@ public function findAll()
}
/**
- * @api {GET} dependencias/:codCompCurric/:codPreReq Solicitar dependências entre componentes curriculares.
+ * @api {GET} dependencias/:codCompCurric/:codPreReq Listar dependências entre componentes curriculares.
* @apiParam (URL) {Number} codCompCurric Código de identificação de uma componente curricular.
* @apiParam (URL) {Number} codPreReq Código de identificação de uma componente curricular que é pré-requisito.
*
@@ -89,7 +89,7 @@ public function findById($codCompCurric, $codPreRequisito)
/**
- * @api {GET} projetos-pedagogicos-curso/:codPpc/dependencias Solicitar todas dependências entre componentes as curriculares de um Projeto Pedagógico de Curso.
+ * @api {GET} projetos-pedagogicos-curso/:codPpc/dependencias Listar todas dependências entre componentes as curriculares de um Projeto Pedagógico de Curso.
* @apiParam (URL) {Number} codPpc Código identificador de um projeto pedagógico de curso.
* @apiParam (URL) {bool} allowEmpty Parâmetro que informa se o método deve retornar um array de Depêndencias vazio.
* @apiParam (URL) {bool} senseConnection Parâmetro que informa se o método deve retornar uma string de sentido da dependencia concatenada ao seu respectivo código.
@@ -303,7 +303,7 @@ public function update($codCompCurric, $codPreRequisito)
}
/**
- * @api {DELETE} dependencias/:codCompCurric/:codPreReq Deletar dependência entre componentes curriculares.
+ * @api {DELETE} dependencias/:codCompCurric/:codPreReq Excluir dependência entre componentes curriculares.
* @apiParam (URL) {Number} codCompCurric Código de identificação de uma componente curricular.
* @apiParam (URL) {Number} codPreReq Código de identificação de uma componente curricular que é pré-requisito.
*
diff --git a/application/controllers/DisciplinaController.php b/application/controllers/DisciplinaController.php
index 17271e2..55ad899 100755
--- a/application/controllers/DisciplinaController.php
+++ b/application/controllers/DisciplinaController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} disciplinas Solicitar dados de todas as disciplinas
+ * @api {get} disciplinas Listar dados de todas as disciplinas
* @apiName findAll
* @apiGroup Disciplina
*
@@ -46,7 +46,7 @@ public function findAll()
}
/**
- * @api {get} disciplinas/:codDepto/:numDisciplina Solicitar dados de uma disciplina
+ * @api {get} disciplinas/:codDepto/:numDisciplina Listar dados de uma disciplina
* @apiName findById
* @apiGroup Disciplina
*
diff --git a/application/controllers/InstituicaoEnsinoSuperiorController.php b/application/controllers/InstituicaoEnsinoSuperiorController.php
index db4cca6..90f7a76 100755
--- a/application/controllers/InstituicaoEnsinoSuperiorController.php
+++ b/application/controllers/InstituicaoEnsinoSuperiorController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} instituicoes-ensino-superior Solicitar dados de todas Instituições de Ensino Superior.
+ * @api {get} instituicoes-ensino-superior Listar dados de todas Instituições de Ensino Superior.
* @apiName findAll
* @apiGroup Instituição de Ensino Superior
* @apiPermission ADMINISTRATOR
@@ -43,7 +43,7 @@ public function findAll()
}
/**
- * @api {get} instituicoes-ensino-superior/:codIes Solicitar dados de uma Instituição de Ensino Superior.
+ * @api {get} instituicoes-ensino-superior/:codIes Listar dados de uma Instituição de Ensino Superior.
* @apiName findById
* @apiGroup Instituição de Ensino Superior
* @apiPermission ADMINISTRATOR
diff --git a/application/controllers/ProjetoPedagogicoCursoController.php b/application/controllers/ProjetoPedagogicoCursoController.php
index 2922928..9d9e568 100755
--- a/application/controllers/ProjetoPedagogicoCursoController.php
+++ b/application/controllers/ProjetoPedagogicoCursoController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {GET} projetos-pedagogicos-curso Solicitar todos Projetos Pedagógicos de Curso.
+ * @api {GET} projetos-pedagogicos-curso Listar todos Projetos Pedagógicos de Curso.
*
* @apiName findAll
* @apiGroup Projeto Pedagógico Curso
@@ -44,7 +44,7 @@ public function findAll()
}
/**
- * @api {GET} projetos-pedagogicos-curso/:codPpc Solicitar Projeto Pedagógico de Curso.
+ * @api {GET} projetos-pedagogicos-curso/:codPpc Listar Projeto Pedagógico de Curso.
* @apiParam (URL) {Number} codPpc Código de identificação de um Projeto Pedagógico de Curso.
*
* @apiName findById
@@ -93,7 +93,7 @@ public function findById($codPpc)
}
/**
- * @api {get} cursos/:codCurso/projetos-pedagogicos-curso Requisitar todos Projetos Pedagógicos de Curso de um Curso.
+ * @api {get} cursos/:codCurso/projetos-pedagogicos-curso Listar todos Projetos Pedagógicos de Curso de um Curso.
* @apiParam {Number} codCurso Código de identificação de um Curso.
*
* @apiName findByCodCurso
@@ -377,7 +377,7 @@ public function update($codPpc)
}
/**
- * @api {DELETE} projetos-pedagogicos-curso/:codPpc Deletar Projeto Pedagógico de Curso.
+ * @api {DELETE} projetos-pedagogicos-curso/:codPpc Excluir Projeto Pedagógico de Curso.
* @apiParam (URL) {Number} codPpc Código de identificação de um Projeto Pedagógico de Curso.
*
* @apiName delete
diff --git a/application/controllers/TransicaoController.php b/application/controllers/TransicaoController.php
index 2d3876e..ad9a360 100755
--- a/application/controllers/TransicaoController.php
+++ b/application/controllers/TransicaoController.php
@@ -265,7 +265,7 @@ public function update($codPpcAtual, $codPpcAlvo)
}
/**
- * @api {delete} transicoes/:codPpcAtual/:codPpcAlvo Deletar Componente Curricular
+ * @api {delete} transicoes/:codPpcAtual/:codPpcAlvo Excluir Componente Curricular
* @apiName delete
* @apiGroup Transição
*
diff --git a/application/controllers/UnidadeEnsinoController.php b/application/controllers/UnidadeEnsinoController.php
index 46603cd..b2db88b 100755
--- a/application/controllers/UnidadeEnsinoController.php
+++ b/application/controllers/UnidadeEnsinoController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} unidades-ensino Solicitar dados de todas as unidades de ensino
+ * @api {get} unidades-ensino Listar dados de todas as unidades de ensino
* @apiName findAll
* @apiGroup Unidade de Ensino
*
@@ -75,7 +75,7 @@ public function findAll()
}
/**
- * @api {get} unidades-ensino/:codUnidadeEnsino Solicitar dados de uma unidade de ensino
+ * @api {get} unidades-ensino/:codUnidadeEnsino Listar dados de uma unidade de ensino
* @apiName findById
* @apiGroup Unidade de Ensino
*
diff --git a/application/controllers/UsuarioController.php b/application/controllers/UsuarioController.php
index 8aefea7..a4751c5 100755
--- a/application/controllers/UsuarioController.php
+++ b/application/controllers/UsuarioController.php
@@ -10,7 +10,7 @@ public function __construct()
}
/**
- * @api {get} usuarios Solicitar dados da coleção dos usuários
+ * @api {get} usuarios Listar dados da coleção dos usuários
* @apiName findAll
* @apiGroup Usuário
* @apiPermission ADMINISTRATOR
@@ -46,7 +46,7 @@ public function findAll()
}
/**
- * @api {get} usuarios/:codUsuario Solicitar dados de um usuário
+ * @api {get} usuarios/:codUsuario Listar dados de um usuário
* @apiName findById
* @apiGroup Usuário
* @apiPermission ADMINISTRATOR
diff --git a/doc/api_data.js b/doc/api_data.js
new file mode 100644
index 0000000..a750dc0
--- /dev/null
+++ b/doc/api_data.js
@@ -0,0 +1,4647 @@
+define({ "api": [
+ {
+ "type": "post",
+ "url": "componentes-curriculares",
+ "title": "Criar Componente Curricular",
+ "name": "create",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "periodo",
+ "description": "
Período da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "credito",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"OBRIGATORIA\"",
+ "\"OPTATIVA\"",
+ "\"ESTAGIO\"",
+ "\"ATIVIDADE COMPLEMENTAR\"",
+ "\"ATIVIDADE EXTENSAO\"",
+ "\"PROJETO CONCLUSAO\""
+ ],
+ "optional": false,
+ "field": "tipo",
+ "description": "Tipo da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número da disicplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Deletar Componente Curricular",
+ "name": "delete",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares",
+ "title": "Listar todas as componentes curriculares",
+ "name": "findAll",
+ "group": "Componente_Curricular",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ComponenteCurricular[]",
+ "optional": false,
+ "field": "componentesCurriculares",
+ "description": "Array de objetos do tipo ComponenteCurricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[nome]",
+ "description": "Nome da diciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[periodo]",
+ "description": "Período da componente.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[credito]",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codDepto]",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[depto]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[numDisciplina]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codPpc]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Solicitar uma componente curricular",
+ "name": "findByCodCompCurric",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "periodo",
+ "description": "Período da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "credito",
+ "description": "Crédito da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "depto",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número da disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpc/componentes-curriculares",
+ "title": "Listar todas componentes curriculares de um PPC, ordenados por período e componente curricular",
+ "name": "findByCodPpc",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de projeto pedagógico de curso (PPC).
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ComponenteCurricular[]",
+ "optional": false,
+ "field": "componenteCurricular",
+ "description": "Array de objetos do tipo ComponenteCurricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[nome]",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[ch]",
+ "description": "Carga horária da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[periodo]",
+ "description": "Período da componente curricular.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Atualizar Componente Curricular",
+ "name": "update",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "periodo",
+ "description": "Período da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "credito",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"OBRIGATORIA\"",
+ "\"OPTATIVA\"",
+ "\"ESTAGIO\"",
+ "\"ATIVIDADE COMPLEMENTAR\"",
+ "\"ATIVIDADE EXTENSAO\"",
+ "\"PROJETO CONCLUSAO\""
+ ],
+ "optional": true,
+ "field": "tipo",
+ "description": "Tipo da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codDepto",
+ "description": "Identificador único de departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "numDisciplina",
+ "description": "Número da disciplina, parte do idenficador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "correspondencias",
+ "title": "Criar correspondência",
+ "name": "create",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurricCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "correspondencias/:codCompCurric/:codCompCorresp",
+ "title": "Deletar Correspondência",
+ "name": "delete",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias/:codCompCurric/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "correspondencias",
+ "title": "Listar todas as correspondências de todas as componentes curriculares.",
+ "name": "findAll",
+ "group": "Correspondência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Correspondencia[]",
+ "optional": false,
+ "field": "correspondencia",
+ "description": "Array de objetos do tipo Correspondência.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[depto]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[numDisciplina]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[NomeDisciplina]",
+ "description": "Nome de disciplina
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCorresp]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[deptoDisciplinaCorresp]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[numDisciplinaCorresp]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[NomeDisciplinaCorresp]",
+ "description": "Nome de disciplina
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[percentual]",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpcAtual/correspondencias/:codPpcAlvo",
+ "title": "Listar todas as relações de correspondência entre os cursos referidos",
+ "name": "findAllByCodPpc",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único do ppc atual.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único do ppc alvo.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Correspondencia[]",
+ "optional": false,
+ "field": "correspondencia",
+ "description": "Array de objetos do tipo Correspondência.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCorresp]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[percentual]",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpcAtual/correspondencias/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares/:codCompCurric/correspondencias/:codCompCorresp",
+ "title": "Listar as correspondências de uma componente curricular",
+ "name": "findByCodCompCurric",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDisciplina",
+ "description": "Nome de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDisciplinaCorresp",
+ "description": "Nome de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplinaCorresp",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric/correspondencias/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "correspondencia/:codCompCurric/:codCompCorresp",
+ "title": "Atualizar Correspondência",
+ "name": "update",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurricCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencia/:codCompCurric/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "cursos",
+ "title": "Criar um Curso.",
+ "name": "create",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "size": "1950-2020",
+ "optional": false,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "cursos/:codCurso",
+ "title": "Excluir um Curso.",
+ "name": "delete",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "cursos",
+ "title": "Solicitar todos Cursos registrados.",
+ "name": "findAll",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Curso[]",
+ "optional": false,
+ "field": "curso",
+ "description": "Array de objetos do tipo Curso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "cursos/:codCurso",
+ "title": "Solicitar dados de um Curso.",
+ "name": "findById",
+ "group": "Curso",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "cursos/:codCurso",
+ "title": "Atualizar dados de um Curso.",
+ "name": "update",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso requerido.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "size": "1950-2020",
+ "optional": true,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "departamentos",
+ "title": "Criar um Departamento.",
+ "name": "create",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "size": "3..5",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "departamentos/:codDepto",
+ "title": "Excluir um Departamento.",
+ "name": "delete",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "departamentos",
+ "title": "Solicitar dados de todos Departamentos.",
+ "name": "findAll",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Departamento[]",
+ "optional": false,
+ "field": "departamento",
+ "description": "Array de objetos do tipo Departamento.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "departamentos/:codDepto",
+ "title": "Solicitar dados de um Departamento específico.",
+ "name": "findById",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Departamento está registrado.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "departamentos/:codDepto",
+ "title": "Atualizar dados de um Departamento.",
+ "name": "update",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento requerido.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "size": "3..5",
+ "optional": true,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "POST",
+ "url": "dependencias",
+ "title": "Criar uma nova dependência entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "create",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "DELETE",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Deletar dependência entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "delete",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "dependencias",
+ "title": "Solicitar todas dependências existentes entre componentes curriculares.",
+ "name": "findAll",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Dependencia[]",
+ "optional": false,
+ "field": "dependencia",
+ "description": "Array de objetos do tipo depenência.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Solicitar dependências entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "findById",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "curso",
+ "description": "Nome do curso que a componente curricular pertence.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeCompCurric",
+ "description": "Nome da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomePreReq",
+ "description": "Nome do pré-requisito da componente curricular.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso/:codPpc/dependencias",
+ "title": "Solicitar todas dependências entre componentes as curriculares de um Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código identificador de um projeto pedagógico de curso.
"
+ }
+ ]
+ }
+ },
+ "name": "findByIdPpc",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "PUT",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Atualizar depêndencia entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "update",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "disciplinas",
+ "title": "Criar uma disciplina",
+ "name": "create",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador primário da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador secundário da disciplina (identificador primário do departamento que ela está vinculada).
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Excluir uma disciplina",
+ "name": "delete",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "disciplinas",
+ "title": "Solicitar dados de todas as disciplinas",
+ "name": "findAll",
+ "group": "Disciplina",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Disciplina[]",
+ "optional": false,
+ "field": "disciplina",
+ "description": "Array de objetos do tipo Disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[numDisciplina]",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "disciplina[nome]",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[ch]",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[codDepto]",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "disciplina[nomeDepto]",
+ "description": "Nome do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Solicitar dados de uma disciplina",
+ "name": "findById",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDepto",
+ "description": "Nome do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Atualizar dados de uma disciplina",
+ "name": "update",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único de uma disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "instituicoes-ensino-superior",
+ "title": "Criar uma Instituição de Ensino Superior.",
+ "name": "create",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Excluir uma Instituição de Ensino Superior.",
+ "name": "delete",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "instituicoes-ensino-superior",
+ "title": "Solicitar dados de todas Instituições de Ensino Superior.",
+ "name": "findAll",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "InstituicaoEnsinoSuperior[]",
+ "optional": false,
+ "field": "InstituicaoEnsinoSuperior",
+ "description": "Array de objetos do tipo InstituicaoEnsinoSuperior.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Solicitar dados de uma Instituição de Ensino Superior.",
+ "name": "findById",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior requerida.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Atualizar dados de uma Instituição de Ensino Superior.",
+ "name": "update",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "projetos-pedagogicos-curso",
+ "title": "Criar um novo Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso (Obrigatório para projeto pedagógicos de cursos INATIVOS).
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOpt",
+ "defaultValue": "0",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOb",
+ "defaultValue": "0",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeExt",
+ "defaultValue": "0",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeCmplt",
+ "defaultValue": "0",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalProjetoConclusao",
+ "defaultValue": "0",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalEstagio",
+ "defaultValue": "0",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": false,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "name": "create",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso"
+ }
+ ]
+ },
+ {
+ "type": "DELETE",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Deletar Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ]
+ }
+ },
+ "name": "delete",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso",
+ "title": "Solicitar todos Projetos Pedagógicos de Curso.",
+ "name": "findAll",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ProjetoPedagogicoCurso[]",
+ "optional": false,
+ "field": "projetoPedag",
+ "description": "ógicoCurso Array de objetos do tipo Projeto Pesagógico Curso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Solicitar Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ]
+ }
+ },
+ "name": "findById",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalDisciplinaOpt",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalDisciplinaOb",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalAtividadeExt",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalAtividadeCmplt",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalProjetoConclusao",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalEstagio",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "duracao",
+ "description": "Tempo de duração do curso descrito por anos.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotal",
+ "description": "Carga horária total que as componentes curriculares do curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": false,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "PUT",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Atualizar um Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso (Obrigatório para projeto pedagógicos de cursos INATIVOS).
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOpt",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOb",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeExt",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeCmplt",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalProjetoConclusao",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalEstagio",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": true,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "name": "update",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "transicoes",
+ "title": "Criar transição",
+ "name": "create",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "transicoes/:codPpcAtual/:codPpcAlvo",
+ "title": "Deletar Componente Curricular",
+ "name": "delete",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes/:codPpcAtual/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "transicoes",
+ "title": "Listar todas as transições.",
+ "name": "findAll",
+ "group": "Transição",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAtual]",
+ "description": "Nome do curso e ano de aprovação do ppc atual.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAtual]",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAlvo]",
+ "description": "Nome do curso e ano de aprovação do ppc alvo.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAlvo]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpcAtual/transicoes",
+ "title": "Listar as transições mapeadas de um ppc.",
+ "name": "findByCodPpc",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAtual]",
+ "description": "Nome do curso e Ano de aprovação do ppc atual da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAlvo]",
+ "description": "Nome do curso e Ano de aprovação do ppc alvo da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAtual]",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAlvo]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpcAtual/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino/:codUnidadeEnsino/transicoes",
+ "title": "Listar os cursos atuais da unidade de ensino especificada para os quais há transição.",
+ "name": "findByCodUnidadeEnsino",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único de unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[nomeCurso]",
+ "description": "Nome do curso e Ano de aprovação do ppc atual da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpc]",
+ "description": "Identificador único de ppc
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "transicao/:codPpcAtual/:codPpcAlvo",
+ "title": "Atualizar transição",
+ "name": "update",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicao/:codPpcAtual/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "unidades-ensino",
+ "title": "Criar uma unidade de ensino",
+ "name": "create",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da instutuição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Excluir uma unidade de ensino",
+ "name": "delete",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único de uma unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino",
+ "title": "Solicitar dados de todas as unidades de ensino",
+ "name": "findAll",
+ "group": "Unidade_de_Ensino",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "UnidadeEnsino[]",
+ "optional": false,
+ "field": "unidadeEnsino",
+ "description": "Array de objetos do tipo Unidade de Ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "unidadeEnsino[codUnidadeEnsino]",
+ "description": "Identificador único da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "unidadeEnsino[nome]",
+ "description": "Nome da instituição de ensino cuja qual a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Solicitar dados de uma unidade de ensino",
+ "name": "findById",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Codigo unico de uma unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeInstituicao",
+ "description": "Nome da instituição de ensino que a unidade de ensino está vinculada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnEnsino",
+ "description": "Identificador único da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da instutuição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Atualizar dados de uma unidade de ensino",
+ "name": "update",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Codigo único de uma unidade de ensino.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de esnino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "codIes",
+ "description": "Identificador único da instituição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "usuarios",
+ "title": "Criar um usuário",
+ "name": "create",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "ADMINISTRATOR",
+ "SUPERVISOR",
+ "VISITOR"
+ ],
+ "optional": true,
+ "field": "papel",
+ "defaultValue": "VISITOR",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "JSON",
+ "optional": true,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "400",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "usuarios/:codUsuario",
+ "title": "Excluir um usuário",
+ "name": "delete",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "usuarios",
+ "title": "Solicitar dados da coleção dos usuários",
+ "name": "findAll",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Usuario[]",
+ "optional": false,
+ "field": "usuarios",
+ "description": "Array de objetos do tipo usuário.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Usuario: Instância não encontrada. Não existem usuários cadastrados
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "usuarios/:codUsuario",
+ "title": "Solicitar dados de um usuário",
+ "name": "findById",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "papel",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtUltimoAcesso",
+ "description": "Data do último acesso realizado pelo usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "usuarios/login",
+ "title": "Entrar na conta de usuário",
+ "name": "login",
+ "group": "Usuário",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "senha",
+ "description": "Senha de acesso.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "usuario",
+ "description": "Perfil do usuário logado
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "usuario[email]",
+ "description": "Endereço de email do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "usuario[dtUltimoAcesso]",
+ "description": "Data e hora do último login realizado com sucesso
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "usuario[papel]",
+ "description": "Categoria que define o nível de acesso
"
+ },
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "usuario[nome]",
+ "description": "Nome do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "token",
+ "description": "Token de acesso JWT
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "401",
+ "description": "Entities\\Usuario.(email|senha): Credencial inválida. O email ou senha informado(s) não são válidos
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/login"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "usuarios/:codUsuario",
+ "title": "Atualizar dados de um usuário",
+ "name": "update",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "papel",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtUltimoAcesso",
+ "description": "Data do último acesso realizado pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "JSON",
+ "optional": true,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ },
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "400",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ }
+] });
diff --git a/doc/api_data.json b/doc/api_data.json
new file mode 100644
index 0000000..315ed18
--- /dev/null
+++ b/doc/api_data.json
@@ -0,0 +1,4647 @@
+[
+ {
+ "type": "post",
+ "url": "componentes-curriculares",
+ "title": "Criar Componente Curricular",
+ "name": "create",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "periodo",
+ "description": "Período da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "credito",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"OBRIGATORIA\"",
+ "\"OPTATIVA\"",
+ "\"ESTAGIO\"",
+ "\"ATIVIDADE COMPLEMENTAR\"",
+ "\"ATIVIDADE EXTENSAO\"",
+ "\"PROJETO CONCLUSAO\""
+ ],
+ "optional": false,
+ "field": "tipo",
+ "description": "Tipo da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número da disicplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Deletar Componente Curricular",
+ "name": "delete",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares",
+ "title": "Listar todas as componentes curriculares",
+ "name": "findAll",
+ "group": "Componente_Curricular",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ComponenteCurricular[]",
+ "optional": false,
+ "field": "componentesCurriculares",
+ "description": "Array de objetos do tipo ComponenteCurricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[nome]",
+ "description": "Nome da diciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[periodo]",
+ "description": "Período da componente.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[credito]",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codDepto]",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[depto]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[numDisciplina]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codPpc]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Solicitar uma componente curricular",
+ "name": "findByCodCompCurric",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "periodo",
+ "description": "Período da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "credito",
+ "description": "Crédito da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único de departamento e parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "depto",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número da disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpc/componentes-curriculares",
+ "title": "Listar todas componentes curriculares de um PPC, ordenados por período e componente curricular",
+ "name": "findByCodPpc",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Identificador único de projeto pedagógico de curso (PPC).
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ComponenteCurricular[]",
+ "optional": false,
+ "field": "componenteCurricular",
+ "description": "Array de objetos do tipo ComponenteCurricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "componenteCurricular[nome]",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[ch]",
+ "description": "Carga horária da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "componenteCurricular[periodo]",
+ "description": "Período da componente curricular.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc/componentes-curriculares"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "componentes-curriculares/:codCompCurric",
+ "title": "Atualizar Componente Curricular",
+ "name": "update",
+ "group": "Componente_Curricular",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "periodo",
+ "description": "Período da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "credito",
+ "description": "Crédito da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"OBRIGATORIA\"",
+ "\"OPTATIVA\"",
+ "\"ESTAGIO\"",
+ "\"ATIVIDADE COMPLEMENTAR\"",
+ "\"ATIVIDADE EXTENSAO\"",
+ "\"PROJETO CONCLUSAO\""
+ ],
+ "optional": true,
+ "field": "tipo",
+ "description": "Tipo da componente.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codDepto",
+ "description": "Identificador único de departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "numDisciplina",
+ "description": "Número da disciplina, parte do idenficador único de disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpc",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ComponenteCurricular: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ComponenteCurricular: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ComponenteCurricularController.php",
+ "groupTitle": "Componente_Curricular",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "correspondencias",
+ "title": "Criar correspondência",
+ "name": "create",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurricCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "correspondencias/:codCompCurric/:codCompCorresp",
+ "title": "Deletar Correspondência",
+ "name": "delete",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias/:codCompCurric/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "correspondencias",
+ "title": "Listar todas as correspondências de todas as componentes curriculares.",
+ "name": "findAll",
+ "group": "Correspondência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Correspondencia[]",
+ "optional": false,
+ "field": "correspondencia",
+ "description": "Array de objetos do tipo Correspondência.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[depto]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[numDisciplina]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[NomeDisciplina]",
+ "description": "Nome de disciplina
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCorresp]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[deptoDisciplinaCorresp]",
+ "description": "Abreviatura de departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[numDisciplinaCorresp]",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "correspondencia[NomeDisciplinaCorresp]",
+ "description": "Nome de disciplina
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[percentual]",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencias"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpcAtual/correspondencias/:codPpcAlvo",
+ "title": "Listar todas as relações de correspondência entre os cursos referidos",
+ "name": "findAllByCodPpc",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único do ppc atual.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único do ppc alvo.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Correspondencia[]",
+ "optional": false,
+ "field": "correspondencia",
+ "description": "Array de objetos do tipo Correspondência.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCurric]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[codCompCorresp]",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "correspondencia[percentual]",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpcAtual/correspondencias/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "componentes-curriculares/:codCompCurric/correspondencias/:codCompCorresp",
+ "title": "Listar as correspondências de uma componente curricular",
+ "name": "findByCodCompCurric",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDisciplina",
+ "description": "Nome de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDisciplinaCorresp",
+ "description": "Nome de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplinaCorresp",
+ "description": "Número de disciplina, parte do identificador único de disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/componentes-curriculares/:codCompCurric/correspondencias/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "correspondencia/:codCompCurric/:codCompCorresp",
+ "title": "Atualizar Correspondência",
+ "name": "update",
+ "group": "Correspondência",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCorresp",
+ "description": "Identificador único de componente curricular.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurric",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurricCorresp",
+ "description": "Identificador único de componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "percentual",
+ "description": "Percentual de correspondência entre componentes.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Correspondencia: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Correspondencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CorrespondenciaController.php",
+ "groupTitle": "Correspondência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/correspondencia/:codCompCurric/:codCompCorresp"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "cursos",
+ "title": "Criar um Curso.",
+ "name": "create",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "size": "1950-2020",
+ "optional": false,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "cursos/:codCurso",
+ "title": "Excluir um Curso.",
+ "name": "delete",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "cursos",
+ "title": "Solicitar todos Cursos registrados.",
+ "name": "findAll",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Curso[]",
+ "optional": false,
+ "field": "curso",
+ "description": "Array de objetos do tipo Curso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "cursos/:codCurso",
+ "title": "Solicitar dados de um Curso.",
+ "name": "findById",
+ "group": "Curso",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "cursos/:codCurso",
+ "title": "Atualizar dados de um Curso.",
+ "name": "update",
+ "group": "Curso",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Identificador único do Curso requerido.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do Curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "size": "1950-2020",
+ "optional": true,
+ "field": "anoCriacao",
+ "description": "Ano em que o curso foi criado.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Curso está registrado.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Curso: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Curso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/CursoController.php",
+ "groupTitle": "Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/cursos/:codCurso"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "departamentos",
+ "title": "Criar um Departamento.",
+ "name": "create",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "size": "3..5",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "departamentos/:codDepto",
+ "title": "Excluir um Departamento.",
+ "name": "delete",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "departamentos",
+ "title": "Solicitar dados de todos Departamentos.",
+ "name": "findAll",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Departamento[]",
+ "optional": false,
+ "field": "departamento",
+ "description": "Array de objetos do tipo Departamento.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "departamentos/:codDepto",
+ "title": "Solicitar dados de um Departamento específico.",
+ "name": "findById",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino na qual o Departamento está registrado.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "departamentos/:codDepto",
+ "title": "Atualizar dados de um Departamento.",
+ "name": "update",
+ "group": "Departamento",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador único do Departamento requerido.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "size": "3..5",
+ "optional": true,
+ "field": "abreviatura",
+ "description": "Sigla do Departamento.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único da Unidade de Ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Departamento: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Departamento: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DepartamentoController.php",
+ "groupTitle": "Departamento",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/departamentos/:codDepto"
+ }
+ ]
+ },
+ {
+ "type": "POST",
+ "url": "dependencias",
+ "title": "Criar uma nova dependência entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "create",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "DELETE",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Deletar dependência entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "delete",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "dependencias",
+ "title": "Solicitar todas dependências existentes entre componentes curriculares.",
+ "name": "findAll",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Dependencia[]",
+ "optional": false,
+ "field": "dependencia",
+ "description": "Array de objetos do tipo depenência.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Solicitar dependências entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "findById",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "curso",
+ "description": "Nome do curso que a componente curricular pertence.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeCompCurric",
+ "description": "Nome da componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomePreReq",
+ "description": "Nome do pré-requisito da componente curricular.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso/:codPpc/dependencias",
+ "title": "Solicitar todas dependências entre componentes as curriculares de um Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código identificador de um projeto pedagógico de curso.
"
+ }
+ ]
+ }
+ },
+ "name": "findByIdPpc",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc/dependencias"
+ }
+ ]
+ },
+ {
+ "type": "PUT",
+ "url": "dependencias/:codCompCurric/:codPreReq",
+ "title": "Atualizar depêndencia entre componentes curriculares.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codCompCurric",
+ "description": "Código de identificação de uma componente curricular.
"
+ },
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPreReq",
+ "description": "Código de identificação de uma componente curricular que é pré-requisito.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCompCurric",
+ "description": "Código identificador de uma componente curricular.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPreRequisito",
+ "description": "Código identificador de uma componente curricular que é pré-requisito.
"
+ }
+ ]
+ }
+ },
+ "name": "update",
+ "group": "Dependência",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Dependencia: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Dependencia: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DependenciaController.php",
+ "groupTitle": "Dependência",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/dependencias/:codCompCurric/:codPreReq"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "disciplinas",
+ "title": "Criar uma disciplina",
+ "name": "create",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador primário da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Identificador secundário da disciplina (identificador primário do departamento que ela está vinculada).
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Excluir uma disciplina",
+ "name": "delete",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "disciplinas",
+ "title": "Solicitar dados de todas as disciplinas",
+ "name": "findAll",
+ "group": "Disciplina",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Disciplina[]",
+ "optional": false,
+ "field": "disciplina",
+ "description": "Array de objetos do tipo Disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[numDisciplina]",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "disciplina[nome]",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[ch]",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "disciplina[codDepto]",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "disciplina[nomeDepto]",
+ "description": "Nome do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Solicitar dados de uma disciplina",
+ "name": "findById",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único da disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeDepto",
+ "description": "Nome do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "disciplinas/:codDepto/:numDisciplina",
+ "title": "Atualizar dados de uma disciplina",
+ "name": "update",
+ "group": "Disciplina",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "numDisciplina",
+ "description": "Identificador único de uma disciplina.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codDepto",
+ "description": "Código do departamento cujo qual a disciplina está vinculada.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da disciplina.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "ch",
+ "description": "Carga horária da disciplina.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Disciplina: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Disciplina: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/DisciplinaController.php",
+ "groupTitle": "Disciplina",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/disciplinas/:codDepto/:numDisciplina"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "instituicoes-ensino-superior",
+ "title": "Criar uma Instituição de Ensino Superior.",
+ "name": "create",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Excluir uma Instituição de Ensino Superior.",
+ "name": "delete",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "instituicoes-ensino-superior",
+ "title": "Solicitar dados de todas Instituições de Ensino Superior.",
+ "name": "findAll",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "InstituicaoEnsinoSuperior[]",
+ "optional": false,
+ "field": "InstituicaoEnsinoSuperior",
+ "description": "Array de objetos do tipo InstituicaoEnsinoSuperior.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Solicitar dados de uma Instituição de Ensino Superior.",
+ "name": "findById",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior requerida.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "instituicoes-ensino-superior/:codIes",
+ "title": "Atualizar dados de uma Instituição de Ensino Superior.",
+ "name": "update",
+ "group": "Instituição_de_Ensino_Superior",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da Instituição de Ensino Superior.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da Instituição de Ensino Superior.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "abreviatura",
+ "description": "Sigla da Instituição de Ensino Superior.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\InstituicaoEnsinoSuperior: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/InstituicaoEnsinoSuperiorController.php",
+ "groupTitle": "Instituição_de_Ensino_Superior",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/instituicoes-ensino-superior/:codIes"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "projetos-pedagogicos-curso",
+ "title": "Criar um novo Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso (Obrigatório para projeto pedagógicos de cursos INATIVOS).
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOpt",
+ "defaultValue": "0",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOb",
+ "defaultValue": "0",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeExt",
+ "defaultValue": "0",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeCmplt",
+ "defaultValue": "0",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalProjetoConclusao",
+ "defaultValue": "0",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalEstagio",
+ "defaultValue": "0",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": false,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "name": "create",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso"
+ }
+ ]
+ },
+ {
+ "type": "DELETE",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Deletar Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ]
+ }
+ },
+ "name": "delete",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso",
+ "title": "Solicitar todos Projetos Pedagógicos de Curso.",
+ "name": "findAll",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "ProjetoPedagogicoCurso[]",
+ "optional": false,
+ "field": "projetoPedag",
+ "description": "ógicoCurso Array de objetos do tipo Projeto Pesagógico Curso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso"
+ }
+ ]
+ },
+ {
+ "type": "GET",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Solicitar Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ]
+ }
+ },
+ "name": "findById",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalDisciplinaOpt",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalDisciplinaOb",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalAtividadeExt",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalAtividadeCmplt",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalProjetoConclusao",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotalEstagio",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "duracao",
+ "description": "Tempo de duração do curso descrito por anos.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "chTotal",
+ "description": "Carga horária total que as componentes curriculares do curso deve possuir.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": false,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "PUT",
+ "url": "projetos-pedagogicos-curso/:codPpc",
+ "title": "Atualizar um Projeto Pedagógico de Curso.",
+ "parameter": {
+ "fields": {
+ "URL": [
+ {
+ "group": "URL",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpc",
+ "description": "Código de identificação de um Projeto Pedagógico de Curso.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtInicioVigencia",
+ "description": "Data correspondente ao ínicio de vigência do projeto pedagógico do curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtTerminoVigencia",
+ "description": "Data correspondente ao término de vigência do projeto pedagógico do curso (Obrigatório para projeto pedagógicos de cursos INATIVOS).
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOpt",
+ "description": "Carga horária total de disciplinas optativas que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalDisciplinaOb",
+ "description": "Carga horária total de disciplinas obrigatórias que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeExt",
+ "description": "Carga horária total de atividades extensão que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalAtividadeCmplt",
+ "description": "Carga horária total de atividades complementares que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalProjetoConclusao",
+ "description": "Carga horária total de projeto de conclusão de curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "chTotalEstagio",
+ "description": "Carga horária total de estágio que o curso deve possuir.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "qtdPeriodos",
+ "description": "Quantidade de períodos necessário para a conclusão do curso em situação normal.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "anoAprovacao",
+ "description": "Ano de aprovação do projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "\"CORRENTE\"",
+ "\"ATIVO ANTERIOR\"",
+ "\"INATIVO\""
+ ],
+ "optional": true,
+ "field": "situacao",
+ "description": "Situação em que se encontra o projeto pedagógico de curso.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codCurso",
+ "description": "Código de indentificação do curso que o projeto pedagógico de curso integraliza.
"
+ }
+ ]
+ }
+ },
+ "name": "update",
+ "group": "Projeto_Pedagógico_Curso",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\ProjetoPedagogicoCurso: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/ProjetoPedagogicoCursoController.php",
+ "groupTitle": "Projeto_Pedagógico_Curso",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpc"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "transicoes",
+ "title": "Criar transição",
+ "name": "create",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "transicoes/:codPpcAtual/:codPpcAlvo",
+ "title": "Deletar Componente Curricular",
+ "name": "delete",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes/:codPpcAtual/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "transicoes",
+ "title": "Listar todas as transições.",
+ "name": "findAll",
+ "group": "Transição",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAtual]",
+ "description": "Nome do curso e ano de aprovação do ppc atual.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAtual]",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAlvo]",
+ "description": "Nome do curso e ano de aprovação do ppc alvo.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAlvo]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "projetos-pedagogicos-curso/:codPpcAtual/transicoes",
+ "title": "Listar as transições mapeadas de um ppc.",
+ "name": "findByCodPpc",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAtual]",
+ "description": "Nome do curso e Ano de aprovação do ppc atual da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[ppcAlvo]",
+ "description": "Nome do curso e Ano de aprovação do ppc alvo da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAtual]",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpcAlvo]",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/projetos-pedagogicos-curso/:codPpcAtual/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino/:codUnidadeEnsino/transicoes",
+ "title": "Listar os cursos atuais da unidade de ensino especificada para os quais há transição.",
+ "name": "findByCodUnidadeEnsino",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único de unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Transicao[]",
+ "optional": false,
+ "field": "transicao",
+ "description": "Array de objetos do tipo transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "transicao[nomeCurso]",
+ "description": "Nome do curso e Ano de aprovação do ppc atual da transição.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "transicao[codPpc]",
+ "description": "Identificador único de ppc
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino/transicoes"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "transicao/:codPpcAtual/:codPpcAlvo",
+ "title": "Atualizar transição",
+ "name": "update",
+ "group": "Transição",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpcAtual",
+ "description": "Identificador único de ppc.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": true,
+ "field": "codPpcAlvo",
+ "description": "Identificador único de ppc.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Transicao: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Transicao: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/TransicaoController.php",
+ "groupTitle": "Transição",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/transicao/:codPpcAtual/:codPpcAlvo"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "unidades-ensino",
+ "title": "Criar uma unidade de ensino",
+ "name": "create",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da instutuição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Excluir uma unidade de ensino",
+ "name": "delete",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Identificador único de uma unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância removida com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino",
+ "title": "Solicitar dados de todas as unidades de ensino",
+ "name": "findAll",
+ "group": "Unidade_de_Ensino",
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "UnidadeEnsino[]",
+ "optional": false,
+ "field": "unidadeEnsino",
+ "description": "Array de objetos do tipo Unidade de Ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "unidadeEnsino[codUnidadeEnsino]",
+ "description": "Identificador único da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "unidadeEnsino[nome]",
+ "description": "Nome da instituição de ensino cuja qual a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Solicitar dados de uma unidade de ensino",
+ "name": "findById",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Codigo unico de uma unidade de ensino.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nomeInstituicao",
+ "description": "Nome da instituição de ensino que a unidade de ensino está vinculada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnEnsino",
+ "description": "Identificador único da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de ensino.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codIes",
+ "description": "Identificador único da instutuição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "unidades-ensino/:codUnidadeEnsino",
+ "title": "Atualizar dados de uma unidade de ensino",
+ "name": "update",
+ "group": "Unidade_de_Ensino",
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUnidadeEnsino",
+ "description": "Codigo único de uma unidade de ensino.
"
+ }
+ ],
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome da unidade de ensino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "cnpj",
+ "description": "CNPJ da unidade de esnino.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "codIes",
+ "description": "Identificador único da instituição de ensino que a unidade de ensino está vinculada.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\UnidadeEnsino: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\UnidadeEnsino: Instância não encontrada.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UnidadeEnsinoController.php",
+ "groupTitle": "Unidade_de_Ensino",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/unidades-ensino/:codUnidadeEnsino"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "usuarios",
+ "title": "Criar um usuário",
+ "name": "create",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "allowedValues": [
+ "ADMINISTRATOR",
+ "SUPERVISOR",
+ "VISITOR"
+ ],
+ "optional": true,
+ "field": "papel",
+ "defaultValue": "VISITOR",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": false,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "JSON",
+ "optional": true,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância criada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "400",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios"
+ }
+ ]
+ },
+ {
+ "type": "delete",
+ "url": "usuarios/:codUsuario",
+ "title": "Excluir um usuário",
+ "name": "delete",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância deletada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "usuarios",
+ "title": "Solicitar dados da coleção dos usuários",
+ "name": "findAll",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Usuario[]",
+ "optional": false,
+ "field": "usuarios",
+ "description": "Array de objetos do tipo usuário.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "error",
+ "description": "Entities\\Usuario: Instância não encontrada. Não existem usuários cadastrados
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios"
+ }
+ ]
+ },
+ {
+ "type": "get",
+ "url": "usuarios/:codUsuario",
+ "title": "Solicitar dados de um usuário",
+ "name": "findById",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Parameter": [
+ {
+ "group": "Parameter",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário requerido.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "codUsuario",
+ "description": "Identificador único do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "papel",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "dtUltimoAcesso",
+ "description": "Data do último acesso realizado pelo usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Success 200",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ },
+ {
+ "type": "post",
+ "url": "usuarios/login",
+ "title": "Entrar na conta de usuário",
+ "name": "login",
+ "group": "Usuário",
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "senha",
+ "description": "Senha de acesso.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "usuario",
+ "description": "Perfil do usuário logado
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "usuario[email]",
+ "description": "Endereço de email do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "DateTime",
+ "optional": false,
+ "field": "usuario[dtUltimoAcesso]",
+ "description": "Data e hora do último login realizado com sucesso
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "usuario[papel]",
+ "description": "Categoria que define o nível de acesso
"
+ },
+ {
+ "group": "Success 200",
+ "type": "JSON",
+ "optional": false,
+ "field": "usuario[nome]",
+ "description": "Nome do usuário
"
+ },
+ {
+ "group": "Success 200",
+ "type": "String",
+ "optional": false,
+ "field": "token",
+ "description": "Token de acesso JWT
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "401",
+ "description": "Entities\\Usuario.(email|senha): Credencial inválida. O email ou senha informado(s) não são válidos
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/login"
+ }
+ ]
+ },
+ {
+ "type": "put",
+ "url": "usuarios/:codUsuario",
+ "title": "Atualizar dados de um usuário",
+ "name": "update",
+ "group": "Usuário",
+ "permission": [
+ {
+ "name": "ADMINISTRATOR"
+ }
+ ],
+ "parameter": {
+ "fields": {
+ "Request Body/JSON": [
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "email",
+ "description": "Endereço de e-mail do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "nome",
+ "description": "Nome do usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "papel",
+ "description": "Categoria que define o acesso administrativo do usuário
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "String",
+ "optional": true,
+ "field": "senha",
+ "description": "Senha de acesso encriptada.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "DateTime",
+ "optional": true,
+ "field": "dtUltimoAcesso",
+ "description": "Data do último acesso realizado pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "JSON",
+ "optional": true,
+ "field": "conjuntoSelecao",
+ "description": "Conjunto de componente curriculares selecionadas pelo usuário.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAtual]",
+ "description": "Identificador único do PPC atual.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number",
+ "optional": false,
+ "field": "conjuntoSelecao[ppcAlvo]",
+ "description": "Identificador único do PPC alvo.
"
+ },
+ {
+ "group": "Request Body/JSON",
+ "type": "Number[]",
+ "optional": false,
+ "field": "conjuntoSelecao[componentesCurriculares]",
+ "description": "Conjunto de identificadores únicos das componentes curriculares selecionadas.
"
+ }
+ ]
+ }
+ },
+ "success": {
+ "fields": {
+ "Success 200": [
+ {
+ "group": "Success 200",
+ "type": "String[]",
+ "optional": false,
+ "field": "message",
+ "description": "Entities\\Usuario: Instância atualizada com sucesso.
"
+ }
+ ]
+ }
+ },
+ "error": {
+ "fields": {
+ "Error 4xx": [
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "404",
+ "description": "O codUsuario não corresponde a um usuário cadastrado.
"
+ },
+ {
+ "group": "Error 4xx",
+ "type": "String[]",
+ "optional": false,
+ "field": "400",
+ "description": "Campo obrigatório não informado ou contém valor inválido.
"
+ }
+ ]
+ }
+ },
+ "version": "0.0.0",
+ "filename": "application/controllers/UsuarioController.php",
+ "groupTitle": "Usuário",
+ "sampleRequest": [
+ {
+ "url": "http://dev.api.ppcchoice.ufes.br/usuarios/:codUsuario"
+ }
+ ]
+ }
+]
diff --git a/doc/api_project.js b/doc/api_project.js
new file mode 100644
index 0000000..27cd611
--- /dev/null
+++ b/doc/api_project.js
@@ -0,0 +1,16 @@
+define({
+ "name": "API-PPC",
+ "version": "0.1.0",
+ "description": "API do projeto PPCChoice para consumo interno",
+ "title": "API PPC Choice - Documentation",
+ "sampleUrl": "http://dev.api.ppcchoice.ufes.br/",
+ "url": "http://dev.api.ppcchoice.ufes.br/",
+ "defaultVersion": "0.0.0",
+ "apidoc": "0.3.0",
+ "generator": {
+ "name": "apidoc",
+ "time": "2020-05-22T15:00:47.151Z",
+ "url": "http://apidocjs.com",
+ "version": "0.20.1"
+ }
+});
diff --git a/doc/api_project.json b/doc/api_project.json
new file mode 100644
index 0000000..4242ff4
--- /dev/null
+++ b/doc/api_project.json
@@ -0,0 +1,16 @@
+{
+ "name": "API-PPC",
+ "version": "0.1.0",
+ "description": "API do projeto PPCChoice para consumo interno",
+ "title": "API PPC Choice - Documentation",
+ "sampleUrl": "http://dev.api.ppcchoice.ufes.br/",
+ "url": "http://dev.api.ppcchoice.ufes.br/",
+ "defaultVersion": "0.0.0",
+ "apidoc": "0.3.0",
+ "generator": {
+ "name": "apidoc",
+ "time": "2020-05-22T15:00:47.151Z",
+ "url": "http://apidocjs.com",
+ "version": "0.20.1"
+ }
+}
diff --git a/doc/css/style.css b/doc/css/style.css
new file mode 100644
index 0000000..8083dae
--- /dev/null
+++ b/doc/css/style.css
@@ -0,0 +1,577 @@
+/* ------------------------------------------------------------------------------------------
+ * Content
+ * ------------------------------------------------------------------------------------------ */
+body {
+ max-width: 1280px;
+}
+
+body, p, a, div, th, td {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 400;
+ font-size: 16px;
+}
+
+@media (min-width: 1200px) {
+ body.container-fluid {
+ padding-right: 0px;
+ padding-left: 0px;
+ margin-right: 0px;
+ margin-left: 0px;
+ }
+}
+
+td.code {
+ font-size: 14px;
+ font-family: "Source Code Pro", monospace;
+ font-style: normal;
+ font-weight: 400;
+}
+
+#content {
+ padding-top: 16px;
+ z-Index: -1;
+ margin-left: 270px;
+}
+
+p {
+ color: #808080;
+}
+
+h1 {
+ font-family: "Source Sans Pro Semibold", sans-serif;
+ font-weight: normal;
+ font-size: 44px;
+ line-height: 50px;
+ margin: 0 0 10px 0;
+ padding: 0;
+}
+
+h2 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: normal;
+ font-size: 24px;
+ line-height: 40px;
+ margin: 0 0 20px 0;
+ padding: 0;
+}
+
+section {
+ border-top: 1px solid #ebebeb;
+ padding: 30px 0;
+}
+
+section h1 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ line-height: 40px;
+ padding-bottom: 14px;
+ margin: 0 0 20px 0;
+ padding: 0;
+}
+
+article {
+ padding: 14px 0 30px 0;
+}
+
+article h1 {
+ font-family: "Source Sans Pro Bold", sans-serif;
+ font-weight: 600;
+ font-size: 24px;
+ line-height: 26px;
+}
+
+article h2 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 600;
+ font-size: 18px;
+ line-height: 24px;
+ margin: 0 0 10px 0;
+}
+
+article h3 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 600;
+ font-size: 16px;
+ line-height: 18px;
+ margin: 0 0 10px 0;
+}
+
+article h4 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 600;
+ font-size: 14px;
+ line-height: 16px;
+ margin: 0 0 8px 0;
+}
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+ margin: 0 0 20px 0;
+}
+
+th {
+ background-color: #f5f5f5;
+ text-align: left;
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 700;
+ padding: 4px 8px;
+ border: #e0e0e0 1px solid;
+}
+
+td {
+ vertical-align: top;
+ padding: 10px 8px 0 8px;
+ border: #e0e0e0 1px solid;
+}
+
+#generator .content {
+ color: #b0b0b0;
+ border-top: 1px solid #ebebeb;
+ padding: 10px 0;
+}
+
+.label-optional {
+ float: right;
+ background-color: grey;
+ margin-top: 4px;
+}
+
+.open-left {
+ right: 0;
+ left: auto;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * apidoc - intro
+ * ------------------------------------------------------------------------------------------ */
+
+#apidoc .apidoc {
+ border-top: 1px solid #ebebeb;
+ padding: 30px 0;
+}
+
+#apidoc h1 {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ line-height: 40px;
+ padding-bottom: 14px;
+ margin: 0 0 20px 0;
+ padding: 0;
+}
+
+#apidoc h2 {
+ font-family: "Source Sans Pro Bold", sans-serif;
+ font-weight: 600;
+ font-size: 22px;
+ line-height: 26px;
+ padding-top: 14px;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * pre / code
+ * ------------------------------------------------------------------------------------------ */
+pre {
+ background-color: #292b36;
+ color: #ffffff;
+ padding: 10px;
+ border-radius: 6px;
+ position: relative;
+ margin: 10px 0 20px 0;
+ overflow-x: auto;
+}
+
+pre.prettyprint {
+ width: 100%;
+}
+
+code.language-text {
+ word-wrap: break-word;
+}
+
+pre.language-json {
+ overflow: auto;
+}
+
+pre.language-html {
+ margin: 0 0 20px 0;
+}
+
+.type {
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 600;
+ font-size: 15px;
+ display: inline-block;
+ margin: 0 0 5px 0;
+ padding: 4px 5px;
+ border-radius: 6px;
+ text-transform: uppercase;
+ background-color: #3387CC;
+ color: #ffffff;
+}
+
+.type__get {
+ background-color: green;
+}
+
+.type__put {
+ background-color: #e5c500;
+}
+
+.type__post {
+ background-color: #4070ec;
+}
+
+.type__delete {
+ background-color: #ed0039;
+}
+
+pre.language-api .str {
+ color: #ffffff;
+}
+
+pre.language-api .pln,
+pre.language-api .pun {
+ color: #65B042;
+}
+
+pre code {
+ display: block;
+ font-size: 14px;
+ font-family: "Source Code Pro", monospace;
+ font-style: normal;
+ font-weight: 400;
+ word-wrap: normal;
+ white-space: pre;
+}
+
+pre code.sample-request-response-json {
+ white-space: pre-wrap;
+ max-height: 500px;
+ overflow: auto;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Sidenav
+ * ------------------------------------------------------------------------------------------ */
+.sidenav {
+ width: 228px;
+ margin: 0;
+ padding: 0 20px 20px 20px;
+ position: fixed;
+ top: 50px;
+ left: 0;
+ bottom: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ background-color: #f5f5f5;
+ z-index: 10;
+}
+
+.sidenav > li > a {
+ display: block;
+ width: 192px;
+ margin: 0;
+ padding: 2px 11px;
+ border: 0;
+ border-left: transparent 4px solid;
+ border-right: transparent 4px solid;
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 400;
+ font-size: 14px;
+}
+
+.sidenav > li.nav-header {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+
+.sidenav > li.nav-header > a {
+ padding: 5px 15px;
+ border: 1px solid #e5e5e5;
+ width: 190px;
+ font-family: "Source Sans Pro", sans-serif;
+ font-weight: 700;
+ font-size: 16px;
+ background-color: #ffffff;
+}
+
+.sidenav > li.active > a {
+ position: relative;
+ z-index: 2;
+ background-color: #0088cc;
+ color: #ffffff;
+}
+
+.sidenav > li.has-modifications a {
+ border-right: #60d060 4px solid;
+}
+
+.sidenav > li.is-new a {
+ border-left: #e5e5e5 4px solid;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Side nav search
+ * ------------------------------------------------------------------------------------------ */
+.sidenav-search {
+ width: 228px;
+ left: 0px;
+ position: fixed;
+ padding: 16px 20px 10px 20px;
+ background-color: #F5F5F5;
+ z-index: 11;
+}
+
+.sidenav-search .search {
+ height: 26px;
+}
+
+.search-reset {
+ position: absolute;
+ display: block;
+ cursor: pointer;
+ width: 20px;
+ height: 20px;
+ text-align: center;
+ right: 28px;
+ top: 17px;
+ background-color: #fff;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Compare
+ * ------------------------------------------------------------------------------------------ */
+
+ins {
+ background: #60d060;
+ text-decoration: none;
+ color: #000000;
+}
+
+del {
+ background: #f05050;
+ color: #000000;
+}
+
+.label-ins {
+ background-color: #60d060;
+}
+
+.label-del {
+ background-color: #f05050;
+ text-decoration: line-through;
+}
+
+pre.ins {
+ background-color: #60d060;
+}
+
+pre.del {
+ background-color: #f05050;
+ text-decoration: line-through;
+}
+
+table.ins th,
+table.ins td {
+ background-color: #60d060;
+}
+
+table.del th,
+table.del td {
+ background-color: #f05050;
+ text-decoration: line-through;
+}
+
+tr.ins td {
+ background-color: #60d060;
+}
+
+tr.del td {
+ background-color: #f05050;
+ text-decoration: line-through;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Spinner
+ * ------------------------------------------------------------------------------------------ */
+
+#loader {
+ position: absolute;
+ width: 100%;
+}
+
+#loader p {
+ padding-top: 80px;
+ margin-left: -4px;
+}
+
+.spinner {
+ margin: 200px auto;
+ width: 60px;
+ height: 60px;
+ position: relative;
+}
+
+.container1 > div, .container2 > div, .container3 > div {
+ width: 14px;
+ height: 14px;
+ background-color: #0088cc;
+
+ border-radius: 100%;
+ position: absolute;
+ -webkit-animation: bouncedelay 1.2s infinite ease-in-out;
+ animation: bouncedelay 1.2s infinite ease-in-out;
+ /* Prevent first frame from flickering when animation starts */
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.spinner .spinner-container {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+
+.container2 {
+ -webkit-transform: rotateZ(45deg);
+ transform: rotateZ(45deg);
+}
+
+.container3 {
+ -webkit-transform: rotateZ(90deg);
+ transform: rotateZ(90deg);
+}
+
+.circle1 { top: 0; left: 0; }
+.circle2 { top: 0; right: 0; }
+.circle3 { right: 0; bottom: 0; }
+.circle4 { left: 0; bottom: 0; }
+
+.container2 .circle1 {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s;
+}
+
+.container3 .circle1 {
+ -webkit-animation-delay: -1.0s;
+ animation-delay: -1.0s;
+}
+
+.container1 .circle2 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s;
+}
+
+.container2 .circle2 {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s;
+}
+
+.container3 .circle2 {
+ -webkit-animation-delay: -0.7s;
+ animation-delay: -0.7s;
+}
+
+.container1 .circle3 {
+ -webkit-animation-delay: -0.6s;
+ animation-delay: -0.6s;
+}
+
+.container2 .circle3 {
+ -webkit-animation-delay: -0.5s;
+ animation-delay: -0.5s;
+}
+
+.container3 .circle3 {
+ -webkit-animation-delay: -0.4s;
+ animation-delay: -0.4s;
+}
+
+.container1 .circle4 {
+ -webkit-animation-delay: -0.3s;
+ animation-delay: -0.3s;
+}
+
+.container2 .circle4 {
+ -webkit-animation-delay: -0.2s;
+ animation-delay: -0.2s;
+}
+
+.container3 .circle4 {
+ -webkit-animation-delay: -0.1s;
+ animation-delay: -0.1s;
+}
+
+@-webkit-keyframes bouncedelay {
+ 0%, 80%, 100% { -webkit-transform: scale(0.0) }
+ 40% { -webkit-transform: scale(1.0) }
+}
+
+@keyframes bouncedelay {
+ 0%, 80%, 100% {
+ transform: scale(0.0);
+ -webkit-transform: scale(0.0);
+ } 40% {
+ transform: scale(1.0);
+ -webkit-transform: scale(1.0);
+ }
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Tabs
+ * ------------------------------------------------------------------------------------------ */
+ul.nav-tabs {
+ margin: 0;
+}
+
+p.deprecated span{
+ color: #ff0000;
+ font-weight: bold;
+ text-decoration: underline;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Print
+ * ------------------------------------------------------------------------------------------ */
+
+@media print {
+
+ #sidenav,
+ #version,
+ #versions,
+ section .version,
+ section .versions {
+ display: none;
+ }
+
+ #content {
+ margin-left: 0;
+ }
+
+ a {
+ text-decoration: none;
+ color: inherit;
+ }
+
+ a:after {
+ content: " [" attr(href) "] ";
+ }
+
+ p {
+ color: #000000
+ }
+
+ pre {
+ background-color: #ffffff;
+ color: #000000;
+ padding: 10px;
+ border: #808080 1px solid;
+ border-radius: 6px;
+ position: relative;
+ margin: 10px 0 20px 0;
+ }
+
+} /* /@media print */
diff --git a/doc/fonts/glyphicons-halflings-regular.eot b/doc/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..b93a495
Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.eot differ
diff --git a/doc/fonts/glyphicons-halflings-regular.svg b/doc/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..94fb549
--- /dev/null
+++ b/doc/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
\ No newline at end of file
diff --git a/doc/fonts/glyphicons-halflings-regular.ttf b/doc/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..1413fc6
Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/doc/fonts/glyphicons-halflings-regular.woff b/doc/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.woff differ
diff --git a/doc/fonts/glyphicons-halflings-regular.woff2 b/doc/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/doc/img/favicon.ico b/doc/img/favicon.ico
new file mode 100644
index 0000000..c307a04
Binary files /dev/null and b/doc/img/favicon.ico differ
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..668f606
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,687 @@
+
+
+
+
+ Loading...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/locales/ca.js b/doc/locales/ca.js
new file mode 100644
index 0000000..65af5df
--- /dev/null
+++ b/doc/locales/ca.js
@@ -0,0 +1,25 @@
+define({
+ ca: {
+ 'Allowed values:' : 'Valors permesos:',
+ 'Compare all with predecessor': 'Comparar tot amb versió anterior',
+ 'compare changes to:' : 'comparar canvis amb:',
+ 'compared to' : 'comparat amb',
+ 'Default value:' : 'Valor per defecte:',
+ 'Description' : 'Descripció',
+ 'Field' : 'Camp',
+ 'General' : 'General',
+ 'Generated with' : 'Generat amb',
+ 'Name' : 'Nom',
+ 'No response values.' : 'Sense valors en la resposta.',
+ 'optional' : 'opcional',
+ 'Parameter' : 'Paràmetre',
+ 'Permission:' : 'Permisos:',
+ 'Response' : 'Resposta',
+ 'Send' : 'Enviar',
+ 'Send a Sample Request' : 'Enviar una petició d\'exemple',
+ 'show up to version:' : 'mostrar versió:',
+ 'Size range:' : 'Tamany de rang:',
+ 'Type' : 'Tipus',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/cs.js b/doc/locales/cs.js
new file mode 100644
index 0000000..b7796d8
--- /dev/null
+++ b/doc/locales/cs.js
@@ -0,0 +1,25 @@
+define({
+ cs: {
+ 'Allowed values:' : 'Povolené hodnoty:',
+ 'Compare all with predecessor': 'Porovnat vše s předchozími verzemi',
+ 'compare changes to:' : 'porovnat změny s:',
+ 'compared to' : 'porovnat s',
+ 'Default value:' : 'Výchozí hodnota:',
+ 'Description' : 'Popis',
+ 'Field' : 'Pole',
+ 'General' : 'Obecné',
+ 'Generated with' : 'Vygenerováno pomocí',
+ 'Name' : 'Název',
+ 'No response values.' : 'Nebyly vráceny žádné hodnoty.',
+ 'optional' : 'volitelné',
+ 'Parameter' : 'Parametr',
+ 'Permission:' : 'Oprávnění:',
+ 'Response' : 'Odpověď',
+ 'Send' : 'Odeslat',
+ 'Send a Sample Request' : 'Odeslat ukázkový požadavek',
+ 'show up to version:' : 'zobrazit po verzi:',
+ 'Size range:' : 'Rozsah velikosti:',
+ 'Type' : 'Typ',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/de.js b/doc/locales/de.js
new file mode 100644
index 0000000..f66420d
--- /dev/null
+++ b/doc/locales/de.js
@@ -0,0 +1,25 @@
+define({
+ de: {
+ 'Allowed values:' : 'Erlaubte Werte:',
+ 'Compare all with predecessor': 'Vergleiche alle mit ihren Vorgängern',
+ 'compare changes to:' : 'vergleiche Änderungen mit:',
+ 'compared to' : 'verglichen mit',
+ 'Default value:' : 'Standardwert:',
+ 'Description' : 'Beschreibung',
+ 'Field' : 'Feld',
+ 'General' : 'Allgemein',
+ 'Generated with' : 'Erstellt mit',
+ 'Name' : 'Name',
+ 'No response values.' : 'Keine Rückgabewerte.',
+ 'optional' : 'optional',
+ 'Parameter' : 'Parameter',
+ 'Permission:' : 'Berechtigung:',
+ 'Response' : 'Antwort',
+ 'Send' : 'Senden',
+ 'Send a Sample Request' : 'Eine Beispielanfrage senden',
+ 'show up to version:' : 'zeige bis zur Version:',
+ 'Size range:' : 'Größenbereich:',
+ 'Type' : 'Typ',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/es.js b/doc/locales/es.js
new file mode 100644
index 0000000..3d47e80
--- /dev/null
+++ b/doc/locales/es.js
@@ -0,0 +1,25 @@
+define({
+ es: {
+ 'Allowed values:' : 'Valores permitidos:',
+ 'Compare all with predecessor': 'Comparar todo con versión anterior',
+ 'compare changes to:' : 'comparar cambios con:',
+ 'compared to' : 'comparado con',
+ 'Default value:' : 'Valor por defecto:',
+ 'Description' : 'Descripción',
+ 'Field' : 'Campo',
+ 'General' : 'General',
+ 'Generated with' : 'Generado con',
+ 'Name' : 'Nombre',
+ 'No response values.' : 'Sin valores en la respuesta.',
+ 'optional' : 'opcional',
+ 'Parameter' : 'Parámetro',
+ 'Permission:' : 'Permisos:',
+ 'Response' : 'Respuesta',
+ 'Send' : 'Enviar',
+ 'Send a Sample Request' : 'Enviar una petición de ejemplo',
+ 'show up to version:' : 'mostrar a versión:',
+ 'Size range:' : 'Tamaño de rango:',
+ 'Type' : 'Tipo',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/fr.js b/doc/locales/fr.js
new file mode 100644
index 0000000..100a642
--- /dev/null
+++ b/doc/locales/fr.js
@@ -0,0 +1,25 @@
+define({
+ fr: {
+ 'Allowed values:' : 'Valeurs autorisées :',
+ 'Compare all with predecessor': 'Tout comparer avec ...',
+ 'compare changes to:' : 'comparer les changements à :',
+ 'compared to' : 'comparer à',
+ 'Default value:' : 'Valeur par défaut :',
+ 'Description' : 'Description',
+ 'Field' : 'Champ',
+ 'General' : 'Général',
+ 'Generated with' : 'Généré avec',
+ 'Name' : 'Nom',
+ 'No response values.' : 'Aucune valeur de réponse.',
+ 'optional' : 'optionnel',
+ 'Parameter' : 'Paramètre',
+ 'Permission:' : 'Permission :',
+ 'Response' : 'Réponse',
+ 'Send' : 'Envoyer',
+ 'Send a Sample Request' : 'Envoyer une requête représentative',
+ 'show up to version:' : 'Montrer à partir de la version :',
+ 'Size range:' : 'Ordre de grandeur :',
+ 'Type' : 'Type',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/it.js b/doc/locales/it.js
new file mode 100644
index 0000000..8117108
--- /dev/null
+++ b/doc/locales/it.js
@@ -0,0 +1,25 @@
+define({
+ it: {
+ 'Allowed values:' : 'Valori permessi:',
+ 'Compare all with predecessor': 'Confronta tutto con versioni precedenti',
+ 'compare changes to:' : 'confronta modifiche con:',
+ 'compared to' : 'confrontato con',
+ 'Default value:' : 'Valore predefinito:',
+ 'Description' : 'Descrizione',
+ 'Field' : 'Campo',
+ 'General' : 'Generale',
+ 'Generated with' : 'Creato con',
+ 'Name' : 'Nome',
+ 'No response values.' : 'Nessun valore di risposta.',
+ 'optional' : 'opzionale',
+ 'Parameter' : 'Parametro',
+ 'Permission:' : 'Permessi:',
+ 'Response' : 'Risposta',
+ 'Send' : 'Invia',
+ 'Send a Sample Request' : 'Invia una richiesta di esempio',
+ 'show up to version:' : 'mostra alla versione:',
+ 'Size range:' : 'Intervallo dimensione:',
+ 'Type' : 'Tipo',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/locale.js b/doc/locales/locale.js
new file mode 100644
index 0000000..3530705
--- /dev/null
+++ b/doc/locales/locale.js
@@ -0,0 +1,51 @@
+define([
+ './locales/ca.js',
+ './locales/cs.js',
+ './locales/de.js',
+ './locales/es.js',
+ './locales/fr.js',
+ './locales/it.js',
+ './locales/nl.js',
+ './locales/pl.js',
+ './locales/pt_br.js',
+ './locales/ro.js',
+ './locales/ru.js',
+ './locales/tr.js',
+ './locales/vi.js',
+ './locales/zh.js',
+ './locales/zh_cn.js'
+], function() {
+ var langId = (navigator.language || navigator.userLanguage).toLowerCase().replace('-', '_');
+ var language = langId.substr(0, 2);
+ var locales = {};
+
+ for (index in arguments) {
+ for (property in arguments[index])
+ locales[property] = arguments[index][property];
+ }
+ if ( ! locales['en'])
+ locales['en'] = {};
+
+ if ( ! locales[langId] && ! locales[language])
+ language = 'en';
+
+ var locale = (locales[langId] ? locales[langId] : locales[language]);
+
+ function __(text) {
+ var index = locale[text];
+ if (index === undefined)
+ return text;
+ return index;
+ };
+
+ function setLanguage(language) {
+ locale = locales[language];
+ }
+
+ return {
+ __ : __,
+ locales : locales,
+ locale : locale,
+ setLanguage: setLanguage
+ };
+});
diff --git a/doc/locales/nl.js b/doc/locales/nl.js
new file mode 100644
index 0000000..bddfeeb
--- /dev/null
+++ b/doc/locales/nl.js
@@ -0,0 +1,25 @@
+define({
+ nl: {
+ 'Allowed values:' : 'Toegestane waarden:',
+ 'Compare all with predecessor': 'Vergelijk alle met voorgaande versie',
+ 'compare changes to:' : 'vergelijk veranderingen met:',
+ 'compared to' : 'vergelijk met',
+ 'Default value:' : 'Standaard waarde:',
+ 'Description' : 'Omschrijving',
+ 'Field' : 'Veld',
+ 'General' : 'Algemeen',
+ 'Generated with' : 'Gegenereerd met',
+ 'Name' : 'Naam',
+ 'No response values.' : 'Geen response waardes.',
+ 'optional' : 'optioneel',
+ 'Parameter' : 'Parameter',
+ 'Permission:' : 'Permissie:',
+ 'Response' : 'Antwoorden',
+ 'Send' : 'Sturen',
+ 'Send a Sample Request' : 'Stuur een sample aanvragen',
+ 'show up to version:' : 'toon tot en met versie:',
+ 'Size range:' : 'Maatbereik:',
+ 'Type' : 'Type',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/pl.js b/doc/locales/pl.js
new file mode 100644
index 0000000..db645ee
--- /dev/null
+++ b/doc/locales/pl.js
@@ -0,0 +1,25 @@
+define({
+ pl: {
+ 'Allowed values:' : 'Dozwolone wartości:',
+ 'Compare all with predecessor': 'Porównaj z poprzednimi wersjami',
+ 'compare changes to:' : 'porównaj zmiany do:',
+ 'compared to' : 'porównaj do:',
+ 'Default value:' : 'Wartość domyślna:',
+ 'Description' : 'Opis',
+ 'Field' : 'Pole',
+ 'General' : 'Generalnie',
+ 'Generated with' : 'Wygenerowano z',
+ 'Name' : 'Nazwa',
+ 'No response values.' : 'Brak odpowiedzi.',
+ 'optional' : 'opcjonalny',
+ 'Parameter' : 'Parametr',
+ 'Permission:' : 'Uprawnienia:',
+ 'Response' : 'Odpowiedź',
+ 'Send' : 'Wyślij',
+ 'Send a Sample Request' : 'Wyślij przykładowe żądanie',
+ 'show up to version:' : 'pokaż do wersji:',
+ 'Size range:' : 'Zakres rozmiaru:',
+ 'Type' : 'Typ',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/pt_br.js b/doc/locales/pt_br.js
new file mode 100644
index 0000000..2bd78b0
--- /dev/null
+++ b/doc/locales/pt_br.js
@@ -0,0 +1,25 @@
+define({
+ 'pt_br': {
+ 'Allowed values:' : 'Valores permitidos:',
+ 'Compare all with predecessor': 'Compare todos com antecessores',
+ 'compare changes to:' : 'comparar alterações com:',
+ 'compared to' : 'comparado com',
+ 'Default value:' : 'Valor padrão:',
+ 'Description' : 'Descrição',
+ 'Field' : 'Campo',
+ 'General' : 'Geral',
+ 'Generated with' : 'Gerado com',
+ 'Name' : 'Nome',
+ 'No response values.' : 'Sem valores de resposta.',
+ 'optional' : 'opcional',
+ 'Parameter' : 'Parâmetro',
+ 'Permission:' : 'Permissão:',
+ 'Response' : 'Resposta',
+ 'Send' : 'Enviar',
+ 'Send a Sample Request' : 'Enviar um Exemplo de Pedido',
+ 'show up to version:' : 'aparecer para a versão:',
+ 'Size range:' : 'Faixa de tamanho:',
+ 'Type' : 'Tipo',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/ro.js b/doc/locales/ro.js
new file mode 100644
index 0000000..8d4e4ed
--- /dev/null
+++ b/doc/locales/ro.js
@@ -0,0 +1,25 @@
+define({
+ ro: {
+ 'Allowed values:' : 'Valori permise:',
+ 'Compare all with predecessor': 'Compară toate cu versiunea precedentă',
+ 'compare changes to:' : 'compară cu versiunea:',
+ 'compared to' : 'comparat cu',
+ 'Default value:' : 'Valoare implicită:',
+ 'Description' : 'Descriere',
+ 'Field' : 'Câmp',
+ 'General' : 'General',
+ 'Generated with' : 'Generat cu',
+ 'Name' : 'Nume',
+ 'No response values.' : 'Nici o valoare returnată.',
+ 'optional' : 'opțional',
+ 'Parameter' : 'Parametru',
+ 'Permission:' : 'Permisiune:',
+ 'Response' : 'Răspuns',
+ 'Send' : 'Trimite',
+ 'Send a Sample Request' : 'Trimite o cerere de probă',
+ 'show up to version:' : 'arată până la versiunea:',
+ 'Size range:' : 'Interval permis:',
+ 'Type' : 'Tip',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/ru.js b/doc/locales/ru.js
new file mode 100644
index 0000000..c5f3382
--- /dev/null
+++ b/doc/locales/ru.js
@@ -0,0 +1,25 @@
+define({
+ ru: {
+ 'Allowed values:' : 'Допустимые значения:',
+ 'Compare all with predecessor': 'Сравнить с предыдущей версией',
+ 'compare changes to:' : 'сравнить с:',
+ 'compared to' : 'в сравнении с',
+ 'Default value:' : 'По умолчанию:',
+ 'Description' : 'Описание',
+ 'Field' : 'Название',
+ 'General' : 'Общая информация',
+ 'Generated with' : 'Сгенерировано с помощью',
+ 'Name' : 'Название',
+ 'No response values.' : 'Нет значений для ответа.',
+ 'optional' : 'необязательный',
+ 'Parameter' : 'Параметр',
+ 'Permission:' : 'Разрешено:',
+ 'Response' : 'Ответ',
+ 'Send' : 'Отправить',
+ 'Send a Sample Request' : 'Отправить тестовый запрос',
+ 'show up to version:' : 'показать версию:',
+ 'Size range:' : 'Ограничения:',
+ 'Type' : 'Тип',
+ 'url' : 'URL'
+ }
+});
diff --git a/doc/locales/tr.js b/doc/locales/tr.js
new file mode 100644
index 0000000..5c64e52
--- /dev/null
+++ b/doc/locales/tr.js
@@ -0,0 +1,25 @@
+define({
+ tr: {
+ 'Allowed values:' : 'İzin verilen değerler:',
+ 'Compare all with predecessor': 'Tümünü öncekiler ile karşılaştır',
+ 'compare changes to:' : 'değişiklikleri karşılaştır:',
+ 'compared to' : 'karşılaştır',
+ 'Default value:' : 'Varsayılan değer:',
+ 'Description' : 'Açıklama',
+ 'Field' : 'Alan',
+ 'General' : 'Genel',
+ 'Generated with' : 'Oluşturan',
+ 'Name' : 'İsim',
+ 'No response values.' : 'Dönüş verisi yok.',
+ 'optional' : 'opsiyonel',
+ 'Parameter' : 'Parametre',
+ 'Permission:' : 'İzin:',
+ 'Response' : 'Dönüş',
+ 'Send' : 'Gönder',
+ 'Send a Sample Request' : 'Örnek istek gönder',
+ 'show up to version:' : 'bu versiyona kadar göster:',
+ 'Size range:' : 'Boyut aralığı:',
+ 'Type' : 'Tip',
+ 'url' : 'url'
+ }
+});
diff --git a/doc/locales/vi.js b/doc/locales/vi.js
new file mode 100644
index 0000000..7ce7705
--- /dev/null
+++ b/doc/locales/vi.js
@@ -0,0 +1,25 @@
+define({
+ vi: {
+ 'Allowed values:' : 'Giá trị chấp nhận:',
+ 'Compare all with predecessor': 'So sánh với tất cả phiên bản trước',
+ 'compare changes to:' : 'so sánh sự thay đổi với:',
+ 'compared to' : 'so sánh với',
+ 'Default value:' : 'Giá trị mặc định:',
+ 'Description' : 'Chú thích',
+ 'Field' : 'Trường dữ liệu',
+ 'General' : 'Tổng quan',
+ 'Generated with' : 'Được tạo bởi',
+ 'Name' : 'Tên',
+ 'No response values.' : 'Không có kết quả trả về.',
+ 'optional' : 'Tùy chọn',
+ 'Parameter' : 'Tham số',
+ 'Permission:' : 'Quyền hạn:',
+ 'Response' : 'Kết quả',
+ 'Send' : 'Gửi',
+ 'Send a Sample Request' : 'Gửi một yêu cầu mẫu',
+ 'show up to version:' : 'hiển thị phiên bản:',
+ 'Size range:' : 'Kích cỡ:',
+ 'Type' : 'Kiểu',
+ 'url' : 'liên kết'
+ }
+});
diff --git a/doc/locales/zh.js b/doc/locales/zh.js
new file mode 100644
index 0000000..ca5042f
--- /dev/null
+++ b/doc/locales/zh.js
@@ -0,0 +1,25 @@
+define({
+ zh: {
+ 'Allowed values:' : '允許值:',
+ 'Compare all with predecessor': '預先比較所有',
+ 'compare changes to:' : '比較變更:',
+ 'compared to' : '對比',
+ 'Default value:' : '預設值:',
+ 'Description' : '描述',
+ 'Field' : '欄位',
+ 'General' : '概括',
+ 'Generated with' : '生成工具',
+ 'Name' : '名稱',
+ 'No response values.' : '無對應資料.',
+ 'optional' : '選填',
+ 'Parameter' : '參數',
+ 'Permission:' : '權限:',
+ 'Response' : '回應',
+ 'Send' : '發送',
+ 'Send a Sample Request' : '發送試用需求',
+ 'show up to version:' : '顯示到版本:',
+ 'Size range:' : '區間:',
+ 'Type' : '類型',
+ 'url' : '網址'
+ }
+});
diff --git a/doc/locales/zh_cn.js b/doc/locales/zh_cn.js
new file mode 100644
index 0000000..50913e2
--- /dev/null
+++ b/doc/locales/zh_cn.js
@@ -0,0 +1,27 @@
+define({
+ 'zh_cn': {
+ 'Allowed values:' : '允许值:',
+ 'Compare all with predecessor': '与所有较早的比较',
+ 'compare changes to:' : '将当前版本与指定版本比较:',
+ 'compared to' : '相比于',
+ 'Default value:' : '默认值:',
+ 'Description' : '描述',
+ 'Field' : '字段',
+ 'General' : '概要',
+ 'Generated with' : '基于',
+ 'Name' : '名称',
+ 'No response values.' : '无返回值.',
+ 'optional' : '可选',
+ 'Parameter' : '参数',
+ 'Parameters' : '参数',
+ 'Headers' : '头部参数',
+ 'Permission:' : '权限:',
+ 'Response' : '返回',
+ 'Send' : '发送',
+ 'Send a Sample Request' : '发送示例请求',
+ 'show up to version:' : '显示到指定版本:',
+ 'Size range:' : '取值范围:',
+ 'Type' : '类型',
+ 'url' : '网址'
+ }
+});
diff --git a/doc/main.js b/doc/main.js
new file mode 100644
index 0000000..8adc385
--- /dev/null
+++ b/doc/main.js
@@ -0,0 +1,903 @@
+require.config({
+ paths: {
+ bootstrap: './vendor/bootstrap.min',
+ diffMatchPatch: './vendor/diff_match_patch.min',
+ handlebars: './vendor/handlebars.min',
+ handlebarsExtended: './utils/handlebars_helper',
+ jquery: './vendor/jquery.min',
+ locales: './locales/locale',
+ lodash: './vendor/lodash.custom.min',
+ pathToRegexp: './vendor/path-to-regexp/index',
+ prettify: './vendor/prettify/prettify',
+ semver: './vendor/semver.min',
+ utilsSampleRequest: './utils/send_sample_request',
+ webfontloader: './vendor/webfontloader',
+ list: './vendor/list.min'
+ },
+ shim: {
+ bootstrap: {
+ deps: ['jquery']
+ },
+ diffMatchPatch: {
+ exports: 'diff_match_patch'
+ },
+ handlebars: {
+ exports: 'Handlebars'
+ },
+ handlebarsExtended: {
+ deps: ['jquery', 'handlebars'],
+ exports: 'Handlebars'
+ },
+ prettify: {
+ exports: 'prettyPrint'
+ }
+ },
+ urlArgs: 'v=' + (new Date()).getTime(),
+ waitSeconds: 15
+});
+
+require([
+ 'jquery',
+ 'lodash',
+ 'locales',
+ 'handlebarsExtended',
+ './api_project.js',
+ './api_data.js',
+ 'prettify',
+ 'utilsSampleRequest',
+ 'semver',
+ 'webfontloader',
+ 'bootstrap',
+ 'pathToRegexp',
+ 'list'
+], function($, _, locale, Handlebars, apiProject, apiData, prettyPrint, sampleRequest, semver, WebFont) {
+
+ // load google web fonts
+ loadGoogleFontCss();
+
+ var api = apiData.api;
+
+ //
+ // Templates
+ //
+ var templateHeader = Handlebars.compile( $('#template-header').html() );
+ var templateFooter = Handlebars.compile( $('#template-footer').html() );
+ var templateArticle = Handlebars.compile( $('#template-article').html() );
+ var templateCompareArticle = Handlebars.compile( $('#template-compare-article').html() );
+ var templateGenerator = Handlebars.compile( $('#template-generator').html() );
+ var templateProject = Handlebars.compile( $('#template-project').html() );
+ var templateSections = Handlebars.compile( $('#template-sections').html() );
+ var templateSidenav = Handlebars.compile( $('#template-sidenav').html() );
+
+ //
+ // apiProject defaults
+ //
+ if ( ! apiProject.template)
+ apiProject.template = {};
+
+ if (apiProject.template.withCompare == null)
+ apiProject.template.withCompare = true;
+
+ if (apiProject.template.withGenerator == null)
+ apiProject.template.withGenerator = true;
+
+ if (apiProject.template.forceLanguage)
+ locale.setLanguage(apiProject.template.forceLanguage);
+
+ if (apiProject.template.aloneDisplay == null)
+ apiProject.template.aloneDisplay = false;
+
+ // Setup jQuery Ajax
+ $.ajaxSetup(apiProject.template.jQueryAjaxSetup);
+
+ //
+ // Data transform
+ //
+ // grouped by group
+ var apiByGroup = _.groupBy(api, function(entry) {
+ return entry.group;
+ });
+
+ // grouped by group and name
+ var apiByGroupAndName = {};
+ $.each(apiByGroup, function(index, entries) {
+ apiByGroupAndName[index] = _.groupBy(entries, function(entry) {
+ return entry.name;
+ });
+ });
+
+ //
+ // sort api within a group by title ASC and custom order
+ //
+ var newList = [];
+ var umlauts = { 'ä': 'ae', 'ü': 'ue', 'ö': 'oe', 'ß': 'ss' }; // TODO: remove in version 1.0
+ $.each (apiByGroupAndName, function(index, groupEntries) {
+ // get titles from the first entry of group[].name[] (name has versioning)
+ var titles = [];
+ $.each (groupEntries, function(titleName, entries) {
+ var title = entries[0].title;
+ if(title !== undefined) {
+ title.toLowerCase().replace(/[äöüß]/g, function($0) { return umlauts[$0]; });
+ titles.push(title + '#~#' + titleName); // '#~#' keep reference to titleName after sorting
+ }
+ });
+ // sort by name ASC
+ titles.sort();
+
+ // custom order
+ if (apiProject.order)
+ titles = sortByOrder(titles, apiProject.order, '#~#');
+
+ // add single elements to the new list
+ titles.forEach(function(name) {
+ var values = name.split('#~#');
+ var key = values[1];
+ groupEntries[key].forEach(function(entry) {
+ newList.push(entry);
+ });
+ });
+ });
+ // api overwrite with ordered list
+ api = newList;
+
+ //
+ // Group- and Versionlists
+ //
+ var apiGroups = {};
+ var apiGroupTitles = {};
+ var apiVersions = {};
+ apiVersions[apiProject.version] = 1;
+
+ $.each(api, function(index, entry) {
+ apiGroups[entry.group] = 1;
+ apiGroupTitles[entry.group] = entry.groupTitle || entry.group;
+ apiVersions[entry.version] = 1;
+ });
+
+ // sort groups
+ apiGroups = Object.keys(apiGroups);
+ apiGroups.sort();
+
+ // custom order
+ if (apiProject.order)
+ apiGroups = sortByOrder(apiGroups, apiProject.order);
+
+ // sort versions DESC
+ apiVersions = Object.keys(apiVersions);
+ apiVersions.sort(semver.compare);
+ apiVersions.reverse();
+
+ //
+ // create Navigationlist
+ //
+ var nav = [];
+ apiGroups.forEach(function(group) {
+ // Mainmenu entry
+ nav.push({
+ group: group,
+ isHeader: true,
+ title: apiGroupTitles[group]
+ });
+
+ // Submenu
+ var oldName = '';
+ api.forEach(function(entry) {
+ if (entry.group === group) {
+ if (oldName !== entry.name) {
+ nav.push({
+ title: entry.title,
+ group: group,
+ name: entry.name,
+ type: entry.type,
+ version: entry.version,
+ url: entry.url
+ });
+ } else {
+ nav.push({
+ title: entry.title,
+ group: group,
+ hidden: true,
+ name: entry.name,
+ type: entry.type,
+ version: entry.version,
+ url: entry.url
+ });
+ }
+ oldName = entry.name;
+ }
+ });
+ });
+
+ /**
+ * Add navigation items by analyzing the HTML content and searching for h1 and h2 tags
+ * @param nav Object the navigation array
+ * @param content string the compiled HTML content
+ * @param index where to insert items
+ * @return boolean true if any good-looking (i.e. with a group identifier) tag was found
+ */
+ function add_nav(nav, content, index) {
+ var found_level1 = false;
+ if ( ! content) {
+ return found_level1;
+ }
+ var topics = content.match(/(.+?)<\/h(1|2)>/gi);
+ if ( topics ) {
+ topics.forEach(function(entry) {
+ var level = entry.substring(2,3);
+ var title = entry.replace(/<.+?>/g, ''); // Remove all HTML tags for the title
+ var entry_tags = entry.match(/id="api-([^\-]+)(?:-(.+))?"/); // Find the group and name in the id property
+ var group = (entry_tags ? entry_tags[1] : null);
+ var name = (entry_tags ? entry_tags[2] : null);
+ if (level==1 && title && group) {
+ nav.splice(index, 0, {
+ group: group,
+ isHeader: true,
+ title: title,
+ isFixed: true
+ });
+ index++;
+ found_level1 = true;
+ }
+ if (level==2 && title && group && name) {
+ nav.splice(index, 0, {
+ group: group,
+ name: name,
+ isHeader: false,
+ title: title,
+ isFixed: false,
+ version: '1.0'
+ });
+ index++;
+ }
+ });
+ }
+ return found_level1;
+ }
+
+ // Mainmenu Header entry
+ if (apiProject.header) {
+ var found_level1 = add_nav(nav, apiProject.header.content, 0); // Add level 1 and 2 titles
+ if (!found_level1) { // If no Level 1 tags were found, make a title
+ nav.unshift({
+ group: '_',
+ isHeader: true,
+ title: (apiProject.header.title == null) ? locale.__('General') : apiProject.header.title,
+ isFixed: true
+ });
+ }
+ }
+
+ // Mainmenu Footer entry
+ if (apiProject.footer) {
+ var last_nav_index = nav.length;
+ var found_level1 = add_nav(nav, apiProject.footer.content, nav.length); // Add level 1 and 2 titles
+ if (!found_level1 && apiProject.footer.title != null) { // If no Level 1 tags were found, make a title
+ nav.splice(last_nav_index, 0, {
+ group: '_footer',
+ isHeader: true,
+ title: apiProject.footer.title,
+ isFixed: true
+ });
+ }
+ }
+
+ // render pagetitle
+ var title = apiProject.title ? apiProject.title : 'apiDoc: ' + apiProject.name + ' - ' + apiProject.version;
+ $(document).attr('title', title);
+
+ // remove loader
+ $('#loader').remove();
+
+ // render sidenav
+ var fields = {
+ nav: nav
+ };
+ $('#sidenav').append( templateSidenav(fields) );
+
+ // render Generator
+ $('#generator').append( templateGenerator(apiProject) );
+
+ // render Project
+ _.extend(apiProject, { versions: apiVersions});
+ $('#project').append( templateProject(apiProject) );
+
+ // render apiDoc, header/footer documentation
+ if (apiProject.header)
+ $('#header').append( templateHeader(apiProject.header) );
+
+ if (apiProject.footer)
+ $('#footer').append( templateFooter(apiProject.footer) );
+
+ //
+ // Render Sections and Articles
+ //
+ var articleVersions = {};
+ var content = '';
+ apiGroups.forEach(function(groupEntry) {
+ var articles = [];
+ var oldName = '';
+ var fields = {};
+ var title = groupEntry;
+ var description = '';
+ articleVersions[groupEntry] = {};
+
+ // render all articles of a group
+ api.forEach(function(entry) {
+ if(groupEntry === entry.group) {
+ if (oldName !== entry.name) {
+ // determine versions
+ api.forEach(function(versionEntry) {
+ if (groupEntry === versionEntry.group && entry.name === versionEntry.name) {
+ if ( ! articleVersions[entry.group].hasOwnProperty(entry.name) ) {
+ articleVersions[entry.group][entry.name] = [];
+ }
+ articleVersions[entry.group][entry.name].push(versionEntry.version);
+ }
+ });
+ fields = {
+ article: entry,
+ versions: articleVersions[entry.group][entry.name]
+ };
+ } else {
+ fields = {
+ article: entry,
+ hidden: true,
+ versions: articleVersions[entry.group][entry.name]
+ };
+ }
+
+ // add prefix URL for endpoint unless it's already absolute
+ if (apiProject.url) {
+ if (fields.article.url.substr(0, 4).toLowerCase() !== 'http') {
+ fields.article.url = apiProject.url + fields.article.url;
+ }
+ }
+
+ addArticleSettings(fields, entry);
+
+ if (entry.groupTitle)
+ title = entry.groupTitle;
+
+ // TODO: make groupDescription compareable with older versions (not important for the moment)
+ if (entry.groupDescription)
+ description = entry.groupDescription;
+
+ articles.push({
+ article: templateArticle(fields),
+ group: entry.group,
+ name: entry.name,
+ aloneDisplay: apiProject.template.aloneDisplay
+ });
+ oldName = entry.name;
+ }
+ });
+
+ // render Section with Articles
+ var fields = {
+ group: groupEntry,
+ title: title,
+ description: description,
+ articles: articles,
+ aloneDisplay: apiProject.template.aloneDisplay
+ };
+ content += templateSections(fields);
+ });
+ $('#sections').append( content );
+
+ // Bootstrap Scrollspy
+ $(this).scrollspy({ target: '#scrollingNav', offset: 18 });
+
+ // Content-Scroll on Navigation click.
+ $('.sidenav').find('a').on('click', function(e) {
+ e.preventDefault();
+ var id = $(this).attr('href');
+ if ($(id).length > 0)
+ $('html,body').animate({ scrollTop: parseInt($(id).offset().top) }, 400);
+ window.location.hash = $(this).attr('href');
+ });
+
+ // Quickjump on Pageload to hash position.
+ if(window.location.hash) {
+ var id = window.location.hash;
+ if ($(id).length > 0)
+ $('html,body').animate({ scrollTop: parseInt($(id).offset().top) }, 0);
+ }
+
+ /**
+ * Check if Parameter (sub) List has a type Field.
+ * Example: @apiSuccess varname1 No type.
+ * @apiSuccess {String} varname2 With type.
+ *
+ * @param {Object} fields
+ */
+ function _hasTypeInFields(fields) {
+ var result = false;
+ $.each(fields, function(name) {
+ result = result || _.some(fields[name], function(item) { return item.type; });
+ });
+ return result;
+ }
+
+ /**
+ * On Template changes, recall plugins.
+ */
+ function initDynamic() {
+ // Bootstrap popover
+ $('button[data-toggle="popover"]').popover().click(function(e) {
+ e.preventDefault();
+ });
+
+ var version = $('#version strong').html();
+ $('#sidenav li').removeClass('is-new');
+ if (apiProject.template.withCompare) {
+ $('#sidenav li[data-version=\'' + version + '\']').each(function(){
+ var group = $(this).data('group');
+ var name = $(this).data('name');
+ var length = $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\']').length;
+ var index = $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\']').index($(this));
+ if (length === 1 || index === (length - 1))
+ $(this).addClass('is-new');
+ });
+ }
+
+ // tabs
+ $('.nav-tabs-examples a').click(function (e) {
+ e.preventDefault();
+ $(this).tab('show');
+ });
+ $('.nav-tabs-examples').find('a:first').tab('show');
+
+ // sample header-content-type switch
+ $('.sample-header-content-type-switch').change(function () {
+ var paramName = '.' + $(this).attr('name') + '-fields';
+ var bodyName = '.' + $(this).attr('name') + '-body';
+ var selectName = 'select[name=' + $(this).attr('name') + ']';
+ if ($(this).val() == 'body-json') {
+ $(selectName).val('undefined');
+ $(this).val('body-json');
+ $(paramName).removeClass('hide');
+ $(this).parent().nextAll(paramName).first().addClass('hide');
+ $(bodyName).addClass('hide');
+ $(this).parent().nextAll(bodyName).first().removeClass('hide');
+ } else if ($(this).val() == "body-form-data") {
+ $(selectName).val('undefined');
+ $(this).val('body-form-data');
+ $(bodyName).addClass('hide');
+ $(paramName).removeClass('hide');
+ } else {
+ $(this).parent().nextAll(paramName).first().removeClass('hide')
+ $(this).parent().nextAll(bodyName).first().addClass('hide');
+ }
+ $(this).prev('.sample-request-switch').prop('checked', true);
+ });
+
+ // sample request switch
+ $('.sample-request-switch').click(function (e) {
+ var paramName = '.' + $(this).attr('name') + '-fields';
+ var bodyName = '.' + $(this).attr('name') + '-body';
+ var select = $(this).next('.' + $(this).attr('name') + '-select').val();
+ if($(this).prop("checked")){
+ if (select == 'body-json'){
+ $(this).parent().nextAll(bodyName).first().removeClass('hide');
+ }else {
+ $(this).parent().nextAll(paramName).first().removeClass('hide');
+ }
+ }else {
+ if (select == 'body-json'){
+ $(this).parent().nextAll(bodyName).first().addClass('hide');
+ }else {
+ $(this).parent().nextAll(paramName).first().addClass('hide');
+ }
+ }
+ });
+
+ if (apiProject.template.aloneDisplay){
+ //show group
+ $('.show-group').click(function () {
+ var apiGroup = '.' + $(this).attr('data-group') + '-group';
+ var apiGroupArticle = '.' + $(this).attr('data-group') + '-article';
+ $(".show-api-group").addClass('hide');
+ $(apiGroup).removeClass('hide');
+ $(".show-api-article").addClass('hide');
+ $(apiGroupArticle).removeClass('hide');
+ });
+
+ //show api
+ $('.show-api').click(function () {
+ var apiName = '.' + $(this).attr('data-name') + '-article';
+ var apiGroup = '.' + $(this).attr('data-group') + '-group';
+ $(".show-api-group").addClass('hide');
+ $(apiGroup).removeClass('hide');
+ $(".show-api-article").addClass('hide');
+ $(apiName).removeClass('hide');
+ });
+ }
+
+ // call scrollspy refresh method
+ $(window).scrollspy('refresh');
+
+ // init modules
+ sampleRequest.initDynamic();
+ }
+ initDynamic();
+
+ if (apiProject.template.aloneDisplay) {
+ var hashVal = window.location.hash;
+ if (hashVal != null && hashVal.length !== 0) {
+ $("." + hashVal.slice(1) + "-init").click();
+ }
+ }
+
+ // Pre- / Code-Format
+ prettyPrint();
+
+ //
+ // HTML-Template specific jQuery-Functions
+ //
+ // Change Main Version
+ $('#versions li.version a').on('click', function(e) {
+ e.preventDefault();
+
+ var selectedVersion = $(this).html();
+ $('#version strong').html(selectedVersion);
+
+ // hide all
+ $('article').addClass('hide');
+ $('#sidenav li:not(.nav-fixed)').addClass('hide');
+
+ // show 1st equal or lower Version of each entry
+ $('article[data-version]').each(function(index) {
+ var group = $(this).data('group');
+ var name = $(this).data('name');
+ var version = $(this).data('version');
+
+ if (semver.lte(version, selectedVersion)) {
+ if ($('article[data-group=\'' + group + '\'][data-name=\'' + name + '\']:visible').length === 0) {
+ // enable Article
+ $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('hide');
+ // enable Navigation
+ $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('hide');
+ $('#sidenav li.nav-header[data-group=\'' + group + '\']').removeClass('hide');
+ }
+ }
+ });
+
+ // show 1st equal or lower Version of each entry
+ $('article[data-version]').each(function(index) {
+ var group = $(this).data('group');
+ $('section#api-' + group).removeClass('hide');
+ if ($('section#api-' + group + ' article:visible').length === 0) {
+ $('section#api-' + group).addClass('hide');
+ } else {
+ $('section#api-' + group).removeClass('hide');
+ }
+ });
+
+ initDynamic();
+ return;
+ });
+
+ // compare all article with their predecessor
+ $('#compareAllWithPredecessor').on('click', changeAllVersionCompareTo);
+
+ // change version of an article
+ $('article .versions li.version a').on('click', changeVersionCompareTo);
+
+ // compare url-parameter
+ $.urlParam = function(name) {
+ var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
+ return (results && results[1]) ? results[1] : null;
+ };
+
+ if ($.urlParam('compare')) {
+ // URL Paramter ?compare=1 is set
+ $('#compareAllWithPredecessor').trigger('click');
+
+ if (window.location.hash) {
+ var id = window.location.hash;
+ $('html,body').animate({ scrollTop: parseInt($(id).offset().top) - 18 }, 0);
+ }
+ }
+
+ /**
+ * Initialize search
+ */
+ var options = {
+ valueNames: [ 'nav-list-item','nav-list-url-item']
+ };
+ var endpointsList = new List('scrollingNav', options);
+
+ /**
+ * Set initial focus to search input
+ */
+ $('#scrollingNav .sidenav-search input.search').focus();
+
+ /**
+ * Detect ESC key to reset search
+ */
+ $(document).keyup(function(e) {
+ if (e.keyCode === 27) $('span.search-reset').click();
+ });
+
+ /**
+ * Search reset
+ */
+ $('span.search-reset').on('click', function() {
+ $('#scrollingNav .sidenav-search input.search')
+ .val("")
+ .focus()
+ ;
+ endpointsList.search();
+ });
+
+ /**
+ * Change version of an article to compare it to an other version.
+ */
+ function changeVersionCompareTo(e) {
+ e.preventDefault();
+
+ var $root = $(this).parents('article');
+ var selectedVersion = $(this).html();
+ var $button = $root.find('.version');
+ var currentVersion = $button.find('strong').html();
+ $button.find('strong').html(selectedVersion);
+
+ var group = $root.data('group');
+ var name = $root.data('name');
+ var version = $root.data('version');
+
+ var compareVersion = $root.data('compare-version');
+
+ if (compareVersion === selectedVersion)
+ return;
+
+ if ( ! compareVersion && version == selectedVersion)
+ return;
+
+ if (compareVersion && articleVersions[group][name][0] === selectedVersion || version === selectedVersion) {
+ // the version of the entry is set to the highest version (reset)
+ resetArticle(group, name, version);
+ } else {
+ var $compareToArticle = $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + selectedVersion + '\']');
+
+ var sourceEntry = {};
+ var compareEntry = {};
+ $.each(apiByGroupAndName[group][name], function(index, entry) {
+ if (entry.version === version)
+ sourceEntry = entry;
+ if (entry.version === selectedVersion)
+ compareEntry = entry;
+ });
+
+ var fields = {
+ article: sourceEntry,
+ compare: compareEntry,
+ versions: articleVersions[group][name]
+ };
+
+ // add unique id
+ // TODO: replace all group-name-version in template with id.
+ fields.article.id = fields.article.group + '-' + fields.article.name + '-' + fields.article.version;
+ fields.article.id = fields.article.id.replace(/\./g, '_');
+
+ fields.compare.id = fields.compare.group + '-' + fields.compare.name + '-' + fields.compare.version;
+ fields.compare.id = fields.compare.id.replace(/\./g, '_');
+
+ var entry = sourceEntry;
+ if (entry.parameter && entry.parameter.fields)
+ fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+
+ if (entry.error && entry.error.fields)
+ fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+
+ if (entry.success && entry.success.fields)
+ fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+
+ if (entry.info && entry.info.fields)
+ fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+
+ var entry = compareEntry;
+ if (fields._hasTypeInParameterFields !== true && entry.parameter && entry.parameter.fields)
+ fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+
+ if (fields._hasTypeInErrorFields !== true && entry.error && entry.error.fields)
+ fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+
+ if (fields._hasTypeInSuccessFields !== true && entry.success && entry.success.fields)
+ fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+
+ if (fields._hasTypeInInfoFields !== true && entry.info && entry.info.fields)
+ fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+
+ var content = templateCompareArticle(fields);
+ $root.after(content);
+ var $content = $root.next();
+
+ // Event on.click re-assign
+ $content.find('.versions li.version a').on('click', changeVersionCompareTo);
+
+ // select navigation
+ $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + currentVersion + '\']').addClass('has-modifications');
+
+ $root.remove();
+ // TODO: on change main version or select the highest version re-render
+ }
+
+ initDynamic();
+ }
+
+ /**
+ * Compare all currently selected Versions with their predecessor.
+ */
+ function changeAllVersionCompareTo(e) {
+ e.preventDefault();
+ $('article:visible .versions').each(function(){
+ var $root = $(this).parents('article');
+ var currentVersion = $root.data('version');
+ var $foundElement = null;
+ $(this).find('li.version a').each(function() {
+ var selectVersion = $(this).html();
+ if (selectVersion < currentVersion && ! $foundElement)
+ $foundElement = $(this);
+ });
+
+ if($foundElement)
+ $foundElement.trigger('click');
+ });
+ initDynamic();
+ }
+
+ /**
+ * Sort the fields.
+ */
+ function sortFields(fields_object) {
+ $.each(fields_object, function (key, fields) {
+
+ var reversed = fields.slice().reverse()
+
+ var max_dot_count = Math.max.apply(null, reversed.map(function (item) {
+ return item.field.split(".").length - 1;
+ }))
+
+ for (var dot_count = 1; dot_count <= max_dot_count; dot_count++) {
+ reversed.forEach(function (item, index) {
+ var parts = item.field.split(".");
+ if (parts.length - 1 == dot_count) {
+ var fields_names = fields.map(function (item) { return item.field; });
+ if (parts.slice(1).length >= 1) {
+ var prefix = parts.slice(0, parts.length - 1).join(".");
+ var prefix_index = fields_names.indexOf(prefix);
+ if (prefix_index > -1) {
+ fields.splice(fields_names.indexOf(item.field), 1);
+ fields.splice(prefix_index + 1, 0, item);
+ }
+ }
+ }
+ });
+ }
+ });
+ }
+
+ /**
+ * Add article settings.
+ */
+ function addArticleSettings(fields, entry) {
+ // add unique id
+ // TODO: replace all group-name-version in template with id.
+ fields.id = fields.article.group + '-' + fields.article.name + '-' + fields.article.version;
+ fields.id = fields.id.replace(/\./g, '_');
+
+ if (entry.header && entry.header.fields) {
+ sortFields(entry.header.fields);
+ fields._hasTypeInHeaderFields = _hasTypeInFields(entry.header.fields);
+ }
+
+ if (entry.parameter && entry.parameter.fields) {
+ sortFields(entry.parameter.fields);
+ fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+ }
+
+ if (entry.error && entry.error.fields) {
+ sortFields(entry.error.fields);
+ fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+ }
+
+ if (entry.success && entry.success.fields) {
+ sortFields(entry.success.fields);
+ fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+ }
+
+ if (entry.info && entry.info.fields) {
+ sortFields(entry.info.fields);
+ fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+ }
+
+ // add template settings
+ fields.template = apiProject.template;
+ }
+
+ /**
+ * Render Article.
+ */
+ function renderArticle(group, name, version) {
+ var entry = {};
+ $.each(apiByGroupAndName[group][name], function(index, currentEntry) {
+ if (currentEntry.version === version)
+ entry = currentEntry;
+ });
+ var fields = {
+ article: entry,
+ versions: articleVersions[group][name]
+ };
+
+ addArticleSettings(fields, entry);
+
+ return templateArticle(fields);
+ }
+
+ /**
+ * Render original Article and remove the current visible Article.
+ */
+ function resetArticle(group, name, version) {
+ var $root = $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\']:visible');
+ var content = renderArticle(group, name, version);
+
+ $root.after(content);
+ var $content = $root.next();
+
+ // Event on.click needs to be reassigned (should actually work with on ... automatically)
+ $content.find('.versions li.version a').on('click', changeVersionCompareTo);
+
+ $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('has-modifications');
+
+ $root.remove();
+ return;
+ }
+
+ /**
+ * Load google fonts.
+ */
+ function loadGoogleFontCss() {
+ WebFont.load({
+ active: function() {
+ // Update scrollspy
+ $(window).scrollspy('refresh')
+ },
+ google: {
+ families: ['Source Code Pro', 'Source Sans Pro:n4,n6,n7']
+ }
+ });
+ }
+
+ /**
+ * Return ordered entries by custom order and append not defined entries to the end.
+ * @param {String[]} elements
+ * @param {String[]} order
+ * @param {String} splitBy
+ * @return {String[]} Custom ordered list.
+ */
+ function sortByOrder(elements, order, splitBy) {
+ var results = [];
+ order.forEach (function(name) {
+ if (splitBy)
+ elements.forEach (function(element) {
+ var parts = element.split(splitBy);
+ var key = parts[0]; // reference keep for sorting
+ if (key == name || parts[1] == name)
+ results.push(element);
+ });
+ else
+ elements.forEach (function(key) {
+ if (key == name)
+ results.push(name);
+ });
+ });
+ // Append all other entries that ar not defined in order
+ elements.forEach(function(element) {
+ if (results.indexOf(element) === -1)
+ results.push(element);
+ });
+ return results;
+ }
+
+});
diff --git a/doc/utils/handlebars_helper.js b/doc/utils/handlebars_helper.js
new file mode 100644
index 0000000..a86733f
--- /dev/null
+++ b/doc/utils/handlebars_helper.js
@@ -0,0 +1,366 @@
+define([
+ 'locales',
+ 'handlebars',
+ 'diffMatchPatch'
+], function(locale, Handlebars, DiffMatchPatch) {
+
+ /**
+ * Return a text as markdown.
+ * Currently only a little helper to replace apidoc-inline Links (#Group:Name).
+ * Should be replaced with a full markdown lib.
+ * @param string text
+ */
+ Handlebars.registerHelper('markdown', function(text) {
+ if ( ! text ) {
+ return text;
+ }
+ text = text.replace(/((\[(.*?)\])?\(#)((.+?):(.+?))(\))/mg, function(match, p1, p2, p3, p4, p5, p6) {
+ var link = p3 || p5 + '/' + p6;
+ return '' + link + '';
+ });
+ return text;
+ });
+
+ /**
+ * start/stop timer for simple performance check.
+ */
+ var timer;
+ Handlebars.registerHelper('startTimer', function(text) {
+ timer = new Date();
+ return '';
+ });
+
+ Handlebars.registerHelper('stopTimer', function(text) {
+ console.log(new Date() - timer);
+ return '';
+ });
+
+ /**
+ * Return localized Text.
+ * @param string text
+ */
+ Handlebars.registerHelper('__', function(text) {
+ return locale.__(text);
+ });
+
+ /**
+ * Console log.
+ * @param mixed obj
+ */
+ Handlebars.registerHelper('cl', function(obj) {
+ console.log(obj);
+ return '';
+ });
+
+ /**
+ * Replace underscore with space.
+ * @param string text
+ */
+ Handlebars.registerHelper('underscoreToSpace', function(text) {
+ return text.replace(/(_+)/g, ' ');
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('assign', function(name) {
+ if(arguments.length > 0) {
+ var type = typeof(arguments[1]);
+ var arg = null;
+ if(type === 'string' || type === 'number' || type === 'boolean') arg = arguments[1];
+ Handlebars.registerHelper(name, function() { return arg; });
+ }
+ return '';
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('nl2br', function(text) {
+ return _handlebarsNewlineToBreak(text);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('if_eq', function(context, options) {
+ var compare = context;
+ // Get length if context is an object
+ if (context instanceof Object && ! (options.hash.compare instanceof Object))
+ compare = Object.keys(context).length;
+
+ if (compare === options.hash.compare)
+ return options.fn(this);
+
+ return options.inverse(this);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('if_gt', function(context, options) {
+ var compare = context;
+ // Get length if context is an object
+ if (context instanceof Object && ! (options.hash.compare instanceof Object))
+ compare = Object.keys(context).length;
+
+ if(compare > options.hash.compare)
+ return options.fn(this);
+
+ return options.inverse(this);
+ });
+
+ /**
+ *
+ */
+ var templateCache = {};
+ Handlebars.registerHelper('subTemplate', function(name, sourceContext) {
+ if ( ! templateCache[name])
+ templateCache[name] = Handlebars.compile($('#template-' + name).html());
+
+ var template = templateCache[name];
+ var templateContext = $.extend({}, this, sourceContext.hash);
+ return new Handlebars.SafeString( template(templateContext) );
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('toLowerCase', function(value) {
+ return (value && typeof value === 'string') ? value.toLowerCase() : '';
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('splitFill', function(value, splitChar, fillChar) {
+ var splits = value.split(splitChar);
+ return new Array(splits.length).join(fillChar) + splits[splits.length - 1];
+ });
+
+ /**
+ * Convert Newline to HTML-Break (nl2br).
+ *
+ * @param {String} text
+ * @returns {String}
+ */
+ function _handlebarsNewlineToBreak(text) {
+ return ('' + text).replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + '
' + '$2');
+ }
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('each_compare_list_field', function(source, compare, options) {
+ var fieldName = options.hash.field;
+ var newSource = [];
+ if (source) {
+ source.forEach(function(entry) {
+ var values = entry;
+ values['key'] = entry[fieldName];
+ newSource.push(values);
+ });
+ }
+
+ var newCompare = [];
+ if (compare) {
+ compare.forEach(function(entry) {
+ var values = entry;
+ values['key'] = entry[fieldName];
+ newCompare.push(values);
+ });
+ }
+ return _handlebarsEachCompared('key', newSource, newCompare, options);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('each_compare_keys', function(source, compare, options) {
+ var newSource = [];
+ if (source) {
+ var sourceFields = Object.keys(source);
+ sourceFields.forEach(function(name) {
+ var values = {};
+ values['value'] = source[name];
+ values['key'] = name;
+ newSource.push(values);
+ });
+ }
+
+ var newCompare = [];
+ if (compare) {
+ var compareFields = Object.keys(compare);
+ compareFields.forEach(function(name) {
+ var values = {};
+ values['value'] = compare[name];
+ values['key'] = name;
+ newCompare.push(values);
+ });
+ }
+ return _handlebarsEachCompared('key', newSource, newCompare, options);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('each_compare_field', function(source, compare, options) {
+ return _handlebarsEachCompared('field', source, compare, options);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('each_compare_title', function(source, compare, options) {
+ return _handlebarsEachCompared('title', source, compare, options);
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('reformat', function(source, type){
+ if (type == 'json')
+ try {
+ return JSON.stringify(JSON.parse(source.trim()),null, " ");
+ } catch(e) {
+
+ }
+ return source
+ });
+
+ /**
+ *
+ */
+ Handlebars.registerHelper('showDiff', function(source, compare, options) {
+ var ds = '';
+ if(source === compare) {
+ ds = source;
+ } else {
+ if( ! source)
+ return compare;
+
+ if( ! compare)
+ return source;
+
+ var d = diffMatchPatch.diff_main(stripHtml(compare), stripHtml(source));
+ diffMatchPatch.diff_cleanupSemantic(d);
+ ds = diffMatchPatch.diff_prettyHtml(d);
+ ds = ds.replace(/¶/gm, '');
+ }
+ if(options === 'nl2br')
+ ds = _handlebarsNewlineToBreak(ds);
+
+ return ds;
+ });
+
+ /**
+ *
+ */
+ function _handlebarsEachCompared(fieldname, source, compare, options)
+ {
+ var dataList = [];
+ var index = 0;
+ if(source) {
+ source.forEach(function(sourceEntry) {
+ var found = false;
+ if (compare) {
+ compare.forEach(function(compareEntry) {
+ if(sourceEntry[fieldname] === compareEntry[fieldname]) {
+ var data = {
+ typeSame: true,
+ source: sourceEntry,
+ compare: compareEntry,
+ index: index
+ };
+ dataList.push(data);
+ found = true;
+ index++;
+ }
+ });
+ }
+ if ( ! found) {
+ var data = {
+ typeIns: true,
+ source: sourceEntry,
+ index: index
+ };
+ dataList.push(data);
+ index++;
+ }
+ });
+ }
+
+ if (compare) {
+ compare.forEach(function(compareEntry) {
+ var found = false;
+ if (source) {
+ source.forEach(function(sourceEntry) {
+ if(sourceEntry[fieldname] === compareEntry[fieldname])
+ found = true;
+ });
+ }
+ if ( ! found) {
+ var data = {
+ typeDel: true,
+ compare: compareEntry,
+ index: index
+ };
+ dataList.push(data);
+ index++;
+ }
+ });
+ }
+
+ var ret = '';
+ var length = dataList.length;
+ for (var index in dataList) {
+ if(index == (length - 1))
+ dataList[index]['_last'] = true;
+ ret = ret + options.fn(dataList[index]);
+ }
+ return ret;
+ }
+
+ var diffMatchPatch = new DiffMatchPatch();
+
+ /**
+ * Overwrite Colors
+ */
+ DiffMatchPatch.prototype.diff_prettyHtml = function(diffs) {
+ var html = [];
+ var pattern_amp = /&/g;
+ var pattern_lt = //g;
+ var pattern_para = /\n/g;
+ for (var x = 0; x < diffs.length; x++) {
+ var op = diffs[x][0]; // Operation (insert, delete, equal)
+ var data = diffs[x][1]; // Text of change.
+ var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')
+ .replace(pattern_gt, '>').replace(pattern_para, '¶
');
+ switch (op) {
+ case DIFF_INSERT:
+ html[x] = '' + text + '';
+ break;
+ case DIFF_DELETE:
+ html[x] = '' + text + '';
+ break;
+ case DIFF_EQUAL:
+ html[x] = '' + text + '';
+ break;
+ }
+ }
+ return html.join('');
+ };
+
+ /**
+ * Fixes html after comparison (#506, #538, #616, #825)
+ */
+ function stripHtml(html){
+ var div = document.createElement("div");
+ div.innerHTML = html;
+ return div.textContent || div.innerText || "";
+ }
+
+ // Exports
+ return Handlebars;
+});
diff --git a/doc/utils/send_sample_request.js b/doc/utils/send_sample_request.js
new file mode 100755
index 0000000..5c99b74
--- /dev/null
+++ b/doc/utils/send_sample_request.js
@@ -0,0 +1,246 @@
+define([
+ 'jquery',
+ 'lodash',
+ './utils/send_sample_request_utils'
+], function($, _, utils) {
+
+ var initDynamic = function() {
+ // Button send
+ $(".sample-request-send").off("click");
+ $(".sample-request-send").on("click", function(e) {
+ e.preventDefault();
+ var $root = $(this).parents("article");
+ var group = $root.data("group");
+ var name = $root.data("name");
+ var version = $root.data("version");
+ sendSampleRequest(group, name, version, $(this).data("sample-request-type"));
+ });
+
+ // Button clear
+ $(".sample-request-clear").off("click");
+ $(".sample-request-clear").on("click", function(e) {
+ e.preventDefault();
+ var $root = $(this).parents("article");
+ var group = $root.data("group");
+ var name = $root.data("name");
+ var version = $root.data("version");
+ clearSampleRequest(group, name, version);
+ });
+ }; // initDynamic
+
+ function sendSampleRequest(group, name, version, type)
+ {
+ var $root = $('article[data-group="' + group + '"][data-name="' + name + '"][data-version="' + version + '"]');
+
+ // Optional header
+ var header = {};
+ $root.find(".sample-request-header:checked").each(function(i, element) {
+ var group = $(element).data("sample-request-header-group-id");
+ $root.find("[data-sample-request-header-group=\"" + group + "\"]").each(function(i, element) {
+ var key = $(element).data("sample-request-header-name");
+ var value = element.value;
+ if (typeof element.optional === 'undefined') {
+ element.optional = true;
+ }
+ if ( ! element.optional && element.defaultValue !== '') {
+ value = element.defaultValue;
+ }
+ header[key] = value;
+ });
+ });
+
+
+ // create JSON dictionary of parameters
+ var param = {};
+ var paramType = {};
+ var bodyFormData = {};
+ var bodyFormDataType = {};
+ var bodyJson = '';
+ $root.find(".sample-request-param:checked").each(function(i, element) {
+ var group = $(element).data("sample-request-param-group-id");
+ var contentType = $(element).nextAll('.sample-header-content-type-switch').first().val();
+ if (contentType == "body-json"){
+ $root.find("[data-sample-request-body-group=\"" + group + "\"]").not(function(){
+ return $(this).val() == "" && $(this).is("[data-sample-request-param-optional='true']");
+ }).each(function(i, element) {
+ if (isJson(element.value)){
+ header['Content-Type'] = 'application/json';
+ bodyJson = element.value;
+ }
+ });
+ }else {
+ $root.find("[data-sample-request-param-group=\"" + group + "\"]").not(function(){
+ return $(this).val() == "" && $(this).is("[data-sample-request-param-optional='true']");
+ }).each(function(i, element) {
+ var key = $(element).data("sample-request-param-name");
+ var value = element.value;
+ if ( ! element.optional && element.defaultValue !== '') {
+ value = element.defaultValue;
+ }
+ if (contentType == "body-form-data"){
+ header['Content-Type'] = 'multipart/form-data'
+ bodyFormData[key] = value;
+ bodyFormDataType[key] = $(element).next().text();
+ }else {
+ param[key] = value;
+ paramType[key] = $(element).next().text();
+ }
+ });
+ }
+ });
+
+ // grab user-inputted URL
+ var url = $root.find(".sample-request-url").val();
+
+ //Convert {param} form to :param
+ url = url.replace(/{/,':').replace(/}/,'');
+
+ // Insert url parameter
+ var pattern = pathToRegexp(url, null);
+ var matches = pattern.exec(url);
+ for (var i = 1; i < matches.length; i++) {
+ var key = matches[i].substr(1);
+ if (param[key] !== undefined) {
+ url = url.replace(matches[i], encodeURIComponent(param[key]));
+
+ // remove URL parameters from list
+ delete param[key];
+ }
+ } // for
+
+ //handle nested objects and parsing fields
+ param = utils.handleNestedAndParsingFields(param, paramType);
+
+ //add url search parameter
+ if (header['Content-Type'] == 'application/json' ){
+ url = url + encodeSearchParams(param);
+ param = bodyJson;
+ }else if (header['Content-Type'] == 'multipart/form-data'){
+ url = url + encodeSearchParams(param);
+ param = bodyFormData;
+ }
+
+ $root.find(".sample-request-response").fadeTo(250, 1);
+ $root.find(".sample-request-response-json").html("Loading...");
+ refreshScrollSpy();
+
+ // send AJAX request, catch success or error callback
+ var ajaxRequest = {
+ url : url,
+ headers : header,
+ data : param,
+ type : type.toUpperCase(),
+ success : displaySuccess,
+ error : displayError
+ };
+
+ $.ajax(ajaxRequest);
+
+
+ function displaySuccess(data, status, jqXHR) {
+ var jsonResponse;
+ try {
+ jsonResponse = JSON.parse(jqXHR.responseText);
+ jsonResponse = JSON.stringify(jsonResponse, null, 4);
+ } catch (e) {
+ jsonResponse = jqXHR.responseText;
+ }
+ $root.find(".sample-request-response-json").text(jsonResponse);
+ refreshScrollSpy();
+ };
+
+ function displayError(jqXHR, textStatus, error) {
+ var message = "Error " + jqXHR.status + ": " + error;
+ var jsonResponse;
+ try {
+ jsonResponse = JSON.parse(jqXHR.responseText);
+ jsonResponse = JSON.stringify(jsonResponse, null, 4);
+ } catch (e) {
+ jsonResponse = jqXHR.responseText;
+ }
+
+ if (jsonResponse)
+ message += "\n" + jsonResponse;
+
+ // flicker on previous error to make clear that there is a new response
+ if($root.find(".sample-request-response").is(":visible"))
+ $root.find(".sample-request-response").fadeTo(1, 0.1);
+
+ $root.find(".sample-request-response").fadeTo(250, 1);
+ $root.find(".sample-request-response-json").text(message);
+ refreshScrollSpy();
+ };
+ }
+
+ function clearSampleRequest(group, name, version)
+ {
+ var $root = $('article[data-group="' + group + '"][data-name="' + name + '"][data-version="' + version + '"]');
+
+ // hide sample response
+ $root.find(".sample-request-response-json").html("");
+ $root.find(".sample-request-response").hide();
+
+ // reset value of parameters
+ $root.find(".sample-request-param").each(function(i, element) {
+ element.value = "";
+ });
+
+ // restore default URL
+ var $urlElement = $root.find(".sample-request-url");
+ $urlElement.val($urlElement.prop("defaultValue"));
+
+ refreshScrollSpy();
+ }
+
+ function refreshScrollSpy()
+ {
+ $('[data-spy="scroll"]').each(function () {
+ $(this).scrollspy("refresh");
+ });
+ }
+
+ function escapeHtml(str) {
+ var div = document.createElement("div");
+ div.appendChild(document.createTextNode(str));
+ return div.innerHTML;
+ }
+
+
+ /**
+ * is Json
+ */
+ function isJson(str) {
+ if (typeof str == 'string') {
+ try {
+ var obj=JSON.parse(str);
+ if(typeof obj == 'object' && obj ){
+ return true;
+ }else{
+ return false;
+ }
+ } catch(e) {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * encode Search Params
+ */
+ function encodeSearchParams(obj) {
+ const params = [];
+ Object.keys(obj).forEach((key) => {
+ let value = obj[key];
+ params.push([key, encodeURIComponent(value)].join('='));
+ })
+ return params.length === 0 ? '' : '?' + params.join('&');
+ }
+
+ /**
+ * Exports.
+ */
+ return {
+ initDynamic: initDynamic
+ };
+
+});
diff --git a/doc/utils/send_sample_request_utils.js b/doc/utils/send_sample_request_utils.js
new file mode 100755
index 0000000..5fef426
--- /dev/null
+++ b/doc/utils/send_sample_request_utils.js
@@ -0,0 +1,51 @@
+//this block is used to make this module works with Node (CommonJS module format)
+if (typeof define !== 'function') {
+ var define = require('amdefine')(module)
+}
+
+define([], function () {
+
+ function handleNestedFields(object, key, params, paramType) {
+ var attributes = key.split('.');
+ var field = attributes[0];
+ params.push(field);
+ if (attributes.length > 1 && paramType[params.join('.')] == 'Object') {
+ var nestedField = attributes.slice(1).join('.');
+ if (!object[field])
+ object[field] = {};
+ if (typeof object[field] == 'object') {
+ object[field][nestedField] = object[key];
+ delete object[key];
+ handleNestedFields(object[field], nestedField, params, paramType);
+ }
+ }
+ }
+
+ function handleNestedFieldsForAllParams(param, paramType) {
+ var result = Object.assign({}, param);
+ Object.keys(result).forEach(function (key) {
+ handleNestedFields(result, key, [], paramType);
+ });
+ return result
+ }
+
+ function handleArraysAndObjectFields(param, paramType) {
+ var result = Object.assign({}, param);
+ Object.keys(paramType).forEach(function (key) {
+ if (result[key] && (paramType[key].endsWith('[]') || paramType[key] === 'Object')) {
+ try {
+ result[key] = JSON.parse(result[key]);
+ } catch (e) {;}
+ }
+ });
+ return result
+ }
+
+ function handleNestedAndParsingFields(param, paramType) {
+ var result = handleArraysAndObjectFields(param, paramType);
+ result = handleNestedFieldsForAllParams(result, paramType);
+ return result;
+ }
+
+ return {handleNestedAndParsingFields};
+});
diff --git a/doc/vendor/bootstrap.min.css b/doc/vendor/bootstrap.min.css
new file mode 100644
index 0000000..5b96335
--- /dev/null
+++ b/doc/vendor/bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:"Glyphicons Halflings";src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/doc/vendor/bootstrap.min.js b/doc/vendor/bootstrap.min.js
new file mode 100644
index 0000000..eb0a8b4
--- /dev/null
+++ b/doc/vendor/bootstrap.min.js
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(t){"use strict";var e=jQuery.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||3this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(idocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},s.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},s.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:t},m.prototype.init=function(t,e,i){if(this.enabled=!0,this.type=t,this.$element=g(e),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&g(document).find(g.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),n=o.length;n--;){var s=o[n];if("click"==s)this.$element.on("click."+this.type,this.options.selector,g.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",r="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,g.proxy(this.enter,this)),this.$element.on(r+"."+this.type,this.options.selector,g.proxy(this.leave,this))}}this.options.selector?this._options=g.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.getOptions=function(t){var e=this.$element.data();for(var i in e)e.hasOwnProperty(i)&&-1!==g.inArray(i,o)&&delete e[i];return(t=g.extend({},this.getDefaults(),e,t)).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.sanitize&&(t.template=n(t.template,t.whiteList,t.sanitizeFn)),t},m.prototype.getDelegateOptions=function(){var i={},o=this.getDefaults();return this._options&&g.each(this._options,function(t,e){o[t]!=e&&(i[t]=e)}),i},m.prototype.enter=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusin"==t.type?"focus":"hover"]=!0),e.tip().hasClass("in")||"in"==e.hoverState)e.hoverState="in";else{if(clearTimeout(e.timeout),e.hoverState="in",!e.options.delay||!e.options.delay.show)return e.show();e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show)}},m.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},m.prototype.leave=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusout"==t.type?"focus":"hover"]=!1),!e.isInStateTrue()){if(clearTimeout(e.timeout),e.hoverState="out",!e.options.delay||!e.options.delay.hide)return e.hide();e.timeout=setTimeout(function(){"out"==e.hoverState&&e.hide()},e.options.delay.hide)}},m.prototype.show=function(){var t=g.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var e=g.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!e)return;var i=this,o=this.tip(),n=this.getUID(this.type);this.setContent(),o.attr("id",n),this.$element.attr("aria-describedby",n),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,r=a.test(s);r&&(s=s.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(g(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),h=o[0].offsetWidth,d=o[0].offsetHeight;if(r){var p=s,c=this.getPosition(this.$viewport);s="bottom"==s&&l.bottom+d>c.bottom?"top":"top"==s&&l.top-dc.width?"left":"left"==s&&l.left-ha.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;ha.right&&(n.left=a.left+a.width-d)}return n},m.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},m.prototype.getUID=function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},m.prototype.tip=function(){if(!this.$tip&&(this.$tip=g(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},m.prototype.enable=function(){this.enabled=!0},m.prototype.disable=function(){this.enabled=!1},m.prototype.toggleEnabled=function(){this.enabled=!this.enabled},m.prototype.toggle=function(t){var e=this;t&&((e=g(t.currentTarget).data("bs."+this.type))||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e))),t?(e.inState.click=!e.inState.click,e.isInStateTrue()?e.enter(e):e.leave(e)):e.tip().hasClass("in")?e.leave(e):e.enter(e)},m.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},m.prototype.sanitizeHtml=function(t){return n(t,this.options.whiteList,this.options.sanitizeFn)};var e=g.fn.tooltip;g.fn.tooltip=function i(o){return this.each(function(){var t=g(this),e=t.data("bs.tooltip"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.tooltip",e=new m(this,i)),"string"==typeof o&&e[o]())})},g.fn.tooltip.Constructor=m,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=e,this}}(jQuery),function(n){"use strict";var s=function(t,e){this.init("popover",t,e)};if(!n.fn.tooltip)throw new Error("Popover requires tooltip.js");s.VERSION="3.4.1",s.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),((s.prototype=n.extend({},n.fn.tooltip.Constructor.prototype)).constructor=s).prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===o&&(i=this.sanitizeHtml(i))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===o?"html":"append"](i)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(i);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},s.prototype.hasContent=function(){return this.getTitle()||this.getContent()},s.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var t=n.fn.popover;n.fn.popover=function e(o){return this.each(function(){var t=n(this),e=t.data("bs.popover"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.popover",e=new s(this,i)),"string"==typeof o&&e[o]())})},n.fn.popover.Constructor=s,n.fn.popover.noConflict=function(){return n.fn.popover=t,this}}(jQuery),function(s){"use strict";function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(document.body)?s(window):s(t),this.options=s.extend({},n.DEFAULTS,e),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",s.proxy(this.process,this)),this.refresh(),this.process()}function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scrollspy"),i="object"==typeof o&&o;e||t.data("bs.scrollspy",e=new n(this,i)),"string"==typeof o&&e[o]()})}n.VERSION="3.4.1",n.DEFAULTS={offset:10},n.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},n.prototype.refresh=function(){var t=this,o="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),s.isWindow(this.$scrollElement[0])||(o="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=s(this),e=t.data("target")||t.attr("href"),i=/^#./.test(e)&&s(e);return i&&i.length&&i.is(":visible")&&[[i[o]().top+n,e]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},n.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),o<=e)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e=n[t]&&(n[t+1]===undefined||e .active"),n=i&&r.support.transition&&(o.length&&o.hasClass("fade")||!!e.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),n?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&n?o.one("bsTransitionEnd",s).emulateTransitionEnd(a.TRANSITION_DURATION):s(),o.removeClass("in")};var t=r.fn.tab;r.fn.tab=e,r.fn.tab.Constructor=a,r.fn.tab.noConflict=function(){return r.fn.tab=t,this};var i=function(t){t.preventDefault(),e.call(r(this),"show")};r(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(l){"use strict";var h=function(t,e){this.options=l.extend({},h.DEFAULTS,e);var i=this.options.target===h.DEFAULTS.target?l(this.options.target):l(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",l.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",l.proxy(this.checkPositionWithEventLoop,this)),this.$element=l(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function i(o){return this.each(function(){var t=l(this),e=t.data("bs.affix"),i="object"==typeof o&&o;e||t.data("bs.affix",e=new h(this,i)),"string"==typeof o&&e[o]()})}h.VERSION="3.4.1",h.RESET="affix affix-top affix-bottom",h.DEFAULTS={offset:0,target:window},h.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return n=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error("Null input. (diff_main)");if(a==b)return a?[[0,a]]:[];"undefined"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);var f=this.diff_commonSuffix(a,b),g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,
+b,e,d);c&&a.unshift([0,c]);g&&a.push([0,g]);this.diff_cleanupMerge(a);return a};
+diff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[1,b]];if(!b)return[[-1,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[1,e.substring(0,g)],[0,f],[1,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=-1),c):1==f.length?[[-1,a],[1,b]]:(e=this.diff_halfMatch_(a,b))?(f=e[0],a=e[1],g=e[2],b=e[3],e=e[4],f=this.diff_main(f,g,c,d),c=this.diff_main(a,b,c,d),f.concat([[0,e]],c)):c&&100c);v++){for(var n=-v+r;n<=v-t;n+=2){var l=g+n,m;m=n==-v||n!=v&&j[l-1]d)t+=2;else if(s>e)r+=2;else if(q&&(l=g+k-n,0<=l&&l=
+u)return this.diff_bisectSplit_(a,b,m,s,c)}}for(n=-v+p;n<=v-w;n+=2){l=g+n;u=n==-v||n!=v&&i[l-1]d)w+=2;else if(m>e)p+=2;else if(!q&&(l=g+k-n,0<=l&&(l=u)))return this.diff_bisectSplit_(a,b,m,s,c)}}return[[-1,a],[1,b]]};
+diff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};
+diff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b="",c=0,f=-1,g=d.length;fd?a=a.substring(c-d):c=a.length?[h,j,n,l,g]:null}if(0>=this.Diff_Timeout)return null;
+var d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.lengthd[4].length?g:d:d:g;var j;a.length>b.length?(g=h[0],d=h[1],e=h[2],j=h[3]):(e=h[0],j=h[1],g=h[2],d=h[3]);h=h[4];return[g,d,e,j,h]};
+diff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,j=0,i=0;f=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[0,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[0,b.substring(0,e)]),a[f-1][0]=1,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=-1,a[f+1][1]=b.substring(e),f++;f++}f++}};
+diff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_),c=g&&c.match(diff_match_patch.linebreakRegex_),d=h&&d.match(diff_match_patch.linebreakRegex_),i=c&&a.match(diff_match_patch.blanklineEndRegex_),j=d&&b.match(diff_match_patch.blanklineStartRegex_);
+return i||j?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c=i&&(i=k,g=d,h=e,j=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-1,1),c--),a[c][1]=
+h,j?a[c+1][1]=j:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\s/;diff_match_patch.linebreakRegex_=/[\r\n]/;diff_match_patch.blanklineEndRegex_=/\n\r?\n$/;diff_match_patch.blanklineStartRegex_=/^\r?\n\r?\n/;
+diff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,j=!1,i=!1;fb)break;e=c;f=d}return a.length!=g&&-1===a[g][0]?f:f+(b-e)};
+diff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=//g,f=/\n/g,g=0;g");switch(h){case 1:b[g]=''+j+"";break;case -1:b[g]=''+j+"";break;case 0:b[g]=""+j+""}}return b.join("")};
+diff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;ci)throw Error("Invalid number in diff_fromDelta: "+h);h=a.substring(e,e+=i);"="==f[g].charAt(0)?c[d++]=[0,h]:c[d++]=[-1,h];break;default:if(f[g])throw Error("Invalid diff operation in diff_fromDelta: "+
+f[g]);}}if(e!=a.length)throw Error("Delta length ("+e+") does not equal source text length ("+a.length+").");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error("Null input. (match_main)");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};
+diff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return!f.Match_Distance?g?1:e:e+g/f.Match_Distance}if(b.length>this.Match_MaxBits)throw Error("Pattern too long for this browser.");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));for(var j=1<=i;p--){var w=e[a.charAt(p-1)];k[p]=0===t?(k[p+1]<<1|1)&w:(k[p+1]<<1|1)&w|((r[p+1]|r[p])<<1|1)|r[p+1];if(k[p]&j&&(w=d(t,p-1),w<=g))if(g=w,h=p-1,h>c)i=Math.max(1,2*c-h);else break}if(d(t+1,c)>g)break;r=k}return h};
+diff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c=2*this.Patch_Margin&&
+e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}1!==i&&(f+=k.length);-1!==i&&(g+=k.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};diff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;cthis.Match_MaxBits){if(j=this.match_main(b,h.substring(0,this.Match_MaxBits),g),-1!=j&&(i=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==i||j>=i))j=-1}else j=this.match_main(b,h,g);
+if(-1==j)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=j-g,g=-1==i?b.substring(j,j+h.length):b.substring(j,i+this.Match_MaxBits),h==g)b=b.substring(0,j)+this.diff_text2(a[f].diffs)+b.substring(j+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);for(var h=0,k,i=0;ie[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||0!=e[e.length-1][0]?(e.push([0,
+c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};
+diff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c2*b?(h.length1+=i.length,e+=i.length,j=!1,h.diffs.push([g,i]),d.diffs.shift()):(i=i.substring(0,b-h.length1-this.Patch_Margin),h.length1+=i.length,e+=i.length,0===g?(h.length2+=i.length,f+=i.length):j=!1,h.diffs.push([g,i]),i==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(i.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);i=this.diff_text1(d.diffs).substring(0,this.Patch_Margin);""!==i&&
+(h.length1+=i.length,h.length2+=i.length,0!==h.diffs.length&&0===h.diffs[h.diffs.length-1][0]?h.diffs[h.diffs.length-1][1]+=i:h.diffs.push([0,i]));j||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;bc;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return a||0===a?p(a)&&0===a.length?!0:!1:!0}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===n.call(a):!1};b.isArray=p},function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;l>h;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(6),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;c>f;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=r.COMPILER_REVISION;if(b!==c){if(c>b){var d=r.REVISION_CHANGES[c],e=r.REVISION_CHANGES[b];throw new q["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new q["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=o.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;i>h&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new q["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!==f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new q["default"]("No environment passed to template");if(!a||!a.main)throw new q["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new q["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:o.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=o.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new q["default"]("must pass block params");if(a.useDepths&&!g)throw new q["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return g&&b!==g[0]&&(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var d=void 0;if(c.fn&&c.fn!==i&&(c.data=r.createFrame(c.data),d=c.data["partial-block"]=c.fn,d.partials&&(c.partials=o.extend({},c.partials,d.partials))),void 0===a&&d&&(a=d),void 0===a)throw new q["default"]("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?r.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),o.extend(b,g)}return b}var l=c(3)["default"],m=c(1)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var n=c(5),o=l(n),p=c(6),q=m(p),r=c(4)},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b.__esModule=!0;var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if("Program"===a.type)return a;h["default"].yy=n,n.locInfo=function(a){return new n.SourceLocation(b&&b.srcName,a)};var c=new j["default"](b);return c.accept(h["default"].parse(a))}var e=c(1)["default"],f=c(3)["default"];b.__esModule=!0,b.parse=d;var g=c(23),h=e(g),i=c(24),j=e(i),k=c(26),l=f(k),m=c(5);b.parser=h["default"];var n={};m.extend(n,l)},function(a,b){"use strict";var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],
+48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b.__esModule=!0,b["default"]=c},function(a,b,c){"use strict";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)["default"];b.__esModule=!0;var j=c(25),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;j>i;i++){var k=d[i],l=this.accept(k);if(l){var m=e(d,i,c),n=f(d,i,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&g(d,i,!0),l.open&&h(d,i,!0),b&&q&&(g(d,i),h(d,i)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[i-1].original)[1])),b&&o&&(g((k.program||k.inverse).body),h(d,i)),b&&p&&(g(d,i),h((k.inverse||k.program).body))}}return a},d.prototype.BlockStatement=d.prototype.DecoratorBlock=d.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),!this.options.ignoreStandalone&&e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.Decorator=d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(){this.parents=[]}function e(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function f(a){e.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function g(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var h=c(1)["default"];b.__esModule=!0;var i=c(6),j=h(i);d.prototype={constructor:d,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!d.prototype[c.type])throw new j["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new j["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;c>b;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new j["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:e,Decorator:e,BlockStatement:f,DecoratorBlock:f,PartialStatement:g,PartialBlockStatement:function(a){g.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:e,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new q["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;i>h;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new q["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)["default"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;cc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}b=this.children.length;for(var c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;c>d;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){h(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");d>c;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:o.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=n["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&n["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||n["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,c=this.options.blockParams.length;c>b;b++){var d=this.options.blockParams[b],e=d&&l.indexOf(d,a);if(d&&e>=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;g>f;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var g=c(1)["default"];b.__esModule=!0;var h=c(4),i=c(6),j=g(i),k=c(5),l=c(29),m=g(l);e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=h.COMPILER_REVISION,b=h.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return k.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;i>h;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new j["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;i>h;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new m["default"](this.options.srcName),this.decorators=new m["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a));for(var h=b.length;h>c;c++)this.replaceStack(function(e){var f=g.nameLookup(e,b[c],a);return d?[" && ",f]:[" != null ? ",f," : ",e]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),
+d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:e,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;g>f;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);null==h?(this.context.programs.push(""),h=this.context.programs.length,d.index=h,d.name="program"+h,this.context.programs[h]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[h]=e.decorators,this.context.environments[h]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams):(d.index=h,d.name="program"+h,this.useDepths=this.useDepths||d.useDepths,this.useBlockParams=this.useBlockParams||d.useBlockParams)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof d||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,e=void 0,f=void 0;if(!this.isInline())throw new j["default"]("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)c=[g.value],b=["(",c],f=!0;else{e=!0;var h=this.incrStack();b=["((",this.push(h)," = ",g,")"],c=this.topStack()}var i=a.call(this,c);f||this.popStack(),e&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var e=a[b];if(e instanceof d)this.compileStack.push(e);else{var f=this.incrStack();this.pushSource([f," = ",e,";"]),this.compileStack.push(f)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new j["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : {}");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=e.RESERVED_WORDS={},c=0,d=a.length;d>c;c++)b[a[c]]=!0}(),e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b["default"]=e,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b,c){if(f.isArray(a)){for(var d=[],e=0,g=a.length;g>e;e++)d.push(b.wrap(a[e],c));return d}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}b.__esModule=!0;var f=c(5),g=void 0;try{}catch(h){}g||(g=function(a,b,c,d){this.src="",d&&this.add(d)},g.prototype={add:function(a){f.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){f.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;c>b;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new g(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof g?a:(a=d(a,this,b),new g(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;e>c;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b["default"]=e,a.exports=b["default"]}])});
\ No newline at end of file
diff --git a/doc/vendor/jquery.min.js b/doc/vendor/jquery.min.js
new file mode 100644
index 0000000..a1c07fd
--- /dev/null
+++ b/doc/vendor/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/