Skip to content
This repository has been archived by the owner on Oct 22, 2024. It is now read-only.

feat(csi-48): create ispa functionality #2

Merged
merged 145 commits into from
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
7831ff9
feat(csi-38): added echo-server; added hapi, h2o2 proxy, openapi support
geka-evk Jun 10, 2024
9a84a5a
feat(csi-38): add axios to proxy calls; added express-echo-tls-server…
geka-evk Jun 12, 2024
6d4f433
feat(csi-38): updated deps
geka-evk Jun 12, 2024
1f4f1fa
feat(csi-48): removed h2o2 and wreck
geka-evk Jun 12, 2024
0da16bc
feat(csi-48): fixed unit-tests
geka-evk Jun 12, 2024
15b1934
feat(csi-48): removed content-length header, moved http-request as de…
geka-evk Jun 12, 2024
91d6f64
feat(csi-48): added tsconfig for tests
geka-evk Jun 12, 2024
3f5fcb8
feat: add control-agent from sdk and add ts types
oderayi Jun 12, 2024
6d92c30
chore: update depss
oderayi Jun 12, 2024
36af911
feat: complete control-agent impl
oderayi Jun 12, 2024
d736e51
feat(csi-48): renamed some env vars; added internal events
geka-evk Jun 12, 2024
0b09642
feat: add pm4mlEnabled config property to enable/disable control agent
oderayi Jun 12, 2024
1ccef11
feat(csi-48): updated deps
geka-evk Jun 12, 2024
77b4ced
fix: fix nullable issue
oderayi Jun 12, 2024
b376414
fix: fix nullables and types
oderayi Jun 12, 2024
a71a3b2
chore: merge with upstream
oderayi Jun 12, 2024
dfb352e
feat(csi-48): added https-agent to each server; renamed env vars
geka-evk Jun 12, 2024
26ad147
feat(csi-48): fixed ci-cd check
geka-evk Jun 12, 2024
9f44ab3
feat(csi-48): renamed env vars
geka-evk Jun 12, 2024
2c9579d
feat(csi-48): ++ version
geka-evk Jun 12, 2024
e808464
feat: refactor control client
oderayi Jun 13, 2024
2043384
feat(csi-48): added getCerts and initWSConnections(stub) methods
geka-evk Jun 13, 2024
95c2e7f
feat(csi-48): ++ version
geka-evk Jun 13, 2024
34200fc
feat(csi-48): fix PR checks
geka-evk Jun 13, 2024
c72c68b
feat: update types
oderayi Jun 13, 2024
d1109b2
feat: move control-agent to infra
oderayi Jun 13, 2024
6415218
feat: update types
oderayi Jun 13, 2024
b114636
chore: merge with upstream
oderayi Jun 13, 2024
1c51051
feat: separate out mgmt api configs
oderayi Jun 13, 2024
5d0ca4e
feat: align env var names with sdk
oderayi Jun 13, 2024
136c9ed
feat: align env var names with sdk
oderayi Jun 13, 2024
bd3d3a8
feat: allow control agent use wss protocol if needed
oderayi Jun 13, 2024
ee19213
feat: update default env and id control agents
oderayi Jun 13, 2024
12eb04a
fix: fix event emitter handler bind
oderayi Jun 13, 2024
720bf94
feat: reorg exports
oderayi Jun 13, 2024
ae76cc3
feat: add type for mcm cert data
oderayi Jun 13, 2024
b4e7693
feat: add type for mcm cert data
oderayi Jun 13, 2024
a8652f6
feat(csi-126): added authClinet to get accessToken
geka-evk Jun 13, 2024
d010aed
feat(csi-126): added authClinet to get accessToken
geka-evk Jun 13, 2024
8acd5f7
feat(csi-126): added authClinet to get accessToken
geka-evk Jun 13, 2024
6a2f872
feat(csi-126): added authClinet to get accessToken
geka-evk Jun 13, 2024
92aafda
feat(csi-126): removed httpsAgent from AuthClient
geka-evk Jun 14, 2024
5c45284
feat(csi-141): added docker-publish workflow to CI/CD
geka-evk Jun 14, 2024
b678c01
feat(csi-141): added login to GH container Registry
geka-evk Jun 14, 2024
34d5342
Merge pull request #4 from infitx-org/task/csi-126
geka-evk Jun 14, 2024
76627ed
feat(csi-141): added pushing images to CH container Registry
geka-evk Jun 14, 2024
4faff32
chore: merge with upstream and fix conflicts
oderayi Jun 14, 2024
67317dd
feat(csi-141): added on tags
geka-evk Jun 14, 2024
4398081
feat(csi-141): added on tags
geka-evk Jun 14, 2024
8ea3f4c
ci(snapshot): 0.3.1-snapshot.0
geka-evk Jun 14, 2024
391ad80
feat(csi-141): added lint-and-test; clean up
geka-evk Jun 14, 2024
8c9352d
ci(snapshot): 0.3.1-snapshot.1
geka-evk Jun 14, 2024
38d0b84
feat(csi-141): dummy
geka-evk Jun 14, 2024
11a8b95
feat(csi-141): prevented lint-and-test to be run twice
geka-evk Jun 14, 2024
b4d6852
ci(snapshot): 0.3.1-snapshot.2
geka-evk Jun 14, 2024
7b4c0da
feat: complete control agent impl
oderayi Jun 14, 2024
8438667
feat(csi-141): added todo
geka-evk Jun 14, 2024
61407ab
ci(snapshot): 0.3.1-snapshot.3
geka-evk Jun 14, 2024
235aec6
Merge pull request #5 from infitx-org/task/csi-141
geka-evk Jun 14, 2024
af659aa
Merge branch 'feat/csi-48' of github.com:infitx-org/inter-scheme-prox…
oderayi Jun 14, 2024
a8978c7
ci(snapshot): 0.3.1-snapshot.4
oderayi Jun 14, 2024
f2e54db
ci(snapshot): 0.3.1-snapshot.4
geka-evk Jun 14, 2024
d1ff687
ci(snapshot): 0.3.1-snapshot.5
geka-evk Jun 14, 2024
276413c
feat: remove read cert from file feature
oderayi Jun 14, 2024
9ccd4f1
feat: review changes
oderayi Jun 14, 2024
79123c3
test: set required envs in test
oderayi Jun 14, 2024
87dce95
ci(snapshot): 0.3.1-snapshot.5
oderayi Jun 14, 2024
d127ae5
ci(snapshot): 0.3.1-snapshot.6
oderayi Jun 14, 2024
1886355
test: fix test config
oderayi Jun 14, 2024
34cbbcf
ci(snapshot): 0.3.1-snapshot.7
oderayi Jun 14, 2024
f179946
fix: enable getToken
oderayi Jun 14, 2024
716524f
ci(snapshot): 0.3.1-snapshot.8
oderayi Jun 14, 2024
92bb4ab
fix: remove unneeded async
oderayi Jun 14, 2024
16c7104
feat: make ws ports required
oderayi Jun 14, 2024
c68d01e
feat: update type
oderayi Jun 14, 2024
ea98245
feat(csi-48): added healthCheck endpoint
geka-evk Jun 14, 2024
343a70b
Merge branch 'feat/csi-87' of github.com:infitx-org/inter-scheme-prox…
geka-evk Jun 14, 2024
41e3c35
chore: update contributors
oderayi Jun 14, 2024
9245c74
Merge branch 'feat/csi-88' of github.com:infitx-org/inter-scheme-prox…
oderayi Jun 14, 2024
770e735
feat(csi-87): added logs
geka-evk Jun 14, 2024
47adc46
Merge branch 'feat/csi-87' of github.com:infitx-org/inter-scheme-prox…
geka-evk Jun 14, 2024
c204a3e
feat: add control agent timeout
oderayi Jun 14, 2024
df76499
fix: fix timeout
oderayi Jun 14, 2024
d53dc6b
chore: merged
oderayi Jun 14, 2024
13553c5
feat(csi-87): fixed initControlAgents and loadInitialCerts
geka-evk Jun 14, 2024
fd2fbb2
feat(csi-87): improved error logging
geka-evk Jun 14, 2024
a2b6341
feat(csi-87): improved error logging
geka-evk Jun 14, 2024
56f7b41
ci(snapshot): 0.3.3-snapshot.0
geka-evk Jun 14, 2024
dce40f2
ci(snapshot): 0.3.3-snapshot.1
geka-evk Jun 15, 2024
6fc5607
feat(csi-45): linked serverA --> hubA, and serverB --> hubB
geka-evk Jun 16, 2024
25c9f9f
feat(csi-45): updated deps
geka-evk Jun 16, 2024
4918746
feat(csi-45): resolved PR comments
geka-evk Jun 17, 2024
81456f5
Merge pull request #6 from infitx-org/feat/csi-45
geka-evk Jun 17, 2024
4b0dced
Merge branch 'feat/csi-48' of github.com:infitx-org/inter-scheme-prox…
oderayi Jun 17, 2024
b1b57d9
chore: merge and resolve conflicts with csi-45
oderayi Jun 17, 2024
0aa23d0
chore: resolve conflicts
oderayi Jun 17, 2024
bdba768
fix: add return type
oderayi Jun 17, 2024
a162493
Merge pull request #3 from infitx-org/feat/csi-87
geka-evk Jun 17, 2024
befcfe0
feat(csi-48): ++ version
geka-evk Jun 17, 2024
a98f19e
ci(snapshot): 0.4.1-snapshot.0
geka-evk Jun 17, 2024
c9d2bce
feat(csi-48): added isCertsPayload and isWsPayload; improved typing f…
geka-evk Jun 17, 2024
d12cd8b
feat(csi-48): updated deps
geka-evk Jun 17, 2024
bf60323
Merge pull request #7 from infitx-org/feat/csi-48-fix-1
geka-evk Jun 17, 2024
98cc99b
ci(snapshot): 0.4.2-snapshot.0
geka-evk Jun 17, 2024
6afb10d
feat(csi-47): added integration test for e2e happy-path flow
geka-evk Jun 18, 2024
9e0c879
feat(csi-47): updated deps
geka-evk Jun 18, 2024
e8ce77d
feat(csi-47): check int tests on ci/cd env
geka-evk Jun 18, 2024
e1dc4fe
feat(csi-47): added delay before tests run
geka-evk Jun 18, 2024
59f8faf
feat(csi-47): added negative test scenarios for int tests
geka-evk Jun 18, 2024
bfdf470
feat(csi-47): skipped checking error messages in failed int-test
geka-evk Jun 18, 2024
2461b2d
feat(csi-47): increased delay before running int-tests
geka-evk Jun 18, 2024
9d9505a
feat(csi-47): used proper server ->hub linking
geka-evk Jun 18, 2024
676790a
ci(snapshot): 0.4.2-snapshot.1
geka-evk Jun 18, 2024
8a16613
feat(csi-47): removed "host" header
geka-evk Jun 19, 2024
2d32510
feat(csi-47): fixed int tests
geka-evk Jun 19, 2024
c1d4aee
ci(snapshot): 0.4.2-snapshot.2
geka-evk Jun 19, 2024
b4c833c
feat(csi-47): added logs with incoming; added https scheme in constants;
geka-evk Jun 19, 2024
502c037
feat(csi-47): removed redundant headers
geka-evk Jun 19, 2024
51950f3
ci(snapshot): 0.4.2-snapshot.3
geka-evk Jun 19, 2024
dc9c4e0
feat(csi-47): enabled all int. tests
geka-evk Jun 19, 2024
5e8f8c8
feat(csi-47): added logs to int. test
geka-evk Jun 19, 2024
fe811e4
feat(csi-47): updated .env
geka-evk Jun 19, 2024
3cb47b3
feat(csi-47): added logs for proxy errResponse
geka-evk Jun 19, 2024
41a2065
ci(snapshot): 0.4.2-snapshot.4
geka-evk Jun 19, 2024
a4fc5a6
feat(csi-47): added certs fro hub-a and hub-b; improved int. tests
geka-evk Jun 19, 2024
e8870e0
feat(csi-47): updated deps
geka-evk Jun 19, 2024
106164e
feat(csi-47): added INCOMING_HEADERS_REMOVAL env var
geka-evk Jun 19, 2024
e670fdb
ci(snapshot): 0.4.2-snapshot.5
geka-evk Jun 19, 2024
bc9ff70
feat(csi-47): added e2e unit-tests
geka-evk Jun 19, 2024
2fea91f
feat(csi-47): added --forceExit
geka-evk Jun 19, 2024
dd3857d
feat(csi-47): added --forceExit
geka-evk Jun 19, 2024
e336c11
feat(csi-47): removed jest --forceExit; added certsJson to fixtures
geka-evk Jun 20, 2024
e487b1d
feat(csi-47): removed sensitive and hopByHop headers
geka-evk Jun 20, 2024
c94579f
ci(release): 0.4.2 [skip ci]
geka-evk Jun 20, 2024
c277e9e
ci(release): 0.4.3 [skip ci]
geka-evk Jun 20, 2024
771b76d
ci(snapshot): 0.4.4-snapshot.0
geka-evk Jun 20, 2024
a9ec001
feat(csi-47): removed sensitive and hopByHop headers
geka-evk Jun 20, 2024
184d5db
chore(csi-47): improved startDurationSec calculation
geka-evk Jun 20, 2024
b39b94d
ci(snapshot): 0.4.4-snapshot.1
geka-evk Jun 20, 2024
ecedae1
Merge pull request #8 from infitx-org/feat/csi-47
geka-evk Jun 20, 2024
764d921
chore(csi-47): cleanup
geka-evk Jun 20, 2024
a8d2cda
feat(csi-48): added proxyResponse headers to the final response; adde…
geka-evk Jun 26, 2024
8040ee4
feat(csi-48): added proxyResponse headers to the final response; adde…
geka-evk Jun 26, 2024
7f186c8
ci(snapshot): 0.5.0-snapshot.1
geka-evk Jun 26, 2024
c0cace2
ci(release): 0.5.0 [skip ci]
geka-evk Jun 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# --- .env is used in tests and during local development --- #
PROXY_ID=proxy1
LOG_LEVEL=debug

