Skip to content

Commit

Permalink
Add Basic_AWS sample
Browse files Browse the repository at this point in the history
  • Loading branch information
mikee47 committed Nov 7, 2020
1 parent ff58432 commit 09a1a2b
Show file tree
Hide file tree
Showing 17 changed files with 480 additions and 0 deletions.
153 changes: 153 additions & 0 deletions samples/Basic_AWS/.cproject
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147" moduleId="org.eclipse.cdt.core.settings" name="Sming">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147" name="Sming" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463" name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.base.1164554300" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base">
<option id="cdt.managedbuild.option.gnu.cross.prefix.521205673" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix"/>
<option id="cdt.managedbuild.option.gnu.cross.path.393887888" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.712123812" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
<builder id="cdt.managedbuild.builder.gnu.cross.2110485170" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cdt.managedbuild.builder.gnu.cross"/>
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1168221903" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
<option id="gnu.c.compiler.option.include.paths.357494572" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/system/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/Libraries&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ESP_HOME}/sdk/include&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.313321806" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1999763015" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
<option id="gnu.cpp.compiler.option.include.paths.611746109" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/system/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/Libraries&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ESP_HOME}/sdk/include&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1330530366" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.65193859" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1795850540" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.364843833" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.525412186" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.587940548" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
<option id="gnu.both.asm.option.include.paths.1067006329" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/system/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SMING_HOME}/Libraries&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ESP_HOME}/sdk/include&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.651581712" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
<externalSettings containerId="Sming;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
</storageModule>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="Basic_Blink.null.1347473968" name="Basic_Blink"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Sming">
<resource resourceType="PROJECT" workspacePath="/Basic_Blink"/>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
<buildTargets>
<target name="all" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>all</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="clean" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>clean</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="flash" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>flash</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="flashonefile" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>flashonefile</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="flashinit" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>flashinit</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="flashboot" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>flashboot</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="rebuild" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-f ${ProjDirPath}/Makefile</buildArguments>
<buildTarget>rebuild</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
</buildTargets>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.c.compiler.mingw.base.2032390008;cdt.managedbuild.tool.gnu.c.compiler.input.1700912488">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cross.c.compiler.1168221903;cdt.managedbuild.tool.gnu.c.compiler.input.313321806">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1999763015;cdt.managedbuild.tool.gnu.cpp.compiler.input.1330530366">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.mingw.base.1135534147;cdt.managedbuild.toolchain.gnu.mingw.base.1135534147.86962463;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base.454898447;cdt.managedbuild.tool.gnu.cpp.compiler.input.501261625">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
</cproject>
29 changes: 29 additions & 0 deletions samples/Basic_AWS/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Basic_AWS</name>
<comment></comment>
<projects>
<project>SmingFramework</project>
<project>Sming</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>
9 changes: 9 additions & 0 deletions samples/Basic_AWS/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#####################################################################
#### Please don't change this file. Use component.mk instead ####
#####################################################################

ifndef SMING_HOME
$(error SMING_HOME is not set: please configure it as an environment variable)
endif

include $(SMING_HOME)/project.mk
8 changes: 8 additions & 0 deletions samples/Basic_AWS/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Basic AWS
=========

How to set up Amazon Web Services to use as an IOT gateway.


openssl rsa -in APP.private.key -out APP.private.key.der -outform DER
openssl x509 -in APP.cert.pem -out APP.cert.der -outform DER
38 changes: 38 additions & 0 deletions samples/Basic_AWS/app/MqttMessage.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/****
* Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
* Created 2015 by Skurydin Alexey
* http://github.com/SmingHub/Sming
* All files of the Sming Core are provided under the LGPL v3 license.
*
* MqttMessage.h - C++ utilities to simplify handling MQTT messages and buffers
*
****/

#pragma once

#include <mqtt-codec/src/message.h>
#include <Print.h>

/**
* @brief Helper class to simplify printing and parsing message buffers
*/
class MqttBuffer : public Printable
{
public:
MqttBuffer(const mqtt_buffer_t& buf) : buf(buf)
{
}

operator String() const
{
return String(reinterpret_cast<const char*>(buf.data), buf.length);
}

size_t printTo(Print& p) const override
{
return p.write(buf.data, buf.length);
}

private:
const mqtt_buffer_t& buf;
};
101 changes: 101 additions & 0 deletions samples/Basic_AWS/app/application.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#include <SmingCore.h>
#include "MqttMessage.h"

// If you want, you can define WiFi settings globally in Eclipse Environment Variables
#ifndef WIFI_SSID
#define WIFI_SSID "PleaseEnterSSID" // Put you SSID and Password here
#define WIFI_PWD "PleaseEnterPass"
#endif

