Add channel get info and list
parent
b64fc2ebd8
commit
f98590354a
|
@ -1,4 +1,6 @@
|
|||
# Makefile to bootup the network, and do operations (channel, chaincode)
|
||||
# Makefile to bootup the network, and do testing with channel, chaincode
|
||||
# Run `make test` will pass all testing cases, and delete the network
|
||||
# Run `make ready` will create a network, pass testing cases, and stand there for manual test, e.g., make test_channel_list
|
||||
|
||||
|
||||
# support advanced bash grammar
|
||||
|
@ -70,11 +72,13 @@ ready: # create/join channel, install/instantiate cc
|
|||
make logs_save
|
||||
|
||||
@echo "Now the fabric network is ready to play"
|
||||
@echo "run 'make cli' to enter into the fabric-cli container."
|
||||
@echo "run 'make stop' when done."
|
||||
@echo "* run 'make cli' to enter into the fabric-cli container."
|
||||
@echo "* run 'make stop' when done."
|
||||
|
||||
channel_test: test_channel_create test_channel_join
|
||||
# channel related operations
|
||||
channel_test: test_channel_create test_channel_join test_channel_list test_channel_getinfo
|
||||
|
||||
# chaincode related operations
|
||||
cc_test: test_cc_install test_cc_instantiate test_cc_invoke_query
|
||||
|
||||
restart: stop start
|
||||
|
@ -92,6 +96,14 @@ chaincode_dev: restart chaincode_init test_cc_peer0 stop
|
|||
|
||||
################## Channel testing operations ################
|
||||
|
||||
test_channel_list: # List the channel that peer joined
|
||||
@echo "List the joined channels"
|
||||
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_list.sh"
|
||||
|
||||
test_channel_getinfo: # Get info of a channel
|
||||
@echo "Get info of the app channel"
|
||||
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_getinfo.sh"
|
||||
|
||||
test_channel_create: # Init the channel
|
||||
@echo "Create channel on the fabric network"
|
||||
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_channel_create.sh"
|
||||
|
@ -174,7 +186,7 @@ clean: # clean up containers
|
|||
@-docker ps -a | awk '{ print $$1,$$2 }' | grep "hyperledger/fabric" | awk '{ print $$1 }' | xargs -r -I {} docker rm -f {}
|
||||
@-docker ps -a | awk '$$2 ~ /dev-peer/ { print $$1 }' | xargs -r -I {} docker rm -f {}
|
||||
@-docker images | awk '$$1 ~ /dev-peer/ { print $$3 }' | xargs -r -I {} docker rmi -f {}
|
||||
echo "May need to clean the solo/channel-artifacts and crypto-config path"
|
||||
echo "May manually clean the solo|kafka/channel-artifacts and crypto-config path"
|
||||
|
||||
env_clean: # clean up environment
|
||||
@echo "Clean all images and containers"
|
||||
|
|
|
@ -192,6 +192,47 @@ getShasum () {
|
|||
shasum ${1} | awk '{print $1}'
|
||||
}
|
||||
|
||||
# List the channel that the peer joined
|
||||
# E.g., for peer 0 at org 1, will do
|
||||
# channelList 1 0
|
||||
channelList () {
|
||||
local org=$1
|
||||
local peer=$2
|
||||
echo "=== List the channels that org${org}/peer${peer} joined === "
|
||||
|
||||
setEnvs $org $peer
|
||||
|
||||
peer channel list >&log.txt
|
||||
rc=$?
|
||||
[ $rc -ne 0 ] && cat log.txt
|
||||
if [ $rc -ne 0 ]; then
|
||||
echo "=== Failed to list the channels that org${org}/peer${peer} joined === "
|
||||
else
|
||||
echo "=== Done to list the channels that org${org}/peer${peer} joined === "
|
||||
fi
|
||||
}
|
||||
|
||||
# Get the info of specific channel, including {height, currentBlockHash, previousBlockHash}.
|
||||
# E.g., for peer 0 at org 1, get info of business channel will do
|
||||
# channelGetInfo businesschannel 1 0
|
||||
channelGetInfo () {
|
||||
local channel=$1
|
||||
local org=$2
|
||||
local peer=$3
|
||||
echo "=== Get channel info of ${channel} with id of org${org}/peer${peer} === "
|
||||
|
||||
setEnvs $org $peer
|
||||
|
||||
peer channel getinfo -c ${channel} >&log.txt
|
||||
rc=$?
|
||||
[ $rc -ne 0 ] && cat log.txt
|
||||
if [ $rc -ne 0 ]; then
|
||||
echo "=== Fail to get channel info of ${channel} with id of org${org}/peer${peer} === "
|
||||
else
|
||||
echo "=== Done to get channel info of ${channel} with id of org${org}/peer${peer} === "
|
||||
fi
|
||||
}
|
||||
|
||||
# Fetch all blocks for a channel
|
||||
# Usage: channelFetchAll channel org peer
|
||||
channelFetchAll () {
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Importing useful functions for cc testing
|
||||
if [ -f ./func.sh ]; then
|
||||
source ./func.sh
|
||||
elif [ -f scripts/func.sh ]; then
|
||||
source scripts/func.sh
|
||||
fi
|
||||
|
||||
## Join all the peers to the channel
|
||||
echo_b "=== Getting info of channel ${APP_CHANNEL}... ==="
|
||||
|
||||
for org in "${ORGS[@]}"
|
||||
do
|
||||
for peer in "${PEERS[@]}"
|
||||
do
|
||||
channelGetInfo ${APP_CHANNEL} $org $peer
|
||||
done
|
||||
done
|
||||
|
||||
echo_g "=== Get info of channel ${APP_CHANNEL} Complete ==="
|
||||
|
||||
echo
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Importing useful functions for cc testing
|
||||
if [ -f ./func.sh ]; then
|
||||
source ./func.sh
|
||||
elif [ -f scripts/func.sh ]; then
|
||||
source scripts/func.sh
|
||||
fi
|
||||
|
||||
## Create channel
|
||||
echo_b "=== Listing joined channels... ==="
|
||||
|
||||
for org in "${ORGS[@]}"
|
||||
do
|
||||
for peer in "${PEERS[@]}"
|
||||
do
|
||||
channelList $org $peer
|
||||
done
|
||||
done
|
||||
|
||||
echo_g "=== Done listign joined channels ==="
|
||||
|
||||
echo
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -696,13 +696,13 @@
|
|||
},
|
||||
"signatures": [
|
||||
{
|
||||
"signature": "MEUCIQDC28rtC7rFUl7vETlvWrSV11qdaxhKrMdsGPceiH/oHQIgXVm5sy3JHxWkypsE1ZynxZk6KWxi0/MFYW3oY3lXuoE=",
|
||||
"signature": "MEQCIHtKSzjTkoRqq9OnILD6y9c5DlYLFTQRPunhhjYOGm+3AiBLrF9zOgMWgS0BoaemfZSlVInRv7B04piqPUmLnTctCA==",
|
||||
"signature_header": {
|
||||
"creator": {
|
||||
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWNDZ0F3SUJBZ0lSQUtESTVTVy9ES2s4aXVkMkZuNVRybTB3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TVRNd01EYzBNREkzV2hjTk1qZ3dNVEk0TURjME1ESTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkFROW5hOFVzQ3IzcDhBSndwV2lndndkWnJ4STRqU3EKRWg5dk5tREJvbWx2cDI1TmY5UjJQaUtISmptTmx3b3U2MWJSTlp1cmVvMVlnbmpDVk9BaTlhMmpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSUs3NkNIRVBLWHdMCm52VzU2eHhBc3hWeGhlaXdkdDIxV2tNQ2NOQ2pHenU4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUhnZG5CTHcKajQxNkJHbStqRGVkcThtYXRWY3lkM29uRWl0NzdzNnVnQW1YQWlBdHJrTS9LZXQydGozbjYydkUxRG0vbVZNQgo1WTgwUUxlRXZZa29NTU1iY0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
|
||||
"mspid": "Org2MSP"
|
||||
},
|
||||
"nonce": "4a9g783yS8wLKREAu0T4ULrsLB/0NeK9"
|
||||
"nonce": "s51qpN9kHU/C5PX73Gk7HdvvyNGt82sP"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -711,7 +711,7 @@
|
|||
"channel_header": {
|
||||
"channel_id": "businesschannel",
|
||||
"epoch": "0",
|
||||
"timestamp": "2018-05-31T05:21:38.000Z",
|
||||
"timestamp": "2018-06-12T02:14:20.000Z",
|
||||
"tx_id": "",
|
||||
"type": 2,
|
||||
"version": 0
|
||||
|
@ -721,18 +721,18 @@
|
|||
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWNDZ0F3SUJBZ0lSQUtESTVTVy9ES2s4aXVkMkZuNVRybTB3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TVRNd01EYzBNREkzV2hjTk1qZ3dNVEk0TURjME1ESTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkFROW5hOFVzQ3IzcDhBSndwV2lndndkWnJ4STRqU3EKRWg5dk5tREJvbWx2cDI1TmY5UjJQaUtISmptTmx3b3U2MWJSTlp1cmVvMVlnbmpDVk9BaTlhMmpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSUs3NkNIRVBLWHdMCm52VzU2eHhBc3hWeGhlaXdkdDIxV2tNQ2NOQ2pHenU4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUhnZG5CTHcKajQxNkJHbStqRGVkcThtYXRWY3lkM29uRWl0NzdzNnVnQW1YQWlBdHJrTS9LZXQydGozbjYydkUxRG0vbVZNQgo1WTgwUUxlRXZZa29NTU1iY0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
|
||||
"mspid": "Org2MSP"
|
||||
},
|
||||
"nonce": "+pfcTg5yMvktMXYWEcXTmXkaKm6QlNPL"
|
||||
"nonce": "93Kwqhlt/QQTYQvJu4yYssZrBnFW8e7V"
|
||||
}
|
||||
}
|
||||
},
|
||||
"signature": "MEQCIGtTGk1P9nXukC5Pe5SDzbTH3HE3+9SRNQ4NoCRFnD/UAiBCGGtagMyLWBUX5ISmy6uRFW9ZruwMzcg4fc5/xQlwWA=="
|
||||
"signature": "MEQCIGiRYbEW6RgfiqPZxYLwCcmNKNxQwnAE1Oee4+3WQgs5AiAL41iACs5N8Qi6sHBsN2Ccgbfcg5kSSbuFj5kgJCHRbw=="
|
||||
}
|
||||
},
|
||||
"header": {
|
||||
"channel_header": {
|
||||
"channel_id": "businesschannel",
|
||||
"epoch": "0",
|
||||
"timestamp": "2018-05-31T05:21:38.000Z",
|
||||
"timestamp": "2018-06-12T02:14:20.000Z",
|
||||
"tx_id": "",
|
||||
"type": 1,
|
||||
"version": 0
|
||||
|
@ -742,23 +742,23 @@
|
|||
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
|
||||
"mspid": "OrdererMSP"
|
||||
},
|
||||
"nonce": "iY/F+dxZOrg9Yxue69Bn666ZgbZHoO/4"
|
||||
"nonce": "IIk9lqom/gDVr03gcr3T4kleSURuD8nj"
|
||||
}
|
||||
}
|
||||
},
|
||||
"signature": "MEUCIQDE4EF/LZM8ARmUAWzsZhxaWkvQJiW6lFNW1kaT/t1fogIgHs3kyK6YAlcQ96rTduT1jhlNUeAwSrcyrEPW8soHpaA="
|
||||
"signature": "MEUCIQDruLP4esd6hgo2Ci1U5bXW60RuyGlbR/G9F0YvsxsVcwIgKgzLUuhSfTKo2hb4daPbDdmdshBu/c9Wnkl0pGjKfPQ="
|
||||
}
|
||||
]
|
||||
},
|
||||
"header": {
|
||||
"data_hash": "9bqGlksLnXAk7jwVIPKtKGiu25A6KkCV/GFqZop8Q90=",
|
||||
"data_hash": "Om/2/2vkczZgs/n0AUiXRejsCW/Wz+x3+uGkswCUAL0=",
|
||||
"number": "2",
|
||||
"previous_hash": "CxV08lyZKJUB14qCLoyAUb7/krG1WBKlfBeaKrVWgy8="
|
||||
"previous_hash": "cVpR6aKv7O8tkJ3xShRITwwjqenyrGIOzppeMf+MBss="
|
||||
},
|
||||
"metadata": {
|
||||
"metadata": [
|
||||
"EvgGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYL7R08m7OZlpnXEW8IV2YvHr8Y3b2tjh1EkYwRAIgagJsHhvpfNAR+m8K6wGctcxN71VgRWco0nUBRmMPJFgCIDxNPeKqgupkNBB3pj+fQb5pqaAlP/F/oRJC4TbsO7VZ",
|
||||
"CgIIAhL4BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDQ3pDQ0FiS2dBd0lCQWdJUVdlQXBDY04xSjM2TUNjbjErQm9QV0RBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEU0TURFek1EQTNOREF5TjFvWERUSTRNREV5T0RBM05EQXlOMW93V0RFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEhEQWFCZ05WQkFNVEUyOXlaR1Z5WlhJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpbmlaM0ZkMGRjUjBTaFpvcTZNUzhneUxyWm5YRWtreFBEVjNpa0tHcDY3ZFNQMFFPCkZrNmdDVTFvSnNramxaeHdaa1k2MjVBekNQMDRGM0RwOTdXbG8wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXcKREFZRFZSMFRBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0QyTXJvZ2JMK0hPR1RSVkxYNkN3bmhkcmRFTHQ0bwp6UDlBZTAzdnVHTzREVEFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFFck5SUldHWTVDTFluRjVYR2ljZTdpS09SCnF0WmJBU253dHhmeEoxYWxmZ0lnS1VoNHp6SzNFQ2U2NkdoclZWUExmcERReitZSzZGdzVEYTBHeXYrdDJKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGLKfR3hQ8hIOCpsLgE9ulQXc0MNSGhih7xJGMEQCIEdEQY5EKCng0tSSGcoBJTXLDvW5SsFkK2FcakrzDPYAAiBMMzVdXQ8NYEahtrSywBv8+guCaoFTQTJrAwJXFY0NSw==",
|
||||
"EvkGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDekNDQWJLZ0F3SUJBZ0lRV2VBcENjTjFKMzZNQ2NuMStCb1BXREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNREV6TURBM05EQXlOMW9YRFRJNE1ERXlPREEzTkRBeU4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWluaVozRmQwZGNSMFNoWm9xNk1TOGd5THJablhFa2t4UERWM2lrS0dwNjdkU1AwUU8KRms2Z0NVMW9Kc2tqbFp4d1prWTYyNUF6Q1AwNEYzRHA5N1dsbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDRDJNcm9nYkwrSE9HVFJWTFg2Q3duaGRyZEVMdDRvCnpQOUFlMDN2dUdPNERUQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUVyTlJSV0dZNUNMWW5GNVhHaWNlN2lLT1IKcXRaYkFTbnd0eGZ4SjFhbGZnSWdLVWg0enpLM0VDZTY2R2hyVlZQTGZwRFF6K1lLNkZ3NURhMEd5dit0MkpJPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYLi6Np0Sxc4mVS05v5/5OHcDuAaOCKT0gEkcwRQIhAOQU0ei9xQCcxIvVz+cCw8PJZ+JDD13oIhg+pNXNVc9iAiA0fUpBnlmdUV8px5DrsUy/dy/aA4bH7lWIVDYlX3Pfdg==",
|
||||
"CgIIAhL5BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDQ3pDQ0FiS2dBd0lCQWdJUVdlQXBDY04xSjM2TUNjbjErQm9QV0RBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEU0TURFek1EQTNOREF5TjFvWERUSTRNREV5T0RBM05EQXlOMW93V0RFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEhEQWFCZ05WQkFNVEUyOXlaR1Z5WlhJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpbmlaM0ZkMGRjUjBTaFpvcTZNUzhneUxyWm5YRWtreFBEVjNpa0tHcDY3ZFNQMFFPCkZrNmdDVTFvSnNramxaeHdaa1k2MjVBekNQMDRGM0RwOTdXbG8wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXcKREFZRFZSMFRBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0QyTXJvZ2JMK0hPR1RSVkxYNkN3bmhkcmRFTHQ0bwp6UDlBZTAzdnVHTzREVEFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFFck5SUldHWTVDTFluRjVYR2ljZTdpS09SCnF0WmJBU253dHhmeEoxYWxmZ0lnS1VoNHp6SzNFQ2U2NkdoclZWUExmcERReitZSzZGdzVEYTBHeXYrdDJKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGAtd40Avwwg02jgfO4dJhRsvffJlDNXaFhJHMEUCIQDt83w7IOlrWSEd48BCFW3WeYFAJSq24dUxvIki4keeZAIgUNzwPh252jTKCsbcIMCbcciDuSQ1dtJTsWbWhJhxf6o=",
|
||||
"",
|
||||
""
|
||||
]
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue