@genesislcap/webpack-builder 14.144.1-alpha-82ebae3.0 → 14.144.1-alpha-a025a81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,12 +4,7 @@ Builder wrapping [Webpack](https://webpack.js.org/) bundler.
4
4
 
5
5
  # Development SSL Certificates
6
6
 
7
- The following files are used by webpack-dev-server when `--https` is set.
8
-
9
- ```
10
- localhost.crt
11
- localhost.key
12
- ```
7
+ The default `@genesislcap/build-kit` development certificates are applied to the `webpack-dev-server` when `--https` is set.
13
8
 
14
9
  Please follow the [Development-SSL-Certificate](https://www.notion.so/genesisglobal/Development-SSL-Certificates-30cfd42948674d0db511d04c1adb59db) guide to complete local machine setup.
15
10
 
@@ -26,4 +21,4 @@ likely contain npm scripts to simply this:
26
21
  Note: this project provides front end dependencies and uses licensed components listed in the next section, thus licenses for those components are required during development. Contact [Genesis Global](https://genesis.global/contact-us/) for more details.
27
22
 
28
23
  ### Licensed components
29
- Genesis low-code platform
24
+ Genesis low-code platform
@@ -1 +1 @@
1
- {"version":3,"file":"devServer.d.ts","sourceRoot":"","sources":["../../src/config/devServer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiC7C,eAAO,MAAM,SAAS,QAAS,YAAY,KAAG,aAAa,CAAC,WAAW,CAsDtE,CAAC"}
1
+ {"version":3,"file":"devServer.d.ts","sourceRoot":"","sources":["../../src/config/devServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB7C,eAAO,MAAM,SAAS,QAAS,YAAY,KAAG,aAAa,CAAC,WAAW,CA0CtE,CAAC"}
@@ -1,27 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.devServer = void 0;
4
- const tslib_1 = require("tslib");
5
- const node_fs_1 = require("node:fs");
6
4
  const node_path_1 = require("node:path");
7
- const portfinder_sync_1 = tslib_1.__importDefault(require("portfinder-sync"));
8
- const getPort = (packageJson) => { var _a; return portfinder_sync_1.default.getPort(((_a = packageJson.config) === null || _a === void 0 ? void 0 : _a.PORT) || process.env.PORT || 9000); };
5
+ const build_kit_1 = require("@genesislcap/build-kit");
9
6
  const getServer = (isHTTPS = false) => {
10
7
  if (isHTTPS) {
11
- const certDir = (0, node_path_1.resolve)(__dirname, '../../cert/');
12
- const cert = (0, node_path_1.resolve)(certDir, 'localhost.crt');
13
- const key = (0, node_path_1.resolve)(certDir, 'localhost.key');
14
- if ((0, node_fs_1.existsSync)(cert) && (0, node_fs_1.existsSync)(key)) {
8
+ const options = (0, build_kit_1.getDevCertOptions)();
9
+ if (options) {
15
10
  return {
16
11
  type: 'https',
17
- options: {
18
- cert: (0, node_fs_1.readFileSync)(cert),
19
- key: (0, node_fs_1.readFileSync)(key),
20
- },
12
+ options,
21
13
  };
22
14
  }
23
15
  else {
24
- console.warn(`Could not load certificates from ${certDir}. Falling back to HTTP.`);
16
+ console.warn(`Falling back to HTTP.`);
25
17
  }
26
18
  }
27
19
  return {
@@ -29,37 +21,24 @@ const getServer = (isHTTPS = false) => {
29
21
  options: {},
30
22
  };
31
23
  };
32
- const convertWsEndpointToHTTP = (endpoint = '', socketExt) => endpoint.replace(/^ws(s)?:\/\//, 'http$1://').replace(`/${socketExt}`, '');
33
24
  const devServer = (ctx) => {
34
25
  const { cli: { isDev, options: { open, https }, }, dirs: { cwd }, env: { isCI }, pkg, config: { webpack }, } = ctx;
35
26
  if (!isDev) {
36
27
  return;
37
28
  }
38
- const port = getPort(pkg);
39
- const socketExt = process.env.SOCKET_EXT || 'gwf';
40
- const target = convertWsEndpointToHTTP(process.env.API_HOST, socketExt);
41
- const devMiddleware = (webpack === null || webpack === void 0 ? void 0 : webpack.writeToDisk) ? { writeToDisk: true } : undefined;
42
29
  return {
43
30
  open: open && !isCI,
44
31
  historyApiFallback: true,
45
32
  allowedHosts: 'all',
46
33
  host: 'localhost',
47
- port,
34
+ port: (0, build_kit_1.getPort)(pkg),
48
35
  server: getServer(https),
49
36
  client: {
50
37
  overlay: {
51
38
  runtimeErrors: false,
52
39
  },
53
40
  },
54
- proxy: [
55
- {
56
- context: [`/${socketExt}/**`, '/sso/**', '/sm/**'],
57
- target,
58
- secure: false,
59
- changeOrigin: true,
60
- cookieDomainRewrite: 'localhost',
61
- },
62
- ],
41
+ proxy: (0, build_kit_1.createDevProxies)(),
63
42
  headers: {
64
43
  'Access-Control-Allow-Origin': '*',
65
44
  'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
@@ -72,7 +51,7 @@ const devServer = (ctx) => {
72
51
  watch: true,
73
52
  },
74
53
  ],
75
- devMiddleware,
54
+ devMiddleware: (webpack === null || webpack === void 0 ? void 0 : webpack.writeToDisk) ? { writeToDisk: true } : undefined,
76
55
  };
77
56
  };
78
57
  exports.devServer = devServer;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/webpack-builder",
3
3
  "description": "Webpack builder",
4
- "version": "14.144.1-alpha-82ebae3.0",
4
+ "version": "14.144.1-alpha-a025a81.0",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -10,12 +10,12 @@
10
10
  },
11
11
  "scripts": {
12
12
  "build": "npm run clean && tsc -b ./tsconfig.json && npm run copyfiles",
13
- "copyfiles": "copyfiles --verbose cert/*.* ./dist && copyfiles --verbose public/*.* ./dist",
13
+ "copyfiles": "copyfiles --verbose public/*.* ./dist",
14
14
  "clean": "rimraf dist tsconfig.tsbuildinfo",
15
15
  "dev": "tsc -b ./tsconfig.json -w"
16
16
  },
17
17
  "dependencies": {
18
- "@genesislcap/build-kit": "14.144.1-alpha-82ebae3.0",
18
+ "@genesislcap/build-kit": "14.144.1-alpha-a025a81.0",
19
19
  "@module-federation/dashboard-plugin": "2.6.5",
20
20
  "@pixability-ui/federated-types": "^0.2.0",
21
21
  "@types/webpack-env": "^1.18.4",
@@ -27,7 +27,6 @@
27
27
  "html-loader": "^3.1.0",
28
28
  "html-webpack-plugin": "^5.3.1",
29
29
  "mini-css-extract-plugin": "^2.5.3",
30
- "portfinder-sync": "^0.0.2",
31
30
  "postcss": "^8.4.31",
32
31
  "postcss-import": "^14.0.0",
33
32
  "postcss-loader": "^6.2.1",
@@ -58,5 +57,5 @@
58
57
  "publishConfig": {
59
58
  "access": "public"
60
59
  },
61
- "gitHead": "a444c0935138d856a4369b32a94a6202bb6dfeeb"
60
+ "gitHead": "b5d1503473792f8a75ca28f607bf61b30d82a8d9"
62
61
  }
@@ -1,28 +1,18 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
1
  import { resolve } from 'node:path';
3
2
  import type { BuildContext } from '@genesislcap/build-kit';
4
- import portfinderSync from 'portfinder-sync';
3
+ import { getDevCertOptions, createDevProxies, getPort } from '@genesislcap/build-kit';
5
4
  import type { Configuration } from 'webpack';
6
5
 
7
- const getPort = (packageJson): number =>
8
- portfinderSync.getPort(packageJson.config?.PORT || process.env.PORT || 9000);
9
-
10
6
  const getServer = (isHTTPS = false) => {
11
7
  if (isHTTPS) {
12
- const certDir = resolve(__dirname, '../../cert/');
13
- const cert = resolve(certDir, 'localhost.crt');
14
- const key = resolve(certDir, 'localhost.key');
15
-
16
- if (existsSync(cert) && existsSync(key)) {
8
+ const options = getDevCertOptions();
9
+ if (options) {
17
10
  return {
18
11
  type: 'https',
19
- options: {
20
- cert: readFileSync(cert),
21
- key: readFileSync(key),
22
- },
12
+ options,
23
13
  };
24
14
  } else {
25
- console.warn(`Could not load certificates from ${certDir}. Falling back to HTTP.`);
15
+ console.warn(`Falling back to HTTP.`);
26
16
  }
27
17
  }
28
18
 
@@ -32,9 +22,6 @@ const getServer = (isHTTPS = false) => {
32
22
  };
33
23
  };
34
24
 
35
- const convertWsEndpointToHTTP = (endpoint = '', socketExt) =>
36
- endpoint.replace(/^ws(s)?:\/\//, 'http$1://').replace(`/${socketExt}`, '');
37
-
38
25
  export const devServer = (ctx: BuildContext): Configuration['devServer'] => {
39
26
  const {
40
27
  cli: {
@@ -50,31 +37,19 @@ export const devServer = (ctx: BuildContext): Configuration['devServer'] => {
50
37
  if (!isDev) {
51
38
  return;
52
39
  }
53
- const port = getPort(pkg);
54
- const socketExt = process.env.SOCKET_EXT || 'gwf';
55
- const target = convertWsEndpointToHTTP(process.env.API_HOST, socketExt);
56
- const devMiddleware = webpack?.writeToDisk ? { writeToDisk: true } : undefined;
57
40
  return {
58
41
  open: open && !isCI,
59
42
  historyApiFallback: true,
60
43
  allowedHosts: 'all',
61
44
  host: 'localhost',
62
- port,
45
+ port: getPort(pkg),
63
46
  server: getServer(https),
64
47
  client: {
65
48
  overlay: {
66
49
  runtimeErrors: false,
67
50
  },
68
51
  },
69
- proxy: [
70
- {
71
- context: [`/${socketExt}/**`, '/sso/**', '/sm/**'],
72
- target,
73
- secure: false,
74
- changeOrigin: true,
75
- cookieDomainRewrite: 'localhost',
76
- },
77
- ],
52
+ proxy: createDevProxies(),
78
53
  headers: {
79
54
  'Access-Control-Allow-Origin': '*',
80
55
  'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
@@ -87,6 +62,6 @@ export const devServer = (ctx: BuildContext): Configuration['devServer'] => {
87
62
  watch: true,
88
63
  },
89
64
  ],
90
- devMiddleware,
65
+ devMiddleware: webpack?.writeToDisk ? { writeToDisk: true } : undefined,
91
66
  };
92
67
  };
@@ -1,25 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEKzCCApOgAwIBAgIRAJ2DkMm20NkXjwvT0PHJCo0wDQYJKoZIhvcNAQELBQAw
3
- YzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRwwGgYDVQQLDBNydW5u
4
- ZXJAZnYtYXozMzktNjA5MSMwIQYDVQQDDBpta2NlcnQgcnVubmVyQGZ2LWF6MzM5
5
- LTYwOTAeFw0yMjEyMjIwODMxNTRaFw0yNTAzMjIwODMxNTRaMEcxJzAlBgNVBAoT
6
- Hm1rY2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEcMBoGA1UECwwTcnVubmVy
7
- QGZ2LWF6NDE3LTI0MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4X
8
- hSYzKgfdIeeeMg5jpYNUJVXDjkpWI5cz73nvNztW0GAZi7vn+ts2iheP26eY4dI7
9
- XaynT7JXqkqabJxFz5McgvPye9KV0foTBfTXy1Gg5AnsEgrni1zNmmJna6zB0Ybm
10
- aMAeFfcOR+suhFti13R5ppstgg1MgzFWsaJYNSfziBqyj7E9CTBRWmPKIrzzdsQl
11
- LBriGuLrgPesIdKfYfEgy5tHJLNgpQVwTGSzibknZdmSU+T9da7hfmiOtcKq1E3J
12
- PMwIThxmh9QCDlqsKh+5qywagVllG2OaUQxJfGrq5Ihe56XzG/2ZeZuZl8H+NM3o
13
- Rw2fMosW1g0pVEkazR0CAwEAAaN2MHQwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
14
- MAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFA2vMaRHhWB/nx6U6EphkwufFZpJMCwG
15
- A1UdEQQlMCOCCWxvY2FsaG9zdIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATANBgkq
16
- hkiG9w0BAQsFAAOCAYEAmp0smvtKBB3rbmKpOTaGQ4hPur2ezfU2xt121k2x4lpL
17
- q/YmdwEm69j/ewJNI2oPvTgoWKCECJ5tEr/e0a0En8SaXKRZal2Px4VmCTssUOyh
18
- DXJj0V2Wkk79dbKjAqSnwoAif6lxDzwdZywXPecWx1cwGI78LDzCQ/AuCQXYFVAw
19
- ffjPDau8rI+8kn/q4aWbIFbgpgUQ80F6zS7/ZYPMLQvcu5SuspzMzV0lMhCOUWff
20
- nMJJpT+3JoHIEfBCAFPfsK83ELGIKM1ghDU8Z9qnNFTCxUhhv0JfiGzRoTYSjby7
21
- LYtiFn4/6QBrTqLNyymRCCArehHCHUVPRlPvLuHsTLw7vPT14DK/bngeUqrFDJZE
22
- 35qJyB8TKY2pk7hl8svRGmyagScF+hG/0V/imb0hmvuNqpW64ooqTb1J0HJSxKHz
23
- f3GDwWNVRjMeolMeZKe52/dqaGJLgATdHxKxX9geQ/RswUHd3UYFzUqeuje9xTQ/
24
- 0Y96jGaZZ3P/WXp4NGYl
25
- -----END CERTIFICATE-----
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDeF4UmMyoH3SHn
3
- njIOY6WDVCVVw45KViOXM+957zc7VtBgGYu75/rbNooXj9unmOHSO12sp0+yV6pK
4
- mmycRc+THILz8nvSldH6EwX018tRoOQJ7BIK54tczZpiZ2uswdGG5mjAHhX3Dkfr
5
- LoRbYtd0eaabLYINTIMxVrGiWDUn84gaso+xPQkwUVpjyiK883bEJSwa4hri64D3
6
- rCHSn2HxIMubRySzYKUFcExks4m5J2XZklPk/XWu4X5ojrXCqtRNyTzMCE4cZofU
7
- Ag5arCofuassGoFZZRtjmlEMSXxq6uSIXuel8xv9mXmbmZfB/jTN6EcNnzKLFtYN
8
- KVRJGs0dAgMBAAECggEAUrGLQEf4tGjgAO/kT3tG23lvVVm1F3SvV9NcrZgmho+y
9
- krWwU8zymMDb9h34eZTxMGguXuUFRbBildid7CoKOgp5r/9vn19tiaGfrCTVbZVs
10
- k001Ap5oQ6vCejVr4C1iqMoN4srQ/uZwXN87JRPOiW3qXQk6zVzZ1HslNP+G+1J+
11
- Q5FeaLei+nZzY+Aug8u/l1+FaE09m8xt7Rghn1sEg7IFdP+7pImkrzuykT0ceE+g
12
- XkQNk2YcChGuF3pV0fyXzWwwR5rYoxEtbNrc42pBTEiBtKqh6GjHjJCkqMeVQvuy
13
- d1PMWxyXyu2HqtzddDHVknAFlRy9KSc80AgyQOSAeQKBgQDfuPXBGbJiXewHygyX
14
- TkEXmGrAxQ8+Gxn8blj6LzALNjjGDiW9CwbxmVWdMbEBE3lUZi92erCYLFZUPXTa
15
- BdPsE1dki2T2eVWVwK/qoc44IBDCJ3LtjfODNi5OaTBvAUMzI3pYVJS0vwM86ywx
16
- UF3R54RHGPLdNN0So8k45QDQmwKBgQD+IlWIzigv1SEiEOaqQUoJB0Vfxq2u91eN
17
- ius5Wj5ONDfNv++mbr3bBuI0Bpg4u7W9i5hJVLE04GtlfjSuOX0QnkbQYu5/NbCH
18
- Vxw9YUwtOZJlk0kx3H6qpftYgEPwXir7fcuoXFUT7jD+Q5FWvQA76asF9zVnt9RG
19
- OGoB6FeopwKBgQDP9wZzxyhcakRzhS2pJPQ7M9LgeQ5PRDAmyIjroBvAAFpMOXB5
20
- R5vf0BKWuk942Zpqi0bJkwk/m89wJWTPGqXCCMSvUSi8OVQGjgS5Tkn9QElzweoC
21
- y3a23RG0j/GW7oyCKBOdspo9XmZrJY2CFdvwuI7s7FMur+plXl06Bx53ywKBgQDO
22
- ehjiuRUfn9t2sSKoS7maUkUERwkQcje5cZgiFfcvVO/OBFby82Df1tzshjshRSmp
23
- IgUN93iuzHOVl4+3yk+Zs+83GlpKEtYlcBoqqKXazL7sNlmu4EYt4gOv6S7J2ci0
24
- YoWYecRKGCnIPB+WyKKrCvQAOdUzOsGGeAlxGVQ3WwKBgE7fJGLuraf1hHRMuPsS
25
- ZGnJE93QVWOFCym34lxRWEQ3rKEXMtAhUhq/M6x5sJnv7ePTujyDoPAbAioxLS/L
26
- GsrvcDc91bwNs7sDTyq//n0ehf2HJMFrbdtIPblxA26dHtX7BmW6eppDhm4OV8zO
27
- 1vSzX8HjCcx1AkcATKDA9J3e
28
- -----END PRIVATE KEY-----
@@ -1,25 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEKzCCApOgAwIBAgIRAJ2DkMm20NkXjwvT0PHJCo0wDQYJKoZIhvcNAQELBQAw
3
- YzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRwwGgYDVQQLDBNydW5u
4
- ZXJAZnYtYXozMzktNjA5MSMwIQYDVQQDDBpta2NlcnQgcnVubmVyQGZ2LWF6MzM5
5
- LTYwOTAeFw0yMjEyMjIwODMxNTRaFw0yNTAzMjIwODMxNTRaMEcxJzAlBgNVBAoT
6
- Hm1rY2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEcMBoGA1UECwwTcnVubmVy
7
- QGZ2LWF6NDE3LTI0MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4X
8
- hSYzKgfdIeeeMg5jpYNUJVXDjkpWI5cz73nvNztW0GAZi7vn+ts2iheP26eY4dI7
9
- XaynT7JXqkqabJxFz5McgvPye9KV0foTBfTXy1Gg5AnsEgrni1zNmmJna6zB0Ybm
10
- aMAeFfcOR+suhFti13R5ppstgg1MgzFWsaJYNSfziBqyj7E9CTBRWmPKIrzzdsQl
11
- LBriGuLrgPesIdKfYfEgy5tHJLNgpQVwTGSzibknZdmSU+T9da7hfmiOtcKq1E3J
12
- PMwIThxmh9QCDlqsKh+5qywagVllG2OaUQxJfGrq5Ihe56XzG/2ZeZuZl8H+NM3o
13
- Rw2fMosW1g0pVEkazR0CAwEAAaN2MHQwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
14
- MAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFA2vMaRHhWB/nx6U6EphkwufFZpJMCwG
15
- A1UdEQQlMCOCCWxvY2FsaG9zdIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATANBgkq
16
- hkiG9w0BAQsFAAOCAYEAmp0smvtKBB3rbmKpOTaGQ4hPur2ezfU2xt121k2x4lpL
17
- q/YmdwEm69j/ewJNI2oPvTgoWKCECJ5tEr/e0a0En8SaXKRZal2Px4VmCTssUOyh
18
- DXJj0V2Wkk79dbKjAqSnwoAif6lxDzwdZywXPecWx1cwGI78LDzCQ/AuCQXYFVAw
19
- ffjPDau8rI+8kn/q4aWbIFbgpgUQ80F6zS7/ZYPMLQvcu5SuspzMzV0lMhCOUWff
20
- nMJJpT+3JoHIEfBCAFPfsK83ELGIKM1ghDU8Z9qnNFTCxUhhv0JfiGzRoTYSjby7
21
- LYtiFn4/6QBrTqLNyymRCCArehHCHUVPRlPvLuHsTLw7vPT14DK/bngeUqrFDJZE
22
- 35qJyB8TKY2pk7hl8svRGmyagScF+hG/0V/imb0hmvuNqpW64ooqTb1J0HJSxKHz
23
- f3GDwWNVRjMeolMeZKe52/dqaGJLgATdHxKxX9geQ/RswUHd3UYFzUqeuje9xTQ/
24
- 0Y96jGaZZ3P/WXp4NGYl
25
- -----END CERTIFICATE-----
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDeF4UmMyoH3SHn
3
- njIOY6WDVCVVw45KViOXM+957zc7VtBgGYu75/rbNooXj9unmOHSO12sp0+yV6pK
4
- mmycRc+THILz8nvSldH6EwX018tRoOQJ7BIK54tczZpiZ2uswdGG5mjAHhX3Dkfr
5
- LoRbYtd0eaabLYINTIMxVrGiWDUn84gaso+xPQkwUVpjyiK883bEJSwa4hri64D3
6
- rCHSn2HxIMubRySzYKUFcExks4m5J2XZklPk/XWu4X5ojrXCqtRNyTzMCE4cZofU
7
- Ag5arCofuassGoFZZRtjmlEMSXxq6uSIXuel8xv9mXmbmZfB/jTN6EcNnzKLFtYN
8
- KVRJGs0dAgMBAAECggEAUrGLQEf4tGjgAO/kT3tG23lvVVm1F3SvV9NcrZgmho+y
9
- krWwU8zymMDb9h34eZTxMGguXuUFRbBildid7CoKOgp5r/9vn19tiaGfrCTVbZVs
10
- k001Ap5oQ6vCejVr4C1iqMoN4srQ/uZwXN87JRPOiW3qXQk6zVzZ1HslNP+G+1J+
11
- Q5FeaLei+nZzY+Aug8u/l1+FaE09m8xt7Rghn1sEg7IFdP+7pImkrzuykT0ceE+g
12
- XkQNk2YcChGuF3pV0fyXzWwwR5rYoxEtbNrc42pBTEiBtKqh6GjHjJCkqMeVQvuy
13
- d1PMWxyXyu2HqtzddDHVknAFlRy9KSc80AgyQOSAeQKBgQDfuPXBGbJiXewHygyX
14
- TkEXmGrAxQ8+Gxn8blj6LzALNjjGDiW9CwbxmVWdMbEBE3lUZi92erCYLFZUPXTa
15
- BdPsE1dki2T2eVWVwK/qoc44IBDCJ3LtjfODNi5OaTBvAUMzI3pYVJS0vwM86ywx
16
- UF3R54RHGPLdNN0So8k45QDQmwKBgQD+IlWIzigv1SEiEOaqQUoJB0Vfxq2u91eN
17
- ius5Wj5ONDfNv++mbr3bBuI0Bpg4u7W9i5hJVLE04GtlfjSuOX0QnkbQYu5/NbCH
18
- Vxw9YUwtOZJlk0kx3H6qpftYgEPwXir7fcuoXFUT7jD+Q5FWvQA76asF9zVnt9RG
19
- OGoB6FeopwKBgQDP9wZzxyhcakRzhS2pJPQ7M9LgeQ5PRDAmyIjroBvAAFpMOXB5
20
- R5vf0BKWuk942Zpqi0bJkwk/m89wJWTPGqXCCMSvUSi8OVQGjgS5Tkn9QElzweoC
21
- y3a23RG0j/GW7oyCKBOdspo9XmZrJY2CFdvwuI7s7FMur+plXl06Bx53ywKBgQDO
22
- ehjiuRUfn9t2sSKoS7maUkUERwkQcje5cZgiFfcvVO/OBFby82Df1tzshjshRSmp
23
- IgUN93iuzHOVl4+3yk+Zs+83GlpKEtYlcBoqqKXazL7sNlmu4EYt4gOv6S7J2ci0
24
- YoWYecRKGCnIPB+WyKKrCvQAOdUzOsGGeAlxGVQ3WwKBgE7fJGLuraf1hHRMuPsS
25
- ZGnJE93QVWOFCym34lxRWEQ3rKEXMtAhUhq/M6x5sJnv7ePTujyDoPAbAioxLS/L
26
- GsrvcDc91bwNs7sDTyq//n0ehf2HJMFrbdtIPblxA26dHtX7BmW6eppDhm4OV8zO
27
- 1vSzX8HjCcx1AkcATKDA9J3e
28
- -----END PRIVATE KEY-----