Commit b19773d5872ab11d7297e9694cd0247f77d4f61a
Merge branch 'master' of http://gitlab.gaoxiaobang.com/zygj/huike-eaas-config
# Conflicts: # class-service.yml
Showing
4 changed files
with
384 additions
and
9 deletions
class-service.yml
| ... | ... | @@ -127,6 +127,11 @@ apiConfig: |
| 127 | 127 | gxbApiUrl: http://gxb-api:8080/gxb-api |
| 128 | 128 | gxbBiApiUrl: http://bi-api:8080/bi-api |
| 129 | 129 | testDecry: ENC(8aea42e66b0928c44cd8f861a9d558e6) |
| 130 | + | |
| 131 | +sendCloud: | |
| 132 | + user: postmaster@kkb.sendcloud.org | |
| 133 | + key: ENC(ad810a86e7a4c5910c4e6a72789cf775e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 134 | + from: postmaster@kkb.sendcloud.org | |
| 130 | 135 | |
| 131 | 136 | --- |
| 132 | 137 | server: |
| ... | ... | @@ -365,4 +370,9 @@ apiConfig: |
| 365 | 370 | usrLocalTomcatTempLocation: /usr/local/tomcat/temp |
| 366 | 371 | gxbApiUrl: http://api/gxb-api |
| 367 | 372 | gxbBiApiUrl: http://bi-api/bi-api |
| 368 | - parentProjectId: 118 | |
| 369 | 373 | \ No newline at end of file |
| 374 | + parentProjectId: 118 | |
| 375 | + | |
| 376 | +sendCloud: | |
| 377 | + user: postmaster@kkb.sendcloud.org | |
| 378 | + key: ENC(ad810a86e7a4c5910c4e6a72789cf775e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 379 | + from: postmaster@kkb.sendcloud.org | ... | ... |
gateway.yml
| ... | ... | @@ -57,6 +57,10 @@ zuul: |
| 57 | 57 | path: /dingding-service/** |
| 58 | 58 | #url: http://user-service:16100 |
| 59 | 59 | serviceId: user-service |
| 60 | + order: | |
| 61 | + path: /order/** | |
| 62 | + #url: http://cxcy-service:16300 | |
| 63 | + serviceId: order-service | |
| 60 | 64 | |
| 61 | 65 | hystrix: |
| 62 | 66 | command: |
| ... | ... | @@ -107,6 +111,7 @@ tenant: |
| 107 | 111 | |
| 108 | 112 | apiConfig: |
| 109 | 113 | gxbApiUrl: http://gxb-api:8080/gxb-api |
| 114 | + jwtSecret: ENC(c35cdc68f5da4f7557c4551964af915da79cda2e6854d992121061a28d8d85766ac65a4ad753af36d770b7b9a6ebd2b3e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 110 | 115 | |
| 111 | 116 | --- |
| 112 | 117 | server: |
| ... | ... | @@ -159,7 +164,10 @@ zuul: |
| 159 | 164 | path: /app/cxcy/** |
| 160 | 165 | #url: http://cxcy-service:16300 |
| 161 | 166 | serviceId: cxcy-service |
| 162 | - | |
| 167 | + order: | |
| 168 | + path: /order/** | |
| 169 | + #url: http://cxcy-service:16300 | |
| 170 | + serviceId: order-service | |
| 163 | 171 | hystrix: |
| 164 | 172 | command: |
| 165 | 173 | default: |
| ... | ... | @@ -202,6 +210,7 @@ tenant: |
| 202 | 210 | |
| 203 | 211 | apiConfig: |
| 204 | 212 | gxbApiUrl: http://gxb-api:8080/gxb-api |
| 213 | + jwtSecret: ENC(c35cdc68f5da4f7557c4551964af915da79cda2e6854d992121061a28d8d85766ac65a4ad753af36d770b7b9a6ebd2b3e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 205 | 214 | |
| 206 | 215 | --- |
| 207 | 216 | server: |
| ... | ... | @@ -258,6 +267,10 @@ zuul: |
| 258 | 267 | path: /dingding-service/** |
| 259 | 268 | #url: http://user-service:16100 |
| 260 | 269 | serviceId: user-service |
| 270 | + order: | |
| 271 | + path: /order/** | |
| 272 | + #url: http://cxcy-service:16300 | |
| 273 | + serviceId: order-service | |
| 261 | 274 | |
| 262 | 275 | hystrix: |
| 263 | 276 | command: |
| ... | ... | @@ -300,4 +313,5 @@ tenant: |
| 300 | 313 | tenantId: 991 |
| 301 | 314 | |
| 302 | 315 | apiConfig: |
| 303 | - gxbApiUrl: http://api/gxb-api | |
| 304 | 316 | \ No newline at end of file |
| 317 | + gxbApiUrl: http://api/gxb-api | |
| 318 | + jwtSecret: ENC(c35cdc68f5da4f7557c4551964af915da79cda2e6854d992121061a28d8d85766ac65a4ad753af36d770b7b9a6ebd2b3e59ecaaf2ed5eb3a4b4101fcf299419a) | ... | ... |
order-service.yml
0 → 100644
| 1 | +server: | |
| 2 | + port: 16400 | |
| 3 | + | |
| 4 | +spring: | |
| 5 | + profiles: development | |
| 6 | + cloud: | |
| 7 | + config: | |
| 8 | + discovery: | |
| 9 | + enabled: true | |
| 10 | + aop: | |
| 11 | + proxy-target-class: true | |
| 12 | + | |
| 13 | + coreDatasource: | |
| 14 | + write: | |
| 15 | + name: gxb_core | |
| 16 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 17 | + username: test | |
| 18 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 19 | + driver-class-name: com.mysql.jdbc.Driver | |
| 20 | + max-idle: 10 | |
| 21 | + max-active: 30 | |
| 22 | + max-wait: 60000 | |
| 23 | + min-idle: 10 | |
| 24 | + initial-size: 10 | |
| 25 | + validation-query: SELECT 1 | |
| 26 | + test-on-borrow: true | |
| 27 | + test-while-idle: true | |
| 28 | + read1: | |
| 29 | + name: gxb_core | |
| 30 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 31 | + username: test | |
| 32 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 33 | + driver-class-name: com.mysql.jdbc.Driver | |
| 34 | + max-idle: 10 | |
| 35 | + max-active: 30 | |
| 36 | + max-wait: 60000 | |
| 37 | + min-idle: 10 | |
| 38 | + initial-size: 10 | |
| 39 | + validation-query: SELECT 1 | |
| 40 | + test-on-borrow: true | |
| 41 | + test-while-idle: true | |
| 42 | + | |
| 43 | + secondDatasource: | |
| 44 | + name: gxb_core | |
| 45 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8 | |
| 46 | + username: test | |
| 47 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 48 | + driver-class-name: com.mysql.jdbc.Driver | |
| 49 | + max-idle: 10 | |
| 50 | + max-active: 30 | |
| 51 | + max-wait: 60000 | |
| 52 | + min-idle: 10 | |
| 53 | + initial-size: 10 | |
| 54 | + validation-query: SELECT 1 | |
| 55 | + test-on-borrow: true | |
| 56 | + test-while-idle: true | |
| 57 | + redis: | |
| 58 | + database: 0 | |
| 59 | + host: redis-server | |
| 60 | + port: 6379 | |
| 61 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 62 | + pool: | |
| 63 | + max-idle: 100 | |
| 64 | + min-idle: 10 | |
| 65 | + max-active: 1000 | |
| 66 | + max-wait: 100000 | |
| 67 | + sentinel: | |
| 68 | + master: mymaster1 | |
| 69 | + nodes: redis-server:16379,redis-server:16379 | |
| 70 | + | |
| 71 | +mybatis: | |
| 72 | + mapperLocations: classpath:/mybatis/*.xml | |
| 73 | + typeAliasesPackage: com.huike.eaas.microservice.order.domains | |
| 74 | + config: classpath:mybatis-config.xml | |
| 75 | + | |
| 76 | + | |
| 77 | +#mybatis: | |
| 78 | + #configLocation: classpath:mybatis-config.xml | |
| 79 | + | |
| 80 | +endpoints: | |
| 81 | + restart: | |
| 82 | + enabled: true | |
| 83 | + shutdown: | |
| 84 | + enabled: true | |
| 85 | + health: | |
| 86 | + sensitive: false | |
| 87 | + | |
| 88 | +eureka: | |
| 89 | + instance: | |
| 90 | + hostname: order-service | |
| 91 | + perferIpAddress: true | |
| 92 | + instance-id: ${spring.cloud.client.ipAddress}:${server.port} | |
| 93 | + leaseRenewalIntervalInSeconds: 5 | |
| 94 | + leaseExpirationDurationInSeconds: 15 | |
| 95 | + client: | |
| 96 | + registerWithEureka: true | |
| 97 | + fetchRegistry: true | |
| 98 | + serviceUrl: | |
| 99 | + defaultZone: http://discovery:15200/eureka/ | |
| 100 | + healthcheck: | |
| 101 | + enabled: true | |
| 102 | + | |
| 103 | +hystrix: | |
| 104 | + command: | |
| 105 | + default: | |
| 106 | + execution: | |
| 107 | + timeout: | |
| 108 | + enabled: true | |
| 109 | + isolation: | |
| 110 | + thread: | |
| 111 | + timeoutInMilliseconds: 60000 | |
| 112 | + | |
| 113 | +#这个配置为true则取发现服务的注册地址(服务地址存储在DomainExtractingServerList,由EurekaRibbonClientConfiguration.ribbonServerList()创建) | |
| 114 | +#为false取本地配置文件的配置地址(服务地址存储在ConfigurationBasedServerList中,由RibbonClientConfiguration.ribbonServerList()创建) | |
| 115 | +ribbon: | |
| 116 | + eureka: | |
| 117 | + enabled: true | |
| 118 | + UseIPAddrForServer: true | |
| 119 | + ReadTimeout: 5000 | |
| 120 | + ConnectTimeout: 10000 | |
| 121 | + | |
| 122 | + | |
| 123 | +--- | |
| 124 | +server: | |
| 125 | + port: 16300 | |
| 126 | + | |
| 127 | +spring: | |
| 128 | + profiles: test | |
| 129 | + cloud: | |
| 130 | + config: | |
| 131 | + discovery: | |
| 132 | + enabled: true | |
| 133 | + | |
| 134 | + coreDatasource: | |
| 135 | + write: | |
| 136 | + name: gxb_core | |
| 137 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 138 | + username: test | |
| 139 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 140 | + driver-class-name: com.mysql.jdbc.Driver | |
| 141 | + max-idle: 10 | |
| 142 | + max-active: 30 | |
| 143 | + max-wait: 60000 | |
| 144 | + min-idle: 10 | |
| 145 | + initial-size: 10 | |
| 146 | + validation-query: SELECT 1 | |
| 147 | + test-on-borrow: true | |
| 148 | + test-while-idle: true | |
| 149 | + read1: | |
| 150 | + name: gxb_core | |
| 151 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 152 | + username: test | |
| 153 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 154 | + driver-class-name: com.mysql.jdbc.Driver | |
| 155 | + max-idle: 10 | |
| 156 | + max-active: 30 | |
| 157 | + max-wait: 60000 | |
| 158 | + min-idle: 10 | |
| 159 | + initial-size: 10 | |
| 160 | + validation-query: SELECT 1 | |
| 161 | + test-on-borrow: true | |
| 162 | + test-while-idle: true | |
| 163 | + | |
| 164 | + secondDatasource: | |
| 165 | + name: gxb_core | |
| 166 | + url: jdbc:mysql://testdb-master:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8 | |
| 167 | + username: rd | |
| 168 | + password: ENC(5860760736a5c5fbbcbeab1cf6c72b38) | |
| 169 | + driver-class-name: com.mysql.jdbc.Driver | |
| 170 | + max-idle: 10 | |
| 171 | + max-active: 30 | |
| 172 | + max-wait: 60000 | |
| 173 | + min-idle: 10 | |
| 174 | + initial-size: 10 | |
| 175 | + validation-query: SELECT 1 | |
| 176 | + test-on-borrow: true | |
| 177 | + test-while-idle: true | |
| 178 | + redis: | |
| 179 | + database: 0 | |
| 180 | + host: redis-server | |
| 181 | + port: 6379 | |
| 182 | + password: ENC(8aea42e66b0928c44cd8f861a9d558e6) | |
| 183 | + pool: | |
| 184 | + max-idle: 100 | |
| 185 | + min-idle: 10 | |
| 186 | + max-active: 1000 | |
| 187 | + max-wait: 100000 | |
| 188 | + sentinel: | |
| 189 | + master: mymaster1 | |
| 190 | + nodes: redis-server:16379,redis-server:16379 | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | +#mybatis: | |
| 196 | + #configLocation: classpath:mybatis-config.xml | |
| 197 | + | |
| 198 | +endpoints: | |
| 199 | + restart: | |
| 200 | + enabled: true | |
| 201 | + shutdown: | |
| 202 | + enabled: true | |
| 203 | + health: | |
| 204 | + sensitive: false | |
| 205 | + | |
| 206 | +eureka: | |
| 207 | + instance: | |
| 208 | + hostname: order-service | |
| 209 | + perferIpAddress: true | |
| 210 | + client: | |
| 211 | + registerWithEureka: true | |
| 212 | + fetchRegistry: true | |
| 213 | + serviceUrl: | |
| 214 | + defaultZone: http://discovery:15200/eureka/ | |
| 215 | + | |
| 216 | +hystrix: | |
| 217 | + command: | |
| 218 | + default: | |
| 219 | + execution: | |
| 220 | + timeout: | |
| 221 | + enabled: true | |
| 222 | + isolation: | |
| 223 | + thread: | |
| 224 | + timeoutInMilliseconds: 60000 | |
| 225 | + | |
| 226 | +#这个配置为true则取发现服务的注册地址(服务地址存储在DomainExtractingServerList,由EurekaRibbonClientConfiguration.ribbonServerList()创建) | |
| 227 | +#为false取本地配置文件的配置地址(服务地址存储在ConfigurationBasedServerList中,由RibbonClientConfiguration.ribbonServerList()创建) | |
| 228 | +ribbon: | |
| 229 | + eureka: | |
| 230 | + enabled: true | |
| 231 | + UseIPAddrForServer: true | |
| 232 | + ReadTimeout: 5000 | |
| 233 | + ConnectTimeout: 10000 | |
| 234 | + | |
| 235 | +# 一些公共的常量配置 | |
| 236 | +apiConfig: | |
| 237 | + resourceGaoXiaoBangUrl: https://resource.gaoxiaobang.com | |
| 238 | + usrLocalTomcatTempLocation: /usr/local/tomcat/temp | |
| 239 | + gxbApiUrl: http://gxb-api:8080/gxb-api | |
| 240 | +--- | |
| 241 | +server: | |
| 242 | + port: 16300 | |
| 243 | + | |
| 244 | +spring: | |
| 245 | + profiles: production | |
| 246 | + cloud: | |
| 247 | + config: | |
| 248 | + discovery: | |
| 249 | + enabled: true | |
| 250 | + coreDatasource: | |
| 251 | + write: | |
| 252 | + name: gxb_core | |
| 253 | + url: jdbc:mysql://emysql3:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 254 | + username: postgres | |
| 255 | + password: ENC(d1b95542f58fbfb0e823af8f3974b1bda84f2dc413e5ec6bc9566bb3aa950a2be59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 256 | + driver-class-name: com.mysql.jdbc.Driver | |
| 257 | + max-idle: 10 | |
| 258 | + max-active: 30 | |
| 259 | + max-wait: 60000 | |
| 260 | + min-idle: 10 | |
| 261 | + initial-size: 10 | |
| 262 | + validation-query: SELECT 1 | |
| 263 | + test-on-borrow: true | |
| 264 | + test-while-idle: true | |
| 265 | + read1: | |
| 266 | + name: gxb_core | |
| 267 | + url: jdbc:mysql://db3:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true | |
| 268 | + username: postgres | |
| 269 | + password: ENC(d1b95542f58fbfb0e823af8f3974b1bda84f2dc413e5ec6bc9566bb3aa950a2be59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 270 | + driver-class-name: com.mysql.jdbc.Driver | |
| 271 | + max-idle: 10 | |
| 272 | + max-active: 30 | |
| 273 | + max-wait: 60000 | |
| 274 | + min-idle: 10 | |
| 275 | + initial-size: 10 | |
| 276 | + validation-query: SELECT 1 | |
| 277 | + test-on-borrow: true | |
| 278 | + test-while-idle: true | |
| 279 | + | |
| 280 | + secondDatasource: | |
| 281 | + name: gxb_core | |
| 282 | + url: jdbc:mysql://emysql3:3306/gxb_core?useUnicode=true&characterEncoding=UTF-8 | |
| 283 | + username: postgres | |
| 284 | + password: ENC(d1b95542f58fbfb0e823af8f3974b1bda84f2dc413e5ec6bc9566bb3aa950a2be59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 285 | + driver-class-name: com.mysql.jdbc.Driver | |
| 286 | + max-idle: 10 | |
| 287 | + max-active: 30 | |
| 288 | + max-wait: 60000 | |
| 289 | + min-idle: 10 | |
| 290 | + initial-size: 10 | |
| 291 | + validation-query: SELECT 1 | |
| 292 | + test-on-borrow: true | |
| 293 | + test-while-idle: true | |
| 294 | + redis: | |
| 295 | + database: 0 | |
| 296 | + host: redis1 | |
| 297 | + port: 6379 | |
| 298 | + password: ENC(c2bcc076c4c1dc27436226f3af749fb5b444d4973bb049848ff3c98517dec050) | |
| 299 | + pool: | |
| 300 | + max-idle: 100 | |
| 301 | + min-idle: 10 | |
| 302 | + max-active: 1000 | |
| 303 | + max-wait: 100000 | |
| 304 | + sentinel: | |
| 305 | + master: mymaster1 | |
| 306 | + nodes: redis1:16379,redis2:16379 | |
| 307 | + | |
| 308 | +mybatis: | |
| 309 | + mapperLocations: classpath:/mybatis/*.xml | |
| 310 | + typeAliasesPackage: com.huike.eaas.microservice.order.domains | |
| 311 | + config: classpath:mybatis-config.xml | |
| 312 | + | |
| 313 | +endpoints: | |
| 314 | + restart: | |
| 315 | + enabled: true | |
| 316 | + shutdown: | |
| 317 | + enabled: true | |
| 318 | + health: | |
| 319 | + sensitive: false | |
| 320 | + | |
| 321 | +eureka: | |
| 322 | + instance: | |
| 323 | + perferIpAddress: true | |
| 324 | + client: | |
| 325 | + registerWithEureka: true | |
| 326 | + fetchRegistry: true | |
| 327 | + serviceUrl: | |
| 328 | + defaultZone: http://discovery:15200/eureka/ | |
| 329 | + | |
| 330 | +hystrix: | |
| 331 | + command: | |
| 332 | + default: | |
| 333 | + execution: | |
| 334 | + timeout: | |
| 335 | + enabled: true | |
| 336 | + isolation: | |
| 337 | + thread: | |
| 338 | + timeoutInMilliseconds: 60000 | |
| 339 | + | |
| 340 | +#这个配置为true则取发现服务的注册地址(服务地址存储在DomainExtractingServerList,由EurekaRibbonClientConfiguration.ribbonServerList()创建) | |
| 341 | +#为false取本地配置文件的配置地址(服务地址存储在ConfigurationBasedServerList中,由RibbonClientConfiguration.ribbonServerList()创建) | |
| 342 | +ribbon: | |
| 343 | + eureka: | |
| 344 | + enabled: true | |
| 345 | + UseIPAddrForServer: true | |
| 346 | + ReadTimeout: 5000 | |
| 347 | + ConnectTimeout: 10000 | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 0 | 352 | \ No newline at end of file | ... | ... |
user-service.yml
| ... | ... | @@ -80,8 +80,8 @@ apiConfig: |
| 80 | 80 | gxbApiUrl: http://gxb-api:8080/gxb-api |
| 81 | 81 | |
| 82 | 82 | dingdingConfig: |
| 83 | - corpId: ding3605591b852ace34 | |
| 84 | - corpSecret: ENC(7a4dd1c1aaa79bbcae9278e89643e508a93ab8df991986444c35f607effb4b5fd53962eec141bcfcfcce7b45ca741121e4dcbcdbd94990a0f2a4252cd88d4650e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 83 | + corpId: ding6381ec8278d6efed35c2f4657eb6378f | |
| 84 | + corpSecret: UKEPAtmzP5pvr8jmTAl7kxZCVKb21Y0I8KJFEZtzfFynbsPbrQT3hD3UElxY3UkW | |
| 85 | 85 | studnetAgentId: 178526895 |
| 86 | 86 | teacherAgentId: 178560099 |
| 87 | 87 | |
| ... | ... | @@ -154,8 +154,8 @@ apiConfig: |
| 154 | 154 | gxbApiUrl: http://gxb-api:8080/gxb-api |
| 155 | 155 | |
| 156 | 156 | dingdingConfig: |
| 157 | - corpId: ding3605591b852ace34 | |
| 158 | - corpSecret: ENC(7a4dd1c1aaa79bbcae9278e89643e508a93ab8df991986444c35f607effb4b5fd53962eec141bcfcfcce7b45ca741121e4dcbcdbd94990a0f2a4252cd88d4650e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 157 | + corpId: ding6381ec8278d6efed35c2f4657eb6378f | |
| 158 | + corpSecret: UKEPAtmzP5pvr8jmTAl7kxZCVKb21Y0I8KJFEZtzfFynbsPbrQT3hD3UElxY3UkW | |
| 159 | 159 | studnetAgentId: 178526895 |
| 160 | 160 | teacherAgentId: 178560099 |
| 161 | 161 | |
| ... | ... | @@ -238,7 +238,7 @@ apiConfig: |
| 238 | 238 | |
| 239 | 239 | |
| 240 | 240 | dingdingConfig: |
| 241 | - corpId: ding3605591b852ace34 | |
| 242 | - corpSecret: ENC(7a4dd1c1aaa79bbcae9278e89643e508a93ab8df991986444c35f607effb4b5fd53962eec141bcfcfcce7b45ca741121e4dcbcdbd94990a0f2a4252cd88d4650e59ecaaf2ed5eb3a4b4101fcf299419a) | |
| 241 | + corpId: ding6381ec8278d6efed35c2f4657eb6378f | |
| 242 | + corpSecret: UKEPAtmzP5pvr8jmTAl7kxZCVKb21Y0I8KJFEZtzfFynbsPbrQT3hD3UElxY3UkW | |
| 243 | 243 | studnetAgentId: 178526895 |
| 244 | 244 | teacherAgentId: 178560099 |
| 245 | 245 | \ No newline at end of file | ... | ... |