namespace
{
MqttClient mqtt;

IMPORT_FSTR(privateKeyData, PROJECT_DIR "/files/private.pem.key.der");
IMPORT_FSTR(certificateData, PROJECT_DIR "/files/certificate.pem.crt.der");
IMPORT_FSTR(awsEndpoint, PROJECT_DIR "/files/endpoint.txt");

// Run MQTT client
void startMqttClient()
{
mqtt.setSslInitHandler([](Ssl::Session& session) {
session.options.verifyLater = true;
session.keyCert.assign(privateKeyData, certificateData);
});

Url url;
url.Scheme = URI_SCHEME_MQTT_SECURE;
url.Host = awsEndpoint;
mqtt.connect(url, "Basic_AWS");

// Assign a disconnect callback function
// mqtt.setCompleteDelegate(checkMQTTDisconnect);
mqtt.subscribe("thing/fish/test");
}

// Publish our message
void publishMessage()
{
// Auto reconnect
if(mqtt.getConnectionState() != eTCS_Connected) {
startMqttClient();
}

Serial.println("publish message");
mqtt.publish("version", "ver.1.2");
}

// Callback for messages, arrived from MQTT server
int onMessagePublish(MqttClient& client, mqtt_message_t* message)
{
Serial.print("Publish: ");
Serial.print(MqttBuffer(message->publish.topic_name));
Serial.print(":\r\n\t"); // Pretify alignment for printing
Serial.println(MqttBuffer(message->publish.content));
return 0;
}

int onMessageConnect(MqttClient& client, mqtt_message_t* message)
{
Serial.print("Connect: ");
Serial.print(MqttBuffer(message->connect.protocol_name));
Serial.print(", client: ");
Serial.println(MqttBuffer(message->connect.client_id));
return 0;
}

int onMessageDisconnect(MqttClient& client, mqtt_message_t* message)
{
Serial.println("Disconnect");
return 0;
}

void gotIP(IpAddress ip, IpAddress netmask, IpAddress gateway)
{
Serial.print("Connected: ");
Serial.println(ip);
startMqttClient();
publishMessage(); // run once publishMessage

mqtt.subscribe("$aws/things/Basic_AWS/shadow/get");
}

} // namespace

