swagger-input for hk-bcs-data
{
"swagger": "2.0",
"info": {
"description": "Sample Swagger file for REST Endpoints",
"version": "1.0.0",
"title": "API Store - golden-pipeline-demo-service",
"termsOfService": "https://manulife.com/yourterms",
"contact": {
"email": "yourname@manulife.com"
},
"license": {
"name": "Manulife Asia",
"url": "http://www.manulife.com"
}
},
"host": "golden-pipeline-demo-service.manulife.com",
"schemes": [
"https"
],
"paths": {
"/user/{appId}/userList": {
"get": {
"tags": [
"User"
],
"summary": "Search users by given condition",
"description": "Search users by given condition",
"operationId": "listUser",
"produces": [
"application/json"
],
"parameters": [
{
"name": "appId",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "email",
"in": "query",
"description": "email",
"required": false,
"type": "string"
},
{
"name": "userId",
"in": "query",
"description": "userId",
"required": false,
"type": "string"
},
{
"name": "pageNum",
"in": "query",
"description": "pageNum",
"required": true,
"type": "integer",
"default": 1
},
{
"name": "pageSize",
"in": "query",
"description": "pageSize",
"required": true,
"type": "integer",
"default": 20
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/userVO"
}
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
},
"delete": {
"tags": [
"User"
],
"summary": "Delete user",
"description": "Delete user",
"operationId": "deleteUser",
"produces": [
"application/json"
],
"parameters": [
{
"name": "appId",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "userId",
"in": "path",
"description": "userId",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "successful operation"
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/userVO"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/userVO"
}
}
],
"responses": {
"201": {
"description": "Created"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/userVO"
}
},
"400": {
"description": "Invalid Id supplied"
},
"404": {
"description": "Not Found"
}
}
}
},
"/user/{appId}/roleList": {
"get": {
"tags": [
"User"
],
"summary": "Get all roles",
"description": "Get all roles",
"operationId": "listRole",
"produces": [
"application/json"
],
"parameters": [
{
"name": "appId",
"in": "path",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/user/{appId}/role/{roleId}": {
"get": {
"tags": [
"User"
],
"summary": "Get role by roleId",
"description": "Get role by roleId",
"operationId": "getRole",
"produces": [
"application/json"
],
"parameters": [
{
"name": "appId",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "roleId",
"in": "path",
"required": true,
"type": "integer"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/roleVO"
}
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/user/{appId}/moduleList": {
"get": {
"tags": [
"User"
],
"summary": "Get modules of certain app",
"description": "Get modules of certain app",
"operationId": "listModule",
"produces": [
"application/json"
],
"parameters": [
{
"name": "appId",
"in": "path",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/app/allModuleList": {
"get": {
"tags": [
"App"
],
"summary": "Get modules of all app",
"description": "Get modules of all app",
"operationId": "listAllModule",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/appVO"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/productCategory/productCategoryList": {
"get": {
"tags": [
"Product"
],
"summary": "Get All ProductCategory",
"description": "Get All ProductCategory",
"operationId": "listProductCategory",
"produces": [
"application/json"
],
"parameters": [
{
"name": "pageNum",
"in": "query",
"required": true,
"type": "integer"
},
{
"name": "pageSize",
"in": "query",
"required": true,
"type": "integer"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/productCategoryVO"
}
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Invalid parameter supplied"
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Product"
],
"summary": "update a ProductCategory",
"description": "update a ProductCategory",
"operationId": "updateProductCategory",
"produces": [
"application/json"
],
"parameters": [
{
"name": "productCategoryVO",
"in": "body",
"description": "ProductCategory info",
"required": true,
"schema": {
"ref": "#/definitions/productCategoryVO"
}
},
"400": {
"description": "invalid parameter"
},
"404": {
"description": "Not Found"
}
}
}
},
"/product/overrideRateList": {
"get": {
"tags": [
"Product"
],
"summary": "Override Rate Enquiry",
"description": "Override Rate Enquiry",
"operationId": "listOverrideRate",
"produces": [
"application/json"
],
"parameters": [
{
"name": "firmCode",
"in": "query",
"type": "string"
},
{
"name": "firmName",
"in": "query",
"type": "string"
},
{
"name": "productCategory",
"in": "query",
"type": "string"
},
{
"name": "startEffectiveDate",
"in": "query",
"type": "string"
},
{
"name": "endEffectiveDate",
"in": "query",
"type": "string"
},
{
"name": "pageNum",
"in": "query",
"type": "integer",
"default": 1
},
{
"name": "pageSize",
"in": "query",
"type": "integer",
"default": 10
},
{
"name": "sort",
"in": "query",
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/product/overrideRate/{recordId}": {
"delete": {
"tags": [
"Product"
],
"summary": "Override Rate Deletion",
"description": "Override Rate Deletion",
"operationId": "deleteOverrideRate",
"produces": [
"application/json"
],
"parameters": [
{
"name": "recordId",
"in": "path",
"type": "array",
"required": true,
"collectionFormat": "csv",
"items": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "successful operation"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/product/overrideRate/deletionMsg/{recordId}": {
"get": {
"tags": [
"Product"
],
"summary": "Override Rate Deletion Message",
"description": "Override Rate Deletion Message",
"operationId": "checkOverrideRateDeletion",
"produces": [
"application/json"
],
"parameters": [
{
"name": "recordId",
"in": "path",
"type": "array",
"required": true,
"collectionFormat": "csv",
"items": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/salesAllowanceRateListVO"
}
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/messageVO"
}
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/common/enquiryOptions/": {
"get": {
"tags": [
"Common"
],
"description": "Get all enquiry options data",
"produces": [
"application/json"
],
"parameters": [
{
"name": "pageName",
"in": "query",
"description": "UI page name",
"required": true,
"type": "string",
"format": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/prodCateMappingListVO"
}
},
"400": {
"description": "Invalid parameter supplied"
},
"404": {
"description": "Not Found"
}
}
}
},
"/ProdCateMapping/{recordIdList}": {
"delete": {
"tags": [
"Product"
],
"summary": "ProductCategory Mapping Deletion",
"description": "ProductCategory Mapping Deletion",
"operationId": "deleteProdCateMapping",
"produces": [
"application/json"
],
"parameters": [
{
"name": "recordIdList",
"in": "path",
"required": true,
"type": "array",
"collectionFormat": "csv",
"items": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Invalid parameter supplied"
},
"404": {
"description": "Not Found"
}
}
}
},
"/uploadProductCategoryMapping/verification": {
"post": {
"tags": [
"Uploading"
],
"summary": "Uploads an ProductCategory Excel",
"description": "Upload ProductCategory Excel",
"operationId": "uploadProdCateMapping",
"produces": [
"application/json"
],
"consumes": [
"multipart/form-data"
],
"parameters": [
{
"name": "file",
"in": "formData",
"type": "file",
"required": true
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"ref": "#/definitions/exceptionResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/prodCateMappingUploadingVO"
}
},
"required": true
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/overrideRateVO"
}
},
"required": true
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"ref": "#/definitions/overrideRateValidationVO"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/upload/salesAllowanceRate/verification": {
"post": {
"tags": [
"Uploading"
],
"summary": "Upload SalesAllowanceRate Excel",
"description": "Upload SalesAllowanceRate Excel",
"operationId": "SalesAllowanceRate",
"produces": [
"application/json"
],
"consumes": [
"multipart/form-data"
],
"parameters": [
{
"name": "file",
"in": "formData",
"type": "file",
"required": true
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"type": "array",
"items": {
"ref": "#/definitions/salesAllowanceRateVO"
}
},
"required": true
}
],
"responses": {
"200": {
"description": "successful operation"
},
"400": {
"description": "Invalid parameter supplied"
},
"404": {
"description": "Not Found"
}
}
}
},
"/remunerationEnquiry/transaction": {
"get": {
"tags": [
"Remuneration Enquiry"
],
"summary": "Enquiry the transaction remuneration",
"description": "Enquiry the transaction remuneration",
"operationId": "ListTransactionRemuneration",
"produces": [
"application/json"
],
"parameters": [
{
"name": "firmCode",
"in": "query",
"type": "string"
},
{
"name": "firmName",
"in": "query",
"type": "string"
},
{
"name": "policyNum",
"in": "query",
"type": "string"
},
{
"name": "startTransactionDate",
"in": "query",
"type": "string",
"pattern": "\d4-\d2-\d2"
},
{
"name": "endTransactionDate",
"in": "query",
"type": "string",
"pattern": "\d4-\d2-\d2"
},
{
"name": "startCvgEffectiveDate",
"in": "query",
"type": "string",
"pattern": "\d4-\d2-\d2"
},
{
"name": "endCvgEffectiveDate",
"in": "query",
"type": "string",
"pattern": "\d4-\d2-\d2"
},
{
"name": "productCategory",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "planName",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "planCode",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "trancheId",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "pageNum",
"in": "query",
"type": "integer",
"default": 1
},
{
"name": "pageSize",
"in": "query",
"type": "integer",
"default": 10
},
{
"name": "sort",
"in": "query",
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/policyRemunerationListVO"
}
},
"400": {
"description": "Invalid parameter supplied",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
}
}
}
},
"/remunerationEnquiry/firm": {
"get": {
"tags": [
"Remuneration Enquiry"
],
"summary": "Enquiry the firm level remuneration",
"description": "Enquiry the firm level remuneration",
"operationId": "ListFirmRemuneration",
"produces": [
"application/json"
],
"parameters": [
{
"name": "firmCode",
"in": "query",
"type": "string"
},
{
"name": "firmName",
"in": "query",
"type": "string"
},
{
"name": "startMonth",
"in": "query",
"type": "integer"
},
{
"name": "endMonth",
"in": "query",
"type": "integer"
},
{
"name": "commissionRun",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "productCategory",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "planName",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "planCode",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "trancheId",
"in": "query",
"type": "array",
"items": {
"type": "string"
}
},
{
"name": "pageNum",
"in": "query",
"type": "integer",
"default": 1
},
{
"name": "pageSize",
"in": "query",
"type": "integer",
"default": 10
},
{
"name": "sort",
"in": "query",
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"ref": "#/definitions/exceptionResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"ref": "#/definitions/pageable"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"ref": "#/definitions/productCategoryVO"
}
}
}
},
"productCategoryVO": {
"title": "ProductVO",
"description": "Product info",
"type": "object",
"properties": {
"productCatCode": {
"type": "string",
"format": "string"
},
"productCatDesc": {
"type": "string",
"format": "string"
}
}
},
"enquiryOptionsVO": {
"type": "object",
"title": "enquiryOptionsVO",
"properties": {
"productCategoryList": {
"type": "array",
"items": {
"type": "string"
}
},
"planCodeList": {
"type": "array",
"items": {
"type": "string"
}
},
"planNameList": {
"type": "array",
"items": {
"type": "string"
}
},
"trancheIdList": {
"type": "array",
"items": {
"type": "string"
}
},
"firmCodeList": {
"type": "array",
"items": {
"type": "string"
}
},
"firmNameList": {
"type": "array",
"items": {
"type": "string"
}
},
"effectiveDateList": {
"type": "array",
"items": {
"type": "string"
}
},
"policyNoList": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"pageable": {
"title": "Pageable",
"description": "page parameter",
"type": "object",
"properties": {
"count": {
"type": "integer",
"format": "int64"
},
"pageNum": {
"type": "integer",
"example": 1
},
"pageSize": {
"type": "integer"
}
}
},
"sortObject": {
"title": "SortObject",
"description": "sort object",
"type": "object",
"properties": {
"sortName": {
"type": "string",
"example": "firmCode"
},
"sortByAsc": {
"type": "boolean"
}
}
},
"userVO": {
"title": "UserVO",
"description": "user Profile information.",
"type": "object",
"required": [
"userId"
],
"properties": {
"userId": {
"type": "string",
"format": "string",
"maxLength": 50
},
"username": {
"type": "string",
"maxLength": 50
},
"emailAddress": {
"type": "string",
"format": "email",
"pattern": "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+ref": "#/definitions/roleVO"
}
}
}
},
"userListVO": {
"title": "UserListVO",
"description": "pageable userVO list",
"allOf": [
{
"ref": "#/definitions/userVO"
}
}
}
}
]
},
"roleVO": {
"title": "RoleVO",
"description": "user role information",
"type": "object",
"required": [
"roleId"
],
"properties": {
"appId": {
"type": "string"
},
"appName": {
"type": "string"
},
"roleId": {
"type": "integer"
},
"roleName": {
"type": "string"
},
"modules": {
"type": "array",
"items": {
"ref": "#/definitions/moduleVO"
}
}
}
},
"moduleVO": {
"title": "ModuleVO",
"description": "Module Information",
"type": "object",
"properties": {
"moduleId": {
"type": "integer"
},
"moduleName": {
"type": "string"
}
}
},
"appVO": {
"title": "AppVO",
"description": "Application Information",
"type": "object",
"required": [
"appId"
],
"properties": {
"appId": {
"type": "string"
},
"appName": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"ref": "#/definitions/baseRateVO"
},
{
"type": "object",
"properties": {
"productCatCode": {
"type": "string",
"example": "CI"
}
}
}
]
},
"overrideRateRecordVO": {
"title": "OverrideRateRecordVO",
"description": "Override Rate Detail",
"allOf": [
{
"ref": "#/definitions/pageable"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"ref": "#/definitions/overrideRateVO"
},
{
"type": "object",
"properties": {
"rowNum": {
"type": "integer"
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
]
},
"salesAllowanceRateVO": {
"title": "SalesAllowanceRateVO",
"description": "Sales Allowance Rate Detail",
"discriminator": "type",
"allOf": [
{
"ref": "#/definitions/salesAllowanceRateVO"
},
{
"type": "object",
"properties": {
"firmName": {
"type": "string",
"example": "WIN FINANCE WM LIMITED"
},
"planName": {
"type": "string",
"example": "Premierplus Critical Illness Benefit (10-yr premium payment)"
},
"recordId": {
"type": "integer"
}
}
}
]
},
"salesAllowanceRateListVO": {
"title": "SalesAllowanceRateListVO",
"description": "Sales Allowance Rate List",
"allOf": [
{
"ref": "#/definitions/salesAllowanceRateRecordVO"
}
}
}
}
]
},
"salesAllowanceRateValidateVO": {
"title": "SalesAllowanceRateValidateVO",
"description": "Sales Allowance Rate Upload data",
"type": "object",
"allOf": [
{
"ref": "#/definitions/baseRemunerationVO"
},
{
"type": "object",
"properties": {
"policyNo": {
"type": "string",
"example": "CN310"
},
"transactionDate": {
"type": "string",
"format": "date",
"example": "2020-07-01"
},
"coverageLayerIssueDate": {
"type": "string",
"format": "date",
"example": "2020-07-01"
},
"premiumReceived": {
"type": "number",
"format": "double",
"example": 2000
},
"overrideRate": {
"type": "number",
"format": "double",
"example": 0.2
},
"saRate": {
"type": "number",
"format": "double",
"example": 0.2
}
}
}
]
},
"policyRemunerationVO": {
"title": "policyRemunerationVO",
"description": "Policy Remuneration VO",
"discriminator": "type",
"allOf": [
{
"ref": "#/definitions/baseRemunerationVO"
},
{
"type": "object",
"properties": {
"commissionRun": {
"type": "string",
"example": "1"
},
"month": {
"type": "integer",
"example": 8
}
}
}
]
},
"txnRemunerationListVO": {
"title": "TransactionRemunerationListVO",
"description": "Transaction Remuneration List",
"allOf": [
{
"ref": "#/definitions/txnRemunerationVO"
}
}
}
}
]
},
"policyRemunerationListVO": {
"title": "PolicyRemunerationListVO",
"description": "Policy Remuneration List",
"allOf": [
{
"ref": "#/definitions/policyRemunerationVO"
}
}
}
}
]
},
"firmRemunerationListVO": {
"title": "FirmRemunerationListVO",
"description": "Firm Remuneration List",
"allOf": [
{
"ref": "#/definitions/firmRemunerationVO"
}
}
}
}
]
},
"exceptionResponse": {
"title": "ExceptionResponse",
"description": "ExceptionResponse",
"type": "object",
"properties": {
"errorMsg": {
"type": "string"
}
}
},
"messageVO": {
"title": "MessageVO",
"description": "MessageVO",
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"externalDocs": {
"description": "Find out more about Swagger",
"url": "http://swagger.io"
},
"securityDefinitions": {
"recordtore_auth": {
"type": "oauth2",
"authorizationUrl": "http://www.manulife.com/api/authenticationUrl",
"flow": "implicit",
"scopes": {
"write:record": "modify record in ML",
"read:record": "read your record"
}
},
"api_key": {
"type": "apiKey",
"name": "api_key",
"in": "header"
}
}
}