INBOUND_LISTEN_PORT_A=4000
INBOUND_LISTEN_PORT_B=4100

OAUTH_TOKEN_ENDPOINT_A=http://localhost:8080/openid-connect/token
OAUTH_CLIENT_KEY_A=dfsp-jwt
OAUTH_CLIENT_SECRET_A=secretA

OAUTH_TOKEN_ENDPOINT_B=http://localhost:8080/openid-connect/token
OAUTH_CLIENT_KEY_B=dfsp-jwt
OAUTH_CLIENT_SECRET_B=secretB

#PEER_ENDPOINT_A=extapi.dev.devbaremetal.moja-onprem.net
#PEER_ENDPOINT_B=extapi.uat.devbaremetal.moja-onprem.net
PEER_ENDPOINT_A=localhost:6443
PEER_ENDPOINT_B=localhost:6443

MGMT_API_WS_URL_A=localhost
MGMT_API_WS_URL_B=localhost
MGMT_API_WS_PORT_A=4005
MGMT_API_WS_PORT_B=4005

INCOMING_HEADERS_REMOVAL=xxx,yyy,zzz

HUB_HEADERS=h1,v1;h2,v2;h3,v3
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ module.exports = {
quotes: ['error', 'single', { allowTemplateLiterals: false }],
indent: ['error', 2, { SwitchCase: 1 }],
semi: ['error'],
'object-curly-spacing': ['error', 'always']
},
env: {
node: true,
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Docker Publish

on:
push:
tags: [ 'v*' ] # todo: clarify, why it doesn't work with release (only snapshot)

jobs:
lint-and-test:
uses: infitx-org/inter-scheme-proxy-adapter/.github/workflows/main.yml@main

build-and-push-image:
needs: lint-and-test
# todo: clarify why lint-and-test job runs twice!
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-node@v3
with:
node-version: 20
cache: 'npm'

- name: Setup Git
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"

- run: npm ci

- name: Build
shell: bash
run: npm run build

- name: Build image
run: docker build . --file Dockerfile --tag ${GITHUB_REPOSITORY#*/}

- name: Log into GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin

- name: Push image to GitHub Container Registry
run: |
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/${GITHUB_REPOSITORY#*/}

# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')

# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')

# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')

# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest

echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION

docker tag ${GITHUB_REPOSITORY#*/} $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
8 changes: 8 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,11 @@ jobs:
- run: npm run build
- run: npm run lint
- run: npm run test

- name: Run integration tests
run: |
docker compose build
docker compose up -d
echo "waiting for 15sec before tests run..." && sleep 15
npm run test:int
docker compose down -v
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ dist/
# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
# used in tests and local development
# .env

# next.js build output
.next
Expand Down
1 change: 1 addition & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run lint
npm run dep:check
npm run audit:check
npm run test:unit
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [0.5.0](https://github.com/infitx-org/inter-scheme-proxy-adapter/compare/v0.5.0-snapshot.1...v0.5.0) (2024-06-26)

### [0.4.4](https://github.com/infitx-org/inter-scheme-proxy-adapter/compare/main...feat/csi-48) (2024-06-20)


### Features

* **csi-12:** created ISPA ([e487b1d](https://github.com/infitx-org/inter-scheme-proxy-adapter/commit/e487b1dbd7cc400f629c6afe22352997e8702b69))
14 changes: 2 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,32 +1,25 @@
ARG NODE_VERSION=lts-alpine

# NOTE: Ensure you set NODE_VERSION Build Argument as follows...
#
# export NODE_VERSION="$(cat .nvmrc)-alpine" \
# docker build \
# --build-arg NODE_VERSION=$NODE_VERSION \
# -t infitx-org/inter-scheme-proxy-adapter:local \
# . \
#

FROM node:${NODE_VERSION} as builder
#RUN apk add --no-cache git python3 build-base
WORKDIR /opt/app

## Copy basic files for installing dependencies
WORKDIR /opt/app
COPY tsconfig.json package*.json ./
COPY src ./src

RUN npm ci

## Build the app
RUN npm run build

## *Application*
FROM node:${NODE_VERSION}
#RUN apk add --no-cache git python3 g++ make
WORKDIR /opt/app

WORKDIR /opt/app
COPY package*.json ./
RUN npm ci --omit=dev

Expand All @@ -37,7 +30,4 @@ USER ml-user
## Copy of dist directory from builder
COPY --chown=ml-user --from=builder /opt/app/dist ./dist

## Expose any application ports
# EXPOSE <PORT>

CMD [ "node" , "./dist/index.js" ]
4 changes: 2 additions & 2 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module.exports = {
extends: ['@commitlint/config-conventional']
}
extends: ['@commitlint/config-conventional'],
};
87 changes: 87 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
version: '3.8'

x-mock-server: &MOCK_SERVER
build:
context: ./docker/mock-servers
dockerfile: Dockerfile
restart: always
env_file: .env
volumes:
- ./docker/mock-servers/certs/:/opt/app/certs/

x-hub: &HUB
<<: *MOCK_SERVER
command: npm run start:hub

x-men-api: &MEN_API
<<: *MOCK_SERVER
command: npm run start:ws

x-oidc-server: &OIDC_SERVER
<<: *MOCK_SERVER
command: npm run start:oidc


services:
proxy:
build:
context: ./
dockerfile: Dockerfile
command: /bin/sh -c "sleep 15 && npm start" # todo: use better approach instead of sleep 15
restart: on-failure
env_file: .env
environment:
- PEER_ENDPOINT_A=hub-a:6443
- PEER_ENDPOINT_B=hub-b:6443
- MGMT_API_WS_URL_A=men-api-a
- MGMT_API_WS_URL_B=men-api-b
- OAUTH_TOKEN_ENDPOINT_A=http://oidc-server-a:8080/openid-connect/token
- OAUTH_TOKEN_ENDPOINT_B=http://oidc-server-b:8080/openid-connect/token
ports:
- "${INBOUND_LISTEN_PORT_A}:${INBOUND_LISTEN_PORT_A}"
- "${INBOUND_LISTEN_PORT_B}:${INBOUND_LISTEN_PORT_B}"
depends_on:
- hub-a
- hub-b
- men-api-a
- men-api-b
- oidc-server-a
- oidc-server-b

hub-a:
<<: *HUB
environment:
- SERVER_CERTS_FIELD=server-hub-a
ports:
- "6443:6443"

hub-b:
<<: *HUB
environment:
- SERVER_CERTS_FIELD=server-hub-b
ports:
- "26443:6443"

men-api-a:
<<: *MEN_API
environment:
- CLIENT_CERTS_FIELD=client-hub-a
ports:
- "${MGMT_API_WS_PORT_A}:4005"

men-api-b:
<<: *MEN_API
environment:
- CLIENT_CERTS_FIELD=client-hub-b
ports:
- "24005:4005"

oidc-server-a:
<<: *OIDC_SERVER
ports:
- "8080:8080"

oidc-server-b:
<<: *OIDC_SERVER
ports:
- "28080:8080"
15 changes: 15 additions & 0 deletions docker/mock-servers/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
ARG NODE_VERSION=lts-alpine
ARG USERNAME=ml-user

FROM node:${NODE_VERSION}
ARG USERNAME

WORKDIR /opt/app
COPY tsconfig.json package*.json ./
COPY src ./src
RUN npm ci

RUN adduser -D ${USERNAME}
USER ${USERNAME}

CMD [ "npm" , "start" ]
21 changes: 21 additions & 0 deletions docker/mock-servers/certs/ca-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDZzCCAk+gAwIBAgIUELYvmPg8wJ0CGSPyzuxjxco9z6QwDQYJKoZIhvcNAQEL
BQAwQzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxCzAJBgNVBAoM
AkNBMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMjQwNjExMTc0NjUyWhcNMjcwNDAx
MTc0NjUyWjBDMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTELMAkG
A1UECgwCQ0ExEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAPwv/8BY40PDJmklyYqixT6NCqFJMGvpNAAwUD08mFnpnM40
FQBomsnMnjlyHnxwWpBErsTXgk3Sg0lyrk9Zq57/buFucvdil/Il3yfCs085zK9K
rxQuawVMkCzRDt7hEGEp9OMhnosXEM9JYuO8N4IV6tEhemLKjchBnY3xCl8kCBZc
vDgi+sAd6r3VHrAZT9ZBkrrd3D0D2Ww3NS3+ZNYsl08H9ds0PagW3gySzEqz2QbQ
lDcaQ+3AjCwe359L2pIxmwlmRJQDyXnXtn2KW3Nf8F0KJ3IeoZ1xX0PA43kjnIno
k0HDns2+37ZedoG+wOcRyGZ0QBOnXoBklogYilMCAwEAAaNTMFEwHQYDVR0OBBYE
FCOsZ/lTGAYMy8Azwy78yzUKdDgRMB8GA1UdIwQYMBaAFCOsZ/lTGAYMy8Azwy78
yzUKdDgRMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAPoobpJY
nxFvRwpvS5ulY/cTYKvtdzKDHrompke/4TWfMKKlDOVz3syUe71hxvBoN+5NFsBX
lNcAg5Cl7cbWmcIyI4aJ8Eea+kZUgGlmBDzrC6ubhdEwxs+j80/0868IZNII2UJm
hNrAGXkgnQhNJzs9kqusG+aZtCaIiAwsMpeU+/YVg/IKJXX254sKLBzjjT3c+dlG
ajPIeQ+MSA0j8b//7NdUQWJHBAuWb4Tl+qvTwe/1vCJK2kx3NOjV7sr7rSa6MxCc
mRL5EBLVPnAaCgENWQL4qxPeDN79I6/bhlTrpU8leZqySX+yHDmvR3dQ4L3VoS9v
PdsFQt2+TzZMRL8=
-----END CERTIFICATE-----
Loading