void init()
{
Serial.begin(SERIAL_BAUD_RATE); // 115200 by default
Serial.systemDebugOutput(true);

Serial.println("Hello");

// initialization config
mqtt.setEventHandler(MQTT_TYPE_PUBLISH, onMessagePublish);
mqtt.setEventHandler(MQTT_TYPE_CONNECT, onMessageConnect);
mqtt.setEventHandler(MQTT_TYPE_DISCONNECT, onMessageDisconnect);

WifiStation.config(WIFI_SSID, WIFI_PWD);
WifiStation.enable(true);
WifiEvents.onStationGotIP(gotIP);
WifiAccessPoint.enable(false);
}
4 changes: 4 additions & 0 deletions samples/Basic_AWS/component.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DISABLE_SPIFFS := 1
ENABLE_SSL := 1
MQTT_NO_COMPAT := 1
ENABLE_CUSTOM_HEAP := 1
20 changes: 20 additions & 0 deletions samples/Basic_AWS/files/3051d5b002-certificate.pem.crt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDWjCCAkKgAwIBAgIVAOxaW1RB41mdhMvpNLw9Bo85VGkRMA0GCSqGSIb3DQEB
CwUAME0xSzBJBgNVBAsMQkFtYXpvbiBXZWIgU2VydmljZXMgTz1BbWF6b24uY29t
IEluYy4gTD1TZWF0dGxlIFNUPVdhc2hpbmd0b24gQz1VUzAeFw0xOTA5MTUxNDI3
MjVaFw00OTEyMzEyMzU5NTlaMB4xHDAaBgNVBAMME0FXUyBJb1QgQ2VydGlmaWNh
dGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQClilQHo7KeM6hv61Zi
Up2274y5/fOzoYYznCr/+8fivmtAh6BBekiFY5FYPOr1Gb6hIQs0TQvmOeYWDD4n
dy2qHhSnhWVyw/OzCr9QngBVjNQ7PVDd+Ij708E3UEuZp9/ORiGfSPQ/LrYFw6bB
zlPgRiN7H6hNOrmG1+lsZCwH/zFkGaOMZp22pUTUmNX//Fg9mni0OT4iBngD/lVO
+TIBz96Nj0kQepr5Pci4nwuAwrxf+sBy8s8aA6JxJrB1zlUMT0rc7K4AxjJCVi9q
am/Fd7Lyh+4JD0ndPVsIIpUKD7JDSCmicOA0q3VB1p4SuDGrsgvvqQXrfncSnBTw
tEnnAgMBAAGjYDBeMB8GA1UdIwQYMBaAFI08RqEu1VXBTz7eQypWXKpuZV6OMB0G
A1UdDgQWBBQ9AwSFdv0tkOROoUjIPOX66boY9zAMBgNVHRMBAf8EAjAAMA4GA1Ud
DwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAfeoF/tH7cI6cw9psDGi3LEyQ
YRuut9f6psjY4j++DrWGpsqvLlghvgeighvbSf0J6CTHVlrUXpQEOgRk3HzcMjwW
7EczkT6FsJghqjGgye3wKtAsqoide8uvC1mJ7Ev02LfdEZDge55+930ozBzXnjH2
R1s0pRokzh8pHy2Ug/Y/29dRBPK9smCtOFUAeQpJ6Z93u720bOUOqHo+KBfZjTEC
5eyxp2NiuzYP8bCOEyJIcDXXk5xVy6WZMJ73Xj/2z5M39YIr+QXvITDx4zfTK8Ue
3h9I7CULHEA2cjKmdlDiNGTu2fKChrqgUy0owzQSPxf1G9gV95yESLEceIpKjg==
-----END CERTIFICATE-----
27 changes: 27 additions & 0 deletions samples/Basic_AWS/files/3051d5b002-private.pem.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEApYpUB6OynjOob+tWYlKdtu+Muf3zs6GGM5wq//vH4r5rQIeg
QXpIhWORWDzq9Rm+oSELNE0L5jnmFgw+J3ctqh4Up4VlcsPzswq/UJ4AVYzUOz1Q
3fiI+9PBN1BLmaffzkYhn0j0Py62BcOmwc5T4EYjex+oTTq5htfpbGQsB/8xZBmj
jGadtqVE1JjV//xYPZp4tDk+IgZ4A/5VTvkyAc/ejY9JEHqa+T3IuJ8LgMK8X/rA
cvLPGgOicSawdc5VDE9K3OyuAMYyQlYvampvxXey8ofuCQ9J3T1bCCKVCg+yQ0gp
onDgNKt1QdaeErgxq7IL76kF6353EpwU8LRJ5wIDAQABAoIBABp78Aes2+XNk/Qb
7Z0bZJog5x3WkEe73tGg+YwsxwTyvAv95tiy7KlSja1VSa3e6Y2z0KwUa4Pw3WvH
l6YOviKKX3mRsPJUgUeyv3rxXFJTjpzPqYFpwtivPylPUlkJ75d7xuNJ87GsEnkH
nUVCck7eSczn+rAoZgg5wOGTgSviGSq2evmGoTOX0u2IEbJGZhS+Ge5jjYITuquG
vd2AwydUtS62aftyUH0RedsR/E8AJHm4PQE/W/gOu0h06g4NkgoUzuHiaYpZTUV1
1YJ0cJuPm2cB6bZAHXMtwhNQ+P4u93NKpHB2BNL0zuFZ0jjieMdE9BR/IkNDXWeD
dRL4anECgYEA040zgtpWeZrfjtjQ7HDTJMhxZbQAgpwkjV/hQB/DwAhLRl1f98bM
5e6NQZUkTBiyeDjALAC8kA1Tzbwemm1wnAvDAujhzZf6vi/hnN21YZ0vyzit+O6O
K3GOJni6YVx5A0eW8whedbgT1JuLI3cCEXi2MeV46R5hj4HxMRdaWE8CgYEAyFJO
H1P/nkFlf/FOfKG9M3qHCMh37FbaD5Nzs1gdSCwo5odC9I9UZUpRbhlZzS1n282n
dPAXTl9dvI4oIa4JY1wirvigHsXx6ujlpJX8ixfYAiEAJpDmpa1bn6ut7QoNZvl+
F9Xa6WzaYmjldKIwaJLxzutrNGbR1YAXsnIC9ukCgYEA0NmJjRl4Xb1kD2ZFe+c2
zA2Gxd0a09bKzzdk7SVu31pQ1jrAz6DYD/eeRKy0lNuc9csxDT/86En//hBGNjbt
AWErOOgoZAwyYyhqF69ZrfC8imh+eE8q1ADbUWfGuO/OGErI303X02fTTAXzKyQG
SrFdTY05/QsdTcv/DXP8oUkCgYA14148sz4KdpE1b9arVF8vYAC/bh5Ep8CVfBcd
4dBOwAJosW5jl8MeVHW/ZnZv6Y0M5i/sF0JNxP3UYXGOTeEcp4Z1B1Ebtig0B17v
faGoUUu8luARf91sKEyDkY2CPLgKQYeYJeFz9eJxosJHM/JNz2nZPh9iw14jTwgQ
6va9MQKBgQCyOAzarD9sf5rFWox4zMIxVF+xrY0Szc30iIfPnb5gA/zUrDSVf05V
Ql1SV7pZzIC/KsK+RYssjMcWXTO+JRjhjSecW0M2FCZBUX7hHCTCYPiQ/3oLSuwb
Bl5TKKAw3w9xAbW3wI9O2MnLsdQltcmAPez+rTM2+/NZ+xjxA2LQOQ==
-----END RSA PRIVATE KEY-----
Loading

0 comments on commit 09a1a2b

Please sign in to comment.