diff --git a/.dockerignore b/.dockerignore index 8e61225..5a79028 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,5 @@ -electron +docs +examples node_modules +secrets server -tests -tests_cache -.DS_Store -.git -.tscache diff --git a/.gitignore b/.gitignore index 6100e52..76cc641 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,8 @@ -/lib +/secrets node_modules .DS_Store .tscache .istanbul.yml .nyc_output .vscode -coverage/ -meteor/ -server/context/CMakeLists.txt -server/context/bin/ -server/context/build/ -server/context/trie_modules/ -server/context/.idea -server/context/tmake_server.xcodeproj -server/context/Info.plist -/tests -/dist -/tests_cache -/nexe \ No newline at end of file +.tmake diff --git a/.npmignore b/.npmignore index 96defbf..bdba9bf 100644 --- a/.npmignore +++ b/.npmignore @@ -1,11 +1,6 @@ -/.nyc_output -/src +/.vscode /docker -/meteor +/examples +/src/*/src /server -/nexe /tests -/tests_cache -/test -/coverage -node_modules \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 5bfa050..ebae7bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,15 @@ os: - linux -- osx dist: trusty language: node_js node_js: - '6' +- '7' before_install: - npm config set progress=false -script: npm run travis +script: make travis after_script: - cat ./coverage/lcov.info | ./node_modules/.bin/coveralls deploy: - provider: npm - on: - branch: release - email: structuresound@gmail.com - skip_cleanup: true api_key: - secure: fR8zPV59CIjW3NniwReGWZ4IHDxbl4VJNjGFFsV+TwMcmOek+pYRJR58sZdZ+2E+CI0zdffa9Bd65WPHcHX3J5j00okSQXNYcASIT/8sfcQG2lQhZ7Ijz5G1v6wCJLec8WUILiylREqzBZzh3SPzW6DidNbdvNVbxpN3CKfz3yhECbtUzc5Vm4p/kwRbRhM9hVmK3Z+9amLXxpI9HG37rClhpetMhLmrdrVnQo0pSL6Rwm2EpHf9MR7evWkDmYxsd8zXHZ0XWkQJMrid2iEEuAjMUFIgejIAbM02zoCKrraQf62VhzTewLObucSYeGpfMglfwgDX9IjyVZVOwUFt+xO0aHrIA7vklh1rMxKcoUzLbcfDVvq+DPrJoP89dg7oQBPKj+d1sndaqAeEBKWuCGzyPb0Gb3gjiI4hzs0qtQZFMQXmAMOvyWOqQ/tlchalyRai8qyDqyojkRSZCb/F9oxdUtDtTDCT4UpX7QuSleyX3b5o1NoGoG3+4D4EheMhoZJsV9qTxHC5COHyqskJMdNf06fQGl2HgGeD7yzdiqtkgGKBTPW6XLG3qQUpJUBkJIYw3ActmOP8VgW2MzI76GUOfUqKlJLfXQ5PaQrl1bVqhbTDNwuEuMFACeNbFKKfHk7RurwIoJxaTZvcBRIjBUDnaAmaU4iHt5dqFGazhC0= \ No newline at end of file + secure: LSfjJTmLEKnTGjKNFdOZmdGiS8AZdakZzBM5EQByYoE0Zeuh5VDHA0UiDIj17NHGDOpvV7ABaz0Tfy8v4GM0+AwzR0g7V1rIB8/IUNQLiojZTgM0SVTlRRAk6EYWD1EtR6swugSqwYFnrNvwRtxAVAEz4W6ZR4pVFII18VhqtcDo2NzB5uSfcHun8cnAgCcT9cnNiMqpM9ihb8jxfhP12AkVQFuFAyOtnFXSy4to2H2SIvUWWu0rVPrvOQaB6OwHMTeWKETQtg9Fn3Y5KnvwmA3ADdat+y31s4JqSc4JdNjSyAzt/UKhDfw3NNFpNYY5dd+00FesNnPEMZ8p6JaJdyzhF9zDtbKpy2MHJY/WuqDr1P5+eMFGvyLdu9y9O3271mML7ZxXrf7F5TVxxm9jMjKTVVbgwF6KVd3lXMNCcZ+UNbgbq43+mpG9YM9oagQhdFXIVgWXXLBd2GUXb/Ch7Lue6p5Qi/Y1cfQMW87NvoOlSBq4mD4pQ7IdBsIAi+PKCGYtWlS7uHYeUuL5sefG/sti8pljJdk5luvkUnse3cI7Y6CZYv9KJ1Cs809FXo/nDrNJqj2tPxA+lq5TtqlUVHfa/czv5nv9QcfvWVi4d8vL3EzjebIFd8r9KE25CWtCjAO5xRbRC/d3sAse65J3TuwPif2TvGvRSY6fzqD7ICc= diff --git a/Dockerfile b/Dockerfile index 02f532e..813e0cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,30 @@ FROM 1e1f/tmake:base -MAINTAINER chroma +MAINTAINER chroma -RUN apt-get install -y runit apt-transport-https -RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - -RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list -RUN apt-get update && apt-get install -y yarn + +ENV YARN_VERSION 0.21.3 +ADD https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v${YARN_VERSION}.tar.gz /opt/yarn.tar.gz +RUN yarnDirectory=/opt/yarn && \ + mkdir -p "$yarnDirectory" && \ + tar -xzf /opt/yarn.tar.gz -C "$yarnDirectory" && \ + ln -s "$yarnDirectory/dist/bin/yarn" /usr/local/bin/ && \ + rm /opt/yarn.tar.gz RUN npm i -g mocha COPY docker/image/ / COPY package.json /tmake/ -COPY yarn.lock /tmake/ +COPY Makefile /tmake/ +COPY bin/ /tmake/bin/ +COPY settings/ /tmake/settings/ +COPY src/ /tmake/src/ +COPY tests/src /tmake/tests/src +COPY tests/package.json /tmake/tests/package.json ENV HOME /tmake WORKDIR /tmake -RUN yarn install --production - -COPY bin/ /tmake/bin/ -COPY src/ /tmake/src/ -COPY lib/ /tmake/lib/ -COPY test/ /tmake/test/ -RUN NODE_ENV=test mocha --require source-map-support/register test/ +RUN make test RUN npm link -WORKDIR /tmake/build ENTRYPOINT [ "/tmake/entrypoint.sh" ] diff --git a/Makefile b/Makefile index 432f07c..301f75c 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,35 @@ dockerBase: cd docker/base && docker build -t 1e1f/tmake:base . tmake: - gulp scripts -docker: tmake + cd src && yarn + cd src/core && npm run distribute && npm link + cd src/cmake && npm run distribute && npm link + cd src/make && npm run distribute && npm link + cd src/cli && npm run distribute && npm link + +pre-test: tmake + mkdir -p tests/.tmake/plugins + touch tests/.tmake/plugins/package.json + cd tests/.tmake/plugins && npm link tmake-plugin-cmake + cd tests/.tmake/plugins && npm link tmake-plugin-make + +test: pre-test + cd tests && npm run before && npm test + +coverage: pre-test + cd tests && npm run before && npm run cover + +travis: coverage + +docker: clean + rm -Rf tests/.tmake docker build -t 1e1f/tmake . +docker-clean: + docker rmi 1e1f/tmake:server + docker rmi 1e1f/tmake + docker rmi 1e1f/tmake:base + server: cd server/project && docker build -t 1e1f/tmake:server . @@ -13,9 +38,10 @@ run: cd server && docker compose up clean: - docker rmi 1e1f/tmake:server - docker rmi 1e1f/tmake - docker rmi 1e1f/tmake:base + rm -Rf **/node_modules + rm -Rf **/**/node_modules + rm -Rf **/**/**/node_modules + rm -Rf server/data install: docker push 1e1f/tmake:base diff --git a/README.md b/README.md index f7793ff..5a6ab40 100644 --- a/README.md +++ b/README.md @@ -130,5 +130,5 @@ see 'warning' at the top, *update* this project is ALMOST useful now, please hol _(Nothing yet)_ ## License -Copyright (c) 2016 1e1f +Copyright (c) 2018 1e1f Licensed under the MIT license. diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..3e22129 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/dist \ No newline at end of file diff --git a/bin/assets/ios.pbxproj b/bin/assets/ios.pbxproj deleted file mode 100644 index f970a0e..0000000 --- a/bin/assets/ios.pbxproj +++ /dev/null @@ -1,255 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 29459E011D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TMAKE_PRODUCT_NAME.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 29459E151D9DC20900DE1DC4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 29459DFE1D9DC20900DE1DC4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 29459DF81D9DC20900DE1DC4 = { - isa = PBXGroup; - children = ( - 29459E031D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME */, - 29459E021D9DC20900DE1DC4 /* Products */, - ); - sourceTree = ""; - }; - 29459E021D9DC20900DE1DC4 /* Products */ = { - isa = PBXGroup; - children = ( - 29459E011D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME.app */, - ); - name = Products; - sourceTree = ""; - }; - 29459E031D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME */ = { - isa = PBXGroup; - children = ( - 29459E151D9DC20900DE1DC4 /* Info.plist */, - ); - path = TMAKE_PRODUCT_NAME; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 29459E001D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME */ = { - isa = PBXNativeTarget; - buildConfigurationList = 29459E181D9DC20900DE1DC4 /* Build configuration list for PBXNativeTarget "TMAKE_PRODUCT_NAME" */; - buildPhases = ( - 29459DFD1D9DC20900DE1DC4 /* Sources */, - 29459DFE1D9DC20900DE1DC4 /* Frameworks */, - 29459DFF1D9DC20900DE1DC4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TMAKE_PRODUCT_NAME; - productName = TMAKE_PRODUCT_NAME; - productReference = 29459E011D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29459DF91D9DC20900DE1DC4 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0730; - ORGANIZATIONNAME = TMAKE_ORGANIZATION_NAME; - TargetAttributes = { - 29459E001D9DC20900DE1DC4 = { - CreatedOnToolsVersion = 7.3.1; - }; - }; - }; - buildConfigurationList = 29459DFC1D9DC20900DE1DC4 /* Build configuration list for PBXProject "TMAKE_PRODUCT_NAME" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 29459DF81D9DC20900DE1DC4; - productRefGroup = 29459E021D9DC20900DE1DC4 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 29459E001D9DC20900DE1DC4 /* TMAKE_PRODUCT_NAME */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 29459DFF1D9DC20900DE1DC4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 29459DFD1D9DC20900DE1DC4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 29459E161D9DC20900DE1DC4 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 29459E171D9DC20900DE1DC4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 29459E191D9DC20900DE1DC4 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "TMAKE-ORGANIZATION-IDENTIFIER.TMAKE-PRODUCT-NAME"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 29459E1A1D9DC20900DE1DC4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "TMAKE-ORGANIZATION-IDENTIFIER.TMAKE-PRODUCT-NAME"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 29459DFC1D9DC20900DE1DC4 /* Build configuration list for PBXProject "TMAKE_PRODUCT_NAME" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 29459E161D9DC20900DE1DC4 /* Debug */, - 29459E171D9DC20900DE1DC4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 29459E181D9DC20900DE1DC4 /* Build configuration list for PBXNativeTarget "TMAKE_PRODUCT_NAME" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 29459E191D9DC20900DE1DC4 /* Debug */, - 29459E1A1D9DC20900DE1DC4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29459DF91D9DC20900DE1DC4 /* Project object */; -} diff --git a/bin/assets/ios_Info.plist b/bin/assets/ios_Info.plist deleted file mode 100644 index 40c6215..0000000 --- a/bin/assets/ios_Info.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/bin/assets/mac.pbxproj b/bin/assets/mac.pbxproj deleted file mode 100644 index c2c6d44..0000000 --- a/bin/assets/mac.pbxproj +++ /dev/null @@ -1,257 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 29675C0D1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TMAKE_PRODUCT_NAME.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 29675C1B1D9C1A0500ED0191 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 29675C0A1D9C1A0500ED0191 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 29675C041D9C1A0500ED0191 = { - isa = PBXGroup; - children = ( - 29675C0F1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME */, - 29675C0E1D9C1A0500ED0191 /* Products */, - ); - sourceTree = ""; - }; - 29675C0E1D9C1A0500ED0191 /* Products */ = { - isa = PBXGroup; - children = ( - 29675C0D1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME.app */, - ); - name = Products; - sourceTree = ""; - }; - 29675C0F1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME */ = { - isa = PBXGroup; - children = ( - 29675C1B1D9C1A0500ED0191 /* Info.plist */, - 29675C131D9C1A0500ED0191 /* Supporting Files */, - ); - path = TMAKE_PRODUCT_NAME; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 29675C0C1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME */ = { - isa = PBXNativeTarget; - buildConfigurationList = 29675C1E1D9C1A0500ED0191 /* Build configuration list for PBXNativeTarget "TMAKE_PRODUCT_NAME" */; - buildPhases = ( - 29675C091D9C1A0500ED0191 /* Sources */, - 29675C0A1D9C1A0500ED0191 /* Frameworks */, - 29675C0B1D9C1A0500ED0191 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TMAKE_PRODUCT_NAME; - productName = TMAKE_PRODUCT_NAME; - productReference = 29675C0D1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29675C051D9C1A0500ED0191 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0730; - ORGANIZATIONNAME = TMAKE_ORGANIZATION_NAME; - TargetAttributes = { - 29675C0C1D9C1A0500ED0191 = { - CreatedOnToolsVersion = 7.3.1; - }; - }; - }; - buildConfigurationList = 29675C081D9C1A0500ED0191 /* Build configuration list for PBXProject "TMAKE_PRODUCT_NAME" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 29675C041D9C1A0500ED0191; - productRefGroup = 29675C0E1D9C1A0500ED0191 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 29675C0C1D9C1A0500ED0191 /* TMAKE_PRODUCT_NAME */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 29675C0B1D9C1A0500ED0191 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 29675C091D9C1A0500ED0191 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 29675C1C1D9C1A0500ED0191 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 29675C1D1D9C1A0500ED0191 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - }; - name = Release; - }; - 29675C1F1D9C1A0500ED0191 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "TMAKE-ORGANIZATION-IDENTIFIER.TMAKE-PRODUCT-NAME"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 29675C201D9C1A0500ED0191 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "TMAKE-ORGANIZATION-IDENTIFIER.TMAKE-PRODUCT-NAME"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 29675C081D9C1A0500ED0191 /* Build configuration list for PBXProject "TMAKE_PRODUCT_NAME" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 29675C1C1D9C1A0500ED0191 /* Debug */, - 29675C1D1D9C1A0500ED0191 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 29675C1E1D9C1A0500ED0191 /* Build configuration list for PBXNativeTarget "TMAKE_PRODUCT_NAME" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 29675C1F1D9C1A0500ED0191 /* Debug */, - 29675C201D9C1A0500ED0191 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29675C051D9C1A0500ED0191 /* Project object */; -} diff --git a/bin/assets/mac_Info.plist b/bin/assets/mac_Info.plist deleted file mode 100644 index 165e5b5..0000000 --- a/bin/assets/mac_Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - Copyright © 2016 TMAKE_ORGANIZATION_NAME. All rights reserved. - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/bin/environment.yaml b/bin/environment.yaml deleted file mode 100644 index 2a125b7..0000000 --- a/bin/environment.yaml +++ /dev/null @@ -1,29 +0,0 @@ -XC_RUN: 'xcrun --sdk {XC_PLATFORM}' -host-mac: - DEVELOPER: $(xcode-select -print-path) - HOST_PLATFORM: mac -host-mac ios: - CROSS_SDK: '{XC_DIR}{SDK_VERSION}.sdk' - CROSS_TOP: '{DEVELOPER}/Platforms/{XC_DIR}.profile/Developer' - FRAMEWORKS: '{CROSS_TOP}/SDKs/{CROSS_SDK}/System/Library/Frameworks/' - INCLUDES: '{CROSS_TOP}/SDKs/{CROSS_SDK}/usr/include' - IPHONEOS_DEPLOYMENT_VERSION: '6.0' - IPHONEOS_PLATFORM: '$({XC_RUN} --show-sdk-profile-path)' - IPHONEOS_SDK: '$({XC_RUN} --show-sdk-path)' - IPHONEOS_SDK_VERSION: '$({XC_RUN} --show-sdk-version)' - SDK_VERSION: '$({XC_RUN} --show-sdk-version)' - XC_DIR: iPhoneOS - XC_PLATFORM: iphoneos - simulator: - XC_DIR: iPhoneSimulator - XC_PLATFORM: iphonesimulator -host-mac mac: - OSX_DEPLOYMENT_VERSION: '10.8' - OSX_PLATFORM: '$({XC_RUN} --show-sdk-profile-path)' - OSX_SDK: '$({XC_RUN} --show-sdk-path)' - OSX_SDK_VERSION: '$({XC_RUN} --show-sdk-version)' - PLATFORM: darwin64-x86_64-cc - SDK_VERSION: '$({XC_RUN} --show-sdk-version)' - XC_PLATFORM: macosx -test-platform: - TEST_SDK_VERSION: 'test-platform-1.0' \ No newline at end of file diff --git a/bin/settings.yaml b/bin/settings.yaml deleted file mode 100644 index 8355e5b..0000000 --- a/bin/settings.yaml +++ /dev/null @@ -1,4 +0,0 @@ -defaultCompiler: - mac: 'clang' - linux: 'gcc' - win: 'msvc' \ No newline at end of file diff --git a/bin/tmake.js b/bin/tmake.js index 5d0913a..717ab2e 100755 --- a/bin/tmake.js +++ b/bin/tmake.js @@ -1,2 +1,3 @@ #!/usr/bin/env node -require('../dist/cli.js').run(); + +require('../src/cli/dist').run(); \ No newline at end of file diff --git a/docs/TMake.mindnode/QuickLook/Preview.jpg b/docs/TMake.mindnode/QuickLook/Preview.jpg new file mode 100644 index 0000000..a952688 Binary files /dev/null and b/docs/TMake.mindnode/QuickLook/Preview.jpg differ diff --git a/docs/TMake.mindnode/contents.xml b/docs/TMake.mindnode/contents.xml new file mode 100644 index 0000000..b7e165f Binary files /dev/null and b/docs/TMake.mindnode/contents.xml differ diff --git a/docs/TMake.mindnode/style.mindnodestyle/contents.xml b/docs/TMake.mindnode/style.mindnodestyle/contents.xml new file mode 100644 index 0000000..6f1b0e6 Binary files /dev/null and b/docs/TMake.mindnode/style.mindnodestyle/contents.xml differ diff --git a/docs/TMake.mindnode/style.mindnodestyle/metadata.plist b/docs/TMake.mindnode/style.mindnodestyle/metadata.plist new file mode 100644 index 0000000..e8e767c Binary files /dev/null and b/docs/TMake.mindnode/style.mindnodestyle/metadata.plist differ diff --git a/docs/TMake.mindnode/viewState.plist b/docs/TMake.mindnode/viewState.plist new file mode 100644 index 0000000..d0c94d9 Binary files /dev/null and b/docs/TMake.mindnode/viewState.plist differ diff --git a/docs/datamodel/datamodel.xcodeproj/project.xcworkspace/xcuserdata/leif.xcuserdatad/UserInterfaceState.xcuserstate b/docs/datamodel/datamodel.xcodeproj/project.xcworkspace/xcuserdata/leif.xcuserdatad/UserInterfaceState.xcuserstate index d40bee0..7c094cb 100644 Binary files a/docs/datamodel/datamodel.xcodeproj/project.xcworkspace/xcuserdata/leif.xcuserdatad/UserInterfaceState.xcuserstate and b/docs/datamodel/datamodel.xcodeproj/project.xcworkspace/xcuserdata/leif.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/docs/datamodel/tmake.xcdatamodeld/tmake.xcdatamodel/contents b/docs/datamodel/tmake.xcdatamodeld/tmake.xcdatamodel/contents index 5262695..48e4972 100644 --- a/docs/datamodel/tmake.xcdatamodeld/tmake.xcdatamodel/contents +++ b/docs/datamodel/tmake.xcdatamodeld/tmake.xcdatamodel/contents @@ -1,20 +1,24 @@ - - - - - + + + + + + - - - - + + + + + + + @@ -22,10 +26,11 @@ - - - - - + + + + + + \ No newline at end of file diff --git a/electron/.babelrc b/electron/.babelrc deleted file mode 100644 index 646e327..0000000 --- a/electron/.babelrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "presets": ["es2015", "stage-0", "react"], - "plugins": ["add-module-exports"], - "env": { - "production": { - "presets": ["react-optimize"], - "plugins": ["babel-plugin-dev-expression"] - }, - "development": { - "presets": ["react-hmre"] - }, - "test": { - "plugins": [ - ["webpack-loaders", { "config": "webpack.config.test.js", "verbose": false }] - ] - } - } -} diff --git a/electron/.editorconfig b/electron/.editorconfig deleted file mode 100644 index 1addde2..0000000 --- a/electron/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -root = true - -[*] -indent_style = tab -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.{json,js,jsx,html,css}] -indent_style = space -indent_size = 2 - -[.eslintrc] -indent_style = space -indent_size = 2 - -[*.md] -trim_trailing_whitespace = false diff --git a/electron/.eslintignore b/electron/.eslintignore deleted file mode 100644 index a9b203a..0000000 --- a/electron/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -main.js diff --git a/electron/.eslintrc b/electron/.eslintrc deleted file mode 100644 index fd9b481..0000000 --- a/electron/.eslintrc +++ /dev/null @@ -1,40 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": "airbnb", - "env": { - "browser": true, - "mocha": true, - "node": true - }, - "rules": { - "arrow-parens": ["off"], - "consistent-return": "off", - "comma-dangle": "off", - "generator-star-spacing": "off", - "import/no-unresolved": ["error", { "ignore": ["electron"] }], - "import/no-extraneous-dependencies": "off", - "no-use-before-define": "off", - "promise/param-names": 2, - "promise/always-return": 2, - "promise/always-catch": 2, // deprecated - "promise/catch-or-return": 2, - "promise/no-native": 0, - "react/jsx-no-bind": "off", - "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }], - "react/prefer-stateless-function": "off", - "flowtype-errors/show-errors": 2 - }, - "plugins": [ - "flowtype-errors", - "import", - "promise", - "react" - ], - "settings": { - "import/resolver": { - "webpack": { - "config": "webpack.config.eslint.js" - } - } - } -} diff --git a/electron/.flowconfig b/electron/.flowconfig deleted file mode 100644 index 36ab58f..0000000 --- a/electron/.flowconfig +++ /dev/null @@ -1,21 +0,0 @@ -[ignore] -.*/node_modules/fbjs/.* -.*/app/main.js -.*/app/dist/.* -.*/release/.* -.*/git/.* - -[include] - -[libs] - -[options] -esproposal.class_static_fields=enable -esproposal.class_instance_fields=enable -esproposal.export_star_as=enable -module.name_mapper.extension='css' -> '/flow/CSSModule.js.flow' -module.name_mapper.extension='styl' -> '/flow/CSSModule.js.flow' -module.name_mapper.extension='png' -> '/flow/WebpackAsset.js.flow' -module.name_mapper.extension='jpg' -> '/flow/WebpackAsset.js.flow' -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue diff --git a/electron/.gitattributes b/electron/.gitattributes deleted file mode 100644 index 176a458..0000000 --- a/electron/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto diff --git a/electron/.gitignore b/electron/.gitignore deleted file mode 100644 index 177a2d2..0000000 --- a/electron/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git -node_modules - -# OSX -.DS_Store - -# App packaged -dist -release -main.js -main.js.map diff --git a/electron/.travis.yml b/electron/.travis.yml deleted file mode 100644 index a8fa622..0000000 --- a/electron/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - 6 - - 4 - -cache: - directories: - - node_modules - -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 - - icnsutils - - graphicsmagick - - xz-utils - - xorriso - -install: - - export CXX="g++-4.8" - - npm install -g npm@latest - - npm install - - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16" - -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start & - - sleep 3 - -script: - - npm run lint - - npm run test - - npm run build - - npm run test-e2e - - npm run package diff --git a/electron/CHANGELOG.md b/electron/CHANGELOG.md deleted file mode 100644 index 091cfca..0000000 --- a/electron/CHANGELOG.md +++ /dev/null @@ -1,297 +0,0 @@ -# 0.10.0 (2016.4.18) - -#### Improvements - -- **Use Babel in main process with Webpack build:** [#201](https://github.com/chentsulin/electron-react-boilerplate/pull/201) -- **Change targets to built-in support by webpack:** [#197](https://github.com/chentsulin/electron-react-boilerplate/pull/197) -- **use es2015 syntax for webpack configs:** [#195](https://github.com/chentsulin/electron-react-boilerplate/pull/195) -- **Open application when webcontent is loaded:** [#192](https://github.com/chentsulin/electron-react-boilerplate/pull/192) -- **Upgraded dependencies** - -#### Bug fixed - -- **Fix `npm list electron-prebuilt` in package.js:** [#188](https://github.com/chentsulin/electron-react-boilerplate/pull/188) - - -# 0.9.0 (2016.3.23) - -#### Improvements - -- **Added [redux-logger](https://github.com/fcomb/redux-logger)** -- **Upgraded [react-router-redux](https://github.com/reactjs/react-router-redux) to v4** -- **Upgraded dependencies** -- **Added `npm run dev` command:** [#162](https://github.com/chentsulin/electron-react-boilerplate/pull/162) -- **electron to v0.37.2** - -#### Breaking Changes - -- **css module as default:** [#154](https://github.com/chentsulin/electron-react-boilerplate/pull/154). -- **set default NODE_ENV to production:** [#140](https://github.com/chentsulin/electron-react-boilerplate/issues/140) - - -# 0.8.0 (2016.2.17) - -#### Bug fixed - -- **Fix lint errors** -- **Fix Webpack publicPath for production builds**: [#119](https://github.com/chentsulin/electron-react-boilerplate/issues/119). -- **package script now chooses correct OS icon extension** - -#### Improvements - -- **babel 6** -- **Upgrade Dependencies** -- **Enable CSS source maps** -- **Add json-loader**: [#128](https://github.com/chentsulin/electron-react-boilerplate/issues/128). -- **react-router 2.0 and react-router-redux 3.0** - - -# 0.7.1 (2015.12.27) - -#### Bug fixed - -- **Fixed npm script on windows 10:** [#103](https://github.com/chentsulin/electron-react-boilerplate/issues/103). -- **history and react-router version bump**: [#109](https://github.com/chentsulin/electron-react-boilerplate/issues/109), [#110](https://github.com/chentsulin/electron-react-boilerplate/pull/110). - -#### Improvements - -- **electron 0.36** - - - -# 0.7.0 (2015.12.16) - -#### Bug fixed - -- **Fixed process.env.NODE_ENV variable in webpack:** [#74](https://github.com/chentsulin/electron-react-boilerplate/pull/74). -- **add missing object-assign**: [#76](https://github.com/chentsulin/electron-react-boilerplate/pull/76). -- **packaging in npm@3:** [#77](https://github.com/chentsulin/electron-react-boilerplate/pull/77). -- **compatibility in windows:** [#100](https://github.com/chentsulin/electron-react-boilerplate/pull/100). -- **disable chrome debugger in production env:** [#102](https://github.com/chentsulin/electron-react-boilerplate/pull/102). - -#### Improvements - -- **redux** -- **css-modules** -- **upgrade to react-router 1.x** -- **unit tests** -- **e2e tests** -- **travis-ci** -- **upgrade to electron 0.35.x** -- **use es2015** -- **check dev engine for node and npm** - - -# 0.6.5 (2015.11.7) - -#### Improvements - -- **Bump style-loader to 0.13** -- **Bump css-loader to 0.22** - - -# 0.6.4 (2015.10.27) - -#### Improvements - -- **Bump electron-debug to 0.3** - - -# 0.6.3 (2015.10.26) - -#### Improvements - -- **Initialize ExtractTextPlugin once:** [#64](https://github.com/chentsulin/electron-react-boilerplate/issues/64). - - -# 0.6.2 (2015.10.18) - -#### Bug fixed - -- **Babel plugins production env not be set properly:** [#57](https://github.com/chentsulin/electron-react-boilerplate/issues/57). - - -# 0.6.1 (2015.10.17) - -#### Improvements - -- **Bump electron to v0.34.0** - - -# 0.6.0 (2015.10.16) - -#### Breaking Changes - -- **From react-hot-loader to react-transform** - - -# 0.5.2 (2015.10.15) - -#### Improvements - -- **Run tests with babel-register:** [#29](https://github.com/chentsulin/electron-react-boilerplate/issues/29). - - -# 0.5.1 (2015.10.12) - -#### Bug fixed - -- **Fix #51:** use `path.join(__dirname` instead of `./`. - - -# 0.5.0 (2015.10.11) - -#### Improvements - -- **Simplify webpack config** see [#50](https://github.com/chentsulin/electron-react-boilerplate/pull/50). - -#### Breaking Changes - -- **webpack configs** -- **port changed:** changed default port from 2992 to 3000. -- **npm scripts:** remove `start-dev` and `dev-server`. rename `hot-dev-server` to `hot-server`. - - -# 0.4.3 (2015.9.22) - -#### Bug fixed - -- **Fix #45 zeromq crash:** bump version of `electron-prebuilt`. - - -# 0.4.2 (2015.9.15) - -#### Bug fixed - -- **run start-hot breaks chrome refresh(CTRL+R) (#42)**: bump `electron-debug` to `0.2.1` - - -# 0.4.1 (2015.9.11) - -#### Improvements - -- **use electron-prebuilt version for packaging (#33)** - - -# 0.4.0 (2015.9.5) - -#### Improvements - -- **update dependencies** - - -# 0.3.0 (2015.8.31) - -#### Improvements - -- **eslint-config-airbnb** - - -# 0.2.10 (2015.8.27) - -#### Features - -- **custom placeholder icon** - -#### Improvements - -- **electron-renderer as target:** via [webpack-target-electron-renderer](https://github.com/chentsulin/webpack-target-electron-renderer) - - -# 0.2.9 (2015.8.18) - -#### Bug fixed - -- **Fix hot-reload** - - -# 0.2.8 (2015.8.13) - -#### Improvements - -- **bump electron-debug** -- **babelrc** -- **organize webpack scripts** - - -# 0.2.7 (2015.7.9) - -#### Bug fixed - -- **defaultProps:** fix typos. - - -# 0.2.6 (2015.7.3) - -#### Features - -- **menu** - -#### Bug fixed - -- **package.js:** include webpack build. - - -# 0.2.5 (2015.7.1) - -#### Features - -- **NPM Script:** support multi-platform -- **package:** `--all` option - - -# 0.2.4 (2015.6.9) - -#### Bug fixed - -- **Eslint:** typo, [#17](https://github.com/chentsulin/electron-react-boilerplate/issues/17) and improve `.eslintrc` - - -# 0.2.3 (2015.6.3) - -#### Features - -- **Package Version:** use latest release electron version as default -- **Ignore Large peerDependencies** - -#### Bug fixed - -- **Npm Script:** typo, [#6](https://github.com/chentsulin/electron-react-boilerplate/pull/6) -- **Missing css:** [#7](https://github.com/chentsulin/electron-react-boilerplate/pull/7) - - -# 0.2.2 (2015.6.2) - -#### Features - -- **electron-debug** - -#### Bug fixed - -- **Webpack:** add `.json` and `.node` to extensions for imitating node require. -- **Webpack:** set `node_modules` to externals for native module support. - - -# 0.2.1 (2015.5.30) - -#### Bug fixed - -- **Webpack:** #1, change build target to `atom`. - - -# 0.2.0 (2015.5.30) - -#### Features - -- **Ignore:** `test`, `tools`, `release` folder and devDependencies in `package.json`. -- **Support asar** -- **Support icon** - - -# 0.1.0 (2015.5.27) - -#### Features - -- **Webpack:** babel, react-hot, ... -- **Flux:** actions, api, components, containers, stores.. -- **Package:** darwin (osx), linux and win32 (windows) platform. diff --git a/electron/LICENSE b/electron/LICENSE deleted file mode 100644 index 8792bc4..0000000 --- a/electron/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-present C. T. Lin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/electron/README.md b/electron/README.md deleted file mode 100644 index a4d534c..0000000 --- a/electron/README.md +++ /dev/null @@ -1,219 +0,0 @@ -# electron-react-boilerplate - -[![NPM version][npm-image]][npm-url] -[![Build Status][travis-image]][travis-url] -[![Appveyor Build Status][appveyor-image]][appveyor-url] -[![Dependency Status][david_img]][david_site] - -![](./erb-logo.png) - -> Live editing development on desktop app - -[Electron](http://electron.atom.io/) application boilerplate based on [React](https://facebook.github.io/react/), [Redux](https://github.com/reactjs/redux), [React Router](https://github.com/reactjs/react-router), [Webpack](http://webpack.github.io/docs/), [React Transform HMR](https://github.com/gaearon/react-transform-hmr) for rapid application development - -## Screenshot - -![Electron Boilerplate Demo](https://cloud.githubusercontent.com/assets/3382565/10557547/b1f07a4e-74e3-11e5-8d27-79ab6947d429.gif) - -## Install - -* **Note: requires a node version >= 4 and an npm version >= 3.** -* **If you have installation or compilation issues with this project, please see [our debugging guide](https://github.com/chentsulin/electron-react-boilerplate/issues/400)** - - -First, clone the repo via git: - -```bash -git clone https://github.com/chentsulin/electron-react-boilerplate.git your-project-name -``` - -And then install dependencies. - -```bash -$ cd your-project-name && npm install -``` - - -## Run - -Run these two commands __simultaneously__ in different console tabs. - -```bash -$ npm run hot-server -$ npm run start-hot -``` - -or run two servers with one command - -```bash -$ npm run dev -``` - -## Editor Configuration -**Atom** -```bash -apm install editorconfig es6-javascript autocomplete-flow javascript-snippets linter linter-eslint language-babel -``` - -**Sublime** -* https://github.com/sindresorhus/editorconfig-sublime#readme -* https://github.com/SublimeLinter/SublimeLinter3 -* https://github.com/roadhump/SublimeLinter-eslint -* https://github.com/babel/babel-sublime - -**Others** -* [Editorconfig](http://editorconfig.org/#download) -* [ESLint](http://eslint.org/docs/user-guide/integrations#editors) -* Babel Syntax Plugin - -## DevTools - -#### Toggle Chrome DevTools - -- OS X: Cmd Alt I or F12 -- Linux: Ctrl Shift I or F12 -- Windows: Ctrl Shift I or F12 - -*See [electron-debug](https://github.com/sindresorhus/electron-debug) for more information.* - -#### DevTools extension - -This boilerplate is included following DevTools extensions: - -* [Devtron](https://github.com/electron/devtron) - Install via [electron-debug](https://github.com/sindresorhus/electron-debug). -* [React Developer Tools](https://github.com/facebook/react-devtools) - Install via [electron-devtools-installer](https://github.com/GPMDP/electron-devtools-installer). -* [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension) - Install via [electron-devtools-installer](https://github.com/GPMDP/electron-devtools-installer). - -You can find the tabs on Chrome DevTools. - -If you want to update extensions version, please set `UPGRADE_EXTENSIONS` env, just run: - -```bash -$ UPGRADE_EXTENSIONS=1 npm run dev - -# For Windows -$ set UPGRADE_EXTENSIONS=1 && npm run dev -``` - -## Externals - -If you use any 3rd party libraries which can't or won't be built with webpack, you must list them in your `webpack.config.base.js`: - -```javascript -externals: [ - // put your node 3rd party libraries which can't be built with webpack here (mysql, mongodb, and so on..) -] -``` - -For a common example, to install Bootstrap, `npm i --save bootstrap` and link them in the head of app.html - -```html - - -... -``` - -Make sure to list bootstrap in externals in `webpack.config.base.js` or the app won't include them in the package: -```js -externals: ['bootstrap'] -``` - - - -## CSS Modules - -This boilerplate out of the box is configured to use [css-modules](https://github.com/css-modules/css-modules). - -All `.css` file extensions will use css-modules unless it has `.global.css`. - -If you need global styles, stylesheets with `.global.css` will not go through the -css-modules loader. e.g. `app.global.css` - - -## Package - -```bash -$ npm run package -``` - -To package apps for all platforms: - -```bash -$ npm run package-all -``` - -To package apps with options: - -```bash -$ npm run package -- --[option] -``` - -#### Options - -- --name, -n: Application name (default: ElectronReact) -- --version, -v: Electron version (default: latest version) -- --asar, -a: [asar](https://github.com/atom/asar) support (default: false) -- --icon, -i: Application icon -- --all: pack for all platforms - -Use `electron-packager` to pack your app with `--all` options for darwin (osx), linux and win32 (windows) platform. After build, you will find them in `release` folder. Otherwise, you will only find one for your os. - -`test`, `tools`, `release` folder and devDependencies in `package.json` will be ignored by default. - -#### Default Ignore modules - -We add some module's `peerDependencies` to ignore option as default for application size reduction. - -- `babel-core` is required by `babel-loader` and its size is ~19 MB -- `node-libs-browser` is required by `webpack` and its size is ~3MB. - -> **Note:** If you want to use any above modules in runtime, for example: `require('babel/register')`, you should move them from `devDependencies` to `dependencies`. - -#### Building windows apps from non-windows platforms - -Please checkout [Building windows apps from non-windows platforms](https://github.com/maxogden/electron-packager#building-windows-apps-from-non-windows-platforms). - -## Dispatching redux actions from main process - -see discusses in [#118](https://github.com/chentsulin/electron-react-boilerplate/issues/118) and [#108](https://github.com/chentsulin/electron-react-boilerplate/issues/108) - -## How to keep the boilerplate updated - -If your application is a fork from this repo, you can add this repo to another git remote: - -```sh -git remote add upstream https://github.com/chentsulin/electron-react-boilerplate.git -``` - -Then, use git to merge some latest commits: - -```sh -git pull upstream master -``` - -## Static Type Checking -This project comes with Flow support out of the box! You can annotate your code with types, [get Flow errors as ESLint errors](https://github.com/amilajack/eslint-plugin-flowtype-errors), and get [type errors during runtime](https://github.com/gcanti/babel-plugin-tcomb-boilerplate) during development. Types are completely optional. - -## Native-like UI - -If you want to have native-like User Interface (OS X El Capitan and Windows 10), [react-desktop](https://github.com/gabrielbull/react-desktop) may perfect suit for you. - - -## Maintainers - -- [C. T. Lin](https://github.com/chentsulin) -- [Jhen-Jie Hong](https://github.com/jhen0409) -- [Amila Welihinda](https://github.com/amilajack) - - -## License -MIT © [C. T. Lin](https://github.com/chentsulin) - -[npm-image]: https://img.shields.io/npm/v/electron-react-boilerplate.svg?style=flat-square -[npm-url]: https://npmjs.org/package/electron-react-boilerplate -[travis-image]: https://travis-ci.org/chentsulin/electron-react-boilerplate.svg?branch=master -[travis-url]: https://travis-ci.org/chentsulin/electron-react-boilerplate -[appveyor-image]: https://ci.appveyor.com/api/projects/status/github/chentsulin/electron-react-boilerplate?svg=true -[appveyor-url]: https://ci.appveyor.com/project/chentsulin/electron-react-boilerplate/branch/master -[david_img]: https://img.shields.io/david/chentsulin/electron-react-boilerplate.svg -[david_site]: https://david-dm.org/chentsulin/electron-react-boilerplate diff --git a/electron/app/actions/counter.js b/electron/app/actions/counter.js deleted file mode 100644 index c9da44e..0000000 --- a/electron/app/actions/counter.js +++ /dev/null @@ -1,35 +0,0 @@ -// @flow -export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; -export const DECREMENT_COUNTER = 'DECREMENT_COUNTER'; - -export function increment() { - return { - type: INCREMENT_COUNTER - }; -} - -export function decrement() { - return { - type: DECREMENT_COUNTER - }; -} - -export function incrementIfOdd() { - return (dispatch: Function, getState: Function) => { - const { counter } = getState(); - - if (counter % 2 === 0) { - return; - } - - dispatch(increment()); - }; -} - -export function incrementAsync(delay: number = 1000) { - return (dispatch: Function) => { - setTimeout(() => { - dispatch(increment()); - }, delay); - }; -} diff --git a/electron/app/app.global.css b/electron/app/app.global.css deleted file mode 100644 index 247a261..0000000 --- a/electron/app/app.global.css +++ /dev/null @@ -1,37 +0,0 @@ -body { - position: relative; - color: white; - height: 100vh; - background-color: #232C39; - background-image: linear-gradient(45deg, rgba(0, 216, 255, .5) 10%, rgba(0, 1, 127, .7)); - font-family: Arial, Helvetica, Helvetica Neue, serif; - overflow-y: hidden; -} - -h2 { - margin: 0; - font-size: 2.25rem; - font-weight: bold; - letter-spacing: -.025em; - color: #fff; -} - -p { - font-size: 24px; -} - -li { - list-style: none; -} - -a { - color: white; - opacity: .75; - text-decoration: none; -} - -a:hover { - opacity: 1; - text-decoration: none; - cursor: pointer; -} diff --git a/electron/app/app.html b/electron/app/app.html deleted file mode 100644 index da882db..0000000 --- a/electron/app/app.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Hello Electron React! - - - - -
- - - diff --git a/electron/app/app.icns b/electron/app/app.icns deleted file mode 100644 index 4f3cbba..0000000 Binary files a/electron/app/app.icns and /dev/null differ diff --git a/electron/app/components/Counter.css b/electron/app/components/Counter.css deleted file mode 100644 index 25fe186..0000000 --- a/electron/app/components/Counter.css +++ /dev/null @@ -1,37 +0,0 @@ -.backButton { - position: absolute; -} - -.counter { - position: absolute; - top: 30%; - left: 45%; - font-size: 10rem; - font-weight: bold; - letter-spacing: -.025em; -} - -.btnGroup { - position: relative; - top: 500px; - width: 480px; - margin: 0 auto; -} - -.btn { - font-size: 1.6rem; - font-weight: bold; - background-color: #fff; - border-radius: 50%; - margin: 10px; - width: 100px; - height: 100px; - opacity: .7; - cursor: pointer; - font-family: Arial, Helvetica, Helvetica Neue; -} - -.btn:hover { - color: white; - background-color: rgba(0, 0, 0, 0.5); -} diff --git a/electron/app/components/Counter.js b/electron/app/components/Counter.js deleted file mode 100644 index b5632a7..0000000 --- a/electron/app/components/Counter.js +++ /dev/null @@ -1,42 +0,0 @@ -// @flow -import React, { Component, PropTypes } from 'react'; -import { Link } from 'react-router'; -import styles from './Counter.css'; - -class Counter extends Component { - static propTypes = { - increment: PropTypes.func.isRequired, - incrementIfOdd: PropTypes.func.isRequired, - incrementAsync: PropTypes.func.isRequired, - decrement: PropTypes.func.isRequired, - counter: PropTypes.number.isRequired - }; - - render() { - const { increment, incrementIfOdd, incrementAsync, decrement, counter } = this.props; - return ( -
-
- - - -
-
- {counter} -
-
- - - - -
-
- ); - } -} - -export default Counter; diff --git a/electron/app/components/Home.css b/electron/app/components/Home.css deleted file mode 100644 index 978a02a..0000000 --- a/electron/app/components/Home.css +++ /dev/null @@ -1,14 +0,0 @@ -.container { - position: absolute; - top: 30%; - left: 10px; - text-align: center; -} - -.container h2 { - font-size: 5rem; -} - -.container a { - font-size: 1.4rem; -} diff --git a/electron/app/components/Home.js b/electron/app/components/Home.js deleted file mode 100644 index b37fbcb..0000000 --- a/electron/app/components/Home.js +++ /dev/null @@ -1,18 +0,0 @@ -// @flow -import React, { Component } from 'react'; -import { Link } from 'react-router'; -import styles from './Home.css'; - - -export default class Home extends Component { - render() { - return ( -
-
-

Home

- to Counter -
-
- ); - } -} diff --git a/electron/app/containers/App.js b/electron/app/containers/App.js deleted file mode 100644 index 065260c..0000000 --- a/electron/app/containers/App.js +++ /dev/null @@ -1,16 +0,0 @@ -// @flow -import React, { Component, PropTypes } from 'react'; - -export default class App extends Component { - static propTypes = { - children: PropTypes.element.isRequired - }; - - render() { - return ( -
- {this.props.children} -
- ); - } -} diff --git a/electron/app/containers/CounterPage.js b/electron/app/containers/CounterPage.js deleted file mode 100644 index bcbf7d3..0000000 --- a/electron/app/containers/CounterPage.js +++ /dev/null @@ -1,17 +0,0 @@ -// @flow -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import Counter from '../components/Counter'; -import * as CounterActions from '../actions/counter'; - -function mapStateToProps(state) { - return { - counter: state.counter - }; -} - -function mapDispatchToProps(dispatch) { - return bindActionCreators(CounterActions, dispatch); -} - -export default connect(mapStateToProps, mapDispatchToProps)(Counter); diff --git a/electron/app/containers/HomePage.js b/electron/app/containers/HomePage.js deleted file mode 100644 index fc70f40..0000000 --- a/electron/app/containers/HomePage.js +++ /dev/null @@ -1,11 +0,0 @@ -// @flow -import React, { Component } from 'react'; -import Home from '../components/Home'; - -export default class HomePage extends Component { - render() { - return ( - - ); - } -} diff --git a/electron/app/index.js b/electron/app/index.js deleted file mode 100644 index a60e8c8..0000000 --- a/electron/app/index.js +++ /dev/null @@ -1,19 +0,0 @@ -// @flow -import React from 'react'; -import { render } from 'react-dom'; -import { Provider } from 'react-redux'; -import { Router, hashHistory } from 'react-router'; -import { syncHistoryWithStore } from 'react-router-redux'; -import routes from './routes'; -import configureStore from './store/configureStore'; -import './app.global.css'; - -const store = configureStore(); -const history = syncHistoryWithStore(hashHistory, store); - -render( - - - , - document.getElementById('root') -); diff --git a/electron/app/reducers/counter.js b/electron/app/reducers/counter.js deleted file mode 100644 index a99332a..0000000 --- a/electron/app/reducers/counter.js +++ /dev/null @@ -1,13 +0,0 @@ -// @flow -import { INCREMENT_COUNTER, DECREMENT_COUNTER } from '../actions/counter'; - -export default function counter(state: number = 0, action: Object) { - switch (action.type) { - case INCREMENT_COUNTER: - return state + 1; - case DECREMENT_COUNTER: - return state - 1; - default: - return state; - } -} diff --git a/electron/app/reducers/index.js b/electron/app/reducers/index.js deleted file mode 100644 index ef1b08d..0000000 --- a/electron/app/reducers/index.js +++ /dev/null @@ -1,11 +0,0 @@ -// @flow -import { combineReducers } from 'redux'; -import { routerReducer as routing } from 'react-router-redux'; -import counter from './counter'; - -const rootReducer = combineReducers({ - counter, - routing -}); - -export default rootReducer; diff --git a/electron/app/routes.js b/electron/app/routes.js deleted file mode 100644 index 8c9b325..0000000 --- a/electron/app/routes.js +++ /dev/null @@ -1,14 +0,0 @@ -// @flow -import React from 'react'; -import { Route, IndexRoute } from 'react-router'; -import App from './containers/App'; -import HomePage from './containers/HomePage'; -import CounterPage from './containers/CounterPage'; - - -export default ( - - - - -); diff --git a/electron/app/store/configureStore.development.js b/electron/app/store/configureStore.development.js deleted file mode 100644 index 5abfc0e..0000000 --- a/electron/app/store/configureStore.development.js +++ /dev/null @@ -1,43 +0,0 @@ -import { createStore, applyMiddleware, compose } from 'redux'; -import thunk from 'redux-thunk'; -import { hashHistory } from 'react-router'; -import { routerMiddleware, push } from 'react-router-redux'; -import createLogger from 'redux-logger'; -import rootReducer from '../reducers'; - -import * as counterActions from '../actions/counter'; - -const actionCreators = { - ...counterActions, - push, -}; - -const logger = createLogger({ - level: 'info', - collapsed: true -}); - -const router = routerMiddleware(hashHistory); - -const enhancer = compose( - applyMiddleware(thunk, router, logger), - window.devToolsExtension ? - window.devToolsExtension({ actionCreators }) : - noop => noop -); - -export default function configureStore(initialState: Object) { - const store = createStore(rootReducer, initialState, enhancer); - - if (window.devToolsExtension) { - window.devToolsExtension.updateStore(store); - } - - if (module.hot) { - module.hot.accept('../reducers', () => - store.replaceReducer(require('../reducers')) // eslint-disable-line global-require - ); - } - - return store; -} diff --git a/electron/app/store/configureStore.js b/electron/app/store/configureStore.js deleted file mode 100644 index eca511f..0000000 --- a/electron/app/store/configureStore.js +++ /dev/null @@ -1,5 +0,0 @@ -if (process.env.NODE_ENV === 'production') { - module.exports = require('./configureStore.production'); // eslint-disable-line global-require -} else { - module.exports = require('./configureStore.development'); // eslint-disable-line global-require -} diff --git a/electron/app/store/configureStore.production.js b/electron/app/store/configureStore.production.js deleted file mode 100644 index d1778e8..0000000 --- a/electron/app/store/configureStore.production.js +++ /dev/null @@ -1,14 +0,0 @@ -// @flow -import { createStore, applyMiddleware } from 'redux'; -import thunk from 'redux-thunk'; -import { hashHistory } from 'react-router'; -import { routerMiddleware } from 'react-router-redux'; -import rootReducer from '../reducers'; - -const router = routerMiddleware(hashHistory); - -const enhancer = applyMiddleware(thunk, router); - -export default function configureStore(initialState: Object) { - return createStore(rootReducer, initialState, enhancer); -} diff --git a/electron/appveyor.yml b/electron/appveyor.yml deleted file mode 100644 index 8ceea7b..0000000 --- a/electron/appveyor.yml +++ /dev/null @@ -1,27 +0,0 @@ -os: unstable -cache: - - node_modules -environment: - matrix: - - nodejs_version: 6 - - nodejs_version: 4 -install: - - ps: Install-Product node $env:nodejs_version - - set CI=true - - npm install -g npm@latest - - set PATH=%APPDATA%\npm;%PATH% - - npm install -matrix: - fast_finish: true -build: off -version: '{build}' -shallow_clone: true -clone_depth: 1 -test_script: - - node --version - - npm --version - - npm run lint - - npm run test - - npm run build - - npm run test-e2e - - npm run package diff --git a/electron/erb-logo.png b/electron/erb-logo.png deleted file mode 100644 index 46fdc7d..0000000 Binary files a/electron/erb-logo.png and /dev/null differ diff --git a/electron/main.development.js b/electron/main.development.js deleted file mode 100644 index afafa3c..0000000 --- a/electron/main.development.js +++ /dev/null @@ -1,268 +0,0 @@ -import { app, BrowserWindow, Menu, shell } from 'electron'; - -let menu; -let template; -let mainWindow = null; - - -if (process.env.NODE_ENV === 'development') { - require('electron-debug')(); // eslint-disable-line global-require -} - - -app.on('window-all-closed', () => { - if (process.platform !== 'darwin') app.quit(); -}); - - -const installExtensions = async () => { - if (process.env.NODE_ENV === 'development') { - const installer = require('electron-devtools-installer'); // eslint-disable-line global-require - - const extensions = [ - 'REACT_DEVELOPER_TOOLS', - 'REDUX_DEVTOOLS' - ]; - const forceDownload = !!process.env.UPGRADE_EXTENSIONS; - for (const name of extensions) { - try { - await installer.default(installer[name], forceDownload); - } catch (e) {} // eslint-disable-line - } - } -}; - -app.on('ready', async () => { - await installExtensions(); - - mainWindow = new BrowserWindow({ - show: false, - width: 1024, - height: 728 - }); - - mainWindow.loadURL(`file://${__dirname}/app/app.html`); - - mainWindow.webContents.on('did-finish-load', () => { - mainWindow.show(); - mainWindow.focus(); - }); - - mainWindow.on('closed', () => { - mainWindow = null; - }); - - if (process.env.NODE_ENV === 'development') { - mainWindow.openDevTools(); - mainWindow.webContents.on('context-menu', (e, props) => { - const { x, y } = props; - - Menu.buildFromTemplate([{ - label: 'Inspect element', - click() { - mainWindow.inspectElement(x, y); - } - }]).popup(mainWindow); - }); - } - - if (process.platform === 'darwin') { - template = [{ - label: 'Electron', - submenu: [{ - label: 'About ElectronReact', - selector: 'orderFrontStandardAboutPanel:' - }, { - type: 'separator' - }, { - label: 'Services', - submenu: [] - }, { - type: 'separator' - }, { - label: 'Hide ElectronReact', - accelerator: 'Command+H', - selector: 'hide:' - }, { - label: 'Hide Others', - accelerator: 'Command+Shift+H', - selector: 'hideOtherApplications:' - }, { - label: 'Show All', - selector: 'unhideAllApplications:' - }, { - type: 'separator' - }, { - label: 'Quit', - accelerator: 'Command+Q', - click() { - app.quit(); - } - }] - }, { - label: 'Edit', - submenu: [{ - label: 'Undo', - accelerator: 'Command+Z', - selector: 'undo:' - }, { - label: 'Redo', - accelerator: 'Shift+Command+Z', - selector: 'redo:' - }, { - type: 'separator' - }, { - label: 'Cut', - accelerator: 'Command+X', - selector: 'cut:' - }, { - label: 'Copy', - accelerator: 'Command+C', - selector: 'copy:' - }, { - label: 'Paste', - accelerator: 'Command+V', - selector: 'paste:' - }, { - label: 'Select All', - accelerator: 'Command+A', - selector: 'selectAll:' - }] - }, { - label: 'View', - submenu: (process.env.NODE_ENV === 'development') ? [{ - label: 'Reload', - accelerator: 'Command+R', - click() { - mainWindow.webContents.reload(); - } - }, { - label: 'Toggle Full Screen', - accelerator: 'Ctrl+Command+F', - click() { - mainWindow.setFullScreen(!mainWindow.isFullScreen()); - } - }, { - label: 'Toggle Developer Tools', - accelerator: 'Alt+Command+I', - click() { - mainWindow.toggleDevTools(); - } - }] : [{ - label: 'Toggle Full Screen', - accelerator: 'Ctrl+Command+F', - click() { - mainWindow.setFullScreen(!mainWindow.isFullScreen()); - } - }] - }, { - label: 'Window', - submenu: [{ - label: 'Minimize', - accelerator: 'Command+M', - selector: 'performMiniaturize:' - }, { - label: 'Close', - accelerator: 'Command+W', - selector: 'performClose:' - }, { - type: 'separator' - }, { - label: 'Bring All to Front', - selector: 'arrangeInFront:' - }] - }, { - label: 'Help', - submenu: [{ - label: 'Learn More', - click() { - shell.openExternal('http://electron.atom.io'); - } - }, { - label: 'Documentation', - click() { - shell.openExternal('https://github.com/atom/electron/tree/master/docs#readme'); - } - }, { - label: 'Community Discussions', - click() { - shell.openExternal('https://discuss.atom.io/c/electron'); - } - }, { - label: 'Search Issues', - click() { - shell.openExternal('https://github.com/atom/electron/issues'); - } - }] - }]; - - menu = Menu.buildFromTemplate(template); - Menu.setApplicationMenu(menu); - } else { - template = [{ - label: '&File', - submenu: [{ - label: '&Open', - accelerator: 'Ctrl+O' - }, { - label: '&Close', - accelerator: 'Ctrl+W', - click() { - mainWindow.close(); - } - }] - }, { - label: '&View', - submenu: (process.env.NODE_ENV === 'development') ? [{ - label: '&Reload', - accelerator: 'Ctrl+R', - click() { - mainWindow.webContents.reload(); - } - }, { - label: 'Toggle &Full Screen', - accelerator: 'F11', - click() { - mainWindow.setFullScreen(!mainWindow.isFullScreen()); - } - }, { - label: 'Toggle &Developer Tools', - accelerator: 'Alt+Ctrl+I', - click() { - mainWindow.toggleDevTools(); - } - }] : [{ - label: 'Toggle &Full Screen', - accelerator: 'F11', - click() { - mainWindow.setFullScreen(!mainWindow.isFullScreen()); - } - }] - }, { - label: 'Help', - submenu: [{ - label: 'Learn More', - click() { - shell.openExternal('http://electron.atom.io'); - } - }, { - label: 'Documentation', - click() { - shell.openExternal('https://github.com/atom/electron/tree/master/docs#readme'); - } - }, { - label: 'Community Discussions', - click() { - shell.openExternal('https://discuss.atom.io/c/electron'); - } - }, { - label: 'Search Issues', - click() { - shell.openExternal('https://github.com/atom/electron/issues'); - } - }] - }]; - menu = Menu.buildFromTemplate(template); - mainWindow.setMenu(menu); - } -}); diff --git a/electron/package.js b/electron/package.js deleted file mode 100644 index 1a32740..0000000 --- a/electron/package.js +++ /dev/null @@ -1,169 +0,0 @@ -/* eslint-disable strict, no-shadow, no-unused-vars, no-console */ - -'use strict'; - -/** Build file to package the app for release */ - -require('babel-polyfill'); -const os = require('os'); -const webpack = require('webpack'); -const electronCfg = require('./webpack.config.electron'); -const cfg = require('./webpack.config.production'); -const packager = require('electron-packager'); -const del = require('del'); -const exec = require('child_process').exec; -const pkg = require('./package.json'); - -/** - * First two values are node path and current script path - * https://nodejs.org/docs/latest/api/process.html#process_process_argv - */ -const argv = require('minimist')(process.argv.slice(2)); - -/** - * Do not package node modules from 'devDependencies' - * and 'dependencies' that are set as external - */ -const toNodePath = name => `/node_modules/${name}($|/)`; -const devDeps = Object - .keys(pkg.devDependencies) - .map(toNodePath); - -const depsExternal = Object - .keys(pkg.dependencies) - .filter(name => !electronCfg.externals.includes(name)) - .map(toNodePath); - - -const appName = argv.name || argv.n || pkg.productName; -const shouldUseAsar = argv.asar || argv.a || false; -const shouldBuildAll = argv.all || false; - - -const DEFAULT_OPTS = { - dir: './', - name: appName, - asar: shouldUseAsar, - ignore: [ - '^/test($|/)', - '^/release($|/)', - '^/main.development.js' - ] - .concat(devDeps) - .concat(depsExternal) -}; - -const icon = argv.icon || argv.i || 'app/app'; -if (icon) DEFAULT_OPTS.icon = icon; - -const version = argv.version || argv.v; -if (version) { - DEFAULT_OPTS.version = version; - startPack(); -} else { - // use the same version as the currently-installed electron-prebuilt - exec('npm list electron --dev', (err, stdout) => { - if (err) { - DEFAULT_OPTS.version = '1.2.0'; - } else { - DEFAULT_OPTS.version = stdout.split('electron@')[1].replace(/\s/g, ''); - } - - startPack(); - }); -} - - -/** - * @desc Execute the webpack build process on given config object - * @param {Object} cfg - * @return {Promise} - */ -function build(cfg) { - return new Promise((resolve, reject) => { - webpack(cfg, (err, stats) => { - if (err) return reject(err); - resolve(stats); - }); - }); -} - - -/** @desc Build, clear previous releases and pack new versions */ -async function startPack() { - console.log('start pack...'); - - try { - /** - * - Build the 'Main process' and 'Renderer Process' files. - * - Clear the ./release directory - */ - await build(electronCfg); - await build(cfg); - const paths = await del('release'); - - // Start the packing process - if (shouldBuildAll) { - // build for all platforms - const archs = ['ia32', 'x64']; - const platforms = ['linux', 'win32', 'darwin']; - - platforms.forEach(plat => { - archs.forEach(arch => { - pack(plat, arch, log(plat, arch)); - }); - }); - } else { - // build for current platform only - pack(os.platform(), os.arch(), log(os.platform(), os.arch())); - } - } catch (error) { - console.error(error); - } -} - - -/** - * @desc - * @param {String} plat - * @param {String} arch - * @param {Function} cb - */ -function pack(plat, arch, cb) { - // there is no darwin ia32 electron - if (plat === 'darwin' && arch === 'ia32') return; - - const iconObj = { - icon: DEFAULT_OPTS.icon + (() => { - let extension = '.png'; - if (plat === 'darwin') extension = '.icns'; - if (plat === 'win32') extension = '.ico'; - - return extension; - })() - }; - - const opts = Object.assign({}, DEFAULT_OPTS, iconObj, { - platform: plat, - arch, - prune: true, - 'app-version': pkg.version || DEFAULT_OPTS.version, - out: `release/${plat}-${arch}` - }); - - packager(opts, cb); -} - - -/** - * @desc Log out success / error of building for given platform and architecture - * @param {String} plat - * @param {String} arch - * @return {Function} - */ -function log(plat, arch) { - return (err, filepath) => { - if (err) return console.error(err); - console.log(`${plat}-${arch} finished!`); - }; -} diff --git a/electron/package.json b/electron/package.json deleted file mode 100644 index a3a1ac5..0000000 --- a/electron/package.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "name": "electron-react-boilerplate", - "productName": "ElectronReact", - "version": "0.10.0", - "description": "Electron application boilerplate based on React, React Router, Webpack, React Hot Loader for rapid application development", - "main": "main.js", - "scripts": { - "test": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 mocha --compilers js:babel-register --recursive --require ./test/setup.js test/**/*.spec.js", - "test-watch": "npm test -- --watch", - "test-e2e": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 mocha --compilers js:babel-register --require ./test/setup.js ./test/e2e.js", - "lint": "eslint --format=node_modules/eslint-formatter-pretty app test *.js", - "hot-server": "cross-env NODE_ENV=development node -r babel-register server.js", - "build-main": "cross-env NODE_ENV=production node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.js --progress --profile --colors", - "build-renderer": "cross-env NODE_ENV=production node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.production.js --progress --profile --colors", - "build": "npm run build-main && npm run build-renderer", - "start": "cross-env NODE_ENV=production electron ./", - "start-hot": "cross-env HOT=1 NODE_ENV=development electron -r babel-register -r babel-polyfill ./main.development", - "package": "cross-env NODE_ENV=production node -r babel-register -r babel-polyfill package.js", - "package-all": "npm run package -- --all", - "postinstall": "node node_modules/fbjs-scripts/node/check-dev-engines.js package.json", - "dev": "concurrently --kill-others \"npm run hot-server\" \"npm run start-hot\"", - "cleanup": "mop -v" - }, - "bin": { - "electron": "./node_modules/.bin/electron" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/chentsulin/electron-react-boilerplate.git" - }, - "author": { - "name": "C. T. Lin", - "email": "chentsulin@gmail.com", - "url": "https://github.com/chentsulin" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/chentsulin/electron-react-boilerplate/issues" - }, - "keywords": [ - "electron", - "boilerplate", - "react", - "react-router", - "flux", - "webpack", - "react-hot" - ], - "homepage": "https://github.com/chentsulin/electron-react-boilerplate#readme", - "devDependencies": { - "asar": "^0.12.3", - "babel-core": "^6.17.0", - "babel-eslint": "^7.0.0", - "babel-loader": "^6.2.5", - "babel-plugin-add-module-exports": "^0.2.1", - "babel-plugin-dev-expression": "^0.2.1", - "babel-plugin-tcomb": "^0.3.17", - "babel-plugin-webpack-loaders": "^0.8.0", - "babel-polyfill": "^6.16.0", - "babel-preset-es2015": "^6.16.0", - "babel-preset-react": "^6.16.0", - "babel-preset-react-hmre": "^1.1.1", - "babel-preset-react-optimize": "^1.0.1", - "babel-preset-stage-0": "^6.16.0", - "babel-register": "^6.16.3", - "boiler-room-custodian": "^0.4.2", - "chai": "^3.5.0", - "concurrently": "^3.1.0", - "cross-env": "^3.1.1", - "css-loader": "^0.25.0", - "del": "^2.2.2", - "devtron": "^1.3.0", - "electron": "^1.4.3", - "electron-devtools-installer": "^2.0.1", - "electron-packager": "^8.1.0", - "electron-rebuild": "^1.2.1", - "enzyme": "^2.4.1", - "eslint": "^3.7.1", - "eslint-config-airbnb": "^12.0.0", - "eslint-formatter-pretty": "^1.0.0", - "eslint-import-resolver-webpack": "^0.6.0", - "eslint-loader": "^1.5.0", - "eslint-plugin-flowtype-errors": "^1.3.1", - "eslint-plugin-import": "1.16.0", - "eslint-plugin-jsx-a11y": "^2.2.2", - "eslint-plugin-promise": "^2.0.1", - "eslint-plugin-mocha": "^4.6.0", - "eslint-plugin-react": "^6.3.0", - "express": "^4.14.0", - "extract-text-webpack-plugin": "^1.0.1", - "fbjs-scripts": "^0.7.1", - "jsdom": "^9.6.0", - "json-loader": "^0.5.4", - "minimist": "^1.2.0", - "mocha": "^3.1.0", - "node-libs-browser": "^1.0.0", - "react-addons-test-utils": "^15.3.2", - "redux-logger": "^2.7.0", - "sinon": "^1.17.6", - "spectron": "^3.4.0", - "style-loader": "^0.13.1", - "tcomb": "^3.2.15", - "webpack": "^1.13.2", - "webpack-dev-middleware": "^1.8.3", - "webpack-hot-middleware": "^2.12.2", - "webpack-merge": "^0.14.1", - "webpack-validator": "^2.2.9" - }, - "dependencies": { - "css-modules-require-hook": "^4.0.5", - "electron-debug": "^1.0.1", - "font-awesome": "^4.6.3", - "postcss": "^5.2.4", - "react": "^15.3.2", - "react-dom": "^15.3.2", - "react-redux": "^4.4.5", - "react-router": "^2.8.1", - "react-router-redux": "^4.0.6", - "redux": "^3.6.0", - "redux-thunk": "^2.1.0", - "source-map-support": "^0.4.3" - }, - "devEngines": { - "node": "4.x || 5.x || 6.x", - "npm": "3.x" - } -} diff --git a/electron/server.js b/electron/server.js deleted file mode 100644 index 343d1a5..0000000 --- a/electron/server.js +++ /dev/null @@ -1,45 +0,0 @@ -/* eslint-disable no-console */ -/** - * Setup and run the development server for Hot-Module-Replacement - * https://webpack.github.io/docs/hot-module-replacement-with-webpack.html - * @flow - */ - -import express from 'express'; -import webpack from 'webpack'; -import webpackDevMiddleware from 'webpack-dev-middleware'; -import webpackHotMiddleware from 'webpack-hot-middleware'; - -import config from './webpack.config.development'; - -const app = express(); -const compiler = webpack(config); -const PORT = process.env.PORT || 3000; - -const wdm = webpackDevMiddleware(compiler, { - publicPath: config.output.publicPath, - stats: { - colors: true - } -}); - -app.use(wdm); - -app.use(webpackHotMiddleware(compiler)); - -const server = app.listen(PORT, 'localhost', err => { - if (err) { - console.error(err); - return; - } - - console.log(`Listening at http://localhost:${PORT}`); -}); - -process.on('SIGTERM', () => { - console.log('Stopping dev server'); - wdm.close(); - server.close(() => { - process.exit(0); - }); -}); diff --git a/electron/setup.js b/electron/setup.js deleted file mode 100644 index 19f7a20..0000000 --- a/electron/setup.js +++ /dev/null @@ -1,59 +0,0 @@ -module.exports = { - // remove the following files as they are mostly - // related to the sample counter page and functionality - remove: [ - { file: 'app/actions/counter.js' }, - { file: 'app/components/Counter.css' }, - { file: 'app/components/Counter.js' }, - { file: 'app/containers/CounterPage.js' }, - { file: 'app/reducers/counter.js' }, - { file: 'test/actions/counter.spec.js' }, - { file: 'test/components/Counter.spec.js' }, - { file: 'test/containers/CounterPage.spec.js' }, - { file: 'test/reducers/counter.spec.js' }, - { file: 'CHANGELOG.md' }, - { file: 'erb-logo.png' } - ], - // clean the following files by either clearing them - // (by specifying {clear: true}) or by removing lines - // that match a regex pattern - clean: [ - { - file: 'app/reducers/index.js', - pattern: /counter/ - }, - { - file: 'app/store/configureStore.development.js', - pattern: /counterActions/ - }, - { - file: 'app/app.global.css', - clear: true - }, - { - file: 'app/routes.js', - pattern: /CounterPage/ - }, - { - file: 'test/e2e.js', - clear: true - }, - { - file: 'README.md', - clear: true - }, - { - file: 'app/components/Home.js', - pattern: /(h2|Link to)/ - } - ], - // add the following files to the project, mostly - // related to .gitkeep for version control - add: [ - { file: 'app/actions/.gitkeep' }, - { file: 'test/actions/.gitkeep' }, - { file: 'test/components/.gitkeep' }, - { file: 'test/containers/.gitkeep' }, - { file: 'test/reducers/.gitkeep' } - ] -}; diff --git a/electron/test/.eslintrc b/electron/test/.eslintrc deleted file mode 100644 index d46d7ae..0000000 --- a/electron/test/.eslintrc +++ /dev/null @@ -1,23 +0,0 @@ -{ - "env": { - "mocha": true - }, - "plugins": [ - "mocha" - ], - "rules": { - "mocha/no-exclusive-tests": 2, - "mocha/no-skipped-tests": 0, - "mocha/no-pending-tests": 2, - "mocha/handle-done-callback": 2, - "mocha/no-synchronous-tests": 0, - "mocha/no-global-tests": 2, - "mocha/valid-test-description": 2, - "mocha/valid-suite-description": 2, - "mocha/no-sibling-hooks": 0, - "mocha/no-mocha-arrows": 0, - "mocha/no-hooks": 0, - "mocha/no-top-level-hooks": 0, - "no-unused-expressions": 0 - } -} diff --git a/electron/test/actions/counter.spec.js b/electron/test/actions/counter.spec.js deleted file mode 100644 index 4326d02..0000000 --- a/electron/test/actions/counter.spec.js +++ /dev/null @@ -1,44 +0,0 @@ -/* eslint-disable no-unused-expressions */ -import { expect } from 'chai'; -import { spy } from 'sinon'; -import * as actions from '../../app/actions/counter'; - - -describe('actions', () => { - it('should increment should create increment action', () => { - expect(actions.increment()).to.deep.equal({ type: actions.INCREMENT_COUNTER }); - }); - - it('should decrement should create decrement action', () => { - expect(actions.decrement()).to.deep.equal({ type: actions.DECREMENT_COUNTER }); - }); - - it('should incrementIfOdd should create increment action', () => { - const fn = actions.incrementIfOdd(); - expect(fn).to.be.a('function'); - const dispatch = spy(); - const getState = () => ({ counter: 1 }); - fn(dispatch, getState); - expect(dispatch.calledWith({ type: actions.INCREMENT_COUNTER })).to.be.true; - }); - - it('should incrementIfOdd shouldnt create increment action if counter is even', () => { - const fn = actions.incrementIfOdd(); - const dispatch = spy(); - const getState = () => ({ counter: 2 }); - fn(dispatch, getState); - expect(dispatch.called).to.be.false; - }); - - // There's no nice way to test this at the moment... - it('should incrementAsync', done => { - const fn = actions.incrementAsync(1); - expect(fn).to.be.a('function'); - const dispatch = spy(); - fn(dispatch); - setTimeout(() => { - expect(dispatch.calledWith({ type: actions.INCREMENT_COUNTER })).to.be.true; - done(); - }, 5); - }); -}); diff --git a/electron/test/components/Counter.spec.js b/electron/test/components/Counter.spec.js deleted file mode 100644 index bb676e3..0000000 --- a/electron/test/components/Counter.spec.js +++ /dev/null @@ -1,55 +0,0 @@ -/* eslint-disable no-unused-expressions */ -import { expect } from 'chai'; -import { spy } from 'sinon'; -import React from 'react'; -import { shallow } from 'enzyme'; -import Counter from '../../app/components/Counter'; - - -function setup() { - const actions = { - increment: spy(), - incrementIfOdd: spy(), - incrementAsync: spy(), - decrement: spy() - }; - const component = shallow(); - return { - component, - actions, - buttons: component.find('button'), - p: component.find('.counter') - }; -} - - -describe('Counter component', () => { - it('should should display count', () => { - const { p } = setup(); - expect(p.text()).to.match(/^1$/); - }); - - it('should first button should call increment', () => { - const { buttons, actions } = setup(); - buttons.at(0).simulate('click'); - expect(actions.increment.called).to.be.true; - }); - - it('should second button should call decrement', () => { - const { buttons, actions } = setup(); - buttons.at(1).simulate('click'); - expect(actions.decrement.called).to.be.true; - }); - - it('should third button should call incrementIfOdd', () => { - const { buttons, actions } = setup(); - buttons.at(2).simulate('click'); - expect(actions.incrementIfOdd.called).to.be.true; - }); - - it('should fourth button should call incrementAsync', () => { - const { buttons, actions } = setup(); - buttons.at(3).simulate('click'); - expect(actions.incrementAsync.called).to.be.true; - }); -}); diff --git a/electron/test/containers/CounterPage.spec.js b/electron/test/containers/CounterPage.spec.js deleted file mode 100644 index 6577551..0000000 --- a/electron/test/containers/CounterPage.spec.js +++ /dev/null @@ -1,55 +0,0 @@ -import { expect } from 'chai'; -import React from 'react'; -import { mount } from 'enzyme'; -import { Provider } from 'react-redux'; -import CounterPage from '../../app/containers/CounterPage'; -import configureStore from '../../app/store/configureStore'; - - -function setup(initialState) { - const store = configureStore(initialState); - const app = mount( - - - - ); - return { - app, - buttons: app.find('button'), - p: app.find('.counter') - }; -} - - -describe('containers', () => { - describe('App', () => { - it('should display initial count', () => { - const { p } = setup(); - expect(p.text()).to.match(/^0$/); - }); - - it('should display updated count after increment button click', () => { - const { buttons, p } = setup(); - buttons.at(0).simulate('click'); - expect(p.text()).to.match(/^1$/); - }); - - it('should display updated count after descrement button click', () => { - const { buttons, p } = setup(); - buttons.at(1).simulate('click'); - expect(p.text()).to.match(/^-1$/); - }); - - it('shouldnt change if even and if odd button clicked', () => { - const { buttons, p } = setup(); - buttons.at(2).simulate('click'); - expect(p.text()).to.match(/^0$/); - }); - - it('should change if odd and if odd button clicked', () => { - const { buttons, p } = setup({ counter: 1 }); - buttons.at(2).simulate('click'); - expect(p.text()).to.match(/^2$/); - }); - }); -}); diff --git a/electron/test/e2e.js b/electron/test/e2e.js deleted file mode 100644 index da21e5d..0000000 --- a/electron/test/e2e.js +++ /dev/null @@ -1,102 +0,0 @@ -import { Application } from 'spectron'; -import { expect } from 'chai'; -import electronPath from 'electron'; -import homeStyles from '../app/components/Home.css'; -import counterStyles from '../app/components/Counter.css'; - -const delay = time => new Promise(resolve => setTimeout(resolve, time)); - -describe('main window', function spec() { - this.timeout(10000); - - before(async () => { - this.app = new Application({ - path: electronPath, - args: ['.'], - }); - return this.app.start(); - }); - - after(() => { - if (this.app && this.app.isRunning()) { - return this.app.stop(); - } - }); - - const findCounter = () => this.app.client.element(`.${counterStyles.counter}`); - - const findButtons = async () => { - const { value } = await this.app.client.elements(`.${counterStyles.btn}`); - return value.map(btn => btn.ELEMENT); - }; - - it('should open window', async () => { - const { client, browserWindow } = this.app; - - await client.waitUntilWindowLoaded(); - await delay(500); - const title = await browserWindow.getTitle(); - expect(title).to.equal('Hello Electron React!'); - }); - - it('should to Counter with click "to Counter" link', async () => { - const { client } = this.app; - - await client.click(`.${homeStyles.container} > a`); - expect(await findCounter().getText()).to.equal('0'); - }); - - it('should display updated count after increment button click', async () => { - const { client } = this.app; - - const buttons = await findButtons(); - await client.elementIdClick(buttons[0]); // + - expect(await findCounter().getText()).to.equal('1'); - }); - - it('should display updated count after descrement button click', async () => { - const { client } = this.app; - - const buttons = await findButtons(); - await client.elementIdClick(buttons[1]); // - - expect(await findCounter().getText()).to.equal('0'); - }); - - it('shouldnt change if even and if odd button clicked', async () => { - const { client } = this.app; - - const buttons = await findButtons(); - await client.elementIdClick(buttons[2]); // odd - expect(await findCounter().getText()).to.equal('0'); - }); - - it('should change if odd and if odd button clicked', async () => { - const { client } = this.app; - - const buttons = await findButtons(); - await client.elementIdClick(buttons[0]); // + - await client.elementIdClick(buttons[2]); // odd - expect(await findCounter().getText()).to.equal('2'); - }); - - it('should change if async button clicked and a second later', async () => { - const { client } = this.app; - - const buttons = await findButtons(); - await client.elementIdClick(buttons[3]); // async - expect(await findCounter().getText()).to.equal('2'); - await delay(1000); - expect(await findCounter().getText()).to.equal('3'); - }); - - it('should back to home if back button clicked', async () => { - const { client } = this.app; - await client.element( - `.${counterStyles.backButton} > a` - ).click(); - - expect( - await client.isExisting(`.${homeStyles.container}`) - ).to.be.true; - }); -}); diff --git a/electron/test/example.js b/electron/test/example.js deleted file mode 100644 index 81c3b47..0000000 --- a/electron/test/example.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable func-names */ -import { expect } from 'chai'; - - -describe('description', () => { - it('should have description', () => { - expect(1 + 2).to.equal(3); - }); -}); diff --git a/electron/test/reducers/counter.spec.js b/electron/test/reducers/counter.spec.js deleted file mode 100644 index 2d53b14..0000000 --- a/electron/test/reducers/counter.spec.js +++ /dev/null @@ -1,24 +0,0 @@ -import { expect } from 'chai'; -import counter from '../../app/reducers/counter'; -import { INCREMENT_COUNTER, DECREMENT_COUNTER } from '../../app/actions/counter'; - - -describe('reducers', () => { - describe('counter', () => { - it('should handle initial state', () => { - expect(counter(undefined, {})).to.equal(0); - }); - - it('should handle INCREMENT_COUNTER', () => { - expect(counter(1, { type: INCREMENT_COUNTER })).to.equal(2); - }); - - it('should handle DECREMENT_COUNTER', () => { - expect(counter(1, { type: DECREMENT_COUNTER })).to.equal(0); - }); - - it('should handle unknown action type', () => { - expect(counter(1, { type: 'unknown' })).to.equal(1); - }); - }); -}); diff --git a/electron/test/setup.js b/electron/test/setup.js deleted file mode 100644 index cd80674..0000000 --- a/electron/test/setup.js +++ /dev/null @@ -1,17 +0,0 @@ -import 'babel-polyfill'; -import { jsdom } from 'jsdom'; - -global.document = jsdom(''); -global.window = document.defaultView; -global.navigator = global.window.navigator; -window.localStorage = window.sessionStorage = { - getItem(key) { - return this[key]; - }, - setItem(key, value) { - this[key] = value; - }, - removeItem(key) { - this[key] = undefined; - }, -}; diff --git a/electron/webpack.config.base.js b/electron/webpack.config.base.js deleted file mode 100644 index d502af9..0000000 --- a/electron/webpack.config.base.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Base webpack config used across other specific configs - */ - -import path from 'path'; -import validate from 'webpack-validator'; - -export default validate({ - module: { - loaders: [{ - test: /\.jsx?$/, - loaders: ['babel-loader'], - exclude: /node_modules/ - }, { - test: /\.json$/, - loader: 'json-loader' - }] - }, - - output: { - path: path.join(__dirname, 'dist'), - filename: 'bundle.js', - - // https://github.com/webpack/webpack/issues/1114 - libraryTarget: 'commonjs2' - }, - - // https://webpack.github.io/docs/configuration.html#resolve - resolve: { - extensions: ['', '.js', '.jsx', '.json'], - packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'] - }, - - plugins: [], - - externals: [ - // put your node 3rd party libraries which can't be built with webpack here - // (mysql, mongodb, and so on..) - ] -}); diff --git a/electron/webpack.config.development.js b/electron/webpack.config.development.js deleted file mode 100644 index 9edbff4..0000000 --- a/electron/webpack.config.development.js +++ /dev/null @@ -1,77 +0,0 @@ -/* eslint-disable max-len */ -/** - * Build config for development process that uses Hot-Module-Replacement - * https://webpack.github.io/docs/hot-module-replacement-with-webpack.html - */ - -import webpack from 'webpack'; -import validate from 'webpack-validator'; -import merge from 'webpack-merge'; -import formatter from 'eslint-formatter-pretty'; -import baseConfig from './webpack.config.base'; - -const port = process.env.PORT || 3000; - -export default validate(merge(baseConfig, { - debug: true, - - devtool: 'cheap-module-eval-source-map', - - entry: [ - `webpack-hot-middleware/client?path=http://localhost:${port}/__webpack_hmr`, - 'babel-polyfill', - './app/index' - ], - - output: { - publicPath: `http://localhost:${port}/dist/` - }, - - module: { - // preLoaders: [ - // { - // test: /\.js$/, - // loader: 'eslint-loader', - // exclude: /node_modules/ - // } - // ], - loaders: [ - { - test: /\.global\.css$/, - loaders: [ - 'style-loader', - 'css-loader?sourceMap' - ] - }, - - { - test: /^((?!\.global).)*\.css$/, - loaders: [ - 'style-loader', - 'css-loader?modules&sourceMap&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' - ] - } - ] - }, - - eslint: { - formatter - }, - - plugins: [ - // https://webpack.github.io/docs/hot-module-replacement-with-webpack.html - new webpack.HotModuleReplacementPlugin(), - - // “If you are using the CLI, the webpack process will not exit with an error code by enabling this plugin.” - // https://github.com/webpack/docs/wiki/list-of-plugins#noerrorsplugin - new webpack.NoErrorsPlugin(), - - // NODE_ENV should be production so that modules do not perform certain development checks - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('development') - }) - ], - - // https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works - target: 'electron-renderer' -})); diff --git a/electron/webpack.config.electron.js b/electron/webpack.config.electron.js deleted file mode 100644 index 3f6a894..0000000 --- a/electron/webpack.config.electron.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Build config for electron 'Main Process' file - */ - -import webpack from 'webpack'; -import validate from 'webpack-validator'; -import merge from 'webpack-merge'; -import baseConfig from './webpack.config.base'; - -export default validate(merge(baseConfig, { - devtool: 'source-map', - - entry: ['babel-polyfill', './main.development'], - - // 'main.js' in root - output: { - path: __dirname, - filename: './main.js' - }, - - plugins: [ - // Minify the output - new webpack.optimize.UglifyJsPlugin({ - compressor: { - warnings: false - } - }), - - // Add source map support for stack traces in node - // https://github.com/evanw/node-source-map-support - new webpack.BannerPlugin( - 'require("source-map-support").install();', - { raw: true, entryOnly: false } - ), - - // NODE_ENV should be production so that modules do not perform certain development checks - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: JSON.stringify('production') - } - }) - ], - - /** - * Set targed to Electron speciffic node.js env. - * https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works - */ - target: 'electron-main', - - /** - * Disables webpack processing of __dirname and __filename. - * If you run the bundle in node.js it falls back to these values of node.js. - * https://github.com/webpack/webpack/issues/2010 - */ - node: { - __dirname: false, - __filename: false - }, - - externals: [ - 'font-awesome', - 'source-map-support' - ] -})); diff --git a/electron/webpack.config.eslint.js b/electron/webpack.config.eslint.js deleted file mode 100644 index 9c433d0..0000000 --- a/electron/webpack.config.eslint.js +++ /dev/null @@ -1,3 +0,0 @@ -require('babel-register'); - -module.exports = require('./webpack.config.development'); diff --git a/electron/webpack.config.production.js b/electron/webpack.config.production.js deleted file mode 100644 index b4aa539..0000000 --- a/electron/webpack.config.production.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Build config for electron 'Renderer Process' file - */ - -import webpack from 'webpack'; -import validate from 'webpack-validator'; -import ExtractTextPlugin from 'extract-text-webpack-plugin'; -import merge from 'webpack-merge'; -import baseConfig from './webpack.config.base'; - -const config = validate(merge(baseConfig, { - devtool: 'cheap-module-source-map', - - entry: [ - 'babel-polyfill', - './app/index' - ], - - output: { - publicPath: '../dist/' - }, - - module: { - loaders: [ - // Extract all .global.css to style.css as is - { - test: /\.global\.css$/, - loader: ExtractTextPlugin.extract( - 'style-loader', - 'css-loader' - ) - }, - - // Pipe other styles through css modules and apend to style.css - { - test: /^((?!\.global).)*\.css$/, - loader: ExtractTextPlugin.extract( - 'style-loader', - 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' - ) - } - ] - }, - - plugins: [ - // https://webpack.github.io/docs/list-of-plugins.html#occurrenceorderplugin - // https://github.com/webpack/webpack/issues/864 - new webpack.optimize.OccurrenceOrderPlugin(), - - // NODE_ENV should be production so that modules do not perform certain development checks - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('production') - }), - - // Minify without warning messages and IE8 support - new webpack.optimize.UglifyJsPlugin({ - compressor: { - screw_ie8: true, - warnings: false - } - }), - - // Set the ExtractTextPlugin output filename - new ExtractTextPlugin('style.css', { allChunks: true }) - ], - - // https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works - target: 'electron-renderer' -})); - -export default config; diff --git a/electron/webpack.config.test.js b/electron/webpack.config.test.js deleted file mode 100644 index 8ad4597..0000000 --- a/electron/webpack.config.test.js +++ /dev/null @@ -1,16 +0,0 @@ -/** Used in .babelrc for 'test' environment */ - -// for babel-plugin-webpack-loaders -require('babel-register'); -const validate = require('webpack-validator'); -const devConfig = require('./webpack.config.development'); - -module.exports = validate({ - output: { - libraryTarget: 'commonjs2' - }, - module: { - // Use base + development loaders, but exclude 'babel-loader' - loaders: devConfig.module.loaders.slice(1) - } -}); diff --git a/electron/yarn.lock b/electron/yarn.lock deleted file mode 100644 index 0c88101..0000000 --- a/electron/yarn.lock +++ /dev/null @@ -1,7637 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 -"7zip@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30" - -abab@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" - -abbrev@~1.0.9, abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - -accessibility-developer-tools@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/accessibility-developer-tools/-/accessibility-developer-tools-2.11.0.tgz#2b669c802671672aed5c61c42a782082a2fc7d2c" - -acorn-globals@^1.0.4: - version "1.0.9" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" - dependencies: - acorn "^2.1.0" - -acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^2.1.0, acorn@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - -acorn@^3.0.0, acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.3.tgz#1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1" - -ajv-keywords@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" - -ajv@^4.7.0: - version "4.8.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.8.2.tgz#65486936ca36fea39a1504332a78bebd5d447bdc" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - -ansi-html@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.6.tgz#bda8e33dd2ee1c20f54c08eb405713cbfc0ed80e" - -ansi-regex@*, ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" - -ansi-regex@^0.2.0, ansi-regex@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" - -ansi-styles@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi@^0.3.0, ansi@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" - -ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - -ansistyles@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" - -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -aproba@^1.0.3, aproba@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" - -archiver-utils@^1.0.0, archiver-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174" - dependencies: - glob "^7.0.0" - graceful-fs "^4.1.0" - lazystream "^1.0.0" - lodash "^4.8.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -archiver@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.0.0.tgz#de1d61082e947755b599bb3bc27130a4c859fc83" - dependencies: - archiver-utils "^1.0.0" - async "^1.5.0" - buffer-crc32 "^0.2.1" - glob "^7.0.0" - lodash "^4.8.0" - readable-stream "^2.0.0" - tar-stream "^1.5.0" - zip-stream "^1.0.0" - -archy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - -are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-index@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-index/-/array-index-1.0.0.tgz#ec56a749ee103e4e08c790b9c353df16055b97f9" - dependencies: - debug "^2.2.0" - es6-symbol "^3.0.2" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1, array-uniq@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@^2.0.0, asap@~2.0.3, asap@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asar@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/asar/-/asar-0.12.3.tgz#11aa004349c87ae5d69d76c7ab7d5fb77cc2a95d" - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.9.0" - cuint "^0.2.1" - glob "^6.0.4" - minimatch "^3.0.3" - mkdirp "^0.5.0" - mksnapshot "^0.3.0" - tmp "0.0.28" - -asn1.js@^4.0.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -asn1@0.1.11: - version "0.1.11" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" - -assert-plus@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assertion-error@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^0.9.0, async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^1.3.0, async@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" - dependencies: - lodash "^4.14.0" - -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" - -autoprefixer@^6.3.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.2.tgz#37cc910c5e1139ad341a006d5f6d441a380b742b" - dependencies: - browserslist "~1.4.0" - caniuse-db "^1.0.30000576" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.5" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^2.0.0" - -babel-core@^6.17.0, babel-core@^6.18.0, babel-core@^6.7.2: - version "6.18.2" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b" - dependencies: - babel-code-frame "^6.16.0" - babel-generator "^6.18.0" - babel-helpers "^6.16.0" - babel-messages "^6.8.0" - babel-register "^6.18.0" - babel-runtime "^6.9.1" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" - slash "^1.0.0" - source-map "^0.5.0" - -babel-eslint@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.0.tgz#d506a5174ba224e25a2d17e128e2ba8987139ddc" - dependencies: - babel-traverse "^6.15.0" - babel-types "^6.15.0" - babylon "^6.11.2" - lodash.pickby "^4.6.0" - -babel-generator@^6.11.3, babel-generator@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" - dependencies: - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - -babel-helper-bindify-decorators@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" - dependencies: - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" - dependencies: - babel-helper-explode-assignable-expression "^6.18.0" - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-builder-react-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - esutils "^2.0.0" - lodash "^4.2.0" - -babel-helper-call-delegate@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" - dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" - dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-helper-explode-assignable-expression@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" - dependencies: - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-explode-class@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" - dependencies: - babel-helper-bindify-decorators "^6.18.0" - babel-runtime "^6.0.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" - dependencies: - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-get-function-arity@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-hoist-variables@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-is-react-class@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-helper-is-react-class/-/babel-helper-is-react-class-1.0.0.tgz#ef6f3678b05c76dbdeedadead7af98c2724d8431" - -babel-helper-optimise-call-expression@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-helper-regex@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.16.2: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" - dependencies: - babel-helper-function-name "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" - dependencies: - babel-helper-optimise-call-expression "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-helpers@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3" - dependencies: - babel-runtime "^6.0.0" - babel-template "^6.16.0" - -babel-loader@^6.2.5: - version "6.2.7" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.7.tgz#16fdbf64328030dc5a606827d389c8b92a2a8032" - dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.11" - mkdirp "^0.5.1" - object-assign "^4.0.1" - -babel-messages@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-add-module-exports@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" - -babel-plugin-check-es2015-constants@^6.3.13, babel-plugin-check-es2015-constants@^6.7.2: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-dev-expression@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.1.tgz#d4a7beefefbb50e3f2734990a82a2486cf9eb9ee" - -babel-plugin-react-transform@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" - dependencies: - lodash "^4.6.1" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-do-expressions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - -babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13, babel-plugin-syntax-flow@^6.5.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-function-bind@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.5.0, babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.3.13, babel-plugin-syntax-trailing-function-commas@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.13.0.tgz#2b84b7d53dd744f94ff1fad7669406274b23f541" - -babel-plugin-tcomb@^0.3.17: - version "0.3.22" - resolved "https://registry.yarnpkg.com/babel-plugin-tcomb/-/babel-plugin-tcomb-0.3.22.tgz#8336fb28d37f9f87441621e8887760f0d18d4027" - dependencies: - babel-generator "^6.11.3" - -babel-plugin-transform-async-generator-functions@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.17.0.tgz#d0b5a2b2f0940f2b245fa20a00519ed7bc6cae54" - dependencies: - babel-helper-remap-async-to-generator "^6.16.2" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-async-to-generator@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" - dependencies: - babel-helper-remap-async-to-generator "^6.16.0" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-class-constructor-call@^6.3.13: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-class-properties@^6.18.0, babel-plugin-transform-class-properties@^6.6.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.18.0.tgz#bc1266a39d4c8726e0bd7b15c56235177e6ede57" - dependencies: - babel-helper-function-name "^6.18.0" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.9.1" - -babel-plugin-transform-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" - dependencies: - babel-helper-define-map "^6.8.0" - babel-helper-explode-class "^6.8.0" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - babel-types "^6.13.0" - -babel-plugin-transform-do-expressions@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.8.0.tgz#fda692af339835cc255bb7544efb8f7c1306c273" - dependencies: - babel-plugin-syntax-do-expressions "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-arrow-functions@^6.3.13, babel-plugin-transform-es2015-arrow-functions@^6.5.2: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.3.13, babel-plugin-transform-es2015-block-scoped-functions@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-block-scoping@^6.18.0, babel-plugin-transform-es2015-block-scoping@^6.7.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" - dependencies: - babel-runtime "^6.9.0" - babel-template "^6.15.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - lodash "^4.2.0" - -babel-plugin-transform-es2015-classes@^6.18.0, babel-plugin-transform-es2015-classes@^6.6.5: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" - dependencies: - babel-helper-define-map "^6.18.0" - babel-helper-function-name "^6.18.0" - babel-helper-optimise-call-expression "^6.18.0" - babel-helper-replace-supers "^6.18.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-template "^6.14.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-computed-properties@^6.3.13, babel-plugin-transform-es2015-computed-properties@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870" - dependencies: - babel-helper-define-map "^6.8.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-destructuring@^6.18.0, babel-plugin-transform-es2015-destructuring@^6.6.5: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" - dependencies: - babel-runtime "^6.9.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.8.0" - -babel-plugin-transform-es2015-for-of@^6.18.0, babel-plugin-transform-es2015-for-of@^6.6.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-function-name@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719" - dependencies: - babel-helper-function-name "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.9.0" - -babel-plugin-transform-es2015-literals@^6.3.13, babel-plugin-transform-es2015-literals@^6.5.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-modules-amd@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-modules-commonjs@^6.18.0, babel-plugin-transform-es2015-modules-commonjs@^6.7.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" - dependencies: - babel-plugin-transform-strict-mode "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.16.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" - dependencies: - babel-helper-hoist-variables "^6.18.0" - babel-runtime "^6.11.6" - babel-template "^6.14.0" - -babel-plugin-transform-es2015-modules-umd@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-runtime "^6.0.0" - babel-template "^6.8.0" - -babel-plugin-transform-es2015-object-super@^6.3.13, babel-plugin-transform-es2015-object-super@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5" - dependencies: - babel-helper-replace-supers "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-parameters@^6.18.0, babel-plugin-transform-es2015-parameters@^6.7.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" - dependencies: - babel-helper-call-delegate "^6.18.0" - babel-helper-get-function-arity "^6.18.0" - babel-runtime "^6.9.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-shorthand-properties@^6.18.0, babel-plugin-transform-es2015-shorthand-properties@^6.5.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-plugin-transform-es2015-spread@^6.3.13, babel-plugin-transform-es2015-spread@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-sticky-regex@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be" - dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" - babel-types "^6.8.0" - -babel-plugin-transform-es2015-template-literals@^6.6.0, babel-plugin-transform-es2015-template-literals@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es2015-unicode-regex@^6.3.13: - version "6.11.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c" - dependencies: - babel-helper-regex "^6.8.0" - babel-runtime "^6.0.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-es3-member-expression-literals@^6.5.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.8.0.tgz#180796863e2eddc4b48561d0c228369b05b722e2" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-es3-property-literals@^6.5.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.8.0.tgz#8e7cc50cfe060b7c487ae33c501a4f659133bade" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-exponentiation-operator@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz#db25742e9339eade676ca9acec46f955599a68a4" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.8.0" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-export-extensions@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz#fa80ff655b636549431bfd38f6b817bd82e47f5b" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-flow-strip-types@^6.3.13, babel-plugin-transform-flow-strip-types@^6.7.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-function-bind@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.8.0.tgz#e7f334ce69f50d28fe850a822eaaab9fa4f4d821" - dependencies: - babel-plugin-syntax-function-bind "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-object-rest-spread@^6.16.0, babel-plugin-transform-object-rest-spread@^6.6.5: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-react-constant-elements@^6.5.0: - version "6.9.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.9.1.tgz#125b86d96cb322e2139b607fd749ad5fbb17f005" - dependencies: - babel-runtime "^6.9.1" - -babel-plugin-transform-react-display-name@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.8.0.tgz#f7a084977383d728bdbdc2835bba0159577f660e" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-react-inline-elements@^6.6.5: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-inline-elements/-/babel-plugin-transform-react-inline-elements-6.8.0.tgz#fc2d8fec1f2f87e5c4961ac367610039f325bbe6" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-react-jsx-self@^6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" - -babel-plugin-transform-react-jsx-source@^6.3.13: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.9.0" - -babel-plugin-transform-react-jsx@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab" - dependencies: - babel-helper-builder-react-jsx "^6.8.0" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.0.0" - -babel-plugin-transform-react-pure-class-to-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-pure-class-to-function/-/babel-plugin-transform-react-pure-class-to-function-1.0.1.tgz#32a649c97d653250b419cfd1489331b0290d9ee4" - dependencies: - babel-helper-is-react-class "^1.0.0" - -babel-plugin-transform-react-remove-prop-types@^0.2.5: - version "0.2.10" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.2.10.tgz#eefd083057cccb0f9a85cb15f3a64227daf64609" - -babel-plugin-transform-regenerator@^6.16.0: - version "6.16.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" - dependencies: - babel-runtime "^6.9.0" - babel-types "^6.16.0" - private "~0.1.5" - -babel-plugin-transform-runtime@^6.15.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c" - dependencies: - babel-runtime "^6.9.0" - -babel-plugin-transform-strict-mode@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" - dependencies: - babel-runtime "^6.0.0" - babel-types "^6.18.0" - -babel-plugin-webpack-loaders@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-webpack-loaders/-/babel-plugin-webpack-loaders-0.8.0.tgz#1ec5255e2c9de8d5226c58a099890d935a876065" - dependencies: - babel-preset-es2015 "^6.3.13" - babel-preset-stage-0 "^6.5.0" - babel-register "^6.4.3" - babel-traverse "^6.3.26" - babel-types "^6.3.24" - babylon "^6.3.26" - colors "^1.1.2" - enhanced-resolve "^2.2.2" - lodash "^4.6.1" - rimraf "^2.5.0" - -babel-polyfill@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" - dependencies: - babel-runtime "^6.9.1" - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - -babel-preset-es2015@^6.16.0, babel-preset-es2015@^6.3.13: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" - dependencies: - babel-plugin-check-es2015-constants "^6.3.13" - babel-plugin-transform-es2015-arrow-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.18.0" - babel-plugin-transform-es2015-classes "^6.18.0" - babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.18.0" - babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.18.0" - babel-plugin-transform-es2015-function-name "^6.9.0" - babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.18.0" - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-plugin-transform-es2015-modules-systemjs "^6.18.0" - babel-plugin-transform-es2015-modules-umd "^6.18.0" - babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.18.0" - babel-plugin-transform-es2015-shorthand-properties "^6.18.0" - babel-plugin-transform-es2015-spread "^6.3.13" - babel-plugin-transform-es2015-sticky-regex "^6.3.13" - babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.18.0" - babel-plugin-transform-es2015-unicode-regex "^6.3.13" - babel-plugin-transform-regenerator "^6.16.0" - -babel-preset-fbjs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-1.0.0.tgz#c972e5c9b301d4ec9e7971f4aec3e14ac017a8b0" - dependencies: - babel-plugin-check-es2015-constants "^6.7.2" - babel-plugin-syntax-flow "^6.5.0" - babel-plugin-syntax-object-rest-spread "^6.5.0" - babel-plugin-syntax-trailing-function-commas "^6.5.0" - babel-plugin-transform-class-properties "^6.6.0" - babel-plugin-transform-es2015-arrow-functions "^6.5.2" - babel-plugin-transform-es2015-block-scoped-functions "^6.6.5" - babel-plugin-transform-es2015-block-scoping "^6.7.1" - babel-plugin-transform-es2015-classes "^6.6.5" - babel-plugin-transform-es2015-computed-properties "^6.6.5" - babel-plugin-transform-es2015-destructuring "^6.6.5" - babel-plugin-transform-es2015-for-of "^6.6.0" - babel-plugin-transform-es2015-literals "^6.5.0" - babel-plugin-transform-es2015-modules-commonjs "^6.7.0" - babel-plugin-transform-es2015-object-super "^6.6.5" - babel-plugin-transform-es2015-parameters "^6.7.0" - babel-plugin-transform-es2015-shorthand-properties "^6.5.0" - babel-plugin-transform-es2015-spread "^6.6.5" - babel-plugin-transform-es2015-template-literals "^6.6.5" - babel-plugin-transform-es3-member-expression-literals "^6.5.0" - babel-plugin-transform-es3-property-literals "^6.5.0" - babel-plugin-transform-flow-strip-types "^6.7.0" - babel-plugin-transform-object-rest-spread "^6.6.5" - object-assign "^4.0.1" - -babel-preset-react-hmre@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz#d216e60cb5b8d4c873e19ed0f54eaff1437bc492" - dependencies: - babel-plugin-react-transform "^2.0.2" - react-transform-catch-errors "^1.0.2" - react-transform-hmr "^1.0.3" - redbox-react "^1.2.2" - -babel-preset-react-optimize@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-optimize/-/babel-preset-react-optimize-1.0.1.tgz#c23509fba7cbc76d7de7050e7d26bcd22bc304e8" - dependencies: - babel-plugin-transform-react-constant-elements "^6.5.0" - babel-plugin-transform-react-inline-elements "^6.6.5" - babel-plugin-transform-react-pure-class-to-function "^1.0.1" - babel-plugin-transform-react-remove-prop-types "^0.2.5" - -babel-preset-react@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" - dependencies: - babel-plugin-syntax-flow "^6.3.13" - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-flow-strip-types "^6.3.13" - babel-plugin-transform-react-display-name "^6.3.13" - babel-plugin-transform-react-jsx "^6.3.13" - babel-plugin-transform-react-jsx-self "^6.11.0" - babel-plugin-transform-react-jsx-source "^6.3.13" - -babel-preset-stage-0@^6.16.0, babel-preset-stage-0@^6.5.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.16.0.tgz#f5a263c420532fd57491f1a7315b3036e428f823" - dependencies: - babel-plugin-transform-do-expressions "^6.3.13" - babel-plugin-transform-function-bind "^6.3.13" - babel-preset-stage-1 "^6.16.0" - -babel-preset-stage-1@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" - dependencies: - babel-plugin-transform-class-constructor-call "^6.3.13" - babel-plugin-transform-export-extensions "^6.3.13" - babel-preset-stage-2 "^6.16.0" - -babel-preset-stage-2@^6.16.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.18.0" - babel-plugin-transform-decorators "^6.13.0" - babel-preset-stage-3 "^6.17.0" - -babel-preset-stage-3@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz#b6638e46db6e91e3f889013d8ce143917c685e39" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.3.13" - babel-plugin-transform-async-generator-functions "^6.17.0" - babel-plugin-transform-async-to-generator "^6.16.0" - babel-plugin-transform-exponentiation-operator "^6.3.13" - babel-plugin-transform-object-rest-spread "^6.16.0" - -babel-register@^6.16.3, babel-register@^6.18.0, babel-register@^6.4.3: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" - dependencies: - babel-core "^6.18.0" - babel-runtime "^6.11.6" - core-js "^2.4.0" - home-or-tmp "^2.0.0" - lodash "^4.2.0" - mkdirp "^0.5.1" - source-map-support "^0.4.2" - -babel-runtime@^5.8.20, babel-runtime@^5.8.25: - version "5.8.38" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19" - dependencies: - core-js "^1.0.0" - -babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.6.1, babel-runtime@^6.9.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - -babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" - dependencies: - babel-runtime "^6.9.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babylon "^6.11.0" - lodash "^4.2.0" - -babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.3.26: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" - dependencies: - babel-code-frame "^6.16.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.18.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.13.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.3.24, babel-types@^6.8.0, babel-types@^6.9.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" - dependencies: - babel-runtime "^6.9.1" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babylon@^6.11.0, babylon@^6.11.2, babylon@^6.3.26: - version "6.13.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.13.1.tgz#adca350e088f0467647157652bafead6ddb8dfdb" - -balanced-match@^0.4.1, balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" - -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -base64-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8" - -Base64@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" - -basename@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/basename/-/basename-0.1.2.tgz#d6039bef939863160c78048cced3c5e7f88cb261" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -beeper@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.0.tgz#9ee6fc1ce7f54feaace7ce73588b056037866a2c" - -big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" - -binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" - -binary@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bl@^1.0.0, bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" - dependencies: - readable-stream "~2.0.5" - -bl@~0.9.0: - version "0.9.5" - resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" - dependencies: - readable-stream "~1.0.26" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^2.9.30: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" - -bluebird@^3.1.1: - version "3.4.6" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f" - -bluebird@2.9.6: - version "2.9.6" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.9.6.tgz#1fc3a6b1685267dc121b5ec89b32ce069d81ab7d" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - -boiler-room-custodian@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/boiler-room-custodian/-/boiler-room-custodian-0.4.2.tgz#5f7aad3e7eb4b6f2777674e776d1d2bb8a72fcd2" - dependencies: - chalk "^1.1.3" - commander "^2.9.0" - rimraf "^2.5.4" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brorand@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5" - -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" - dependencies: - buffer-xor "^1.0.2" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - inherits "^2.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -browserslist@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" - dependencies: - caniuse-db "^1.0.30000539" - -buffer-crc32@^0.2.1, buffer-crc32@~0.2.3: - version "0.2.5" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.5.tgz#db003ac2671e62ebd6ece78ea2c2e1b405736e91" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer-to-vinyl@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" - dependencies: - file-type "^3.1.0" - readable-stream "^2.0.2" - uuid "^2.0.1" - vinyl "^1.0.0" - -buffer-xor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0, buffer@^4.9.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtins@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0, camelcase@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000576: - version "1.0.30000578" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000578.tgz#fc4106bda3ca19df4bd9f35e491063f3d498ff31" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -caseless@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.9.0.tgz#b7b65ce6bf1413886539cfd533f0b30effa9cf88" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chai@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" - dependencies: - assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" - dependencies: - ansi-styles "^1.1.0" - escape-string-regexp "^1.0.0" - has-ansi "^0.1.0" - strip-ansi "^0.3.0" - supports-color "^0.2.0" - -cheerio@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chownr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - -cipher-base@^1.0.0, cipher-base@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" - dependencies: - inherits "^2.0.1" - -circular-json@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" - -clap@^1.0.9: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.1.tgz#a8a93e0bfb7581ac199c4f001a5525a724ce696d" - dependencies: - chalk "^1.1.3" - -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.0.3, cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - -clone@^1.0.0, clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" - -cmd-shim@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" - dependencies: - graceful-fs "^4.1.2" - mkdirp "~0.5.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -coa@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -color-convert@^1.3.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.6.0.tgz#7592755faf53938a05b1ea8e5374cab77d6dd190" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@^1.1.2, colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -columnify@~1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - dependencies: - strip-ansi "^3.0.0" - wcwidth "^1.0.0" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -combined-stream@~0.0.4, combined-stream@~0.0.5: - version "0.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" - dependencies: - delayed-stream "0.0.5" - -commander@^2.8.1, commander@^2.9.0, commander@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" - -common-tags@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-0.1.1.tgz#d893486ecc6df22cffe6c393c88c12f71e7e8871" - dependencies: - babel-runtime "^6.6.1" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -compress-commons@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.1.0.tgz#9f4460bb1288564c7473916e0298aa3c320dcadb" - dependencies: - buffer-crc32 "^0.2.1" - crc32-stream "^1.0.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -concurrently@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.1.0.tgz#dc5ef0459090012604756668894c04b434ef90d1" - dependencies: - bluebird "2.9.6" - chalk "0.5.1" - commander "2.6.0" - lodash "^4.5.1" - moment "^2.11.2" - rx "2.3.24" - spawn-default-shell "^1.1.0" - tree-kill "^1.1.0" - -config-chain@~1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -constants-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -content-disposition@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" - -content-type-parser@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" - -content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - -convert-source-map@^1.1.0, convert-source-map@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -crc32-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-1.0.0.tgz#ea155e5e1d738ed3778438ffe92ffe2a141aeb3f" - dependencies: - buffer-crc32 "^0.2.1" - readable-stream "^2.0.0" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^1.0.0" - sha.js "^2.3.6" - -create-hmac@^1.1.0, create-hmac@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" - dependencies: - create-hash "^1.1.0" - inherits "^2.0.1" - -cross-env@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-3.1.3.tgz#58cd8231808f50089708b091f7dd37275a8e8154" - dependencies: - cross-spawn "^3.0.1" - -cross-spawn@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-unzip@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/cross-unzip/-/cross-unzip-0.0.2.tgz#5183bc47a09559befcf98cc4657964999359372f" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - -crypto-browserify@~3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" - dependencies: - pbkdf2-compat "2.0.1" - ripemd160 "0.2.0" - sha.js "2.2.6" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.25.0.tgz#c3febc8ce28f4c83576b6b13707f47f90c390223" - dependencies: - babel-code-frame "^6.11.0" - css-selector-tokenizer "^0.6.0" - cssnano ">=2.6.1 <4" - loader-utils "~0.2.2" - lodash.camelcase "^3.0.1" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" - source-list-map "^0.1.4" - -css-modules-require-hook@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/css-modules-require-hook/-/css-modules-require-hook-4.0.5.tgz#10ffb3161bd7518b25ba50cc65a940f26a1cc39d" - dependencies: - debug "^2.2.0" - generic-names "^1.0.1" - glob-to-regexp "^0.1.0" - icss-replace-symbols "^1.0.2" - in-publish "^2.0.0" - lodash "^4.3.0" - postcss "^5.0.19" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-parser "^1.1.0" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.1" - seekout "^1.0.1" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - dependencies: - css "^2.0.0" - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz#6445f582c7930d241dcc5007a43d6fcb8f073152" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-value@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" - -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -css@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" - dependencies: - inherits "^2.0.1" - source-map "^0.1.38" - source-map-resolve "^0.3.0" - urix "^0.1.0" - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -"cssnano@>=2.6.1 <4": - version "3.8.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.8.0.tgz#bb90ac5292f42b679d9a05f6da0e9697556bb80d" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.2.1.tgz#51fbb5347e50e81e6ed51668a48490ae6fe2afe2" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3" - -"cssstyle@>= 0.2.36 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - dependencies: - cssom "0.3.x" - -ctype@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" - -cuint@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - -damerau-levenshtein@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" - -dashdash@^1.12.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -dateformat@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.0.tgz#3912dc55d7167fc3af17d2b85c13f93deaedaa43" - dependencies: - ms "0.7.2" - -debug@~2.2.0, debug@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -debuglog@*, debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decompress-tar@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" - dependencies: - is-tar "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-tarbz2@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" - dependencies: - is-bzip2 "^1.0.0" - object-assign "^2.0.0" - seek-bzip "^1.0.3" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-targz@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" - dependencies: - is-gzip "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-unzip@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" - dependencies: - is-zip "^1.0.0" - read-all-stream "^3.0.0" - stat-mode "^0.2.0" - strip-dirs "^1.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - yauzl "^2.2.1" - -decompress-zip@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.0.tgz#ae3bcb7e34c65879adfe77e19c30f86602b4bdb0" - dependencies: - binary "^0.3.0" - graceful-fs "^4.1.3" - mkpath "^0.1.0" - nopt "^3.0.1" - q "^1.1.2" - readable-stream "^1.1.8" - touch "0.0.3" - -decompress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" - dependencies: - buffer-to-vinyl "^1.0.0" - concat-stream "^1.4.6" - decompress-tar "^3.0.0" - decompress-tarbz2 "^3.0.0" - decompress-targz "^3.0.0" - decompress-unzip "^3.0.0" - stream-combiner2 "^1.1.1" - vinyl-assign "^1.0.1" - vinyl-fs "^2.2.0" - -deep-diff@0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.4.tgz#aac5c39952236abe5f037a2349060ba01b00ae48" - -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - dependencies: - type-detect "0.1.1" - -deep-equal@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -deepmerge@~0.2.7: - version "0.2.10" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-0.2.10.tgz#8906bf9e525a4fbf1b203b2afcb4640249821219" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - dependencies: - clone "^1.0.2" - -define-properties@^1.1.1, define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2, del@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delayed-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-file@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" - dependencies: - fs-exists-sync "^0.1.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -dev-null@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dev-null/-/dev-null-0.1.1.tgz#5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818" - -devtron@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/devtron/-/devtron-1.4.0.tgz#b5e748bd6e95bbe70bfcc68aae6fe696119441e1" - dependencies: - accessibility-developer-tools "^2.11.0" - highlight.js "^9.3.0" - humanize-plus "^1.8.1" - -dezalgo@^1.0.0, dezalgo@^1.0.1, dezalgo@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - dependencies: - asap "^2.0.0" - wrappy "1" - -diff@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@1.3.x: - version "1.3.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -dom-serializer@~0.1.0, dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -domelementtype@^1.3.0, domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" - -duplexify@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" - dependencies: - end-of-stream "1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -editor@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -ejs@^2.3.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.2.tgz#21444ba09386f0c65b6eafb96a3d51bcb3be80d1" - -electron-chromedriver@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/electron-chromedriver/-/electron-chromedriver-1.4.0.tgz#8e3fad1113288e9988a193eab279e36c2cd32103" - dependencies: - decompress "^3.0.0" - mkdirp "^0.5.1" - request "^2.65.0" - -electron-debug@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/electron-debug/-/electron-debug-1.1.0.tgz#050a9c3f906fffc2492510cf8ac31d0f32a579e1" - dependencies: - electron-is-dev "^0.1.0" - electron-localshortcut "^0.6.0" - -electron-devtools-installer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.0.1.tgz#d52dcb3a430a95b771dc01d8deb13fcbdaa8d13c" - dependencies: - "7zip" "0.0.6" - cross-unzip "0.0.2" - request "^2.72.0" - rimraf "^2.5.2" - semver "^5.3.0" - -electron-download@^3.0.0, electron-download@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.0.1.tgz#27045028ee78b3b3dca9fdb35d4bb1262afa4d29" - dependencies: - debug "^2.2.0" - fs-extra "^0.30.0" - home-path "^1.0.1" - minimist "^1.2.0" - nugget "^2.0.0" - path-exists "^2.1.0" - rc "^1.1.2" - semver "^5.3.0" - sumchecker "^1.2.0" - -electron-is-dev@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.1.2.tgz#8a1043e32b3a1da1c3f553dce28ce764246167e3" - -electron-localshortcut@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-0.6.1.tgz#c4e268c38a6e42f40de5618fc906d1ed608f11aa" - -electron-osx-sign@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.3.2.tgz#88fa7d6ebadb5d9c79368b96491a0d8c4630146e" - dependencies: - debug "^2.2.0" - minimist "^1.1.1" - run-series "^1.1.1" - -electron-packager@^8.1.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-8.2.0.tgz#b5392816ecf927d6a41b7fb29f063e7dbd8d9818" - dependencies: - asar "^0.12.3" - debug "^2.2.0" - electron-download "^3.0.0" - electron-osx-sign "^0.3.0" - extract-zip "^1.0.3" - fs-extra "^0.30.0" - get-package-info "^1.0.0" - minimist "^1.1.1" - plist "^2.0.0" - rcedit "^0.7.0" - resolve "^1.1.6" - run-series "^1.1.1" - sanitize-filename "^1.6.0" - semver "^5.3.0" - -electron-rebuild@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.3.0.tgz#46fe6eda2fd9c05a74a9f207ad03adc97136de43" - dependencies: - babel-runtime "^5.8.20" - glob "^6.0.3" - lodash "^3.10.1" - ncp "^2.0.0" - npm "^3.5.3" - nslog "^3.0.0" - promise "^7.1.1" - rimraf "^2.5.0" - yargs "^3.31.0" - -electron@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/electron/-/electron-1.4.5.tgz#829c4884d641d88398805a7f94a37ec432a00bf3" - dependencies: - electron-download "^3.0.1" - extract-zip "^1.0.3" - -elliptic@^6.0.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - inherits "^2.0.1" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" - dependencies: - once "~1.3.0" - -end-of-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" - dependencies: - once "~1.3.0" - -enhanced-resolve@^2.2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz#a115c32504b6302e85a76269d7a57ccdd962e359" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.3.0" - object-assign "^4.0.1" - tapable "^0.2.3" - -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -enzyme@^2.4.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.5.1.tgz#d7c8e2352c04c27fcf2523fb17bc7e0569352743" - dependencies: - cheerio "^0.22.0" - is-subset "^0.1.1" - lodash "^4.15.0" - object-is "^1.0.1" - object.assign "^4.0.4" - object.values "^1.0.3" - -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" - dependencies: - stackframe "^0.3.1" - -es-abstract@^1.3.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.0" - is-callable "^1.1.3" - is-regex "^1.0.3" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: - version "0.10.12" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" - dependencies: - es6-iterator "2" - es6-symbol "~3.1" - -es6-iterator@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" - dependencies: - d "^0.1.1" - es5-ext "^0.10.7" - es6-symbol "3" - -es6-map@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-set "~0.1.3" - es6-symbol "~3.1.0" - event-emitter "~0.3.4" - -es6-promise@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - -es6-set@^0.1.4, es6-set@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-iterator "2" - es6-symbol "3" - event-emitter "~0.3.4" - -es6-symbol@^3.0.2, es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - -es6-weak-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" - dependencies: - d "^0.1.1" - es5-ext "^0.10.8" - es6-iterator "2" - es6-symbol "3" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.6.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-airbnb-base@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-8.0.0.tgz#c5e958a469ab8af76aff068b43d784e5afe74ca7" - -eslint-config-airbnb@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-12.0.0.tgz#ab282b756a25f03d04ac264c24d673a08a803270" - dependencies: - eslint-config-airbnb-base "^8.0.0" - -eslint-formatter-pretty@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-formatter-pretty/-/eslint-formatter-pretty-1.1.0.tgz#ab4d06da02fed8c13ae9f0dc540a433ef7ed6f5e" - dependencies: - ansi-escapes "^1.4.0" - chalk "^1.1.3" - log-symbols "^1.0.2" - plur "^2.1.2" - string-width "^2.0.0" - -eslint-import-resolver-node@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" - dependencies: - debug "^2.2.0" - object-assign "^4.0.1" - resolve "^1.1.6" - -eslint-import-resolver-webpack@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.6.0.tgz#cfa48c727b633eb523e29ef019750b2106d0f609" - dependencies: - array-find "^1.0.0" - debug "^2.2.0" - enhanced-resolve "~0.9.0" - find-root "^0.1.1" - interpret "^1.0.0" - is-absolute "^0.2.3" - lodash.get "^3.7.0" - node-libs-browser "^1.0.0" - object-assign "^4.1.0" - resolve "^1.1.7" - semver "^5.3.0" - -eslint-loader@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.6.1.tgz#96c47c812772eeb077e3a81681818e671a2cabf5" - dependencies: - find-cache-dir "^0.1.1" - loader-utils "^0.2.7" - object-assign "^4.0.1" - object-hash "^1.1.4" - -eslint-plugin-flowtype-errors@^1.3.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype-errors/-/eslint-plugin-flowtype-errors-1.5.0.tgz#e8031f25b2af4a6bd266d9f19abe28ca51cd7d2b" - dependencies: - babel-plugin-transform-runtime "^6.15.0" - flow-bin "^0.33.0" - q "^1.4.1" - ramda "^0.22.1" - shelljs "^0.7.4" - slash "^1.0.0" - -eslint-plugin-import@1.16.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-1.16.0.tgz#b2fa07ebcc53504d0f2a4477582ec8bff1871b9f" - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.2.0" - doctrine "1.3.x" - es6-map "^0.1.3" - es6-set "^0.1.4" - eslint-import-resolver-node "^0.2.0" - has "^1.0.1" - lodash.cond "^4.3.0" - lodash.endswith "^4.0.1" - lodash.find "^4.3.0" - lodash.findindex "^4.3.0" - minimatch "^3.0.3" - object-assign "^4.0.1" - pkg-dir "^1.0.0" - pkg-up "^1.0.0" - -eslint-plugin-jsx-a11y@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.2.3.tgz#4e35cb71b8a7db702ac415c806eb8e8d9ea6c65d" - dependencies: - damerau-levenshtein "^1.0.0" - jsx-ast-utils "^1.0.0" - object-assign "^4.0.1" - -eslint-plugin-mocha@^4.6.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-4.7.0.tgz#69262362f4ec69ae5849908824f325b8d465e7f3" - dependencies: - ramda "^0.22.1" - -eslint-plugin-promise@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-2.0.1.tgz#a9759cefa5e38ab11bb2ef65a04ef042309aa0a4" - -eslint-plugin-react@^6.3.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.6.0.tgz#91ceecefa8a22d8f5d23ef9a839516a7d9fa63a1" - dependencies: - doctrine "^1.2.2" - jsx-ast-utils "^1.3.3" - -eslint@^3.7.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.9.1.tgz#5a8597706fc6048bc6061ac754d4a211d28f4f5b" - dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - escope "^3.6.0" - espree "^3.3.1" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.1.5" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -espree@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" - dependencies: - acorn "^4.0.1" - acorn-jsx "^3.0.0" - -esprima@^2.6.0, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esrecurse@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" - dependencies: - estraverse "~4.1.0" - object-assign "^4.0.1" - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -estraverse@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" - -event-emitter@~0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" - dependencies: - d "~0.1.1" - es5-ext "~0.10.7" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" - dependencies: - create-hash "^1.1.1" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expand-tilde@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" - dependencies: - os-homedir "^1.0.1" - -express@^4.14.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" - dependencies: - accepts "~1.3.3" - array-flatten "1.1.1" - content-disposition "0.5.1" - content-type "~1.0.2" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "~2.2.0" - depd "~1.1.0" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - finalhandler "0.5.0" - fresh "0.3.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.1" - path-to-regexp "0.1.7" - proxy-addr "~1.1.2" - qs "6.2.0" - range-parser "~1.2.0" - send "0.14.1" - serve-static "~1.11.1" - type-is "~1.6.13" - utils-merge "1.0.0" - vary "~1.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0, extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -external-editor@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" - dependencies: - extend "^3.0.0" - spawn-sync "^1.0.15" - tmp "^0.0.29" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extract-text-webpack-plugin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c" - dependencies: - async "^1.5.0" - loader-utils "^0.2.3" - webpack-sources "^0.1.0" - -extract-zip@^1.0.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" - dependencies: - concat-stream "1.5.0" - debug "0.7.4" - mkdirp "0.5.0" - yauzl "2.4.1" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fancy-log@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.2.0.tgz#d5a51b53e9ab22ca07d558f2b67ae55fdb5fcbd8" - dependencies: - chalk "^1.1.1" - time-stamp "^1.0.0" - -fast-levenshtein@~2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -fbjs-scripts@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.7.1.tgz#4f115e218e243e3addbf0eddaac1e3c62f703fac" - dependencies: - babel-core "^6.7.2" - babel-preset-fbjs "^1.0.0" - core-js "^1.0.0" - cross-spawn "^3.0.1" - gulp-util "^3.0.4" - object-assign "^4.0.1" - semver "^5.1.0" - through2 "^2.0.0" - -fbjs@^0.8.4: - version "0.8.5" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.5.tgz#f69ba8a876096cb1b9bffe4d7c1e71c19d39d008" - dependencies: - core-js "^1.0.0" - immutable "^3.7.6" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - ua-parser-js "^0.7.9" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-type@^3.1.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - -filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -finalhandler@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - statuses "~1.3.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-node-modules@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-1.0.4.tgz#b6deb3cccb699c87037677bcede2c5f5862b2550" - dependencies: - findup-sync "0.4.2" - merge "^1.2.0" - -find-root@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.0.0.tgz#71e6dc2dad9222143cfc0fa5de7ab739e7320c05" - dependencies: - path-exists "^2.0.0" - -findup-sync@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" - dependencies: - detect-file "^0.1.0" - is-glob "^2.0.1" - micromatch "^2.3.7" - resolve-dir "^0.1.0" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - -flat-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" - dependencies: - circular-json "^0.3.0" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -flow-bin@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.33.0.tgz#ef011eace7a6100f1ae08b852db78279032b8750" - -font-awesome@^4.6.3: - version "4.7.0" - resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" - -for-in@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" - -for-own@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" - dependencies: - for-in "^0.1.5" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.0, forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.2.0.tgz#26f8bc26da6440e299cbdcfb69035c4f77a6e466" - dependencies: - async "~0.9.0" - combined-stream "~0.0.4" - mime-types "~2.0.3" - -form-data@~1.0.0-rc4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" - dependencies: - async "^2.0.1" - combined-stream "^1.0.5" - mime-types "^2.1.11" - -form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.11" - -form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -formatio@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" - dependencies: - samsam "~1.1" - -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" - -fresh@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" - -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@0.26.7: - version "0.26.7" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-vacuum@~1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.9.tgz#4f90193ab8ea02890995bcd4e804659a5d366b2d" - dependencies: - graceful-fs "^4.1.2" - path-is-inside "^1.0.1" - rimraf "^2.5.2" - -fs-write-stream-atomic@~1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.8.tgz#e49aaddf288f87d46ff9e882f216a13abc40778b" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.0.15" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@^1.0.0, fstream-ignore@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream-npm@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fstream-npm/-/fstream-npm-1.2.0.tgz#d2c3c89101346982d64e57091c38487bda916fce" - dependencies: - fstream-ignore "^1.0.0" - inherits "2" - -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.0.2, function-bind@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - -gauge@~1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93" - dependencies: - ansi "^0.3.0" - has-unicode "^2.0.0" - lodash.pad "^4.1.0" - lodash.padend "^4.1.0" - lodash.padstart "^4.1.0" - -gauge@~2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-color "^0.1.7" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -generic-names@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.2.tgz#e25b7feceb5b5a8f28f5f972a7ccfe57e562adcd" - dependencies: - loader-utils "^0.2.16" - -get-package-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" - dependencies: - bluebird "^3.1.1" - debug "^2.2.0" - lodash.get "^4.0.0" - read-pkg-up "^2.0.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.0.1.tgz#60021327cc963ddc3b5f085764f500479ecd82ff" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - -glob-to-regexp@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.1.0.tgz#e0369d426578fd456d47dc23b09de05c1da9ea5d" - -glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.0, glob@^6.0.3, glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" - dependencies: - global-prefix "^0.1.4" - is-windows "^0.2.0" - -global-prefix@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.4.tgz#05158db1cde2dd491b455e290eb3ab8bfc45c6e1" - dependencies: - ini "^1.3.4" - is-windows "^0.2.0" - osenv "^0.1.3" - which "^1.2.10" - -global@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df" - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.0.0, globals@^9.2.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.12.0.tgz#992ce90828c3a55fa8f16fada177adb64664cf9d" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -glogg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" - dependencies: - sparkles "^1.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~4.1.9: - version "4.1.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growl@1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" - -gulp-sourcemaps@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" - dependencies: - convert-source-map "^1.1.1" - graceful-fs "^4.1.2" - strip-bom "^2.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - -gulp-util@^3.0.4: - version "3.0.7" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.7.tgz#78925c4b8f8b49005ac01a011c557e6218941cbb" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^1.0.11" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - -har-validator@^1.4.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-1.8.0.tgz#d83842b0eb4c435960aeb108a067a3aa94c0eeb2" - dependencies: - bluebird "^2.9.30" - chalk "^1.0.0" - commander "^2.8.1" - is-my-json-valid "^2.12.0" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" - dependencies: - ansi-regex "^0.2.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-color@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - -has-unicode@^2.0.0, has-unicode@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash.js@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" - dependencies: - inherits "^2.0.1" - -hawk@~2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-2.3.1.tgz#1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -highlight.js@^9.3.0: - version "9.8.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.8.0.tgz#38eeef40cd45eaddbec8c9e5238fb7a783a3b685" - -history@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/history/-/history-2.1.2.tgz#4aa2de897a0e4867e4539843be6ecdb2986bfdec" - dependencies: - deep-equal "^1.0.0" - invariant "^2.0.0" - query-string "^3.0.0" - warning "^2.0.0" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.1.0.tgz#4a4557460f69842ed463aa00628cc26d2683afa7" - -hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -home-path@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.3.tgz#9ece59fec3f032e6d10b5434fee264df4c2de32f" - -hosted-git-info@^2.1.4, hosted-git-info@^2.1.5, hosted-git-info@~2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-encoding-sniffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" - -htmlparser2@^3.9.1: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -http-browserify@^1.3.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" - dependencies: - Base64 "~0.2.0" - inherits "~2.0.1" - -http-errors@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211" - dependencies: - inherits "2.0.1" - setprototypeof "1.0.1" - statuses ">= 1.3.0 < 2" - -http-signature@~0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" - dependencies: - asn1 "0.1.11" - assert-plus "^0.1.5" - ctype "0.5.3" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" - -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" - -humanize-plus@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/humanize-plus/-/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030" - -iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4.13: - version "0.4.13" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" - -icss-replace-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -iferr@^0.1.5, iferr@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -ignore@^3.1.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" - -immutable@^3.7.6: - version "3.8.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" - -imurmurhash@*, imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4, inflight@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0, ini@~1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -init-package-json@~1.9.4: - version "1.9.4" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.9.4.tgz#b4053d0b40f0cf842a41966937cb3dc0f534e856" - dependencies: - glob "^6.0.0" - npm-package-arg "^4.0.0" - promzard "^0.3.0" - read "~1.0.1" - read-package-json "1 || 2" - semver "2.x || 3.x || 4 || 5" - validate-npm-package-license "^3.0.1" - validate-npm-package-name "^2.0.1" - -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -inquirer@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.2.tgz#f725c1316f0020e7f3d538c8c5ad0c2732c1c451" - dependencies: - ansi-escapes "^1.1.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - external-editor "^1.1.0" - figures "^1.3.5" - lodash "^4.3.0" - mute-stream "0.0.6" - pinkie-promise "^2.0.0" - run-async "^2.2.0" - rx "^4.1.0" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - -interpret@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" - -interpret@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" - -invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.1.tgz#b097010547668c7e337028ebe816ebe36c8a8d54" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ipaddr.js@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" - -irregular-plurals@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" - -is-absolute-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.0.0.tgz#9c4b20b0e5c0cbef9a479a367ede6f991679f359" - -is-absolute@^0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" - dependencies: - is-relative "^0.1.0" - -is-absolute@^0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" - dependencies: - is-relative "^0.2.1" - is-windows "^0.2.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.0.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-bzip2@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-gzip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" - -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.0, is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-natural-number@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" - -is-number@^2.0.2, is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-regex@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" - -is-relative@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" - -is-relative@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" - dependencies: - is-unc-path "^0.1.1" - -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-tar@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-unc-path@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.1.tgz#ab2533d77ad733561124c3dc0f5cd8b90054c86b" - dependencies: - unc-path-regex "^0.1.0" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - -is-windows@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - -is-zip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" - -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isemail@2.x.x: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" - -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.1, isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -items@2.x.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/items/-/items-2.1.1.tgz#8bd16d9c83b19529de5aea321acaada78364a198" - -jju@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -joi@9.0.0-0: - version "9.0.0-0" - resolved "https://registry.yarnpkg.com/joi/-/joi-9.0.0-0.tgz#a7ca4219602149ae0da7a7c5ca1d63d3c79e096b" - dependencies: - hoek "4.x.x" - isemail "2.x.x" - items "2.x.x" - moment "2.x.x" - topo "2.x.x" - -js-base64@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" - -js-tokens@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" - -js-yaml@^3.5.1, js-yaml@~3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -jsdom@^9.6.0: - version "9.8.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.8.3.tgz#fde29c109c32a1131e0b6c65914e64198f97c370" - dependencies: - abab "^1.0.0" - acorn "^2.4.0" - acorn-globals "^1.0.4" - array-equal "^1.0.0" - content-type-parser "^1.0.1" - cssom ">= 0.3.0 < 0.4.0" - cssstyle ">= 0.2.36 < 0.3.0" - escodegen "^1.6.1" - html-encoding-sniffer "^1.0.1" - iconv-lite "^0.4.13" - nwmatcher ">= 1.3.7 < 2.0.0" - parse5 "^1.5.1" - request "^2.55.0" - sax "^1.1.4" - symbol-tree ">= 3.1.0 < 4.0.0" - tough-cookie "^2.3.1" - webidl-conversions "^3.0.1" - whatwg-encoding "^1.0.1" - whatwg-url "^3.0.0" - xml-name-validator ">= 2.0.1 < 3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" - -json-parse-helpfulerror@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" - dependencies: - jju "^1.1.0" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" - -jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.3.tgz#ccfdbe0320ba03f7a1fc4e67ceaf7e2cc0169721" - dependencies: - acorn-jsx "^3.0.1" - object-assign "^4.1.0" - -kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" - dependencies: - is-buffer "^1.0.2" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0, load-json-file@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.7, loader-utils@~0.2.2: - version "0.2.16" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -lockfile@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.2.tgz#97e1990174f696cbe0a3acd58a43b84aa30c7c83" - -lodash-es@^4.2.1: - version "4.16.6" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.16.6.tgz#c8552faedaa4d1d591de8da9b3980ef1c52efa08" - -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecallback@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" - dependencies: - lodash._baseisequal "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.isarray "^3.0.0" - lodash.pairs "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._basecreate@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" - -lodash._baseeach@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" - dependencies: - lodash.keys "^3.0.0" - -lodash._basefind@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae" - -lodash._basefindindex@^3.0.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f" - -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - -lodash._baseget@^3.0.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" - -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - -lodash._baseisequal@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" - dependencies: - lodash.isarray "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - -lodash._baseuniq@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" - dependencies: - lodash._createset "~4.0.0" - lodash._root "~3.0.0" - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - -lodash._bindcallback@*, lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" - dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - -lodash._createcompounder@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" - dependencies: - lodash.deburr "^3.0.0" - lodash.words "^3.0.0" - -lodash._createset@~4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" - -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash._root@^3.0.0, lodash._root@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash._topath@^3.0.0: - version "3.8.1" - resolved "https://registry.yarnpkg.com/lodash._topath/-/lodash._topath-3.8.1.tgz#3ec5e2606014f4cb97f755fe6914edd8bfc00eac" - dependencies: - lodash.isarray "^3.0.0" - -lodash.assign@^4.0.3, lodash.assign@^4.0.6: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - -lodash.camelcase@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" - dependencies: - lodash._createcompounder "^3.0.0" - -lodash.clonedeep@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - -lodash.create@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" - dependencies: - lodash._baseassign "^3.0.0" - lodash._basecreate "^3.0.0" - lodash._isiterateecall "^3.0.0" - -lodash.deburr@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-3.2.0.tgz#6da8f54334a366a7cf4c4c76ef8d80aa1b365ed5" - dependencies: - lodash._root "^3.0.0" - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - -lodash.endswith@^4.0.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09" - -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - -lodash.find@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad" - dependencies: - lodash._basecallback "^3.0.0" - lodash._baseeach "^3.0.0" - lodash._basefind "^3.0.0" - lodash._basefindindex "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash.find@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" - -lodash.findindex@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.foreach@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-3.0.3.tgz#6fd7efb79691aecd67fdeac2761c98e701d6c39a" - dependencies: - lodash._arrayeach "^3.0.0" - lodash._baseeach "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - -lodash.get@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-3.7.0.tgz#3ce68ae2c91683b281cc5394128303cbf75e691f" - dependencies: - lodash._baseget "^3.0.0" - lodash._topath "^3.0.0" - -lodash.get@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - -lodash.indexof@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isequal@^4.0.0, lodash.isequal@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.4.0.tgz#6295768e98e14dc15ce8d362ef6340db82852031" - -lodash.isplainobject@^3.0.0, lodash.isplainobject@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" - dependencies: - lodash._basefor "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.keysin "^3.0.0" - -lodash.istypedarray@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.keysin@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" - dependencies: - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - -lodash.merge@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._createassigner "^3.0.0" - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - lodash.isplainobject "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - lodash.keysin "^3.0.0" - lodash.toplainobject "^3.0.0" - -lodash.merge@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - -lodash.pad@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" - -lodash.padend@^4.1.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" - -lodash.padstart@^4.1.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - -lodash.pairs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" - dependencies: - lodash.keys "^3.0.0" - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.pickby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - -lodash.restparam@*, lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - -lodash.toplainobject@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keysin "^3.0.0" - -lodash.union@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - -lodash.uniq@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash.without@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" - -lodash.words@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.words/-/lodash.words-3.2.0.tgz#4e2a8649bc08745b17c695b1a3ce8fee596623b3" - dependencies: - lodash._root "^3.0.0" - -lodash@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@^4.8.0: - version "4.16.6" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" - -lodash@4.11.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.11.1.tgz#a32106eb8e2ec8e82c241611414773c9df15f8bc" - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - dependencies: - chalk "^1.0.0" - -lolex@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" - dependencies: - js-tokens "^2.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.1.tgz#1343955edaf2e37d9b9e7ee7241e27c4b9fb72be" - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -math-expression-evaluator@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.14.tgz#39511771ed9602405fba9affff17eb4d2a3843ab" - dependencies: - lodash.indexof "^4.0.5" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - -memory-fs@^0.3.0, memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.1.0, meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.0.tgz#9cfd156fef35421e2b5403ce11dc6eb1962b026e" - dependencies: - readable-stream "^2.0.1" - -merge@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.7: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" - -mime-db@~1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" - -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: - version "2.1.12" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" - dependencies: - mime-db "~1.24.0" - -mime-types@~2.0.1, mime-types@~2.0.3: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" - dependencies: - mime-db "~1.12.0" - -mime@^1.3.4, mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, "minimatch@2 || 3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mkdirp@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" - dependencies: - minimist "0.0.8" - -mkpath@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" - -mksnapshot@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.0.tgz#32ea984ad6f532324c6a3fae6400876b85828407" - dependencies: - decompress-zip "0.3.0" - fs-extra "0.26.7" - request "2.55.0" - -mocha@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.1.2.tgz#51f93b432bf7e1b175ffc22883ccd0be32dba6b5" - dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.2.0" - diff "1.4.0" - escape-string-regexp "1.0.5" - glob "7.0.5" - growl "1.9.2" - json3 "3.3.2" - lodash.create "3.1.1" - mkdirp "0.5.1" - supports-color "3.1.2" - -moment@^2.11.2, moment@2.x.x: - version "2.15.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" - -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - dependencies: - duplexer2 "0.0.2" - -mute-stream@~0.0.4, mute-stream@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" - -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - -nan@^2.0.0, nan@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -ncp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -node-fetch@^1.0.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-gyp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.4.0.tgz#dda558393b3ecbbe24c9e6b8703c71194c63fa36" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - minimatch "^3.0.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3" - osenv "0" - path-array "^1.0.0" - request "2" - rimraf "2" - semver "2.x || 3.x || 4 || 5" - tar "^2.0.0" - which "1" - -node-libs-browser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" - dependencies: - assert "^1.1.1" - browserify-zlib "~0.1.4" - buffer "^4.9.0" - console-browserify "^1.1.0" - constants-browserify "0.0.1" - crypto-browserify "~3.2.6" - domain-browser "^1.1.1" - events "^1.0.0" - http-browserify "^1.3.2" - https-browserify "0.0.0" - os-browserify "~0.1.2" - path-browserify "0.0.0" - process "^0.11.0" - punycode "^1.2.4" - querystring-es3 "~0.2.0" - readable-stream "^1.1.13" - stream-browserify "^1.0.0" - string_decoder "~0.10.25" - timers-browserify "^1.0.1" - tty-browserify "0.0.0" - url "~0.10.1" - util "~0.10.3" - vm-browserify "0.0.4" - -node-libs-browser@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.0.0.tgz#ff8ad6c2cfa78043bdd0091ec07f0aaa581620fc" - dependencies: - assert "^1.1.1" - browserify-zlib "~0.1.4" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - http-browserify "^1.3.2" - https-browserify "0.0.1" - os-browserify "~0.2.0" - path-browserify "0.0.0" - process "~0.11.0" - punycode "^1.2.4" - querystring-es3 "~0.2.0" - readable-stream "^2.0.5" - stream-browserify "^2.0.1" - string_decoder "~0.10.25" - timers-browserify "^1.0.1" - tty-browserify "0.0.0" - url "~0.11.0" - util "~0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.6.29: - version "0.6.31" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" - dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.0" - rc "~1.1.6" - request "^2.75.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-uuid@~1.4.0, node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - -noop2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" - -nopt@^3.0.1, nopt@~3.0.6, "nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-git-url@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/normalize-git-url/-/normalize-git-url-3.0.2.tgz#8e5f14be0bdaedb73e07200310aa416c27350fc4" - -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, "normalize-package-data@~1.0.1 || ^2.0.0", normalize-package-data@~2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.8.0.tgz#a9550b079aa3523c85d78df24eef1959fce359ab" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-cache-filename@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" - -npm-install-checks@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" - dependencies: - semver "^2.3.0 || 3.x || 4 || 5" - -npm-install-package@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/npm-install-package/-/npm-install-package-1.1.0.tgz#f9fc1f84c2d31f6105631e0b5f5f280d1151d97e" - dependencies: - noop2 "^2.0.0" - -"npm-package-arg@^3.0.0 || ^4.0.0", npm-package-arg@^4.0.0, npm-package-arg@^4.1.1, npm-package-arg@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.2.0.tgz#809bc61cabf54bd5ff94f6165c89ba8ee88c115c" - dependencies: - hosted-git-info "^2.1.5" - semver "^5.1.0" - -npm-registry-client@~7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-7.2.1.tgz#c792266b088cc313f8525e7e35248626c723db75" - dependencies: - concat-stream "^1.5.2" - graceful-fs "^4.1.6" - normalize-package-data "~1.0.1 || ^2.0.0" - npm-package-arg "^3.0.0 || ^4.0.0" - once "^1.3.3" - request "^2.74.0" - retry "^0.10.0" - semver "2 >=2.2.1 || 3.x || 4 || 5" - slide "^1.1.3" - optionalDependencies: - npmlog "~2.0.0 || ~3.1.0" - -npm-user-validate@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-0.1.5.tgz#52465d50c2d20294a57125b996baedbf56c5004b" - -npm@^3.5.3: - version "3.10.10" - resolved "https://registry.yarnpkg.com/npm/-/npm-3.10.10.tgz#5b1d577e4c8869d6c8603bc89e9cd1637303e46e" - dependencies: - abbrev "~1.0.9" - ansicolors "~0.3.2" - ansistyles "~0.1.3" - aproba "~1.0.4" - archy "~1.0.0" - asap "~2.0.5" - chownr "~1.0.1" - cmd-shim "~2.0.2" - columnify "~1.5.4" - config-chain "~1.1.11" - dezalgo "~1.0.3" - editor "~1.0.0" - fs-vacuum "~1.2.9" - fs-write-stream-atomic "~1.0.8" - fstream "~1.0.10" - fstream-npm "~1.2.0" - glob "~7.1.0" - graceful-fs "~4.1.9" - has-unicode "~2.0.1" - hosted-git-info "~2.1.5" - iferr "~0.1.5" - inflight "~1.0.5" - inherits "~2.0.3" - ini "~1.3.4" - init-package-json "~1.9.4" - lockfile "~1.0.2" - lodash._baseuniq "~4.6.0" - lodash.clonedeep "~4.5.0" - lodash.union "~4.6.0" - lodash.uniq "~4.5.0" - lodash.without "~4.4.0" - mkdirp "~0.5.1" - node-gyp "~3.4.0" - nopt "~3.0.6" - normalize-git-url "~3.0.2" - normalize-package-data "~2.3.5" - npm-cache-filename "~1.0.2" - npm-install-checks "~3.0.0" - npm-package-arg "~4.2.0" - npm-registry-client "~7.2.1" - npm-user-validate "~0.1.5" - npmlog "~4.0.0" - once "~1.4.0" - opener "~1.4.2" - osenv "~0.1.3" - path-is-inside "~1.0.2" - read "~1.0.7" - read-cmd-shim "~1.0.1" - read-installed "~4.0.3" - read-package-json "~2.0.4" - read-package-tree "~5.1.5" - readable-stream "~2.1.5" - realize-package-specifier "~3.0.3" - request "~2.75.0" - retry "~0.10.0" - rimraf "~2.5.4" - semver "~5.3.0" - sha "~2.0.1" - slide "~1.1.6" - sorted-object "~2.0.1" - strip-ansi "~3.0.1" - tar "~2.2.1" - text-table "~0.2.0" - uid-number "0.0.6" - umask "~1.1.0" - unique-filename "~1.1.0" - unpipe "~1.0.0" - validate-npm-package-name "~2.2.2" - which "~1.2.11" - wrappy "~1.0.2" - write-file-atomic "~1.2.0" - -npmlog@^4.0.0, npmlog@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.6.0" - set-blocking "~2.0.0" - -"npmlog@~2.0.0 || ~3.1.0", "npmlog@0 || 1 || 2 || 3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-3.1.2.tgz#2d46fa874337af9498a2f12bb43d8d0be4a36873" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.6.0" - set-blocking "~2.0.0" - -npmlog@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.3.tgz#020f99351f0c02e399c674ba256e7c4d3b3dd298" - dependencies: - ansi "~0.3.1" - are-we-there-yet "~1.1.2" - gauge "~1.2.5" - -nslog@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/nslog/-/nslog-3.0.0.tgz#9ef7e3a46bde1e757244541cca13ff2b676f7b19" - dependencies: - nan "^2.0.0" - -nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -nugget@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^1.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -"nwmatcher@>= 1.3.7 < 2.0.0": - version "1.3.9" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" - -oauth-sign@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.6.0.tgz#7dbeae44f6ca454e1f168451d630746735813ce3" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-hash@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.5.tgz#bdd844e030d0861b692ca175c6cab6868ec233d7" - -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - -object-keys@^1.0.10, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - -object.assign@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.0" - object-keys "^1.0.10" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.values@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.3.tgz#a7774ba050893fe6a5d5958acd05823e0f426bef" - dependencies: - define-properties "^1.1.1" - es-abstract "^1.3.2" - function-bind "^1.0.2" - has "^1.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.3, once@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.0, once@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - -opener@~1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.2.tgz#b32582080042af8680c389a499175b4c54fff523" - -optimist@^0.6.1, optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - -os-browserify@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" - -os-browserify@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-shim@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.3, osenv@~0.1.3, osenv@0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.3.tgz#83cf05c6d6458fc4d5ac6362ea325d92f2754217" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -parse-asn1@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" - -path-array@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-array/-/path-array-1.0.1.tgz#7e2f0f35f07a2015122b868b7eac0eb2c4fec271" - dependencies: - array-index "^1.0.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^2.0.0, path-exists@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pbkdf2-compat@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" - -pbkdf2@^3.0.3: - version "3.0.9" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" - dependencies: - create-hmac "^1.1.2" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-conf@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b" - dependencies: - find-up "^1.0.0" - load-json-file "^1.1.0" - object-assign "^4.0.1" - symbol "^0.2.1" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pkg-up@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" - dependencies: - find-up "^1.0.0" - -plist@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b" - dependencies: - base64-js "1.1.2" - xmlbuilder "8.2.2" - xmldom "0.1.x" - -plur@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" - dependencies: - irregular-plurals "^1.0.0" - -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.4.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.4.1.tgz#45dce4d4e33b7d967b97a4d937f270ea98d2fe7a" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.1.tgz#5fae3f1a71df3e19cffb37309d1a7dba56c4589c" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.2.tgz#5d72f7d05d11de0a9589e001958067ccae1b4931" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz#ff59b5dec6d586ce2cea183138f55c5876fa9cdc" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.0.10" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.0.10.tgz#54b360be804e7e69a5c7222635247b92a3569e9b" - dependencies: - postcss "^5.0.4" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.0.5.tgz#82d602643b8616a61fb3634d7ede0289836d67f9" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.0.6.tgz#044b1a85ee2f909fc9a1c540f6f74b0e7613f119" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.1.tgz#8fb3fef9a6dd0420d3f6d4353cf1ff73f2b2a341" - dependencies: - postcss "^5.0.4" - -postcss-modules-local-by-default@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.1.1.tgz#29a10673fa37d19251265ca2ba3150d9040eb4ce" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-parser/-/postcss-modules-parser-1.1.0.tgz#1797f0e5ca129bbe6120c9d3babd328e8bc7748d" - dependencies: - icss-replace-symbols "^1.0.2" - lodash.foreach "^3.0.3" - postcss "^5.0.10" - -postcss-modules-scope@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.0.2.tgz#ff977395e5e06202d7362290b88b1e8cd049de29" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-values@^1.1.0, postcss-modules-values@^1.1.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.2.2.tgz#f0e7d476fe1ed88c5e4c7f97533a3e772ad94ca1" - dependencies: - icss-replace-symbols "^1.0.2" - postcss "^5.0.14" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.7.tgz#6bd90d0a4bc5a1df22c26ea65c53257dc3829f4e" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.2.tgz#be8b511741fab2dac8e614a2302e9d10267b0771" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.3.1.tgz#024e8e219f52773313408573db9645ba62d2d2fe" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.0.tgz#8f739b938289ef2e48936d7101783e4741ca9bbb" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.1.tgz#fdbf696103b12b0a64060e5610507f410491f7c8" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.5.tgz#46fc0363f01bab6a36a9abb01c229fcc45363094" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.1.1.tgz#ea3fbe656c9738aa8729e2ee96ec2a46089b720f" - dependencies: - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.4, postcss@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.5.tgz#ec428c27dffc7fac65961340a9b022fa4af5f056" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.1.2" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-bytes@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" - dependencies: - get-stdin "^4.0.1" - meow "^3.1.0" - -private@^0.1.6, private@~0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.0, process@~0.11.0: - version "0.11.9" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -promise@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" - dependencies: - asap "~2.0.3" - -promzard@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - dependencies: - read "1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -proxy-addr@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" - dependencies: - forwarded "~0.1.0" - ipaddr.js "1.1.1" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -q@^1.1.2, q@^1.4.1, q@~1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -qs@~2.4.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a" - -qs@~6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -qs@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - -query-string@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-3.0.3.tgz#ae2e14b4d05071d4e9b9eb4873c35b0dcd42e638" - dependencies: - strict-uri-encode "^1.0.0" - -query-string@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@^0.2.0, querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -ramda@^0.22.1: - version "0.22.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.22.1.tgz#031da0c3df417c5b33c96234757eb37033f36a0e" - -randomatic@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" - dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" - -range-parser@^1.0.3, range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -rc@^1.1.2, rc@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~1.0.4" - -rcedit@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-0.7.0.tgz#560b2920165034a135316e6a111f8274b9cec521" - -react-addons-test-utils@^15.3.2: - version "15.3.2" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.3.2.tgz#c09a44f583425a4a9c1b38444d7a6c3e6f0f41f6" - -react-deep-force-update@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz#f911b5be1d2a6fe387507dd6e9a767aa2924b4c7" - -react-dom@^15.3.2: - version "15.3.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" - -react-proxy@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" - dependencies: - lodash "^4.6.1" - react-deep-force-update "^1.0.0" - -react-redux@^4.4.5: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-4.4.5.tgz#f509a2981be2252d10c629ef7c559347a4aec457" - dependencies: - hoist-non-react-statics "^1.0.3" - invariant "^2.0.0" - lodash "^4.2.0" - loose-envify "^1.1.0" - -react-router-redux@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-4.0.7.tgz#9b1fde4e70106c50f47214e12bdd888cfb96e2a6" - -react-router@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-2.8.1.tgz#73e9491f6ceb316d0f779829081863e378ee4ed7" - dependencies: - history "^2.1.2" - hoist-non-react-statics "^1.2.0" - invariant "^2.2.1" - loose-envify "^1.2.0" - warning "^3.0.0" - -react-transform-catch-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz#1b4d4a76e97271896fc16fe3086c793ec88a9eeb" - -react-transform-hmr@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" - dependencies: - global "^4.3.0" - react-proxy "^1.1.7" - -react@^15.3.2: - version "15.3.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e" - dependencies: - fbjs "^0.8.4" - loose-envify "^1.1.0" - object-assign "^4.1.0" - -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - -read-cmd-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" - dependencies: - graceful-fs "^4.1.2" - -read-installed@~4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" - dependencies: - debuglog "^1.0.1" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - semver "2 || 3 || 4 || 5" - slide "~1.1.3" - util-extend "^1.0.1" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-json@^2.0.0, read-package-json@~2.0.4, "read-package-json@1 || 2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.4.tgz#61ed1b2256ea438d8008895090be84b8e799c853" - dependencies: - glob "^6.0.0" - json-parse-helpfulerror "^1.0.2" - normalize-package-data "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-tree@~5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.1.5.tgz#ace7e6381c7684f970aaa98fc7c5d2b666addab6" - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - once "^1.3.0" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read@~1.0.1, read@~1.0.7, read@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - dependencies: - mute-stream "~0.0.4" - -readable-stream@^1.0.27-1, readable-stream@^1.1.13, readable-stream@^1.1.8, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@~2.1.4, readable-stream@~2.1.5, "readable-stream@1 || 2": - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.26: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.0.0, readable-stream@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -realize-package-specifier@~3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/realize-package-specifier/-/realize-package-specifier-3.0.3.tgz#d0def882952b8de3f67eba5e91199661271f41f4" - dependencies: - dezalgo "^1.0.1" - npm-package-arg "^4.1.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - -redbox-react@^1.2.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.3.tgz#63ec9c2cb9c620c46e2b9f8543b4898f1b787e41" - dependencies: - error-stack-parser "^1.3.6" - object-assign "^4.0.1" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.1.tgz#fa02e126e695824263cab91d3a5b0fdc1dd27a9a" - dependencies: - balanced-match "~0.1.0" - -redux-logger@^2.7.0: - version "2.7.4" - resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-2.7.4.tgz#891e5d29e7f111d08b5781a237b9965b5858c7f8" - dependencies: - deep-diff "0.3.4" - -redux-thunk@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.1.0.tgz#c724bfee75dbe352da2e3ba9bc14302badd89a98" - -redux@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d" - dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.2" - -regenerate@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.1.tgz#0300203a5d2fdcf89116dce84275d011f5903f33" - -regenerator-runtime@^0.9.5: - version "0.9.6" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" - -regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - -request@^2.45.0, request@^2.55.0, request@^2.65.0, request@^2.72.0, request@^2.74.0, request@^2.75.0, request@2: - version "2.78.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -request@~2.75.0: - version "2.75.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - bl "~1.1.2" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.0.0" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.2.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -request@2.55.0: - version "2.55.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.55.0.tgz#d75c1cdf679d76bb100f9bffe1fe551b5c24e93d" - dependencies: - aws-sign2 "~0.5.0" - bl "~0.9.0" - caseless "~0.9.0" - combined-stream "~0.0.5" - forever-agent "~0.6.0" - form-data "~0.2.0" - har-validator "^1.4.0" - hawk "~2.3.0" - http-signature "~0.10.0" - isstream "~0.1.1" - json-stringify-safe "~5.0.0" - mime-types "~2.0.1" - node-uuid "~1.4.0" - oauth-sign "~0.6.0" - qs "~2.4.0" - stringstream "~0.0.4" - tough-cookie ">=0.12.0" - tunnel-agent "~0.4.0" - -request@2.74.0: - version "2.74.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - bl "~1.1.2" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~1.0.0-rc4" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.2.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-dir@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" - dependencies: - expand-tilde "^1.2.2" - global-modules "^0.2.3" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-url@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.1.6, resolve@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -retry@^0.10.0, retry@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.0.tgz#649e15ca408422d98318161935e7f7d652d435dd" - -rgb2hex@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.1.0.tgz#ccd55f860ae0c5c4ea37504b958e442d8d12325b" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@^2.5.0, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -ripemd160@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" - -ripemd160@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" - -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - dependencies: - once "^1.3.0" - -run-async@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.2.0.tgz#8783abd83c7bb86f41ee0602fc82404b3bd6e8b9" - dependencies: - is-promise "^2.1.0" - pinkie-promise "^2.0.0" - -run-series@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - -rx@2.3.24: - version "2.3.24" - resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" - -samsam@~1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621" - -samsam@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" - -sanitize-filename@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a" - dependencies: - truncate-utf8-bytes "^1.0.0" - -sax@^1.1.4, sax@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - -seek-bzip@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - dependencies: - commander "~2.8.1" - -seekout@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/seekout/-/seekout-1.0.2.tgz#09ba9f1bd5b46fbb134718eb19a68382cbb1b9c9" - -"semver@^2.3.0 || 3.x || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5": - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -send@0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" - dependencies: - debug "~2.2.0" - depd "~1.1.0" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - fresh "0.3.0" - http-errors "~1.5.0" - mime "1.3.4" - ms "0.7.1" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.0" - -serve-static@~1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.14.1" - -set-blocking@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-1.0.0.tgz#cd5e5d938048df1ac92dfe92e1f16add656f5ec5" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setprototypeof@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e" - -sha.js@^2.3.6: - version "2.4.5" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.5.tgz#27d171efcc82a118b99639ff581660242b506e7c" - dependencies: - inherits "^2.0.1" - -sha.js@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" - -sha@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" - dependencies: - graceful-fs "^4.1.2" - readable-stream "^2.0.2" - -shelljs@^0.7.4, shelljs@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shelljs@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.0.tgz#3f6f2e4965cec565f65ff3861d644f879281a576" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" - -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - dependencies: - string-width "^1.0.1" - -sinon@^1.17.6: - version "1.17.6" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.6.tgz#a43116db59577c8296356afee13fafc2332e58e1" - dependencies: - formatio "1.1.1" - lolex "1.3.2" - samsam "1.1.2" - util ">=0.10.3 <1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - -slide@^1.1.3, slide@^1.1.5, slide@~1.1.3, slide@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -sorted-object@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" - -source-list-map@^0.1.4, source-list-map@~0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" - -source-map-resolve@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" - dependencies: - atob "~1.1.0" - resolve-url "~0.2.1" - source-map-url "~0.3.0" - urix "~0.1.0" - -source-map-support@^0.4.2, source-map-support@^0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" - dependencies: - source-map "^0.5.3" - -source-map-url@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" - -source-map@^0.1.38: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - -source-map@~0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" - -spawn-default-shell@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/spawn-default-shell/-/spawn-default-shell-1.1.0.tgz#095439d44c4b7c0aff56a53929fbaab87878e7c6" - -spawn-sync@^1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" - dependencies: - concat-stream "^1.4.7" - os-shim "^0.1.2" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -spectron@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/spectron/-/spectron-3.4.0.tgz#ff9e54dc34428ec4f99ab1c5efa050b9ad200b31" - dependencies: - dev-null "^0.1.1" - electron-chromedriver "~1.4.0" - request "^2.65.0" - split "^1.0.0" - webdriverio "^4.0.4" - -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - -split@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stackframe@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" - -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - -"statuses@>= 1.3.0 < 2", statuses@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a" - -stream-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" - dependencies: - inherits "~2.0.1" - readable-stream "^1.0.27-1" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string_decoder@~0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" - dependencies: - ansi-regex "^0.2.1" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-dirs@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" - dependencies: - chalk "^1.0.0" - get-stdin "^4.0.1" - is-absolute "^0.1.5" - is-natural-number "^2.0.0" - minimist "^1.1.0" - sum-up "^1.0.1" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -style-loader@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" - dependencies: - loader-utils "^0.2.7" - -sum-up@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" - dependencies: - chalk "^1.0.0" - -sumchecker@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.2.0.tgz#8c79282f6b5d74e7fbcfb49505e50d096c63f38d" - dependencies: - debug "^2.2.0" - es6-promise "^3.2.1" - -supports-color@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0, supports-color@^3.1.2, supports-color@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - dependencies: - has-flag "^1.0.0" - -svgo@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.1.tgz#287320fed972cb097e72c2bb1685f96fe08f8034" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.2.1" - js-yaml "~3.6.1" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -symbol-observable@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" - -"symbol-tree@>= 3.1.0 < 4.0.0": - version "3.1.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.1.4.tgz#02b279348d337debc39694c5c95f882d448a312a" - -symbol@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7" - -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - -tapable@^0.1.8, tapable@~0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - -tapable@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.4.tgz#a7814605089d4ba896c33c7e3566e13dcd194aa5" - -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" - dependencies: - debug "~2.2.0" - fstream "~1.0.10" - fstream-ignore "~1.0.5" - once "~1.3.3" - readable-stream "~2.1.4" - rimraf "~2.5.1" - tar "~2.2.1" - uid-number "~0.0.6" - -tar-stream@^1.1.1, tar-stream@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - -tar@^2.0.0, tar@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -tcomb@^3.2.15: - version "3.2.15" - resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.15.tgz#09e40f447976d1d9c07ff465b8377342a8fe67e1" - -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - -through@^2.3.6, through@2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^0.6.0, through2@^0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through2@^2.0.0, through2@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" - dependencies: - readable-stream "~2.0.0" - xtend "~4.0.0" - -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - -time-stamp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" - -tmp@^0.0.29: - version "0.0.29" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" - dependencies: - os-tmpdir "~1.0.1" - -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - dependencies: - extend-shallow "^2.0.1" - -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - -topo@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" - dependencies: - hoek "4.x.x" - -touch@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d" - dependencies: - nopt "~1.0.10" - -tough-cookie@^2.3.1, tough-cookie@>=0.12.0, tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - -tree-kill@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.1.0.tgz#c963dcf03722892ec59cba569e940b71954d1729" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - dependencies: - utf8-byte-length "^1.0.1" - -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@~0.4.0, tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - -type-is@~1.6.13: - version "1.6.13" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.11" - -typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -ua-parser-js@^0.7.9: - version "0.7.11" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.11.tgz#3741e2dd2fb09251a960f9ef076cd0cc72eaf6a0" - -uglify-js@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uid-number@~0.0.6, uid-number@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -umask@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" - -unc-path-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.0.tgz#33d9679f65022f48988a03fd24e7dcaf8f109eca" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unique-filename@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - dependencies: - imurmurhash "^0.1.4" - -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -urix@^0.1.0, urix@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url@^0.11.0, url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -url@~0.10.1: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - -"util@>=0.10.3 <1", util@~0.10.3, util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" - -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - -validate-npm-package-license@*, validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -validate-npm-package-name@^2.0.1, validate-npm-package-name@~2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz#f65695b22f7324442019a3c7fa39a6e7fd299085" - dependencies: - builtins "0.0.7" - -validator@^5.4.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-5.7.0.tgz#7a87a58146b695ac486071141c0c49d67da05e5c" - -vary@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" - -vendors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -vinyl-assign@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" - dependencies: - object-assign "^4.0.1" - readable-stream "^2.0.0" - -vinyl-fs@^2.2.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "1.6.0" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl@^0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -warning@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901" - dependencies: - loose-envify "^1.0.0" - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - dependencies: - loose-envify "^1.0.0" - -watchpack@^0.2.1: - version "0.2.9" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" - dependencies: - async "^0.9.0" - chokidar "^1.0.0" - graceful-fs "^4.1.2" - -wcwidth@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - dependencies: - defaults "^1.0.3" - -wdio-dot-reporter@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/wdio-dot-reporter/-/wdio-dot-reporter-0.0.6.tgz#153b3e1c5d76777190d893480ffa6f37833740f1" - dependencies: - babel-runtime "^5.8.25" - -webdriverio@^4.0.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-4.4.0.tgz#f2e3f794c66ee57db8b267a5a0f6b901f6f57769" - dependencies: - archiver "1.0.0" - babel-runtime "^6.9.2" - css-parse "~2.0.0" - css-value "~0.0.1" - deepmerge "~0.2.7" - ejs "^2.3.1" - glob "^7.0.5" - inquirer "^1.1.2" - json-stringify-safe "^5.0.1" - mkdirp "^0.5.1" - npm-install-package "^1.0.2" - optimist "^0.6.1" - q "~1.4.1" - request "2.74.0" - rgb2hex "~0.1.0" - supports-color "^3.1.2" - url "^0.11.0" - validator "^5.4.0" - wdio-dot-reporter "^0.0.6" - wgxpath "~1.0.0" - -webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webpack-core@~0.6.0: - version "0.6.8" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" - dependencies: - source-list-map "~0.1.0" - source-map "~0.4.1" - -webpack-dev-middleware@^1.8.3: - version "1.8.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d" - dependencies: - memory-fs "~0.3.0" - mime "^1.3.4" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - -webpack-hot-middleware@^2.12.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.13.2.tgz#6500b15e6d4f1a9590f8df708183f4d2ac2c3e9e" - dependencies: - ansi-html "0.0.6" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - -webpack-merge@^0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-0.14.1.tgz#d6bfe6d9360a024e1e7f8e6383ae735f1737cd23" - dependencies: - lodash.find "^3.2.1" - lodash.isequal "^4.2.0" - lodash.isplainobject "^3.2.0" - lodash.merge "^3.3.2" - -webpack-sources@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.2.tgz#057a3f3255f8ba561b901d9150589aa103a57e65" - dependencies: - source-list-map "~0.1.0" - source-map "~0.5.3" - -webpack-validator@^2.2.9: - version "2.2.9" - resolved "https://registry.yarnpkg.com/webpack-validator/-/webpack-validator-2.2.9.tgz#89a26d513fabf0d6e39f7edb2837ad1d80a358bf" - dependencies: - basename "0.1.2" - chalk "1.1.3" - commander "2.9.0" - common-tags "0.1.1" - cross-env "^3.1.1" - find-node-modules "^1.0.1" - joi "9.0.0-0" - lodash "4.11.1" - npmlog "2.0.3" - shelljs "0.7.0" - yargs "4.7.1" - -webpack@^1.13.2: - version "1.13.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" - dependencies: - acorn "^3.0.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "~0.9.0" - interpret "^0.6.4" - loader-utils "^0.2.11" - memory-fs "~0.3.0" - mkdirp "~0.5.0" - node-libs-browser "^0.6.0" - optimist "~0.6.0" - supports-color "^3.1.0" - tapable "~0.1.8" - uglify-js "~2.7.3" - watchpack "^0.2.1" - webpack-core "~0.6.0" - -wgxpath@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wgxpath/-/wgxpath-1.0.0.tgz#eef8a4b9d558cc495ad3a9a2b751597ecd9af690" - -whatwg-encoding@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" - dependencies: - iconv-lite "0.4.13" - -whatwg-fetch@>=0.10.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e" - -whatwg-url@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-3.0.0.tgz#b9033c50c7ce763e91d78777ce825a6d7f56dac5" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which@^1.2.10, which@^1.2.9, which@~1.2.11, which@1: - version "1.2.11" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b" - dependencies: - isexe "^1.1.1" - -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -window-size@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" - -window-size@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrap-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f" - dependencies: - string-width "^1.0.1" - -wrappy@~1.0.2, wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.2.0.tgz#14c66d4e4cb3ca0565c28cf3b7a6f3e4d5938fab" - dependencies: - graceful-fs "^4.1.2" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -"xml-name-validator@>= 2.0.1 < 3.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - -xmlbuilder@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" - -xmldom@0.1.x: - version "0.1.22" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.22.tgz#10de4e5e964981f03c8cc72fadc08d14b6c3aa26" - -xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - dependencies: - object-keys "~0.4.0" - -y18n@^3.2.0, y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" - -yargs-parser@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.0.6" - -yargs@^3.31.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" - dependencies: - camelcase "^2.0.1" - cliui "^3.0.3" - decamelize "^1.1.1" - os-locale "^1.4.0" - string-width "^1.0.1" - window-size "^0.1.4" - y18n "^3.2.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yargs@4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.7.1.tgz#e60432658a3387ff269c028eacde4a512e438dff" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - lodash.assign "^4.0.3" - os-locale "^1.4.0" - pkg-conf "^1.1.2" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - set-blocking "^1.0.0" - string-width "^1.0.1" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^2.4.0" - -yauzl@^2.2.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.7.0.tgz#e21d847868b496fc29eaec23ee87fdd33e9b2bce" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - dependencies: - fd-slicer "~1.0.1" - -zip-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.1.0.tgz#2ad479fffc168e05a888e8c348ff6813b3f13733" - dependencies: - archiver-utils "^1.3.0" - compress-commons "^1.1.0" - lodash "^4.8.0" - readable-stream "^2.0.0" - diff --git a/examples/.dockerignore b/examples/.dockerignore deleted file mode 100644 index 087b6f9..0000000 --- a/examples/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -*/build -*/bin -*/trie_modules -*/*.xcodeproj -*/Info.plist -*/build.ninja -*/CMakeLists.txt -zlib/source diff --git a/examples/.gitignore b/examples/.gitignore index fedee8c..ca7a789 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -1,7 +1,4 @@ -*/build -*/bin -*/trie_modules -*/*.xcodeproj -*/Info.plist -*/build.ninja -*/CMakeLists.txt +trie_modules +/*/bin +/*/build +/*/source \ No newline at end of file diff --git a/server/boost/.gitignore b/examples/boost/.gitignore similarity index 100% rename from server/boost/.gitignore rename to examples/boost/.gitignore diff --git a/server/boost/tmake.yaml b/examples/boost/tmake.yaml similarity index 100% rename from server/boost/tmake.yaml rename to examples/boost/tmake.yaml diff --git a/examples/bz2/tmake.yaml b/examples/bz2/tmake.yaml new file mode 100644 index 0000000..98ea230 --- /dev/null +++ b/examples/bz2/tmake.yaml @@ -0,0 +1,17 @@ +name: bz2 +project: + archive: http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz + generate: + ninja: + matching: + - "*.c" + build: ninja +target: + flags: + c: + O: 2 + g: true + Wall: true + D_FILE_OFFSET_BITS: 64 + Winline: true + Wconversion: true diff --git a/examples/freetype/tmake.yaml b/examples/freetype/tmake.yaml new file mode 100644 index 0000000..26b686d --- /dev/null +++ b/examples/freetype/tmake.yaml @@ -0,0 +1,36 @@ +name: freetype +project: + archive: http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz + require: + bz2: {} + zlib: {} + generate: + ninja: + =mac: + matching: + - src/autofit/autofit.c + - src/base/*.c + - src/bdf/bdf.c + - src/bzip2/ftbzip2.c + - src/cache/ftcache.c + - src/cff/cff.c + - src/cid/type1cid.c + - src/gzip/ftgzip.c + - src/lzw/ftlzw.c + - src/pcf/pcf.c + - src/pfr/pfr.c + - src/psaux/psaux.c + - src/pshinter/pshinter.c + - src/psnames/psnames.c + - src/raster/raster.c + - src/sfnt/sfnt.c + - src/smooth/smooth.c + - src/truetype/truetype.c + - src/type1/type1.c + - src/type42/type42.c + - src/winfonts/winfnt.c + build: ninja +target: + flags: + c: + DFT2_BUILD_LIBRARY: 1 diff --git a/examples/grpc/tmake.yaml b/examples/grpc/tmake.yaml new file mode 100644 index 0000000..7247460 --- /dev/null +++ b/examples/grpc/tmake.yaml @@ -0,0 +1,142 @@ +git: + repository: grpc/grpc + tag: v1.2.0 +require: + openssl: + link: ../openssl + uv: + link: ../uv + zlib: + link: ../zlib + protobuf: + link: ../protobuf +options: + runtime: node + # UV integration in C core is enabled by default. It can be disabled + # by setting this argument to anything else. + grpc_uv: true + # Some Node installations use the system installation of OpenSSL, and on + # some systems, the system OpenSSL still does not have ALPN support. This + # will let users recompile gRPC to work without ALPN. + grpc_alpn: true + core: true + cpp: true +environment: + CC: gcc + TMPOUT: /dev/null + =win: + TMPOUT: mktemp /tmp/test-out-XXXXXX + CHECK_SHADOW_WORKS_CMD: $(${CC} -std=c99 -Werror -Wshadow -o {TMPOUT} -c test/build/shadow.c) + W_SHADOW: + macro: $(shell ${CHECK_SHADOW_WORKS_CMD} 2> /dev/null && echo true || echo false) + map: + true: Wshadow + false: Wno-shadow +path: + includeDirs: + - source +target>: + flags: + c: + std: c99 + Wsign-conversion: true + Wconversion: true + Wall: true + Werror: true + DTSI_OPENSSL_ALPN_SUPPORT: 1 + DGRPC_ARES: 0 + DGRPC_UV: true + cpp: + std: c++11 + DOSATOMIC_USE_INLINED: "1" + g: true + Wall: true + Wextra: true + Werror: true + Wno-long-long: true + Wno-unused-parameter: true + linker: + g: true +configure: + for: ninja + replace: + include_uv: + matching: + - src/**/*.{c,h} + inputs: + uv: + - '#include ' + - '#include ' +generate: + ninja: + matching: + - src/core/lib/surface/init.c + - src/core/lib/channel/*.c + - src/core/lib/compression/*.c + - src/core/lib/debug/*.c + - src/core/lib/http/*.c + - src/core/lib/iomgr/*.c + - src/core/lib/json/*.c + - src/core/lib/security/**/*.c + - src/core/lib/slice/*.c + - src/core/lib/surface/*.c + - src/core/lib/transport/*.c + - src/core/lib/tsi/*.c + - src/core/ext/transport/chttp2/**/*.c + - '!src/core/ext/transport/chttp2/**/insecure/*.c' + - src/core/ext/client_channel/*.c + - src/core/ext/lb_policy/grpclb/*.c + - third_party/nanopb/*.c + - src/core/ext/lb_policy/**/*.c + - '!src/core/ext/lb_policy/grpclb/**/*.c' + - src/core/ext/resolver/dns/**/.c + - src/core/ext/load_reporting/**/*.c + - src/core/ext/census/**/*.c + - '!src/core/ext/census/census_*' + - '!src/core/ext/census/hash_table.c' + - '!src/core/ext/census/window_stats.c' + - src/core/plugin_registry/grpc_plugin_registry.c + # cpp + - src/cpp/client/insecure_credentials.cc + - src/cpp/client/secure_credentials.cc + - src/cpp/common/auth_property_iterator.cc + - src/cpp/common/secure_auth_context.cc + - src/cpp/common/secure_channel_arguments.cc + - src/cpp/common/secure_create_auth_context.cc + - src/cpp/server/insecure_server_credentials.cc + - src/cpp/server/secure_server_credentials.cc + - src/cpp/client/channel_cc.cc + - src/cpp/client/client_context.cc + - src/cpp/client/create_channel.cc + - src/cpp/client/create_channel_internal.cc + - src/cpp/client/create_channel_posix.cc + - src/cpp/client/credentials_cc.cc + - src/cpp/client/generic_stub.cc + - src/cpp/common/channel_arguments.cc + - src/cpp/common/channel_filter.cc + - src/cpp/common/completion_queue_cc.cc + - src/cpp/common/core_codegen.cc + - src/cpp/common/resource_quota_cc.cc + - src/cpp/common/rpc_method.cc + - src/cpp/common/version_cc.cc + - src/cpp/server/async_generic_service.cc + - src/cpp/server/channel_argument_option.cc + - src/cpp/server/create_default_thread_pool.cc + - src/cpp/server/dynamic_thread_pool.cc + - src/cpp/server/health/default_health_check_service.cc + - src/cpp/server/health/health.pb.c + - src/cpp/server/health/health_check_service.cc + - src/cpp/server/health/health_check_service_server_builder_option.cc + - src/cpp/server/server_builder.cc + - src/cpp/server/server_cc.cc + - src/cpp/server/server_context.cc + - src/cpp/server/server_credentials.cc + - src/cpp/server/server_posix.cc + - src/cpp/thread_manager/thread_manager.cc + - src/cpp/util/byte_buffer_cc.cc + - src/cpp/util/slice_cc.cc + - src/cpp/util/status.cc + - src/cpp/util/string_ref.cc + - src/cpp/util/time_cc.cc + - src/cpp/codegen/codegen_init.cc +build: ninja diff --git a/examples/ios/CMakeLists.txt b/examples/ios/CMakeLists.txt deleted file mode 100644 index 87c65c7..0000000 --- a/examples/ios/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# generated by trieMake -cmake_minimum_required(VERSION 3.2) -project(example_zlib VERSION 0.0.1) - -include_directories("/Users/leif/tmake/tmake/examples/ios/trie_modules/include" "/Users/leif/tmake/tmake/examples/ios/source/include") - -set(SOURCE_FILES ${SOURCE_FILES} "source/example.cpp") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ") - -add_executable(example_zlib ${SOURCE_FILES}) - -target_link_libraries(${PROJECT_NAME} "/Users/leif/tmake/tmake/examples/ios/trie_modules/lib/zlib.a" "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation" -lc++) \ No newline at end of file diff --git a/examples/ios/source/example.cpp b/examples/ios/source/example.cpp deleted file mode 100644 index 238bd61..0000000 --- a/examples/ios/source/example.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include // for strlen -#include -#include "zlib.h" - -// adapted from: http://stackoverflow.com/questions/7540259/deflate-and-inflate-zlib-h-in-c -int main(int argc, char* argv[]) -{ - // original string len = 36 - char a[50] = "Hello Hello Hello Hello Hello Hello!"; - - // placeholder for the compressed (deflated) version of "a" - char b[50]; - - // placeholder for the UNcompressed (inflated) version of "b" - char c[50]; - - - printf("Uncompressed size is: %lu\n", strlen(a)); - printf("Uncompressed string is: %s\n", a); - - - printf("\n----------\n\n"); - - // STEP 1. - // deflate a into b. (that is, compress a into b) - - // zlib struct - z_stream defstream; - defstream.zalloc = Z_NULL; - defstream.zfree = Z_NULL; - defstream.opaque = Z_NULL; - // setup "a" as the input and "b" as the compressed output - defstream.avail_in = (uInt)strlen(a)+1; // size of input, string + terminator - defstream.next_in = (Bytef *)a; // input char array - defstream.avail_out = (uInt)sizeof(b); // size of output - defstream.next_out = (Bytef *)b; // output char array - - // the actual compression work. - deflateInit(&defstream, Z_BEST_COMPRESSION); - deflate(&defstream, Z_FINISH); - deflateEnd(&defstream); - - // This is one way of getting the size of the output - printf("Compressed size is: %lu\n", strlen(b)); - printf("Compressed string is: %s\n", b); - printf("\n----------\n\n"); - - // STEP 2. - // inflate b into c - // zlib struct - z_stream infstream; - infstream.zalloc = Z_NULL; - infstream.zfree = Z_NULL; - infstream.opaque = Z_NULL; - // setup "b" as the input and "c" as the compressed output - infstream.avail_in = (uInt)((char*)defstream.next_out - b); // size of input - infstream.next_in = (Bytef *)b; // input char array - infstream.avail_out = (uInt)sizeof(c); // size of output - infstream.next_out = (Bytef *)c; // output char array - - // the actual DE-compression work. - inflateInit(&infstream); - inflate(&infstream, Z_NO_FLUSH); - inflateEnd(&infstream); - - printf("Uncompressed size is: %lu\n", strlen(c)); - printf("Uncompressed string is: %s\n", c); - - - // make sure uncompressed is exactly equal to original. - assert(strcmp(a,c)==0); - - return 0; -} diff --git a/server/libbson/.gitignore b/examples/libbson/.gitignore similarity index 100% rename from server/libbson/.gitignore rename to examples/libbson/.gitignore diff --git a/examples/libbson/tmake.yaml b/examples/libbson/tmake.yaml new file mode 100644 index 0000000..d725fbb --- /dev/null +++ b/examples/libbson/tmake.yaml @@ -0,0 +1,90 @@ +$<: + BSON_BYTE_ORDER: + LE: 1234 + BE: 4321 +git: + repository: mongodb/libbson + tag: 1.3.4 +generate>: + ninja: + matching: + - src/bson/**.c + - src/yajl/**.c + cFlags: + =: + DBSON_COMPILATION: true + O3: true + std: c++11 + g: true + Wall: true + Wextra: true + Wno-unused-parameter: true + Wno-missing-field-initializers: true + +linux: + pthread: true + +mac: + stdlib: libc++ + outputFile: libbson-1.0.a +configure>: + create: + stdint: + path: src/bson/bson-stdint.h + string: "#include " + replace: + config: + matching: + - src/bson/*.h.in + inputs: + BSON_MAJOR_VERSION: 1 + BSON_MINOR_VERSION: 3 + BSON_MICRO_VERSION: 4 + BSON_PRERELEASE_VERSION: rc0 + BSON_VERSION: 1.3.4 + BSON_HAVE_STDBOOL_H: 1 + BSON_OS: 1 + BSON_HAVE_ATOMIC_32_ADD_AND_FETCH: 1 + BSON_HAVE_ATOMIC_64_ADD_AND_FETCH: 1 + BSON_PTHREAD_ONCE_INIT_NEEDS_BRACES: 0 + BSON_HAVE_CLOCK_GETTIME: 1 + BSON_HAVE_STRNLEN: 1 + BSON_HAVE_SNPRINTF: 1 + BSON_NEEDS_SET_OUTPUT_FORMAT: 0 + BSON_EXTRA_ALIGN: 1 + BSON_HAVE_DECIMAL128: 0 + =win: + BSON_OS: 2 + =mac, linux: + BSON_HAVE_TIMESPEC: 1 + BSON_BYTE_ORDER: $BSON_BYTE_ORDER.${target.endianness} + directive: + prepost: "@" + ext: "h" + include_bson: + matching: + - src/**/*.h + - src/**/*.c + inputs: + bson_angle: + - '#include ' + - '#include ' + bcon: + - '#include ' + - '#include ' + include_bson_compat: + matching: + - src/yajl/*.h + - src/yajl/*.c + inputs: + yaji: + - '#include "bson-compat.h"' + - '#include ' +build>: ninja +path: + install: + headers: + - from: source/src/bson + to: include/libbson-1.0 + - from: source/src/yajl + to: include/yajl + - from: build/src/bson + to: include/libbson-1.0 diff --git a/server/mongoc/.gitignore b/examples/mongoc/.gitignore similarity index 100% rename from server/mongoc/.gitignore rename to examples/mongoc/.gitignore diff --git a/examples/mongoc/tmake.yaml b/examples/mongoc/tmake.yaml new file mode 100644 index 0000000..928bef7 --- /dev/null +++ b/examples/mongoc/tmake.yaml @@ -0,0 +1,91 @@ +git: + repository: mongodb/mongo-c-driver + tag: 1.3.4 +generate: + ninja: + matching: + - src/mongoc/*.c + - "!src/mongoc/mongoc-rand-cng.c" + - "!src/mmongoc/mongoc-stream-tls-secure-channel-private.c" + - "!src/mongoc/mongoc-crypto-cng.c" + - "!src/mongoc/mongoc-secure-channel.c" + - "!src/mongoc/mongoc-secure-transport" + - "!src/mongoc/mongoc-crypto-common-crypto" + - "!src/mongoc/mongoc-rand-common-crypto" + cFlags: + DMONGOC_COMPILATION: true + D_GNU_SOURCE: true + D_BSD_SOURCE: true + O3: true + std: c++11 + g: true + Wall: true + Wextra: true + Wno-unused-parameter: true + Wno-missing-field-initializers: true + linux: + pthread: true + win: + D_CRT_SECURE_NO_WARNINGS: true + mac: + stdlib: libc++ + Wno-deprecated-declarations: true + outputFile: libmongoc-1.0.a +configure: + replace: + files: + matching: + - src/mongoc/mongoc-config.h.in + - src/mongoc/mongoc-version.h.in + inputs: + MONGOC_MAJOR_VERSION: 1 + MONGOC_MINOR_VERSION: 3 + MONGOC_MICRO_VERSION: 4 + MONGOC_PRERELEASE_VERSION: rc0 + MONGOC_VERSION: 1.3.4 + MONGOC_ENABLE_CRYPTO: 1 + MONGOC_ENABLE_CRYPTO_CNG: 0 + MONGOC_ENABLE_CRYPTO_COMMON_CRYPTO: 0 + mac: + MONGOC_ENABLE_CRYPTO_COMMON_CRYPTO: 1 + MONGOC_ENABLE_CRYPTO_LIBCRYPTO: 1 + MONGOC_ENABLE_CRYPTO_SYSTEM_PROFILE: 1 + MONGOC_ENABLE_SSL: 1 + MONGOC_ENABLE_SSL_OPENSSL: 1 + MONGOC_ENABLE_SSL_SECURE_CHANNEL: 0 + MONGOC_ENABLE_SSL_SECURE_TRANSPORT: 0 + MONGOC_ENABLE_SASL: 0 + MONGOC_HAVE_SASL_CLIENT_DONE: 0 + MONGOC_HAVE_WEAK_SYMBOLS: 0 + MONGOC_NO_AUTOMATIC_GLOBALS: 1 + directive: + prepost: "@" + ext: "h" + include_bson: + matching: + - src/**/*.h + - src/**/*.c + inputs: + bson: + - '#include ' + - '#include ' + bson_quote: + - '#include "bson.h"' + - '#include ' + bcon: + - '#include ' + - '#include ' +build: ninja +path: + install: + headers: + - from: source/src/mongoc + to: include/libmongoc-1.0 +test: + build: + with: ninja +require: + libbson: + link: ../libbson + openssl: + link: ../openssl diff --git a/server/mongocxx/.gitignore b/examples/mongocxx/.gitignore similarity index 100% rename from server/mongocxx/.gitignore rename to examples/mongocxx/.gitignore diff --git a/examples/mongocxx/tmake.yaml b/examples/mongocxx/tmake.yaml new file mode 100644 index 0000000..7c836bc --- /dev/null +++ b/examples/mongocxx/tmake.yaml @@ -0,0 +1,102 @@ +name: mongocxx +git: + repository: mongodb/mongo-cxx-driver + tag: r3.0.3 +require: + mongoc: + link: ../mongoc + boost: + link: ../boost +path: + includeDirs: + - source/src + install: + headers: + - from: source/src/mongocxx + to: include/mongocxx + - from: source/src/bsoncxx + to: include/bsoncxx +configure: + for: ninja + create: + mongocxx/config/export: + path: src/mongocxx/config/export.hpp + string: | + #ifndef MONGOCXX_API_H + #define MONGOCXX_API_H + #define MONGOCXX_API + #define MONGOCXX_PRIVATE + #endif + bsoncxx/config/export: + path: src/bsoncxx/config/export.hpp + string: | + #ifndef BSONCXX_API_H + #define BSONCXX_API_H + #define BSONCXX_API + #define BSONCXX_PRIVATE + #define BSONCXX_DEPRECATED + #define BSONCXX_DEPRECATED_EXPORT + #define BSONCXX_DEPRECATED_NO_EXPORT + #define DEFINE_NO_DEPRECATED + #define BSONCXX_NO_DEPRECATED + #endif + replace: + versions: + matching: + - src/bsoncxx/config/version.hpp.in + - src/mongocxx/config/version.hpp.in + inputs: + MONGOCXX_VERSION_MAJOR: 3 + MONGOCXX_VERSION_MINOR: 0 + MONGOCXX_VERSION_PATCH: 3 + MONGOCXX_VERSION_EXTRA: "" + BSONCXX_VERSION_MAJOR: 3 + BSONCXX_VERSION_MINOR: 0 + BSONCXX_VERSION_PATCH: 3 + BSONCXX_VERSION_EXTRA: "" + directive: + prepost: "@" + src/mongocxx/config: + matching: + - src/mongocxx/config/config.hpp.in + - src/mongocxx/config/private/config.hh.in + inputs: + "@MONGOCXX_INLINE_NAMESPACE@": v3_0_3 + src/bsoncxx/config: + matching: + - src/bsoncxx/config/config.hpp.in + - src/bsoncxx/config/private/config.hh.in + inputs: + "#cmakedefine BSONCXX_POLY_USE_STD_EXPERIMENTAL": "//#define BSONCXX_POLY_USE_STD_EXPERIMENTAL 0" + "#cmakedefine BSONCXX_POLY_USE_MNMLSTC": "//#define BSONCXX_POLY_USE_MNMLSTC 0" + "#cmakedefine BSONCXX_POLY_USE_SYSTEM_MNMLSTC": "//#define BSONCXX_POLY_USE_SYSTEM_MNMLSTC 0" + "#cmakedefine BSONCXX_POLY_USE_BOOST": "#define BSONCXX_POLY_USE_BOOST 1" + "@BSONCXX_INLINE_NAMESPACE@": v3_0_3 + namespaceIncludes: + matching: + - src/**/*.h + - src/**/*.hh + - src/**/*.hpp + - src/**/*.cpp + inputs: + mongoc: + - '#include ' + - '#include ' + bson: + - '#include ' + - '#include ' +build: + with: ninja + matching: + - src/bsoncxx/**/*.cpp + - "!src/bsoncxx/test/**" + - src/mongocxx/**/*.cpp + - "!src/mongocxx/test/**" + cFlags: + DMONGO_CXX_DRIVER_COMPILING: true + DMONGOC_ENABLE_SSL: true + DMONGOC_ENABLE_SSL_OPENSSL: true + DMONGOC_HAVE_SSL: true + DBSON_CXX_DRIVER_COMPILING: true + O3: true + std: c++11 diff --git a/examples/node/tmake.yaml b/examples/node/tmake.yaml new file mode 100644 index 0000000..2f64fc7 --- /dev/null +++ b/examples/node/tmake.yaml @@ -0,0 +1,3 @@ +name: node +archive: https://nodejs.org/dist/v6.10.0/node-v6.10.0.tar.gz +version: 6.10.0 \ No newline at end of file diff --git a/examples/nodeKitten/tmake.yaml b/examples/nodeKitten/tmake.yaml new file mode 100644 index 0000000..afcd56a --- /dev/null +++ b/examples/nodeKitten/tmake.yaml @@ -0,0 +1,56 @@ +--- +name: nodeKitten +git: + organization: structuresound + repository: nodeKitten +path: + install: + headers: + from: source +target>: + flags: + cpp: + =mac, ios: + std: c++14 + fobjc-arc: true +generate: + ninja: + =mac, ios: + matching: + - core/**/*.cpp + - ext/**/*.cpp + - ext/**/*.c + - "!core/**/*tests*.cpp" + - "!core/platform/android/**/*.*" + - "!core/platform/emscripten/**/*.*" +build: ninja +require: + png: + git: + repository: glennrp/libpng + archive: v1.6.25 + build: + with: cmake + path: + project: source + install: + headers: + - from: source + to: include/png + - from: build/x64 + to: include/png + freetype-gl: + git: rougier/freetype-gl + configure: + for: ninja + build: + with: ninja + matching: + - "*.c" + path: + install: + headers: + - from: source + to: include/freetype-gl + require: + freetype: ../freetype diff --git a/server/openssl/.gitignore b/examples/openssl/.gitignore similarity index 100% rename from server/openssl/.gitignore rename to examples/openssl/.gitignore diff --git a/examples/openssl/tmake.yaml b/examples/openssl/tmake.yaml new file mode 100644 index 0000000..eee5f6e --- /dev/null +++ b/examples/openssl/tmake.yaml @@ -0,0 +1,46 @@ +git: + repository: openssl/openssl + tag: OpenSSL_1_0_2h +environment: + OPENSSL_VERSION: 1.0.2h + DEVELOPER: "$(xcode-select -print-path)" + x64: + OPENSSL_ARCH: x86_64 +configure: + shell: + bignum: sed -ie "s/BIGNUM \*I,/BIGNUM \*i,/g" crypto/rsa/rsa.h + make: + arguments: ${parent.target.flags.compiler.target} + flags: + openssldir: ${d.build}/openssl-${OPENSSL_VERSION} + arguments: + =linux: + enable-tlsext: 1 + no-shared: 1 + no-zlib: 1 + -fPIC: 1 + no-gost: 1 + =ios: + iphoneos-cross: 1 + -no-asm: 1 + +ios: + replace: + files: + matching: + - Makefile + inputs: + "-isysroot $(CROSS_TOP)/SDKs/$(CROSS_SDK)": "-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=${SDK_VERSION}" + shell: + perl: perl -i -pe 's|static volatile sig_atomic_t intr_signal|static volatile int intr_signal|' crypto/ui/ui_openssl.c +build: + make: + =ios: + prefix: CC="${DEVELOPER}/usr/bin/gcc -fembed-bitcode -arch ${OPENSSL_ARCH}" +path: + project: source + install: + headers: + from: source/include/openssl + to: include/openssl + libraries: + from: source diff --git a/examples/protobuf/tmake.yaml b/examples/protobuf/tmake.yaml new file mode 100644 index 0000000..47e108c --- /dev/null +++ b/examples/protobuf/tmake.yaml @@ -0,0 +1,12 @@ +git: + repository: google/protobuf + tag: v3.2.0 +build: + with: cmake + defines: + protobuf_BUILD_TESTS: OFF +path: + project: source/cmake + install: + headers: + - from: source/src/google \ No newline at end of file diff --git a/server/re2/.gitignore b/examples/re2/.gitignore similarity index 100% rename from server/re2/.gitignore rename to examples/re2/.gitignore diff --git a/examples/re2/tmake.yaml b/examples/re2/tmake.yaml new file mode 100644 index 0000000..0ee0c4a --- /dev/null +++ b/examples/re2/tmake.yaml @@ -0,0 +1,40 @@ +git: + repository: google/re2 + archive: "2016-10-01" +path: + includeDirs: + - source + install: + headers: + - from: source/re2 + to: include/re2 + - from: source/util + to: include/re2/util +configure: + for: ninja +build: + with: ninja + matching: + - re2/*.cc + - util/*.cc + linux: + matching: + - re2/*.cc + - util/*.cc + - "!util/threadwin.cc" + mac: + matching: + - re2/*.cc + - util/*.cc + - "!util/threadwin.cc" + cFlags: + O3: true + std: c++11 + g: true + Wall: true + Wextra: true + Wno-unused-parameter: true + Wno-missing-field-initializers: true + pthread: true + mac: + stdlib: libc++ \ No newline at end of file diff --git a/server/served/.gitignore b/examples/served/.gitignore similarity index 100% rename from server/served/.gitignore rename to examples/served/.gitignore diff --git a/server/served/tmake.yaml b/examples/served/tmake.yaml similarity index 100% rename from server/served/tmake.yaml rename to examples/served/tmake.yaml diff --git a/examples/uv/tmake.yaml b/examples/uv/tmake.yaml new file mode 100644 index 0000000..c80b5ab --- /dev/null +++ b/examples/uv/tmake.yaml @@ -0,0 +1,65 @@ +--- +git: + repository: libuv/libuv + tag: v1.11.0 +target>: + flags: + linker: + =: + pthread: true + m: true + +linux: + dl: true + rt: true + c: + =: + fvisibility: hidden + g: true + std: gnu89 + pedantic: true + Wall: true + Wextra: true + Wno-unused-parameter: true + +mac: + D_DARWIN_USE_64_BIT_INODE: 1 + D_DARWIN_UNLIMITED_SELECT: 1 +path: + includeDirs: + - source/src + install: + headers: + - from: source/include + to: include/uv +configure: + replace: + include_uv: + matching: + - src/**/*.{c,h} + inputs: + uv: + - '#include "uv.h"' + - '#include ' + tree: + - '#include "tree.h"' + - '#include ' + pthread-barrier: + - '#include "pthread-barrier.h"' + - '#include ' +generate: + ninja: + matching: + =linux: + - src/unix/*.c + =mac, ios: + - src/unix/*.c + - '!src/unix/aix*' + - '!src/unix/linux*' + - '!src/unix/android*' + - '!src/unix/os390*' + - '!src/unix/netbsd*' + - '!src/unix/openbsd*' + - '!src/unix/pthread-fixes.c' + - '!src/unix/freebsd*' + - '!src/unix/sunos*' +build: + ninja: {} diff --git a/examples/v8/tmake.yaml b/examples/v8/tmake.yaml new file mode 100644 index 0000000..3b9a915 --- /dev/null +++ b/examples/v8/tmake.yaml @@ -0,0 +1,22 @@ +name: v8 +git: + organization: v8/v8 + repository: v8/v8 + tag: 5.8.283 +options: + v8_enable_i18n_support: false +configure: + for: ninja +build: + with: ninja + sources: + - "*.cc" + x64: + sources: + - "x64/*.cc" + - "**/x64/*.cc" + cflags: + win: + "/wd4267": 1 +path: + source: src \ No newline at end of file diff --git a/examples/zlib/tmake.yaml b/examples/zlib/tmake.yaml index 525f49b..c1d832b 100644 --- a/examples/zlib/tmake.yaml +++ b/examples/zlib/tmake.yaml @@ -2,28 +2,51 @@ git: repository: madler/zlib tag: v1.2.8 -configure: - for: ninja - replace: - gzguts: - sources: - - "gzguts.h" - inputs: - unistd: - - "\n\n#ifdef _LARGEFILE64_SOURCE" - - "\n\n#include \n#ifdef _LARGEFILE64_SOURCE" -build: - with: ninja - sources: - - "*.c" - compilerFlags: - ios: - miphoneos-version-min: "=6.0" - cFlags: - O: 3 - Wall: true - Wwrite-strings: true - Wpointer-arith: true - Wconversion: true - ios: - "fembed-bitcode": true +project: + lib: + options: + ASM686: false # Enable building i686 assembly implementation + AMD64: false # Enable building amd64 assembly implementation + path: + clone: 'zlib' + install: + headers: + from: '' + generate: + ninja: + matching: + - '*.c' + build: ninja + test: + options: + test: true + platforms: test + output: + type: executable + configure: + replace: + includes: + matching: + - 'test/*.c' + inputs: + inftrees: zlib/inftrees.h + inflate: zlib/inflate.h + generate: + ninja: + matching: + - 'test/infcover.c' + run: {} +target: + flags: + c: + O: 3 + Wall: true + Wwrite-strings: true + Wpointer-arith: true + +mac, ios, linux, android: + D_LARGEFILE64_SOURCE: 1 + DHAVE_SYS_TYPES_H: 1 + DHAVE_STDINT_H: 1 + DHAVE_STDDEF_H: 1 + +ios: + fembed-bitcode: true diff --git a/package.json b/package.json index d75dc70..aa3d598 100644 --- a/package.json +++ b/package.json @@ -1,155 +1,6 @@ { - "name": "tmake", - "description": "trieMake can fetch, build, and manage c++ dependencies", - "version": "0.5.9", - "homepage": "https://github.com/structuresound/tmake", - "author": { - "name": "Leif Shackelford", - "email": "structuresound@gmail.com" - }, - "repository": { - "type": "git", - "url": "https://github.com/structuresound/tmake.git" - }, - "bugs": { - "url": "https://github.com/structuresound/tmake/issues" - }, - "licenses": [{ - "type": "MIT", - "url": "https://github.com/structuresound/tmake/blob/master/LICENSE-MIT" - }], - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3" - }, - "scripts": { - "build": "gulp scripts", - "test": "NODE_ENV=test mocha --recursive --compilers ts:ts-node/register --bail", - "cover": "NODE_ENV=test nyc --report-dir coverage npm t", - "travis": "npm run build && npm run cover" - }, - "devDependencies": { - "@ssense/tslint-config": "^4.0.0", - "@types/bluebird": "^3.0.37", - "@types/chai": "^3.4.34", - "@types/chalk": "^0.4.31", - "@types/cson": "0.0.30", - "@types/file-type": "0.0.1", - "@types/form-data": "0.0.33", - "@types/glob": "^5.0.30", - "@types/glob-stream": "^3.1.30", - "@types/isomorphic-fetch": "0.0.32", - "@types/js-yaml": "^3.5.29", - "@types/lodash": "^4.14.52", - "@types/minimatch": "^2.0.29", - "@types/minimist": "^1.2.0", - "@types/mocha": "^2.2.32", - "@types/nedb": "0.0.31", - "@types/node": "^6.0.46", - "@types/progress": "^1.1.28", - "@types/request": "0.0.39", - "@types/request-promise": "^4.1.33", - "@types/shelljs": "^0.6.0", - "@types/vinyl": "^2.0.0", - "@types/vinyl-fs": "0.0.28", - "@types/which": "^1.0.28", - "babel-eslint": "^7.1.0", - "babel-preset-es2015": "^6.18.0", - "base62": "^1.1.2", - "chai": "^3.5.0", - "coveralls": "^2.11.15", - "dts-generator": "^2.0.0", - "eslint": "^3.11.1", - "eslint-config-airbnb": "^13.0.0", - "eslint-formatter-pretty": "^1.1.0", - "eslint-loader": "^1.6.0", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-jsx-a11y": "^2.2.3", - "eslint-plugin-mocha": "^4.7.0", - "eslint-plugin-promise": "^3.3.0", - "eslint-plugin-react": "^6.4.1", - "gulp": "^3.9.1", - "gulp-typescript": "^3.1.1", - "mocha": "^3.2.0", - "nyc": "^8.4.0", - "ts-node": "^1.6.1", - "tslint": "^4.3.1", - "tslint-microsoft-contrib": "^4.0.0", - "typescript": "^2.1.6" - }, - "Keywords": [], - "preferGlobal": true, - "bin": { - "tmake": "bin/tmake.js" - }, - "dependencies": { - "bluebird": "^3.0.5", - "chalk": "^1.1.1", - "cli-spinner": "^0.2.6", - "create-hash": "^1.1.2", - "cson": "^3.0.2", - "dependency-graph": "^0.4.1", - "file-type": "^3.9.0", - "glob-all": "^3.0.1", - "gunzip-maybe": "^1.3.1", - "js-object-tools": "^0.13.2", - "js-yaml": "^3.6.1", - "json-stable-stringify": "^1.0.1", - "lodash": "^4.3.0", - "lzma-native": "^1.5.2", - "map-stream": "^0.0.6", - "minimist": "^1.2.0", - "nedb-promise": "^2.0.0", - "ninja-build-gen": "^0.2.1", - "node-status": "^1.0.0", - "progress": "^1.1.8", - "progress-stream": "^1.2.0", - "read-chunk": "^2.0.0", - "request": "^2.75.0", - "request-progress": "^3.0.0", - "request-promise": "^4.1.1", - "shelljs": "^0.7.6", - "source-map-support": "^0.4.0", - "tar-fs": "^1.13.0", - "unzip": "^0.1.11", - "vinyl-fs": "^2.3.1", - "which": "^1.2.11" - }, - "nyc": { - "include": [ - "src/*.ts" - ], - "exclude": [ - "**/*.d.ts", - "node_modules" - ], - "extension": [ - ".ts" - ], - "require": [ - "ts-node/register" - ], - "reporter": [ - "json", - "html", - "lcov" - ], - "all": true - }, - "nexe": { - "input": "./bin/tmake", - "output": "tmake^$", - "temp": "nexe", - "browserify": { - "requires": [], - "excludes": [], - "paths": [] - }, - "runtime": { - "framework": "node", - "version": "6.9.0", - "js-flags": "--use_strict", - "ignoreFlags": true - } - } + "name": "tmake", + "version": "0.7.1", + "bin": "bin/tmake.js", + "preferGlobal": true } \ No newline at end of file diff --git a/server/.gitignore b/server/.gitignore index e2ff7c4..7c79f1d 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1,4 +1,3 @@ -/trie_modules -/build -/bin -/CMakeLists.txt \ No newline at end of file +.DS_Store +/secrets +/data diff --git a/server/assets/logo.ai b/server/assets/logo.ai new file mode 100644 index 0000000..a82630d --- /dev/null +++ b/server/assets/logo.ai @@ -0,0 +1,4368 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 7 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + logo + + + + + 2017-06-05T12:51:31-07:00 + 2017-06-05T12:51:31-07:00 + 2017-06-05T12:51:31-07:00 + Adobe Illustrator CS5 + + + + 256 + 64 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAQAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYqxvz7r9 3o2iK9kQL27lW3hkND6fIFmk4nrxVT9OW4zCEZZJ7wxxMq7+4fEuHqzlJhixbZMsxAH+be5lXXhA LyWa0inkaW5Z7idyC88rs0jEdyxNc5TJ7T60z4oz4B0jEDhHwrf429Rj9iuzRDhnA5JHnKUpcR87 sV8KZR5c/Mc6HHJY601xe29A1nMtJJV3PKN2dl5Afs9x08Kdd2WT2lh8SIjHJE1Icge6Q7r6vF9r ZR2Nn8HIZ5MMxxYzsZDc3EkkXXQ9x+R1/wArl8rf8s97/wAi4v8Aqpmw/kTN3x+39Trv9F2m/m5P lH/inf8AK5fK3/LPe/8AIuL/AKqY/wAiZu+P2/qX/Rdpv5uT5R/4p3/K5fK3/LPe/wDIuL/qpj/I mbvj9v6l/wBF2m/m5PlH/imJeYfM115nuZJGaSLSFPG1suRUMFP95LxPxMT2/Z/HOd7b7UnoJjBh oZKuU6vn/DG+W3Xr5PS9gdk4+1oHU6i/AsiGOyAa/inR3N8hyFdUFYX19okpvdKlaGRPjkgBJilC /svH0NR4b5gdl+0OXJlji1J8THM1ZrijfUH776Ox7Y9lsODDPPox4WWA4qFmM+EfSY+Y5VRt7dp1 7Hfafa3sYKx3USTIrdQJFDAH783mSHBIxPQ06zT5hlxxmOUog/MWiMg3OxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvMfzb8z6cYoNHtz6t/bzrcSMp+CMqrLwbxJD9M3Gg 7M8bHPj/ALucTHz36j3PKdu9tjBkxjEby4pifkKvY++9xsxiO11ho1ZtKvVdxyRBbyNz2r8BC0Oc Tn9lM8cnDGeOUf53EBXvHP5W9/pvbbBPFxTxZoTr6eAm/wCqeRHmeFl/lf8ALeG7jkvfMtrVpAFt bIu6tGgJJeQxsvxN4dvn06TQj8hiGLDK5XcpVzPcL6D7XmNbh/lPOc+phwxrhhCzcY7m5Ufql3dB tunv/KsPI3/Vt/5L3H/VTMr+VdR/O+wfqcf/AEO6L/U/9lL/AIp3/KsPI3/Vt/5L3H/VTH+VdR/O +wfqX/Q7ov8AU/8AZS/4p3/KsPI3/Vt/5L3H/VTH+VdR/O+wfqX/AEO6L/U/9lL/AIphvmPyTqWi 3sjabaS3ejynlCsIaWSAnqjLuxXwb780/a3Zv58jLGUY5gKkJbCVciD3+Ttuxu0pdlXhlCU9LI3E xHFKBPOJHMx6g8x1u0BYeWNf1mX6rBZTW9vJtNeXMbRxqhqGKh+JdvYZidmdgnT5Y5c8o+g2IRPE SRyutgHN7Y9ojrMMtPpYT/eDhlknHhjGJ2NA7yNbchXO3sllaQ2dnBaQAiG2jSKIE1PFFCrv8hm1 nMykZHmXDw4hjgIR5RAA+CtkWx2KuxVA3Ov6Fa3DW11qNrBcLTlDLNGjjkKiqswO4OXR0+SQsRkR 7i4uTXYIS4ZZIRkOhkAUdlLlOxV2KuxV2KuxV2KuxV2Koa51PTbWQR3V3DBIRyCSyIhIJpWjEbbZ Vk1GOBqUgD5kN2PT5Ji4xkR5AlEgggEGoO4Iy0FpdirsVdiqW6z5l0LRVVtTvY7YsKqhqzkVpUIo Zqe9Mvw6bJk+kW4er7Qwaf8AvJCP2n5Ddbo3mfQNaB/Rl9HcMoJMYqsgANK8HCtTfrTHLpsmPeQo fZ80aTtHBqP7uQke7kfkd00yhzUl1fzn5X0eb0NQ1COGf9qIBpGXavxLGGK7HvmTj0eWY4gNvl97 rtV2tpsEuGcwJd25Pxq6+LFPOn5pWMNitv5fnE91crU3Sg0hU+AYD4/1Zs9D2TIyvKKA6d/7HRdr e0kI4+HTnilIc/5v7fuQv5efl47Omu66haRj6lraybkk7+rLXv3APzOWdpdpf5PH8T+gNPYXYRJG fON+YB+8vT8597R2KrZpoYYnmmdYoowWkkchVVRuSSdgMMYkmhzYzmIgmRoBjyfmJ5Ke6+qjVYvV rSpDhP8AkYVCU965lns/PX0/dfy5uqHb2jMuHxBfuNfOq+1kSsrqHQhlYVVhuCD0IOYZFO2BBFhv FLsVUrq6tbSBri6mSCBKc5ZWCItTQVZiANzkoQMjQFlhkyxxx4pkRiOp2Dyq0/MPWm88NaTapH+g /rkqBisAj9AMwT97xrSlPi5Z0U+zcf5fiET4nCO+79zw2Lt3MdbwyyDweMj+GuGzXqr7benSa1o8 dnHeyX9ulnKeMVy0qCJm32VyeJPwnv2zQDBkMuERPEOlbvaHWYRATM48B5GxXzWvr2hR28Vy+o2q W85IgmaaMI5U0bgxajUPWmEafISQIyseRYy12AREjOAieR4hR9zEvMvlPyLfa/NeanrP1XUHMfqW 31m3jpxRQvwOpYVUA5stLrNRDGIwhce/hLoO0ey9Dlzynly8MzVjjiOg6EXyZ3mnepS5vMnl1ZvR bVLQTVp6Zni5VPanKuX/AJXLV8Mq9xcM9oacGvEhf9YfrROosyafdOhKssMhVgaEEKaEHMPOSMci O4uxwAHJEHvDyaw8z6zb3sE8l9cSxxurSRPK7Kyg7ggmm4zi8OvyxmCZSIB7y9rm0GKUCBGIJHcH sEbpIiyIeSOAysO4O4OdxEgiw8MQQaLzrz15hvl1o2tldSwR2yBZPSdkq7fEa8SK0BAzl+1tbMZe GEiBHuPV6nsjRQOHinEEyPUdGReQbu6utDaS5meeT13HORi7UCrtVic2nY+SU8NyJJ4jz+Dq+2cc YZqiABwjl8U8utQsLQgXVzFAW+yJXVK/LkRmwyZoQ+qQHvLrseCc/piT7hapb3NtcR+pbypNGf24 2DD7xXJQyRkLiQR5MZ45RNSBB83nP5l/8d2D/mFT/k5JnLdu/wB8P6v6S9V2D/cn+t+gPQlube2s Y5biVIYgi1kkYKoqABuaDOnE4xgDI0K6vLmEpTIiLN9G7W/sLvl9VuYrjhTn6Tq9K9K8ScOPNCf0 yEvcbRkwzh9UTH3inXOoWFpT61cxQcunquqV/wCCIxyZoQ+qQHvK48M5/TEn3C19vc29xH6lvKk0 Z2DxsGX7xXDDJGQuJBHkieOUTUgQfN4QtzLqE8uqXJEl5duzySdaVOyLXcKoAFPbNF7T6zIdQcFk YsdAR+H1HvJ73ZexmhxflI6ogSz5rMpfGuEdwFVXeG3uJ7KSPUbV/SvLRhJDL8uqmlKqw2IyHs1r Jw1McPPHlPDKP6feOdtvthoMctJLUCo5sPqjLrt/D5iQ2rlunM350a48TollbxuykLIC5KkjZqE0 2z0odh4wfqL5LL2tzkECMQfiksEfFKs3qSP8cspqWd23ZiTUmpzyTtbX5NTnlKfIGhHpEdwD7f2F 2Zi0mmhGFEkAyl1nI7mRPW/fyUJrmLTb+01RbaO4khlFYZRWN/hNCwG9VptnT+x2ry5Jz0xkfDML H9HccvI3u8X7f6LDgjj1sYR8UZBE7bSuMj6u8jh2PzvZkn/K6tZ/6t9v97/1zs/5Dx/zi8N/ouzf zI/a7/ldWs/9W+3+9/64/wAh4/5xX/Rdm/mR+13/ACurWf8Aq32/3v8A1x/kPH/OK/6Ls38yP2pd q3nvU/NAisrmNLe0iJlkhiLUlYU4h6ncL1pmo7dxnQaWWTETxyIjf80G7I8+lu69ndV/K+tjizgD FAGZj0mRVCXeBzrkeqGKKylGAKkUKkbU+WeXRyyEuIEiXf1+b7NPBjlDw5RBhVcNbV3Vypnf5T38 7W2p6WxJt7CWNrYnstwrMyD2DKT9Oei488s+mxZp/XMEHz4TV/Hq+XYsMdNrNRpYf3eOUZR8vEjx GPuB5M9yDnuxVA67o1rrWlT6ZdM6QXHHm0RAccHDihYMOq+GXafOcUxMcw4ut0cdTiOKdiMq5c9j fn3PCrTy9ZTeeG0FnkFmLyW29QFfU4IzKDXjxr8P8udfPUyGn8Tbi4QfJ8zxaGEtb4BJ4OMx86BP 45M4/MzR7bR/IWnabas7wW96oRpSC55JMxqVCjq3hmp7LzHLqZTPMx/4l6T2g0kdPoYYo2Yxydee 4mUv8g/l7Za1pUOq6ldTFUkK2tvGVCqsbkkNzV9mcnYU/HLu0e0pYpmEAPMuJ2J2FDU4hlyyNX6Q O4HrYPM9B+lJPzK/5T68+dv/AMmY8y+y/wDFo/H7y6r2i/x7J/m/7iLLfzh8yXVrDbaNayGMXSNL dldmMdeKpXwYhuXy+eazsXSiROQ9OT0PtX2hKAjhia4hcvd0HuO9/wBrF18n+V/8Jm/bXoP0z6P1 gWgmh4/Z5ejwrz9Tt169s2B1ubxuHgPBdXR+fdTph2XpvyniHNHxuHi4eKPdfDXPi/T0ZF+V+uXV 15d1fTLhzItlCXtmY1ISRGBT5KV2+eaj2j04jEzH8UZX8novYvWTmfCkb4JRr3E8vx3pPpmnG9tt QZBWS1h9dfkrgN/wpOeWYMHiRnXOMb+19mz5/DlC+UpV9n63oPlDW438rGadt9OVkl334xjkv/C7 Z03ZurB01n+D9DzHaekI1ND+Pl8f2sEa2lvdP1HWZ92Myqp/y5G5N9w/XnOGBnCeWXf9pekGQY5w wx7vsHJmfkM3A8q3BtgDcepL6Ibpz4Lxr7Vzf9kcX5aXD9VmvfToO2OH8zHi+mhfutK7TyTLNeTS +YrwRO9GBSVObk1qSWBoBTwzCxdlGUyc8q+IsuZl7VEYAYI38DQS7RpJNG83paW0/qwPOtu7D7Lo 5oKgbbcsxtLI4NUIxNjir325WqiM+lMpCjw37qRP5l/8d2D/AJhU/wCTkmW9u/3w/q/pLV2D/cn+ t+gLfM2tS63dWmk6dWWFOAHHpJKRSvyX+uDX6o6iUcWPcCvif2J0GlGnjLLk2O/wH7WXwWsHljyz K0YDywRmSR/55iKCvtWg+WbuGMaTTmuYF+8ujnklq9QL5E17gwXRLKy1u9uLnW9SW3AoSXkRHdmr 9nntRaeGc7pMUNRMyzTr4gE/N6LV5Z6eAjhhxfAkD5KulXI0PzYkFndC5spJEiZ0YMrpJTrx2JTl 94yenn+X1NQlxRsD3g/qY6iH5jTcU48MwCfcR+tHa/8AltqB1CW70SWI29wxkls5yycHY1PpMoYc STWh6ds67W6LT6wA5eKGUCuKO9j+kO8d/wA3htFqdXoJEYOGeGRMuCZI4SefAQDseZB2HTmVmifl nfvfRz65JCLSFg62UBL+qwNQJWZVHH2HXHQ6LT6O5Y+KeU7cUtuEf0R3+aO0NRq+0CI5+GGCJB4I knjI/nkgekdwG/XkGfTabp80Twy20TRyKUdSi0KsKEdMvGWQNgllPT45AgxFHyec3n5Y65azMmmT w3Vj/ulZ2McqD+UlVZWA8dvlmHruy9LqpnITLFOX1UOKJPfzBBLPs7tHX6HGMMeDPijtHiJjOI7i QCCB05H4Mb17SvNPlTUbHUbqOCSNG5QsgMsHPescnML8XH+qmo26DsLszSY8coYzIzl9RO0q8q5D 8Ho8l7UdrdozzY8mYQGOJ9MY7wv+lfOVddv6NbvU/KuvaF5j04XVrDGk6UW6tWVS8bn6N1P7Ld/n UZiavT5MEqJNdD3u77M12DV4+KIAkPqj3fs7j+mwnX1Kz/3xH/wC/wBMxOOXe7Hwodw+TvqVn/vi P/gF/pjxy718KHcPkkvmrydZa5ZxpGVs7y3bnbXKIDQkUZWG1VYe+WRyAxlDIOPHMUR9xHmHGz6U mUcmI+Hmxm4yr4EEdQRsfwGFL+XHm8sIy1km+8/qSFadyE4Bs1I9n9GJXx5DH+bQv/TX+h2h9oe0 zDhGPCJ/zuKRj/pav/ZM+8r+W7bQNN+qRSGaWRjLc3DChkkIAJp+yKCgGbXJkBoRHDCIqI7h+Orr tLpzjBMpGeSZ4pSPWR+4dw6JvlTlOxV2KvCorqCy/NKW4u3EMMepzF5H2ChpGoSew36515gZ6MCO 54B9z5lDLHH2mZTNAZZf7osz/N66trryhZ3FrMk8D3qcJYmDo1IpQaMtQdxmr7GgY5yCKPD+kPQ+ 1OWM9JGUSJROQbjccpJn+VH/AChdt/xkm/5OHMftf+/PuDm+zP8AicffL73nH5lf8p9efO3/AOTM eb3sv/Fo/H7y8Z7Rf49k/wA3/cRTz86tOnGo2GpUJt3hNuWA2V0ZnAJ/yg+3yOYnYeUcEodbt2vt dp5DLDL/AAmPD8QSftv7Fnl7Qvyuv9Hhubu9NteLGBdwzXCxMJAPi4q32gTuONfvw6nUayGQiMbj 0oWjs/R9mZcIlOfDMD1AyrfrXeO6vvZN5W03yfBpusXHlyZ5l9NoLhnYkVVCw4hgpp8XXvml7Yy5 zjrKK9JIem9nNPpI5DLTkn1AFLvy1RX1S8RhVWtiGB7guucR2EAckgf5v6X0Pt01jiR/O/QUovpL zRZdV0ZSfSnZVYnrxRuaH/ZKd8wsplgM8XQ/2hzsIjnGPL1H9hZJrGmfo78v4ICKSs8cs3jzc1IP y6ZtNVg8LRAdbBPxdVpc/i64npRA+C3QL25svIN9c2xpOkrBGHUcuClvoBrjo8sseilKPO/1J1mK OTWwjLlX60s8qW3lu8F3Pr04acEFBNKyVFKlgQVLN7VzE7Ohp58RzHfzNf2uX2jPUQ4RhG3kL/sQ VsbA+b7X9Hgiy+uw+gDy+z6i/wA1W+/MfHwfmo8H0cYr5uRk4/ysvE+vgN/JM/zL/wCO7B/zCp/y ckzL7d/vh/V/SXE7B/uT/W/QELrWjXPlu9s7+ydjCwV4ZWoSHAqyNQAb/qynVaWWlnGcDt09/c3a TVR1UJQmN+vu72Z3l0vmDyhcS2YrJLFvEOokjIZk/DbN9lyfmdKTHmRy8x0dBix/ltUBLkDz8j1Y N5WtvLlzNNBrDmFjQwSF+Cf5QY9B265z3Z+PBMkZTXdvT0XaGTPAA4hfftbJrbRvIaanbQ21yZbt nDQiOUuvJPiFWA49vHNtj0uiGSIjK5Xtvbqcmq1pxyMo1Gt9q8maZv3n3Yq7FXYqh9Q0+z1Czlsr 2JZraZeMkbdCP4EdQR0yePJKEhKJohpz4IZYGExcS8Z1vRNd8ga7HqOnSM9k7EQTkVVlO5gnAoK0 H09RQjbqsGfHrMZjIerqP0j8eRfO9Zo8/ZecZMZ9HQ9/9GX435iiNpvbfm15dltIJWgujPIAJ4Yo vUETdwXqoI7inbt2zn9RoxhnwzyY493FIC/g9hpO2fzGMTx4s0/53BAy4T5nl+mujJ9F8waRrVu0 +nXCzBDSVKFXQmuzo1GHQ5j5cMoVfI8j0PuLsNNrMecHgO8eY5EHzB3CYZU5TsVdirsVdirsVYv5 i/Ljy7rt8b659aC5YASvbsq86CgLB1cVAHbNhpu08uGPCKI83Sa/sDT6mfHLijLrw9fmCvvPIOjX Xly08vvLcJZWcnqxOrJ6pb468iUK/wC7T0GCHaOSOU5aHFIV5dP1MsnYeGenjp7lwQN9L6+XmeiZ +X9Bs9C0yPTrR5JII2ZlaUqXq55GpUKPwzH1Oolmnxy5ubodFDTYhjgSYjv/AAEl1z8tdC1nV5dV up7pLiXgWSJ4wn7tQooGjY9F8cy8HamTFAQAjQ9/63Wa32dwajKcsjMSlXIitgB/N8mSajp1jqVn JZ30Kz20oo8bdD3BBG4I7EZg4ssoS4omiHc59PDNAwmOKJYbJ+TflR5S6zXkak1EayR8R7fFGzfj m0HbeYDlH5fteel7J6UmwZj4j9MWR6R5U0PSLGez0+D0Uul43EnItI/wlalmr0qaDp7ZrdXqJ6gV M/gu87P0OHR/3Ua3BPW6WaF5S07RbiSe1kmd5E9NhKykUqDtxVfDNTpOzseCRlEncdf7Hd6vtLJn iIyA2PT+12qeUdK1LUo9QuDIJU4gohUI/A1HIFSfbY46js3FlyCcrv710/aWXFjMI1X3IzWdIttW sjZ3LOkRYNWMgNVfmGGZGq00c0OGV15OPpdTLDPjjV+anpWgWGm6dJp8fKa2lLGRZuLV5gAjYKKb ZDT6OGLGYDeJ72eo1s8uQZDtIdyUt+XPl4z+oDOqVr6IccPlUqX/AOGzCPYmC79Xuv8AB+1zR25n qvT76/A+xXn8i6LJfpeRtNbvGYykcJQIDEAF2Ksf2fHLJ9kYjMTFxquVdPg1w7XzCBgakDfO+vxV dc8oabrN2l1dSzJIkYiAiZAKBi37Stv8WWavs3HnlxSJuq2r9TDSdp5MEeGIjV3vf60w1HSbPUNO awuATCQAGFAwK9GBp1zIz6aOTHwS5ONg1MsWTjjzQmheWbPRWl+qzzukwHOOVkK1HRhxVd8p0mgh gvhMt++v1N2s189RXEI7d1/rQ2p+R9B1Cdp2R7eVzykaBgoY9yQwYb+wyrP2ThyHi3ifJt0/a+bE OHaQ812l+SdC06ZJ0jeaeMho5Jm5FSDUEBQq1+jDp+ysOI8QBJHejUdq5so4SQAe5Ps2TrXYq7FX Yq7FWNfmSaeS9R6UPoqSQGoGnRSd69AevbMvQkjKCNyBKvfwl1XbYidLISNRJiCe4GcQebytEREC IOKrsAM8zz5p5Zmczcpcy+rabT48OOOPGBGERQATnyPLJD5108RMV+tJPFcKOjosTSCvydRnXeze actPlgd4Q4SPIk19oeG9qMGPHrtPkj6cmTjjL+lGMbF/1T+KD2DNm47sVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqld2tvd20trcoJbedTHLGehVhQjb JQmYkEcw15cUckTGQuMhRee3P5VX8UnHTdSRrX9hLpCXQeHJCA33DKNT2fotRMznGUJHnwEAE+4g 18EaTV9o6TGMWLJDJjGw8SJMojuuJjfxDIvKfki00GSS7kmN5qUy+m9wVCKqVrwjSpoPGp3zJBxw xjFijwYxv3knvJ6tOPBklmOfPPxM0hV1QjHnwxHQffz72S5W5bsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVf/9k= + + + + + + uuid:250ba046-7868-6d41-8972-a17a0484c142 + xmp.did:F97F1174072068118083EC4952E7F74D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:F77F1174072068118083EC4952E7F74D + xmp.did:F77F1174072068118083EC4952E7F74D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:F77F1174072068118083EC4952E7F74D + 2017-06-04T23:01:31-07:00 + Adobe Illustrator CS5 + / + + + saved + xmp.iid:F97F1174072068118083EC4952E7F74D + 2017-06-05T12:51:29-07:00 + Adobe Illustrator CS5 + / + + + + + + Document + Print + + + False + False + 1 + + 600.000000 + 150.000000 + Points + + + + + Roboto-Bold + Roboto + Bold + Open Type + Version 1.00000; 2011 + False + Roboto-Bold.ttf + + + + + + Cyan + Magenta + Yellow + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 14 0 R/TrimBox[0.0 0.0 600.0 150.0]/Type/Page>> endobj 10 0 obj <>stream +HVMo0 WP_tW ( 00ɺ)Ц(· C<`{|Odl>6bhH5fMKb~R f9m1T-5l">IL%M/-ty~)D? endstream endobj 14 0 obj <>stream +8;Yi[b8%r<#Xu@U'r>,n/*MM,#5hpoRpe3BN^?'[\`[[+s!%eN$'\A?j2soD0YpRs +_'E$Z;bHuY]I30RN*;f[KgA]#4WU(2>l'i\_`,D;0lQ28GH=kZqFF@m\WQO#Sk!oW +;>'mN]lS>l"HBY1Ug02>0GUaf;FN7)T^r^JVf;1ZH<7N-pb]95*k>0CYIrB7'pb-i`2)odcm-j"g],GR5P~> endstream endobj 15 0 obj [/Indexed/DeviceRGB 255 16 0 R] endobj 16 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 6 0 obj <> endobj 7 0 obj <> endobj 19 0 obj [/View/Design] endobj 20 0 obj <>>> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 5 0 obj <> endobj 21 0 obj <> endobj 22 0 obj <>stream +HW{pTW{n6H6,gfc.ᕆtt$l]Rݼ%%C)ҺbVDkAEAz:V3u2 +cі % qg;=ιwb8BWΘu$\hPwn&ljůiW}۫do3S@^ov}c@ѫ_rg] Uz@qP0g}_IUFwYڲvzF{g`'|*S6oݶu`)S޷/ Kc9XZYfSGM(3o!vӋܲդq+@O!XrZo)=ӅrPL#Jqd i{Ѡ +nP !YFu*(@!&erTJL .h՘@>@ fbfcwP|,B4"4 X܋%t#VJBj~:<Q¿s<8-o.^)H ^2^q?ī[ЅnlGЇOVlx z$52;vjN{,,d(vʆ]:D4FT4 +Yc5PXX,*dV(lЊ0eY&UkR݈D"v O$M]fhi `kXf=A# K+I$23)RYP뷪nC4ƴJ*2&:)hdN +J'mAC4$%k:$ +)c%o^y$+X+.D貐nWNNfbӐ6& h1&?VKU} +2'Ǵp۩ZiJT|2MKvb s,2ͩ1 +]sFn:I9E|2-o̝:^Kogmt47 ⏌;0jZRfCAS1*Ƒ6c?Vթ#NeUa`z>-xzǼܜLE +5óDV|{-+,(%E)eaY82Yv+qɚ8Z5qw3 !vc QI%2z  .'0<"*&O(ΰd,)Jfj gsy01ADAy1@1؈CQ +h +Zè)U(tXjG[1:(jsO2DwgZZkofzŠ+f_w@uИ0|#c\$I\\=hKwocΏ)kcknFsՐa&qÆe'cΨE"?aOc}Ov9ts_&Ѹ`ˇfy;)NzV0 ĻuG\f2%4qygp-,?/]Rc̥1k&݄ޙW -W(M92a%UW)26clXMNjsCJlj݌-f1J{ܼ_|v`9 +lK)Yff HM@7z7ięכ1XgFN|JYCFLgN\_w'W92DŽȷc0b)Nl X|6v 3"6M-~Ov0,{yg V3xs1߻:SIPӓ0ۃ9}'h_;EȖXd=$ N(>bQmWYbqH,>@Oߏ">Qb1:rh~y6ϒHو)Gb-e(x\[tF©~q[w1tFpwO|&p0VE䈮v\ WX!"M>;L>luE݆;`^0W xKFȜuysF/]3Ruy/uOV5ǹzzmtWE᱋s^~kvk^z\Xܸx,|s#88M^|if%jn +h"c<ͮ>?e[zO>SNO܇=&9(F_rq'Vp }4?b ׸\_DYʺX=XC\޽ +'ϢO*l&]pG#f8|j8TȚ {g<~+]̣gR|t-zHxk)̅S<]h'㼌B̄okpVD)G\dʹmXNJXaEW s Ǣ]]k;]<>e=oAya -ֵ4|nVSn\^iqpLo*έ譡{cIMeo#t;;DJbg|,NV? p}}⳰%K݃8?Agu&,k]qoBS`JaֳBs'1_}hh5m+%^G7L:͓c/K 7o[!M<n'C}}FlO)]RY0#əQ]Bl'nf}a^~Axmm#G'#jvzMpՅ>-Sz{GX~1w\Go3=`e${'ŴE?\2w&q~E PcOi1Q㿄Y&act"cZ}\'5gi?8}A4FghU7jFz}sw4<|oMcWMLTW޻o1 ThGZՐ?"Ccfh-41h5AFiƦ ӮlESv7&<Ȉ,XhWsOwϻ{~9V9#f&n?!ʘm|={LX~*- ^-x~ cjzfI aT :{}} ƛu„m$ǐ{ftlg,}~.gLɼ<y~G\ZV"ʵv]֤~Ƶ=^=k9|"ູb1ü7Q 1^|D|Äŷa6˻~4+gM95}$Y!b<WC9wsA)&hc2z2LwjVD ^Z Aw! zp8^#6-o YYŠ!6Qoؼ EI7ioZ8B_fs#R~C7zEjM=<Ƙk>Ym2'Dŧ2;@ +FGۼw*rls`#8BH#$lM싨c:`~xfl7S_iZ"S ۥI_CD%*QJTIM|@A֌пJzZJ%QV\KMXQ ?vk؀ױ\^/7A󻼗|˛hCpƊۊ9#djsd*a574{#NqjN*k l+!;=h9}u024*M.ƶ"$џmc÷|k;HaD`gv$ݔ%)nh >ž ٟP^A9[`e''_r">ĬlYUʢj$[jYٚhu+[33ryXgW`e5zkG=O F/ endstream endobj 13 0 obj <> endobj 12 0 obj [/ICCBased 23 0 R] endobj 23 0 obj <>stream +HuTKtKKJI,t(݋4K%ҹH4J#Ғ(H +wqyy~3̙g<3Y9El +@ ]!O-@\+BVKK :OX~WCaiHKL0qY `5ck +X]x= 8 XĿ׽>.f#aPn D^{y8  dp H st:Y׬cxc IV?S!:_9[YbQP~+rA +ShHht^ '0߅™kYXY9Yqqpl'WzEE$%D>,^|t*K)%/`\ҫ:&D [7dplDa5|mb4,yy{e5 3⚅,t+whlA   m k +xYUH&%Ȥ +qO'Mz3KT@v[NUnn^\o]abTrtlmE]e~U+jאZ:zaqi5};CS[\_ۆwCaQ1;>L$Lz}4:%8M7l̎Χ/}XT^]X>\Ym[n!ycskkƶʷ;v{pIs0Xݯ3s󝋒&$WWW*)!$$%!e$cHNOAKIMEq ƕ;KLw@YX;ؚ8^+DspfKOTCPpJ%D=++O%$*8IZ\Z^UK_wL"dx]}>9=;s_G8/̹N!Gz[<=2|B}PQzlH0Wc(Een|Pds::5&89yFT"od䳔i/ZK^&gd:fgQl kJХeJ*+篍kj5U[ZUh0|em6]B@`PpH?QM1Msψ*iϛ.Z [JYZ)X-]R޸Ѻپw?@?5 ǖ'vNg +W3gLC#u!MMMEvAms˔FVNA̝GLwA̬,llؿsݛnͽ+!B²" 'R&k?3?4+:6oT\ұڿ6VʝoF?LT;:>::>:;eqvx^sawݥʕ'_EFO\DKLtAnFF)F|ԭ6\`@z?m+F;LwiAhy͖)Mgw~_ @ZH_XA,"F)%/*9aZ:Q,\B^_AU񡒀2 +*'[j o5[uR1uh`fm$1xJgBdrltlyyEe$feg-g#`dGbwj0TOC9; ܨݿxz6zx8IP=A!.aAxۑϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{T?~ò~i~L}~cbA~Dad~ty~W~O>~\/~|~`Cx}%H}1X}%z}K} {N}׋<_~7A~-ψ||Dz|+E|[s|z} ^}wO@}-~ċ {Gu{Dz{]Ĭ{f{Zx|[]|ϕM?}R<}Ǝz]YzHħz|z={LNw{\|=>|v|ېI8z/r z;bz'sMzd6zɬqv{D[{0> |;|yyaIy?yazYvzݮ[{^=c{ФI{R*y߄yfUy`VyyuKzZi{ <{z%zȎ~+~}͇}W0}3}HtЄ}Zk}=~zɇ}!~Єd*s}Y<9wpSwuuVrUW؈|;,뇔{RsѲ;:8q)PCV:4.8Ȅ2񡂡?Up Vu9S c bփR.ՁNn U388A/ͬδz6߆өn1T\e7݀tXT)$̯̕6;eCʷˆ imw3SƀV7M +\lGNػځNāa5tNzlߴS<H6*-N}o2ن N%է>w֣A}⇤\fXMݘ2, KԐ3g°[} +0e6M _1 ? 1ӣǾI^I|B̯dܪwLe1$: rW] 1S{z|diL g0\ U{[G{!{ ޔ`{&yE{xbie{Jr|/c5}~ +~:f#MKx+Ca|uI~.yW ώәߎ%¡唘[w!^T`^H*- 5GȨ瘎=Π4rv_ҍRGf,ދ̋|,ƕ{ Ҙtٕ^1Fő,;',#h%T,Qۥ{[s:9󅼓&^!Փa@!" y +.Jl6mHju,bU6+s hܸd-ʥ}wi-sun=0Ľi-_*)U_ˈb$na+;ϧT;ppA7C4.*Iߥa8Mm.ACi7\j|fiԫ)]ޭjʄU]3(í whJch-4x7h׿*P0H됎L랇ڡuÂ,{Bz}8vggҲd[!XTZZ.vlAg +{;Sm`vؿ`~?ga. +3Ì{L^WYe4]L7ok!wI~Ira^=C#Zh`Wu}p)"z7ff&3$FJ8Ҷ5m +uR_,^VS&aR~PfLL_Dw*`\-9]q  TI6)>u6 D`e͢/xqY%9ʜ;åOd\˾P&eRz;].R<oΡ]P{?: r̨\ʻb Ҥ3|m s؟W9oZt]RnÅ\cW#+nI&gyAjsN06HiD'@J+a5V~cRI̫vwtUc[3+?F|l(iU^+O?Rs1Hqil$Wþh=(RE +1BvџnF/ BsGMY9>ܖ3ȗqI ڣ5V_1ȣβiJiX0WVH[8g_/ +n3 ` 38A.|f|ј0I6bv%& ;Y㿜҄#dD.).p'3J12K[Duɥ$s8IƊ.z^48e!R6}vcMiozo0'=~i,3:?-?oS,9w#ROa; ?pB +֞IO ݟe#}ԯN$\l?], y,>&Рq]yh0AqK)ĝBFҍcH:-h-ǟcf)K9T127]qEjL<>h;|U +dpG +ƫ`&!8al`83>.qɂnA9 +; `HByg KB*k㰗2fF=#OM eT? +mTm_OBۊV<ɆF('n3uG~Ȯ#7Њ9[١`Ns.P..콤 'KnpF\? B>-`NWOOWBlfxW^b-_x&*/(j_=߆󑊢zF`LdE:SNʔ@S 03|TOKokto}bFz$4-,.m'j*J|)J6BP ^3ewܫpX.*,07xPڳ:2XOT21|"7=0ߴy}ĸB)H[Fs V+̯+Y(I(x&9JAI'tXmyG=X[8TK)2<TSRvxlȓGO|g/{>4/gRFȶ&A52 uЯ*B幃AuFǞѧuD)B,*?n` 'qQIzK֗4{B_g68#ʉ2.A$69!̒ub1&D3Qx" >ɏnνxVG&TۨÓ)sxd-5KxߣD&1±jdGjJ|J{Z ޲f6/vTp̄ub PmBU#gBg˷)-*E +ar>>Ƶrn[ɭF-IByѸP=ĶKUC wG D}"vN.p]]Q8uY{#qCv}sax_oyiNr( d8aw2CQ}V8UWO\g \yk@dcZt9$u +p-1z(=f) +vě92 w u煼ת#{P6+Dq3HIi%BCb!kc5&U ):X$܎[b2*@PkcӘdoTB_L1Uwi")=2#pI9,RO>T@>;bnDPuCfk^^\G~ oLRcHqܮ=-8^5Ońy*9:-\g8:T<?*C;[yX+I;lRL߭$DvYTQ6DyVmfy%/sIsmXP1Lռȭvow)QBb_LVwupeėO*|+](uHװ4WU.{ 4\m.QwR~MAiRz+%BKz?'{ k҉aa{H]sX}da~3_auQz VM\ĵv5I0LM)DŽp1:5,&4 %!$}ocޤA]R^xT◬M&/B:DwA24?cd&g]5b4a?iǐ Ĉ.OA 6vfvsd(5yTH/P=(a;zUs bWxDa)Eʼ $sgPJreY3w`cFo0|U[j5k.5J&eTor È´}I lpjC8c5J=g%Uo|L58E" +ِ[Ak]J͆VBM"{NrQihЦ@Y?6^߫ZWٯ]ذc؋hKSLj:>O ɲ.ݰQ{5mm<ٷ?^v"}ъw9O&vX7km[ ,70nΒ7|eP\I;-wgFN cIP#qWI ;NٶA)H~7i thl~~dzY Cx2>*c&mb{9f1X*L #> + V@g蒼]7n249=MK% ;,F\j 1klZi؊ΐ.|Q9а$_.!;̿lE,ɥDi}D3^a`Y5g{J=mɳy3CM'jM-iЦm n5? SJE+U~ ;q.tXd~~p*QeS%.Ћ"ưBsZ6-6[\d;^z4`;64藸ͱw;|+&AfLU3XTm)lF'l VɺgcGObbɜ9;v \CL, >B?KGCe"z -@EHILp<5'҉$>8#gL2m c1 c Fw)P+rkC qp/u8#!*g°Pa`vu@oH`"Ž:z_Q<,D>'ӅWP .`xW3|!6 +5 El[",0 e[Oz0~lUO+&xkPc|u$k.?{Qp""kr6isVa=~@W_ +.<7 +2#h?c~m'rE_xs6aG+K 14L^kUp^^_mS^dШ'>}5$:τ!E[bJx&n t(m;ZsF5uqX.ՂBqKP *l%{ٓ{'f';,TT,bhUq2Z3;}T9vwRR;GD + K*/@hUv$j!@ vyבm,W|-͢ ^ ~D_􆭍"ĉ#c禘*X/Ϝe>|XH;:)d9gƖ4aBQ4Ew,C +ۯBU#>SV$L-5gV ϯ*B#} npþtdU$Db&$^\^&Z"/˺+-}%Z:}9AYu rTlP0"~! ͚*@5K?߫Z-P=j>܈[O?)a5 +?WUsy5^(ge${Cm> "Gգ+$踿ϫ& Xw8?g,'ō="/xNM)'EFqrf CįQ9ZY$r!6m)4 V9kJ$# FьX٥Cp[ģ)CS;rFP#ImKGɺzj>>X9,ZL-jIbkȉ8˚?vtxPIO}_ay@:|Ve6ubd/e3<֭ztea'cLaM +lz&,f^_!?l2x2Xyń3D)\?ye ~4O+9$  +EVDTSؓ7X?MM!ԼuOtP Cbt;iްa@gW#@4c9.Do z2>M5i~u0 qswQ9ǸLt삟Mz)>kɝI;io"U)]$YL >$$T:gUo$UK,C`sCMAJMÄKC(g]ٮ9sUG0?L5QM%0Ol5&`Ƒ1,x'{k+mY}-Js#\d:i/NK\8HstQ#-ND).s*Zymnf\1l{(E=VGW9s:?wǟQZsC6A1ƃ6K@8OUY^`7j6@9?,yt4&}"T- +\Y&kVx녣391ٵqQ=beMq\`/nņ|2͌JkzDmͫIR4\~5NlօKɁZ]TC3l̅D3jSS)tWw$IX[wV +WTUw^PeUhWE^ؓ~Wchs sIg`wgs (5mr] B`7JfAaA3ƓG?{O[ ?xj/Z*7exXz Ά})C?`KcMՌ&)Y5J]q':]$؞]Yv x(ıH1eU>_0b?*񸨎b¤،D;Wxm]|N7U13*;.=>SÜj)CM>.eI1/QvН6Tkk+Ɯn\\FFV#Xde&~WE7"bju^I@j@bQ Wk8w_D ^z xZKA _`T}] +x}ЁM0S,rV+ KO&ƈ`;E{irf0F] w86f fm_8c3V<)r1p +hs|p!QP'Ղʛ2rӤej4Y r, r?4! Uq]f(*&umM+;1 +-c8CjL=L1TDJ7>)BH*cHY}~xI,{7WjWާʇhg_YovMKiN> QRǧ}AQj^G syJG"?txt,L>֍p_>Po$^<%}KDS4 +*S<ܖyd;éIJ~JMn>ȸcI6uɖژ䩊i77_5W2' 9t^}/8%wd0k)ͦF9kih3ShPBULzs'0$Y/L3ol|f ɪ\AW#siS-O^I+36xas @M +A hm45V-' ѵ1S+ ~*%~k˝ʉl * +lك=3_2~OgPs +Ccd[aے{<ХjA {! ߲ۓ;O'9+wEHE&JV?fiӺ j05瀶bhWZxo=ƺ 0zhK5mov (YOut;e=R*yMVn,$v:QڳE.yVl;svn,Wi.[@34SD_!MF>J柣ND @$Y~-CMu (+lBpБ^#$~2è /@̣6 3nh +;۪.3Fq3\َvZnZ"/vNFNJ2V{#ΚVse_쑮Ta8C¢!Η>FL\M{5eH~7;F AB?VY=۩Q i9J.sӿc%FVbdեiL`a)kD=W \ne>NX7Ƒ†2IYf-to7/~Uas[`W*v3_`~:kjR("E +* +e)DDIss,f_n6":hmh+]AqñQqSa9{~8|~bh6GZĠםN\h+(E30~kTMGβ1:zka'LG2>,gt X&@?e% +=@Ihs)HUOeX^m7R7~,, \jJԌfͬ8!*]JR:WR]Mɚ PZ;JN.8ɦ,[r*Α]MM"waX)Lbjd`>:?|:?u>^G$fa. +ʥ_S%ED8 J=ĕK{6r zGG Ui<Kg"^ q +I6vPWy^,uc/5@:ǹ+[N+li{P#^yv,ñ-NѳH⺣<֡gxV</nb6󴳜Ρ +nhB˾PoT(W##ĉTwZU} w-vT-9O᭺HIz) z9R'dI5aZGS˟agW=.P1ٜ y?2X)r4VaGXBe`9Q1͚@85$W?D}z2* +pt +;Br\ܕ'> -vCNeʔL-ʌqKHr 7I d<BgNelB^փRγF2AqCR&t7߄{" D9u)Cw1t}?"'[7o̩~1{>Ru* ʖdClutqf2[l~{S4>J$.nQnlP#x])By`r+wLH?VD:|iUG~ժ+&+Rb gP>}WԹkQǖ]WSkqwZ +DQdVd24KGMvU35KJ~4&jwJ*y;X߉˔O@5hw)񘴕o-9E:_̂o&6#V(ѽS-te$ פp}4%4mrnzhe4KX*KÃ29ʩ~'Ǥl|O5ÍB +;^j㛑Q`exH;J\*`l˴Khk +&tF|(8VǡܷR:ϳoG*UjSKknRgl ޅ-6&Nŗ7O4rGmO[du_TvY{ ̏Iy\aRKy&P7ݪJ)l"W5{K S_j0WSW;wixF1^lО伴^'1b%OAXhq)L7j}=9PX=n`ɗKX#CùA *7{ jWܴTByufכd=Af]F=_u*`q+_i݋\^`BaE|S&%Z a8+QgQ[IK-jIKr2Tcju=A ʧQ"7{ٮם*X|,Yzѽ}ƈf:jCo[>]x^hlhNrϳEDkcCǪ ת9c Ht<)}z!hE~DBӳ2S͆i{;ouIp??砃46ٺ^"1R<-65sjpCSjqi6dzھİ紈 41.$5EG9:=ob쾄 v#[xﯦAF+T(C@RQF772I$^a$Eq>.AEbiO0]ТK5ΫPÛG ZdJ*$d ^}E*֤>?Ƅ$dO _tl%$^7[KSECqz"$]*B]}W zT[Rk"n]EUYvFUW\B6-RB^Me2B4/wͺh4Ek5˖<1U[tD>Q!.kR涧7uJc>c +l/i^3;iڐ0sĀZnS +qW7Np:([568ViAFޜ~h9Pldüj2dO ++61--1Ewv =JCHW34܏&x8,&#Rc3Dvz6RSyu_N/nmكvT֥Y˼?RFװKzn9Q4gC^5l`P\ܲG&ޫ` 9PҞٲXr6 +V4,{a؄\tcY`]lǿԾar鴯؏=b!&Yb ^[\aYt$w +[R)i[{$7f"o Xp +zBz'hO|Ō4ǐ|-j +:}̴a%Tv5Y9QK d0 ?$ćH|#uD3 phrd@,@XmVKY@ou([8#!OM~.7SoJn%OG" +Ü3N|/'O-R_1Vh&׺ NPz8de 勊ZTH;XQ6}+'h_|ȋCcuHjBA,NOS{3 L`]1> A rxӴ*E^.ؐ`Q5 v{`=W6뼟\9avGOXc& v1w~0W:ʎ~f: 0/˵%m KRKAcR% P#CSߥfmD5oEx17B0<&Yd8"1wܡ5 TaaJ3p57A>+yIMcu Zd?Bk1x-rsV9sH6p]DGgO| y5S$aE`$Ls +[Ym ~u8p`6*I ߕ`S88sn9O3nXOE /7f^lbN[PBFO.9Z_.5>F S̉R'}ΪѬ`_dX|{dHXԾ3QlZe7PRqشO5OkZrx5u`aǂ:*`T), +DPQʮdߓJRk=H+ +*#u)h) )B6s9߹瞏HZGzGT"93hDͺ sr|b4y $TK "$I~$v(B#].qi?CN ~ޱ|ܷLcOnT~vxj̦5<.f\K<2p:CpSy,66>|zC +E +T)f/:X1}J+>_~Q;^ㆪvs&۸>.k7yZS:˩㜍rݖۜaKa!l.g57Kv0!;ڗfe %]"XT J3aժlwVj=v姠αe=bI/gH& :g,(y 27>aba88fVVqɌT0NɉB`( _"fo! t}Wg_0}HX 9,Qx=~Jٹx>ӱe9M2mFS)Vk-eZFF٥btg0O?Dǐ%7eyښ6WSCyeUS}l`a8i g"1лJ"|PKڝc,$+&PvꖴGBoj_t4I vqf熚(eC!b׼^SbYi1¨;2W`/7uh?4 +!z@#(T 6 ^!R S#>E/Sq9z_ /G%ӈ0C9[ۼ@(٩P ,}XTOkpQȫUG6 x2e,> -?ϭQެYz/T5FL^`tީ3\#̬D:,vw[mDW)TBZ`0Ֆ`3tBQ˟kks41y `\޸cV#z`XHhwA0چFTyqӵܫ*F˪%*/>9 +gS'"b'zL=N)cs*bR)W<#S 癛)K +&L\9WtW!Y17i*%wJ_ 閥nWJ!p-0T`:K6B+SzlL,~J#ZLHBEe߈Eq1 +ڸTD}bB;*OTCnՍl$OYQ0mz7o9NŻ|hDV[Ve֩b7YZÖHl~I)ܻJ5oOݑ%(,hZGҼmRd!/NEWutV57z;jjs^^lDǾ0-a_aL؁w44簍b^ppi&nX uƻ-݂ -cY4_g ?jGIfH %J҂[%ϩC6OzvWzoZtA$?z;ؼFT2/+0@@S<@>0bSuqw;j4S'/4sEթ(P[V^5ƊHkg/ۄw 0*֭ ajyB5TC J(_F4!m, RN ?S9 :״OfOV"յڇ1,V)S@._ +#Q`K|ͨ%cj/&\: [Ft^Z"q٤Jm뙊jMarח`VCg +w"~>< 8i}XT8dzQVY<p%HG/Û`rq;Nm~Ms\/Zh:(MXа^F.꜋.Ys}5`a((X0T+JS 4&~|iB!! !)$)ʰ WFY]E븎3x,˽}|dc +|i-0Ws +Q_GpRjy0׿tjT̎ԍD1څڍ›N:ka? 7ek_%]a;זF=9-b= &Mm0-vD'^j+/5(er^+EL F1$1KWE|fOFMKm::1`ڥfXЩM*i9 +l?+Lw?-Nx͈wɳ\C0瑃f sM;iđ`$O0z*RٹB9@"k5v~.lB?ug]ed8JAj͹um.DO^^v:y;ske+,L¶vŝҼخd_5Z;q#k> MU\J{l*͟ґ3Doy"UDcu#H)BPit/ v`_Sʝ{e5mpPpy=-2[m+v6*.WۿSǔ] +^DMk,2.#ɲ\!{^I4Ԉ.~çlDcBU\b"c jvJG|H`_2rHѥ tHHBaG :Bf{'9 +[jaЧe +&hz6Fdy?>gۑx&l$^:^nx-'-]O 5@S Uڏy]Tu _,zWPT|BJ,ɕ}`8ߴy?p7gˢu\JO(_vOUue4+Qbi?A.jCxyRJ駥Pt㸲rTfdd$ֺFR>PaL'v2M*׵T]`W*cD*hAe#"ɆKO9JKL2J( KgK3jԉfZnL5oM(_>FOӹGi}<@w#Ndhoo4Y ̾Fٸ2YAz$W֜5Copli\ 32l;a<;S?B>zprjsm1tZc̥{s/J{c*#3ހfϡneh->Bc9SJ"չO8'8ހ `yHϤu-*` x[c')Oy\x!QS9q*;$;d'=NY ,|ܶ34qT=ka%hs䬺UX7Fl[ o1apuxf9QGk4;e +˸7荇5xB:yZdͫ,`2?_a[0~9iY Fs3g Ë9u<,yx87 1Ja,O@/gO㔛94 |.]16'^@1'p:XtwL,jVQv@wl{έ̱\?R^UV\GI+9D03oyd[R<""" +.2}"!<4tH~(-r25DH@l"K濣,/S}"+~wF}V dRz,:w&?C~FqJ}JݢJirjzEgU#p]ZF%+[PjewVjlW7wR/*C%%jGx @EFH)&0_Օ|Xu +DRNXA\0JSH307͛73 CWc+U#r# aQOL4Eљ?s~{sIy?y>ҒLָKd-ޣJ1v*fH 6hz+~BO:IQqZUՍP[UD#BM >$ z|?^!J0W8N WzXfщ@'h< +%sdR۔e[$z,Z2H5[&Ht L UO 췯+52j&P6uRɮ! +a+rk!o4 `ܗP)f%VQTF(Z]s,TR|O)O?ho# ]6yл)OU,F٠E})gsٴGyҘp/kw~˖I'Y;TdgYU'I8@F* 8 $I+A2((+y8OϋWȗE {բbW"@}@C׌teYgvֈHofE`eagbN_4!/e%O;mhtWv6[iyFy4ʔat V] au #QYm3rM/q{~tjD 7fiɷ  . =[n`4qShBrx_5wԐ %nQ~x'G[ `+qb]Q2Ըi=UGn~ڋJ(Aݪd E7Kz +M]!} jnh-Cզ_魺a٭Dfrj6$-4nUZF)Zpux'@]U/ٳۿ3Ug`iU}ڰULWu+SU[;uXJPvOŀ{$KF,qQruH.}imfZh~atMBb0*iWC䶧jZmn[nKfi c+.&oV.&ʭ{5_s9dmIA. *s5: 1Ů m!|fl'6#N +Z>\oMkCZ8)*bEE@(27{I" $!0a=+vUZŁ`-xEJUǺ +~~7TSsV6i1=2J眆Jh@ Uu;7!0 +߽\醮%-;=.e/T7D$v{.ʫ|ZѮmcDֲ+-Cu_{>1H1]"D^nR ٺ:E3[h9 7TJOW+3 vœLimc @6'[c`Ǧ8v!bR{1_ӵuoPE2\@;4"mO m{ ߺE1dA}C=WB}[3']\PJG5VmnYG Xyahd'J[U~ vWۅWo]WnGnR9H7ѨAu 1vZm]lUrTVA +sj6lhm,My4A*0vJR? Ĵ>2C!*#q0MJ!:ŏCR|dFa?2݂ch3dBzSIt?%LmF[AxYGҏ0m;GY1űh%[sጒ@9 q_8G>r Wn)jodEzC.qJviN&If8bg + v|sd%:uTf&L0~p.(RU +; _)w%$/ t# +~#u`u[w.qsY_-*'̳ɩk/)2* i9$7fUzflc9}],툏WYCIkS-ty7>T! 26Kݲ m&cӣh' ..+upC6&@j5tdP0=I˂Ė +C{޶$tR:(ϭuOR4$=jluq1?פ9Si|cqF!_z^SK}`d%DT wV>;<'V=(5H%jWMV#9YD2֓p~~J }D]gNSsjJmn->,vg&SLl#>^i8ʞ%4'RJDhRN0hBA0(r0K+aMY|"EGE_R^v4/?m[˨yN`K/5[71[Gؒ' '铯RGhqꭁ]>iIX +5'\GB ćd^ux+[^%e ֪pxE + 6%!Itި@Ҿ#% :*h$r7שׁ55׈Ց'I+6*ЮwȰ%U#zD+Jt BaUؕ 6}uOr7dP Cu}FEua7RV"KST20 EN{^lkƕ$vW(,F7b ˢÞOy<"_).kh[n 9W?gڈ7yș*ӼuA@ OpIRrP($e[iVYR +n#(aFq&mq3%\g?%ӆM5XD3b$ʁW ƿ5&͔D4®KcᏊ . +1Zo +^`~¿`6z q aXǰ)Ӽ܄'84 n"Db.yC<K d},{*h +ڸh>wMv^ c8Iƻ(~j? +eoyl/Dl5Żרpy1ܣܵ^004{ .%CA22dWuQ>okL<5.ſȠiffh7S-|^TjX[wCY*sG^1Ve֗+˃L3 /2y{+.;CtJ } ->٫y6q< WxA_PZ? Q y1>yK\.!OqM +0Cl];Sk)=RZ@[ɷ5JBeǐ$Ni"0 -úR4H~9.☫|Dϸah-)r~"eoMK%4 _7"‘e +QD~0T.>"x*O>酧.Ey+HVy55RWsEk*PxEGB;(J X(8hiqmh^ 0`}_APWDLZ‹]<4zG֦`oyZR|u^gCF#nr)Va5ƪw9njyIt +xI1bIy>}-AگOShKFx6xqqQ +3SU\ka椚̩Di~ ?{>J3mtߐZt]YNju]ɒQYlZZsNѴѷW>Sݥ0Bj+7q҄fU7m :8^;#eտ+*,_CY3MSU*LX.jQȖg_IWJ5a"9R'C\y׳qH)VU-Z.\+Ѥ/aen/|F[?SPkr" +^Y>VH9 &yaIxQfd}+] +U.o.=q-y][viRgk*`/pLBu+A@[)&PYQ?im/K,Y*gu(i2`؀V"fJSs=RU@7+>dْsmY)w=U?ο3D qjv83׽} 1r@vy:{Eͩԡ.޸,珈~CH{ksv_l毁@"lOR."0Fl]]C˧Mfi nq˶Q{56ef e l[IuY_(i&;to 5kZ/ jjp~Ch⨿䦿iRs!G-֠5 +&wa7WAƫXUr8+}E)oVӃIÌ}qZlh<gw +A?=$6-ޡ|,)!<*ǘ*z!8߀ϸuPpD|Ŝe=sm4'ҢؽYaPOZ(vj?VGgxI=V-̹uMCJH_-C]B~2A\8*E8PTΔTo 9/whaߣby\'F,Ռo%wU/ժnM*T Ƌ{5NJԢT9L;y _fXD\uַA:x")V%V/*]1# )ԋ@X"SVӅ4u.f?Uչk%Nj;c~?]Pۺ˄WҌ=V듍1 +E ֻqd{q׉; +NYHdfttc #&vPtQjd1o ­R)ʽ@}<7 &8wyybH04͂@>o` ~M`Oi#T2"-!NSn\ z$SC%Q%;OzcT)!M.wf.Po1U=Bl1F#F0HD\u̞rڜ*ujQO5u8E$7:"І(UuANgulWYE*Z"cT\kTxlx)$8(YBIY`[}.Bb T$=U8Oŧ yP-x$]0_ +j(sOH|/=wKR` ptl>f*ӡuU<=Ts(&zpKA?sLo`N0Mq+~*m-~F7^5惬H]${|-Ҷ9Y&=X'Vu+^ϖEm +Y/0X cAdPc_X VRx6b|C6^FeC]o-F?f7Q3V>͝yFsy]ݯMF͊k^NնI#FZ.7ƆQfeϫCJn;AjB JFw +mԗ6t(I5beElXQ͌ i,)6QS 1zJezVBf ۹ʹ/ HQ89SnE%o-4NJ``,)~utyQN]vحp+e"xN6y*,7$'x\CQL[8.d@}CɏE)1D?@晹b$?7 + YM N| _Td'wa}0Z<9|3閗3~o=Y>l0Wb=P1jmE XR[louv:.C=;.a.BřS[nWJ3ǟN1='\Xr8۲:KXj6e g΀ap%z"K1.c1ɇzɭGTRiVBe-)K@iͬ!u@_`&2q up%P +SЧ|NWP !o-t_ nyV|ؤ賐e`HʏE=>\Tǀ|cҎkIST!%Gu,%[IR'+#T}m3\/df)`n2#\M(CQd6flqGv첵).Z&wITe{JQܕQE\m`p`Ҵ\z[v7OVo9ݜQ}$SSFMWdnyuя: *o[3 O FRJ0ոl+L+&oE+d- +@?^fEkoo\fyJ8zΰXmi  -Nw}OYpz&@>gݪHc. ]7Mz#fe"g\a@\qyºJc\3ܔ r'WQVE D|PLs\h_h#9Z-TdL>˼!WS/bniA3.1Fx@Ǡ3UNN^nPOZdtvWO&-8ךshveSȉ`wPU_cař=շ}m`<<$+UV66do88{ηzkG}ڻ<<7\jvg!5M!w&GmpfSgO3x? +wZsLRq/~lK]QV:om<Q' R]AMXyu ^ȩ $}! 9LHaH8hʡrTtD-*fY]]wuu[bgg޼ߛ"ȹ I7HR7HBHudt *Ჲ=eJtj| #TI/W?{ΝO^'`v'$^E=7ITF2˵7-^'Z"[x ;[U7,QyWrr9E6cy'I gIRm2ZQ +{0K,^H/>>G@l`T=FZnZH ѳ$m¯鵩KA3D;w7ŏw^J<`i$M_x8wU-,/h!pbP1|*k _U;N45jX_:]$ %ͫX+é Miwzz{7`fOE5FohX}fL}k%Jq_b_A54WK'h?:lTHmm. m&"X7rV7l̨b]r+ OpK[{0EuwrfӵFajCCPktMݻVw[FR(Y-VE8 P?)p>͛5 #TtF%3 qhk ;`LVOpZۓ. j&\Cʡ <*g!r)J;ȁ&xK0N\B&Գ$bԍ7fpt(0H23ӲG1d?ź +bVֆ|\[w+tjj?b7hwJCmm#b.^VBDRb8E]4J 7LGc.Xd/a&ڎ @顢zQuֈ4Tqi˽èb˕ 43~,ymoθ[0 +l} TCuLBt 2ZW>Eh@+[Řy0= +sU"r];û](̏{e E=ma^2'FKv~.Оm0Oj(esߺ Pk*!3IBЦs4{^|{6k\* }XYǠD=A %$hǹWǂORV UBꯪr+Ca6 Kԣe :Zڿu6&?W&k).]%],lb7MX][H"}WL)RIrfr?AƁY&I~_IB${XlZXE&|w#؆`_vߢfu3fm89?9 +̟NՎ`jz1*.@爎܋`oْJ_+-4α6@/DWEjE}HRDl;Y+ z/1Dѓ(z)oι&;.4aZ#gsbZ+XWi;<~n"( M'b6!G lP<^\nM8--aG+dyXP^s:0q \p3bWu.,R&rm#қs)lej(^ ,=/FV6fj;ex%Dk%!FW@ao2QTvs 5h0B{UHiGCOzL'pbIq+'_1Lv +QA%$[H~}{1fKٲ:HmWS +ëd}2w7 j< O7i2G;SWݒ!@YsZ~*PƐ6xQܡ/9i7cGHVf3R>K2jZxH"Z")vHD} @} YJ64T(P_(*C]miSJqOZgA(ny8}wν37;?߇*x"D6HaeZ +5K e +tE=H\ƒW8 72ym]Ly 1N<8͍@:> >6pӹ$.7$C$pA)hJewT*FmKg-lm*{{v\ܲsJa>3_*ݑہ>V5|WG_>RR_YL!RFjz S5fځO2< `}I\:XiZkRH*4[(xX$u|I9̺TkVzl_׼gC%*wXR nY)N.9+wZ[E9ľWJ%wp`Nj[.b|JOsdW,R~#* ĽyFdwCp*L(8OelL˞)A vfFʹ.Knd~A򥾺]Di(i]YʯJߟ?>w[侾7KK6w"!eDp5V* 3VEa{:KoEDcɾJ#oOU44lTjFk,>{S?ýSk>Su=|j}T +SU.nk.mcŮ)RxbT<TV*yÙ<+`RC;S^0-itp<ȗ2IZ_0ȡVVKHWol9=fd jb%}DCy{sI*{ZL1r`n}+D_*Uz3}i779_kjxL+u ;FxL.mmQ`sKzK#>&ޗxiBV^\s3_XX_رC+ҭj|S kϽ|j|[X +ΆBL.?\DCqߢ7nO(M&JOiݖw0IJLM,NCOYPoQRSTUVX Y#Z:[Q\f]x^_`abcdfgh#i3jBkRl^mgnqozpqrstuvwxyz{|}~ˀɁǂф{pdXL@3& ֜ȝ|jWE3 תū}kYG6$ڷȸ~kYG5"ŵƣǑ~lYD.оѧҐyaI1ڲۘ}bG,{W3qHvU3sIa)\ Z, +     !"#$%&'()*+,-./0123456789:;~<|=|>|?}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdeefghijklmnopqrstuvwxyz{|z}o~dXMA5)ۈʉq`N=, +ٖɗmZH6%ؤʥwog`ZTOLIFEDEFHJNRW]cjr{ĄŊƐǖȝɥʭ˶̿*7DQ^kyކߔ ,8CNYcjnoldVD/h 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$%&'()*+,-./|0p1d2Y3M4A566+7!89 ::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}v~oiaZQH>5+! ؎͏Ðxpjc^YURPOOPRUY_fnx̰߱ 8Ql»!Ceª9^ɂʦ2TtҔӲ6Lat݇ޘߧoX\[VL=*b/fMq T + p_L7! }tfUA, !"#$%z&d'N(9)%**+,-./01y2g3U4D526"7889:;<=>?@}AoBbCUDIE~% ہ‚rW; ϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{OX͙~ʹ~y~eL~j~Qc=9~|4~cl@~]̳~nf~C~لOiZ/gP8v}6q}0}>ϲ:}i^},~ ׉_LpK-~~,*~&E()D9vyowy=TS3wI!D)J%OBvwN64;>FVWm +S^Di*bPkpة?%"1#!ϼK`L<n-e2*+) X䥂C@v2l Q?(=0q MzǃIz7MEY; Y@K (-\U&>rI^2IMe;Ya"VN,S;o_%sD;fƎ.R?l ;0Dq>8zDKG)3o+&<4@n͗0EO94#ҐnW9 b_7}B2yːv/ąJH삻Ȧp$ȫވy;Æǘfo虔F¨LsI,KhW2!AjHE^τ _wdlXggΩr!jU)[%B\DCfp <_\?k,.wȲirJRݐ=>0+cvZ{HllLVAc۠ ^{6oCҏSمbȏ:sz 7jP@Q;[wg|z30Uq`!P-~|X3+z2lIђ:_p-FOJ*Yr(".O'qäfrCRJ'dc~h!€?`}WzBd;hѲGϲmT SAij9< +ߨ%@`8xLTqė=,Mk $hJdx_r̰gʱhtG,KytomVK0X?R=Џ ]ٛa`sʠ7g&Grŀ?>r&z`b>&z%sxbw&{~څ]"WR%c"zD zA rs!֝=jcf]rmANJl$ے#ؑ >wTfGFF699<׵.'SZ*˺#-Jl.ZZx%m*| o 2ӝ_TWK4eRsu33'jRFBWl| +Fgml0L1, y+Hu2f;[T0BE{:qntoT]okI, + LgV_R:Kϋ0dP?= vE̷փ(M4m\Tk׉o,H=Zw/EI-LQ[ 8F/g֖'$?[u~fghXjݚ- VImKՀ,%ibQ*e97WKMYiHtXTBUDw-49#iԗ/r]hGވ/ + +lD2 h‘%TTT*Fdw">GY?"[f r5ʊ4`TAo4H5rWS8Xy;$Yr'q vUPV&4m/5LJE:S7Hvy.. kPXAl` +,e: E$@BKr.!{A$A,CY[EA;| TJkU>41aƜdcT.Us R&BchR) + Pd;ʟHbl?1;_:i^mMh9Ӝ+,x+(‡j3=P6u>a}&b (0=.À<2&m%u9_~zL!S`(6͟>թVlW䨸m5ypg!2< PR%wC>ubvbF.0UK$K;؂P,!rA5%\v" +[2gwdxJ:_'Eښ_+^Cژ I! v,V72UJLNITUKɎIy/R+=+(֨v6!M @PB%R--3|4-)#ͯ w.ܘ<;b#;*>$eG +>3"و~AZ$xOUx f𜓜x;٥Q h X(Zx=`dš 8b†id, ϐ!enZ +b /޲І2P0~ +1baktT ?g)˧9 С`.ޓ`>'4\DRdPaxԗ?i|9,t Ĵq]"m-9OD'Ex>#Bz6Nk%tm6BDzVQGq,2O: y{iHcy[]vaZT5 ȨR 345N@qG!fYXr{3^M7HX1ey87ҙ;NP9tn/D=}*I:2s̋%G{7abTBm6ۺ4JZmI׶Fהz\FD*rEyք ̣V-8ˉi#7XmZLW:2 +$Iⷱd`U+z3 8"}Y\E^\Qܵ)<&uZ!FM)V"ڟ}&à/ ď 5 O546PW눤0 fGlEbdc 'ƪrӬ[{K("M/y%0=zFBx}{w6{Y50%,40R}ԓvTp>K@fR$7HU( /10f<,1BS>٨RI3#&&pa5j19#yTH9cI[էjU̟~? +7NzM`k|-kqJ}(Ҙ2SaӼGi ; b:`uǤayU}T 2Ftm̔%OpuDU0m~L-_:qWg0~huw-] NVrP =<]x;Y1iw@8,n\(zqb !$zB&5dn61Q& & CuЎy#c%$7]w'z\0Lk{8 ;fGS Fx¬P~Km%t3MccM(bCB$ _ J,@՜ %ӸZ;.6B)PT~~:_tHNITScΤ5_3bO6-[o 7$cn:zNqnE2~7\NT' "[fTT^2F&+c5r~ԕ(jl 48mWDC]X#<n_ T 45 C0 V~ m&AGA7w@w;Q8Q ?d9#1yʕq_eS]y|d*&6Q30J(WG>HN vAg+[o:y1ډGmUV'pJ{"M@3X|*oƙޞ%sfJ<ߔ[-0R'G i++qNPF\&XT~ykPx>–~u2LX'P MOW rة Z?qU\+w>-q}y/sRQQJ@737Ka[t̷E8X,Tp!PVK$`Κ׵bu~*LlBz-f{i8DbMp/ŲF_<`w[Uq. Y!'i7L' Rz$v]c-ީ%HY~ٕ 鞀ws{)Wa˹ԑ`{[z ϡZ& z +- U@uBP.8jz B{GtϤ1ޕq# ^o2N*`DZm錞c@QY@Oy`ŕ^ )H??s %J@f-H%{#}řPKn@u5w:=YX9(5#p 9#Av(~-"]Qb'䠡ya +'£ +vO@%7_*Z-r*~z Ց4!wBpG-q.a+c"wmqk=WfB +k^0>npu5㞃= m]0o-1:ǒ~%ui;pVO/a3;0oKܼL6Ed@ZU%{ ^ ͰyOVNHLmu?uMBEQ1\IُOui@L7Nk\dd[i|lRܰ3"rW^  +19~(VZQjsfb5~Nl, $LAE \Yv3k"*Ie.gj4uDk"*T~~g^ ~<|1cPx7kF84K(/AI\%HG;'6`kK +ZJAFqKq$5GT#.a;1 p't.t-SSUn;QY(sў*M8= +BHZ# GcDS{d',Utl=,}*vcr+](_1rØ@?A[KDlv'”o>=ԏ[?Q ôn!ܘeoiB]u3PzP'ߧ%44Qw L7@?;gSVjgohop7syR\7V%xL| 3n|2Q|-GotuV֘Gk}fd'̐yQ/;^+b#&~ي2(ɚpTֆ)$Dru:5zj,|~0T\~>*,6Y +]7E9!7;au*8Y?Ң#WfiA~\mB\$OwDhE16:_JqBR%*X3 !O:`Iok2+}Y'1%Y GPMJ{rK w_ L&N NyA'ճmﺾo4gz"v;L je %Ɯ{NS6U'*@djNcvo^=Bi 795l€Aⶫ627ICkyV_}B.I=YR2U^c~o\Ƙa3Ƹ2@eU*Tlmcӱ~ xnNU)o`Iχa]PFŚVTC&ϣ࿋Y=d]/..FBXs+$=}buM>RWm6Ŗ6ᢐFX 5x{v*j;zv<_~AVUJϐ^IjQxシuQo=lK_ՑEkZ\4sqU7vOa J?Q)4C^\k[{3y~M|J'g4Ay,$0( jHl:Q"V҉1X&e s)MZ(W |Ϲ\88&tcpҔa͔ CC GU$^fb|8u̸&A֍9ke7;㥦koAvՏ0o5y'M3q"y$[Y@SgÓ=ݎP1)L \!B;U!)/C$N$A³ueuU},3Y'/Jc .8_[ON-<"NawGm_+yj~P]ſ^\y X,r-|㒒ܳ<L^T},^eDR,nkqց%|r,!gJx=~p{"\eeEN;Þ=${q@Q_\?/иLe>u#Mp'Yn_e<q㼅Ra8pLB=(YK[l`BKB#4;c;HS^OA>Ʉx\+0lkOԼ`Fcfup.wlCnKJIi]&fXPAn1کFTKBoI!ӮZ f)~Xhy9 ݨOC5&|T2ӲnSLB5eD0:yP;(w9mΪnWhKu{`wk +kH>*ڲ1 wp5Q݌$;LvvJ1f3n*Tg@oO#9|}?V0M5.ۀz{" NK?C_$ P&B̆e>(qIu`|ob|_0l2WꂝsCܴLTIa?f(/+PIwB WhgšH EiŮ(G6 +"  +"(H2̙dfr $xZEP>ţC~EF:}< \{ +% rH6N$(߫Nᷘ_%1]2:$o-8ȥ I-qt;'kTjJW^}kfQUr\ulNkHn᫂H*Wd6M2 *{`V%VRoJJ`+"yO|s86Vy8 :+;9ɨ=.qqѝ=ɥ^ӏwldG;fH^2`zBȳ ŞO*{M2MoR0i:T~%$9ED~cj<}${.-+P]c=Vzpwz\S;!?C:GFIױqYŞ ݇>;]mS)yrEz_n˕aI"l|sGvmߵ_7e]֭>ГU)i:D΂G}V W5*{f? +($p\)9D$ZYr|(4D܁OHʳ ;ܫv۱jxLr_r ;Wi nV|Rudܦ;@YNl-QnJȲc/14C:'K&̕BOJ{ߴzfsW|F-q2 ?}Y[pXdY<\v+M{ir8~LJޯ vlL: ?@o[g`}>?UrǛI2Lk.}GpI8QRV%܂L0/PUE ?ɹTcۼfHs^QMC!)$ ; ej uIy W6#LMi9ĦͱP*HʘFg]mߝn+|X$Z6K'OQJq m(B~ljSuZ ťbhWP"z@UVJ΂\,<\HA 5Oaf΍C75O Uݮx7F>QL~:ʥ#][eTS2%c Æ~EWg9i%3W4ފ:}޼0_X|-ƣµVu8H{YF"qĔ-F95E!L/3zLw@"FRmOQ&[#ZO/xˤr~9T00bܬ 4Pߋb>_nMFY%MOaN$ʡ˖~ &($~>tBM%^i3ϐEf8UB '`-icIaͨ+ دR=ZȾŁ=5U#5HR>njky/s6H؃E oLyCG/?QE%FvMMz)=ZB.ϡƋ/•3O85&YKլ(ST eҝZVx'xaV4Ë*H]z~h~ i0d,K8CZy{jCF')b|xNJ>V{0e#|SE1b狛*_R"37Boξ(p3_<ݥ%-tɫBetƓpx HuRuɵ)H?mf@Iz͂qrgM_D|Ce +ӯ_wCՄYK/Ԩ 佨/Y0y̸7.]*ѳa !d[m9#{-;W[ U$mb?ci3ؘsq6ĂT t֠} dlv{Fyt/ټt̰KQ8 N"4ʻc'׸Ns6I ][#?wsb,4U_ f)Eď* uä6Go76ɵ{'CGa+RUA=@5_rgs1OUG*ʚO&Q͡4%nlc=%Z vY Zeਝ4? eC` _wvĦ10KB/*Brv4όwM 0r `$CܝGa6;g-N_&ɰ.` `0M/s\PMf`p3 $A7 i c(y jӍ 5!UiMSD-rBFL&^:OF-T4w T3c q]2Rd/3U\;?Up=@b +TYRJ3O)*+sWu.[L6ǼA. 귒hoN_=C|HW Gz}w\2h{?Ur_ס,[<4DmD〷C/Fl Mr_򑹾g"P\TMIiDw$=` IӐ }6.jYx^h}]"]l +8"ӽ΃ǐL"Hڝk:^֖Tm.^@1~qxTlU#U75:LE|4&W25exz*̖̆;M0do^lpmaIS7kD#'͊$"lL?bADINmEh 8Ԍ*"vұE݌5Z5 `z~x[MN&a|b(ǁ$ch |cq)M_Ɔw>bSО$  Dpz!G@o3a]PnN2);K4 U"p+q 7bLay$04iCc9(6>E3a{ R䏡0`?s07y9'`Lq`ScLr&MP.ڽ,_ru/F=܏=1ltŜ 9>1lם +KX_t+ =#ثL +uuWK̹ u)F@jR_$YuBśGbQl+$,o8qlg!) n2QήU>Ytw(^'Y! %GU9, &>YcwU Mj"Zo6VWF9=al mynqA/2AI̐i +qAN?!9NxlbO{eiYQ̶>SZ .&sbj?1_ǡPkٟx`дY!n6fVJ?ffon06l)7BuyMAѢ&m>>Nj#4J%&|E]ۊ:i2g0io*6zXh +҂3;1"2ҍ+O?KjaY|nMHpA/LsI5cu*ΐDx!W {|mpq%qehrYbBt M7uA- +w%5,x+ z!Ί}|%wpȩxeXx|Yy$M}yAz5{+=}5"6~{άq~p^Q~Md~*XŸ~,LU~S@~5 ~+f2T"P{pUIpf P[AE;Z1ٓ0U)Fj"0΂op~7f ![BPY_EE;T\1撠C)k"djpmfr=[M,1P\ǑES;`Ћ1')}"Ρmfni=pkqr^mtolVurX wtDyw'0|Yz>̾jqźjlr`ntpu0rnvgkbtgwWIv~yCtxz0b{x|bh|~j|l|^n|~pp|j\s}AVtu[}Bw}0z~l;fׇ i +9kDmh5})oviNqꂿUtXBEv=/yVǧeP{qgi卞|l{nohLp(TsuSAv@Z/ryX_dִ2f}}hƖMk/zmtLgdojT3rxAKuI/8xσ[c&5e[}gܞrQj.xylfoDSr d@u/x\ębp vdܫg%iwy3kyenbSq@to.wUad`RfWh-xkkemn)Rq\@?t@.wZtf4uhvjxxm0xyosekz.qR|{itP?|w-~zK'rp{sqԜu#svFtgwwtudxw*Qz%x?E{zb-}|Xpzr'zssj{@(t{vxv|cwy|Qy +}>z}-R|~H(oYpq݃^s=uPt;bvSPPx <>Ay-|0m{opzrt?s^auQOw+T=y>,{¹luSmoou{psGrlatqOvk?=txj,{ @k mܖnlprxqؔM`WsNuȌ=&x,zj׫4lgmomqq0_s*9N uI_|2so|u]}@vLO}xT;"~z-*|Ly(x*yyr z$y gWTaˢĮkTd@D\dPPp-HG&]30;sCg( 1DE*n6ܵaz*&>P3ĸg| ,X񦁓`S$>BG DǕu#i#܌-`xJ!wم:(`[HWeQ2UFD`|:Cd2~TvkdEeUb2̽p ʠ~[@QdF!7H$ #dLt!BOK*G-iCrB.UlmO> ,B2W<+367ߛ@ )۠&KO 0ޏO igm82=D 4FB[!AIb4~Z *fz\OtF&ӝN&3xF[Hjz&3n14bM zB! |+ +/hw{V\lsTjg?қ۟u 깮D}û.5ʺ(wM ұ=Ljeo(u\ yPXƢ8p2232"uh0 ;(3-ybݷ3WdsF@w ,8#!H*9)iF^ +P7Dg3I33D_)JQNdOm2ta':=J.۱ +s`d+uu- ǵiȵ\L +kw/i&G1|91:H^gW@-Eif?QF?/KvřMkz݈uN0:ӎ3BJ]PU@׊VVzDPC9>RTl{=EY^ScyjN96b~mwj[ Zl'd}[YގM:tU9WI-#d=sѣS IKuƷ6i/JO{s{c@6oPU,'9cV~M6IQ1WwoT+mlF0\Od?oi4M4MC%HfM[r0p[p|R’/Ld/_c8]׍ YpFKM(Ewo@jjI0/kad[H>|/ѓL |00SVRׂV2Cæav4x,'L82'7&n&CĿf]9-f]i{Ta4EeNٟή"V_ǔ3tf65ҷ, jP6Ex)ͻUSu@6M6dFVSˬGŦwƠuy@>.TȆVOdj?#驺sycA)w,zl<ـB*7ij,\P#;}}~r4fxO"ZhNMBe@(78,iA#FaN}qǖ*lf Zۋ M2HB-7߅,yY#p9|qeےNYƐ*M}"A튘6؈U,ۅ#||(qW,esY!MANJje6Ç,}#5tPcjOf=_`rhTkHm=op2s(Hv "zbtu5k#jl_-$nnSjpDHrB=tytn2ݑOv)yL |triIs ^ٟtSuSHt#v=_.x02y)B{! +}~st(o.w]^`cCcHlVf+;t)i0aldOȯ>tsw[-wnw\-_AMb0ke#SsShA!a7kO|o>#r -v0[Dn^aaShdL%rg{`j哟On-=rfv-vm3Zp]­ `܄cr f؝C` jRNnb=q-vBw~o`^q&ccrfBti quk_wInN1yq<{u8,-}pymjynlpptnRrp/qsr_;utMwv2>@?nC)HKс#Eu$%`^>[ +(?`~^x0_+OËv&"YD>s5x']~-if~>NF" P^OG# ǖ0<7ӆ7 :sXL!kݱrx{6Rt"+@q*7k1U誘Y}(~\H`J䞂\ +52[{F;Onݦ *C{2Hpuw0D(MHOB$vKѻX{'V' 5c + +sh]T4I DGãTD(2BNlz9eB_ ݫ.#JUbGɰ Pc36߅!3?o/˼ 4Ta1l-vKWZApɾ<>\Щހka8Z5$GdW#{{ߢ! e8l&Vlu4ʚ@ԸQWJ"쎛)9(6gf y'1?JL)b쭢l]4LkۘPpuﲹ)nCA Ŷ+2dEH'Hm&Y3uѷkѽӭ1n]_Z<ڮRvӛpjm9G݂#j}dA-uڠ +0\C"dhK>مٸ:IFq\BVhF'$[I&3BtK\ D'`;I ["%#N\I +|?a8+ş3"-Aש_ZZKO%u6`X{cͯw1 $+OM{'E],jz6+~ Qk a=_/E qbVk&S7fg\"&]KOÑ: %ijeB>%j:l=T1e~/ߪg I0^YV)<^ϑ% +զՏQS-WGpaθD8ߠ9D֑ՃXM' +UJ]I"mteuuE)-3`Ҍ SoO6Ju@$ZZǚ;oam>݄92)@m{>-V|WU>r$Ӳ]qّ¸zEYuɔ>GT@蚩\'}њG9mp.d.@L4c&,r;b ӂdlt3ݦ]Q<b-w Nk k bK%H@ j"W4sf|Aa{8c%J@bW\E':Ehsř=}9fǹTW !3ߔ% פԘ]YzĀ&XIkWdPيb]9gbIi $ O1wu_)xS$P)m/UI .mpsf5Uwl}oyh 4;=DUIKSDSjj:?2*w0P4o+G4O6jeu HW)ϛ=ݮȆs51 okaIӽ֒Wo0%>#}?V5N_r}%7 +Լ{!`D}K_4 +!Q\HҽzȔHN>uA-^Ჰbg%+k58W #wi+q0khcuTT[`5Z[`J &-v**cs0:-7o3G(Z!d  z Q}vx'E}aQ#*'viƷ|'in˵Y;eR{E1vikYT24o/;K |O c +Rr_T'UtKyγzaL= zs#k)|OĀ܇:axim&&^cŽoIѓ` +W82K/ױϬ˽^ipuO:JD:WtG<8YJ] + ՄyiZP-|xm4rQe`dZH ;4SX1̚`wpu>7 H2%Cd>zES?+&e{\Q>+) ^T9ZPFV+@l@ A B +r3L2$$x *,^-ڷ[]<**RInpdk ŻΫ :C>KXi<_TTՖqcs.JmZEŒ:^΄hsVIbm8tSX&^ a*Ɋn^m=A2s^mICca|k`K{"Y١:nf,ڱW x_n~ +!f睥# Aɧo(u +gįVg攷E)?n/ؠbdSu3QQIB`\C!d +P,2QC[Pһn`RXYU^',|Y5G4-},V{:T5zGFdx|4Zٲ u'ʦ"Ww[f^'0Xcx2rKJJDJmB|CÁ=55oc/hNL9'0jI. =$!_3s^>pX0]ScԹ`gi9Q?+,O|ekkC)6bf!),MjQZF_Y[-ۈfiv&mH!`5oIxudP#F +P&h_2nnmMsC?wOt[Pk+jnA ǐHځY*zל`L﵋TL01|w:44o(%j̨5YJ_|fyl00DO+/.5T"$8[g)T`MH?Ɠ\fިÕyL/\Zj@Ν(Wڢud>P"Yd'$$ʗVJ+W>pG[^Gڻ2|M 5kci{ZJbILFPCR7<]'wKÍQXb* +$f»~ ^̈́:)]}pA(+RXzE;b1t!9ݠBj` d> !L7gh%7nׅ _Qg1R2Ǽĸ:@n\KX)'WIC0hݤ!XL}4l5 Vh2,?bLb#(sÀytk]:ibP_"2S&F ߆*:/~5l6fݻ Ӡv(l1u;8qi7mL[@Wxlg Y<#nMDyYZOEX;/C<_IfGuROM++c7S +4ƊaZԃu Mߊ]>]o/m^&=Nh̕.g*>d_$ +]koj-]wz`g`@XRSZ^6uV^og~XQ 濮a%{s Tp4{HLydW)YU&R?FD/'gH7yOG +S0᪄g :po)-.XF:e*diG{.㯙nwn.tY<"`7dsSC!x$g:SX9Y%r_']4K . q cYv.㏢Mrm*ADbW냊M1Dqby9mT'buq7Or }yXK8`微.;~1K}wҭrB;ҏޒ &6 Rr*?j䆑lugICkM|vhZYHn8VzQ3N??֫zGP5|No(RGJ[5&Hs)qq}^&2n:zǰkFmP03;7Nsi+ZiӍ ^zs7Tm , zb@p22{96ʄ/= 4)c x +t&83B-(;^SedSy7yG^H@Es7<AQ|h[\jeZҎy1|i-M']|k!3h{&m5&[KiK%}UEk̀u hT[*FkkOZ e ev]G ؼ;GLW[d;oo3xY{OEk[@|l2섐^򒼗F6a 9uUQ[Em'*uWAw:^WfAw:Rc$DZ9-N7~c + +?;A34VfO 5*DvUe_Rqr_pMv]{қ[;f4( c5ڑGdxEjO-n +| g8 KٶŲ]{r3J(?ұqlu;S7qWA}ǰ=o +nxg|GCTpTaH͗O0U`llڤClt0jh~pڱY_,x',IUjn\[M zDBb<Ô]T7S0Co}2%sF͘MQ ś!7fSѕ&.!mFk(+O Oȏ@ W1fG 0JZ-#=qb>@@gIxFz|޴\E=Yg6atҺ*SY5T9vh  %2{}n}I90v zRf8kOʼjVo:*xH3_ 6WWx4\;5juK::i7rʶYAd~X:J1<;e +(;MsrlڪU[y5vw(k +-OlHWeG㐣݆L9sŠFp6i&xИp0C2}TxmCH#ѽZyڇm{+EAaWdVSy%ې8bש"SLL14$Bs&Bj&d@Y?O+82}-D^ݒD(PR{Ѭ.s!$4Pڣo\i(#u"D8 +:]C>6ڒ׶*m@1GQm lìOrusg# tk-ۤ^G) yۂ2b+PgDWB;T+4Qv{9輵;!f6~/ė|@r~EM$,<`2+oMҿ$ȵk뤆)<$\nnu|LX+z-]:r"Xꗺ.KW;–YFC :Aǔ+IU u+U>.+͋;SN@] LUXKx6 ͑8=*U4^qݗۥ>S韒+Ż eLsf v?m!'粈Yv0zْ2GwT1e{BHM, &fr(y)% P Ehl% +$EVDĶt o \~6-s//E 2<뤪t :mbpVn(Q7:ziZNl*3miИ` snX +U\Пbi0^Kc=!!{pwpyKH&Ș/UDg#M@1&yf_sIrŔ\ Bc7HexXltbu!hI +&) ֩ršbps;Cu GFq~~c6RbO'l"<͖z [T0}5y V|EWrф\2aAA0 /ɷW&aA +AK]מ q\kPU"Jѻ?W{j#'rG^$U)~VHDTup7eÊ⚊R"I^w0^+mOXiMi-T5ȝ'N]~{e r5Ճ-wA-VYF~UgBOJt8y0.{KO(vlJ uS0փyk^?6Wc+ +Cl]Eko%ݼ脦g}h0[[tVۃw,U^|}X?4:a<X s%هU)<@ZQ/[6 . 0A=fxIҗQl3\PBoJ]Դ\>[3?,ЛMOyIOi> '|2kxo6oy*Zo9XYifNP?1k𾠣 *_BupֲB[ 4Xφ}P73d"dٮ&<ăT>x4Y"GXF%Ngt2S 8.hpq܏#~2HleҢ(j =~n$ Y9PKC‰/q䢘&lrS1|8+ۺp5q Z(QӸAX!\$$$CsrL2$L%,*OQuOłBuUX뵊]xV~n,[|nC +-bY@X?(e92"կ)fm6@>_|Xȼ L N+VJ2v&ǂga:y*=>C,꽅zqwΣaVbP$Ԇ3H* +|tc^7CvfCUʆN\A X)MȊQrK{Fۏe"j%hCi24.$ҲɹDӮ?2]HMtaPZ+C9J*_r%QNH4r{W) |em}^e ٻ +.v_.e'T)V4(FoUgzf0=rƣ[(hGjKҢy}%]ʟ%(y쭬0L1sR1w^NJO7 نyoxõO`i0)¿6T@JJL#״C[!)9!w+@,&TQ0GU5a +5\1(-9]s41y3yʍ/ G䇫~IĴ41_35g%@.1N§ N̡Pi'74@rz8Z? i;f +cENOri@Du{A6.ѱ>1_:, Jf?/LCNN*E]٭!mq=p)ݍ +cFMH?b;t% 7r~L&3>ﰞ~6slD'9?6T­ϙ^ 5; +k[}gX0^hq$WKJm3qV/f̔&|}31sO[9"6ε6 9K+|dj8a&kɐ=9wUͩ?|0,lugzeU,}* e-^uGSoy77bC#Qşn[,( l^ 6!ʌ>":jbiq2$V1\$ǕwkGԣQ%[`ѐJ Ή `]+Y)u!*5(HIdaoElw17hYxЈrMyA39ScLYgBل*dlQ P/Džml)IR`i?ĞAY訌:et/ ysn琸M>dSG&HPe*p:vFӫ}9|%*CdڌTm ؍θSVkq~VQ< f +CB'LH? 6ǍZWzjxA|+cshi#a43 KZr?'H:m2AĽ eЭdcM^k^Cj#,@DL2I~tHGǫJ̀e W`_qZb +"pp߄CH I&d2L)xʪ*jXEtJJ]EZ_=@XY#>(UT#tgE UO4E]cDix`Ffw0b(U +Y]sAvjfhw@A,bx#iu+E_Xx˼U-EW'_@ce2b1( h^EN +`V[@-kbn_Pe:60lu-'\j|Dme;tHGD˪&աD!ߪ@M?B=rΕtSwo2Y!;DLž]򮆁˶Rf;˷-r0ۏ첸R}"?5#mk+3((.RxP{K$ ~?uX m(U$C[KIl9vL"F]C2q.OI61Qx 1iQZxle_)O&uZCj7$6} A~8zXmb|n^i>]fQBchJDj^ k]rou#Ih +8ЂTc1)üW+-*kxueI~PE:LR] &t-¬^*$M4-bB c鎳A9ZuKDۄT}pp;dzx0w + 7 ? rlJU/3BK3hf@jm1RזD*p֓2O(Vv +ndmMAO;1S`M-a6)N˛,_ +l[c.Hі%Ŗش+#]lcٶ$ s~&b~In^Y6-쪸ʟ/FRa` Ei|o$Գh:)=kZv6g|V'E;R^t\"ZW +YnN'⢒LiK[!6bjnf$=+ *.ӃKvIchP*%zډ,1-pGsD8DC7x&X8e!j5kL4Y &XqYLA)$]s_g^.[fx́{sHq  o݌ KFaa)1$PoגיDO̐Ńwq?0$װޮxYZN8$8 _ُ$`lcZ6ݐ?ȇY+0H5zቔkQ}Ö!~QQ2&P{BcH|7gz9^sylu^A ;RckU>)vQ 8:oVcsK68#7>^nNk_<w*>mڹ3"ΨŢl` D#ޣ7W-#hD:G"DxA4 >X( 6b-X>*'qkxOOX+{5| fP|~NEzEy?|S-2<3}=`[~#ltGPj_ _߷,cn$kaM=UlMQ"gɆ 5iЉ5M%7R%qvLSG[]]M vKsw>q| +7pL=#.[CjϨ^wUOlTvCe]j20uuFfձʪ:AƆ"E*S'_ +!Z:Qpt47rv윽Ys9{<Fr׃d+G1 F~ /bm1&&x, ^ LtZnDz4g?x7o߽06m3fB|=ksΛ 4|K5~Xp%&(*,.0<664^?|X@`PsB#b$ PX<1A͹O3l.O IrOS#?UBP' +BPT;} *~>22 +EOL_~[ g ,v,cy]zFl(}FVύPq㫪J6A$*H$Ρ`v0;f×9zL2ٞQC|QM5xzAR+Ԕ k*xGjsH%Ť^Vaݼr~Lȡ3h5$؋#2'$ +,FP].V!foDc&2`* _'ǹ{# ݰw%{2>aQ*X SV*5r1V/\2dL9x~dE ]0 +^z[AKmILŤSK``;m\ojc{.]w{]}A][UT5䄚T9"#֑$-QJ֙ +(R;7n^윆a:VVTST@e& +PkLlvw6ԷU8{`>5#8-Eʦhc5Ij ɱUx(EUu=XU=ux}{tjG +4a(=Gr(nËqZTivU肝 F7 :&|ؾĮȬ8CLNlG\nt{Bvx~T2?]ъ?:B': nAS+w."nG%PBRBz^MLpz&*T@ mHh؇Dc΢&ZT_Wj 5yI5LOї5m + һE/`v0;fˡp;ϙ־A}UlK8SQC#kדtYFUVErAF̾!b7E|{e wY쓌E8T@V4U4<7IIiA(R@: j:8vug*tE@EQ*r 럄B; !rIC@V@]_ӇQ5UW/)aY/-Ry%F2"  InK/i"tY{p8d|Q\Đxi'6ĩ/UUi5gԧyebLY(ke&\1q(h-Ev;wΛ6 !5kC(xH@m՝N&וy UFeaf5n\+#$,۾.wAڐ&T%_}ؗY6"s 9G&j ơR9aWLt~-m ANv$&! 2p0t{z$?5Z uTj]Ġ`9t& f,h؈!%gS$&T<6ncK /'z&bp`F*8b(@H3x!}': yo8IP&\P{C@Rt(ɓʌ*rH1𵐗&dx'McČ`$f>m|S~䃱ؕ$x0mq]Pe& i#eF6AWB~8QChiTɞ <|]z[u*nz!bg9Ԓr3lq Xr3" >4SPh=m@A8 {Ͼ+\Ǖ--F3a@4M6;ҩ'Z8JԐpjj6 DzQ0'չ=;Qv(X N#0-z#}2Ң>ƾ#Ahw8Vw5C/[r:mU5fYH7H)N6S PX'>}<5ӽe~y'NNdtOݗdjM Z̓x3YAdECM&-ڀjG ož>ْm\-u ZTS#%xG;Ѣ8]0^`#Hƺb~ںnA-9*ViTR8 +`'yM>aATm#GђZVZ˪ݐETD_l }mϒdo8zPc)VdjGT *:YϪ z*MSqKP}W7K۫Ov*om;Czzqt}JeVl|eryItV2j)kb腳h ?|lIlN^mzQr}\E+ݫl([Xp1ٔZ[m@_Xi䮠pvfy?q)?GZ3=@W =T2lvsdrڰP챢ށzE     q5YTp +yOCŻReb &l[Ghmb9M%>]8!p~{gkl’B42?ȩVnI6 +e%2G-8o QP6ncN/J/FQ&= }-9>#, +>nƙ,Π z,>3'ЏԍI6Mo$GWdosfܐT:jGyhKڻ)k[Leٓ#ceA>Vl oiEǪ2p˪lMe.{J~IT"Cvnc53}-"ÐhI'ِ,kHM"D[YjsUZCM:fD˂+)U +Naa␽Zfk@ 0,"IBLtrAlĐ  N9Vr:#Q1ha x!coDjԀE_dLqi&]8NLSNIS/)WKlƜ5==\[jTv]٨@(WKsm!fwO)iiLڤ?鑓#tɕOL=?ٯ9,o9̳t2UAP@C6-!d!@ BB6BĂQDkop94Mre9*ӍRMd0W:rB5*G1GRBd; ib"P'dh8^`B5yϕJ\ L΄*nW2b߭L)3t*E&' sdr* i@s?/=:Vh,~ߗ;{u15k}6EnA;xobhS$u,N%ɕ8j 'q/qO=`S)г ,Tרs=@o5-z$^˚Fk3(lUA?5(!4v(_uw1ff:w-}hXKvzqAOQ NϜ@:&z$B/ $Gc*8?z0;ߗ]/ZZV#sY]X&qzlKNCd P¶GFޜ=;èj!,z5ϥ+D`C^n"NJf90 2?}ɉ=yΝi*mJnL6M$_e A ($eEU Ȁӏ^9,>IoGs}YEHBWh֯յYTwL3rS1MOeS-)*d`[hh%؝jӣ͓\$|[XRK@-_JoЌ+כŋ8V"]?/&{d_$]B?,kʯ2xF5xun#s +[oyDs?{how1,8 fL?CVAyE% +K.?)-amU [5[ڜȺMtM0o?s}*Ϝ|-.̩ {JZVu (lIneC6%FQnj̍;\M{w 564q@p${{bKXQVx &\^fA{O򒻭m.B0b @ħ/d?4m/o +y0wA6kloz=vVtbd.RC{,DŽ4]@Г zӁ4#L#y,xK|}]XÿC>A𵲇i6pD1|܎,HψP(@c ii@Rq2[eaU^FR6Jz!` {v' fQm)0}^(6Rc$5 (r~P,y9wM:(^։gDHDϡyl"0A4t!5F5bl ”#@ +)ۚ+Ou`;\ mqׂZ4++'8bqu2ǬN Gt$ F7 G,)O '6bgSo/+WuQ.mlc`rj($oQM +0rIF?i#@I_S>8Z7gW-[ܫ J?&[1Ck\B"mф;[ + 7qD +$fØt;Sj͖%qzfg,;-^Q`-}"ҘGHv- 35Sl.J7oÉ@ 5pNgmwٱٙmu*ꊸ/#7H NH  @HB\$77!PxE.ov[O8bD>Π)Q6AY-aWjLGU-oF7k1Fj@3\=ۉ <'#Gޙ?uߎo qxeP IÉh1nzY=Wu Mզgԥ'(e]-gCGi.];^ɹ>~o[?) oOP^M!=aǠtRl69m^rU4\ O%%-,O]TB*s;?Mw+Pmv{ւC)#HܥO)ih\LC.!K'b1 HQs.w{ϟ/2Tp c6#s6"bI)i+˰exVz:;9 sYAnSKG?vOW{$a R*ը1o7l ˯WC^kh+qf7 :B|J+*u}B2#PCѦˋS%e*:g cCh܁li) +`Fm5{kï 5!>s^sUXt9UJ厓7YΆ-P7 $*gz0W]yl`\:XA>s97<5'&cE=ffӕDdyix M8ZH6."4Fm Iz9)d1 ź F+)mju@a7gDfFiUcԝRڊXxi>6|XG/@@+$kaQbќ0/nMҋ]%:c!רZTxY jq4Fּ]Xyw?=5a'v:u]㌵u=,"@n9 $$!+E@AHGBBpEA."(hA P뷙ӗ}Їw +oPEiԑ9qͩ[ q)Q<\Uh.gY}WS(35QEJYj)zS h/Pk<^~'?aS| A :8}F/R+|cha + 4Y^HjZU7 +[C1 ?w<}Aw{_Kyē]Pmp\+ؐ- TźˠRVYĐ[tX;-i(i7[9GPq4zg6@0=4kֈ\c-MANTij *A+7V |ZQ4fmld/ 5@ +ݽ#]w̋Usri07mN wˌ|!WQRQIc fWlerU:Gg&{ q? +n. |f0rg$u͚B869A$Vˊ:bVoi L,EUJ@!Og)Л@v4>4=A[+g $fy4"nv,9r1gJc:5J-AYL +:J匞Y*ϗȭy5Zg!W6@@6,GDOMBӆF`+٘^-+*uj/iuUcnC9K)7hsz 5]Nٰ;Td~>TJ4& *ow} u?zXcΑggS+~P2u.3MV&*1Z,_e%I#\iPpYRg/PphmsY}~'kGs4Tj`ޅX~>3en؈24"y 'ʸq~tZh/5kofصOa8s߸F_$@3q˰>'n9;7^^^=1.5?jD'_X,D,Qn?t/J\p &w!ב0؋gTStZ*j| D„=bCB3WYx{ot}5[,w$ 4LBA#oaQQ\xąʈ}IHNK ȇߠ Ke's}*_};v$p;$p\,1~ ?$ + + ! +9~|?}SRwp^@YH{VDrqQ"Ş'VpoTU$VdDױJtzt +*BM"{i1a=~oضR[ Q!q/eUV.yVH[(`IʪYL 1KWiE2c9rg0]DgQ])ܚd]ѯWiMU}:o@:vN?ćѱ@Fq?.[cT(y1oM70œh~8Jh.#lQDҭWF[3j;E#@O<~.;YKhk&qtd=rT}J+zPUX}Ψ9gTz<#8:<1)y/%O$yevUm:>Cn^!R$,@P18Qr .eFҺs&o|<#AD1@q47剜_NJ5yvAT8a@Â*2 +hc^3~13JEi颸r!:Aj$U^NMrs!&xt~8ۀ>4@sWѴm)9PV-kQŸiP8SYFR4c4Kl] IC4<Q zás!{2 ЅfNxfKH~JμΟuF^4܊prfJ@г:6BRBd +Am-[[ꍏm@Ch[kd+>~r`vS!CkBD+Y]d=a&JD;Dlw؛7c_so` + y툈z6tk4 6֗7Z *-Kآ&%ת#qfB׆cʡ2 GMTC?.X [ZH5:Wt6譥dUEFIҬŋ(ZǗkxZ,z0= >=P~?Y9=1y~4tV$aix%A!jLsLdEԶrV!tZQ<s`i ,{߸?xQ#/Ne`%zyx+UnGz)xVY'iNCV`k"|FyT&`y'_z>#n/F\Lz2Cs/)Tb%Ӌ\8yU B+|Ȫ/: {7Ӟ޸ho;A[,8N(V'O7* xUzjޝ;Wd(aCV%l`PPyp<}捑^gՕBkQG5wa…g7pkŭYlhd˿L^b/IİK(9w} ۿy7S[Zh=(L0~l.}-ZYn@."@P +gSDFd{W5d˸:n8 \o3K>^=ݻ_%%4$&8 j%| A +oմĶ^Ƿî:fԌ& 6-LzH| b?ӑu[}U +^^_b6QYU82Tݘi-434o'iͩZRn +ZoH͟sӹ?}W>ߪm7 +b#1en ?#s"*aQ{u5k ixtJK} +LjH +0}0:[gAM vtv3tљvZuծ]uC;rCDD @ !`BBHHBr;\BZPXnŋu ؇}f~/76ذQ @Bbh\Yuun^R! lQwLs6H-M{#RpRʒKʓ7k׌MrM'?gİkS!" q8@& xw3KsޖG!禼:􊑟 %X~H<齾vmWkaİu~AD +(Dh>F,AC~I)o|J"&xŭԤǮ03bgF}PM}3-z[6|ǓoK@C' 룐A PtD`#c{xʢHjl80bÀ!s'<jc/q/Ӄ@ | +8- QMxFeU>iHR|/1{.K<['-<+AIgPW7 K g + N H]iD/X"IYEMo( +g]Ytd_6]8|pR~ =)L}Uz{@ yf4HsRA:VPRX[CYqDu*ܹr. Y%3XlsZ~=*UN^i\U^,t{gP5y - AEr(ӣAeQq>IY`<<)`?5Y^2]b+0gnϪn]T_\Vc/=˚%>x[@A#I=,-B- g Vm<Ǿ_%߭PfZewJ-۸?{5# %SryUC ݠ>Ф'XʂRlFyCrsTI0%ŭҐǞ݌!Wi KFMvWZfC?]>jqF-VTyl?d^6b#Sl0bYKO̹4KftDuE5spx!DGSvWLv|j'mmcUZգ_E&Ѕmc~0 ֑ܙyWk:nv}þv sv$4y4A֏K磻2nuJUaDG222qwQ؃RpaWPgM/ uLnmXivu:3_0%yN䍡I/ɴQ:8nj %bP,|Tv@^@q;$8ΐBOGhOtP___r:!͆i`=li_(x1ra q#Ь$ $v@mdx8$ F{8 +;("a)^STS 7 +Ә>ɟAdL bc!3쨠bUom`kRS2i@1ȏlr>>^@=͚#K+ڴW+lc4`}_81CQ~u6hxF 0l? y;H !?)|$Y"3?iV徊H!fLSI̝Itx#{vMH!!M@0cr?H+e.%fNMcH͐/dLk V-I9wȫ_G 7^P6P%Ȩea-\`XL)jYFX| ך3"紒jro/&ꀣmjv;!NzA1 +1+d)VasYV.o*X0N?'Tg<'TZs{ZI=yw)=?S4О\ p|*N{?(ы +Q#eMeXqiJѳRSFz9XFRwOMnUzwOqKqOVgKx}E5qcu(:ʢ2 R^P)R @JHC"BE0 A\ gnև}99? ^!HyYz@-F*#1KcH9}b_Rh2/s/gf 97y7 HPa 0WRX3aA *v=A)%(j*5ybf?7 +@\MH@2 P7]APeB<*#q +r|h%x\N/bz|VViè- +5(n@ +^$k +$ub +wkd߁zf0]1>F)\d7KheRUr:[Dx%2Q5I%euaYI+tJ^%(G-il \~NSyU0.FyaM𔋵dCPq d&؜L,QdJ)BJ)dB֋$SC wNyߧ6Ʈ6/> +qJhMIlm"Y+q &WQ%+ŕm +Tbs@@ӞEoܭ-~b0䤶2'rą >UepKyBBc^3XVVIqUz1 >7O;AtzB;~ICțF-LZ,8GK(^4#J]cz9@YA}O_\;nzGPLh%%lƲ.I*\Y(ؼX%mK$ik ^-!Bs@i +?lu?ov9цwD%HS2{31| +n)c!5*!/Q)Hj&I A |sPsp3F>M/Gl|tĺκ>mw3ȭUNӑ98żbt,Bw2IjVs:L&9Z&9&^ MaݕɤvOeq'Ey+_hbh'GDzCȺB(kAzE*f5Ό0"4ӌ)ftPnjXo]+o?سB쨅手e36M$Po(u +v02`Ry=0^G/z*TN k㷩a#3 +sr%ۿ +Ve ˴?si1ߓAԇaqIw3SY*v5(Y51讆to40xQ9rl|Wӆus^Y~mKw|NQ^#Bqsғi1s̈9Zn0/GϷ`{|{cn[:6-2vk-oVZm-FC q4Fcqƴ(c j&Rߕ}L{#}9,Wϼ3 , S!VCfi}ؼþMGNK?z8O.{—`bc?[BD/b>bSPo93){J<#}Yw:W@F4 WAZY۾[hΪ8,v +]#xA7̀}@a zZ`C? O-"ܖ#>65ڷ;2"{+vM%\ -ypI^vq2_gQMg9=ǥ=Gg>(*(Ȏ;Hd%| ,심@EERVOU0l*wo{_;Ci zCg н|_H)Om;ݠ0ʃ]ʬ_Y4("65p`63q' ܭc~3!>G P~؎wr+ ..:rN@uᎅEc *lظ +zHMQ xzAԾDkW pN8t8@`s$@fka;PYln "b HQƺoc.᮳cً9 ܹ11?` v뀍5}wG!Bj/YD}鈿S ++5wqY.棇xcy/q14o(v7kHx AAn8x|A +e=1ı.${5pנq +&+0ȋ9 55l eԄJtJ{UK?Mj>"k>G>EOsE7ڙ+2k1`0)쉑KxP{ +]D#؄t +J2:xՙ&V"_8Cj71RuӲ +6YPsMҹ>jY,BOz;[Rd:MRhg75V]={__Зsbc kAENBv?k|?0j78H89PE +-aoPoꤜYB#k 5*a\pP&k, +E|>O<3KbXC㟡m+y~oߛ`b<&Uȥ\59颦lY€VɋTg*uũ 6cdJ3Ft@6cv`^GKq;}^] +h;c;H N]/eS  VUfRe $7eMZYWF0W-3|@oΗ l1a ؜um%]V;B=vB\pW-%\gKERSy*ʐU(E_0}&79 @͟ +S߮\tncuO:>hp{+!Z#9RM2Ǫ* KH)T*mN6M2յ4\DgB9_2?B p%MumwuL@#pBA^ ST::8iQimlY"YY9}^Pd9(R6 D)LI3 %8)|'r2$E9)yW ro?(}Sӑ) ֩ COǥ]%c7M5Y,iY!iFy-_RM-ϻR?{9,Rl|RRF$5tYqE7 )ɏ<ޑ)  Y4PSF5;/xWg-^f72.ԊU!AyW2*R/}8Bfzc%9gʥAgjĥ:NwJCrgECzu6Wzsmsw~a5eJmN qȈԪkRbWH:&*_V/+w_rDgfIkU[4Pe1vGO}MO@ٛK_omϕY' YwFHNM?x=G_sb:Uݔɬyɮ|ɭRAb/+զtU|J +WmR}mNW)6'|cDŽ6%ňw3\Heܩ%w_J{1 GV(d2*uTnVyxիE5.vmyN5ҏ.b< >oDrZc}[-U$rD$j {.TB2/^#.SjПS3gi{ݒ>'Oqb_B]\~gݑ&ft{w t\ ꨎltz9)z68D WoZ?u#ꇗT ,iCzҏNF<,iQL?ЛO`S,W}ueyUL+vS;3$~S' j#*eߩ]o^T,7Y+O;'=#e4@ӑ/rdbO,B&xȏYhuX#wvݗ +C3깢L!rL:{NFN&&%ST˴}P<4Mt +/fVwWkS%*4ҩǡ; Ra:6p`F~ 0cFnuF##G! +E$Ks@9]0D Te8v,`X` N70I>~ r>ę["fȱ2E>ރwf6uw r3W)˕ 0b +WS $x9[LkpXBA{c7$;C#@!MO/ X/AbAh)c52 +E0"Z+l xj=ir$5w« /Urc3\嬃hD1w!av%8?)b|Jؠs~S6$ o=OQ3MAdpm:f2ɷ@Hq$KˡS YeLT~Sz7I}t _(Âh#t! NuM5exuH،x1bCp = Ȣ{v)Ki5)Zޤw=@0A}N7PF,`Ȅݾr<`&OlX+m$9CiFg#Zd= ̠W5o*oQ+~(F{.0F0Lw$sD% lggEw:v/@2ڿ.bϰ=l.R-:{RUp#V$BB Y$9Y$0Baod(PW+^!,E^y>9/yw}qzP!qO( CT=gd W o#oŸ_F M"#Q/IѯȷP(7b5. 0w~B~`9PXT?9; @X\V?, !tǻ4̡Y%ԴjH#uz:~CCoX}:No\{5MU?ͯO+r3nwfB` 9HY}LpuD(09ZMF5M.t+y&A ?,'L2򤨈2% `uM%;Ěsy~QC| %'bzjb72zjRXMI\I-)'Kb mB\@ḨOH8Ww~rCsk 3s63Q64r6[!¶K&~˙F"D]?L 49.5%Y =7pH`1],Y1W|rTMOweC/0m|L"H +Qo\JhKٍU}_6HϵIӹ{n OO?|{e/ʏU{Pu''L٠KT2^fq OhgK ^\RQ?& +lLjwxѬw݂{"YMв֞\;Tw}˄ nʦD֤ctB5YN7)S92 C'NEEC,PGI1YR PJ[rY¹}'}K5Uv Y/Ηg1c|I'SCR(NYd*R!Z2_ɞ*!hTAc2px3H]}=@]_Y0^}gwt# cOU EttAVJNSrY&U+UJJE1HaU@5ikwxN|ҹk5zC'KԘ<^-j3$/K5u&-Qp5 J暒Qr4rn,Am@7dK[>Tluٰ}së otxՕ`ߦ*P'B2p5 (\R' G&w5\gZ׻^<|}WwVPr9꘩{.+a%R!(Pq9g83mRa. $rt >SWV:rk>WX}rKEGK 2؀9ZG@$Ub\TDc+شB-h.YK}6(E[%XӸ$.wBly; +OU+ڼGr꽳ݳҚ7y(n)(A=Ǯ52:ZVf$+̂J]#EOP)=@/q֯/qxpoӡrΟ}=K+3FNȺ :VMi ӒLC5vDS7<]~QmP.rF/Pm`C߽yݏ:6Žў%GVg  uDЏ fB)7^^Lu)6Z2>u䝆c Ъh](VED$ +*d/FI + Œb#ngT-.uGܷ0n +B39+r?%RC]9˻RzU.y;w;l`Wqy-g?cS_iy=*| BKZJO6>b)MSXT*4VUj^cu:ZvctWn`>ӳ~˴[9N;W/9'%j:f8#mϲLviTv:^֚ۖǔ.[Wd1uV#eߴj%?Pbv$k4mv!&2yҶ]7tG۝8 /t)]8IWN0׵^bvWrRsLyc?=*˷ /m $KQ TL eP`F80+c_ĴŦXJU$& U% J>=r25j"#C##KnD]=q=ɑgDGw>ѝW!p|!ݲ7=^Jp|Rq^>(9!Q( HaY1!;BG.;QȞX?2n )~c3:Q/H&à r"d(|!/1B?T`GMG b ֶj+}<Aw#` 'p3nI`ǃѴ(ȦG@=# :d Ry=[9}Ʀ߷ V|aStD}Hp GP''C>i>ԓ}<9S|P6%_z=P5uv1 ġP/r. ܙIH@Z^(%Q| DJ/&8X`a:$I!a xa;{K!Ȉra93aӡ@ +eqqu1Syn-\Hnlf裆XT?go"aHi9C +crY3aaH @FVҖECm<$ 1n&x k&i}V3 #~{Pi کaa5, >.A C+Ĺ!<20DC:oe@Xu QS|pS\(nD{;rPo,'!6@f A c8Lש( _6 hLj] +䛙āh'#NwY3a)X<,a&Fc42Q)mkD,Bg_ ܒZTO.P&6+%_e- / _'E}4pR4Bo`,L\jV[x~IvX%=!+9x-7+__)[T-=YsSn\V/*G5f. 9sPl8PY^X#*EP.r`i^|onI)k-筮EҗvElSecM셦Y֓~G>A^W֯;8"߇UcPwGs-}5bc)pڳS2$kw[4UՇ5wtO7T]Kzuᔦp?VM63rz\?Y Brs9z!p2;ik#|r[a[!g=,Ʈlׂw1XWef ƫVD)tL^Nn?Γ8rFJF7qxg3Pr|UO3& S5`їƽ}/0~_5t<᳷9h[C䙆xO$_TN r0󖻍\g'9YߎAZ-՘MOd%LM59U}v!5J@XĖ1fGyPdвp.O80v9f< smOvcb8fZp(%-$T,,5K34HDuQP"KٗdZN<9\vupdi}{>Q `>7ZNHM$RCÆGda+2ZB'pĂp2SHr] +j yhC_K^hyb5b=lО# pQ,[8XG*cE_ODNCVNš)i8GU;ۈ&_HfPHZ!I!q"EmB"~>"pg#!(Ohg3aNQ4NB8kC{-!v,t5J d @T~|p7c1?#HKAo*V"t@' @ P{}dY7` +b u: Z34b(@,i!֡%`D(0~N} G69?CL  [(B[= q.Ш=4Bqq%xg`]y=;{5x5,k 2)Blp'0\Wx@c2;U ._ QM;#tp[\6scc~pG{ÜʘT e0} 5alZ(~'gYb.cny8=לOO11v +{*D̿D[!އ-L쑾h hśH 1%:K谺8|H!rP6 ca=,(^%~wBx/[bE܋=!9a grܑN6C=ڵQTUnE/?%'bW/wsᓸےRȬCAIɃL;8bXɜ!|n>sZzs~Ē7 ѯ4[؝>sQSYr_?ߓߑǷKWҋayu!CNF +;ڢ0xǡؐ|Ѹ#i{KcmJqkjobMZ:Oo tgw%;y}w,p>zݭB/M6小\!8D߲^7ZՐUPq̸%5:=iszGRUgcefobEf +b,g":z_Jמ 獡#NvF:unrsԱLvSQpxWZy}&6K&w*簩2yCgu9Irr{A"rYLtފ#oserɁ`{&^ɛu6LfJSdSy:qMP\Tee`KBE~Cb2isjrqؤϷ&,%!T ; (]@{:!PRB( R'DD H*" qwPagȇ99ߒs9I$(BVK S%> ~"^=7y^as`&ETSYAʨcGq'y3좂s‚nÔ/.w-XOlDde1%PD _*s:bhqИvN~Vqt`~xv>ǵ6Ç_TSq4Һ"މDnW49z)p}8EGדrlD@`VFExߡ³JdT=bH2`#7>"ak{?~л>;0y&6)!3)l09l:`9e̒ (FPyyX햅#`\/X˜pQ<cr9Ut(PZ=/2*PmC|zu;+lrJ'&I̩ZgTn$VlDt_$ X' ڤEmۓJper7ujRzdYgg穾P3Qֵ]SNA&&t.C#I.^hz-;XO#v>c>N6nkRlrk}xg.+98=7Q; pa``4ݣARP.F}CycJO$ ]ㅾjQPpav:MaC/ao,lfʹ%?wHo, ןDY\$o4(^U5"kUfJglYsVXV^ R x_md-;]:fֳ{l`^`h>jd~rgc" t^hXx@@!`CӘJ*䣃t'w9O~[=>*~fnsK;jZ|[=8t#42B/kd@su:pPQD-JSь6t7t䌞[_Ce!S +"gf(`*`Tݍ=.ne4.OH"Q(D'P\ЈhCFG t}JaFK!k.:7ict5A=Ș0EƬ_lWXi?M12qJ$ވ:&$*eQyPEY+:긺 (# ~| G E 3N:8ͺ;8Oz@5!8&cǴ +|5;Gk :{nq#x9g 8fӸ/<.ou[@1?s!p@3 if o^9-j y;Rf5@nrv' tR/2}e_^S\?zqfLxÞ7$>hp ANAF\2r6hjіI,[t;RZq3~.Ӿg\^3E&$ߑN_%| +, @`iRkCٽV@8y5l 9H:ff +(wĬMқ\?'?z u:Lw~v{ S?xJ;oe;5CB"/oSlKlYk3)Nd;9ut3{ܟ1N|ʸI/WIs >@e@>AngkJXO]%i2Bӟ֯eǤ鎣2Մ!n 1!ktkk:K7J?(}\[0G}Eb=l AdHQ@[!Mڮ{W{zn4yX)(6~;aj<ⵠ*+6EI>9?nj3qf K10$H 0<_^ ꝉh4 ]\ܒ\w,_!5{omwrqqQ{/3=.iH}!徽jϾ&)id`Oˬc6'vMUE]sz=H٤[ ע/Kj{FܕXRgkܴ?ZWLdUE7pQ=’_DőEQoQ3C:~AW= 1%ޙhFIiV V\-[SOxgWVS{zTg*|$1ZpqXqU_-khbOc/scs^r⦅sx!!n꽫QZM}y6Tvnj +Ҁ' ;#=T>)2U>(I*ي.Q$]qWVS4)u߀`_vP@cMjM給`:IkOk[ +lZ +ϗΉ#j3I%iCibVvr/]$8)NIC5Cǝ/: ;/1n&K `ŏX4jFtM@- + aPBzVYaLYㅘk|kObX3ٱ~&6r6ȻOOG6ɠDW9i"ӽQEhƜ ,0b*e9,'aՖS3c3{DQ4H0)ځPqE! +<Q=0i` 4LOt=.a.ʰ"aDCE4TQDU8 cPf([ .Rn(ASxX9xG r09ACڗZ1Jj ֨IGբ8hJ*\'8(>M\'ot b`8dLT;YR6*q~uF.J=QrNި?(KGyR$%zQQţGC1 0Vg်Qf@e;b/CxbQި$D*,,  ]彂w9zЧ[0OE-z c LZ` +c16\0j +#ڭaMzo0|?@uDЧj*[>*/x}P~|ݣ|ݥBY0< }c% \*fS1wM\H tdrtqƽ7jCd n]7{G}^kNtiD/5D/4Dj=|f~Rc5uԙqIDQ⊈ȾCHrsH }; + +#xZʴiZԱuZ>sx9||񐊵n.5YMAJ"KA 5 *#pL6#-pͶz7ӦJWn]Rc&S٥";H+,%p jHVJbe)Qa^b(,D y)|Z)qn3כ X)a zmVoRG,K)kȫvٕɎ|3LV&V%XU?@Uw(1ſ!1Ő(ZeW0Wi x6}=A{a.'M6eKȞ&!>6!$.ݙ[+tOfUUFW#ȑWy{R"wypьÝs8>Zﵡ7"fi-hgMoKKiIuHl7Iz7QCi +n +\+k{'B>p6?7{qevCd]@?ߓv> eЛbw8Gv廝xw{S;|)W[E?r/~V迒g9jfjk`s@=aSN3w1_3"ܑН]QM^i@AH ,!!   aȢ ѶNjkkGfܵ"hE .qj3/s{{sfW/=4rl4:&eUԉU'br(PV_}P#>NW8,9u >K~i]ԅ܋/a坟ÝyDUD^Rj NOD{Z\oO#"V7ЊwXN)iQOͿjr˹jʺZ\25/$7'6}&o 7}״Gm:i=ic l:;wP^Ս Ϳ㌊|QMD[}fpNۊ<zǷ1tmk|cm_blԶݜǸv ?6OvwP;;ye*pALdRԩ3vΰOJuvuO*vt/v^^ٳK޳[s.=͐^cHzak=U>GhùwK[w@9(+JcԾ"_L+)qZ;@U=h̦E;ȇ#J$ëpKi +נZV7n7ˁp;8]~QBi8 c>H7'""zBJ*'T"}kC]dR!EBXd/48pܑ~p֑ ͎,xx5quoC('u"4c )d $L.9t?$\0Q ‚̷C|n Pݠ}f>g#Ѕf!8w + +W(|!g5q ̤+$a.9N )Br=H$$(H-@TPiwgpZwl!_t1 b v{ cbh01dU!$Ą Va8*Ĥ@= >re(>/}K _2AR]`O!tZ +WR`HR~E$bP +ev0CKq'@7' - r\>&@~ aأ+{X>߀8rɀ7(qVH pIj*$&9f̙!vh7z+bMDbGd*FU'9oTת+-Πӧ<S@?IH䓐0)IO0M_=_3[|5略3h5gx/4x57xk}10=c ֟.)~ HEnZ{4:ML5y$҇V'c0l{nj]^An}SwQDMЮ$M|[:A8n@,ҘHB>#/~|qĒ2U<}̷;u 3+ޣ&Op/Bh3Pxtp_t=ᙨ*рK_걺I& (NBQ(e(:\ Ź77ǽ#g={ U[Zm7SH!zʿE-!ƚ+ƛ9ji&"N}} {o7sY Rʳj)s\ΞMoBVkNŲZД!cR֐ȧ̻$VqSmDcYi@~<4VJ' s<0,bK%!dW"fŹbR~]ʀs> *SINf패';Q̨<Ѡs,AeԽ"xBBZuh)MְBXRȶ[ȯ)\.<9q]QMi$((H*"@V,f5@ !LK@(h5x92NGǶsȇ߹~z}c)̓*u96Ϝ e^*3WuZM?YP2r}mob ZfkVPa~RM|%Qz|Ǹ$~(ŵO%n +%ZnUSOPj8=G`ߡ_ҥhܟ)<fA%z)U#%ܫefeE䶉ò3. ҼMBZ P+ڰ¦9$P%+2-%&DqlZ`ߗ+ ks9l3k2"Z*?﯊"you@+a{6 }jKKKbA*huE!j iTo5&#YP>e~L`C&ZSXQr5\k޸qM>ʮSkMmeCJ)׻_V& *W"5QXN< @>Bsoh\!B-"y3$0T`½z5:<̶ɖøPFm[ÉZUGJ>EMʪ|oHY8T*Wy-$W6Ec-sFF*"odRJ,48X`f:` -ؼbt̡Bpק{+y~š@~,6<_ɮdUL2d tt[Z?tBɐ!䭐\oJީr1p {@0uָ]r]Ky뀨1dzX]ksTu +BV&*)LU*CqP|Ce¬Aȿ!mpLp~Wy z{ô1){˻O9w&)HWԖu㕧4K3!i03"Y3JJTϑ+ r|ȭ^:OuW) {hshF}p|f+iZ@՜#H1\%wc홗.:3.f$p㦥NNzj5y˟>?}?Oq$6nfDgpG p =I=@+B;D7xxK>ؼ04+6g|`rŁfڵCk3eO=IW_zFοC#fwv~Qir +os+ k cLV-&۞˲?f`;Dx; ejgA'зhv 7|fkg/] z ٿկ{x`),@ [ߙ@C 8`64f1ƳGm4c5ȵ4W+jv8N Z] _;{ z LpA8"4```"pP, RFC` +l¥zb'&jA'^R +4TxPQ HG</chm6F&Vjr +l&e +#n#D +eSNCCC@:*"=S,kP%;LQRBlt$js_%nsFΐـ޻9sG^xWSo-Tj}'润 MuyVMg/hF5DӠDdEa0$L!g*Si=j0DG3t9G.ߌzFZd-tm%mӅZ!?9rNGؠq;EQ=QGNZ (M4LfΙIJz{zX[3ح ټkqyVcW\YgCSǟ"8(s9~P~Tx>좸6xx!IM8JEo`iǒ7g`Yûl;x +ʩg[at5#}!UgєPp6i 6-)>$VG7yTE_UF?UcP=LxI ds0<Z@{-ΑR.¸j8]ECF.-D +ǣ_:N N&!Ƚ2~"RVws܏^ZqO%(ߓok"!dc@13E4wкXD]c[lظ ]lq|,úՙ3 +\+ֹM.}7מEIRN+g^3?*I1ބS8Ä́!9&1<&_b7r2Wi1_ì͍dIUTfgT6k^QIɷ<^3{{j϶:-畅w_u+7nJG騘=C<R}ZVry^).jpdI*/Wy`vs-q-[ 5gdBV.YMY2O(g6yK.omZ>a"^.#NzK\ g8@U+beV%y:Ewn_Bu.Ϩ<PD H)#LQA,"tІFpF RD *1XQp]f%'nf=G}s=WR*x-^nAIܐ84wQSQQ;aQP_B61xCTT0^,p̕_-]Qךnܔm^`UfWH+v)OmRIޒ)ܤ޹oEDBLH$ oA26.98]pfnt.*[;hQ]&8+e6lDzBY[Q+HouSEg|2R>H{-H#BK&E20\ߖpQ )qXt)*+4W֕V"ҭ &ۖg:J $\IN^vNWFv -h[i Q^R"K0T꺭bQ#U+,-}).$)" +&{d1pq5k7٨&+46r5 j:^q:(X̝),dEK9wkE5/snAph}OQQQF_,Õ2ڃJwfm4Յlț5{V5d7DbRd+>6)uSu墈&ކ.uCq~hН) +Sxgz7.^܃ZZi>5Pt:2e^iRuI*Knm7rKs=M2 JnHC{p OpCpC:=zW? +-4 ]@e*{磤ϖ)sg.VY97[pp֮(f):v!;ikw۪n{B.^R=lRMPzA]H-u̕IrbVύ>u4BcuGLBd.XPWvﰢqy7N}7{;s& 9:t}C@HĶQc$:2%@`u#BF6_s*ppqp5~'[-LjL.7h2h1=D[!b܍Y?.b/Qߪr#icؤ#7&s,17]Կ+_6dǁ\DU#c$&3+Y+&lU}'|2爦4SJM&-m):S]{ýqwx+}P2 +d.W)6ncmm,m +ib191 qBG|KV@E1aɂ:3jQ!9N,vP>'Sߨ־XԤN]O}&gI}D]\wa% R)i~=>BO͂82ٙ!.g.CX~خe6JlQ*\iTS@H.!y`b FdA@A 4 aJ"cD'( +(
Pϱ+߱}`:{uI ,c`#ց]{I|OdE?Xc{< +8b¯37*535.ClU4-B 8۰::paQpڱX'v1e| 2F9#a[ lA{̷Sɥ,s0\; +"_ h@ |9 fрW2:pb5 a|'&Gq b{̽D|^'Fa7BMhXt'=o) <_YؗڝW(5ܞdZnQcU!-[j!.z5{%-dp_jI:Pw1 d_hwWеL*D:臕fJ>Y)hץ(Sc +e&Ir2j}S_l_W- TC|)3I]':&ͺ(f^zLd/.XBVJ/)y+nd)˼hYh=w2٬ )vQ,yvi%)YaYYWCoadbτd`Π6AfҊ`u ؋M,hSbE nU/*H,X%%.ls>abAǐSN7=p w +%!9kųx)-vbE8{`u,= +*̃/ŖŔ fL7=[+"|WhW+BwK' ,:}mDss^R(shRX\)wPCTffU*'EL;mV1$bل-mWC_^!S~\[~ uI}q-v P߻`G)@N9@ΡKհSk +km N3<:fjm0ormڹ55K֤Uk|YxWWENѨQ?Jw0%wrf@Rɼe%ǘג3Ly)P@w_wOqץu*N:ڕyw[6~_U%1/;{xb ؅>K= c.Ul&׮VsǭX[-uMu^uY~%U4uyqx"*ʡvlC5ިxxŃJs`Vm\clTf3iwNl׶ݴMnc3w<>]لmqN +`TRiyFxs.q|r۵yyo띭}w8>9|nrolʖҵ-ˤe=UΧ䋜o)`"<#“QZ2\b$D+ mk ݾKvxr~Kqf(/]p6Q43` (; e /r*x> ].K< ^9e>gx:,fٌ M`tWDL+p`_+ǐ5|U"wxP w`EĄ+͸EQ"\!dAל8#P ܆Vk=!㼽ay4gTh֩ȑtG] ;z6& +,}sQD%IV%~pYJFii~Nu?V,'ZBsS` 9}yt{\T_b޼1zDw5Q]_Z|#x~sKn)$U9 48U*婄\C"⁒RX?"ZB =zOᨮFgyfG*˒V{3f{OBlMz 4eεFO >pZ`JUD/y:Ľr y̿_ # C{-4k-CF(^ԽfjppQ0f|7\^a3d{wUҕiM դ 0ь]}QNbWT.ŪUV^+1\"h:еg=Փp>j +-b oЫ*CH׵Gh(MAcj1:QLtwxBOg tZf݈kVߙ^b]jP!SXIsGN/l7O3y|-0?a LYB6b>@p-3(.7RFvsնD7ó2?YWyĪw6vXhŽ]ٖ eɳјJgg]ȳfPQ%L^`}a`aQ PD0÷Q )Fal7Ls:q&3sޜ0e \[%%I8ù s>pٴi +]ʞQK @ ?IoUWp㠻6DC{=7ff:47BsP u~ڪ`v? lo>mnVGA '&:n1ߒBӡC U(| YO"$=3!Q2 @ׄBz=HfX0IF)_u@wPlP ( PC2hM? tB"A +kSRsӚEs@a=2`8Ȩl3q}JCHb >$L$)^>8qZt^wK-uD'3Ÿ2q'vABpaRNH^ɛB~ CXHPCnnDOZu T 52^HF"$W셺=W3uЯGnj6{ΆF.f#W'~#{;֫e=֥?:CןdNvå_…VW.D.rah+i 8Jc=a} Xa2bak7lcwݿfwܳmЗH=_2p5YIr4'jqbjQ3o7>xDxG#G퍼y13K~{ԷofÆ_$TT.nTwR7\v43g7p$I42w7y Y<=Aߎ~m1[b~(h-hHh\`%li<?"ﻝAtWΰ)83Aq^aQYpZӀ4ۥWsN)LjK$4%Ygu 煵Dğ |1SPk_yd`ZT[0VFr2zeN +K<׭EhJ3y5YxS}k]|tDP%VHEfuIcQؘo1}c%殺9Us0clƐfӧveٷ͙.J[}FG]z%WPt!A|BT*˗$S^X`EаtP7)r>0Oc m@o6Sm9`ߨIvV8ת\+Urg̬-l/VʣBYNxBKdń3_ ܣگ逋"`~ǸCBGGAӢñG%8XrӜ+wcNg3de7 }|aQ$G}%@~HJQbB'Ry"es8Ba+z|tٰ֠iEU9H.%:!_YW˫mks{H=%Qi/dj )Բb-in({HWFG'5ԗ25e;8a\sI}iqp)2t|b +~VA `T;!V.J亻r'?$ +K߱!u="!{KsH_[p"$bP[*( b ݜB~xmuSv%2MYY^aS̃$0(8qKQ[Q&']%3ZZ:WtCY?֠ȺYwrpnvC}V}^8vw֕z&Vk}j15,(-aW¨/U V]uTz>+C4-(lA~*h7#};jdEqmim2Gi9%5\y볿_x,?:_/aa ճ`>GSʹ -]=m]]@^7^/dٿA0Xnb>/!W[cv 幷%ޮB:B:㦉fz~t.tV.=Q7![@$oGx(3͉OF"Ʋ9u5ctmim##?r>o<Y, Q}hPv ec@¤b=%F:ފ] gBgb=3) ΙmU?nqxkzq 7/ޜS'Xc@ +v>ʵ sH:D&u9_[sc>oχ`|mq2oTh3q6٬܍~Ivl?ᮝn9~Wc2 Ng9ឋ@e.,x p iq6.a]xj_Ǻ%,e%V/YUKʥ#LyFr6#Y,/<爯1E#T{'trcIICm׀759`w +ﮃ^ł_9}PV )x=χ_u1>FH}oM+@ lzx> չle D((`W% 1`A,H@Dņ(< C-O1D!ODQDĂg0;=;{9F 9PY0s C Yҿ#DHNb:D X +ACFr<(g3J,Z=X=OZ8 `] h%+"6!j&;@:5ͣ1n@hm +}k7jGK(]48Zw }0`W.e@~5Gn+jM :kRsG?:=@ON}DoG=b{}`]$7bu)bѽ5t?+f 5(F?C?b>`hUŗ`RwŮ`0o4H%$"H>)k xCxjth(m0k0QLɼLDcOWI%KrW߀|ExNyn@߅BV5ջ ]x)[,<:t6ᑬt7J+&BZ7pC]h2ehTsE9塡|(T7Tj +:U3PŸ@7QMVen)wr{q]yMWՌCkp^øZsƝ{=fKm`f9/c)QDy P+Kz?'\z?#qnU듸c>;sC V}ҮBܾUXfLXD%L3lw`φ1H6G[g\qǜqy,wy"y_sW8-q;-v\#,s:Jvv:;9:wlqfLm|N:h{u A!8bnqm* +[u_epKؐ**2,m7֛l1l5)0.7TJ6 W\:dk\^V2Yg`(vF#9. % }#cwJFscS[ŋ6-X f%YZ=_ڽXU9 ֥t'+mZ#PM88>(cEV~O8qT oDѺk6+Y"ʐ-ʑg{fzmS,maeye//L:}?>4sЬD}>͟Po ;`k@xry`A1Zѓ٣L2eit,ET-RBg}[~=h(1:ӑ (X2 d 3lj2|/N&I I?Wbиlqr1_5׸S3Xejf<.iSGCp" +80(ٯ[u^ȉ̘AȈҢ}QXqR9Ӥ'S E ]|j)ǻMk"-&1sT?pjPEq췍Ҽ3NZ,ҿqBj;(v<.@0wlpvL8!f)xy\ԨLȵ" uyGEuqwgfd`.誈i*e60 URUZb2XYK(nQ@M\)GO-hknQ999s{}b<31=uO\u]D1D[~:s[<ס='ˍykP0e P0I(HҜy2s&3.N#56CiuXShvNޠGGp>36o_kE QY|7jdYc?4bIQ4I\tl-4 6)1D")!ΐc/T+b۵ \z/NFŋ~>\3T`'ٔuy%&G,5E^rR!+ea򗤚a6IѶE +$}LR¤r'Vaܦ 7w 3wY`%Rf5Q|'&`_ԥ;I 2ۭ^8cGbt8Nşi kܭz a5_b[7 W`=.Z +׆]4T[]Mo:`+@. +L p? f' iA̓0 8 ׃S +{t{Ȁ>-fn)Eϖ:4@ro9tXr0y TO&`R3`Q19*hZ]nusp2Nm U{0C{2OAy +vP7A%PJ^uqW}@w&cN7sG80u +p>-*ka{l(H/xArA$upup}DwPA;6yDt3=S-iw8O.ձ]#Zr_`HD)PY^K:_KFn )kp9}5O= G; pKŦ@ ؋+p By:xyDM?} :[KWO21 F.~EG+#ɗK q_po-~#nT]:˪^nb +8K!N>C<O}'iǠd[[k;ϯEf\ wNrgũ!p/394L`""}*/@%Spk6\KÍ8†NQp: +jp2`9Nű yy9t>`:G}vm(/cH?5'Ip?P;2z4.c: 'i8ڍVW0.bfzWt[=h/ + n{h˸_E zyɓTb5 O7?OEOHhq`t Dg)`Cʘ!]Zv{*vkphsѦŭ!CΉׇ7OZ4gI{Y*w}? A/zPg&2S:Qh MP3}:5<@SnT6hZ4uuqUҠ%YVkNq+5WSHOQZ*HyYITꩤމ&8biޡ'H}1 +"'b{d86Gji`6D3-vv]m / %^^%^DR[- & +[v\^'_H {BWG7&3ҿ| )-F{lM16ͱhIbƤ2l}C<@,L\5G$jW3NpZzfyմyQG}*.*D=P̎NQ-xyO |JOi:D'mxZѬSQ7uOg x $>[TujZ*W+F^kSRΌUighUjP yj9n/L]ns!I!X2)!K CmJ,S,HNe'e%9ĕىeܬJiybLR^[(TĻ|~$A& \9 4{IF ǪXnZ㻨1b12h![\npI%\BZ_ +/7+)ەN}?&zAI(^s?dN~7_mSJ<ñ TMAeZ$Sa2s +[jfKS\q7K]*Ӵ'Ԥ1n},)F??2 J/W袙h!kS.s(N9]Q;yIq#IlĦ3Ein8U(1} +$pGn?cUk(b,% J,v-I.. Eu݊#ʘOʘA'GHotE,9g0@X3}9ݓT84ɬOOZqIP/y_,*ʷ8o{PzN-gߑn1>c ӧ#% iJ-,KRĦwIp^4;D!:gk{Re܋$$ӻ0 +Lg6)C8cl7FgaTV?x B\,Il|ଥҨղYeY&rM"<'"*WB[+XIYIoR٢M^s=\wD\C5`0D"83ƹBqfL7JHCvKCviH#iȆe!Ԧ.e.I +^ ̦{~F`8[֘B99c@"u(AxI$ %_2JF_Tf!شzS۴Ne*Kv +PrQ? +_H +\ la d5i!݉tOR r+ZJWޕeE9X 0e,sòb 3КB[m(xuQ!b#IY}XLa[8 l5N /xF6#n7LŖ-lڶ* joAe}u͏Dt##s*g16Jҿ< pnPBUNP6t>2 kgBCfQttR@Z| 01O'06 z? 'Q@86!=Õx-~ 0h兠V>xڸ\[ 9/G0+"<5`#Ha 8iAu#y㼖➼ ŜG;/"WX_B_-'{9ȍN2I{F(;޾^S@y\|N u'^5Mw6'݁t$jV; . ={\\ ry =f +0^-z~I8m|E&w͜>ɤDtح;DM"P2$ydIOK exJVғ;؀DW!-tUU񭸆2Gq?"G@ο\!/"o™89iͦ=zГQ3pkMrpqUFjFgъSm$3‘O"%Cpb.đh8!x ܒNuY"o$[ TY:Sf*/G|6Eр&E :=؝~@JDd j|<\5x]7\uK18 Ψ)ؐ<޷=||E>86pcQgvǡJ? +`>e TNXI(ћ`Pl67HCNI6ܒCHrCEIίx̲\fimc?p}a2lEa$&4lLY(6COBao/}\)A55J .{]8..]n r[ۊ(%*XԱmSӦi3δv!mӴt2M3Mil/2f9ߞ>f&mJ`OfO-'_Ʌɍˍ "ܱj}6p/{Vp\qz܊5)hF+" ӚjLjIMs"fÙ!v43gNsCܠ"\4wYSe}~@DPCܦ+;t/m"hUc*7'sMέdFNfXa젶 i{~0ק=hgnK.UEg_  yyBrpeCmnNSgcDǐނA}ۘ~#ۥ悺\noӝQ ~+BY_٤+Ш>BIN1@QD,60aL@ش æ4g"dGٌt*tUVG5U~B$Zʜ5!M^Z{&Mpݵ6W&dw*&]g] ] ++"\F5uWep2CiJi +zE{RpqbS#uEuSnCw}jwςb_c٘B5Y3xwZ. +וywy_sjJ`&FOy]7Gif-PO՟ +f"1j=d\?_T䴼n"[n~i~-J#0GLQ;;ZPŽ0wn)j2@eE~W9tYV2s܁wyu65WGyu7HJxZ)st~P@1лoA^nhRqp@P>CfdJ U!#:¤zq65qMMKr)=kJu.ӞF D5-ʞ[ +d!st#2ƶc8ia=R|+,a_؉pH0ç] M&)|II74eָLZqhcq=dLO ej=N'$$O`fbI"qH+FB3sH\3oFH28O1p#Mύ!Z-v87 dRLL=e\,'`f< )H\8شhlX|s/#~qxqo n=<9) Ch_$uh +ПfIH^6]p) D"\ށX"vŌu+XEJʕA|-p~I|gėPG@pS%gi9i%ҿL/וP1M}SQQB_CRJSNhHER !|dB29>eȲZfǚ550żmw\]繟њ@ҚCeSeSE؈xxu`E D994|Cݬ`@c\ 0^_o !(`$' NRp>ٜ69mV<Z[9ɭ u;yr)ɘ+ƫf0jRӢ P676 +}@R;Nl_lL:X;:8 u'F7yۀ܋ouQ`= PSy +*_6XAEl<sDw' L7;0x0ZSלV/R"ȭN'w97?=G3sǼBOٌ<݋*%_꺑aуBFqd$$o+%9V)6 *5 Gp-'.o Y]> C+"/NyYG(2ꬢ:lΧq&9[<`_Gz)s 1'#`uQ/Z)ʤN`uSJY1ks4r.f~/Ȣ!ӝ7:WGP3ٌV"uC.b,lN%3_gpqoZ躙Y<8I + ᧾dJQϟ0ԊhI>K\P\͜E140M\ts :k42JC斒e.F` J.$A"gѦV84%^:e^.R/NZ*4؉zzu uawc3vE= 2,wwȍ>6^X㴱;MI(M"pX2 ʏqPze6>WNbOr۱t?63/QmvU揱-xN,+? bIaJ.l?=*q|]?o쵘ݖѨ)nyfQ%*W`U56YQ1 ^GXmnzxj3%Gyg{GFhh:!m3;m}PcjQevlMv`7v9Xgka}9VoE{X^nA+'C %bY(zԿ=}bi}z5 56t38zc?*ð1ӱ#9JYXR<,u*BSPۓ C%(Cg( +<'bg$LCRimE/R. aǜ|+W㬰@=ծL?2ԡHWO,TcNiB:[H+~vHZENһ\b͡\l{Jza|7[ +Θ_!90IB|B\`/.> \/E(TL : <&JAigV29Rz)d>rIv!cv RC⎙!c1# !a ؐHĄ +ѡIBTh0=4W -mSL +'-kzaRYA#[]dK3f H0$h\FFhM04ᘮiBdx0%|09_#M273(Bj+7& +"0#2L*8y2T2E$\Ct2_ۮfFmo^R=|yߔ-}ԋRR-)>Ϝ"3*{$efEim4%wW^zQM ʶ&fPndXVL#1Z[W,2Z2cI>&6j!<@ۖh!Y>q4M`,e,x 9*#fT{RclO8MIE,%eF+amڭku!u +j[5Vm8պʭVU_Z-mߺC[[7䷦A-Vsy\۾HJ1eRl4^kЯBnfs nԢ:D~aj^)K`eổf+]M"ˁ샓4(-wZ^;ir) 㞓nwF[Zi&sMk.:⽏B8jijpkxju-HN~spRb]05g9#э܆AV +xE{M\0pvƎ4Gh 1.::6zIù:bQG, r/ֱ>[#>AVG%h8ٜh[mӝihml҉GccPϡ_ONIt=.9_9%tzuR glf13] &;Jw>%}iBPWf2PWIU̫8rf`Db405nt;xZj~yl ҧp>HKo[ȝkrf>7vߐ@a5쇃L  B,$B&'fѿHi5\Buz}M=żtC:~5V)@C(M44sћ 4棱XׯuSDg-:XsE]>c}X+]`F>/jh   M@'_\h(Ac{)ezO=lK59cnE鄩zj>^TPnBHȅ@B.@!B- !"BAQDTRuκεgzvvnݥ]9o|=y2|k1;nmmW׆p%f.Ōb^pe^wqbpGX}qQ,MB!R}[;q+67Dĕ8.n0np̆vr|'p"~b!MX‘8p1Slӛ+,ejwѽW6\ڔsxiXJ$+܂d'wc.#2-޺[b_77 I}O0vG1QݟP{WH{1jm }=]8c,Pxub'k&j~GIF(}Ls1.è( Qv 0 .E!qbz]BgNtW2)ZXKM於C~ʚ%X$|@5敏)pS=e勔Ǡd#$Jr#K*C@ZԂvenx:) -f$sSk48?&"fE9OO5_{Hcq2Kc^2F9)_<Ay)(ѡ]QVE9*(Mp+Фtl ;|Us^lcQQfU=|ƌsdL3NY)GQF@:,xphRRW€ + WzPW [jƙEsjN1Ǩ}|H@1jO'Pݛz49D&N7@9z_ЦG t|4j JQU*;,:7:?L>fԏ /1*Go6Gg!=GrO4\Q|̒մoѽ =?eiѬ_> Tx +`5\@mj#5uiBuc:NVefZq1^Tr*L#NKT֬`o+&&uh<͔zSy(CC xIe_3LVe(%dtSV@uʹ[hUIѶ +X6# D(ЯvB / ?02xmY/sd?q5iݧg&#?E^`!! rB*d lnFf2SH/!-|H }z+NRi2Bz'6@m W7Dd;灼i06@0{]1K%5edX+aXo/m` ƣP;612@:Xvp {KO"ޣbrϯ.˥*4q~d%dԳճ|$$;G؍=g~Iރs{Ecpnk*>'͓|]%5!qw4V BB%}lN:PBp$aIvg9s~DD$<Ɂ' =Q%_BfjDd{=YpN')|FLN3,19%]`aB.(}INPWʤ8xd8Du:1>J;돟Ч[o pp p&t;1({@}>np/p_b?'v5Q5M+[4[Rjcr}Ǯ{GﱷEsS{^ =9כ `.AFhC+qrCH_i!eWk2[EB ;ɳtUvZ+~~vuGMD]쟀F3A#bÎZ̙m e|??[#(FXI 5hHKS?(4HИ9hb4qR<_Zق5b.@dP+^?jFؤsbguC |h4)ڏ$/{;vk.rrkmOqR-Yۤk#ވ ?;@_e.hza}D Bc>رlÎر;ꔏ<-zUv5ZVJ*T)W x+>hv@Iy _bh4ICgV)B^fUllF-n~TTj{OĎ\봷hh{NC-U'5vk}?UV0īܐe-5LbCfaJh*w\*v:"*p~9.ϔbUnܜoGEچ{hsVDh_wTb-pMD(9IQ&1S9DqpŚjdt/ a44ztc-Mh`yн\g̣:0+*"EPEaeXT7( +.ǚb&Zq_c5֥1xXҨZMD? \{0t^>|߂3s1TG9y%41W1~PŌV1V$ٍ6es[2͔-WJ3-WAMJ`?fr1 6 k`T78bEqgO9+h`U9Kq&(%a,pFIJHc0'+ ?:cx#%S3=|K!1'tTN쉽/[P%5)J)Iq$[d-`.s\ŧ<+SJM2ZbSI Qg[)#Si)ZdQ5DJH5ʜ4LiK+Rm9-QtzƦoԘТKj0;1Ue +v~ۘ7m]Č~2g V|F2-cY1YVEg56@cehKoPxve +G +r+^eti)̇ ߶LUvyWMP*սj4ʳrUS99~nբf@ pWKXN/`^ @8)a3/ffl^˹-~**uv4{Wnuٕ-thFt2K` Py;Nn{7M.v77\ĵ7TN(WRjgpG˽_&h'?mM^!A918P~!0qGBAlp.|7ݾ\Gx`K:9:A$'1 +G f:GMhI ކ* ]{.CvyH8ZZg8 U|J}'|/Fk~Eo#v{n;tk`3?M—Nñ=]|m--M< W8/t?úB9sIm|y=C魇 +ЏF{ok:KkOB<u:=K[Dp\џDlAOЕp@F=+1ɤI *!q|@#q8մNjB)odJOXWGta(V2:h䳣:FGqK]k!*WmWxvjgvBm1<{/H.ΐ}"1++YO䱜LYvNATúuLM&آMG2ӤO<JpW0`6``6` +$&!IsM4I&kf]zd=Uuӎv6դQҺN:mkUv޷dz{>I}R/xW%^սŋ7Zʥc:\G&dQqXtS gb"㙏5;e2|+ +O =.V%?{ewV,Y ,de#l33a*pN79nek4y g((FsP;."7)R.JŎ].%Yˏg m K(dXѢV 2X4Lq턶GIPݦ2=Ke6ҿ7Q׾H_Ny5K/Ib$SCrM6MNJ)&X:@w8]eos[<7C_kҝ6GYyҾLh_Fͱ 3k6Tmqeioi⧣"D{(Uh:D,xlO}fۯ_\DVyFWf/k\2,'XL5v IM[aS4,d +48/QxKEDd'{VwQi> fѩ6n5zqmIޚNuk>VֶJTzx#f(-Q[仗G~C(7_eJ"(YRZ X;TvPљN3eՔ1[(80EQ`#.x O~S +U..HgI*1'k*j;ʃ(`KO>=&z(쭥z MIv Y =DFۤ~&~OF'dDwK렴ĔDPKINA? L!w("d U9@pA҆GI#ydGΈ$ ?KŻ$ }*wJkYEHM%ZcUVQ[cȘ06HD:)y$OyZ'$bcxMćOb_O7xG?#~<Ši1"ѡ5UIJQ٘U!}z I$m8Ms`/68e|/Hu^dD~@cL<0""2 +* 5"(Ȧ(( (8* ++˩₩1n&DQc%i[5ǦMjԨI44>99=Ǚg}T:++Hϖs''- ŏ;q?>Əq)S&ժt"_u~uyzYWz+TXGO~>/~طb-v7R(=zB>C,N)V|^)P+[]G9DFx!Ngu%yab Qh@#`52yi>ZUƏq@Vf*%cDuX;;M,$ǩW5Ġ1 +㱟LVUG$oV*V[rcգ_Ks4g [{/^g A' +hEc)hdc)E +ZV,""[.v._iswr# kG>>wpelwUSVw JhYG%Vu.ZꚢZL-q"|Y܊TVjZ֤y-*s?RwTcxJ1lD%G(1,V aAي /иrF,؈lCuR#~=;iAo m +1 +ǽl09C"J (EӸъQ)5UkTtFF[4b0dǼa1|`!vS\7ya&po +K#.M ̣>0dQvMvD}}GEepcĠ`Ԉ\Ƹ5qiFkUظ/MjzbNs5MSTk7IOsf`f{{K9YeIPfRIIHJWzrҒR%SJMJM]j%7)MG`A,W}́z@y>9JTqd2јTI)& +`ҧ)1ݮEXgޭX`>x7e8نV7m\30*ǔ.SR3(;[9%ʩVdLE(}t jK4l)w)We 7v2l {Emg6k|m~sn0(z8E BװH~Rr_&,K8p.+*.]tqíAaa= Gw1]_5 ͩPFs([\!k\>ZiJɩm*si-䱎jb`;6{[ Vf6SDEVFr{ 6xh$2.c}cc}ǹ}7TGKH1Ia1y5빑oz v^x2 + 3#jrK y36 Y+0;g6~K8N[ u?E\vih2@o!ނ18I59͌# </W/RK ե e_&*F;Djǒ7pjY`\ U +\eN>aFї2gl MVżuؠu <=w'-]U'mu}r uvxa}k}Ӹ_C<ω <74}tWE/JD3|t*Ш-6KANw}eE|y\Y"qyW(29?9<{=;BDzQDJ^Gt<ΐ))y|X5<\i0w|G'X4HG# |4J=ͫ O[;i$Nb''sqbױsqiRM6Z:umU]K+T(L\Mh B6&B Ć m0ډ3??~:w}~{cc/V0]b -|Q_75O op}$1s4WG + :kѡ\i5ϫ~j%?L FX0i*\ъvif/hGɋ*ɒ5Q&>d +eEi׸?-Ye,-5jԪJ-ЬyC =ij׌!ƔiM5a<NjĮ1]ר鞒ה0F,Yڬ^FzЧ}c~,lZsLf1;5mnДEami21˘F-Jn\U c>nzRqU Zju~?>./8l>Xz{f,3qږ)Q)&iU֦-,xwnm~LъksxUa +WާyEit-<3M2s36{f 5dw*nנݧG=9bVr\Ym(TO5wU:koÇgZI"r=I8ce^FːH_mUPY^g8[R&Au׎*X;EuTo͉[=?kh=Rioޡyd,}TckDָTߖۿG.Ljj7T2|[/iW?ճ@su~NB/ ]m|5j RC%w{jc@霑sE՝GT*^eٻހ_p7ά濏YjN~#?yJ +ZUVnTTeOLCS-isCO,| $[[&[=>Vy54ИVA:R#Շ}…rn1*bQe\HnUCe٢CFS]C;'Ḵ{Mb?9WY73hzϣ3N Aۄ%n໣RU_*KT>`RـUA6 j`#e )>s2/]_SIǴ0:tf|0^ B-'F)ՃRuPAED6$dLeHKɘJ 'w([*H^T^r*7C%~(cFgJ D H~hObl3ɘ*QIʤ&*Lժ ըT@aتuL.EL%*Pl܎3% Ce{ˇvLJmϳ?ݿ}" JH%:bv̠RѰ$H@phĈ`ּ>5&ym xyX{g(b5 s/w)1WΣ0JWAJc6ԔG1 #uơK?C"<˚eße.o-q3<{>Mzmx_ShB?ʹ |5[By=g®r'oϳ.0gK2{9 2{2r{ 8|oaׄnZr1xvfK04&{CYi>>椏 ~q>J%?A۹B>zƸ%9j]cF2ur9ACa?/~곟B;i8'U9@mcAg|FW(ćW$ ^~Ea{3ظ!'}q=/XRl $Ip.G&& ҝjKt>oKOlH1ӝS{7$ۘ~S M̫2ґZv>Ϫ@VOS;tF=ğI |ݞpOѩye \0]׹ i"'kL>RXf)'Z:%t,ev+-H|';!.'v5LqTa'&3iB/mt9.hXIdn9L?Ev( ,r5^qOCr1/$v9u&q'-[|c!.yds.3: +On1.̓ي +U2E|$E/"|,||\q7˺LOgTT2CeO8[S6[.R^/i8:4D# <4(GJ31yJ}P\M曓Tp$:`v [6 jV^?!=8-:qHCh(fSwԫMԡAS4>. Y2a ݩЃj +=!vA@{ql5[=0fO53\6;ܠICtgUaɚR{Xi Tkh79|uq 5D,P}JEnGBTaT,5VŶDٜ*e/Hy&)7U9]N%}Ik2*#\gsó֣T= W|$^h)Ub{ +Fʳ'+מle'I.;FY)LTc|Pr:#x>3zhL9eHc_#yVR!: qq)ˑLS,yJO-QZZRL#}R\ z@IGeǕ6|W<h5 ћȅL|}^d+ +W\QhŔX]tȑ_$4(c,J*t=TO\K%7MEF4 gR]AQg]wEЪ(* +-, +BmăD3iFUi;1&ͤNkNc̴L56i֣c,d?Y罾}FL+`WJQdv|dȕQ Jv\*C ~;+ιOcqX^8V±`>( *id_+;IFYIJdT'[y*u)ڋ'/ыp| <<_h&q;(@1τ;~$J ~dʼnJ**@0 :3"$ * !yURxP JlL_qÿ~Llu1JXbPt|R.Fz#ìCH Njų#aKgpK-/p +PH9ĜE̓}O?/Q_µEgKO F+k+:w%KF.(\/Qu`;ϰ-DMT\~vPBsy&1O _?f4`9VAZM.?Ppxs{Ez3r [d!m\@̳p}jΫ)$C7XlaX?X6N`LM6s6U|RMySpw+TQ"͡|ի^3uK a·A? XWY +q/O=r, w}qKCM~'q~g<>,O ڙzb/ku?#|agD:a/Caq0&Xku7F4(8!8G䠿&M sA ";`4"hu&x`x?NsfO8)w /:r΄;M6HhD9pɈH#88rpu\,b%% +~O +y.!MwAQj@|ν:+OQ8|H❧I~E?"sphBp;C->Un3o>$}|QX5=:7j ~{=Hj=k? +Ux3z]W]Rt+pk>\P\fFi3[GP'^uz|:z:~CE0-{/J'i : A ƸE+Zd$,%ض㷋\DKè!A6]Tyxscu9/pޏ#N[f|a +Gb]m;V]a;l/nvS<7v#dr EA+|2;17bۊtf.v#ʎ^DZ=B]F yBz}d%,ã%2vb\lQ*'a{:sυ.#U{~=7QBy5df'ީ~.=$8#`; ۓ=beد~ ?:CZEKo +rzSL9q,Ǭ`#vpFHo~:b&'2B". +8p@wtұkuԣj .3HxU32_ Vq G-*3VÑG&ȃceTY 1GT5Ii +De=G(\jycm+U5qr ?'L84^zJKXk'/SIF-6X3k,!K.l-HWMbHQuOzU&.UUfRqJL/tBEp |'6\p-^~w[62UcJӔjTM3Te|S**7WUV㖫hjͳUk}Eso*!=pm`cmzk.|q⛃SbUeMRŢ +MI*NS5[ֹ*ZS;IyW)7urR٩O+fL9p{HC +U |w*_ԖTRST:A575Kslʳ*VDEʞT5#}2.5-cD55,! ¿4`$|e}oJx  b I5AI*;œVYKfnVbUQyUۺuն]ﶹ]n9 d'y^z|*|̍W%Yety-Y*R OGrjU(Ek +&-V_vl4~PVg~”߬8Ki̥*PfYI(/TzT) jhQjE'Uo@ɾA%;Ċs2T\*>W?a;Rԃ|ǤJ pϊ|THپx&')ʨLiԪP*JnRbuDŚXFwlU|^U կ+|DUݬmo W +TP *1Q +<|.HF3ńٴF4P(NiO;JN3X3.kᡖ&lAĵ)0(41{$f[3K7E,^mfv)##ψvl/ dx:4z0^oQ&R1&J ȵ Ny=/亭Mԃ>!g}6blS|s>imd7yp.]6E,`c 5YQ>9fq/r9br9c/[yfg0% .mm,o:HCYk7f-Pl,`'&'ߡOQ!zt~"'(~sbϫ5*]Msv,!{_3hl<&Bh-TlDŽ0 ň2=r?F(8 +a:tPuVr4%-|4.F&1BJg蓳q\E?OAr3!pFpvR#<+;<au:Qx\(.A]6}fJ#+{^8i=syS~}=*:+G /P]Wiԟ%.~J~B.i\:ops0^/c_>Q\f +4G5t̻jL?~ʹy -JCxЙOEh47jvP}hũ߄3,ji0)(' +L5{ #u̼M`pEWhT՟W<~`;۹v0Ŵi%mx} %rǘ as9jj=7{L`e R5:%.Z;}Q`O#6Zm/u؞{݌VlEݥ Te е/iVқbX1\G.t욱k.l{]Z쇰V+#]Lb +Y:1~6ktv 5bׄE g?RX a2)snM?ӳٮ:e05&9(Fd}{\,XH.&=Fڍc~t!셱ۦv,n/f:z43UaKH}$A+oX&fp:9/:jQ6LC8JdRruaĉc;ǗN8NvlDZs:M$m״ K֭bBJAVSV1Dm0؀A h*h6&.ZQPG'e=:3Hì1V*f젗 c%Xz>A4lsGX 㰔gKH ;;Ѩ$:u42to>.& zg=;6%ʯc³x/U|8fwcniL".|5ը\nsL]:Yuv0-WxZ(m٣fA,ǔVr vM{RaG^{jSWKVZliDҸZJJ[;lWʺPɲ1%(n۬mjS" +ۧ:\G8N +6 +CC7]'caVDY]-vJ~%uJأjw)UԱ@ 1E(llVG!~*h<G +W^k[KBzNUy9-粼u7 ;\MZL3v@gi%r1O5m + ջ+rW]'OWT]HU+ީJ.Uq}\Kryr{oj'荓@.pm4$x#FE[תסץjWU DJ[զ~UT㟐ۿA |EFpJ偋rPOtk#Z!kR]'D~vy*婩&.W0#gGڅ2j<4)Gh/òRYcm݆]h44O#"YePP\u9rWɨUy}4t'[d"kdlUidJ%#DN *\d ԿEسA,$!=P ˀ91B4B6Lֺ"og4t@ mM@mݍ>T𚱮ib8d6cLll&qc|-0'3/<~w4\|tzFaɪ{Yנ6t-#Hb3ı8VjXCc1dOT +3oce}~z.hE75L\=5-Ch,I5$so%{sIFMı817v0&;XTVfH3׆A!s++z ))"ö[/:@ndwt/ ıv?~ޗ}S) +kyR{꣯s"!Rt{^sk^nh +Ƃz8K!Lt?I!q8feep#TxplCN.a0UXR|e>oH])a0K$SgX'0ٟq%=y2ղ1@ۏk#VR+{ @^y3xޔT'Y{.o?$ %KE&<{ŋsgW ml}y`}ò{ސ͚:Lm`VKs%O,~ccl:W {ś4썓dŧpO/yC/s /d"oGG,~~ͤyIKLWW^/}_%Կ,jg'ހ Ufyw?6sZ) +:2qӺ{Esxq~&̳gcۼ8m~v|;׉8iM鑶뵵)F=Cݠ$@cL ILHCC􏩈C$PP}~{<$% ݜ73 0(_fѯ=MgP^ O߰y ކ!$=~7V!Rd cse e:#h$>+xyK+Dgt*sB?Lm* у_u]S25t,v#Wȑq?>2S{R#aCdC/6k*< 3ϋJ\;-[Cw6Н@wY4:0 Gt7)T 2d V9-hm[=c0g!X=GG xl'[p3=ѲЄqQϰǦ![[-&v؉c'vة`;fL$GS\VY<:ށ(Na |ayjiȓ*ʝʕ3ݔ=$[愬epf(Hicc{SP2(:x$!(*n?/UK/w6$gGL*)r F%O9s* rg}-ckl@%!4 +AhߌM-]N9K-uma*$MG+],ljj@iCePPo)CН$PnNS!6J@e4U6]?MS'hu>[w4qu:@zJʱ{-hAz<2Lrr®Y~ΚE~A!ah66@A<0ǀfq&m&А ឦ ]` ta/)q ĮQaE{HYaNaV6 3]Qg6{9d7l[ Pb F +*e(P*SS +J/Pʥj-2 ʴ:ڱj 3Hm-ɞt;oel?V~YpYKbr5 c̉ջc,NY{&Μ&38]p~ᣴX,k:gHL6}?ѯ' v ?mI[-~x;gr!q68wsΕΒmQQ]·˨#rs[ 7c?}&{vdVĻH"8sIKi&xA;.Gd##h^e~WN0?HH3(qe3~VpNEj'[ٜ;nG<$H9X< WU~H<^W^ef\. euqDINۿ^p᳹ϏU6K<`,D$+5>>ɿJKb&>f- | +Ol.>IQAaM2z 2zQ{u΢k~8 p ޿z]uq-l$.%~u9Gem~~|?D~bz":'~BiUh +^VXe]SNڟ&hq48Zj%v؝lj~>^n.NC)u}v!~D_v<mv\pǝ;vd`IЈ"v;;eZu&v;#bl/"Vc(p< 4z"%kЙcp_/;muiG:ў؊ @ENA{;ӱ;arXeQÛ rW+b f8S a@䩾";=}ll>B~ *YoaT1v|*8=ط{Lcz\cQlz+۱ݍ>l`o6 ;s:>GNU QuCt~1lEоkپ Tc ~o~;@VdjYdg:YG-e:5c_ ;~σaWuMC,lr2ژT2c^y;u£)TE G7Y.wmkUh9WJ4fy$;B5ur%X| EΊ}ṗs&o/E̻,HK}ܥx#+iժDb񠂉jO˓˝lSMG;lqf܆i I|HbxSGdQh- ϻ|Iy"QX+3SD~ +& y24Xr5 9gϢ)K{caq+X³Yφ$/"\Cedj(fsI>'ݲ=&=#U0?;ӼMvū_nF5#\O&~mXflؒ! ||e6;A+h9/)>O&d\25 +r73D V:HJW xmǶAlcoC%K"K+>|pN+=`hiy׀)ޅ~F5}faX5 ZZ" +nUƱ3h:Z+neJ;=HYB6BIH@P !Ѻ/NT;նK2x:ɇ0p=!?}f^LRpφ`@Vr@G Aw"0<A!\ŜԪX<71 1 '#hGw_C0" 5m ṫ` ",B",BPGbP !BpS/ t3Ϟߧ"$/0` %:BrXa`F6;XApٕVb\r>i:_PK -:G/Ґ9c+.q|h"|X ~5.5uбFl 0a|x=u04.zE4)x C$Hl- yױ;'jn i\ W8tl-бk؎nA pNlEMlaY6{ר` +Y;y80_w97=Ecg@Ҁ= бQR$Ή {P1j` B΃Vݕ Yk`Õ(,7U +U+'F|` + ^EMB@n/+iQ'B/ paT/D;C!XB"0cr>Q88/l0݊M?xy~n07|cǎ0q)SMs^(d^^2l/WYn_zWl۾ܵ{"ވ־o|#G?>3L6ğ=w>1)BY"D-U5ڂ¢CiTSźƦffpvv]|nܼu}ŗ_o~OD%}y1<\'_ gK"0X8d$ D0QPp)#`@L6-F8n#mO@zH(=&c̾dݽz~x FEyy = % G X'$`(,K?W-=C o"[ ;=Qo;p0ȱ4Ï?!Idr -bXwAWM1 0 +z޻}_>xo=z;xɓOkMuDT__ba~CٖsJ:CR Z G#e&\WfHKi h0a@À 4 w|kfdKeUh_ݯAųs94HASe *g)AxӀ n_ToO*HSoTb.W]ޠZA Р%4(ײ3n膆>nE$YL!`*_mԝ/QsР 4y"ySIfuaƹgc,i0,5pCu~S9Ѡriȇ۝+]xWY"Z:ӸdM3^Dv 97V0N6CC4N۝#>1tdBG*@C'ie$5hͥotРUrS!\ʖrz$N:Ҡ#{脆ƒn#Hi КʷkJ +A˱)sNy6K"cwgI=q:E+6 Zg +Uo-/4CTРa;rV(ՕБu9'_4qbf՚ *ʶ̅ڸ|5ǢT۳,8Ȅ#Eƾt^鎗{<6XjwУ-VZzQQYkF}QLVנϋIh4X$&}49߻w?cW{YE˫}?Q +˱lpWDL|rV\`ƉмVmӰi4l6 m{Pdžg0|ǐ0aV]ց灡F!ʺ[Kn۹l{`?)`oh@lǧ"sf\޼-RtɌ)Nm-në= +5e'#1=0htHh#EAg"F Vh•Ibm0;;6 7`2>A :SvIQĢU]1W B% OXoL[n` `Q/c×hޫF'Jcs_+!DtU3(˗vjYy`xN+1™-x[VJf AƻC),ȗfjkۭTkëK/ck$fLGz(6lj;^i<)7m}Uɰw>&t%4aS&Hsĉe!e;l[԰0ݸ/WioƮOW}/>{cI_ᜲks,p!m,g9@Ov.Rgu6A$Ⱥ[5X=ښWǖͯslwrl$&";$&,aqJ'=ʲ[_vwMæaӰi7X?ښc˖9_ 0tJddD'%x:,&rA>'>\0EEh`NӽGWpkz^`x +Wc"R,Bq&<$Lci7_uA[=kV};Ǘ/ b$fǢ* ˱\PW@i.wEfx΁HmjiHW#-]`0(̩ IHL` HwEĴϙqrxsvB@E͌:yn8~ ^I3mfځ6MmҔK IJ qCwI֣yGﻭѾobKl˖%[^ p(t4uU}\?ɩk3Xb?<1{B1 )ʠ)u +e;5+jK״4Œ^S5x{z~q_=a8 ie/ŴxXj(Q@ӨʨVf =[rSPԤtuEhx{~ {/ͩ0/!=k[8P&ڪY V $7yMRULMogn`##4n%ubD@tPf*haTIȚ^ʸ,oe>OUq x -"8g3h.PԗMЬ] U,*WPW2M~K(d+\+x{ڍ^o_=NioYz!pg'ئb +Z(e^ik{dEDUۆa}B{_k_ӜB3sޔJ(6y +%<$iCPMAcqd"mnf:p~0HA\^0K Ì*QJ 82Eg`*)=P3؏6r[h/w`}o羣=\[u᣻nj:|ͶoZp7ȗ|ImKu:mlB%a50as5ޱwDGI^{Ivx\/$ٝh cD,IFIdB#mZ47"TՁ>m3V?1Yiޯ-:B}Ky/eN(^, +юd,A#$9Z6mtoJZmio=aqS5ݾ|OӂSacO0.v8hx'#TQ*LIHLʆt ޜYޖ~0˪a +аm=ć“!A)# xB1B 3QFg2R!@ R`, }owYr6[iì+auc71'R 9#lD}qNܱqZӝNUzuuk@zWEAAP I\Bx $F$@BȅpAEVԺ9;m-ʶ?*9M8bɢv:jh"(VV@ߠTei4EJtLpavwk}n䅜4~1+=n*(NU +<L;sYINiBx6 +_sZfFGܰZ)HB':!TUr_JDot$ H\$\VQ"Fa]|VaG ^j2#(Q6"*r*&!i"$]0 k A]0ݺ4!>DZр/rz[IV-9~`qL45z]ECmdULDD](ՀOICVt^DA$"C V[+{$SL:Q 1hG 5M|CF^kʇZx3UAPi/  n҄di=ۊ~i+zd%C6@>k\OX["d>Еq]iB6gx;iذ% +gd9 $*MM//uxUakfR2ȕ\o`*X( 0,OƤAq.<1*; O[T{j8lQƒ .3&Ba:A8/ W=hS g4IC΢/}ڐ:=kJ]* *8l]Kh-nH6j &_ciS 3Ҁir`xaؚDy]Mݧ 1M&o +Zr-s.j)kjTAAdGO۸7`pHGܤM$Հ!o?f*wm2~\?h2b۩z2lnʯK @1'TYY0FG)2UhӲ4`^2nK֬f{}Vm&pҁ-ZwZܥ5UUz(ԦMjJ m3GrA A%h4 `Z ЭlVy1>g~ |y؟~uG? ӷmHozޯ'|%:WS 8#^87Ѐ`SӏT]=r{L&u~C*gN{i%8 dp?3 x \aheeh jOy`~RMOU!KrUh>Du38lj,J0pzT~ޡ{&`jmյk˦t˸("R(HɼX&QoAqq˓2,ah6EeX=7eNަ ;63e0uOɧ4]jnH"QRĀvߌ帶la,/1 G#Œaܔ>ehi3~1k<ʞ1tȧiPQ'5D^LRMl)l8q(˛G| 0#xeX+)z 9Ys{xJ1?o'ud^H2kq2,9ʄq00|hahe>o옵fϘ+&;jpQNj$ +%h>鵐ifqfb5\Éߊys&``1k{ڦ4vTᢁ/AɩYL"2B5=+ v:̂*;\q`r!=\= ycʚqOZO:ᢉ/),duPbM97Fz\Wjz{Be7&H΋ ( un̬uyP>8Z?]'[E(fjY1)QUoh"^jN^l^$oGs4o-Ҁ28>u9Ƚyhlu^sKO3;(jzIyD. As\5KT1E7w>u>3mu *].NQ!iWcZDX ޲=7B^UtpQ+.hD2-hM;[l'Apd:d;,{OHgpj]<5jT:hCjJ +]QI%d@ [[ߎA;.}߆w[|pRB\G;A-٤}SKUT*K0)!D=eRoh`2xo.cxk{wt#;]ds=c?bv> k6`B:EM{MDZ"VE +Ӽgwo2oM{ ireӇŢ#3PS + }fj;8wym>3tE`uÅzAQlnwG6{xϫkE7]HH ~5_8ɯs뜀gq+>~?>].Lm`=acܜ>"ˑ~RJaiVUXaS/%(\bxa@ @Յ e nH\tzK?Y)ƶX f#fHvuqҨFą^DJ +a]XH:$?y.d_Y«ѶOo~~ZJ^]rrj[Eۛb.A\Ԓwͽ xYbN8ww`{-CplInF'LǬ/F>-/,zTB^O>{.V~1vtnYHI׽{Bc{C: >gώP:}$%_z^US~nˢeϪq%kҔIe?R˒6^L|,Oxri' ޥ^y/ >9}Ǿ+22AnB:@$dPɈğ?Ǐ۠d~u9;3'ܝd}/Ds;d~>O`?T.@WY4v,dG$xPt2\11 ЧO| @<(1>0nN\x??G )eUMuƥ6-k8b#S͢v횮馐J~Ү*`wo2`i(`!8):W@KD|Ъj){g3Wzǫqdq 1>, Ay-"8YhfNS%o_%B)X7oǶ;LyeT;- DA  p[ZT ͷ4zS>KkL7tDa 3fY`l^{j{~8 &x@ ?= +R7 +EUne2^dQDLr9I[M#D%@P؆~?VN8 o @A$o @ (pM@/6,qkًxդfu㍼*d %vk\Cn\ӂ9Xgh ?)lń(9 +R7DkPPqKf9T$Y?. c(w 5A3xی{6gsv` ;llHklԪa *,ђY.I38aOr791fkpoui6ٶ0 ( KJlK-Xo;_*%/K8 P*cK3\iaY< r|^|ǐk2L=>_USI;İ 6mNH OHT$+U=Td웒rl+Z3! 6?9(zI!73`zѯP^e-'ڜ2a@d#LҖ*1:HFמӼ(/J pEHy,pWt:;7 ^)m.3ȷ '=Zs&6qg +6q[ͷOG$$_py"!hgT6! !E f_+Rl.[buũ@36.}"~'>]W6SL + 1f񌒢Su<*qOhfuqi6gAm8%h?w=Oe4Ĕ=1a$P[k匭sH_g7)hv!oFVϷ0&96gtdul`5( _YT8PG]s߉5{4;~elH&{aL0Ejm<,P2|sszl e1- +?N٭s׏oPʝ~w8 JW14Gu'C0VЮ#ԫ%JFWV]R-fE`%la*2 +& 7Ym((C U5XB~dgr[7h~ }hč87w*A?:Lڞ64^or]҆Xѝ&jL/RiYvCA)Tu6Ae} +{48=?pkbPVg(3]BGiK{hnzicgXeTCP T!١} փNt[>59w#;vމ)/)+F $ev+Ӥ(󻒔.RPtSj]Τ +eGrJc(D 5f&P}j-~&swl&n.Yh)YQtвE~Nkbr[iWra;=VCjRic.TڄjP E &P)46_.K{OkVW<>D:Ewa>r:lHd(qm6r[uKT[|ks+AutpP.0Vhaf' ,լR:!]: sep1"@L)FK%tەYݑ@ 29!kZb.zۖ7.nޭY["B>ߝ1cEGC z)?"WWc{5: DUՄ/ +jDA?iW7lZ7ʷ;[%NJd&Dr'IY\hR60r-ʺ6WC`}UI$P,1oDAÖ/V:eņ-`,oY/ݱ)|! 1iTܽشDιt^73h0!-/]6(֣5~c#턉ӗR05nl:CLy! a1Q_sOq!)%5#03g!0̃T2^6:ע4C_XW L: ip='>sCa@Ci4kP z#T=saTؽ;`fVg  ;`xN@vvG! R\!pJCPy8Otغ.̾߄?m?.N8BpDt=~8+[Z!H[Ck#`X 0- - "dl2.b" >c @gaЫ\BXK&=ה%?}*_Ŗ͐iŢIbhX<" JFA0(&~> C e Cfpc/شLVbJ-?k.A7_"NDˊǣ%cƒ1;;AͲ^bYgT2Cb!,OK= yЫ7DvZC&3O&L%Hq1|4JYqZy->i':OJ|C> 1d#LĐ3ѫorٔTÛcM'M$cؚr]0IU=uf# ȮZT!΢<0ZOsjӞqkuQj-"eA` @XB$d%!@VI %$lj@AA VG;ߙuzݼ٦$DbRfw9WiQ^cUT-U3f5URmJ*0P 5ṗƝK@ޱ C? + ;61|3$-!xUF1x&(bJfX,tf(FނOg5p}o1(f|Sv/%V})$;͚F.MeםuEmvC'hQCݢYаsh],^trx77n97Lw@,Ddu,B %k{=eե:uS.uܥʐt*ڿB۷/7&V,tOmx} o*<^DAxbyލ0>P,8OkĸDT6.HO:{9F#OV{xAW~%=3ϭ/?ulmWۂ%/=J=:U|?HdeP2дpy7g3w{jd8⇃ȀX <&(Gdl1?Ƞʨ13?3vjjqBn8J:j`G'`21| ;7`&oPh1G a}C )ȁedD#O/6 P{]䈪F (䠀Kc.#KqgKhpu?ŀ׊@ؿtAC}"c_zAW;(v@ہ;\BPn  :w#-ya~ C'z6 UC_ + B 9t ;{p?*NN& n +nlw p?8_QC< +Lq;FVk)+>eRƜ%Y8ωgz4Q0kMa?M47q1콌!} Xu;1pC:b`!7Ey!%x„LiRK33oT-"֋2$+Ill2_;$'I$ʻ厐7Fz, \ GN-M"EǚT`R%~BL&6.dN(&pG~H988l' +]mE P7ȌE2&GrpI/9iγ"Szx2*}L|DjP'^81Nh~ʾ}8K ii1U vp9l Z$N0gy4x2L6AT'f=$7< Kl#&s)' /S՗@ A +N*1hb d| Q&O%xΗL(Ɠ+jU) QS4w75}M{Ҁ6D6%h'h ĈADA pm|("F-lTže 'Z88kaVmFwII7 +i~~~}FY;A2 Πq@PB ^WfΔT! sF.JsѯzJrИk8W\+e^_4 1b ,oB! APw}A"NUqSJxBrR9aC۴s%Ime]+nnYfSV)) !cHɽ_oCP% I/ ֔J zP*5aniԚ>Z*|a98fkz.7q{ʹ=O@dA (F0aDY0H R'uJP + ;-ִWSXmzNf+2~D]nt1k%~fo2 0~Py]܊?K +ՉLMeQkj\rU[kתKmVHaыLzqWb1CO@s0 +&߷uasQOԑLe-ZyUqR+ +Ygԕ[j2ZkkU6NQt.bA&b#VgL{BPz7CF7}V3GvHwVeU+mŲ.5[4my6kR-4UN#rH|jx>A2 91PRo<݂x.NW@Ʋ5΅ʃvz!0$lŜ KHH"N_Ԥy=Hzg04Ay,Ey٬,G} "}bg}OXeeK'!vD _0Yǩo"ȋąs^kJ86׍z99`t2~@2ȓCByvK߿靐E?)ԯ&X׺5\L^sv:F"ed? ƿK \⇻)t{]ue5yn4nq2ueI 1@&d tGeɍRR؞Z`nvb, S!O" +Hu rK}*e:.װ~vxcOѥ$Z"oieLMoʲ@[ F{^ ؙΜ.zD{@,D۵rZ ?8rD݁A bfL6lL0V;f`Kdp3% d 7 l+Gq@#[8ko G-x +,=j] bOrT!H4dT2-pSbj'tC>ZMISs?Ç k +LDFr$j@#H$C!ױAU&46Aw'(vGUNkp+o5SB!JbD}ӃP*CD}qIE3 aQ*qGt7Z#`&gV[VpV0wEJz@٦ }}/DІ.ݐr%`U 0j(6 +pUa/S 1f-u%o/&|E@j R|iA +~9_y" -c>CzϐBT0Bh2@EjpB e(;`uzP/R e@SWI-A+vw>o/e<{g@|˚]b={ǖ lMi24kp/70D'^' RʚBka~mg}#|%#3a&ϰ&5==-:+ZQԣuTD+ʅuBf! H,'$!Ҡ("e(U(Lx@e(λO}s7i /l>BG/`X/Ш[ DՄ.3#6'=0] 3ĉjқ:kci!i{JFӚ0#NI@Z +݀xr 9{"=qH{\v[laSBzYF +Hz1|`D>e1̦X 5Q5P7y7@?H @O< qzܻ,\>5F})b_d < y`ۣpnapE?tݦ,p89 ٹi$,~'<=E3ch/qǘcӬ*h䥄gx=?1x~M\!_;_[ 8> yȷ/5 Yt Ac|bIo#e\=;0 cÑ͢GV\_͘>؇:Cɹ>q%y?h] zjPo4L A f~ 'J8=leC5Q QI^M|or=񁬊@vܛ|ܛ,`:jp!ul,Ap#@䐏bv/f<#|`l \QރR܎V^N9OJtQ'i= +G,`Ow& iנ8 `ڹ} 3 ѻkJ&DD0 GMIT: wc;rjޑnct3:S ])lG en G `2w, oo~g1Ag[$KiPyRT'5kkCWlǷiYjl|(9Uѱrfr% 503o':M,s&[W8nR)UK]^6a֖ 6X~%dgEl|AWIg)E + b K1F|q B̳(V=1mxCY0;̂c&εk\,č `rlLjxcWʴ|Yu6NQaK:|a6.ݮX:ҝbMf*7CIC<\:W{}w/<صSS~ՍuquDPQT(bIl$$,D*0:ŒZ;NZ:nǵZP*2)UdK9}m^|^K.7VzaZjBK5}F_\c<\mzGiafӛ0ܻ=|j|4쳨Ǟ$MW?l{I]voqf"k[եm+UnzZh|:^Eh[m[?QIT"bŋxFR.p\T*m?;1te!WrΉDyjx,k#]!ԳQ>ňX&gk *Y>cȎcd%rQ)#5Ңq+QhG3bwF-!?&H#!EjZQq_qY_iRH #ܰ8΋ŊhM\ sp1nq9fG!~%d͠3Y /RLtFkӡ\Ob ICo2 : Ʃ:KayU4c&ϜBp,4? #G2_%dBR+>a.| sxF=qs@ ݄Y0)։AXISQ-~bOqp?;"s;TR4HH6•%t0 `Hp\"b4GvnM-13Vw_,Q1_@? `g]!gCzztPh +á.r=3'CM*${yCBEXtY m Rw26MV/z/钼vH?i3 lhS`¨DFf(Ь\_ܜvCrH1D%3O ;r,jߥh@aEvy7;S0 A1lz, +8HA6 MPnK|bH- z9DWUB𘂠z'~٨]BfoU A %@ǰlr2p`^cI<BW(w8 V)%$uWT5!zJ _6+_(ltrH e&f|U7h2}`t06 +cP2A J$7?OCj!L0lSAG~DuAYgV\7?QtR6?I:?K 94d0 \`Qr$TOCl6Vh%o eLpq__ӫڣI7?k~"-ցjWuDd !I 2 hQP(ThI ǭ{{̋yy~y$A'b*37EmJO%\OŚx4C  b'iݑ/f F}KF-%:v22vfAi:Oǡs=_H`0Z:*J?,m: 20% qqChmݨ6foT?'j݆49u NU<*А^ _b`406YAP24]f2e\w|D x~j&TxXp%=6s@4j rѐǓ +) [`bc1` i,p<f;/_ +|A;sT!5஘I 7X- eI$->CX?\Ij(cO3 4#76N0 Zd{߽\ml׷m#šC.9 !ƶ˜LV]Q[j6,KeDŽ =<Àd0 x9h@ZjKf{p?pjw˓S?+<ڕߡcSX8Z-PKj~!Bl0{R2Y:=,VGr=/mDP\s`z[k sBfjv,t^<{ j]7wZu@E מVET$xb%Rν)S $"B˸D5ŕhڷxHGz,߾ோ;^5YovYcS%]7+Îj~jrXUPPl,S.)Du2qrgH\&餢aH8, DO7"@@*,XSiy}-z.h umǟѨ1yHJ%e+f% b~jږʑ!K餈tXHFy1_d 9i9%FWa`FN֏oU6>\w1ҧ"6TU"Oe!<32%Q*f<%Ii#b|TȖ 8)GjD́dtm-,_tmkŃ]_t_w]|`eDAmLpfV"tnKR%q)yI㲇%dՈznLHK +B@ +6X֬6c7WG0}wv]:֋5-a9AZRNV +T#$Jđ%"\hrLǟ7J#rn<[%/sڥY-xg ~5=?Xt,S~gZxB/sI$4IŎ gj/C5z*4 F.!gCȚ0 -Em-xlۀl@З}pƁ}U7ܭ>"Ϳ{IŒ81k5Rji`MK vXQdbF0 v<[_o7l@陣UeEmz]~?hn/$%8vC2]$ow/4WԀWKկh!Ab;,å` +tYk24cGfMcݬ?Q }#ف!'Gz6⼆pq^o 7}:Y0y!`XNKg j,eUL9or^!p]/?4$BQ.X=㴞0&+Am;2]>0GzbL;Z hk ,A}kPdk-[me{Vg]1f=Ϝt{jx&{9:jo|}{׉ϾGt~;߁pF:0Yc>:̓|ޖy9ӡ7Fy:-p.]gQMy? q +.,* l!!!{ I 7kKGwKU#-X+:uA=zL[8 +B|潚|w]=hil*5{.]0wp3GN RqU"֘[>asbOn"){>G6bڸ-Gx}HY|HC4ЄaX(AQ> a@TNq Gq2͓$ߡ(2)*%`8z dE!; qL.}6D3e|4|Es262'aqh/Ȣhf3 2* (\GAi,; <As +Ru t:3ALd> 1y +J ' JCʀÄF KTaP-!DXK/ldAV'ɺ.g Ivg|[xbd=xM4d'ѡ`1IgB'^9pGCI<ے!ٟ +tNf@x&v.Ywg!>Y/yB t&xCȀ. &E [D(@/8nBܖ>BE<C!ρ ُQx /(#hPy#o1&BPPCUꓠ4 ʝ =GBH#3 KGR9 &'}HNJ1&QOn=[}KAݝ <Ϡ#4>(:qLT}å +A1(Iy -|v{8TgP^RWhʟk4Owyw:?.)4½a#*}P23L}*QhAd$?ҵj}jzoW ˦QӅQ9g0"7x&XśU@|e渱jGʰs)wtuV+neEc88ᑾx_~aKyrpf.l=tГ|{]Ċ:&N'ؐ=ա#1+mWU]GF&K_ +n[nZd(0[mmECSC-_zl/yAo"ؔ-Y#zY[|%+p2\+9TcqK?gK:-;,J/Y_8Z4h 8NJ),9yL~#d+ȷ.ͱLlK2ȟ9( vmpo]_JSMk{As_%Q{k7%γfGpYeM>'( dȾWOz4̣a[4;Yp؛=n[m .ѕ++ۗn)ztAGd9׉+eU|Yy+׾ʾݮ~.'0FfQC5&2%?1Ad袻[~mC?h9|{ɉǪ]]mK:j\]Etm_Wly8yƟ8H%CESf_˖889v!5dl!ҴeFiK4L^XYA@3AZ6]MDj+.;fw9&G7%ƞgTF.8M$, +%tIIlb樒I^֥N{:+vxof:4 kRe i"anH^lYXVt/#\Ԉ 5=/%z*"9z&,9j649j>$)j%=֓0{"_B4{YS.uEp@ +k%Y5_qOfKf|Pw .F +&BWLxYN\;.v% +#<{+UͤHߴzrLNM~jK +ODdg%222YI„)x䇑 ~d7*a:<:~7ǎ.DDaDrxY~nSћjᮽ&ʷmZ_s2P"wZ~ܙ *d 8ᇧOq#Rgy)~[& `A O_B'=q/n&yd,@؆%`mY`Yn`ug=w4{@7|I:H5 ?BHI t`{R"n>|bf/s/m!?삐OV"xF`'!,ɹ 0z}OX ҂Ag,7{Ɇ_g"D.ǃ +QvGlYMtBt"s+]*W5Fh+ !:i__#;?=G+b `>7ҁO=3@$fAb"h%[WWGmtp:f}6aי D @+5zq$X?r'j"Du"֕ +S g8@> JdHJ[Q+<: D3q,]bk,d;2{!8?Ds3듀UHXAPAK +},N&-*unH2 _x+lƴEwÆ؃Q7Q9/9}pŀw3Wq>&!?{ԯZ{d>@V#֊ArArUU=,7J$6^Z^%s^[%*7!q+C;Q 8/DN&A-d_Ɠ|Ň-֑{@w. …lٲt[R["WQT;KRgIO{[7c! qe#C1$WLhb- +#G4g _4egy?YH_κs[+▲%kҞ+o.J{IEeW@ܩj$>đ|)֑6UTN-g7G8/yZ\ИNn}%7,ܫQ=V!Jy27ңv[V-@g_Bidg'=6M%sz_e_- ~6K]nt^7 +r 9戞;O?O9$w&8|[ٮ]ٖ2h[ͩ㲦ԷƴwI dgQ@zlZhRjwZOkCf>VEuv$ٳ!}*$\KlWv#Ir8}`ZjMk귚}#ꆵVE}Ƹ|{[)!yDmH@6o<l&} ԭmݣFyN$,P}U.+*wWdS6g4e6d\Kٙ٫NQdsqYUDH$[G dΥ‘2VrG6O]m5n6;^.{vW6g?h䷙6 +[ ++eyU; jks?լ}0RiN0-1VU0.{$mJ l޲T͡ p<߽Vԫ{58xthWflYWf6nIY\#-lTWO0vZn|Z^03 iMqTU?(˷y{)L|28k݃(7x_h {YGՌF6Z +Ě*yeNfSkʦԒ4Sb:ST41L a&.&{S͠|>rǔmݭ%"J};uʍbBf\.1M),,ոLZ^ُĀ>ӐX:)(UƔLV&Bٜ3(CU沧iFuh:'ʿ۝j[W[Ģx=rzSS +nW&./fkIiViqUX٬5X9SY׺-CuyTe4\ѪuMBXEAaIXE@0qWzZD +REAPAܵEܗ#n=3v +cNUԞ,gg|~zy}?ѐf͂1=ŧoA4ӵV+ok2?mW{$QRYk+;.b}˶S"{qIyy%w,>{I@m˶\6E~у*!ݮ3FtmuM原Tյh'ly}OqOj# Ǭ;&a)*>K_X?+w᜜}md}=@V^`O2w  Y٧DN6 u1ֳ.3&sՒ"/jT6慮;TnuÛf=,=sӪo2/ UYeCswFRևD"_IUǧ M%S,\RU\,=㰽CQ>wݩy'G,iY5-yc\vSѬc{SkRNo / Æ/?R>*FGRGCo#zTFtb=tG_]ҡkT%^ 1MmDd+/d/>08g6;>'^:1U>>f6#9(TѰ臝Dw]۽j/qTyÈM{\]ۑފ_q3m,k |VS\1s6zڌ1יӣ vyŴ#>3D]!h`?Utr뮈ӖO}[8:>˼&<ت};hVFByCx]DFvAu:yDgD7#jnfʯӖ"kNkzżr =ZkCO]JOxVcz>Fȵ=U͊t2T8w(C@u752ω.4>/N͈V/y/eTFWfɯfOxdחa3/N׷!oc.܂M |{FD7$/!5Z!Dul+Xvv'_=7-)_3{p~jZxY4C +UClw~d5IJAlbY?hGXaD|K#Q;#JÎ7n:Z(3 +BHc?d`l.ATVK\_0l_Lj*P5˿C)EpVCԿ.4YEjE( "A% #@#r A("HM׫XVG+VWZ]gߝ/g|g]ך$i VcjD0!D +hzG[Cq n@=_\r}As}F} +ns[x +ϫAy9*Φ9|f9DY@DB(KD*׌F!.mz?2a4;Na1vk +ZC狰oR # ~H{/px*ٽ_ +LJjٰb׻ͷ=o:~y_#!|\qw| $|ÃQ>P@)wusW`Qn2#5hyR/ף5n3Q-߇/5uM  +N :!x\$hB6&P(APo8.S3)mOEHd`\iXf6iK'Ed Rtv阽';' :>|$l*@zg!U 4S V, =vS^jR +\g [ͨ.Ǭ="w99)xOHKU|%i t D0^y(ewE&:bh F 0$@@)=Į%Ωs?A şS~+[ovlLqɥgr"2.GRIZYEࡄc|;+#vl6Knsc$SA +j)0@7b-ǮȳCcSSfz3%쥓a㹱.#->J ;,3*o&e=d}06ߐp]PW%n 8r r`d0q-=-@Ѝ}M>*g./.qL'꒮O+IX") ]E7!=*nFgfONTF*=ERώ\>fP陕}z;D/*'Dˡ9a~5i(akRe +-D}/ +=˷Duz|o.5-Bg7߿f6x@ wqo]GSI:mu~nG߶a6޲z1hQoge!̩R^[.*KחkUM/+(L U~P^^Z6j`0pXWwT hu:yMt52-&bEKh}]m[UM6]e_Q*P+K+njQ@ɵgCe"y;B;9S w!!tC}fh@nj ՔUOguUMbW]CVm7ϐNԱu/ D{X[~|pL[V)DBwNc=fh rͲ]5gm[Gn˞YʆܠRzBNQH~T +Ș +Ht@ĖZYpـp{C |i/CC._-+aNn݉[S;mŴݭՌV"0G)js23^;B|3$toL>,u'{RFj+E^O?dr7 N07]X!@*Bw]Ad Bc _ݤt{+k/7ZT_ks76mDna-r[;~cx|D_|J>KˎEћԂEG->v8T)Nв@]n|;)T{s%35q0Ͷm@yW5;dd&GyS-<D6zvc_֍Yco,dYbjmt"\8\ۅHMkD Ds;^ ,4㹼~ocd 8= TxV{ .\;vhH5mL¯.CwC׏ma3>^gsX~G[BQ(e>*  MCraxayFc xGaw$xKp' l`3vog&_$*BM# |Ʉ@CBZ(( *.\,\ xH` X&c ࠇW!fpU3+l?D"\" Hų: Ix +C =q?/8T 籎簝'c??g5|M˾Erb(xS(b +DZDhĒT /j!8K"f5SdZm$=m2] +{ +-HEbfy"z} ];ҏ|!iү 9ꏨbD2wa1xd] ԠkyXzLVG'zB9 q h( F|?b2 ?ɜgfn3~_r +B,#dX,TzGPA}1a4{W#"f2ς友#; @vȨAKH?0q}5HpvE,UO ɯ)cI +n e@t 1W͈1Ҵʀ﫧4OmbEۄ?+[+M:VHiPv}>dj3q]3r57`g0o/iK9XߎM9#sdkQ5nBN y\8 <; ?QB+ y#p!uNxʶ [Ÿ] X&wg<%ݫ:0/<8S6|n:9@틼H뉸Axh|KD~F!ZS4.y} + +|&t3I l}#fr+Ȧ0k4f,9nD$s& J{jUwQ1k n$o<.x:rVȖQF"vIv$5 +Jst0k울 NeNEOU{JX( Z0D] +(ަi0E&pJהFߍyǷ ʣl2v2&%ݵI ť3ɵD K%)^U + +/ +Es +!Bh`/ {o. +c2{WTKEV}9{[I rU:]M/6 %}_7[͖7[|ĒC_dD[ :U7JHu!ܪ5*5LNe莖˜=jС&K<\YH)ʨ+d nQnz 1!Y*bRSv10x{J.7[$5; לvU< uSTbt<%7GEϒ׳dYa$8̯~Lđd"412D +Xp;O눠kXMaщԭq-5ǷUWFRW%TVzeRkYE;')O'̝{/!s[Y)(J"j& pk0hkZ1i8f .ZU*+{H˔Ԥj<|/_|b +.1]$[=gp{W#vVvYB{>bc'ٸQ9jU#'!@jYR.:S%񫚙'+|*'88|"*;R%S"h5[KLqf`34&w3T1Lz-#6-.Y(l5+ȼ&WdC#- n +Va#FpV#ZX+*_ͿE{Wp ``#6ფ!ly +@N{Ss\»JC:՞A=q;mAԣ͈zL(Auy{oq`w0@-vвuq1Q -q/xl#GN *v:s9>Վiq\r@ o/"s;ٿ}52GpsgN kdӻ iWRX0o39jUmW;'2w(tێLݒc} 9. ra ut 4|$@MH3v;b=IQ>as7[MΦ[sf +fjvg:`Kږ:duȎ1{\E+WwA'@?@ίXΟH m!f[Bਞ_l쫏^'1)i}g6Ky+wVn|8x8]Mh_ο-3'pC"HvY(9yѡY&/J9hZru3W/~,=A}ny;P gD.~gЗL{(m# a!: 5px7?ՙSa20 f`FP"JQ,X"q%Uc jtE=.Y{uƵG"%( +!;O}}'~$~0Ofh#v^R+uBW e{; F;m_ x(6Q}اD֍"j)]5GPps`|(|H?-"")bϏ߈5X/v~nH>6J-߳* .C4'DD8?( + + А:H>0ZArCOY +yJLX R`Ev%,M4/q-T{cDAD 38Ӆ㡽.Cw&]mqm{w'♯E^d֬QSzɫly]jyh'P=9]}GK4wV{Ju#qg|&xBSFӉПHD1v( Cjxm#TFtfNLPɮ+( }߆}fDTDDYaVePYM*X&FM0.59Ѵ1ihKs޼[ą3r { ʏ2hnڒ۪1Sb_ǯ*Ҫ=RDna_Y9sMF"",MB0R߯iPQt &VX) wj+\ټwIl徼Tʜl~Yv)(NBQj& +S(Xlaᮔ^;4>#80Pk=uL{Ӽ/xE}ZhBg./c$18%#p0U$MK]O=O>d(NGQb. +w`1JD}P:}'ih`A=hcZU4u kbMeՉV9iҊ~-FX_r'N>++D8E; +QB`4ԃs5ԃz{vH[Cje-ZEM+c-$u))Y$TzU7 Uxm];xs6pk +bJsS 5PH3@/*Ʌ.3rev.+k_ٶ0Ӥ{,wdh9(w辩KpBr_:lEX z.,^.Vô6T~GK5=Z)GvMw[n̳>\Q缮kD{xv;a="zNϤB 4MC rfh a]';m$gxF[bFl6_7 o7䴺)AU輺ɡQA5h8AzvV,Ns!eL83 Gx*NgLбB㐱Um +kpooȱ>^AwP~1?OH1Łi=3LL{յ3OǨޥzZtnT!ACӷyFsh"D3\p-Ds8I?DMy`%6U" lBgE b eJ2L^U++fMOe?Y-k7g]ew+bG)F)O+a5Xs\3 )ς@x+܊f֟btRk(j/˔? 'ODT up~ `$lF򙔱xV2eы,?xO{*PuAo_t?_#?%7j`X~|0^@0WANx絔Ahieޞ`og?hΓ|9g|Ht7B|{`'  zh%hp440ppX%B0H1Bo FʗRQ>= X=Q[LɅCy+)hEˉH #[!`|E~\BAYpS8RB7(ˉ +ro }bL x`B/Hb͇C<hƠ3̕A#z jAM,H`Z&)&5t>2L$U)}~D^ KK0hȠ ]̝ACo l`rI$! 2A%r|INeJvv :2hOZ1[•XB\RJj٨B: Bw,\'u}GEugqSFA"3u +DPAd230 ",BK5ZWcM=hbY-b'su߻}9(zy'V&q_ Nq%]ev^Hihde-r8hQA:'hE"[|}mqBLb?ǖ( zŨ-,rw( e}ow?$kxo%7WCgҋ_w?=߷{'+E;oKQܒ(['e8s21E3fNPxpz]8oW.Z ?Y̬ Y 0/2]7\ +g'\e +/p@w$@/#@oZP/^z~>+]}A&ݙ;U'Eb;w>3_q)0JƧ(:@38]z~@Iw}҆<4{~ެ>;ܛs\Z&Uٳg7'dY>=x5qχ&G<ޚ~f

#z}b!\ C a ZdC_E yN68=qh~y&sL?ݢ?`xOn>A]gwd-MwN6]V@A`Wal-pM9G2p:ҋ},b>H.p ,ݨ?$Ev/6߹r{Z6A[K:K7]`'QkԱO/&f~e%<疈JGT؃q=ѱ{#4=]7nmtۯ6lM%YK#٪w͡hOPc8O7cq>_'d$8,d_۝P=>Ұ;.AԵ$lSlEGtmMֈ6eY˩1sC9z:N(#5hWұ0e7gRYp" S'g67c{g7'upKJFu=1Ŭ-![ܪYĕ6/Yn"UVѩ6̥2+yy]7Li :Ƣ8н}I ڍ0۔)oS1ņ,؛m ;s䬞l/^g\Pu1$U)&uMCR.־:acE|sejkQ)Wjvţ3q$2 +ÍxAe Z!3|gVglnG^[΢ DY f itMuZ<ʾ$ɱHѩII'ܴI7r/Z52ĉȴI0.x82LcTe} +AO)tX6eiʟPj=VٵuZaIBC]U(ReS*,˶I+-K5;w01E]#.BdSc +PFF 9Pg?\Nay4;ʛfq+ Fuj,ĚqҘFYdNʊmLXŠKhLX9:RXU[<^H}ݍkW J8 +(8g6NZ`jNmzN?f`afnMPEESkٺn]6eyZ(*X +)JYYػہΞ;0}'MZB׋ǽ2-c$)nJjG%W?ō'=vpUB`J56<ցYki3d^S`gꪉ~E+߷bz + |NXc.tsȥձK,i)X,1$f=baoy-~KU^)5cFi(ޔmJצJGxiqoMnx$p̆; .X$lhIix^IUDnIcDܵZ"sVIdގ5^u+7r~v'l3`Jy*qEX[Qsl$S}Fna)kֹ9[V̭3ʮ؇-%$}0=5P-gťʁi\&TwWQXJ(W wݣwy2df3]/ӪKR\;-] lI6h )wHp8_\ɞ:P;`yVCNdQ7F׍j)3u{&կro7$1T(c1f`6ɝ.`2Wûùf6hXt$ G<gSFcwAUQ˴2-Z-~ˣQ;"ijro`R?PTY@Ƈ& cO!g|&_$#%;`?;}MCO"h-ݰ} `;+BgDi#3~n`k/b݅ F I'3@9=.ak[,m03Lv^NOй^6Am?tuނvU*3N5?evSO Hflo|oa1:w4;pPA7 -`s̟ɹ2;ك?e[V`'` x@7BdNqL9ćᇡ7\.,P.W/{rg̎ X>̽o,v$'ehB| CG{"$(C iJ0~OzJclr}jO][B 9 <9Sb(T/yf(ў:-TDA@'/R'yN[ߛ3?;nD$_}š-&¸P9U^x<~4^.0#;ߟi%G\ )PaI6Re١Ԫ֏ k괶MM6ѮAbN} :F9UrꧠǕiE`_PKufT :kA+i_ !7!q6Tt-? A$b@k"q$>ǫPZ%vٱDX}ب]ti;֨ڹS+D7Lj:##ݢ{-T3$88t%|t$ˉWӵ ki-Η=>wqڹ\wYsssy6%6{6&]jH`T$>5@| q4Ay@+#Wӝt[ZF⋴dډS5?gcb)+ )yLeKgMi4Hm5M'UvSUX*iIXgk{YjveVc5 Sհ|w cemyUWo5+ o" JbZE( K!@k@E(޸junkn۱vvt;ad?=s9s߰NJbMH k) ^ ك{x s%' 0!n%&,%^JR/5|ϹR3qS։ةPG2{4!xW!s΀e$ kg|¾Ct+J\V卵WI*9}V8=0MTL$[ƒۘI=!CCY=2/.H]r³ זDظTuYc繥ΕAt_fMMtfv<gTF0즎Їyj^]w!S[lϩ mn6gu4Caͤ&s>*Ie#YBCDHYCB>9Ήװ{^.p!g 0e b GP5&0z +ޝ,}`k~ I_Zȭusf털\;')Yh?P[xJ$  |s×jߢ7 A R7 +`LRʢܺKeM + "]`Ȭ3VVs͆v~YQaIH?+)/n(|+)1"4#Ucpу. {F[UQyнŜX[W]_]j6BJj9%m|cqP4*Ht+rޠ5~#0t`aB 8Y0O0{Ͳny\VQS +(2UXEj/-唞ה^dޗd3MD1AJ^W%fA=X4By#45Zѫ ޥ~E@C]S_kͭif!azSz;\Yu:\YHUITf"P _]AxkC?4 +`Cz'f,@w +;kW j0\Ž-nؾ$mˉuY [uMeW/ة)ZxM* u]xpNA{&q38;p;@57h~D@t[ۛ NDn^>pW BCȃz`uP y2cc}8ܻy3itu` cOx>>ޏ;x}~lFຕ@Cq \֥)bJr:ɣP-g< <ܗ\;JܖᦼUp8^E' 霽:'8^vMm -,U)Q٬jifM~/-߿-4˩ŸS۟*p-lQ犓|P:Ma(UOUϰfRn1MPm6MWf7 +l0Ԭ7m\keYb׭Vh %? Z+jslgXgzj~:J[EJ,6PnLW . )lڜk\]n^bԼfy\d\h,7W9aSs\ Nq+H +eu-??;w +WtX1QcJejtȴ* +OY4KTh;7h.?~vP}^P}n#~zБ]N-:3.mKvʺ{:+=TFiXCEqYZX, +SvfU6zY_L.4W:~Frǜ !{vziBЏdO%⹷7ubM7gjHwP,,ΏL떢u͌lsdvq);|a\NwYo _G=97Y#Y.{{3~,K`E=^&W{^VocvJ4yRp }بR=9$A_ٍCf =s c;eH~kZLtNr"}zpppc-4CJbe6%%ppj\&#}YI %)֘ꌉ!;_3T#R4b JIOde7 1P,,.V:,UHA@*`-k1Xb]QQD#UѱrԊ:k+ڙs@wŤ,F/(GFWύ8;jSxTQWc(a>_# }xk+$|dm8IZ%BN(If4-yYrR"!1ba\eLBUt|M,9"V6:p kv + A>0^舶Kgųf] ޹>-)9;r=$eѹ~Ȝ9aّʰ4$Khz: w=}lIV|(fYb.sFx <%!e3˦˂KQ~-'-Vy[M(Yc^IWؒSڎ]*lH!)6=g;ؖm^!I.I}*$BP# `hKWjlҪP3yU UeXxUYRzVnQyTWW+>j +a^c{s2|s@鎭WU[` |7q8P3kH̐ Y I{6+1n2w55w1lmxk:VXX\s;}FZ:K+* <moԪYG]׏[\?Mx,i+q1K6HVȆjdCLN2T+䃶^7τ={tW +MDofm]2 kPO  3CwǀPosc6.C}$NKE%q\[Hv l#z,za ˞u?0 &5M:0h`<c=F`ӒrXBz\U3X>"$d382;s `. 00(лв]:!e +mv0o E2 +N?!kvN}'5) i{M'܋HDrA..iT5/Z\/_\JyC2h/`pB/뭐yO33OW:赦;X_*8kx!v7\[cی@77,]N)KOgͣp4x0mځ=jz/ȏI~"r~T<</qC.נ(++7&F,(,ȲܖEvvrY˂+  ".!xCEh&Fmc6If:i:MSM[vڴ}z<_9y>|e >X6e7pmŕOK\@$ dXqu,xFVe +*U-])[kkݵMp={aj1drrr_w~ko7CfC $r"CkKGmoWkqKp/4 nRZ.GRZpP9E;}VC)g~֬(b}Bq}Lq==WΑHH둄CHW ׇG17r}G͛`!:)3aNi(-)>)wfi^Qg2z{88w}Hca kl!Mw07ߟWЧ>(U Qϊ귙.=CӞOQ[2 $<%b޿{?@ωlsc9ʅ49Lføv33 @fkזs5ތF~OF-L/jOJ[>})iNؕND"BWO_zp}b0L +&tRݱp@Gt>ի/`wg[]6^g@ێ֬@wV?Ӓt3Fݼ^wKZVw#ơ#"$9p7\G߷`=` +ci`@J0C1)Q0󊸞<+ߝ[ВrE 9{NÈaޒWޕ m'2H1D>O1wW9K(D}7 +A) iN3X&{m.,5V4 +ZE5=!8)Ae_HSGD瘃[xqz~\__z_ΒhlViI]lvcI>Yb9Jl5N-,+̃RaYLPZIXn6iH; \>b';(}-ügyQۼxQ}z ?jXxc^.=.vv)jdҐ0@+w(RV, Ư\2ZBm6^V{Nr1糨{{i'҈ߕ>j@k<ɃȣP]S!> kjX?7vy@E}eaOp}P, +(q]ՠƂADET,NPXh{,G$1qu]{Xۏ{@xgygΑڛ%_>`Q2l]f(2C/)멷4y赌A.| b38~Z9P rxë;<+"Q1ír\\p4éUp,2!9V3yLYǻH?RO VF*gS݀cju#`WDak261ZCcIڲ*K%\@]+!=bԝC݉Eݸr6ԯ_ȠAVh6#GdeYPV: S^ jO-Pwm.߃k=?CIl3Yw8ߕF6eل\dikbR5љ&+"CV!V`zmDQ7+|; R@.Wtll]> 7 Lb|II}g'&w!h!y6N(F{;Q׋]# DuOrLhv/C?[7lO 1yI#_ҐWhv<xռmּExD3=桍i<,`!Pqk6@kA? $#dYM6RDJvRK!u/+~xI!쨭PpW;H32$t䐍dur +.2i.'WG ƙ5H?2|B>N"u9RkC:k%2SVo>~CG7A8RWm! +GzjXjMf|tX@Tjds"@# ~I p'4q7F \hK_hZG9&ۇGx}Lԙ0&He%rM8O_ŠS 8tZ%#R9SThgG8A'5qU˲h%|:bN+qJ'98̃UYê +4jpHՀ&|W2cjAxQeNW^/'7~}6}pV7lGX3`?`8nsWu2:AC=84aT9F@YBz7ˈn.yJ\C;N;tQwðԹGT{$aL敃*|Tx{JHfKi +IA3!!Z=k, `;孁Pg} lʎcPR(bdl HVJ TX)Iy'e~LY֐՝FRK03Ov@ol=P4[Gas8OgHy!s!) !!9!5!U!쐣eOKC"#TțY?]8iG,=c~3XP7la(<`G`q8AZc"[eLeʳƕLFEq2ݸS^~EX(\(I< ԝn_>|r8nU =+LXcFie%-7e&2Lt\E)EjZL1S-0FlSϏ8gj1=6 ,Pe s :W|j +{Kھ>XX? +#e&5E\F3+Pydvf>6#hE ()Tm(O|ǧJx bca@OdFwƒ0XiQGdcNR̎LNNγ]mMV71.!Fh*a`+"}ccbuX2qH &̏(͍͎)K#"q4!SR4VhuGEyafav .D&葨((("0 ̌ (qh]\Q0.cMh4rZ=&Ic\kmm&A;8}}yIirjIjI4j{'JxU?3~F[6a>(ѠԦ*CPnH t$=WV^PVOW5MߡYgMYHc֋*^TZRES.qaQؑlZVudD9TfCi*LiPlJN]Y(_Yeƕjq&˸KΘqZqC&#CT ҏ}mf`69x%RuԘTfbK0ʬcQbBA>dbJxyhI%){rs~0AZy(R+‘R9HLT I\E4L6-U]ު^WY>J"r,JB2`y)PK8]LWA߳H^FB@̯}a瞂hĺ0ǝ"ĸ3ndX宖Ns/nO}M><<P{ + ~u@7hYGo ڥŠ$;Fc@G8;#\<өG] + <M hw=n];G;65+P`0^ہN``~ jCp(C!EAeaqC1}C"? 6je6րv1.Ao8]@8B{|a#hB>n~psynu󘈿+27ԝXg&Qs459=@{?0# pZM3lF{p3,?gyٟ!a{(pm>/д.d/`=fC70ԧ'J"H5K\~¿ƍ b^?EnD|B]k4RCIX= +(z%-BR&kOm?rw޸p0>&?62j4hGLAIþxq1GxPR*Ǎ+GsMԝPS20l<@?F-5Aո޸5ZxWXwq+0"<⢤MT8UKƱs qW\ %uW7hZpYӉQ\ňv ¸C8? ΍3n&<ĉIdGoN~:G ӊx0n11W&%atrF&0- _NI~GH) +^?`ST!|:lG0V#ӝ84ߛш3۱j웹 Cv`p>ݳ10v%%U'8V? _LHjȹ{<3&̬)8>'$r&cp{T`: 5cgP'vö~ak?|^ .l +>/څCք|/@܎FcyG92]ұcq6-.Rlw/# û º]bO~qui;X\/=R}F4XLk6c9 b r&G/Ė$W|ٱVW.jձ*]إ[/vI!-;*ޕb$7SjU=c;3Ҙ?ov$/޸ذ, +Xn}+Ra%=W.H Ƅ'NQ?RjjWr^\ Ekp4riӊ 2)I~<'yNGWJVRn0͐/BBl4ԉC6 rUe8T.j* w4eߓ(N*;STu˯lU' j^,^h71nFȘyP"\ֹ-B-΂d,NJ`/( +bAAdHyղ֯dۆ4fi,5L}2dZU%3_S11׫=W̽H;Xx:O#c㳪EpFIB81(rБ-6!Q"ګ{dwY>ey&& MCMZMZr4;ej\A+XEq 挄2r˲S/dSYlN)ݹINuVR55I4)I%)RCm|GiJ%i"ߋk$UNjr!ۥɕ,]]EBLHuW ]򲪣r|ը纯UUT +U+Wg`/*!mMVXE] k#ݳFz}IEDŽdAyZ8Z1~SIOrYSZU!ϸ\R㻤Ž@H55 IFJd$LEb<[ðu ⽉f`ׂX.omBw{P ޻bh'bh*6FU {'Za'|/^@,%#k& jU8"W-EĪdĢn+ºKuG|qXYĖ,$&niTUk_p +"$DԒPJ2UcLUjj:Jϕ:Gr#y<꒕Ȭ g*]FhI#tM#44B3`i M7-a *tfpY Sa*gC~mw@^dQbOE*<7Ps#)7Fay +믐 + +̟j_v;\y)`jcmAv3yf.fN5`={e!/b򥈥Rpq/R?- T@iڔʿ4A~kS>jmVҾU^#_WOjYQx?Vv&gR\)"K/ʥk%O<Xp1Pom$5qQ cXFTޕe) +SM4PIYhx>]B IϕR)51JjIb۶21 ocR P RCk(b Wovm7) + ĚzrjE oTK;$]++>v۽ c~ǏZZ}-ͥbbjW#0Gi%oFɺUh$/5?(G ~ŏc0$~b9EQ:_|F^}I;l 5wKa MchJV0E:\:Ǣt%B{ KuL/gds2y4]!T=AOI.?H+XMXPܥq>gA*KczM#c/v?>>~_zNo:ptp0JSjc &C0&51II1/gה_q0ބ10fXP+` -6ПPOls&\wV6= 0a&~j [Z=W^u_:Rtzme.4+k4xƠF +)O ίu/`@hȉ+f7r}!>w7%,gҹYn!Kktv> KP_ ٤4*3ZzCǪljjm3S/`R _Z- +N!Mhon6\[b6R\wϑc*=Vc=?jCZyF+n{>@NZ5/bF*#r#7i{YQǍԨ+ƌG(HyNd7xg{=Ê6Wvg"7*l.an ZЭ跔=Js'jvLbR53fg̈YaT2c?5b/ScSbM#I̯\%gˌ\}2|))enE1>=*U)@=Da)fn$[IcuhuX&L;by7q3qFzWhD{o͌ qڽ]iVK4+>B =5#>4`%ۆ)6ZSmD{d[1ѶИ`+UXj,m\Fλݳ 1g$b>ã0{ KHe K"I&L2IfLB&$$C!"ITBR, @!(}cVVc] +B_Hg3s9|/>X$E ҐcU8E5IsT@U-wdґ +G@2#Xa:Ŏ;BGYn;[ycq9.YK$_mqg.j]L,kc acSUU +TE<',ݩӣgFsQ3Lw[,q+'+yN+fNj?g8IK+MuJ,Ty]̈Qif3ȝ;KnEFk\mǽvo[Vr_\GF9ƱlMԀxꉧ,'r`fE8;J9SU3GK= qɔϛ\o@^o1Mfg<`9={4cVy+󱕒c}fCV?8+/n-xBRgT7\c_-or}'w*Q?_n0#b&w[I^+Z\xm&}$=o%PF0 7f|>xhA,BeVVQ2#*RzTVj|&)ԥ`- +V(!x lc 4o2cؒbی-͸"ۈ+c/bO~o&j`C5o(]k(FӜUʥWj֪"ͬFnԴnM=ɵ(zۚ\16&gJm<h|Pu<شZՃ4>\3 i7ѴxMmthJcuC2Mjӄ6ii|qkzCz[Qk`mD#hl#Yy&-)tS4s!&E:TKXܗ.S p8.jkaR3нAWe4ހRbc‡/L>e~>g|A`fNmh5@8 +q P`%:X>qBx_]}%~1%ޅ&V#7B%B70vޯեh>g^}~$%zEs`@}xËWbCaADA z,EL +Fe;{v0-[nrt#Lqjh8Чm>GulꖀiEP0'oeX׈?L0?gpjJU^lbPx;w@x#F7b;&"awQ\r㑗#G~-QXM7gQ;O-SQp2"G#q$*q`i9-2 v/kΘV#cak6X.#/a86`Cj~c>11_Cqy,$Ȱ31;VcJlYi$+6%90HAOPKL=PISA&ze?Z#tI %UoW9R2yWP~XaJy;RU496*pz9֧1ڌv d?}ѓݙCM7!Y'KG=2%|'>KL!rl/碗͙s1  ec [Do=9 V8PxWtS9ڕ{QNUy^ g#?¡3m>K,;&Ygɸl`\*cїyŸ_΂j +([ +OaZ p6¥jJ4 ꚰ>ªzB$a-@Sf4(cCO# 1.aV-EWQ|řh/΃D*.m^4aS$E0 u3J$a"?JE>Nśi^t!:Q%,r\pVhЬEv6VZk`n&AaԾ& EQH5咸Oͫz4KI='=駛qfܚ%piQ)CSU6UhԕêӣAgF&}F F@NZOIB[%*%qX'{j}񻋿UZLXj`-P:FC#j -1tBo Ag}Bcr:#w#K V5HA 5Їf$&"p|wHdꓰb | .&7P[M`븪oR#$32R$uHYjA\, iD"*cDAtH8MENLm]'{LwXǿ *pʐ%DqEׁ /BEyjMl`֓&8֪16Mn?H}~~=~_Y⦎%( )Dn(/WS:`ʖ@Φ%r2mKʡ|2LhLcx, W<$Rk3`\r2#s͡jgQ[ ٙek,3ƛvsZ+*Pb[嵅OΗg +S3`VjeSˌ[ۑCh(u:.:.Xn0g<̙+[F_sa +SyH1g`^.@Us$z 4fp'Eg  +m=E'{xK4bX94s퉮j#MCd;srÎ]ر;ر;h(|Ful]pwr߇ {)5՜ ݌>4Ap&B4hΏ{Hc_N`G#I#ůKuX4`;1'-cٮqux-tɞ%CR[1Y~ւ}8694.HbU(Mm™&>v ~fتnc8!;ݪu.4@W 9| -Mywt{>Sӆ#I? {YrU +nGL_M%݁{ց 0=&&OVۃAcYp drXw@0C̄9P eP`~aY̍;ټ' K==⭇܁uޔ_8 l4r9 scxƎi )>s]u ~˯| | \K68ش +/cHgi? ؂.c*Zkl7ң49Y}]ZZ9flAMOŢ:#WϚdDeo{g)Q~hAN^Z0UiEUUnE&herU|w+Wrm]w?<5nk0I!vßWÕ_n/*}cJ;U *4X;<1*J,{T\,POfӌov?)E]C)!*mU2a.mTAE5k)7Vy~7L9ɚ?^3kz7P2VkJ6Ҥ3J &=UjE7%gaz<+Ŗ7fn^ jzM9X=G(eJSF,BW(5x&k\A yOcB+%FXZ(.EQ6XU<+Ė|l%69i!]552{+w >4)l&MPjX&и /SJ +ج%E҈ CE#\ 06C9,{rhaVᮚɑJ쭉}5 5D㢒46jR'ktQ@#bjxFOCcNjH, Q-נ\ZZ#mPGjRRc<5>_b5&.R)qo%jd%ŧix|4,ޤ5^JأNh`'P-?<*?we1 $n "" 2,0QNHAA(MqZ5q4զM6mzĸ&ƚXa9}"ΡlX?m _fK1SU@Y(/ir'+; ,E&C2 2UZJRSdHPR>%RBNJO %$HrT#,g= 3 +boeȜ6RpeE+#=ItsjLJ26(\MG'qA;Nw(4bS:F @QU5IVcwU^56=VS5Y!r>><ekzP +)iluOy-P0yڇ>+7{4>]5o_pS$l7SO7=ϡ~z&j"9Ff3A(h ܚ4K}i~i<[dZ8ZL-P kygຈmlyh*^/|3Xs"kĚC 7IÚ%%m,1ϵxXE# C N01ҾCP"p8iFjz͚ 5Jc{Jj}?@?6f p뤰;YT':ppzybFcI7xZZ+ow^BmxBP\wFzw>{pbGs֏ ŜC9VM(gU8@xuq?Nx;AEquO/Nj[9WuqN ?%wŗ̺75f/NLN>V 1,vb{%Ө;[|;xR>prWJU}s_DщTMNΨ@Ə7𣋼:~ŏZu[8}D|E Bm'|.85go-/(t"шZ:s_lخ|l6bsll29=قldsۮ"G'#$:D b]Pr\l.`w,$ +ϓTVWUD̮r]9 ];A1B9 (hr4*Ѩf,Ry ZDd+G#r"pvrԾѿ+`ܵ^ Gk4:ıT-TiL\Yn0˰/2,3,31 $vcxKʭk7V괪*RRU~V.Q*Jc;R{;G: rq+YȦcn:JFd)ﱰG}VuWj폴~UeZr6f_T=/F|Tg"S8%S[K8]ͱlsrx[}嘽,Lr fÄce.vLg2=&> 1,wvi9Tk%?k5t2Y$Dq"nG9orj8`!E8\IL&1B(iK{SH9#3jJCq'_vDSyʝi%SK,'r %pj6iLU1݌2ьQfL4-0`tݙ2y_ d2LG_d}>'.zi{XdU˜jɌf*3Y&w/4i'p y-0ws_c=om)]Ɲo6t=&ezX✖.kߜ,ȔjٯZ͛ٗs J*fwa=V|En+x O=ūt?*%o^ΒVGaֺ"tQޓDY3%R=V +=xz1{GN]a92k=c`~53tRLrH[(m $`H#Ϸ\_!9 +}ue1ӿH4)$(~I$ =5XE_Z#_t ^}Wt,RT$k$S @:;I Th$9")Obp/ yvOL\Mb&&+#rrC|ǥĠp!ҮZjBVCq$Y!6BLaCSl aTdo1'"lgqHLݢէ9(Ji+"J_1uBp:ع DSbsMa}aܰnBywx fkf?T#VJ٭aH=Aa+\89JI_4)ҟMDZYXI׃(ORS_US[Ƕ\[U\=%=@vP5,O8"Y=%]6mzI0H_)K0l>.wR )ZL-vj5!/Cp'V54Xք,(z۩g C|D' z "9&5xZpT% -vz'57` BcㆎS}&Tyi0(:5 : HtRwKc)j<)^xrS긭Mz[95YiGcݲ9S OkI7e.5ӍB 2{2ceey(Kk]XXXv]`9DPEEE-}3Ѫ68ƨǚ&5UcըʹMG϶&iLL9l?qg~e}yG㣍 Y&FaV[O?r&4ݑ Cƹߢԩ~?pҪ 'Ki.g]l穋 LhݷS c)+C7`?vj $ur.{gxhV.37kznP7I7M;*D2f;y6U+6S|}.UXzM|;]jsrE5zH]< t9}" v@ Z3a,tS|=t}M>|\sOzO BVȆB}24FQG@Ǘ9 3ЕbA\Ru!u>}p?^0zݣ׽C.RC('~n>_~fb/%||% +x6Otk?Sn)qG>H^WBԟqsϨسu8Mhl6uF*ާVc%>V2e e摍ϯilJfSQM49αͷhf x%{Z1p"ơ4-6o,P +4jИTmnq_x y-5+8{wn}W0zh%KdhVWfvWc!޽LӺR8MI~Tc&X[Us<1=/gjjb(Gˋla5øph?YCif5iJ_&U}M (Q]HѸ8C5 TFU[UWo<=ߏ2pFqZ#-93#gjҔ>(BlQmp֘~+~e_UC,dlְڪ!T~q >O ИUEktI"2¡9*PJ4@);҃i Vgd(͑TG9du(9YgdrF wAF2:)SB}ځγ$:P^ ,g3_Yٲ5(ۢt%ggWk̮*\Jp5fuoQeEຬ(]EgS WgђL1P%PR]e`Yr#+sY<9Sg<);S2Ez7+;y*sIaSDn[X,4&rP ^pV,o4 P!2WdU薡PE#Q4NE +-ZE'̃>8dY]p9dj FEvǮ"!fRzD1j56$HӚ1ZsL5Gڴ4uSv~LLJ=}}}J,}Zҗe-=/kMي\!iZP[OhgJ(~ԏ0h.CM& lXoӈ`]~񣇋5顸{ ٽ ]k4N>brK $B])f:[`ki8`ogg~rr9H};¥{Ev$9P,z)YJ\BcU?t-=7L0cQq-)8ť|?ct$`]9sMxB@w~DŽ q` +a2B5XXQfezE|^&WT_?xNDH x&@QGՠoLNי1]e +?>Ǐ?Y>c2D|oI9d 88>//w@<)3̤NL ?>ď0՝?{wgROyN9%x%cd5^ \{%e3)/&.lخlln应wEVوvϓ:^<@G!.b(?hDcy2ĶuDڄ]?Sm+_qх*?J&v%} (nC +D:\fkmt*t3zs7]/Rk3ɰZ嶥jm\Lʤ"iʒUTZM8K[T`T}wj9ME$QnrvJˤ3i ƗR-gE)v8T:Lũ#5-u&0PiєA^MԬI_ ەO_ kx +G҂Ҋ. `+ܔ9"T0k#Qi*7eyG(AuY`w]`e]]6xM0xD⠉hhԦ:M4=$ΤvI۴;^37{y{wiJ>SMM,)O"t]-)n~]6pDo}=׿%؃ +M|!.oNP9M1#U3&_,UVSSE嶶i] u.XwzHb=xpgيlAS!|(^UEUY\QYM29m^a,-<ٗоY.e|9)-0pvӍ*-M0 &]*pĪ̑,Wi*-5,TRŮ:&5UW27j{/h*u]9rFc3e.KFB|P e;GYli*.RQyVe(S^&OF{f)ӡQ]FV>L+y>FG*^3T͑[|oF׸[SQ5SӨ|3kWo2|ەۯ4 \UZ FoTQ=Fh.& B +}/P06Fk[yoHCY2uLRz` XmJ-ocB2)f(= &rkxȧPPɡf%*!BCC݊S\bo+6znڌ5]0Pp]W>mĤX6&*%p¹J[4,p(.ܨ0/6&|f,4b96Dx5ƌ@=|mA{D'Rb45AC[R@pDT#EMaP<0iBSBca<}P{{$7eh6ugrј?v6ʜMncښ 0mx9c8GXfH⽓1[s)V)m)nql( ".ɣ=åM$wc:<_O&(ӧ &⩒iX tSK(kRˆpp [eg%yt2'9drcN/8&s-[ֳji'7UjCm^0}ƛnr ]"W4y&걙ztG7B=V6,Ԣ\1ovaM]QD:Ro ig3tt:~͍[`+<(f"$#I̯e'{5N1bhof=Cc@~ Wad 0*r޸ΞqM&:$fϼɀ$`8dA>ؠAd,-=qB~#M][}wuO|ʯ~g ryAXzEa N +n2.SY4yy]C4b9eh'{̻Ja,#tZ\S Z!}5}L>U3 xG;h^ms{V3]8 +Je|INS4hTO[}?#ĞIybZg)W*7eƻjArz}}Fwㄧ ShGV4\ԭ~b&Tb n_}ث ѫmM-v,ϵ'`| />g,ƒ8B-^T*G_L|7{٢mӉ9:w [iɨ Fܤ`< W;k,ExNT2yg?fۈ_FtA7 +Z9#9NZ֓I:Y' +\9yv2È?#KBh&t0UjgBF5׏p6XfƱZtR'e]o;v.p8qNlp9&MNv-mvJWrT+[v h5[@QZXA\1& +  +!:'}<_+Qˌ7ъFQ4$M,c]OxaYEVW^eN{{J;Q>!ctM:^FݏNtf6R;Iha:fmMEQڣ^C")RQXs< +uM!}*FjT tj"W5=dƲ7k 7,jpV7PE,+s_ܴb%4J{JCvJ.Ym\)Weʘ&+W*ߩd~ +Z4ZHAD˜*@#S4hтk"6P:MAZ]ƴwRIJfa X<1ٔ0974dnҀ9~sb}kIieF˜, WrFAeY*]YzJ9ZM `<ĉeȖ" X-V(b ֣.:c +7(hߡ} +Skj.7-}G\ܓ<:B %CYXc)O/;Qb-SOYrʫYVI6+^UrD~ǤZ[ث&xFNjr;^Ɋphƒ8$:j0.kQmRD5jq*P mZjj9Ffy|Bu|A5WU| qOPٍQ4` z=^0>Eü^P.Z\jvW]/ۧv5GT_?(g\.&9=A6Á23|43 #7964U_.4&ab1۸zsVW6t-ribAL"c+ǶDObIcN9TYPs46LJs;0c`w^@nwUf 5V1!a5&9f6Ԍn&لnތc+Z$_-xIL|1yyuz8c}:`?GgisyǼO& ٷ=0ۃ>9g4OdNi8)<|.[O+q8O^aX\ūÚRZ#u}g\"ӿ30+FHaW MqM7-:uqSu_qp?a`ә>^h^; s͌I.1_^ }C~w=ue|>r,!݆!ytVLX1K/W[e2c̦Z^ً@'~yy_=ͫ O8v?;NDZ%n;7zImvݺ6[E֪] Bҁ( ʠ*kT.T`@`m2sQS>w{y+8!hn X_8wp@7)82}]c^e?̫ +<߅o79|NFb-COoc\#Wp9/|^u¹|<~KhM^#80lO1|e.c_ރw&2؉_3/^P'=C%i/pZO~|1!} +"zARBLy,|>Osyx4c$csyy0;G{ W=hϳ<*wnY6e6NY]adZyN8K΋eT/·df }?edNaA{)tg"֣=Sqy9 ܯ3 +OTnawj~ m+'`6@;vahO0y$>f{;{n2ŵSϰހa<_֜B~c7EE]TK2/{]B?J5hgI8Zrs̜y)u&x"<参 ǃ-hQt1"Eo2KnB>@6X=GRff}6CKc@ ZbKI~hyYE6VhF~ , )Y}E SQiT]ILkiS;,>Dj+>V%%9ib"6N&!ˀXf2ez˪cU99Ty:;QޣeJZV2V˼jQAE-\RrU!u9Eqs mohn0*]7t ԵTiU)CjꔴXSҤZnicƄYEyj0*h|JTgX>E:'?'n݅=XK۳|ý49u_;-s)(WaQV+TѦhEJgάkpnr*[yZsrW^Ru pSngN5pwoc-u@[>C )VB.1WljtU(r+RW:긂 +ܫuonkUsJ5_#9ϫ}*s:Ļv|OA?tbqo&FxL +y,j+P[ZޠMyu7)6U>(g9|'e="|Ruޜp-ĺV|e:^$Z"s~|KwF@܁rҪ d%"#O Y_%xQgTxSJ}NBw3h&hڡ{Pa\a.UF|rFBt-:'kt,=2GWY!D.5Wi8{ 5سly Cc~;7zUSr cN1d5OQy|Lj78SEc*hct U +9?ހڣس^V>7CPǵIrag+Z +eʖʚpȒp1xiE%ɔL%I$1ILY( IpB'Po+h{$qh~\r߅uc H^"sʢ!Sʩ%) +S jV `V4NaRRRl֝Iّ]hϠņd6h3//LH/S/9t5Hu i࿏{vw #A<0sqsc,1|rl7mF1f#+>i<>]s 4y%lH*P_rsN0+8t&ܧH()^b)e`.ɐц?:񣛜M'х.;q+\̎ ')'/aS} 0Pc7!g y?QK9d% .5u!}0klVO)^ތ6)`{`5=0XI}ƏuaK}u\kWr@nzcyGY<D^%-ći 5M7a&X90Os6&j>괟d+V곟Xl!y}K؟6Sϟ!s=U|R</hr뭁H(!0 XBqaC*5?+8plI>| L}_cuM;9`ͅ9x7Z}k -Ǹ(dD\,FN?#'')3q˥|xCulb3׻Z>W]yD&Qp$ U\0!Vs%q@ϓs ,QTg~)!ĻeW9IнFsƺFA}pC&k@&0@>r0u-ys% kTmr YWIe{1܏-S׀CX5ȵG6(пјwUH}r:~\eM! s?ΣijOZ{$U1#1J ]v[>_mpmu })'hЗQ* 8fy +>=w$) t9Ïa|$љY;6f_)b 5خǶ&b{gbx O)5dt;mG/Q'*;)p XUf{&wѺИPn.NVjd ~E=Kx:\?דDtO`X >-`U2K@ +\gQQH/5?z ORz^Nl߰Ǩc~g;h$i= lYnl WP:l7`{'!n-n_%sŃtAzDwm_P|ت]>`tdJa7#u:IDQR-4,MGZYmbÛV͵ǐy,G1C,E'9 'F;5:KQL䥅L>f2H6lq~+93=\ssAOǾٚ5E^8BpDJ8jnV_D*P#ĸc7|8V3pw1wG6Q)pd‘GnRx੅M؟Ld4HR1è:g(UW^1DwAýxK#>6s13:mԐ`ˀ)𔰓U W\ᚈxC v~nw]Al}`hi`, Y̹ßI)&;U^U'4$yRTRLPij݊.V8uS_T(u)G9%RQ}_ι_m>@xV˻JP=Eՙa2åL2TYrEm5WEA{kߢ^y䶝UrF8Xʸ HjFJޗO4:Vđ,Y**U" 3X|WF\~96>>`b:ɧ20ہZyVJ)7WJI*vf*RRY N@9U*!k]S˵HNZe^+쮳9ALk=YHI;cQ5WR> BK?/M< +*ϗ'';A׃AA?L pew^g;n ,$$\ T +D8V^Bq2ZN6#2Ң >q;9oyn'[鐫%g+{ ]Il% +e VP!d"Z "8<<]LpUq-@ԉhܛ_! +c> ) $Uc֥ &Sa +(Hw#)<as29C>q-JFP .~1͵~L{ MHi 4 -JG ll+@5c`*o >40E70cۭ +W/pdK,1!a7fF3bll m B&xjG؄;@ |Ro.<)> ?:cm9&'4^6O/3JκsܺbCg\o3@jiy\g6^g8 9@/}o1DNQCbwD&AzkN# -:Ncnx_`='d62!'#FW?r&eRR;㚅ͬU[uv ~&v6IZFPI`%XEnE㮥>yl>7 ,f=F5\3KTh\5!%>擤!s`1kD- ^[csX|0>CMlFY} s$A n–Z5d||X`5?b ߝ%b&&ϰo_`aM<~H{xy71RX:8{WYIň%@#_&A%WL$u8xWXQ>8B>0uUJ &^pKd|G|FwUV3]6KD_PLpoFp*%U~/N )ڇGNvSO8jQv85mjd+~Ɵ9D!Mǧ);Lr+jOU,U*.V_ZUbRmP*Q!y7^'q~&>@^gUcS;Y))*wzT0TjĞb{*tT(Ѭj-JsHOU/Zl( "Tr O%*HV^SSSI++5W0*7BMJ3:eK1VmlxRS4Na\ɑJb1ǐ' A9J@!%7=A9$e(ϗP&#}cr?8ʫ +o6$,fwI6l~vIHBH&@J$ +$AkJJJRZjŢXZdZQt:0VvږaV;0/۽=s}o +|ӷCyd}Ke+{y3݌slP⼫`M2|ey*(!Uh+ت`>9ò7RN-F 6`|KZi +|A|lr :)wr(4KP +Q~RpBpNˆ/B׏܆hDѲ!|PNc%|a#hpJF0ߕKżbxLq㤸Sn~ǐ Ѐ (%]%\a8g|JHlHOq4di X65|ՆoexhE0W!Д./n{y೎Y|< scZlŏv0 :rEE0&u٦0k@3nIk%e o!ya|HsvB!'KA#KYd>`]*Y Ճr\tuL-1GlkKx_ o8I/9kA!h.\c 2ꄯMS~w9Xeqrđ&fNjn q/X6,ao=puV?&kyGC&g3dL(9!Qjgky?ۇG>-})wžk) +!#6ko,c\ɊA(fC~yCv&ړ{OK߹F*JyW=烀% qe#3pH\΀j<9y{@&/|N:gT "bc|'ku4Jg-_-__߃?[mrrz{ҿrGQ +-@t%"}v̨N|StLF8$P3\PEM/3y^b}"3ɹ#LV92l+C +3l3ԑ)eX%x?<>j* + +-tL4&qXsh^x_xONjqJtR{L(P&˽v+p^Z!3Ne8qY Squ sa(C2M~] +{mf{Lm5:'`6?)=|w|_APŎL籟.Li$_y=Bz?"kzDZ}p_!B%}'] J)(<5kn tb#BŅ9!:NwpCȎn$|_)nSV"xfO*xlyxH%k7xxSspd;I쯇o9r8+[@ +ԁ8cҕhC|E\ +;{Tn6ٻ4wX܍*ɝyyrgEo/(3?do%3$$`BH@ Ud(Q"EED +TPM(Ȗ-Z""Kw;=4s3_sg}ߖ6(M@rAk&Ь%vJ^ ; KgM@ úZ|u9I<9v,}l+팸 O8:C_ mk<b$J.!)A-A&.~OHtOHZsѴѪŭ$NVi%M["VxsRܢx:{u>4 gqYBzt}N}.ѽzDEģgq%+ġ~ŢNy}d8/aKbrg*bNE} +A3A "M~K[4[<~M [[%VA[rNj?]༆ey|1G@(h`*]S@K!M>b Gs)4 N_(| SC,u%7$ђ4ų `6уv-dwCaآļb1a11NSaȤϋ8!5F -ESw':{U!<\>y0?*>⎤3&C̙",\&57K?GӚ +4JC96g! -dSCI23!rm3A{Z"%I cfqdZ$-*<|6xcw!^"0Å("qkNƤ5!96"M%3 Cso#:24s4/%RLZJkM[f +ESjhrٓ\gRGB %xPEWjI],-VI^T0 GFZќ^IRkA#VN,c.'ZϕW:g/\hL1$iRUkkuRG[bNڱEAΚh˺نTIn}Rɻ@S3$( 4[f\" h /\4DSGwΆ݊+yލCF3gDv6gTT a[>u 4UFhF4B@?hI| baX_MbHДt%0>BS .z$f*|ըj@8:FF0'YPyH`pΪ4M LH9:KFf T{|jHh#OS4puddq'qm*i~RRB7 ೛%ljۛ ZoIq@>CRM}jP~D&%x8(D笚|9*Ŭvh֘Ws/wQqN2,AI5F(SB)RV$M׍luxUyd./(ǘn+ДЬB݆j>׍l[ {T38؂r99<cBvOUdN[`(Y9y +6izEqe-Z^Yqխ暶U_WݱSv7٫w8vC 1r17~¤Snco5{gκos~?.x?.|EO<䩥˖xz3ϮZ k^Z~Ɨ7ymn߱s[{o{>Og𑯎~}Ϝ=ϟ.\JJ]IYWQdg+/RKrR+kAݔ7) nƃe-ʅpa2b"NLUV܉w+3~ܘP~< y G+K<Ô+/b:&e+8fMy[sP>| T}<:I?().^J>\ͻ%~__b2lvǣaO G8#1<\|LҚ7?3' t뮶;f[mq&O6}ƽfϝ7 [xe+.j[ȤƟILiLT*Nhj~o'G~83gϞ;w?]pƶehbm֮-;zW_5a3Жj꩛sӲZdOG. 54PCC 54PCC w +u%^]/9 _ԏ-~kwe ܝVOѢ'~HPG VFծ=Ͽ1}C&|ww>/n{y /Mٵzo.Ѳ{_d'װ6Rk]/޳̾{ttp|gvzffgi;fiNд2/AoF)TLP. E["-)'-߶g/yޘᎀN"_ +)Uka"a>W~ՓĢ ?J!&vezzc-̣>$CkSFkCe\ )j3J-)|ʉ鱶d(;nZs>w'C71}fDmX4 >J6 3O;F.^hW}F]υ +{E"f(/c`4Ѭ7h^!}w>85KhʙHAΡ 5.-F\ |{Gq{im=/ZtUppdK*8+#KD0 +3{717@AoPa.57d0~DK2qH9yBCOmHLU1tՔl2"8dX2, K%e( %6@du= +םj^A\ˎ*$,!2.KGv[=ZP +$A=]+#zw^ XaF*bZ*SRD &^\4h`C͏@v~'x<\վAGi]8^@(WI<}IXA-edYÍDVa( e Zg:8QCHz,I^PQ%xI-02,탡2Ad jk.s[g-HQ$Xi}yJ&E|Ne2@ZFO AF# zw/؄9Ќވ0RYeJ($9J;C`M􂜇}0 P/69&Il됼:y*LYT~?W@lͥt%SYBfaC*Pn;ӑW_ހ}]M*'(bN)%O2qbzȅ)}^KgX $'mo N_u_q y[r=P"fUdVp=!:qܴ.K``ZJ s^9z5-&i *ઑ9u(I#ObDQHnƖP VKE2jVwn '\G&ǼԲ֠m0NJ\ɰuUH Z %4Y@" 5Pog1ip`䉳ߦq/g(MEɱZ,T"V $KM2TjA})Ï9;g/(Ė>Ȝf+Z5b m @92v~ jl̆q'G%7B#~̇ސt& n磛#XB. xю?S]1a^‹w>LpP8:H"Ol@H4@D E> Eߧh x 3{ =p~@bIb)y`o%65~) +}OztGr( yĆ_ x {L|@mT+5s7*Nȁ3GR]xڅ)|9x^d\ \dyb.pPdmkkm_"8'q*)c{&B?P|5 +b} \hXL35j1|%/h`?b!4У( ^@9 Sa6r%'Pb 5A(=)|FIS|F!'AcIn#V4jBkn    {C.bE aԞ=ag*"tVP*GhHLf)sUQ͚H%PY~5[y6V!zgkhpwK +Ly}\DM3 3]WdkijJ$#d=U$yA +7B-P%P_6`ׅ3$}N+5AIL62U`#%yWFSE E[V\Ks2[nh`ԱCbx. 蕽|Đ +Cű-NV>ߊ=jVy& ޠe=ή0ۯk@G +*h\̰O^LA m(U42fwO'pxa0|YPa47(t%1 Ο;\0^vwvgԟg oB l;e^cdUd ~Pb07(PfG?^;87rzĸ~_|)8Wх5SSrITdC!b@ As/=s߼tD[gnyQAA$LN'3 c8FBm}.)u#=g4b4~noUc[Q8ܾMYBy͇fBHOI8t8:K + |H{ȠLdT}ūoݸ\7gMӫ[e`Gp=ϡnO"@EdYs@\4yjlflV/o.=ٴBj:*n%}lNmg[SeJKn/T^P@QQQ@@PA/],YinmyRؽ +e[ +C>yE@)H;a#ssEfKϖ?,?_V3|~lEfAx8䌃XH?Br_({Jh3[^^0_S 3`p^AkOot7$磐dmÐА +P+6/ +f^ Gp1~)$T1|RB.玦TMI千.YoA777SCkCɦC ?#4wPO?Nfo0qZbNYLn~(VbOKmkZeu8MB ̵Օ??#Ȏ,kNDs:#:'>V\9Oe t̚R2'L掞8Nhmנ镡1!?mb#~GPqEfV 7UO$K.R+ \f9\cLu%uMXyߪoNhkGWF 5Ak(9ԁZ$)93Ε4RfiNb]6*MZInAӉW2v -&Ġڷ6[ɐiuL Ye>3YK@e6rU/"4 SjbMCb"5b@ ЇIUBEI*w:SW.+Է[i>9Eߔ+UKr7Se@p^*6A3x!Y!,!*y-vANEM&ACӫ cuԆnvC$e^X_/.bm[rĠyb g \)ƴ&} IQRVmz;hgyn46,bhغ ;WB;b>tv/KWt:A`jNmg\}CEŴ6NΠ7Ҥ}4E111t"/,1AaO\4FٴC AJd2ȫ(8Um3R HaD ذ$[n+A? + cSΙ# ͺvUD֜Zא )F/ +(F;Lj! +14! +rfס^w Y]1|6QHUU5gvŹ=utsԚSͳe׈2xRKFEMP81H|ZOgk15zq4`.dzXFPV(3Kd&Z/asbP+KVPBCǎOf{~4]=|RPIZ-` I-|M)z圾ЂxME os?߻IocA?c)ґ]쉗RtIZbAe򺣕EHE)B)2*AW8/1/o\#=s#ǒF#l{t%/NՓ % ʸtM~aB4|}MG 5 qtl^44ra8((>' ) 1tIDIz*5+ @};XpgӻG\^km'#!_ٴ_DTXrR,-s4A8K`qqY9UX[~M6®QUA۠]tw \ԮUGg<6`**9{".#u 7 '8́j');m{k&h ho''DX_A!NW1K)LY[FfZy on: L㆚ P 5ۗ@+@t =  򆶤YIVS~AƷST*e\W;^^'cF:/n΢wt@s[\d FPEt$H3>eOsJ0)/(kh@>Ӭn fvhN1{vgo'h9_ >u6EgZcin=aqWu7h4(N~ ="l'h0SFI721MGMl/ 4d`B mȠ84'<@sgV;5Q9Ts ny*rQ(FRiھ,&#{ZsJgK|ݶ ۷6@|ftgB&'=TeH[H}U{˚6˪Zs}I/S9K 'h߷ +T7P1!O I=;scPcƪQm%WY.(IM7ـ Ad|LgGX"nJVx+9J%rS}Zd5LV%THdHm/6%^AfdP] ={}-*[[|SJј*9(#6a"[R)|Υt9Xe*\of{{8 o@eЅ փos{Ȑ選 WtEi2ȕMe*icAfa<&ZOki*QCP:gZd`"/zn߽ʯ'mytSqф̚t^s4{g%wQ5g,lmEڬJgd୛ m?gz݋NP*|3I;! RʼnC䖸 5mkey_goMi#֊NǺ_ъbZԊ"( D K! ـ!!@BB "ua(nXQHU^h?ܿʪ@-g{~o٦w7iaݯ'^ EQG TŶȟEa|1Hx]&]-E"͚`^?eܡaWtLmqu~)~?;I _)OԄi_hY=A.3+ݑq+rnW-n/^2禰gl}'=$qϛ2 &[ftC2.L?+N +z*)ShSes s +)[+,vU%8Zyps T z;v6ُ.3 -#0l&. . x D ꞏ|ces`"5^Y{JOD'"E5 2p!8 ;Bq(7n\v{>F+,Uyv.5ก +.I- +vA@Dl 8p}!:.uXb,15(`ռbYȅK2Uw ׇ _ yC7^R@qX;o;w]8|6s\FV[a4,/Aqp[k=;\ȯ f+7@!H26:C6 pm mlO +8{q\ׁD!P@rԣag +BdIR&ԉqMYϢhc.ƓޜG{a87Nso5dX݋`J#o;A ccx⇿LNHVvL7(I sU g F3LcL.SITS󞞹's1{.bXܛ|mz^y3-9D^鮒d L4T ~m8d{嘳@_h[;V'(PJIki)%F'\WTonuwWIeU'z+fjol/c}I6K m+ΨU\f\VnFeoÅwE*I> fh:֥ݰ˧֚.n&(袔[1Z(>D$h $k+{*%KGuS[o{d<5mq|셽qj??gpzB9(RF/oeV[׃ZE-M]5rI@.i' 7crk]:_Szp؜q봋sd 2hD Ӌ>n_ҧʫW\[1(\Ax*P& e~Qaўw5rr,` )||dh2e"1!>LpW1CBzmM><\( WyPzѿdf--hxomP1^R#g¦iIIVD6)/D~R:.rЬ,N/TV ֭],[y +)u߃'/RBHoƒHgyQ0 +L=ED] +DI(>݂]+Q[W_M[f1-cC\ÿDa)5:6`5\,+E$Eq$rV7z߂jZ'W ۄpN%4X`E3@D߅P Y &( Nv /Wm FI,ˣF9"/*J~ ?*\8 'C| X d}51RL܁i k|s'Z8B$1"۳ uod8:;r8 8DC+D8CN@;)/S~l ZCDݑA5"*{&#Ud8p@>3Nl ]80 {`ma CVsX@s`5Qd3c&?.n)TC*בֿ$\)/]N`,w[V6/SW1F@g JUTC4$"1 Bg $*AHP ' `jAj9H7Z $d;A, Q^jC>Ak6*8$l(|g<59jCo_j@nEDioK 0W, `{kX3_*yBJZJEZ n $/F.D>y;5?5HoCIH>,1Sd{jC<, 5ujS h5<:y)!j@Ky4@ݿ4$ig>3MM$" q:y;*CaӇ,.1ҽ?'qL.\|Q&$NzEseP ONM%O_P@<Ґֻ<eh@!Z jYu&o5C\D.S^GU$ͅ`̐n1p=pS4\:9x Va dYˤ~Hg/$'gK'd= iN%  t=n?e5&S74!i HCJ9@ї^\Z;=z4C1O# + FI%>aOЀ~9x,&i<4А͛lG68`H7K +ANmtaLs)JM + + +.QY2%Y")u"bb] +q@$8@50Eڿp0̿bv9YCu7DrV,8dI6Rr<ĵH i(ߴ׵G>trÛV/,أO[C0L]5SI =V E fKt XBkUSjOL~Wi_  鶅 ^9k>=퓝#ۃ͑QqMzZA(VIXb>Yʙ,uIr- RzV]@j +齒B  dW'`#g! ƽßo=UǹC;|{Z#"[o]MIjRE6') oTWV(VX5֝U[++h(\Aj|l>m/^7K>fs,ؐ'NYJdXʮK2_f dzh F<ߪ!zA=P4;A%r@Esw]kЙM? _p8#,-:Ym+jQYņ<YK G*hez}I$jp^ixo\GJ9t[ivO=W{y{7QUmqYd +݄/4s +b)R$Ī8V}pKsةUu_8t#Tov4t_6=sꋈw]`X ҊsdU4a|S$$E#LMaT! LdN)σM~kcK_o}vvo8~,x8<⻘4j̒byƉ_Qy"Z4`k0mz{i4hހ&ǁqܵy 9O"n|@F 'gR> ݈6fYM\d2m&Vp73pp,gnWA8vx2 5c/OOp>D962{"1>m"S^gEYQϸĐ҂z6 +v|yl@jGr j`bCo+ o=]ޜ3a93WgC3"㧉1ԸkxI!/)uJTm sE7Cj?EXzf?l^s_);xًٳa'fKf`cfKʂCgy!$a~W}g{e(]P;# Q7la +8 +` xd( yBr&gp>;~`}juBR*G!lu))6<קix A;/CԞPH i =H1= bPz\Qoh<-^(eCUM-tZ':-"%,X8.λی-~^m灴\qJw֮ udO~q|2PG( ac>lpNj2[Ke8vGEłH "BH)$${$!H*(( X.l"(3{9W?p.Y{ofF0  dI_}Rb/Wx"xW]^ <|s8ųq0}<Nb8!cVx} sw[1,b]YHLelQuҬ`ZdY-IVQ¾guDY@< ␋ +_x:[9pˣ!5Q-e'& +㤞-Pq$FDk +(ܚ|9ǻenkxn1P` #|"Ȝ̍j]w{MEP[[L('1F:רgKjJPER+.4ŧ3M7XN-Kt_>kDP"ga^c'qqK>˞^=SgsוGŜ*OJ)*JS9ZSXW +tr]:ǐ,ȣ+*,4EC>UuӜХKe"[q`/j, +IgMk@76޺|tŦڳ1ѥ|~y +M_La˭LQM-àͥXL$}9UBȹn&;t$=)Y-0epD`anj{9vZkgoaGQudC g Kv1[F?!RS +zdH4%Y0aN8u)H d9s8g[lIJŴ\u]I㚚G1hhjsP+]ռ\}xn~sDr^G{TAPI =uz:ڬ5>tk7ͤ﾿Mw/uk zDs7u#)y)6YAO9e;푷T֦P{@!AsSwZCRs?U O>Rj&;ߨ}M[Z +W}^w76MUK,Ց=8RAbyڰsԁ ֫ uTqZV"D '(`A^Iyݿ20duQ琯UPi5w["I^OjfƵ<ɕawY9*y;zZ]k^wiT4لݔxwg 10dBVI۰ՙ!NG|=xa~iw\p7?W^)m,m*m+w4XƋk/ TA!GRpn .q.qst [q3c>VFn=RRL{ e"Ibw:C/8hΎCBh$3b\PpJx֮CyK2c~q_vdrT]ptInpF"Sp},t66!l"FMl I3Ff9X!AN{H+RƍQgSwy*wlHڨTG= cpsdX"[,G\Z $7@t6KH  +/im>MKH{ +D6XkBA2]d (["O@~bN{@i 9Z F?x9 ϙaciǩF9ݬۜ{1HH@?!i&Ri#g.Qi@sTnBz!<y1v> eJ ?Vެ#Cbhw/e=(}z,~L:%|HŞcdA@6}GnRŨj=˱j*n_J2}rcf32gҎ$MIٔqQ~7לG᜻ vfOJsE]Y*HPkPNaZnZweCI~T~%c"7*kHNT$Kc͢ܧEw/ sGxvt'g@B6$7ϰ&5oT#G:i)E edY$oH I؄ld)C@+R>}/Ç}07H^0iƟRO~O$,i,K0)QN|BȢ`z@`/A\$%%!5v_k]7t 7S.lt9nF f=ް|܁Uǵ6[B!ڐgiznT[$߮sڀxoʐ8dgWos0f3iApZ@bڢ2Mq? n.a~DX+"UP"  "d&R0 w~T]sJ/)h +k0x QbF-&*E jQQDkbaĠ8?R9Q_3kỵ@` ܦO_,Z_t86]aɿe?'#a dëcV[L:@?}b#o$`W{tC +5@; A_m@%kPkj~CfeK0Jjn@A((g4:I?|kXyI*x $%Rtfffjj3Q*jS$bZ\uab'q(\} Tp0zSs( 2A hBmT‰c4탱!]~^qD:M"!#M)Xag +'d&n,D#fa$ȋO0K!G>(B'j m6s+.\I9MD*9N` (7Fx!$fツ^kx]2_K,GT-t@B{,Z_]$$)\Na8XE= Ìzs\2Nl숄^ RMVBd2ePڠfV*`u}P\\cB瀿<JmQۂG0ց~Ӯ^ 7Pz<^O$B°7yi}>Ǎhc'|>B':8<WC𼍑2M0,؀oNXׂ䣮wvkʯHH|;čWH^: 4.x#=h1, -GrR:" `q'yq~=@$= &j ڐw c!o& 0 *r4bY0CFsȒ,!M[t=NU")3`^D`0~폰I𱤡-YI|89H  #D:#eDN3afȎ\E%+!_q U7xw܎ pN}!kH) +'c-uh&W؁/1("B`p7Yke9⬐˶ETxATGLroc?KO~K RSS?{i_c#:u6ᐼJUOjoSp +'r"Rqΐ1QcM#)'XkF/%mG{~B?d%KD.vX5u3Qi`slBE|q볢0H+z/}+K~?Hcd`v1n O ?dh=L-6kq=NƙLR +=d,GJfb *`[%ƶh>U^ذl`=>ԧٝG0odg>$nޤ__I\2s)pFn[lu4v?5c5vwֿ) eG+ ˙%5oDH:2p~LξɹΧ}⏰O2t.KC 7:y, TzdVG[ʾ=VF9Pis.)/w"`8P#~}bC:1J"n!ȼ=sSbMsF])c~.SPnrn(W%3ʓNcžQ[=T ,BBxyɮht9e5hp[Ԋ˓vja̭J9jsT}vi.|oC#$ +$Z-2dAC.q {'i:&C D,{ږ^;2(+r9gJ' +*GUYs[eu-FvAdOse}N6V i(&A;}_;c䰛p­s}Vt*YIVe˯W6嵨~[TsdJiujejekq@H[2YD,%!iAGF>s:jh[i~W#J:Q#gW *J-eٍŻuMj*UgirYB?uz@Q5B];sk:~#-4)A)ԡZ I - +*HDP]@?8*~Yѳ}ssv: {:,{~'ŠBzjZƲԨ3Y i%9ՙp0W(D/D)췉y@4!M?a{g6-—KR.~4qj4h^\:Y]_^+(.*N/gd)ŒԌ 񟱒@:mCySn~c+ǯx`q_8ΩZAd +ёTaiEfFajŜ¾#E%/KiG $I;8-88 w>\/~e*=3rpAO^?۶[cK8!)LjFU^Y\Q/?//[>_LRZbٛ$8I rԫ⾶oý؁{q{nvh䘽a^k]gOhV0qјĴdL^M0TWõO5Ki1oxU+q@6\ET)I}QFˣ{*޴!ݖ17ݶa LjiO$3#>$Mr,ȅ#q)MU2Cu6d7m\N ;~8I jTDfl\o,jo: {FeDzS{“zbb#; WקjHjNgv̦_ -8$t%diF4;$ݑFSh䑎T^Ŗ86_p& ׄ!q쁊D$߁!c`V761=/{5JqP)^^ >;JBf6gdtmB᱃F՜ACƾ,ǴPOhޝ6wBš(whñԉ9mb%~cPI _}8-ۤН /οQKrk{5.T@%uR=w1щXE_R^K>KC  />/iE%FoZgaAլ HkU-ɫV"WCW9FHՔ}B[Z~Z/9})gOrveNfB82GuRbE| |#5lYwT [`wi} ӣ}x={ɏPcMeC0cy^a[I2ކP_B-7:=P&\hΆ80dWPh' bpN't/}hc{6m@]Ĭ Pet7||ϔA$י T%OX黀 >]4.#`\5ƨ LϬ_9,P-R ,?S@5"Ib-adVp'EBP>0O]QM^[TzYuQ Ɛ9! I@ @ A@(rUZPE +*Ȱw;9]笇ظm@X  o#D/a$vla,|Fk~`We0;xۜ{!p .B i+n hkrx[6?nǹQ'q-[FÖ8āh=н0 D Aq1O#pR=%~h@m 3@ ҵ@ez$|e[IZ؀ ws*CfV=zG%v?&W0e 'waO"w6x   Æ9~/ϸnl$;C8 T7[ځ|فa䮛 N!F#{4i!U!_ٔ>oA%W;9-<þ$`ODfhl<%n|TQG wN::>r~u.;Zm`.W&<AȍԄȾD WA3JJb;D|IoKIyO%^H>J3*dS +4p1:?,y7s_pyP]yW~1GyFԦЎ'XGE6&Z,L( %;Hi{I 2+F,,jB&)&:Wn*J.eW{;i4IsȒVIT|(0g-$Z.UíN2 +TU% iC +nE>rSiT՟՟y z ߾C7u27ۉZ5/[|ٲ[WjʙN[QM*jmU-M-4cR<7U>42_%di> +35LA,ty ]lrxOgwۂ_;CO=aCAֶ2fS<֨ThX%B}0/D=$קUR:U)?RHӎ1thkuNf Gkf,ںkyWS:s-=hUR*S Y#0deIU+*"0$N%ǘq5@:g6t1f_Km^t?p#`:Ἇ7R4ԲwVW e2raS(hr+F$!ˬeHP<3Sd[X15@ cbfq݉Ř]K0W4t QrFVXY_aS֗pRK qb\&-O+=JA]4_8̗-,qi O +1P= f<^g̍Kv;φڻp;iSe #ݓ &ZJMr`:/2O_^*yNi7.*a^\W<ƴH=;af~.al̽s0W0}Wu8/l_t.ҳWl:j~IH (" ;BBB@aG(Vԩ#.uSw +,0EtVEq=c= bʎϼO;~|}&GPnj'Stbo~~́ՍҴ껥? eUe>6 S9Gg?2ɃVEnvK7rk. ^H +/usYq[[ 7sbMFuaӶ9Y k +U E┆u9&NMit tIn3 .3^9w^SǰVՑ|פЭ37\X%XQ"L{~:ܮԶʬymdmC9TeZl7$chI-if+ qA3$MScCV{n Э _}#/zq|εIJŕJ*-A#HOr{kJxBrA7좑ܭt~NZn2I##rߒwYQ۞7<{7ú{cDfknNS2KR2LH.$ &zrX艨Y? +^3C \?bY>.Ԉd#hݐky˰qooLlqd)jMlp-:2{-O)zIH8!J"HX>--t?x9g#0 ee:@i5 !e96̰p\C8hՇ" `Bʂ,R)!*Bk ;[s@\#/x7){4<ǃ.fqq!cBE1"ST,B%W"=U^jo3v+w)n࿡) +>HmW] f{!և‡ T\cMPCj1de6C!>Q DHhu«)5QʤL @JM 0&jTًH CָCR6 Qrq Zلq鄏 gLQغ|AACil2} fl)2HϠY_8!e+<8!vCKľāIp1\h"G$wH +.HpAFڕLw8(XahS-^dltf',rw6&`FQ4%oL::!Az;׈Qɛo%Cҹ7I{-GK+ D4ȝP*yLa5%B )mP1oL6Ɍ=~iޫԆ&7rGQo1IyCWW/dclLg)BCBt!ő,:飔c}!"LPƷ:̚ bϱMr6s_`kcN8MEqkKXܪ {H @ b B-@"D@D +A^VPֶ^u9ߞ3)1 ŌyD>$ < {>p}n0 1[ n32+$lw} b:XۯQ)GrU`0kq&LxO1 Q f#@O[ a#O}kTm=0}ډ}Bs"oףX}i$6hWѰV0+ +s~1e9XET2K^Q9A~E6fLH@S@V@((C^ +d!o5n3aNKǪ]/wt9Q~uqXN-Q1J8yj^NB03S?*?g$z$ {s羚P?llew]O~{GI=VkȉŔe&tir:NfQJ8Y9$Q)JRR^y:m<$HX|\^ԯsv-K.O}ݪ7rV>VANfgf1ӋjMOu^>/NPJԷ$?IIeH\@\k X +:G.5yionm>KWg(Kɔ4m#%']ƍϬfeiƴ$:7<-3.#%. lb$ zob0[=\&:7;/j;E W_v_U*є(ɧB-K^P•Djω^H;)ʋ*|˔|J d!"5.7 Eg0ri={vUM-ݥ :gv_cĄr5-4uFxb$[ܒ\A?LQGl2d=iv'poٻǩѕ7w6qiD>YP|]>&Q*4qw mWB-PA;?k#t{h5h0phUw-uHy^/;,1 +0idҌ,M6ɍOhoht#$1a-0 pF;0r]m3`fouw)^lw+{/J#E] J ˒B'Q:*(v#-3>xJ÷!a m̝`,߷A ,hrO-i~%s0ɇv9-t9(ax@!p`9 l ,n0aߌ@v;(ݎ[G%];1MοÞOʾ\O%(wƁfdlfGmrޟ~n^BL Ѿ"4 I\dLCpfbc!Ń5RlOh0P¡Ej9Nh8b#MN dBBgCbrDd9CVI;hdFo۸O@p꣞Sc>k ᳐ENCP@^ᆌE gސlB@|<:S!RԨ/Do/G [1|l hf;U:A=*$(j='os背f2N/d~~C]'^OaM)^Rq|m$ y$ rȋACrr]3CS2.TkyP~@ȏA~6dJ +|:a9z[ gBƄ>c8i80 :W=79>Эvc4ۂnAPAu,lȗQ!ѿ)^E*T'* d#d@G4LX( aaV4D{%1K튢|O"Ə y%~Gnwv?DsdڐT ߳`F5}E=z&L`dcn= +'\y0.+\2lZb憘gMOsN=ɪHӞK{*+y&O\0TAtLi/vNuĂ 7ucżsJ>?.\0s}Իym9,?-wnog\?]}oD|$u0R.`ḁS.͇=/4[/[$ɿ(*n)1wƎKNw=Rv<[7E)F$z".5,uL,Xo?T48˽oҐ17*fhiHRRF酒EMs-3ԧL4'L]c;ڣϳۋd)!J~r}EoY{|_y"űo2ksk._YB|Ʋ.͊c/5K9P|>wϹ%VKedZ n)J{4/#/x +b}_`߻FܽR|~vLU k,WTy|zߜ_);qc2i@Vs%dM}Q ỐOsڷYVp3? c> tF}i1\Ci`mrkU{*7iw<狹_(o3~n9h2m:oHXնf>L0?I8XUA)ғ`B(@( =jjA@P((2눸zQ 3{f{vV|>_NnMF*1&8xxot~ |NΌъXQuTY٭9.}|gWF>UVJoO&51/'&Tſ +NZ 4D#/C ++2TVkrRtLgve뢰%1Gz ;ryr)R~1)ܿ>YƪLa&KEļus->TC"{٘p#W7 ưnA:hO6zIw VzE':J 9U*%IeQ'Nt=h/L@ +TP![ ד`]tk 5]Rwҗ]&ok7BۣKq-IM79'LWBȎr0yL, +M1e?0Y~rD#CdUV&z 0_@]=hxVr⸁pD0`ƿޟ:esZdjJh*dAC1b)VO(P T{kn~x{oeFgC5='ݼios~)wC,D쏹k5t$9ǐ27zO17ml36E|blՋ6<ȕ~WNP0- 7HP5 #(^C}lgIqLO΅sd?8{ &`V`ǘ9f32g̠촋#:JR%n+Wq gC5(~/r!Z Ɯ% Ygf~,"/|&x6dtmGUnߣCnO6p`sY9P@ -HUY.B )RyLR7*71[hP),SOeNwen6sew,~^p\O;Cde.|-{2!aYb3V]5+ꊟJJMWӌV}(>o;6kb6ە/a+~*p<@k:> }Kې_|4kC:(r:k!T +5C^pZ>}w <H[_Hh \~:L:IvMQ" +ְD{P9Jڍrw2Iu|u &9+m8)@ g)kHE vȜ` dYTg;Av5&@ $$$6!)67,E*n8RA[EQ}k=ťӊ֭Uq3_ۙx;}srpig0 bɴA$ +ZH2E1ʴ JYec'6PT9I~(“Fp [83ؘǰ' hiCzu%icj&v&ON߃Ѓ`O B Jπ_.xzǂ6p0~b8A\4uxg3O>C|x\-,@0Yï {M;H3)W;=%wÔ/x0ȃ&|<BDd,H:τ(} Xict `)$- ?&^[?i >Th\H>D,Ku YB !2m@½V"i EknٓWB_ a5W\R'H#ݘZXc!F](#,2S֛CMʆd͔dpG#vg&W߉ڏux!px.S lH`8G!ք`gr{Qv4bgمD)t01&*4 _c3fE;v7{^u~%;4 sI\I>{7s~c +RV$4ePͦ24/-!E: >&ϵ|3So"j9O=w60G=/xߑI;vM +3 " D[1`@*&D3>+ߤL_$~YT|?V.z}nFs#b{=bwUywTyߥ7 Q> v&c a$7d;3,!7#ўL {g c NrPչ_Khȹ&v߅s1D <}Ip"Xˀ|ăs8Ép'4!ιtl2K %dsobɬ&?$3K/w)|*Ι=G :Pui㟈&LUw( dx CIb̀B R2 +{ƛ*WI5GneЌeJѢDNgN˽^w05@rp_Rhhɠj_Ȁ꘴?lww}Kop[b RH~6[EFVQlƯuNV+.Y*Ns:v(@Vo?,r=K%};;RC ˷W$VCؓ/M7&wУ(#Qo̩G06NX'3ZȖgaks&%C>_GT䷫I+&gRVRZfQ6Qmv>-"{9צU[^RZ*^Q$ސA.o9wGxS#VD5\j}\?!m,DPSO;!oQzR[3~:7SohUڻR]\Qo+/]%n.Y'k*ڤXUMYW0Y?U)aDm{gՕAP_&(TLf ֦CnAlMU``|wBmMIs2<;?n-_[])XSY/^],+oWԖ~*鏬(9]VrUQ.rՕT iiQohjl5M]_M:4:-p|澮PѶ[ZT.kzlXпBаliTW}" aQ(B @ؑm( ""PYdY(.Pjg: eLm 8ȢTEgǙ3=a>~s>9 +f?pfތ=!)B3&w7- :íT~!3߷1 ײ~\btqjZVWdx,ҬdX]~at,^}w:}.();x{Br%FeTA:']Hx uE:L8˄M|j2$Z%&EŹ;itK+L)(I:Z㟘75Qp|o~ ^BD&}8jh]π4\nAG byэWYoP|&lmM95qU;U.puVnTUy?? Ȫ=us5:r%j8Of.-lHa^ttz/Z}=b]Zfx;:ƞ͒G7(=:}B|BF:V7^:{Nx +۵W:?yO^T]ׇ^+F5);ǃѽAOﺴ4BU\ۘ{>ȔF|rT^^v=#}#mJ6'jEVH]r.;hHO2pl`)0?cWh-KjэcǚD&Zn*Q<ZG+2[2Q)'9O7^F;uߑ.> g_E̟d+?Āp{߆L3Npp~; ơwRL2,X +kmb>E !T*ք!>8^LI dlT,q*+N׶>~LW4Ӡg3s'|:Dx ꩻDa5`ɿ | 9_!(_SW"y֑vuc8aڽ԰ye=c\\tm2YYpO'-Ba -|P&(Pq%HђBW=iS `0F3 1 +Ә+{XY2kY|uS}.?@O߁2``Aa1 +5ZJTP+Л^4#h=up,08XKt0Ļ75LU$;x #0%uj}4d/K P@領F)AWJ) (t" EƖF;R!"Jh`8 AhyǵHsq'*.Zoω7r,ɖXD8(g?E,A660G \ QJ\ Y ?ψrȝ/j:YB(>\E t1QB0MƲ!Y 2Pͺ(EQK  gijoĨ;Kx,(RfBҜ0SD% ݂5%;_t߸Jkx(i ZG>b9 z }z3u< +qz:O|I~`V=.h` t "7N qQTM ֆAH$2Ī3l5c ~[>`-c5Sfe~ #Ɯ}Ƃٽ0L ƋBF cJjH}1@LIJQz#r߇zVM#ٳn'AF}xiۻnzЂL0X^W6!``U8ߐ4|3-5.!q1GQkG,7[޸VNa{rq&ՐΗB;_ y4F=֧#TX`̿6M{W"H7Bd]沼5_g.}ʎ{fk"f|*k1vWZ~޴b.#" t?>1>Kg O.Qx,ŀ^ `38xػ,|+>Iq峜DKm%8opks=}2f43J>}pIʡ^~3G 4@x{;W`2@_VBkcڝ"_!y٦9zw,;XýȒp>IdY>--\!BEݔjoBWhN(Ԏ}ɂWD+,z*2m;xBa"4hR~/C);ªțfc?]Y뫊]H[@Y1BVaߩSGB:j&Z4y/#g$H;$l61ױTW*H}$B%M\(/, + nOY xb - ;jp:DUʎ0\2ckY,ͦ&k\wUEbʊ:NFQ _r*(VP~[|(B0l5g>BU t]*щvutc%߱0Nkc,l 3R5n^Ԑb]P+uHd|&3e#30x=KvHU=ki;m_0ptn.>'n_Zm}W +>H[4@oƤ`GLspf=1Ze_LRs`6`a(nQ5 S≧3JӾU_zk;qolcoLc9a91 5Rk)C:{PWX\(nvW(hdDzs۵ DQ:8[3.O08ĵ}ݶYٶG1ֻ5]ƶD\"ΡKԼ +*/= 0"&\Bֿl!:!#ԑufq:': ;#;?:kXݵ&$F$W1h|~z=}?o ? n3b{˜XFӛ̊VsBs>)Kk ~ׅBy yV?Kv@x D? ŸBG0qLd0%c Mc{ xgu7v+{u+}u+5=Jp_A_F9\w`l7@0JttTa4F1ned8 Y8ebIeI 52@cs'?25P@` EԔP\ 1l1 l01LF>ba c/jwJRC,Hn!? ۞ Fz0EYf&\TOal>/r* QD('UDE +尢O\\DEM‘0Qn ƹ28_BX=&P3] ^"°O,ߨ[VeJڤRUUG/Tgs⧪+⇪n}Sq[{jVwF@/eP`}\zi=u\Ԏc|p<˘VtS~U*~QV@do}v5uv^ͥQw5y2FkHWɕ(az{tGh.R0#3{g$inuD;nݽov%n=N7coK;bOIǶˮޖ]}$7,5ƣSk<:OQ0-mH8&dհd'dXdYIgs3e]~õ5NW7HL4\rA׭][ަm}^9U3~fݐ{S"6&d2:HF'6Q7t̓МЏyTbq~t[]͙i{iBέ\ΥM8t2&}w }q_GRJEϺ4tKGtfmL,+zwNq›NxLdnG*/ZN~I[rMuG5}qIK@H &8L 5! !!!!B-D~AumγMzvqwHEӒԫ|90;Fzx5OռQQBgC$kP|sKMgZ;> .=w$e@q<;eb6tU!ŕFQ=.Q#U"tGr VMN|D#2fo+) ;i Dokvpa2v\wz`Ys:P{qG2ˬ6d:jH343!ZHXi\:!$;D0ut [8?^|WA ,9ai;d8У;^rji&F7Q*Vnbh +CJdCJ,K!).R.>H_RT +DQ!5({AW ie$J/wwT_ZIqae-Q(w=|kXhރk}twKfWvzoUk%ƜyTe7J| EueTam5-hftd֌W RUXz͏eDL5;hϴ`!@[+{} =L۪_9w^ܧHr+pڸVwU9)ECi6P3&4l6m&lbB&fBdk*=[\?ޅ;`@Iv0ʾd Qџ\ЛvPԓ}-bnV>h0-<m[8u{\r#?Z_#3M/eȐoewbp8S-]YrNaUy,"_M|Tn'UԐZ\&MaSހׯT%=Oz{U z9gIO1!E41C׹z. 銌hԯ-iw {=k aC,CRDNئC +GgsYg./1n_nߘ7wϰ_d8"i46[4X\3 嵄 37%_A_Kn^ ,Pisc ?\tN B`hDSEoOu̐&ʡ'Q <8H1&FTȅ?G|&^(=7ت.Dv6ltvS!{lOVԆ!aP~`*ZpӄqtL:R͠LCsR|I_EuqӱKO,^&?u-Ñ#w6N/►*♺2jw*vEME4ʈhn +ҵПƃL##Z3p'S2'2h,ď,Q ;mu\ݾU{w+igaˣlnsۧ.eqhWD>F` }lAmstl6+Bx4sPzd\yʔŊBb5e Λ]7w+w_cmBKI"KPUvv4 t6L睦y 4,B8,pc7p5aFrD{̔=jG|Ŗ6\!uSiz)kN>*ve]]q+aMLtX*b72):F[\B:qP?Y@PU/bT5?F37Y-gUYv|cVtbYk25X2}ۗiӾ-K;4NҌA^6 ru КHW?w|98/#j8g> ̛fM -KeKr?R|Z9E5.fo/u$F!@n ulJA@5@XYE#.`ǕxZjUlF2Z;sng.8g>>&u)1$~*2~DV]Y$ILLl'bopk9@[D;W"!+H^૫QMmG3ӭ>ȵNSWV:u.NLVH:.K$Mr"91{b7P.8EC`{Jm]inTśXVʳmʲ Y咢LSAFK^z:kQ;kiZ2E]\PUnZV=CU`QJV$YNM.)g')v'(ds8]ٚ&3&I*`Fga4g˨}=@W:Eh[+WV(DVerی"ԒJiRqì5Mh'*o{DZŜb'z|K}jpvAH{WALl:O^UniCan4:vfGɖiY6I55تzv++ETuQOL9DU0DR/i?WS (l BԶ۠rW~>oJn +㬖u1D mRUjNaug}Pw5n|5s U3b7%zCt}v=7[*J5PjfqoEz S:BL6ψiO3ڐk6V*Y%]ֺ)s`7΁-Zòf&^l'~L !߽PvK'^e.=ӑ#Af'OЏl=R-4+Y֕mYdbkufM_Osak%[F~mf6zP(hU((H"y5E/_fm7A|oi=3zj,}{=e{g7>=f>yz LwoTy#@D rH!O.tȇe|5r B<x GhfL{'0yZLA8 c< +0~2$o򏁜a?O@ ([@z0F=7 30z ׋z9cQ- 7ö́1j5򄌑+)?W $ïK(ۍ(0` +2=1 |f Lmo08qLJ8 ƍcGg 0H YG6.Yc \#'+q/?dyTSWK¾!/@ Z*,ʾHHXHԸТH݊8mک^ENw~NrOqw¢)^/  (sHlCbh&M+_<8 xKKO>Nctf' HbGZdAC6=|Gwѽ8}|K ߑgcr?F>c!SMA\=iOcOg#SbH5|'.5ԘhZz%BSE]3QDtNSEWG-M1fO u?Ax}aM>nۓO_)S 'zRC*}I d+d[}̛~?$'7$XW<.z60s;pv*f} τp-#k +,IK`btV`Y.u˻w52U&߽6]n|ѳMF<My~ozIfC޿Ʀ76# uAmaG-Ƽ\%9Zy%FjM0=favo}OOՀ)c>׬>~?l\Ȃ aha߿~}'l_o0'([wb+`50@hlFcYqeF9 3Йۨ(֑p< u}ֽK{BVq +nn ++ogY^G-=w[k [?0^c_t-ě:aqFbe=-V؝՜vkNo o ;(61'ǖg;͑ض9 +|/=7SЅt>LCO!l/5ѓc;)մ31bGں=[n[cm\L_&X'\=* 1X쁭! Bwa0$Ѱѡ 1&T,ҨCh-Mfٚޔ$7'V94%6ҫVovZC,nKCQQ}܈.K]¸c]"0Iiq' AR :Jm(sEM^ğPи(Ƭ Ų\+gjm܂RZW#P BUQVW-Su=#*x!Tc' jLޤQ8' •\CT" RFM.P1ha, 1(6-+Id,[MQPSV +;ej׻ȵe=nRq4ew8],X\iP%28Z2 XNvQSK髂X& Z:\Q-Qg9(J+FuiWIcn(YS üIwypB{a4ܷ 7XFU7(oE42 ÍbrkS,klEV^UM*U.$W4 *\ݢXq04k 3!A4(ADqpU֩Z +X+ +8"8KlUk+.D:Zu}_Z?y}r?hL1+'Ǫ$;LZ_3~Pec^:A?iÖ8g~&h;+Wƒ&^I>7AR9{u{d*`}¬4=f15x/j\jѫ;|v G X{EwϔLmn5l%$ ݓWoy?8lJeҁ529ega:__qڋQq=C89NwnXۚ]2xuj8QgCls4و<+al܃?/ b, q=0DGcr504/"~}Ts{re.r,EvܜGD7H}zQI;q-ri9Ѩ }>mmV ⭱5^tWtSYNq̟Xbߢm_6*m管;k莿+gs' v}8 .B- 8Dz 6PF mmmmdۤ}hͮnyc!xP:շn+9 +d ;H΢l@@ѺEA0[TV%=вdKƠE4++JDuIU>%Kſ+ +T Oﳿ&3{_3[_ wE .R.uCKɗ"ۡrAWY E ] ombj/e?fSXhf? rh^U?mwfpػ>pbP٭P؋!vI/3xG@S` +j'hjXU5@¨#񥤆5kxk ^]zB/Hf,d~Љٖ@ˀO&|P:t^;5o +@] a\:$dwXNR]% +RJ:RpUu~ߜ%Hx]/dϦ{̽j  ~O9^D.Ue纍.O<Otc BTPwk`w%襸MtlVGKf#d<3#Kwa5,Ն!]jr}va2v7Ἰ}[S-.R\ +@!nӀ\!Cu~a/ZlEY`<7"{n\$n q͸Ah?J ŀ2EyuŹf)4S6b*B:Ul| 2ۚ0#Zŭ i4UT$wT9Si̴MuڴWUb*PԅJc~ 2W :b\Qq}nE%󖱢2YQjPYl:e^Ɯ>iNs8ar8.hvO820|aj|tmGF8BF"xY;ը&(n1PO|3Bq"zQt8/ǃKGhE2 jĪ}Eb'{c\jl!B!$K@$6Ibر@ 8X$vl'Y&vL=i&I:Mm433{y9^+b?uUL$L(8/~?b.JϤTJ> FI l +|,Ki #ޖ_LAYB e"dDG_ŞvQe sIZOKB/yȝK3kFJ0}n3уL̽{T +rr\9fW 9eAEEr5 z!֜l=+;ŝ\2S cr0GY)kXP!JEBlkdJ'+RRD.0ԓy 5LG aŸ!5Gh@h@DЯ$a!0\̜/񨻍(#AḦ́˚Ͱy 4iӥr)uQL6WlzUDQs=\,+ {xw/\: >ulG<>G~=<𞍄r98 z1iVIEזƌ3SZPJ\ܞx"Y|RԡZoS'&>Ij){|K !hQ< 0*A-3^d hE0cJ!MaCqG_NU{ʭ.m#۩mv4BfFԤYJh,]KNi~ɦ[ڴ߮%'7؇1wޭF0w]żcX[kN&U&VfG TF4nQZjFn5r]FЮk/'Yt6~5F_EO,g50_.|\}DW1y+Zu/iВFEtUG9*=QYhc5T4sm&Z@bbR&# +ӏJ!@xU&K>zpu6͘79o=Flc 61]ASF4[˩ +ʪnX;恸Jqʟp|&]ՇȗIz"CG/_p3u8mx 8لǚyRHG"^mQlFY]gTֵL}qq:46ZGHX#*qe_k%xa>}g6ּ::1wvw ҠMζm֖Ljn=LnhG; +-Zeijg[nAYè>_b9Qe5^Rs|^b;Gxa}x&ּ+?1s [ܮhhw~{I6W*֕IvFVvǘ:˩ +zy{-ns[ +[gDdZ$E,,siJg|XHCBr<(ds r뀯hf'07!_R:WƊ2B_}(VM* 6U M Me0?;ϋgnse@@Ӏs%`-TMP^q7W;AT(ĉff>XxkU@c^_ c?\p/0Qz:Ue@+ n:ԤnZpC͐7݀3!/o)ca؉?DZڏCKswُM>0U﵀&Ѓ)yocܤQ}E.>o9G윸x~Q`:ϞWXx}ͼ{~⦆5i`M󞬉"CFQl`.~ <_ @]Q }Fi +ͦIٴ66*TL';1E;w<;A&W E8>UQ1=H?y,NxdJ<2uQ-R.iOeEBvWjz/+/ x=K{+~rK NX2Z*L-!Kel%]ϒ%#/X +|* +})v\UlSl}Mbc#?4esZ 4tU\q/Q]}IEcdOΔﰦ)[+ZW(7[sUͪ #s5oPtU]*60>kt&T Q?wQ=F*Nm %4N)h"/_WfWdkr6hvج o"nYo̠6ABmАc̿B$Q~<)p0EaWHiCxڰܰъ_({NV ^ +]dLk$d>=H(aAha^S}ZO#=vn4ݛjfWpj/s'Ϡ?FJ׀7GbCdr#H91Pf蛤^'Ygi3lz2 h8;8R}J_#6{܎~f췏l:lvژȉ醕1aRVtYFtbaʅ&-jiّ" )+G7Niq4%CrcG ;ғ=FYcP'pFnXoEF|O v"-6Q͠hfLΈIM=ߐe41zWCR[c@a [5{砚}>)8 +|`BV `)-,5!Z>ʔULM7]?1nݗbWq\>r{c ;ғm|/#Y.h=?goÌX<5/e GAkТ!#@ Az@TBt]OZa]-3umn~L _|?~i扫t$))2k89ǹ0ՒJT2k7gk[=LڃYSL^&3iH$%QS{ Krٻ>5`:d1UKkR$iAzc~97⚣[XVu'4i^ԛ4#uNpK J?sYIjeC?14LӱظP\!?kԜsr2\ VAZwmꔌ5I^Z Iz-Y/(bkی8(bq1;¬Ay¤c> xc&;b|G:1SYQ1#:As9|ҩw X=|}鄓2v q~ x́GO4=ˠ5½ +PBEE(z<(O=޷z]ɸ-w "N! t;< Ji7N}7PHI2$9CԿp;7qBƝIS0"@!tIeKo4pe" WX0/#tpL.#?o05w1cbzx;~~ 3 'MJpT,=/^`Q|9Y0y\t$o>r|O~|F!Dϵg/PdcE]cAnArKĂܑlX Y,?`/G|b‡hEE>{F)[6SDϣ̘.c x6o>&w -C}1<%ă=&YEyCp m49q42,&$ Ud=LZțNr qO?/ +z%qx:)$D-"d% d+APg?u1q +xk%w~AE?4tN"|G҉Xy8&>y;uvQ ?uR8ۃo>?pnA+r7Fx@qnT\9C41$[1jlf4h:Ӆ/u<;HT}Pem:X5$p 1$$"B"QmCToB +~ZC j]FҊ6\lU~\_qQBYOU"1J F* !zR}/&4w|kuWa\QƗ#.hVs|يs=1|Nw'#k"uqb  $?-2zp۸%Wb7;>ŹU8ӽz4Þ8ٳ'z^m8k:CO`kO]"_ǘ٧1-O$.E&꟏Q8ÑEOg`f_BfOr2lav lpxixm71Fd7w_AB> ' ]8\Q|L|4h9'6{6`ٮf:S-ڙLv.Yݤ]nnbkwrܺ!g5CV_>T-ÈG<&w銿6ZY=[|0,Ga_pҍ6 [tyجs0t%zmu:vMl*[/m[bJ,ѝ.ݒ6x,m!J? +O?$[FM|@380J]b^q!ވ,fM\2]WʶUqKiB}YHҤ_%o5OW̸񢔐O%RkL!jy{Io$('ClH&$%IfQmNpM$2BZ +P )Ҟs=n#ڌ2tŪh1hNMaf3sRNaC1,36 +K5e0j*` +G11E٫`Sg~+Ofz^b)K29sG1sӐc 7_k*ԘҐi:A/OL_LoWUPQ*L,Ch>rp:>iBzeE6l r1M4侍>'d[PJYҪ2 ܤW(6uy8ƓuE^W(6ҜN`g!XK- 5?OY=1#?ov` UyvΟ-R%(ZBe“LUQݭqZ>8,;9,?y™'ʝQxɷTd8GڳX@~*P`ڢQ3a6=$fb+ +rٲWZPėX}5 + .ka][׫m]NVM_jUTXE gܤ:![G-^]4:u&rDiי; ^Q%k}j_ooUwj,\ub3^wY Gr`C3}Qye1LȸfnowKlE~F/zGn)\)\*ܮ6,x2Js KtNRS*4~$'j+텒x|Q䋃7q2 t7畖Kr!Yw]Q{;TiޣTďQV"_ <3:S P4vNO~%npUFQ9FXҘlRir* J$?IRF*ErVe*IXPT!*E9!{:;)`Tҝui />aB0H1șldBLf(5\ZO N$I2Cp0]<^PU T$ +QSo&7h"i4L#UOs: {\?a0G!=p:c 066)a ~nL>\yTƟ3, +ʦ0 '-Dk$F5O465"eE 8Hpj%&*.TӨ(1> +&y{E +9^٬IθI&9]hBm^]u KY+ǢVwdX'!-'Y00g#YT:Gaf)r +/lV&TƜҘXe\*T%R=PC_7f1&yeVr dia=H>}BR8Ο,$}oɽX{c?&ؾc~RĬvywR@Դ`5GQk׋WI%0PCi4K+MA/@t Cc4b嘆HG;rX/usRغv)XHk}/q ;z8x@Mi3_pz"©G3*ViDhe +B*"r8*Ǣk$T͆U[U}VRS0\$1θلyY&7Vlc<.=c6$z =08WO] Թԩy$&ߓBwp_F;~v[.vB-ӎxJd"%"SB ԩN 5j{q|˿C?N?D_/b"Od +fRg>u p6Q)\s;SU[whWp}+\D ZBӅ9 H^!M?Ө3m&SǎXC56sjnݸX|8%:Uj- @oX ^zXHo2L77Z3X Ȧ +󸮥F5*phf,Nc'Y@*o1zuAS;hvcGbl ^;CQ T6`sQl +n?Jp!! "',Y<8}hHBmcj"G:rĦ lZDB4zT픊51n(T{GUHOic{WT^o}kd4hg7Pih2X8 PbxņiuBT#'Ib9/a2a"axFq-ENcEv:Y=k=ן@|U߶^pĦXcBIXcզQ74QZek!0}$-3-rPe*S,1mU,65*N*$Pf)盅"JCơqs5>}{`%v,iȵ2j/e[&IK-Ŗ兖 y%[a)-%yjťeyޙ{D K] qDpFf`fD +5.Kq-5zXTkĜ4mz5m<96ij4Iۓd1w= |zemA6G#ulI1kLslJFɄU&3-X,VUZMI[a(wcm<+1Vl y+6"SH"?7wg:xuH?6#<MXmE%4X2EZ +S,7{2 +ۼZ[b~^*6o]BeKa?LK^Ze}%s4kahEI٦*t۲mPj+KlbͫqֵRul:lsm/ԬkCzu]˸9Dq-빮l-#QW +eʔ$#JLHY"8Xr]+~)W$/U~Q)ʅpEy'<[!܃Yż1t7|ۊQBRu&T@j:\L5IRԀXݭRYVxO^YՐLܢߗuJ@o/K} J#Pdc:9pHG#KPX&.q5َ,Gjo2;uq.,q3l>P/^0GO4l^\NGV G3 +w><\$丌X]9bCJLWcqҦ6H&gltҥ^եOuo4gH꣰+y|'{X[rzTB^i$1qO➉ŞdyRaX,|!S$.TFO&ͽNkpoRrFIII>KB^ޠgS@-H zdW BVHX+' ; <)XTeʆUVU(ebNL,n{OKqޫ)ڸʐ6'.S8\>84ʕ] \n ~OFo }HYSs >Ź͚پSX[hbBڟ8tf`5 |?` 4HnX< S1?$0o.f0fi8Ycc 1Qu@fύC PD3I&s[1efƌhLoiqڪ3fL ((@Lс<؈ =x*)`|W ~KwQ{s+=o^[6 Q1LLjۢ0m,&MSX<`*30`1FkZن;aX"FԎG=a֐Qe۩BFT'%`^ v>ۣ0} ڣ1}t'i;w,ǠF ؂ h?[?CAzdݛX'$b_f1G Dqrº+RW,] Lz?]  |d8paD8vs 0CK77[7E. ̹3_oI}^3vi=EWGA a:-Dr:0 3G_l]BG>Z{#=`7ԧ__ DQԾI@!j{r aCя =aOpaȞߓ{G{]E Ybj٬5{#|Dc1=GO>g`|C x/y=dO4 rjbE 20*;o!"\>'ug_KH2kDT} ** EZnnhYDQA@B"2bM01rRV&NRV8ff\*5qܢo~T{=缤O~ld!Hu'3enDٍ^ӉYDdd"d3AvtS"oq?xW?" ~ 1 1tKlF3`'5ڨqssg#>mj O9z<&ȿ?eg7N&qdOT@EꬤF5j8s#5P{8g;V!}i_2:2G;C5ķQĝL%_AԌ3sӨCBjF%5jH-_'QB//} Moq~$7 /DÁc 9}r]*|=c\| urQDUԨF-5>V9wd4o鋫˴wi0Z"6;ٙ0eG'\;kBq5JN&gͣp y]U +Dh9YВSG|kwqlCyeÆo$O^17x Ұ,\p9bu,ǙU85|z6S 9G#qGF^Qߠ1] sh!ȓx吻|!+ȍpy~.)DpM1lt-C[ :jtmD6toO$xm}qoc<6WL7OfRߛ70L.Ot%wW􎝆|=^ }`M.Ůk:-ScJ O9Sylv M=D+4xB y4O3 : +]&s6L*gsf2ϴaR4{bW*UY[Q?kP7S+}]s_\uS^})ZO.;v{{bs%}4h1' >VlDoj|P[*BoηUX3P>G\=X6rޏb|Y,yP<\{-]~tS\ `*aRJ=ʔXLAҎ"eBY$,W ˔br+-]--YtI#e?!,CG߈.10vƲ1-Zָ. Uc6C}PUT:(PLy!E_H^X +1cx@k[Hb[fB+:q#1&.헥{Rh2q<3I+s#kvxa>Y=DlvBP&-~,"d%ĞXVjI 5bԴc1ZiCvZ3\o1\r{y{lb>Kz 4&Vq.]#4"!RhX0&>'dӀ~M}̽5G%]3G%>4G%VhdeT>` + 38E<gTJ&;iHbR48%LSh@jT6Q}Ҧ+:mҲ+3m),)tUShShdArCc#˰ Jsz2gکOzguStV_ٱ +ώS +˙МSPE9kS+c͹,2L/RXݲ|އB}0 f8*]A +, V@a Zƨe|,3mIU7"ue<-\GacFgWA+%r:!-;klql}Q3dcMW2UP +#[yL@^RE7_W?7Hq؃R)`+5okTg/S |!adg,@PՑXuw\ xº2s/)kS +܍>iޖloaHa1~R=Ci}_CP o,^Ç<OXI-A GhFoz<^ÒsdwT2GvNI8Eag0?:Ǚg +hrM@-H| -/:'֣?<ŕldllj֟%hMFg&9GEq\#dG(+t|+e`؛=vEHrsh@:st4CjQNFi-9c֋]DNg:ЙCGaoA:N:K(gJm5b>i-mP՝ U|ǴUl';cWC(NzM=~WO2|u{7W ?w1ԄZY?T}40VEq*  zM f*7h+;8WYEYy!GsC+-)%)a_ڸŵ7+x(0fl#Yik͊P- %,@=# ^+eOiJWZxR#2Q>_ +h- ZE%Hy!@$ $BТmN!Zҭ͵{3nu;֞vNZ!~>Ͻ`͊O= S&',V iw$uLs0^5K>[R)G{Z +6g-=Xaڌ +pŸQ ?|mX +o^:"YDX\f!U<ຒX`d?|lΞH)EkӰ:;9:rLh)GCN9u]Q-\ʰQjIY̡TP/*IT80Tf?گ>8b팣E5yhV-O j Q`e<y [v&*w _4#2]Y&H4cO79rZM;렂Ʊ _39j&c6.N:tpQæ_/'EYQZ' ̆wd%["G+ ?Xu ;i& }60(Ӱ9lT4 +a+,ƕ(5`1h(.z^ɊLC2iTVh#HEc[LyB~'Z$[s8ܦIpf +bLa5eXX0QRBq*[`4(0zOd:yc/"ɴfIJG=L+s3Y&Pa0JR si:K0PTf̊ʽЗ?]yX}"z\loTBe(me-rA/{"z`-]c,Mb{,KQhO|+UA[YJ*WC][:l1pYUD+~g9 ۀ}M.G}\fN*KqC0TGB_]"hj!&y5*P9P:+ZlW3 tu WH=*gDjUO!wIBFs/QwZǀ'Ɇ5y0(Ȑ_{8CAGL V;V߈Vx2oR/#{Z$y HDGqKU(=C$ s[*e^ Oo*2}QHGZ"țRڔM*,o6`YUHj"ѿK['?m$4CB$!s;ڹ'Zg[#cR3 Hi@R$bi,i]G[Xܪ ;u Fl 11man% ¼"EB̺1q}~ux@s `3]9 ;v#%L-[Jpmcr60%&^JI$"|HL8x˥^ȩI @@ \*""^b2T@W=j>gmt]36v[NvݦsT|?D~;K NH#H3i#ϑm%1|I1G,Cy|G3y~g_2)ѐ,O"ƯgFCldbOajWL#>[_0o69aOƒ #5 &$dP/:jTι_72~w1N.~vp:kߤ0ڍ>$%qαRgrragaoj^ԓ24jZ}\ q>)tvpgp//^_ğYopjG708=]O͙xԓ3I<87+]Jjbf@FRcn)C\vV{k4Wy? C~9wyD)B8%3/ DQU^jM]c:ut='ye&I-`SGch"x^Qy1H}^Y:9?"56qj66LubTZGKB<kW)hVub]X1eG;Kf ?6I:E1g ~s7ڧmFeV +5f4`Up>V.X6!QҌ%!X50<_EugxG|Lw +d*g> Iǚl)X>#"BTGP\,SEsajTϭCFTmCyTG@Y̋ Qo +O}؂ձ!|u iKd煕Q~X=u1cQl2jPkDe qN̏,Q⟠Hn (D +•>.SL >{Hh%kS'F$ $Ơ\*C4 z$d(OB܉(L\|2dp:F87`O9Ia0x'29gIigk譞>'B>e`H![BIFlp&9H*F^r%K))w"KyUȢ(S`n:ظv``볎>VG-}+Ǣ$t(#R#O +J٪\Rݰ#+F¤QsDyUd _Ads6x:ْ>(}T"O +:X5)hĄLm6KaLAn6tۑ? HcNAF?V'.w/Zd=F.V}0,9ԋa+`ԧ!Ð +}Bk\q=LH5|Q4@A4 " F'Aj?xK1#MQ2gLdL3a Yt +ZL ԙyH!RU2d"9k^>d{|~y0Bc{?wp$(^ J5ři h!Pۢf"Ֆ UlRHqCSyRHoԾsGBl$va3#{/u+9Tq/𹼜<\z1:EPyCYH΋D# +rGd $:m:!qAEk-b]g|A#% 9i?wQ{">9*VK!G%=B$A ;y @TQ `NQ#"7#xŠO!m9B!H@+9Κ~/;9_ +4s]QQXWeueߑE=-fQ(̸ `T 0q8QU bզAlVMM`L6{bCRc4how{ xmcb-fJM`PW`ŘՔhSE(4\ldZR[_yE`oجloCkiYΧ6B}3UXO|)uF(6VvЫ +dά<Ȇ3D$ͭlJabWS2mzAWڄf_0'xni]' )vba'luPC!d|R[Yp156v)40wIwvjQ:jXG .@Z.Z}-Kbna14,ttN_tb\KK34@ o/uahj!j6pENc$\bq'-%r?= kgY,zA&Z@q.IX4iÁ=9]lix3o'3#MF{- ~FK.wuNĐv>Q@$M1p2 u1(}\4׸7qț|m‘3}ldIƿ>_{[4Ү)yWP(]%| [6]?>FC#c61qF./l~ `0)`(bJzآ~d|isY;}/\pedZ AwH0Ŵ}k1˰_}- :55u]|gu N|OCx̹7T} c ضa{.0.S0I v͏C8 Zנ"ZIJa/`߈"ih~1/Ƕ \M?Ч<~b*-a8k7刦NƠABc")}gcfcߪ^N*ȎSD2P-T+nKK_ϡ1L4ʓIg#?EhXrc;YvO^Ö}51%;JUhi#:cFg1v՜\; keҧ.]:6k 8qW:Dy{+ePvw9] ƧimZqGiV9hsV8s\ +eJ]*TNuA2_T=z6k\FXᷔaw͆SUnZ=̣U9R%3EiI *4,\JhX|~C9>5fSvVfspN_FъpuQ7N :sh@ h;3bʹvK| ]9ʎ UVd21fF ֌=Vi)=MSf)kRb5)\c7+9Zh|qݚy};`sآ#;EXojz\kj|MV*%~&unS5Qr5.at_7W=hTbF&6jdѳm/uT@T@S2 0 ]`H䲨1 `y ^K$Zf*hY)=Zֶɶv:k%ִܓ?>y}}˚ƎL}%q4bb\9\0 -_EUG$+7ª\eGڔYQ5ʌ5EJTjl,5?NܛEra #NJ + q-z +)?zrX͎1*#&U,*-ήԸjYR)JNإ2%Șx~)S'FNm[q88GE9^2LTaJ3D)Ր KB JI,Pr\%ͪiV'4˸Q2ː.;?^b911AaaV٦0QG%#dɔ$cRf%*1D ɏȐRfřE[*| w)<@75؇~gא2jSHdd8̓d4*yS~NC@SKoޖt/*zXlȤ,bI&XP,cR4QE +*(M+NTV) +M-Ճ%4CJɧ䔼K>yC6&35‹JzYQ΅Zz-X҉oya+>J+)5I0=hD{&3SV$_VqOjlyʳ<˳:8e ,\~Zʹ4\SHl2y1!P&JOոJ? HyU%ʳ*UcQe{"n[FVKիUF.wZVmhȠF΅ǩzr@LI1Z(7T:B(GFe遺 : ;лX_mQg?ߎI~%g#=Rb|J cʥUÛйM\\k1>$mIgiໝSQ;vMG'$]0P`C@uQN w+ +}|7[ًO +FwJ]#y‘PRa#> eԥ8 t4v71qzjiW|?-/҃ +܏WO1xNA^SIAN$'gR,Yhmy׵u/`ͅ35b%Ұ>Z ҅\Opn!p8>c"5ec,ýKKf+ų`ߐoO!|z-Kp\uCѫ 7RnWosܦHv;; PeP hfh(MEyEևb7:󺮢gKp>5HCax$q`\,?Yu !yaMZ`{!`{9)E h̏Qh;:.iofp^'Ѻ7/}J3G~1`9U~ YKm@k6Ӣ?ڵzGOѺѩlS$8AQn<r_ w_pYX;|r"𓈏4-"el +ֱc X:V;؎t^*ׅ5h 9$ V,a߆};plՐZ| -]ɳ|kyF;lݘ؀m@an_L b -M&kk^5SWUv6ҤjTiViӤݴnUNC}>}}.Wy%z"Y/_{Ob> +ۻ3>wiJ>EOOUE79𓣛}!\+q~F6e;K 0"WҽMyޑ`HRsxx/Yڱ8]c~9Xze TtOҢQB|c29wxz8-RLSγhqyi'Ooi=lff1s c`4!F?јop4Vc:Wy,=|`oŔ>1 D`1*u`6ƎjLza"ΏnhF0pC LÒ{_CI"%M{MlbdK II%LTc,QcI%:0,APڀ!i H;0 EldcdsI^EwUtmDG{+3wLYfV 37C;1"##) /ՆCГք6tw`z?:GϘ2іyYwz ^ω?9B x6`uKlfiq'L) (R‚@v9NgѦUGޜ!4LE4?-xo s@Ïy uQD\, Nݿ{xmtMc[:oCxhdj2q@FV Z' +ܨ-ZKg1TΡRav+(7~@N<_&-7p%~X Rud h,LGz}jTpp2Ԣ؄ +c;E즣(3@y6uX-/>K%"Y=r`wps:T:&9&*Mp a7Qn.CŅRKlm$iXga]GQ"}opKcm*q-$ RG7u2VP֊&E&.wm  li&IX9㡭BS5uv۠T!ӆ^(Fp +Ho"!R䳈=%.p$[;xuwIE덂99r(ݬ«CׂL:|Hu!7 yI$lBr ҖHlI-_Y̷۴?77s, ijڥZ Qn Y8H!ůܟd2pAф;! !3 OqF_|g|AfY㼓#VA}FK=J} io{eD$ + B + +D !L`0!J{e7#bɽ6ɼ0Xa,L|qzJ] PSSm$;8D'!b8 +-,FI> d0 1y7ȹf{5"Iq[\9 N98|_%~ / .) ._\Z!,8 ]u'0B(5wN FO3朜>dPg\Ҥ}jCtrt\\ȯkK8D??8{=<<wrx\O &5y vh}q- t=! P Fj0ؔf/TdV [=v]Ku_}K7펝ץc+ XASZQvg+tB-l7?ckncgX>Ntho+|+{n* ^k踂?t\B{lum29wtt"w71pyG\Vx塿ۏa +]x: k %^i optDoq>!;p(cv;i w|-88,~>^rlWaد@Z=ZAXf8Z_m&:-D`kwp~ >szK?"'f)X~vcN^F[4Eт&tl2!'*,42"^q6Q{rר_\1a#bP Gcᨆc2pӜ.E(>;Fvf|¤n 3a#<H#8 +-F"t)rkKwմZ)eZTmjKU}*{lVEσF]W=x2undy>уnOun5W&h{j3T힫qCU1Bc=U9^= y.RJxh~Km**qtS>TgYB*ݨ|V {Sy+0w^s6|;:rT +?Oj_J#5ߤb*ꛪa}sTw+?\Co50hv++2*3䞲B#u jv}L$7TA* 2 (F588CB)7P9!_) t21RJq%ڕP +xwۜC^_IqD7g C"De(#<[JԈ +DNRRl٣Zw}L֘Kp(щCp`<9k6d>FBr<̨~J2(-*F)QJ+):C ׀r%j"ǭٴ]&gzWq2}61dZʧyo":*1CБTCd3F*'k\T%b.TLje΁kJJ%QC|`jK0~a||}XzfXd/,`0oJfJj_5 TE +WQ%+@3T.¤Vބ;@_Kڕ|VKH F7D`aLr_hvȣ<ȣ<iFF6wh es-**12eXI3b3Ism2Q"@zcn^NVN$)I&O/\T ypײ ~ h +x Nw 8 ^o7h:9ϚQL3xm\|pZ+>V4X9np 9 +%pb]79E|Fk.=tqߣp_ ~ @z! 8d +%8b&qO, 7G;[s}F7}#8>oDX׏xobE.!}F'W\G8?#} +y 7{//x8xB/?xxd!]ʥ?8 +Jqq`2ϓ9cʚv鷈uXi<^^G~_['228}@-1/i z]@"b#v91::f)d̲%8 )=`A}`7x#vL*%x[fEA>Nlb=Ӊe2į~xVav];aA-63ڧamFnf:iyZG1cW6!~>gbE,C %F3QVXn8ױwl=>t 3mIB6wh=X)p1b8{V e5YЕ(އq#%Y/>`ݍ.F($ p< +G + 68jȣZӴ<G UJ\ #J7á{6h^b{?v[!{8v +!J$D @2-Dʂ xPW`k,@9GY?[ԟ0G^m8rК.5~a_\0A O:YT W*N.gd m$VM{Mn+rޓ+}GXo|/DA]U9fy;kfTW5-hr,lSNCݚ;d\%X mh#aǕ~Iww[~8:ZڲE7*HFyb=41\ T3f(8NYɲGNWfd2"+Y&YMj:.,/>R+цhkknтҖQ|k9T(ƛm,S/My2̣d3[n\F)%fĬШW#^wh 8ӂ%mhY y>̠NSikTF.+_l# 0 3ΰl +(0.D4Dwq;hc9&٬i&VLlkXSi&=iZcܲUt=}kPqQE! 0ԩ,+7lFSNx1WUJ3nUK)rF7r+%.^nrn-d߂Y?=N#_<&0ҧzs+&OQA1#RVg&),3]Y +*հI2dPp<(0C9?(8/<39AM֪lTi&Sy?;pMgq$*rkPHnȐP`~˿̖qHA>+#C *B ܼg9G0s%\*(EYX'btTP%b_qq-OI,WWҍ1 %gحNՠ:iV4x i|U<}/!㤀A+ Р2|ˌ)h`yr\rYX +0嘵rCƠSW.jB豉4/Ɩd%ӛ BM +0wE=\.BD."c'1!Mdb61;-s8KpG`O+yɇK*a@ȡ3$x \ \5\t5\@5д!`u+-M_M;"88Lum6{&P\ U jbibh[6ҋP@/DG=lyC2D-\X:` +XX G} 35ã9p5XᲈXĢ.$ml||<[\ +nm 5ʡ]ֱ@!H]/Y@ & +VxҏVx£%RZq.|j&UL+q4+ZOX9HfF$|6K[w+(݋ < d۹xvzю(8r965]@:r;zgAK2>Ab{婋t} A===uh $߽V3u"o%9KɓFbvI9V#= u̐ǜc@E?eb(Ea.^zCU>_Z>QA\%!Կ_p55AGy1~ [/ g?>q&8Ǣ%Yzq]9@"g 57<Ǽ=f/΀w9Q|P5Xr*.S 8yP  q-M\׸p@E~_).: x~B>G"QUmpA0ҷx̯5c=U K+<.$;?1?R>@k?eέx +^?ni 53|5ezqA#_L +^.{8 3w𗿂8#=C=:n$2y?t,Y?8VrEr?أ8G:rXD^]M2m~A馲.= ݠ&救GZq+YȑLLV8DDRKX%_"6cvv'iP6Դl_+u:~G-rE.9ϢB1į DWc Ğ2 YNy: ߰Z_j%yWx=19v-{E'{Cf$Ilq1 BjrԑdkL76`0`n&&`CbH'@B(HB[Fi.K@%Ye (mfi6AZN]5mӺ}m6MӦM۪}ؤjڥ4G.S =z?y99『w f 8$7el{W('ߡܿ$xqÖ8 1Ua#f<ߦg3q;cX5#Df= MSw)h5졅p$v1iL.x +8K)gYBDim` $]v>NK<n'2LY%u )tY='e*\v/q~J M5+ɢmIښQ{rڒ˵9%M)aES՜USj61m"Z~D XR(j ?R/1~ +b:m:r"8+GS IږVQQU6`(VBZ7֫޸Qu6Mݪ5Ri3)yNU +VUX>T3SKH'bCطEȓ&K"L3TgU\Z_5ZjUm(hک_Qgͪ,mUb{Sg;>S#{Lo&Yg{(C$;I!Qk,ekͭ*[*m媰W^2GJ[SI39OQsWޜw6 %33IcuKZ~vlF9{IW3SNʜ.*8'"WH>涩 Gyv?ʬQ5` Q)-[J&RVj0vƟ^Dw;X҃][K> 'dMSfI,kr@ ʨVz(PRB=J +)1N0uR;HfbM ~f/w_ዾKax e"'q!a$|:xĞqbMG#a{i{sp mx AY2`͐ѐb: }0q8k]A(nbL4n"LvLavL"&i0bK4A<&?åC){1ǎJw ցJ9>c;cܘɋ9.?7FҳB_Hx| +:;_ U:G;0\|Hv,bb,R(2 $y{8G^~;?oسEi㗩WH*_%p p Ǎ' 67%X,e +2X&8ҫ>_{Ŵna"r܄*_a |n]M>gVcB~PW +Iʊt9c/ggTW6\ۏ_ݛ¸oo=^I/G!R6\{tƟ6%inmzK4IIKKEZ.E\1AAȠ ás)`e2q2&sӝYiOs~/<Yz,GG>ۇ;h +{mf5*c?,ks51#ꋚ b԰>_8?@}^Gnx7u6v̀/b@2(CAw6ڦq-gҿu7g8?R<7{{BGeER?.jK?wvT=:uч踂89,C%tz gz@{཮kz _>/߈M_p귪һܷtɜGG8qyqa6WqR6K'Hz0v]_p|ܟ>ݛ,::)tGsc88#8Zܬ}d/ _R@m!B#_y \b3e'"֯MzGek=:Bt5JR=pt±nѽ(\Sݰt*O.r?b̘C"f'Q~mmIG<4vPAo ɠy#ynsmEo + 8,OUB$P]*,Od_ 2\G{?vX-s^tSsd+\x +)c:h_P +~/k$?fOyF>OqmrѺ!.sSc>;\䱧"p᪇pMdptvZf^w@dG\ȝ +-a4uAL&cjHָA9ʂ͞*P}LHuª4Z59_'`K0\RE-U$Fp+mw_ղqlI&&cqjHNQ8:CjU`b+4$JUI +$5ȗ4VH%oUqOxBwU`BSDEOƮGm%#P1i(bPɨ!Ft94y4T*Rjܤbs +*HW5r[)\ʱ\zD $#F#ϯw泥8!7#kȍߚ +YJ-*RBK +UX):Jn[rm3/T}RcxGi3-»[1nŌsJnFS'R*U`cO۞<{r%r9|I );AY㕙>MNgҝ+*{^2^5MlkH=Sl-~@ Fy24+iSө̌\P +93*=+4L={l]< K7#L_O̔zvx75RxeXՅ|vꤖz P#6(e3Ǣ49\#L*Yek.{LddHO*sLIs#>|o #c`;3 mcHrSCn|Ĥ* Y|vY +ke,K)EmJ.+x U\Qy|;rȻ chiCG3#t27^RL%VJe,u) % VRYH 2*ۡXxK^n"/˴2K-pg]9]m jF_-CF2֓b$&@>*-JLx_b}^ SH~gCcc ~cUEp>4q*=NsaXFh11+)`bA MhPi`0MA C?Vj)x6{LzӐأVBV7q7 $K%l\xa0t\x ǸcBHuhcC걓zCON0yy@0"dF\1RkRivHMdM4pġӄ&45GoLLk.Khhh k\ni)![ 9<h#;?;: 6+Xy#tp 30hs1 ; 9tG7&4nrхU]Gy,AUEpܳ:^J<a<2h6ƺ gGI'M/uE賏FG.Y'ṿ; 1pa0p{Lߐ {%W@Ca!WқO c *r1@_RqpfLtLRl`ut^o$6hVӐq -8.sfp>rFqخR+_W.0Y āt0Rοgjs;pH}A#GGs"^@ aG>|Tp!X4T |pƲ~kg88K8G<N]zS'u/ >z:=E;N*ңn<7U#` :._ORܠԍp/h=k!G!^7YJgz\hDt*bn 6^ 489x,؋h2GM>:p6Nv4#ԥY EfUR0we mXu8# teDt2!Ue/Z"\B.j(fmV]O{ jȭ7\~t \χc9)2xYŮC-Z@泳R\ ,F}9(48ĵ5xW:EiU5YJϨ.&j$ +n1 BxS(fYjC(i>'{ogG;k}+l$n9C5rxxK;\p%'/\p k4\5hr#{#PN. +idgqedY1@3zMaL$?r2C&X5>ȡ1A.%jTPFgiD a!w+'tCV:7)5C)O( 1|!OwDt.Xm)1PANO!ǁ紆*dT^Ur .eGxGRZySbdSd{< =ZQ1]!2YQ,jLN\r,rNi 9~LSeLȄ*W*,qB=9  +NUHO]pwL,Xߕ|VLl)f9#'CNPEyLxl2{2yeLJUD0(-U3Ui0v|:ɮL1v +ͥB+tr)D]᥊y +ݸ~0)\*ָɽû{Xfmհ2V|ߵ=růĔTMT۩jEZWj^vqq*B˄ΆKZ[µo5c[_U`8,G bK^2ٓ:hh5i|1/jZVXA>ך_,N7Ѧ _\[=_iu`xD@yy_2%ʹx>r؏{Թr`jf>+Te$9 `cU: I ~%ٱ/袁/h _s)qqlK3[j ML_>7\;ֲc4QkTT((kx[w +ሕKk4U@{.J1P╢4 ŗqE`ƎUn\ɼEi]l'${.yǵ1Ja} !Ϛ:mfG3m4I3]4E35q^'$;i츎[u r@ +1T<ȸѹm a-߉MKvǀz(j-|BL9~3p.Q3 xԭGn߶dN;|ܛ}6'Ѷ$3'qR<%&4S|qJ~DzR>ދx/9f |ʸ'yj= kâٱ ]0!,ڣp~ӳq0rN<Qٗc;ޥ`|<\^\e>PF<?WOcq|xiorM_a{ u| =&RK忚6W$dv}*1?X߶i{#_\Y3Nmc} 6>|d)];__/9Գ +3%OlOI' 3d,mB=E;bW8{; +,g_^U*IltBtl x( $/g :{'iv6l`gv;8hûCQO)͠s'I=. \x)9)#+yJ9ۉxs'5ۆ Tx>)3tSI/ WB)t~-vk~ƻFvNZMsEp]z>Dk;ddI8,ybi|ENbWVf{crVրco5(Xe1/sSG j+GYvꎣ7b%8pTȊ*J3LJY–ٲ_h9 +ukTz.?.7i<%oD,!`R8\)`. .jȥHB@H1%폎@TXb/&f:.cK4#1wsb=8|LfҖxxCCxt $2N(mt 5&j0T?CpmG2aEh9K(U/0q&{@AkX = =Y&zfͺ uЭ>HV^iPfPwމЋlxH9,4ٲ5f` ,x808!qM٠)]I l"10BTI##P$Ccba܍2Sc5#&F&G;Τ-gҖH#D >[3F5b( Ab${izз9&l^}p"F;b2!{asE +D&x#8j$,byb!p,dLY]ّ!1CHlp\q .U%NLH-Rdch +^@D3Hvgxq|Dp*жhcHu}67jʌ +?R#3I3< PS,> ؞Eq\=-R'6;9IAzɆٜI6|XdA,@W־+Y?[ړC iBF-(ӊ -A[(oq@j ȡ^s8j$,AE$h~?Xhڊ>ǁ-•a0|!St+R)5D@*zmahCFnlV7qm͐pnyQњ+{O#Ok R>5y]Nbs0 ;P^84~EJcil)%dtUY#Wq€rFtGz](9dj_8`]భKJ7HKwsؗ1TT..(rۮѵ}4f>z{ϟࣵLAϻsƌzfzkfL(քC ~h?j}CJ3E%/c_TVJ*pT_xEy\_^Hڨ;Wi YA"ҭ[l!Iv^يR9$Vd2nqy>=/<y;s+Nw $ ӟmWy0\*c<0gלuN@B! +G[Yu?R|^rrH/坑,~$K]Kn`l=Z5[7q|gUnr"~F8ߛ-cY đ\ೖ-K1Es)`[>zyH]PF(볫ܤ;dqFV Lk-zPߔJK{wWy~P'C8d,ߴ. :J@7 dzqF@` V" 6X ##  ZeWŔԃN~a~qfu#E".lйy.?Xϊ ;m HK=`(tu4G!gn_:^!B@zhCLZ8l$@ ++ @ e!OAx C8~ⷎNs]=/I֣3ѡM*{q6ljK~!}9Ym!!_7Hlް(Qppj`0GXs,D`+/xGF@ҚSШ +s=t##URuMT?|zq+[:sMnִ䂹33o\P7.B *OEtO1o,N4GO\ٞ~pc݌)GR0XQAl(f4 M)h@<׹L"]NJYsr,'%hݹv + ݆/U)|JnPW +x kFEQ`0|=t[ 1x}fpc3A&ŽpJ ~ 7%1,۰PRND,^HU0uf>7웻ñ]zQZVq6 S d`0XA#GVJ[(9 +RWvHo^0x3 bx +p`+gQ(^1ױ>9ږ騬*^x#qb ,Y2aHwcVMOb/f=-ȁ/} - `=瀾}k) +4`" C!)p3:mu@XoQv ngn3w:s+*qBV- M$NreO{}v R` 83JyMO4)XZGyQj{DM {_πY ̸Ӻ|)weUefᨈ.A]]dciI~\w<8/t Pg+e >*7E`S# 3\GHpχHn aKS[K 5uk;mɶcVރ iEHD_+߾U\'9GVXJ¬9M<~̨փI+qijL9%A0pcF"((`77Q#'q h[:-H,n#*Z_YXO +=Vy!pLYzY*K;x2}{"w7er"Iw:GSy\V[<6'Rչn%:溬'5mDtbZL\&$ +ܾ~vן{}߻<%E&gINDHJ"NƄdD] Q!c@ +d *>7 8PW% \ h`3^l:93cM|;egA :܂8XJ[7XI|0|N7w[{EkvcJȬi%J-Q#u|FBѵ<~ԠVTw|_JvV{J,͓ɯ)l/` R|Vxfm 96pL1c3Y0ߜ,/NP[@Qt+eKTe9ۏ-p +Ȯ|BpW$ %IHO޿y:~0?_(gD,rE}KcШ+)J_*=I,?!4l=Å[Pծ=Ğ [ }g OZO$o!xL=5dbBC) Oմ>RIr\r"#;@V2[kclzi5a#*Xm?;62.#:ĉ֙Li_8L+ endstream endobj 11 0 obj <> endobj 24 0 obj <> endobj 25 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.0 %%For: (Leif Shackelford) () %%Title: (logo.ai) %%CreationDate: 6/5/17 12:51 PM %%Canvassize: 16383 %%BoundingBox: 51 -360 549 -242 %%HiResBoundingBox: 51.1104 -359.8145 548.334 -242.1855 %%DocumentProcessColors: Cyan Magenta Yellow %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -375 600 -225 %AI3_TemplateBox: 300.5 -300.5 300.5 -300.5 %AI3_TileBox: -78 -588 656 -12 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 2 %AI9_OpenToView: -2445.4551 1158.3267 0.3333 1835 931 18 0 0 43 135 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 76 %%PageOrigin:-6 -696 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 26 0 obj <>stream +%%BoundingBox: 51 -360 549 -242 %%HiResBoundingBox: 51.1104 -359.8145 548.334 -242.1855 %AI7_Thumbnail: 128 32 8 %%BeginData: 4818 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD18FF3D143C1467FD11FF1B143C1A61FD64FF1B58C1BBC1581BFD %0FFF1B58C1BBC1591BFD62FF8B59C1BBC1C1C1353D858B618B858B618B85 %8B618B851B59C1C1C1BBC1358BFD61FF14A0BBC199C1BBA0141B141B141B %141B141B141B141B14A099C1BBC1997C3CFD61FF677CC1C1C2C1C17C1B15 %1B141B151B141B151B141B151BA0C2C1C1C1C27C61FD61FF841ABBC1BBC1 %991484FFAFFFAFFFAFFFAFFFAFFFAFFF8514BBC1BBC1991AA9FD60FFAF1B %141A7CA07C1A85FD0FFF611A7CA07C1A85FD60FFA81B141B1A611A3D84FD %11FF853D143DA9FD12FF853C85FD10FFCFFD14FFCFC2C9CAFD22FFAF1B15 %1B61FD2DFF151B14FD0BFFCAC9C9C9CFFD06FFC9C9C9CAFD0BFFC9C1BBFD %22FFAF1B141B61FD21FF601B14AFFD09FF853C85FD0BFFC9BBC1BBC9FD05 %FFC9BBC1BBC9FD0BFFC9BBC1CAFD20FFAF1B151B61FD0FFFAFFD12FF8B14 %1BAFFD17FFC9C1C1C1C2FD05FFC2C1C1C1C9FD0BFFC9C1C1CFFD10FFAF14 %3C141B84FD05FFAF3D143C141B141B60FD0EFF8B141A141BA9FD0EFF8514 %1B141B84FF843D60FF6085FF853C85FD04FF85613C8BFFFFFFCABBC199C1 %CAFFFFFFCAC199C1BBC9FFFFFFCFC3C9C9CFFFFFFFC999C1CAFFCAC9C2C9 %CAFFFFFFC9C9C9CFFFFFAF14A0C1C1A01A85FD04FF1B58C2C1C2351B85FD %0EFF8B14A0C1C27C1BAFFD0DFF151B141B151BFF6715FD041BFF141B1BFF %FFFF1B1B141B151BAFFFC9C1C1C2C1C9FFFFFFC9BBC2C1C1C9FFFFC9C1C2 %BBC1C1C9FFFFC9C2C1FFFFC9BBC1C9FFFFCFC1C2BBC1C1CAFF14A0BBC1BB %C1991B85AF853D59C1BBC1BBC11385858B84AF858B84AF858B84AF858514 %C2BBC1BBC17C1BFD0DFF8B141B141B85FF601B141B3C8BFF1B141BFFFF1A %1B141B3C1B141BFFCABBC1C2C1C1FFFFFFC1C1C2C1BBC9FFCABBC1C2C9C1 %C1BBCFFFC9BBC1CACFBBC1C2FFFFCFBBC1C1C9C1C1BBCF1AFD06C1351B15 %1B14C2C1C1C1C2C1A1141B151B141B151B141B151B141B155FBBFD04C1C2 %14FD0EFF8B151BA9FFFF61141B85FFFFFF1B1B1AFFAF1B143DFFFF3D1B15 %FFC9C1C1C9C2C1CAFFCAC1C1CAC1C1C9FFC9C8C2FFFFCFC1C1C9FFC9C1C1 %FFC2C1C1FFFFFFC2C1C1FFFFFFC1C1C913C1BBC199C1BB13141B141B9FC1 %BBC199C17C1B141B141B141B141B141B141B141B35C199C1BBC1991AAFFD %0DFF601B14AFFFFF3C1B14AFFFFFAF1B141BFF8B141B1461601B141BA9CA %99C1C9C999C9FFC999C9CAC199C9FD04FFC9CAC3C1BBC9FFC9BBC1C1C1BB %CAFFFFFFC299C2C3C9C2C1BBC21B7CC1C1C2BBA01BFFAFFF613CC1C1C1C2 %C11A85FFAFAFAFFFAFAFAFFFAFAFAFFFAF1BA0C2C1C1BB833DFD0EFF8B15 %1B85FFFF61141BAFFFFFFF1B1B1BFF851B141B151B141B15AFC9C2C1CFCF %C2C1FFC2C2CACFC1C2C9FFCFC9C1C1C1C2C1C1C9FFC9C1C1C2C1C1CAFFFF %FFC1C2C1C1BBC2C1C1C2A91B58A0997D14AFFD04FF1A367CA07C1A141BFD %0EFFA91A58A09F5914FD0FFF601B14AFFFFF601B14AFFFFFFF1B141BFF8B %141B60AF85AF84AFAFCABBC1C9FFC1C1C2C1C1FFCAC1BBCAFFC2BBC2CAFF %C9C1BBC9FFC9BBC1C2C1BBC2CFFFFFC2BBC2CACAC9CFCACFFFFF671B1B3D %FD07FF853D1B611A1B151BFD0EFFAF3D1A1B61FD10FF61141BAFFFFF6715 %1BA9FFFFFF141B1BFFA91B151BFD06FFC9C1BBCAFFC9BBC1C1C9FFCFC1C1 %C9FFC1C1C2FFFFCABBC1C9FFC9C1C1FFC9C1C1C9FFFFC2C1C1FD18FF141B %141BFD22FF841B141B84FF3C1B14AFFFFFFF1B141BFFFF141B141B603D14 %1BFFCABBC1C9FFCAC199C1CAFFC9C1BBC9FFC2BBC1C2C9BBC199C9FFC999 %C1CAFFC1C1BBCAFFCFBBC1BBC9C3C299CFFD13FF1B1B141BFD22FF1A1B15 %1BFF67151BA9FFFFFF141B1BFFFFFF1B1B141B151B1BFFC9C1BBCAFFFFC2 %C2C2FFFFCFBBC1C9FFC9C1BBC2BBC9C1C2C2FFC9C2C1CFFFFFC1C1C1FFFF %CFC1C2BBC1BBC2CAFD14FF1A1B141BFD22FF603D85FF843D60FD04FF853C %8BFD04FF85613C85A9FFFFCFC2C9CAFFFFCFC2CFFFFFCAC9C2CFFFFFCAC9 %C2CFFFC9C2C9FFCAC2C9CFFFFFCAC2C9CAFFFFFFC9C9C9CACFFD16FF1B1B %141BAF8B61AFFD79FF1A1B141A587D133DFD79FF1A5FC1C1BBC23561FD77 %FFAF1A99C1C1C1BBC114FD78FF35FD05C1BB60AFFD76FFA81A99C199C1BB %C114FD78FF615FC1C2C1C1358BFD79FF3C14587D1461FD7BFFAF8B85FDE3 %FFFF %%EndData endstream endobj 27 0 obj <>stream +T#(KZm`HާJy]nfU!gg5ucŔH&W;vnVAݓ\,sQC+ ]kE5`}?Tg8ia<32O 33=Xf*O.xG?`&~[M,K,hI@21öܽ^}6z7jD&@>/yE!~oGWPɰ7LGSop">Kk>zx5rE}/@[8K"Novk/sh;E9;?vtl ~wO_mqY6W@Y?8mJOQ~K@xcg-F7ye?=[b-eϵ%s0GHU^u?AgA{ݽU3߀zr9{NwyKجVWέKI^JVYtu~&?Ϲosb\Yb޺C9?9]nP8D0t.:UZΧ$wVlZW5vD͢<{~}̉{ZzZ*AfcN0m//dM;zopx0Ԗ:eNy3 +zvYN 2rRi&Ezg^.Y[Օ;q>}Q;m-_i~?\E sd,xhWc'Igc? 󺀚4j:SBu,7y[gyYg6Ӝ 83H0 +M{'3#ink(etѨO 48}(` ڞ >埢{pSvMu\ӊ^n?v}6CgE˕  5V%?6{'l˩\%R=͊VGE=ևJ HՆ MJ`<29d7i`u×_\*sU-^Vo?\rV_K YtV^o%wb0]k#i0adfUy#/]zZӚa v:hWW]~IS;TwzC3llHW~pq[(tWZ^45"Nծɋa[f. +~ױ<~R\?.vsAxqn d8;|gwɌ, +L[ +Bl0 #s-o sK&ȷ +jŐ7bO_?\/n- V["ZkH٘!p_F>v+i۔$SzǔGmr/TI8t2Vo0?{n]92{l[\Fi#-i9Leu-"_z<(z4eodl1L E6&@Srw.Pt͖!聾4&O_ro^*)w5:eƯ}'%&= CROjj~IԇX1L>/v{zu.}o^Q9k 'y542BwRgأR/} ПNH%{.>pjVZgnoޠ"(0F-yY2TtG>j+M+>r@=d~aOٌyNuۊT,FEBE~ED)&5JC#g#rbU>F؞DŽfzҔֆ8 wyοq '}|q|WqY/q*Ӊ4э!tmӽKVE.PbGEB9OU\)е׶jJ6%¹+Ƒ%ʍZbn2WvX.zm<+WeW7AYb񀀇|}8l˳3iov6[kTzcyCjk3s&\hi4\MVYnDIdum"*?WF,{Ra^yvq׫_]^3+u #}O_þObmWb^F,dqTCPd9elدwbWiq7뵲07M%lЀKI!8XD.^}[ Fy\Mlt}⽮FyIK-:+ 5P=-ʯ +Ÿ\˖`T. ]sԅ{q;B[iQDC::o疘|c]__u9jo2Wih!+/ .fߘf {U:$$o<|7|10.5,A/6>J 9%iDg\C}'p'NN3'oWNNOneU,q G^cVafwB'Py[ū3[vru\rr h!U W8j![1̭>#xBV4BCiP{EobxE}5RB~BTI+D"GDž{gxAМ*tYr٪,f̲Ugy}Ѿ"~}B@RV臶yB \BLQ#na*#^I=4ۍԩTW'+^e6g.ܲG h󆩨 \:%Q`!UV#b3bbRÂPb12_C}1?3'[j7%Ty|ECoãhF ?b;ֳEKeS<6>#ABlϲ Ϭ1_>F)>DiE义aECE0P\( "0E--PO9dD$1bFAbN9>. +5-z>dX$,e<]1N$ǖvL: P"?I&I{l>I+A3Ivi;uW$vi x&ɬd2ѳ?$Qtbn^<0~2ed:Y|3T?Ofs,V(Hw l5X7\$MIBj#[ewKga3$^h #x2RWۯMV_v +_IdIXg{E[%PʂWW3dG}<&o&w+w43$WůѤ d5,f,Xr/![1^{},i͍gk^`=?L* /dM|HI+N0|6j-Adz}2}VY\Wy\ SpNzßOW3 ]pΜ}y/<в~t]9ng/\14Gُd+JsZY?hJ \ +o%f u%ghxBݞzEaHݢjOX)&S?R6[ms{ecڮ:Y3F.M +?Ҝd-,M2ϐϿ:qRVb V?^w*Wqȃ"pM~j;Zlݤ#,`嚏pD:ƚ{ Q /7v?%գE7zr9ȶ4hBczROr:xXA?]8 ͠"fALl4^'=gc1TW$:+7^:b̗m.D@.H:+u7?݇VՔ֗^DR;fISX|`yjeO%k `pǴcÊ/W[l7M?{=G+whvxyu[JVZ4?Gǿ165>tMyTJo4!ɅNݏ^yYPh3[22ߗdr.m,9Yκ^}^+L0voDtL +sUM -H۬'_$@un6׽khS٥C%(ղ~Xz=3.wjU46li`חYՁmmԨZ!*IjMȚ`ee_/BC<.ʽ0OcװNnF]hN8εuړ1A[|&F»K|۰踷H.:NJVJmz~ cBґԐ#-;XaֽMtjk*#BZ-v<)>ޖl4q.cdu%w0qU:pbx?`֏PdmQ}n:WeGiKq\҂< 'ji%ۭA5,颗Q-"5R-9'x'Cql.N3W~ z]`]-zlyIfNw0O(N3=>,n?vh`o2ѝ< C=n-b QGP6[seGlr3 +9_׭H=Y6.-!Wǫ']6C=K&g]i㡌h3ߘw)mm?j'?aԲny']5Mlg몐rGDTif{VBp&w|*^&X +e5iύGXAPK.|yH2څ_|n8{au= wFcwZqMmTU՝ zl\9^DP>6_ qk-'F~hXiF QJ%Gz' ȑkʤ/2w51np7Ů$,6WfڴRw[VsG DʋHKrvʮs}Cqe,Ϸ>)GxVHoHp +ísb[|nDOڄ(25?|nGTL^S%ekJ%٪Akq\RP3^uՅkY"Q7qXx7F?׺wlzT31.FHD4Zm"7va,cEe /:_¦*{:pJ5R1+ɘFP ٌrK$$6zB&N j3_=jxn_$3Xh]sf.#i5YÍdӖ4"OPb>jy!z~鋔{)dp/ZYE4;x +0m4&֐j XKD q&r/ɜ //Nuי%ڪ@ E،-,2zm1ew"߬Oy|'87V! Kxx0:~:@sznؠޢX=# z\A]jqov +"v8nwzOCI\TJOn!^} 5[w`eizui7>H ! i8~ ٶ5e/ot% +rozT=_vZXOF9V=;Mog44e4wšiQ4;JYE^\m;}C9'v!:sЊ;:F|o5=ӢZ.|ZTꭂ9MPh7b\&Rתzq j\EL&׵Tl&eX8YXQL%ÐAi SD4ع3ߓzf뭜ϧvjmZ}V:_uNC6ޯXA9 J[^Srֻ)uEY*9.1cfnRj<3=>moxYhqgoU+Q&,˱tq biiQΐXPw*(H?;^+q=,4⹞9-G@*4lr/̂{1U%M|.*ӠhDGβܶWƧoʷf68zݧ[ kO<;_^ +)4RDX[یm +  b @n%@D"{Ck.;gnc7N!1{0njfZ}^PAp:kVܺkw +#`l`XtտNs(cfd jO"}4 z-Ի\Z^"[ mw8k4pJz|ɒOyLJ@ O~C,0D``v3?*Z%oõ74}F$H4Kf$rFOQc13ك銛AfS~' 3z:3Lf+\/HzΈS}}0}v#T7y.,`ώ c< { {Wn½{y> + ݸsF#aax8m9|Uʒr_l^~n^B0%䡝TK!C' ~f_>(=OS6.ʗz+8$!ˑʛOe4cg1w \zeMd],K\TrS~^|-gZ`uQ1e$q- H"/i.-Ti\ +K> ̣ݲw)y>n?dRNo͔w$ni)0dovʼu@V@\He숚nrxZ/jI\Nھ C2ewĿK=:u"b}4fy'{%;xTCϔS7PA1^4;hZم[f>棌mD5T@T֨&3:6{ =on^ ,a3+aBCj~o{S &;uq77oKǵ:jhѭr=š͎Нv HosϽӪHr8 ^F{,wv~MQ̗@sY;\u\jllܙq]0pli~-9GOIPZ6MgF_ԓ P4r +<'(u<'9'IwiBq7jv[R~_2[}` ]x[czVu[/ʄ҇DZR+"m&P4;;/ܮz\]B+M̹Lר ZiiM/ė7M}'!CwqMoa};c(QvVzTZɥQiƵQCHC5fEj 5FNّ9~tӨ@d3!1BK+N!eKHJ56pė=+H4|5n* +1,om aUJ' +XP"yCYFXoʶŨ16!f3GyjFԘ' hTpBHj Il_?~ߘ~9AЫemBg:! OiKQ1J2Ic'*<%vf z#Wt? 2+pBb$lן&Gl6l[(2.S_oR㷗좍?H ߢ;?¦z۳qг9V*X2YmBpx>mDL}v4ԸgstB6~CǡQ38:uf́ϣPZD~nRijm{p[TC?gzq] +\b*o>㝕OЩwSӲ>o;wf8gvكF|7g?Lwۧ>}pCdE5J"Ǽ5wQtrߒUr6`(+ -0;Et,b3t=ā.WyNF~zMl2h, +a#KGfiDnYj%덚ԎXŕ]=_}U˟-1W(W `cAxںI5?*>)ZYr܁k.FQO ɠ=szu +Wv,cQzC\)̡RJ/ܣZ:FȦ Wna5P+0bYTQ|XÍ!.ױM(ߨ-K F>(E酝, +Ro.:>?`]w.` wJJ8HO*n Տ%ɫ`Qnr[- +Ӗ ]ΐ}OGOV"/k],G|o7PθoYjf4JFka^J8f_#&=ӷËS]Zb`mPC^&@@ oe%7}5 b@@ qQ9~,\$?yuх C$T8uiP&X^+o+:JFݟ\ >l*z?pm||>xf}߲Ji"LG ^=B'*=WXl?d [E7{܏ 77Kjkta?Od㌗!Ō''á?+"x_wcd&B_Kk$YH2FuFpOf;::" D[O$v?&BKF_$oI0E?Mkm+{d,,Ʋao%tȸ2R'N +5CkU~W^4~C=>Kd;=?<=8{]Yz\\86 Sg,Lvm1 +o>p"wIGUv&A]gY zϒ]~7*39o]3Xzql%9#T45y9kG'BfsQI"b?uZ> lEn^kc/uew9i +)T֮6si4țF>t⢤S;`z? 6/c{w mBdq7#I#IReOzt{':xUK϶AOLJ8Qh9Jq鑗ARp?1n4&&6stuݭ/iEV,(pBidgy;h=͎˭8vy*{wN[+_|QRTtJBӇl"UL<JT6"s実-S]C2K֞~uJhf#Hrp=Xݲ:5,m"Ϻ7 +@Ne㽔 ++wWog,|cu>̿ZS̗&t^1}el Ti;^]d \gEP<E8%"Zw-ri{gon#Q- Zkg]ܫ Yai] +fq4_j`Zc'ma|^7+Ć ,*XR>z1neMk3j6W|#K*HEyrI YvqYmPK?E,6|!: *.ggQ>V6[6vuR ,At8iZEUbٚDmΞ59Շ~[Rw4'5 F:,xq!V[o|*޴3./0d9旇f<N+(dv-#);8^lLAs[?.zyr6*1411 gFԣ86P'?%."#֟BFyu+Osg͸ZU{q>dQK_xzTVEv~6ߵzɄݩNe}ZI5*Ce`5F{ĭ'^=@gup:rzaKm&|vV2GxV+kW5.to}z-ᢳKBQ7Lqu X!hHwVe! wK%4p_$'ɰ-y~H +d^$y3\N6^&ޠ;.LwcTX&7b'qi,dli؉|1_B\x<\mWMFmFh#G3RPJgFњGw(ް04.8f#vnȣ0j/ :rW Md,\Us~+×Ibt-!ȏ([Nz7vlYSH/:z^{΀NecD J yUR FcQJ~׿ԾTT~+%Iʠ;kêPBNٵfB UnsVA@~DswlYoLef(zlp!P}h5P~-rQWNܯkJr?%r\Lkܚ^r-ECˠ䊇޵pp6 빳9j5 +gd<.%Va`a cCPau&w5܍|މeܙt.?;$*v.m Rų)yX&uZċmHvlQĮC^uC/Uoa_ ^O.OInxvNi?DضgRnkyKEqj-lA5/ㆵ4| չ$|(>n(Gؾŀח7ɹfu,=vѹiƻc/۱"m-0o ;Λ+94`vx< bFE,\) 7.?l7<#Uٴ9aܶXE&>O2K޹֓+1%eJh³pR; Qyo@hPi#(O. ^Vm<7fKLvc~E*,n0+Y?`-ZEyAc2rp Jmg$!0kFiel `lC`@J`@S` `k?`aU%M-n"ʻKsw%$4. @h 2V؅y~P)(Ӥ2se+Nq=f>:|IUn{%`r: "0ge <Z};J\e`e `[i{`3ER W; lCB%`Ŭ|{9b96Lܿ~<ƶ~A5ߐ~mK߾JkDHOo}gGgEw?+#}Lnd_IxBhu2I +ߊ"hIB65Ir.Cke$A[3Ѷ9JJ]o;*)/,P'I: dxCv@Y,P Jl[F̰Ռ<%vqIE}sW+z~qZ} r +ngݺ}5uFYI~QY9GٿLGYrxp1Eآ_\;yzdQ7ƽ釃7ïFA/1YّωigV*MToAu|2om:N]wEޕ-QA9,Ig2,2I"Cf̝Z5;{q]b|9'1O}"OQ!o16s#i-Ғބ .ͬ]vڅx\+  17ߵM&yo$V~]f QYkUܣzZιg'L"_aPvUn ;f5$i6t^_^>p4aKؕn0'aP1`hXͱk Kj\*VU_u rQg O~Ls97<kGI9#6 5]6{ dI[ίt4k ˤRX,q:yv\[2瞍lQĬ=N8*4 0 gG +tA\ cT3tSuQFQ-Vu蠃ws s]3ps~ӗgͤhfE-aeڼGFYO6L3_1ӖR]R > ,6e:-%ʗ//͑l+őxy= + +[BOYUe). ښ +G$ +<ݙ,l-Gr9[lVSM䀙q)fe'WeSzg w!"7f'd4)䵊%̵Gj.\h4t-dJ ++jZi"XnD6?|J* ƃѮ$@BxGr/Y!| VN_<:o?UF4<zth L},sn{>YRV9tӞ|6*c/RJZhb08,, +1T}iL'pu 8~8~|-p6%UAx'w6uXn_q8%ge<˪Zm_h4FxJc]qYV& 7ANԸMBJ6}Pfȴi}>\V;ȹEcVWyjŕNʔDih ^c]$}yD(}ʮ|mqq gDns(#vN_W}#@3Y3f?޿K#%w[r#8o\~j~t[O& +S :b/<^'sI攮1ʍHk@kNOeFN6⣰p"-@Q̍2'"2g?_ُN%%Wt/NHD;k~2].z J H AQ1(& 9o?7pH EU괚h1x;r*^vj]*|~=cr13- +fUqh",Xf[j[[}[5_0_Zw]7FGpy=/?|uNn梖ᔩ55P񫄮ǝ7Vn;\ )~`Æym|$| ?z)sM՚YƊz$ﱺ%lj/_ܪ-U\{bq{`' FW^DMCf5,mL\FobwL\,Ž]%/ѯ)^ƅD//a=6KjD8azMӝEa>VI3mbz8k{: ]2*|2jA%=e +Jɨr{іS~R=vEDꟅCz> ~E: lbWeƛOn?xpfwjXVsҥ&eC:6AUˆdN@]5Z8[IG'tr#L>ѼUJx(dk0N5mxpgMi]`վŨvbWhCd6 >Tdoʯ]vL\I2"f|i,S|(&# +-" SI(ǏsgJ:!EQ.rf |Mds͵ +'6g2?sR)t %u:ܡݞHЦeEm(uNvdJ몕1v~ J#m^kwiAo4Q/~fȂBp>I*k G2v˩hQp+ĥ'& JrIhzsqz`#2_1%CHբܖ'/q&yKmCOq}opҳ2p^S@!͑C%\4rtoJ=~Zḏuؒӯ0MfJWO1:*xNT>Y1R1puzpL?pid(U%^``drJ%ڽk,wR=;>3;{~ f&Pd +1 )86pgxoqM.8Vz/vCǬ-/7]t +_˗/~K2Z1r#8A6wZ-3̺ ةH-CvB҆.+b5/cfS+nhad6 : ݝU3B3ǏVW4?47QZo n|SLP`U=Nv]F^*|jefQNekL+=_l TNXxi***m XGXH=3C`^[0, tZf'gsgsm3l}=gHwʝcv3Y}|*U{\F^DWOox{(O,Pz| (׽w?n$ "6wfgZfRO[z$WK|=Ŀ(to( CAB:-}+Ik̟RV- +\Դ&663b.VM#mBۯOB8&">'dԶaN ܭKPu"LHP0n~k:^V2_bu4`;?_-L4\|8aQ#Գ/~H^w1_JheWo Qa6/ᶡkx]by=_ME{{:N{^>NX?Bn\={s>]s 'ĖvЛh`uwf 9rzR!2y!n.I .=sSI>5/ m ?ifG;wmgzMl f~aqq%g2wߴzCEJ5#jp5#rmuϧ %xf若1vG}lT[#ָum1 =7VƦLQwbn f_GK5>D2>ײДؖ +W 1w}>$Q˄/A0i|}!ys +N2hO}:B;1am}vsɲC+:ՆMufOP6dי?jj }1RV]k9lü϶sxVl,tH{b8J0SUva]/XqP~ }|MzCs0glmn}]y|cOsIWw1ǹosn"q~{ћpk6}mln.'9PF}byX&8*/k~F'jSnzgN;^ldEkFo^r+9"YZde;;#u6ɼOJ7wADO +OhwXTu^!ɝ ٝ°m7]\6ȧ4`PhL`ZCLoAػ\O;S=Yzi79vQ{܍|{'JީB4莆;݂3}w:s<:RѢ1eZ=z}ct8Uw v6l4arF7ϧɱ{Ps Ect5c'fQCe-͡:)ܪXzҺ+Qf/XA:iynrD._atq=vu 3DQo^Dϳٸ4ˆxEYPZZj7RucR\iSU!Ǯd{'ïO~Fz&:WͺMvi-]uuwBr^+6*ou բ =qedPrG<>j2d\1gmHҥnNSGU7>,O>_.~j5ærx?#w!^8iVk4: +ASmѠrHB%.{M_RBҦr!T4Mel<^r2kJAW_YۛNe'_|v1O˼k'fPM`o4߼UfF}:^j+6tZima{Yѫ<\2,ΟvEY}.]hpsyor3n2m:2hűnÃ}MʎoޕA)gv=>̯Z>Z35+>X T[-MB@ĂDy6D>6Q;X8=x-БY][| jː3*lKY*GК.#OSie_nLW[-> 'YXw4@4x~& ҰxuM! V:COT< xpypK޶)вi<_Or pJ)rkRۅ]r+?3f"ovƂT[=W jX&!pV賕tcъ +1YebE rngzl[ړ7L*Nٙ^!vz◠֡~^&&1a{MFE =eP`ki{ч<^q +|\G=J&Ɖ+nJdb ;pw":nU_/;6c3(}W9 %C7CQ\K,ɋJJ}&ڧW[ +b\$wPʖ"6e 5 +LuV,؀) /ƢXyfX6߿.7/ Usi' OOrx ~ψ Nm0RP0w4$±ab唂U\}NpP,Ñ}y4Y+Εyׯ ptBo޸culcy$O{bwxl$9oX4XKT'*M6·Bq;pB9;g.O9/< CgR +u!?˛´+~,׆)nk1ϬY\7.#-DNg<٪Lv +f*"aٮ +X +蘉WkȷjZr[[|~`*|] . Udc~G{6[j ptUJ1RL@[B<[ڤ꿵 +n4<@-}) @9IB|KE30%Y}Y{7gذƹa乫+"00J։?3Ro0[9^0ׇ4lfs,$~R f-0>tL2HdWs)RXi2:A!g␘J[#}tĠu9[oxpY + Kt+pī8iVpduܱ.1Np6bn[nGSFBkrɴ9B8Y,9[ofڨpsʪ +2VT|C5k% g?^:@}1B|K T-eL_"[1yN)>sEDy}lg,Ȍ-i5kggCP'qWOS9ܯWe" e[ 3<"LUy Kk# [{ ^(=0i4zd9pzZ"?E's.M >OV~Uuu_vC-JS@!&Pco_o![Nq3UrLkU7?_d}=>_ߥ&)^ʿBJ_X"JanR̟Bq.Vl5~B÷/2I O"VG +E3W^FdBo=?}jlJt}Iǻu @7l`'o]ppqۤ?u )]}UxO ش+]:$ z>p_;wq=׽p+_[IrLBO33?n8X9 A?/ϏΆuK&$4m\)B/;w9B|𶡵zL\=N +yaV!wvy@zv-=̍Ck+{۞3IsZ*{:/&R$Cj 6fְ{]E[aU:ݍz%Q;%W<tC/i/Cj}_|{/<#t0yfV}FSb߽M\L\*SЧ[}GMik暼ݭvS[۽RB7< -CR#a[#ÃYCg v4č|B_۱Oxtd$]JjcCs ZA%Ț s!RߧB>8 nh + +hq~惺F1+HvבĘ!f0&=H 'b ?C6>\{?@(e~)1#r3==IV>?u_.ouve?iO۸?a{4z!m8`^-t]*umҋ{QEQEw[Ag8zg}fCw07nl937wtYH]n#_C}+ukh4kuHVQt0kL[v$?ȇwkޞp,B!򧌻c`̼.9tձl䳵EQmVkU15^s\~qob`o%F :%w֣^at";H ;K~7u -"!ՌÛd2pž쪎Q#_ۆT& uujwcQcmFo86n4>1q&kBp +;(ٝiWot}/t@*FTjFi\杳gUi!V]M;DHNeBf½D_Ƹ@Em>' /:3 ͥjLgt ӦmGlAgc:qny˞~W')bhO%H6 Yi(l!Z T^Imk}+wSjìE^W7b$1bpj&馮%hxє?Q)OJh'nzOoKf20_3r{sVPi˄m$<_FZ$[݀Z]B8|VqѷC>fJcK=Z7-kMy̋z^=XVMWy,GR+F~NbIcq}f7w`5醭C/nsτOl~?kDQm-9}M匡Wrjz=ԊWFK)ۜ^}^ofro=(A,RFAt/V8c 32* z8v`u`_[=7Y _(Y5?}Be +s9M䜑K+$uخ,wOA{"vUd L7EyPd0e¼ _i}!AF}F|)\F \֑R99J(r5S)\4ց÷I_K#}(VziCc<?x_ 13bQ, +a><4=ysWa7h,s F*L9!+EeII,ȸiRY-L7|'fr\7>Q~Ogˍ=ʍGq%j8xpyEt$Xth6IOjhlr5O޹2Jq!e|g%Ku9|V"{Sې-%mi֯Ȼ7o+0;;it&䎱f"cEXA?ga!WU 5GI[Wv6[L/T6J|E=l☚wgLDYDO]x%p5SYָ zp: OyoY$ &Hz84vԾsZQmePmf_]+umܿݏ7=Ύ~[B?իcճm RbvmZ_ܤ5r((˲2hF7.h2c +DқKe+ś"+H`p]4Y:(Zy\ŃG1w:Vw;Źu-.-W$/v[ާy\l [ijJh a93!fVF#jYT9ž'ustl9E\,1^.&K/vz1ttAZlL9#˅UlNU*Wɨ_ CԹ`B)??pjh#>m/! {xi?JNk(b*;mt؅ٜ4W-3gEOhau@(y(mHa46` phKvYC^咬Y)ްu)LT2k}C9QuIvبYlj8kwZB ~T &~-U4h0@pG@vwVq$땱LyOH@J)3  +@2. Yk HL$Fm)›K9:%R3f_ʛx{cȭC]EϮbp0q{g d% ңPI58@zwP#HqZj?GfAj^<jPf;ܤ6[G[5j'7|uzmf d"g\}0|6RHS  +`p +aD)ï[) +0U8Mq}F]a/`S+WTɯϟDaף=>f!0 ÕhJCYO?XeÍlU#3Iπ.8ox,n!q 8?Uz p\R)zo>e j߅ȮF%f9xScVGRs:#gYIWNavx_Qn'左c-kQ>~mP@`u ZB~)9ߝ!A@b#*kWcbVg|WB;hfGײ 74@[P[Dc=);I! {ƭ*Nt܁y2@ƮKxI)vMyxqjV^,o1 +}WZַh84y5ŷڶg|%!O]n<{DuG.9p~Г~u/5K"? _3[NXV|~'9ɽO#*y`zwy5񺗢Ǖ |{sK*+~?J_VM*e-]gfkl8?̝[_ˁ^WbX =gnTNAkI߉8Bs!T@\5u`L_?W#4?D?[U]a^ /ev +{8rdo=d9hۆr+El}U@2q덥rZz@ ͑EKebC$ifܭ}!y]ON̓6VST?սq {s37s$LQ-f3aK[ +/Nu+E(LB"e,Uۼ@֕ݝqk~n*WzLZ80<rDdLY+7uJn-ެu\|I?J qT!,7VRML>/z{>| huf|rgk'oC2eXyĉ~$>]GG3EڻPD +#_vQZG~wԻ%b ԘJqM +v3{/l}q}0eFywc6.eWѽݩ!i (Eߦ~28滝ۻs DRWœٲ 8=¤zR^ uְtq GT{}|:۵d`B޸j5~3=5@.®f?;n9v=0̀}Rԟ}P~])N瀜|ng^+F ldz%uʡNfMqourn"dzK]vv{_3l buk3d4r:F9o>-*(lGT0.ZD7+ߣglWem$M{m߽B1MRlx6G!zXFgVtנXZF-IfljAVJf{F&ٺ]yK}3w8v~F2< *}Jن|cu5̱5}ZT9.T,u.S_if{#PNn1Ndt`ͼޫn9]3UqY5PlZdMRdlZ c▎c6g}^f}vvƼLNXe'z@N=(TdJ-MD6 ޫRs+qb=ѭb#kr^Ѹ?}xiȽTɽʑʽ4ͽ89/ =D"%l=,[:1/-v?X)`lÏ?dήpEpEIMOw?/37"N= +;իHoi *ROroTL$## \5(mo pCounorRREn +V9#N]04eHO pʄ@r>pf{`mGgr2ާW^Olҫfr̦ +Qcz+MzM:Znдng6%( ^٭y +ܻN妌qNҰ` +̢ yLu뎙\ᆪ baԮ.Vإ}oO;SvhncؙI;\ug:*zsJ֍;|NB9~`nL7\쌟>Xx~0 +gp^l&;&.'N]_M|aUGSLH8E88 VQv2h^~`(tU.B=E3on:Ƶ;uf7z9mT6߮TxUW-l~#Rd~K.ί}J4{#YffZ\vex<:CMGNV *'e~گkCi3xu2>َf%Õ'XC7e>#N.;;s1*۵]A߬ I+d @#~`#:1c=}ǧ||؛n)7:jSOkn!D+*!,B&o-̡^WY3]ωzxV/~q̑cͫ=,R{+Ynnj"f9xԙagf=@}0@rŦt'. 1':ʬF-9 z*41>zX._Qֱo>4kƿ&ù? E%S#Zy>3뎟zL)K(3j1735@*bWG:ZC#+E?Xaګ:JNyCݖT鴣f"9/"~וD6I[׹+*̐nXc2j|sF?pe?b< hR9w]JuvU +)M('}bx^ײ +ϰ]S70Eh&wA/_*Yy"f +*IF̄֜,L;]jN^K.g{[YB}HVq;jp7nL4"[/7nZj]U:fnE.oMsI1Rb$G6ioXQz(lgLi/OehO9ZθLIm+SۈfXsoWEY;Z Nmsjw^NeY{L06lv8Jui{ii,;\m˝uƳ1k@RZգR{F+ \GV^_z',i9^vҜcޥRŕyQlֶAj6.Y;$3׫B2 +'BT_m"~^֒ g#>+H̔_{*YK'Úf#P,ͧ}2ZHמU]7z-p173鬘L7p=#bisaձbu?NmFw/'A7xUmږߢ+*-ګ|H,ʯyDJUxh.~p W,ίQ2 K~`#m-=}zrzY/M:*v̈́IP/s]_%2n˺_:%璧س<.6%]NR6:CnY h1èLtgZ[67+[MVZ2RyJQ!9ڙ~/jDEPmb5_MqtedV'Ûf^5nQ(, TٰzH4\eyP@*Ҹg ְ|.%Ʈ,D,;!]'pmbFe]o೎L=/LtCQSH{SI.78MdKQ[\)n-9֐%Vib);ϊܶԶ,"XI@|uU7;jN[ҿ0eoٹ~+[:뼊Πm +ѠyȽ%~Jc9Fe +r7Oi6g|V@n׌tDŽԝS9M|p؏N Q.aD/!24Pԁ|'V39~Z sKblwExĠH&Re %2~ͻ>9Vw*Cj$G:őaIy +FfV̴|h߫%.2a1aʼϮ~udK]b^!5v8WTG\d[)H/ɩ“q VM&VSx]4ľ4z3\T+ +9!sֽ7fi0=+fx1NљоR[o:ZyȈ7u=-f W&7Wږј6 v%=9sab79cxcDcAfjΣOL 2K]FuzoTLu)>Raj?沛obq,[]sgq!&sZ8[#מd^}lqJO0,W^TpB:F"Hg2+eN"2 ;ɞ)DZ{%G4 PDB"ߐ_xtݲ3Mv +ݐ~gDxl3m(-R[me9?gaFOS +қFt6,nZza*sA K4<_>4ue:OtӃMj#, r^ .LMZfEFd';Ɉ'ԆuK89p_MpLCC +ChϤpZKMaU@ZSp=CZMM᎓:>+Ƀ*<'lT +,@$s)N{癋tRd f z;@@6T fZKr`@A C'ܶh(ΤhRNVm_&,\GƱ爦rA)[Y#3-Dmo6y0N*RJp + r-@m'S@ +w@qP pkMʹEzg~%q.@f7NWHcAOn) 11I`w1)sM`qhJ" :CLѮ$)UY`/5HD 0R}kn%(miR]#ӍC?G5<88@ - `[=`pQ=o`be #ab,R؛]8\`h&.!̘uZNM1S5q5hiL8CvKK +, )M珟|$ Q]V|'~\y!Sw87y 7!#*or^ԸYZN2ܽE8 +EN;̟@nS4Y%$}<8D^b]qw)#$ZcJ qDH|v $N%edҁxj$ՂU5Gl(/嘇K&ؚWEu?rooM 7(pJe@٧\yf&P-PQ) T 1 Ƈ~ܞw)c3?4FО?.jIok&M*#6@c3Wzi@Е 荁 +f=E@(н?jfmu5~#ҹG!=mtCUr4wm yxo +_W3ZuUWv2$5A_ym|lno[o6+ep Ubnm_m꥔ZsW["T.t(ףQDܸ18`qI1Anսo@YF[_%+~N߅[!PTQ6e'訡sH'e~CûLF4F 8#ow&3u+KWV,v|z;+~W^ ֪:'*5+zGW^Q_}]7;\ vopysRE[ɃU0C tN xW5.w/ U'g9t:+fgGIFU +"5t̊)~Ye6eDrF-:'?$|tP8I`zbe5t/|lz' +!jޯ8kq\C}k͙u>Uz0Y|t,aT%΃[z= /MC3]W|تvN|}[jVm]E^{q|Ӭz;GrQ{Bq=Ԇ>Q2‡'#u{SCE kv5;Ia[[iO/PP1-#U~Y} -FOꋚ֯ٮ +=FܤbuKqg}qϟeDiDOy(+4/tgXw] Co]玮/)[nz|ꭦwR@VQ}: 75;o};Tp);R*,U"ԩ:o).Ar__|^]xfwRިX¡ӐzuoHҟWֈJֹVkR-Zrq|=ըF_QI*, yf_mgtb"KX^ElXZ^6ݚnUKWTnZr^7"p/GV8R{~\W^_t˃܃-Cuڰ'PyJMYbr" VuN>c&l+ozˊm +3wd:M弼 Nr<Ԋ]ʕW4Y&jTuқ+Ov;JݭBw2cEypMLle +wم#hmNOưɑFԥ蓉֭:Ÿێt:]tBε`b}\,#6(TW?m4X,ؙ6y_o# rP^)z/=*WƂ1n4#}ZqukYj |4}U,x$8q10~W&}fu;~V^~CNUs +챴oc>ﻦ8кyeB4agofԋ!#WV+YJÀ qIO>;J=4|AnmwwtQku\Zx_LkHmY?XbUBIXOLii?5wtiyja6W5_z*R^;+ %{ٗ,]l^H$% +>7ƭb`8`*"Xd拯NgY+@4 +jIm-9ZhֳT̺T7 SɳSbs,,d;FR'5$tZtLԊ5Nxe&08g+B]s77ק677[ng/xxeUYa@>SMl2(t}.{38ZVQ|M>uY#9 DԺRxYA"͋[L^BuC@PrnK-.~`v5n +fP4KsujzD]of<^lzS^f奅8o軕n_±bUGACFՙOCvSn+nA] +SY ,aX&:Sc.Q`4JinMhnBt kSt |GK}S{T^^}l9:+ ]gΌT}Y[Y'\ۨB`2k!V +gvi/:wܒۯ~؍{Xj9 ^#^7|d'IЃJT:X4^)'4`g;;JDm6nN`AaIJY)=Pɮ[am&@ X^3jһя\/W/ș<$8!6ws|XCkYC:l_ʁlDaVFq |'Xe>rs{%} ٶJhҋF pOb4"mvn[Jw8s%jm.lpHuha8`~ zK>9@QnP4NO^ހf%@ @F 7IJ`Exr5.`kGykdžd9^lQKr63p%1g.ɷ}l &t<$n?!@/ 2BRt='cXH^2f~UZִ M,9lֵ_akX)}P/>d^w8DkOg|PtOHQ Gn0%B :0*x{2pL -]'GQ3+*jBH@XTu <6E 2|% &&@O- VV>7(_j<"a#H=|2FSK_ _Qp_ulYC ϯ C E#@e֫o3J{f>6}vɪ a[ ƷBϨ҉{l?Wpw?y 9| ԁZܶ kɞ)j +4t\q~ϯ&u~~7l&#|3bݲD|{{ߨfJfx8.w~b} moq:p%~^V{Q}ǿa_G>ySm痹nmfu+(e'[ԅ[\tk'`4Α9,9mpQÈ^/s{~r~>owpߞTu+PdZo,\lzs3z2?;?#O{';SX5ę2sţk J# iΔfŔ*}گuW +?cR~]ӧ[Ԍ+f*ਯ!=f/u+>yYZDxՅ~7#mϡ̬;.tąxg1~£3nY[u +{tx}Wࠌ!,go9T†V7\"*y>*D3^zNѡS13gbiznӢ<8m\>:y;cvbz ] +%9Y-{"m^-z>ڽz)n**?b觿t }̫Lc|w(oج?RMo=dEA`^]cήf:uJ#c3\TQjm=nH3:Z +MhiUl5˺֖㣈6r.2q=[MuKi=%V\S'o1bnGn]2j=Be2l +iֹ1{YALhm8]aTR{˽49v$xP,^ s|w 0="o!+>wɶBJ6G*ߘ+JYVs2^jZ\#juUnKz?-U6**=*gz,&Kf0(0UB4@bb !AW{s~Hv)|S<&5r$& ;>\pmGU rW~L"Ś^<򶉽K6%"-V>,rå tnt6{B#7ޚl +斿/K8c9͢hE'kUsF_:z9bεbwղS+׷:ia+P9Qʏd؛N:>ugTR1X{\%Y5ަ_w~+۫^N[Ɛ=ݷ~`w9=dmfV=CSm$CiF߈Kn{He6xQB8)av6Yz/M5 L:Es C?*[ݼEp2qvO9hƌ5B?7k FGf;A g+PbqPeBNP˄>05x䤕'Smk0-]MJ|$u3K;"k")/HaWwrsNoDW[BK%gM-ՏOUjC->WU_ +Sո@7l::6rJ%b%yݦdk|"~%[t:ȳiРM}d +bS)vr+Zyxs+i*'%ړ Z)&:3\X.v!׈5u)ynXމ^+튘0v1r+42g*]^Op(rpULt)O`{! +p;ϖ'{ ˡ ] NPx\*q(joӈIvdA=ڥn(|mDt~:)56a?0r# `!7 DJ06!͏K>)@ N2gs(C|1͝5{~%\sW;V60Qԗ +>"o(&H烴UI`Rdw%vkm`i<@{@V, H II@;%dZTE>ϻjʢ*+B!Ik6闐Eڢ!>OBsT f9``Q#J002:T G宀S wPELs;A\!tߎULH}:mLNksG?_l4RRt' 0╠66`f%`^017991g` +7\B%m5NB*dƦ2w:ˮ }\F>n˿tf 8u\ ӀMT'&ܢ| Ip37< 4Վcc؋l12`g>LH}K>D2 XZVl>o4Gas| YBgaILg@81;i &4y]0yE\i@*֢?[=O| ܴw _o4U@֯ mȕ6`Gt1y'܁gWVo6NQƌ';8&nP;m >z7 ? _6+e7'4}ܝkC@vLCжOi&wWF%D?mߌXO ѶB@rnwnj?2b6PՁrҬ+8}( +.N:;]t=[,},۾(ܼ[ <=@0ga6Md7@B^5W,54e]d!{?)IUk?Lȇ.,fJޭ#VKK(Yg7l|^LںnLk.㮫;uQ추;~ЕD+K{Y6 ߻?8xyi懗R @dpH)Nmâd=6T'nnvR5k6*EӽYitG†7tu}nY&LuݾR6]l6;\w\\4\Ғ"RP׊58&fyDR6Dr9 לJ(C_,5;n'|@\ʣ楾JQjxw Iʡ9hfꗐ]W,3 +E\+B]cX̖h~an9S-k<6fPG͆&wjq OLG[]f⵺d_@%Ro?[_7ke/vTXmU..zl5?|ywsO͙᫽2cb*f2CSūخSj\SWe$,d5#bӒHs)y'8 T;Z9Y^ZטpT7YۡP1nzQ1ż>:kZ6j(P+HōBIPq .zZ: R:Y<[{]4 +6y5{׼vButY~)5:ʩ奭#ʽ_r[AFR+lP%7Ξ ͥ}IȾxՉؕ+!G_Z{.[W/$EQAQLsyD:JU7ڛ&0T4mAʪK[Jr|q1Q⋦ ʼn3f0q9YGZךQhg쥈T,.|u4e;Y75Yj)$#q EWd[N2vJ鍵RH+XqQ@ N>46?6׍ ; 2p Jo~ŲqMU[8f*JI-x1&֜D^ߧ/^Nǂ4Ɗ):`mRfy"}!˰ Xm͚ypAsذxACLOLm2g=n;Oo~]߂hv4"P vYze[E7 +nYM+_˚<#z6yJ\0\W9jV὾f´H +aU]omHPϹ~DSfA=z-mƮR^]6\W; 7scXgriOKAs[=֡Jɜbi YQ_:}[ztgNQ1ʑcK bR%|Ab%Gwxۃ~rGu>@h"g6XvA4IکZoD|f9L+XDӟYf5]2Q-JXM1Nܱ"beGE%npl8uiqO)Ec!am7"*ǡ\*z,,zy5q]n^66 +oA d2RP%EэC"BuI3+ ;Nm[ 㲣Ak;Fky-8}u11Y({P>miSsbI?;ޖpR7Sc")HpձdG%%0t[6N%l=X呌^e ,z iQ[ +QI2B9KEj#9+ ,Gv)>(#U 7uWc{.m!*ޛfHI~pl3RX`xg "**rzigD(l2ܦ5 5 MSgװ6; g{V?Va[9I/KoBaҷT  &`[r-[zhn TN)%7Qߌ߆VȄq3(#8mTN|_`eϏv(t+Aw[V09q þƯ26U4S 04!/v'IDHXMIHUl +VFjl2`|g&'Sh sb Yk}@U>,v\V!5斞U|s`syX~|: RF{/2dFYr*<UMi(S9`d$x0* z P`Sw2jh+) ^n+sHP V4:ȥBz=%҂\Mz6[vaRؖ9ي + ;@YK f! kD?AmudX!YӀ,j% m d&B9 <Bj&~vUjdyM%) 3yb:&F5eIӃ!P'KI>k3PÍ ZMS@kPQKc%A{@$nPa (ڙ='ypu'fI.`O4kK4gmgdwj$á?@9'AKP !2 +#~HI-zyz5z ]m&K i_ Բy 2ŚNm4ʊևQwZgΑ 07?6 ҥX'Т^(tX>$p߀ `s]֬$X @̅3 +3^a9Yf3.^E)FfVPoU?yT|mk>߷GO3#&A`yd!+[A&L1 YwW5~t7xz*_+Z՛}#/,P/uhP"@@ݛ")GAL.g*)h*f*{WWf6|UpۿJ-Uf 00[+q0קVڳLuDu~_)MFfVF?;裎_mBZy AH_`_K=oBpz).ʌ"7ZW?bx~qb\:c❠SXp}On`7do=^m޸MkzV̸&=[#I~eo7WU.mOOKKM+xz{)p>X;(ۛRXm,]schDc~\ߢYO@GqJC9M~5qSM|qPP~\;0ߴ_*/'e=oLwnHAR> /M5~׶DÓ9 &`1=iI#nՇ!NN=hrb.*}kc;yeNKzDBY_7+Ioמz9᧋Ӊ|*M^NaF沧dU4En˵mò8f~{.iru$IziTmwfDM^-{j.ڹzyrܽRw= k +?H&*fﮭY_`L#iCM(kTru? tjiׂⰩnzj<݌Fv|{bao7 kE 1qRfmxkd"GJ[ck97'!_5Imf ĺWf9/n{ҖӨ]Q)s:XbIB4H_f ¯y4u8*ijakaETFw1+%&j(΄Q[а82^ vDՏWa^soM=QHD %/5/.ӴKs뤻q|SeweV9ňi\)t=^w"c=]ɡ0A( F_t#l^R7\wt{ S b]69Uz3t`x%8}z!Ŋ'4b5kHmZ<1TRځK}nXf ;n}=o= Mo3VǸ%wBh 8ߐ<#(#(EW''ֲ`p.A=C3L 6ej +LЭRJ605Np~N^=wەfzz+.Ϩoor7AbB+q҆tFwK +g@* =wh2>RIݖ 0yM+ <$31l +`]L 77nI~9s [5wΘQ0WъӸ|zX/UoZ”HL'W:H%$'-|Ӏx}r1;Np|Tm 6SDwlPtDعUwxS_pvGl!*үT#FfRg}@Tgm<<83UmPޓIRy-a3mBVorR2  _'˷ +ȱ6d?hoħop8mflmѴsL9BDJ)7%f//>lmLN@,|BUf @#ˤn}U Z_Ҁ>`65~C0raCs( +6X˙ کT寧XOjf vfL`b+L/NPoЀ +0Zs(͟:p)jM"'5~0Hj19?˩Alf9M4YnPoډƀ+sՌmDJ`7\6ǜ]V>JfGa] /6,(dqկB-.v[W=ؒ~;rs83 w d7O5E-y?xC Q)3*Şdy:+@h=o")8TOS9oozCCe86_:Zd?(bԩ$%zeHBOrXϏ(>Su oW/? Mo*Sw:鿂5~ou (*4lV@e!TU''Yf +PAnUZO9ݑ$2NͯCq2GJk n}Up%~CۋFj~a090y Q1F?$?nۿeFGz'r@]gy%g[QNw8}l p-\}I%}})mvCo':k}W^nw&DAB7ʩT?ȱC2}ƻwwND̔~4V5Wx^[J)n~P\yڎ1dT)M ~ʡ@b^p̵c= GnĮ6@X,a#f=w+ \6YANfӞ#?#mvPܮЁrJ:4uúyYx2dzod]R:dP㵜O-ΣÐr(_kC\^ԻLKN騽Ҧ7S;D3T7^S~TUty}'jc`a3eSwҗz؅zq@Hn^sq'ʫ/m[ܶphBgRk%3^nֆ^ABPy0 Fx +llŠLj__jՓub_9ufD{4V@|3єli>V!L-6M:)ح*(m+V胻*r۳/>L3c(\=ϣ1k7ip*-^tyze Þ1:TZu+pIl/ojE̝y;uԫvɀxkazqXIe=-dr>&\!\`D-/ڝC Յg?Z>qeXnԇq)z+xHy*DVwa31T~٘ry:sIq/,_ɞ&n'bE&DիV|[{˒~ntq( tk{-X`0oLKQzU-jaɡH3#ܦkb{–ΞF!"9s1=e,~o=.m m- Q1cMKwx?%}9 / -FZz+zQ#Y+8T#%.nl43ITX[RTMQ#=L:ih?웓p91rnZ׭Agݷ"Iל^QN\iV@QQAQ _QLMfC%tfAhi6U8Wvr1W%j鑂M\I-)g 2+S6RY PO-5tF}4O:놹_@^}*Juފv"0Ђ}K K f6! t0/,hͶncb5ԗm +4J(*MUz[si{UV Ǥ)Hsĭ;?ROɐ+#ccZ\så`3TB[Ꭺܮt(4dYo*;%j= =}7%YpZsxL +#;Ǔ/ƭV0ks$XNV֞AhO;th̗ۼTJ0oVoI41A1Nj+~5֔W)"*d\6o!n+IQVת +fc޾ASֵu 2 | XBvRd;dKA؈ֶ5Ԋ O#- T$D;6ӿZϝeE? "ޣGFJgXLR t[,}x0n TuYX y}Z'ŋG OZ{FzVWQnCde5Lj^ovMF&kR5+wnYmh]lqtJB92[`i +21>3D~6ZxqۋqF_1=1zΡ=AЀ;\@:bvSkUdiEb vyv'VV~>6*QdsfvtњB抄9'zᖠ YH.8ə21y5FtFy'n#9!Rf#YEaoF$_pRNUhgwY<:C|J}b|KHtS 2@H.A9%<c n-ɼs7Yr Pǚ~}VG`J 3"}Qlk*2]g$o}o,nt|0] +}^=%{nEnv>.liNx y7w}Z LMCW'G VJc/iWX9A5\x`ul>Yx5x#g{0p&;H0^V{\= ޫ|KBI6;eӾIa_ QC0J >')@5sϮ% w7)@<y @ef\L뷀-U{`Ң➹6uHuwIղ N (Oh@nV< 'k +h_[p& k8 H72mn:ɗ^h Y[Yb[Y}ǁ#TW̙qLT6N mr> tZt? oG){<{P+Ը &)?`wT*l)sк=4?cHHb:n$h'Ŵa{ S_|4v3#/@z,u6`xas€G2` I'6Yu݅o.pre㳻Zy3SX;^f++Zs\gcÅb8{]P5/O|' XzNSͽ'xR=7-Oe +5l-Jv=fƮfEfu +ʲ7G,8ʇvR?ݿJoN_MtpfMv__pW}ٲ` En~ՉqzJ?ipAfm_'.,@'} f@Hp2@|o@<E6DlO1zbq +\K뙊ui ߴ ܿ"n|<uTDT8 +(!RJ@i2JZ幆\W)V9\O67+]W,|*ltOo2k>; ӫo' Xz 8?oO2¸q;.]\`{Ny?ș ګl9*q:KʾG=; ;Uh;_]hEMo2q_?/- ݇F{%|+$5Ww=Peru?Mj:Z`[sRI,KK-H@qӉU v'Ĵ:D6oRԷyՏOڏ7\92鹷N8!ZYB٣w1b 1̱1=Q ޓ?%@9H/z=}z8ڵStg,v ߗZ׼Cʡߴ)w)zL%X 57x@n6}8z$Yi4}eWOS'5EY~JFlεMmmL^3VkՍg-Mk]S(϶jt:;n .d:봗צjxf{@^6rmT+Ӻ؄hk^%T\*˚WЧcT壿L?`/gՏ?y1r(rhw,W*7a\΅jwVĥ^G ?F,B;+,8RYO_ܦe:iff3\ĭ^߻U'mK* D_ c6.rZ}SaT8wAPj:㗢t!_*BޗO{v*Ӑ *̵2Qf \Z=OX^Az٣9W&z gUI fnk3s5,;pnJw%8A%Ke<_BhVCd_Oϴ)1&Gu:e2i| =[]bt%}K"׵R¨x^o ŶPY&֫~+jtw*Nem|i aZ=-5FNGWALϨ;M-Fޒ/^>gNf1Nuq"&^88^71g7y!DG?@[tqv|謏) bEn5]P:*N+39ͤ5^c%}lyw1/ 0ct̮JqJ{F)Hm1dMGp3e$>t((;hϔ +]ÑxTŚ[g+R<$qEr"y\X.ei'.ɯ }iqёB9Apl э\:@;2A>uL t]!JT{ާ,Cᚱ]4pz$X)dr Kߖ>*ʕs,PX3x5mLݠ)KX-P,d4fHi|ʚOx$nʡn' ;3EpMʫzuWR-:׆L.&sM.p?qE7ٓPk}xcFwc]Gg6N3E*C'Q]A!?g _|z {O$rmJ L%N{JP=E[_p} 2];wU-]5D 4!=ک6O 4plJZ&(H| gȠ6Ȱ U~/j4O¯8c5CwOhnnt}UNKcBMm7ͼgɔm og#%\.Lp4߼Աxh)qPTz e5c|HնkM:);2 +̽ m| Pwv73; )0CTG`&XFY 0ys>2@N,WjoĶ| VM`ՒSD'$zpMА.dʣy<<3"4 +pVgS dG&`^S%Xnra`c`i2o< =~^[l x-c$I"Y4ދ𣅑p[7@X 8yKa@GmP\`|&'o8w,g I_ޭ+pZd] Zmoh+6%~ŵx޲}O40=ڈ>Tb B&HGi ڂg_Ney  " 5$x1Y>?zrgc"DfN_>]zq篭uqS_Kc^..7T;[e>^ U-Z2?W1P6$L@%Q!(6;H @/ Pؼ Wsȓ=Wt9ACJlQ7 bZ*,qΆ/ +>jhr7>G ҕ6'WπnPQSi<zKGee.!QzyZ +Bt:QlJd>^f)@fy7; y>ބ(Aa`j9jM,t{G>;0`zDeCNu! U5}S$܆vT٣?Ψr3! !I09^7>9 |-OHF6SP+n8m?Xg lY}>zIA-3r _7_ U_knDT>n[p؊Z{ ${o,^AC!(38+88(c\I@KKo9{}Ȉ̘2"2Ib䉻'A9!OopTOMYW#܏b3)⶜" sV׋RV%V':zΆwr'm9 +|znd|D2{jwQl6OZGSxX#QV%<Άۍ \iڹۤf Qcb QG(y +Q +@4Dm[n>Ku\!k׎דa~j]9Gs0=,w2n&f\,o2Cs c]]twNVJNcm<7B3vn6Z,m^Vvр^Ur[-#t3JXi|F\߀X54h&o );[Lc͹ՒdU]VP9pʦJW-vR^Myvvtu;u%EY# +yixOJ 7v~)3vX|ReVJ})]jR\-jK ,04?_geu*.{SjtA&:L}q;ڵzvBWJV]ۙe걮e!RC~JY՜3sLLiP.)\ )gScMg@((; ^dG]f2jɱ7XK,$T8Qj`A{;kuʾ .˞}{PLzv[5+iipf /1mD>e>!ȬKd긼Z h,`(kh"zvB0Ȍd6Sff/㵑sH MA⧨ 1%=׸)LS*sA$peQJw/>ȂS֘ C1Aidi;Rs[طzaONqMʙf8ŭ;D7 Ojz [f^}tX h2^s}kɊ2۳b6'+HaA up7O|nbu`~_Vv +897 dD;&bZA1p`d7L~(R3F +SVp'[ v(_?>ڲa+N(?W-9KbXrv]*w'jg,_6W3W`j~rթM6|8Įy[ +y Q[vK!W` h Ky:iP~p!<1&2tT`䫓.NӢNoސ[0[@| VʮPCԁvg%oo# d dv=,v] 5 @)g>-%+wᝐ).H5ⶻH2>qEk3CqڝC$QQ,U(7 +7B5\n&ś*doԷ#0Tf + $ +x4 ]EOԚfuM3Gl0d !>M3 BKj ܁`,0Qi-R/! oG!K^Cd YdlhKUP̴TM4Yg9I%<n ;SȺ닐u_@dY YY qд&\=gx<Y@RD:1Z`.G͵ ȖR2kO&J&E=+P GM]^SǻEʆ/rÍ6- 0ڍo B{=ָfsh:MJSXeU  pPP{|gjY)r .rlYRIk,Pdٸi:NF{K|9glұ e\sBMzc;ΐMZ xlwN1h|:flio4d +e.!rBncRS9ӁQ:IAtڽ\Iq ݭ[+"y:jBYҭg!,r@C>Įǂ['ml dZI%!{cZ@4KX j;!{lٝꨟ#̐Fa$.X-I<@]լc3\U$,iAС>p[xRO=ۺMb nB8A@p0sfEaZ7"`̞fۜuM] JhUdˌq!Ҧu:e41^>ҤY5oj B AfGBb+9J)9bQЇ,- 1Yy8aNy*.Ur6I4=l8,I1Yn_+YuǙIz g)C@z 9]b7B7@8K"ѸC{sr^T endstream endobj 28 0 obj <>stream +L*3\ Wrt]{AvghBl٦!7ܽrKQ=t!nc.f+%\e b˶Il޹vq풆ۧ;>ZKwAN^gOƯWK/>IC>JAbp~,B:ey V84{g×;ז*;SiFLv.䚖QLQZLzZks{77ԲxCZRod:H:W= H o&'XChj2{L\Hs%ƥRzk UnsVĖǜ%xHkG7v=f-OW݀Elqن@(ňq>i4/MJ QUQYj }'.Iö 0]{ѣ,873rsTA=9N]yeu#My~иf7#>t̀n.wm(BK/_*T~RK/_*T~RK_ +=ʱ_*T~R4~_ xrdZ(]kKof Y4ĥiPXlc1jvK`²Y>~r _\|:^xS/1Ytq[x:\DTgp} Af-d+r˅^AnӃ-!7/I>iwb|&DNƀ<[,rdG*Wr0:C׊~Z)cX7&kJGN>,f,w_*T751]kZ}SٍR]}*EJ?|y:=xIc7g KdyTW먷_.a7]+ӏ/*Mn>b^MX}ʬhʅᥐal 2sWRlӱ&URKLC2 +),USf> CS8{/_*r!Rå)!H>[*} -#gbW0E~}+ rSU怆09v 1iJPz8|A+ZI7!f8 |"JyFc jWéD`"n8' A@h< UG3oC% ~) ;[C_,l᧵ 컾/ӿT~<6\L#?QYgysǯnW국`9i|1~VաKԉXԍ-2ij1qq=y`76710^T3+9~<ߚ9 @B`NzxĊd pXSkd%N1hoχpw~i/,*dȬcy6B kj/ e }/^ex!+^L3ĭ&\+sr=k1G`IJ5SҎvqL x\x9( aM_w +N3ql^#Ԍꏉz|xVfYq-m>1c|5Vx?}-|b+@sj pQ "tZJqm<^4Gmes3Tθ[҉h"g6N"\^[Y^XkQ!)XT:O -.2cMF~#"vןJN9\b#D~vbx\ |}ƥqRbUծHt8up {b5\G :YdڇS/ fY4|[ /| Qŭ0 W|hto +d7V5JJm%֖ iM!X'0  @w??V1Kz-Y32MZa8}0pQL?:ñ. Q)wJs7[- =ڛ&j{^Sy#[i . LNe N}Psu9b8V1(4 eͥ׉Æ +6}=x 3z9A(LWhfGda?Boz73y鎍 AW`kom[a%G{I=7[ 3-o'CvȟI7z$\_ͫ`DKl'O)U R!ؾ .3*v##-@43k'zëٹ%p7 @jօyW:YU#  ޙ,? y\*A煆R]MÝc8鍞9g[/F"^OB&0eX  YCX$0i#DtAu~V ȲR̀}2jb] ? +46jϏ|^M2{ '-݋Y?nR*XC?|-M=7p!>yωa.Ee #{|ʤ:2)C%0OċG\=³wtkPf;=>ŭZ1e])̤7\wPp785ӽ=0>PM<*m\HjAߧAv!|?N85$yrMa<*?cl3srXÏh=WiçT^ .5\z>ݘfG;uZh==RB soy)BϏ(ׇ`uuCz{pF?Lv:p籌 Z1ÝIYK0(>{ h D%9ڹG+^Fe__ppa֗*HHZlIaN} \=T^mQmB (\짃Dr1]`Z"'=4=7Eθ粓dz.x6*jy`cWԝ녯e RzQ/$N]tʗlwW#5C;c`/ +|V'S@ j}w_~l&+,O+78ɦl-;~?|5[S0B@v?PK&^ZMj$s[u]d=R^`A-R]S)S iUgI? +j{ 1 iMFqx1;}h +Y-l9K cO8:2&Lei[n{HM^_l'TTTIb.ʣ#Ǟa'MJ~D+Z)ҽ~׳jՅvJF݈a0ifCvFT_yO;̯2r JnF3FCFE;tw&;]gRq=?dΜκqMPїM;ڒ2Dmij6Z}V /ͿTTVO׼h,nX`Bm'ݩ+Xؗ( 08%F~Z4Nӏ`?S`I?񹆉KtgphXcgRлִ Nta[z/2p>ܖi(GGO@=Pk;smM/}0ýc~CڹIClŧQ1tt +-yoB~BL+/uPw wު89|K }`S~I rz=ef}oP޼ +֞niVXJyl{\Ь(ֹ+f1IzXGćO4&U/CϟUfr3d )#_g6R.˞ïE |$]ms? vDY=O.N R6ҭ3BC N2^nצ~,@&0Zy: Z NsüI+^\~toHrMSפ.Q*93νoT~EJjfFRA<vC T@GGra?΂]b2ts'j2kֻR?pFcz`rHiWRyR{/o ęˑrq(f#XTwx7`3۰pΠwG!X$_˯Eq ,R7rrk/~56 vhtEBJSu+EpLr]OoЉW'kL>=L}j%ZsYIlgdJAҜ +݅yt:S A7MӌRvwZEb5)㼎ekB޾7_*T>TU*p|'|D7>7w>)yj#Q$%CZ!J㛂eŠ+gF:K/>bp7Ե);[zbBJ RHPəcOmS pc8LUIS4\ _S4# uZ?G$;$O 7YWBЮi5o85|~s4xe~}RKGXrz|⧮5֭'* +aG;J2>毽x!x6\N ,+ % %mͦ8cMM(#RKS9"fY?,?m/43bo(YU獸=W\wV8 wwgM (}OB {Q<.kQ'IꝜ4U|;Kʩ&NL8ߝYu +AO9xu<R<萨JSe&vav8vtwKxR6@?Aeϑ>C51EqI -/7a}Teqsr1w=_iH&(xxw37R}t fc!$0hTT.E{Eq&7wV1^;A_3Mx~/}#F0q!O)^\ʏ_CR&'$W1\8˧?,jެ'wU~nnj71r~0UR~cMYN2ċ‚UHeIB/j)+(i4ޮi${;F_RT(kAA*5r[>p5=ӾAQ#١PlY98J흿0*fB弝9?v?2q|Se D:_Rpeaz (!aF(5hU`)[*)G .]Ш.o^B,^q8~j0;%0'I9|}3vm!XmOK̿7ݑfƾ0F k,/R 잂HFh+.vxȑHjrA?f̀px|e[ѽ!xj!_]krxf+,7 }Ǣ+h@>;z/XkJ~4}Ǽyiq $f$SٯiEMX% N/jک| ?12'.7n`̻=}*_yA/r +\ xUSkߍo,MO?9VQd^/z﷥{!i*FVTtyP6W/nKbȝU/&:|/O&OA" FLW7O:0>K9E .uv +(cEaEg ($n~j]dBrM>=|jNO|OYr$lg`!?Hoe]AO#~|W/iARδ3; ͥkq3|ԣe tgNCߧ?qYxB̽eU֊JkeTum}p)E/ԌѧVCA D!:qfj,;WӿhS9mIa'h"?G%?X:> K0wvFN_Kq~ڏ}۵M~Mϔ.;KU}F9-i.}!b]`'EE1ߥ +,C6Aӥ:74:-`(Hmߕt|?o[<(@==H;G~5}查oKWE 1m8;TEj2Y 8iJ}&{g'?sODhubh̚BU٩!lT_*f>O[ut޽fL@A艱V~xʙolClH욾gаr[a;>V^Hqd6*rG_laVxk);!Y[(A8jMJq4LCF:VC8]#b˜ {"c|CtN"S-$">)K¬Q,nĮR8M9- 9gn1+zCع+71DfsYi>I4_ 57Hcq̡ јōQAb͙)/[ةOD֖ . +dٳYb;>0;!MSSM.}pF)c,6xǚ9xNIRRv9 !i12:XLꖽ:~["[z2$ԺŰE9s/}f:8es&`e5 II.FQ.22U3D2[)%V3CNHh~9=H/>M :03E~Q, U`S3`bpKHFn9.q8,P$Kώc>~.XƢgce7CI$O(02|t~f$~| ~ӹ9Բ%d"vV<pX?4=ʹ5m8Ɯjyͮ(A}]~C%繀˝̸lќ ҌLF[72> lzT5zkj)ϣ}O)3MA,+=p$=*tH[:z fn +!XrͦW溹+E1/)ӧlC9)EQNG0fH/*D +\*Pm!̕c•69+@dAw̖cJ*dNN}ܹOYžwY2vN[_րǍlR[E/+]o;XDJ +Qj vیŢWmR3uj +³|ER~:}9ʪwO*Ds*b=6h2<60N' S ;'Gbo>:':ŤQauP*wxFEC"uFD?/S1ֿ2SVզRVsqW?YPI%r7bߊǂx ʬnm#r67,cF*H!k>g똡b@-Tn\^2+T+;9e#>X4?y"u4[_NcH5vZ Xm`*V>\8ڟn r }cFPڧikj DX䓀6p'3&1|彬{AzK<+-poHIO(yHx{"@X\2. +{8jb/` R3w$,y{MQnksNN7$\Tʁ}l>SaF"]tݤ%TlK'{d*j s6_2P5 +:ӻ` +O5jl`!Aη NDzx~vs35*2j <;Nasjm>z +!MCթv.s5JJ+oonؘj3E]غ<|Aw,Hg= .NꍍAV&X'bEV_%Y'[" ؽ *V]/y7WI%*dk7Z'f7łlCA:Gj ɜ"9`Y2R'K̝Y6s$BsIM^J@"v8qUt.X24xVԯ.fSUKQ1峷 X];0;9[nziDd{Ts V!3BA~uì+p >XFj,tqsj9ߐϴ?ARӊl{.5hR G<ӕs9xrQ 4`JK#QOlB^@}|*~Peu݂pg; b潃C'P|KF޸@_]2*w]< *I%&guV.)kg7#˃D\5y'-'v [k|b1)EDC2NRBEiNk?!x>w!@d8oЎHpHPiQl.*"632R;8>o1׹lapuj5g~O cGߐPh@_%D[T.jQН \1m?f6SD8Zޚr胾[yRgS<պK(k@[(rt! +2 fPS})泦$_ (+.:̷n6>Aa6tof.(bƾ!wt]5:Xۜߙȴrr d%R2ZUlvV=9mЬoDF R'KRΝA4"K{gt>+twǹɕ#p P|4гQu޽Wܹu> u,m[v0yʟH&_HC|qS!VWGxm[/|Zwҁ]Vh'{V M7i1 MʖVArp%"u3 E0Ġct O؅"=xOuY."IixC-st% gki$`&5kS*M<,Oj u`uN]: Lj-$-c.ŏ3N=ڶdDVm"X?yG8njb6 ,.wp»]S +c2Sfnj5RHgs+jko_9vkbtgk>|^pS8:a8pj&B8p= ZTѓOQ96pq op6]3Ёwnڒ!*g.\`ZȰ~}qL@3-pzM@9^<Fx30O<|JyX'KΪz LTOwفԁwo U9k2ϴ$H-30OY>S >SO<˷EH"_**:4F 뜁 ht,^'ƒCm, ؟8KG" KI9iANדs uc͠,2^0tϺ̎mZߟ ԁYeVQQ Ans?gtJۤM[u׾d%YY/ fm9 ^~tQ)uv Z" !R 4м_JgŶP v%S'_=YcG# ~2dup8*˃H\;!M=g)DshvXzwe6hv|ǵN{đZ er*żM#:ڗ[(JV|~Åa-, DבDSQϢ%m/Z:pWvK"$7)dk,(3-5gQh4d>i4^/mgOe~Bw +DCn'{=?=憏 +hFUQ0/7a:֛^FM<(" 0 Q. +*x%ցD`'q 2}jh9fRB8Lπh(~LtQL ++DюFcMM_gBogW8n qiBæ|\9hAi( #ha ~gA&u#)(ɐlZbuԩ͗_o!Q4ҡx>jU34 ?ʙk~+>oax^xE5I*o&]{عSJ˫ =}yz=Z5_.K%5[c׫MRP,q _nom>jq6wa}fG:=>Ω{B_J,yE)Yp^~Ov2=,c~k|/ 3WFo+H/YLj򧧓&rƂ2'7ߨ&Ŕ? >{Œ[ Aff10&+> +^Jҽq#ȎE9cMfΊ_`z~!ן}Q0,e^'pqҡ@!:GD5}L7@k)҉B;J9 +" +$Dvǚ K8 # Mɪ ~ i*Q"+I+(D <(1}L4,%SLiD,{~:4څFY݅o꧔.2LnӾ=G -"UKsռBǶnqGsTJQ]Tc3$Iz*^Wu K +[sD{}.|j@AQ6&@~7T`z!}b;ɅB?eZ֘Q;_9;w"W0aَ騡դ{]|!l3y4|1*b?n>ʖ#[/ncYp͇u֕:ie]rJ$a\sO=} |&z^4G=I O/m6ɕjgK%̻&u؟oʻ(wMvJ۔])CK\M93;V?hxTw6*|4,>A6)2J&2p nC:cha)]ʋ,dɩCnv[:amؔd8? }r,vL>y.3or#KA ,i`N/NhHPm-7v7_31F93:āY #OlInJvZyi{K%&{򢸱>| :R{26Ԗ̊/K DebǦ0M &#un'6;`B@_ٴ GT BS6V`ձ>_7NМȴ0$A 럀u|̝"0iy ucY}|bux}rmmNd?Kc΢D~Fɠ MƑ[yGzfb91OTa/dou{>O3ʗ qbgQ';\'z]}F7 Z6Ƚ!YIƮe ~I q8[L*T3k;A]~?譥( +(  j& ʴY^Ui"},ʴX$^xŦ ˼+_FH+B`heey?ݬ (7tY H`I2z.@ҏN;Lsɘ<GE=5tvQ`Jq)=wֻNY@''`DɇEEYC21o+ *G<LY?|l Iǽ@5'sOGz8 FadDq§iBMqZj71Hт>+q3?;<< txU)x@0,OC| +l +ɲ< PBG5w.-{VgS CIZYxcOf> ճ0E8 GVґ?%O1uJpVj)=VDg%22lHM4 cQwu u%OVL*z +Bژ 0%Mz֘2LH%?z0Ee%o14f3-zOLdJd@?Y35FQ1`>]VS++u[Ȗr!\ݟB5f6nsx0"|`PtbA'ߩCG#ct2Z3AY|0t K􈡣tTC 5NOV0t: Cg3k6 tjRrHqK&O/Tڬ</6Ȯ3kM^s0N}L3V>}Q6zzƳ_ |,bbc=&N&DB>x,D\62i!2aT7N)CXlƠnMN-ݬ6dvma1Dؔӧ`^id-#tL[ SvLpI^m{,Z,cdי0cr,z/L8XQNN* + 4Nbr\ NT-.(CΠzvJ:=xVjctؘre|)N#dջcǃI438~7#v6z4 +!>Ʀn*v>ex9C7ݵ.uִ;Ys7a{54Ϫw *t*kK^!o qq1Dg_699гӏzdt]2!d;qxRlnw#RoH +"fKԛ-!Roد6y}u5кIF,am0  +Gc +H=[™@-BXJoP8? UGcLiwu%V7۟l PSz1ͣȐk =04{*߾||= su'rtdPD/MS/JCʭ^cň NuZ`-}}/%.F^ vCrH]2ܩJr^}5#rŒRD%}9kmv3gJ}8eϦ1ݕSW*{zݢaܠh^X#ue+h:F[4B#Oϡ&]TV ӼU52f+[9ɡ~;W݉f$Ml% bsŴMF>zW'P+VYN-ժQ+&4p,WfSpTE7BȬH5Y=ۨp}V5SMj{% +w+1*mJw,*a$| +wz>C;[!銡\- KWv` cPtnkq| EcIlf֨m9SD'-fێEX bBk +cIhQmmï%}^,c1ArQ%*b0&mv4/T4d,~a1s,-䐥1&y!0ub]- +.08eD [B0Q搰VsZa."櫩PG ZmM9a=`!{GXN=lPW%r8xf^]ɪ){=w:qѢ < {wI_-J{N~/q}SW-:۽Z+IdHqZB4&4ޣ/dkstj5?{ \,xA=4-1r}M|I +{_9*Q[d3ѩU;L% ֯'AXA}0?LZ8 +f +u}R@/'"8R0pqghq;Yc٤t*6EG'qW_\N;^SiUSU$I:dMiDrgC[a'YzaR;P'~#1LEY7OG%_O{IC^kqse٥~a:]"td'vإnZ5b@΍5q&L'hflsk7>6k!Cz +X%|-$Tϖnf׺ųBk![bV l3fwŵ;Hi`DǑB`ۀpGϙO ]L~~61W%aN xi޺@G +}@2WiQ3Hf{".aK"sNh6)1P]V()g˺I6P}1}U1k+x; MK/c 1\B*Q@{H(MWԣYl(@V E-`ݡY1(ȊyBbL(@V rd"5 +%"lHWJ1j;E+y,ʧ RmQ>W_峪ȶ|6rlKE|(ʧYQ>r}m峯_(U@k:Y 4غ~^r ~UeZcSRO7[\+d3͐n(u,WrufƷPϺOA]?|&Cײа쩮#sV1Cm]?~nƺ~grqR[nuUҲ6Hogmꚲ]w̻~Vz|ߖYqD~&byoCsU?=$.Y"}[g]O+=NU,a\ygcE̩\o l{[Us昛mHyWuHgvWT[~fxgoֲӸM2sAuyjK[`Nl bU?t%,9C\AUskU]?Zomyn[gmZ;IKs]?`x}U? +⮮GE]?$ 紮ua^ U9o鴮]魮I$Vs=hG]X~֊!8ŶRDF]?mYQpB]?y$]Kٟ~և鰮$b6.S|6b;+׮M2Ӣ7OݶJC, f 11\[ط/TLÿ͛ڍ?BB!:{uekiџbu'@Zq}5 `"@+ Z.2%l\-}nwb欿Jp?&'wS*'Sr,jdWdofڣKuD UG4+D*lxY*[uEFJʲ% >&4ͪL*8~=OwKJX6ʧ,jBj1T1(#i +|z (e݊ܛŋ'|: cY|љ#֊bqoSo]>"&Rք4 \f3JDey6EоD=kMn3lc=_0LZOg~PRHT̈́BBM(afWg'i8JW/ *[UV`Tv)`:`anR}Ji(xT%l ?|hEmCSGaJ @ )+K +ߟAxx/ kOFf4!IK MIl>zis@F>j=fB#u}vsC_ڭ$#fXDjm+krXtkG-k/b7VV|'9kKًq0fH֌zlq{u0־q|@r,g,M`kLݬ1. 77xQ%ބib +G}1>X6\]ᘫوiAZSzRb ntZ5 }c/hL'?Ҹ֏&Dk >!c;igYVP*e1æ| LdKtx14ԑO +?&vB¶?P? +`jVB%6QÄz`L|p@3FCX8\"3|!AwtYk;ժr0kTF5rJSժ  -_M vb .ACTHThX%W:nz1Z, $L.0Y1is' OO3oϮ/ ܋"enqX'F5M/G#QGF^*QA+~E ~;iUR?ZL}!c#EC*/_.=Osy~y|opŠbxXw! -A t=6R#օ>~}ML<:b-pHTsΡxqea cBfO, ,HL}CnPO'Q/s˓ Yjrxɧ-&2?wa6b/ ʂ n:l6.Jxq,E CZ}kOV$?J_R3D>GAIpgtRhWݬğAy\gvh`NG>{e`;K' ͫ)zޛg'~uŏ$S2S9<.iH"ܜu7ͩ{MJZ\.zutp̮AAt+فkХchdw t b&נK ı]:51stT>kХcŁky ^;cIӸ/B]$c5D(AC E@%dq80R4O=DȿǙ&-ޒCQ{SWe̷QzyFI9&;OC׾$ E)EWx BI]/&Ww?NvrQw拢.`$s4ޞ7o_v;8nwNwv3|xtpHs.|Jӕ)}G=p;/+_vRb!?tAKzFf&1 )21ǘ\"⡉{6$iK}u +(+XOP.J|)rYωest A#OJ%{h +ϥlLOU1+9!7MqB1'Lzz݉jG`\}o#򐞎)!-|)F +NX>^ȥy/='`i,*OީƠf5s|+=ϕemhmN, )ϣ=Q&N}NڐTrRQ;>S6d*emXa΋"X%<bΗוGpjKki|6 `!/8Q\$jiCP3Ԛ5 Ce0B5 +_"AȦKbg H +~=D 54fSUjSAm>stream +%AI12_CompressedDataxnfǑ';р5"s_GG}i˰$}@WQrTboF/"Jt[d\#c~WO{Oa_0޿%/~ىϧnty/O?_ܽ?߾Oo_}vzn黧ןi/,z/?ͯ﷏}%8`O_~y2^|;ɩ)׿{ҩ.7s?m>z;1'<|zo>{nt/O>ۓ??mo}wաW?\p{Z}W𧻱wox0_ \a@{~ttA; ƺ{kбZ~_@57~!߿{xs?v2:w[/xẅ{QɋIw}}_N/eS_~׏i .WwWo{?{٦=ž7w_=80$ӔyքRO@O|/=QԪvWذߌ-^?Xҋ?}jnm 'M'u?XTZ;՗׫Wۧڍwtb<'Sf?_l><{7ں;컷z}v˻WoϮn_~xwξ6g_-vvہ(|G_jwN>[|zg_;Vwٓ$>-}wd(샽ޞ;{94ww/ ٛ۷o|6x}|Jo̎^|z@??g3uwݷgWg_}獁 b|IÇ]f=ލ^?^~_GM8}8կݠwOy|~&+174won_ޝf🫳'‘WcHgwFܨ"mo.WӷooeG>}Iqoc@ٛ+BytȿWû"^-~≯]|.ϗŢ=f?Ή1.|Ž; ?=s&]i s'xb@o^N`C{7Giw> 1dлUzoarA[!~yoٗ/yu>,hG̟74ws$#'97Dy^},~˻=,WzAg:_o|1;aN7skR%S73T<=!ݓ7w|o~i f/K3׻`CrAofAzq'[q<~t|so}a_\,uO>w䋷Wyƫ79.슫݅ۺKw宽}y:noB!JB"le +EPṞ[<^mW:SH1 0TSK=M*]o>Ps5y|uqŗPbICK.6trQ\ꪯƚjMmzQ^oŖZnZomejuC=KE~կ7ܟxy9_o/ϯί/܅"]rQ/E8^\^\]\oo6n6o˶nm۷ۋv{^_K.e̗^˾c.W;q)7vbQ12Ɯ㘁ߌ~=fu5s3cm̻+ƊXJ[uڍj7ca4WR_ߎ{]>'}ՕkWccnum.i39X\0db FR.i M30;]\7b`F^Sٌ_H2x=r@Ћ]@:7$a82z ؗ7:cx0q(8~a88>c&^[ܡ1gjܡ1gjܡ1gjܡ1gjxIGlC9ԣO;lس}.>WGXTC\A Hy8tAx"ֶuP<([oS,WBV12%DJH&LJ* MtAr %:THhP ?J}0!YP9Bqހڀ:SȀĀ0yـ(ma"Ti&' &BJ uP<8ta3صs׃ul|,`cVDf vhO=QAhtqPl#3p[?Ϭ>N;?Z3"m!VJ ,,,,,, qGŸ +ʭ8G6LHT[g)x"ōy;DJ%oIjҪabEJ@"XdMEdKdB"\ ] v"5IĈ)!#RĬ0A#DȚk&nm0*יґpY#@Br:eZx!icT^!xdQAz>Or\G_i? W7 {I˯=8Txscx}~~so>}swlh3).⢍_0dvL3E7<Kfm<Ȭ:3뮬_qL~ =%1 bBb#Pzt/.XٲqEj+"v`m$2 /B9',\r2cUųX@Jd +k{,Gu`Y!=fi3Wk5^x܎4v:Y#g˺%?WE4aBXl&*IU9Ll +"@6jAMcaz<OGu{\3$ +h\ٳ}!,uxHў佧x؏#Y?>C9wueloRU:jlo`{tDri$@:E-pJqOl-~aM2 D3 +%2- +.uF oAdAb+Y^ن@9͝) dNd+P"<[fGOڰ.Z9M<-ʿK~\&ؗaCfK& 4РK +;9 {jL#[<~g*tl=?7s?7 |nk4H~uC'.ׁoAo(p)y=޽O6z< ?o~C@~DgOr=%˷i>LO[qZqs/}f|xp;N؅=ρne%6׆u>T 7c#}Y]I-{ 5 +A"Џ 'x>&U>msx.,TJ[*bWK| lDK[=qՓWOY +?833_3j'FaBXM@00W^{VMTM7 vV8]O=`O,t#Qaps>1xŜo:)O4=pìmO_<|X=۽s~6_?!?7saZRsCW&xh}2Kbm')0+>@}t0w?IŌ9+hԏ꾖lV 3mi|@L(3D?DѪ᪱-*4+Y0hM%y^`ܩZ:Nk +zv.R6#ܥs0&S,MgYcg>Ftu:į|SXit`O?q|*=~8CY|w?M|M貰?nV.o[:^2}}\zSޡp 7T|}s09}HcLd3]a/'.CwC7DQW~o'EhHY#Yehy&Mt('Y%T̙ƚi,|d~^ʨ,qv`7LwP=$]#Ŕby|7UJBp/hoW%eh_-JzPvg;{mOc7ة;k?=/{'x[gIĕ+&Mb@ +6pm_W# K|, +\#*h5[W[`2sA?lũ?ϟgNJZ>p >Top2uDa:iw×{9S +(Mw~v,GIK>Hݏa~z<~I:ŝbA[tr3~Y7ᓛ# h!۴;O +6hԡCt`ch.Z8xuFQ(~~t^? 466AQI>oc4Kr7%zZ%X=MO_%A%ű}Ju( l]v+fr$5hc`Ʌuǃtk{tl^꧱`۷!4ܜOՏٗb۵XM!&bHM!.rH:$ݮwK%FKn--;tQހv1SG4b\2.|=mdJa>,iaLэh/;}2;i`Nߗ c60ԝɼĤ\N +VsH?2SnNQr4cft֧[M|6 tbH;ޛ`<-7La:PlB} G_N }я0%ƺ;yz[Hy*L]p~9O]hѦ8l ~_N }vc ĚHwg,_A©n=fo/Nhz+iPh:e3G$V~ hdv8}:@t86yTä;ӭ&l|6 tbH;ޛdӱ*Sa0mCO<}:B{6E?Xl|v<}:Fy, cMdY7ӧCw0kC#&0,oVrPI".1q56fڑFD&Fe5~v|.f=yJS:!b\I,9),- k?=b#؟:"whGwqՁ8(vh-ryW`_HwKG-׮XHSiw:&ݽ]v9&=1͕]eGM7i;(~͇J=bЌ1b2x  `G/ڹaSwP4ۥri5Oyo +]zZ/.yP2zI{C:v/O (x62-4T9; +/k|y /ؐ}x9E#GȷCB}鴝X^3lNi)͔O[x5L\^Cmj}6rP {,{҅-u:g#G;*Rq_ ^>9rvZVn :\ +tjCtWGx6rP;C"^j}6rƦ!i{{:u/:o_o)mu+cDD7mW| *H:, `vC.QPZST8(/ENgD}2ҷH0+IEE.]tFu 2CE8۹!Awi +oC'd@^Z2/#v깁p;2Y3!ʼQc~>.r 4^dtB+2<'oȅGaqh~Cu|1ZZsB,DXLǨek-"1}%SxbmM鹄QFNc"8GYɱePKc3Rt A*&Gm! adh@J@J]5`/9WBe[$u3 UF6䔒C Pc3mU;+%ɈRױW,2[EA "4)cы "w>T A8]=C{9x<[?!;_2$4 b,z4蘟_t) 2 + ++Tv9tuwzWȶThAC&[]͖i&c$m׆{!V"G55.<uJ^Þz{MwݣJViM(;;hbuw1k.Z`CӝPן(i"i VKOh-ҽ/)xIpsLЊUWW˱eDI2 L={D̥ +bX!087b 1$хIU69G7kLX/D Jw8)]R1Ъ@d6`!}1Na +e'elXa1n2nNπB0#hl&р0y; s*3.- }+$uB9![tFf%&W5A$W,#h:D !WF!:Q!C6NI>j %ߓ A&a>c +lei|zQ Sku$ I\Մn]!YvGǛ[m .5nUrj숒px zJrq #7N +sEʽ3\y!a aɇ*QX4^ݘzh`L3ȻDeq$F* d!>9yprpۑ*yX46?L2L ԥCh'JgfU+UmDhXlnȊ( K4zw8\dsR8TЏ5(^qH+13)X&š |JI@rL*g?=a.6r ,?5KҪ#K LfR. =V* R?<_,Ę$} +c$TA]Un" dW7}fS\>fO)qJʇ cL d< "8ZL6;P "T`8L .d$bV Ȃ찒%$. A, 0{VCq{˶iuH6C(N +TFIysCicjN_JAFYb?kޱE&dD]MA֠\hu +e +I1W_WޕUyԇ xAC -UuT'-Ԃ`:&,fϪ +8Q^[CQXAQY$Šf.2zB]F2{Ďw9m!8LHվW7OP1h+Q00Tzr`R +YEdMz-;NĦ1=Hʢ/f fZ9Uj릐Ѓ+j#HUMEs8Ȇ^i#M:]i{WIֺzt4;^Q;d-*jaՊf'K'?%ûU# ;$9VZmЫBZ<:y+{WZ!yjP!*Tx3/7P41Yɱ!7+1HHTfc kEəG|4hQ +nb@X,I"н9F!,%!6#9/%ʁ +?8,4H;&kS)h1ݢd̋T*3 SU +d Zn5!{+FU>2Tbf=F`rTx{ ^-75!%UNrQL E uq.C4tPuCLh7 HM8v'tA !a@u M !bDͧ,T7&gF809ۈb/&.ƭw9CvoU9Tc h[l֬=(/"0d@\) +P]Ǭtp$n+1YFc .DDϰ9-:XP1}u:iDiN+>´LCE_RR?14짊,(5͆b- "]'[{5s`cG/eu7͞T'-U4w&p:4Vc`T +MEPsk߹%;"4$4^))`]#T]nitfj!r+tskH+2Pӈ'sF{aG ;0*@hBȌ6=j`Z'|˝a̦!35eC@W Va-g#'LDdaBRZpG L\c<жjq<|03>(zƭE񺔱29$=|I6 ۼ&X!Ip*E*,t +#_7'A\],T.17n$OH5hos}D{[1d]lH<=YE bRArl=Bnb#8E$~' Zx=2'ٖFZFQ89MnHy-#főbnX3 dq%69hs+aAN@T,X0άH 4U}*KhCah6P(K/'qkJsEn;1qO b|B. y):){`N))j +C֍wU*|Y \<˚mlR>,Yo8_]~~p23z\bWC]4jrMmXm()(KUתF97ތjN +4vhY0 ܬD7$1*%vv~EY8 h5bWZ+f/}pƊZl, z*B `&RbnJB_Xyw S/PXbW-[mء&~_d +[SQR֗e}`QFg+1 Lmj5 RO1E5*We&h +R:#]hK)(qdY!2 wf`4xXeCpGV1d:i*{JFAR7ò`͞KHFIi8@MYuPM,-"\XETpH1Z8 D/&/^˱VDQ^o'.CoYUJn&Fu x0Nk s92 :GRYl9mv8J4(#Lo9"jdb[#벨+$onKk5,@ds7i""a*J,lcsF 5dwbfU؍tgkAa8]ΊGpM]w-A]*mE-AN6)f3X/}o\@-j-<9=5CN-CxuS@CCˌBu-Ai% ȷ:M G8 +*Q|%__#d_rjMr7f7/&|":MeSP(* +-Db 8BAY&9&d>Y0 rXKlcX&{K"J\ 6o{ÍUZRռ{`wŖKQj] /nÈe"T`n)-C!`ʓNtw0zeQfzu9WZHٺ ^^vӽSWtW75~ t.4p tmԫMs/['sU{mkUIx0HFz9ZGbk:Ơ8gt>UL>jm)o|\)(v;RU$EH@ݪՔ;|T8*xu[[e5N3Yv +n3G )Л(nGhdSvZn#`4۩w;۩֏N ۩`S:YVz~vjNsi+hʣ*)?Vt Kʫץ$X ^5"5Nw;"7 RL89}֒9]Ŵߝ󳠄7+$/Md AD'$B+M}/j-o3ܭCM"0;"Qhq*7 We7+cXSW=ɂ3De䣒]32w{򣴸9f#`4)e$3^&TLGP^j\73)^X;"*:fX[JeV6w !z7 κ^ɶ[銈iT +U2)q|A\٣l +u;(*Ehy\YsQ? !XFrw71΃9KZꙒ7EJWY'RS9 *I%soQ _з +i"m{(!u +c78<\N +&#m|t-t*ӏr/zʑKDݘz¤8ؘ8gJE_i3hGCut]8]B%P2ض7߬Usgs0YK>_RMj>=. VrGdD psy-UPNS THVK609V;$ , GUfYWo΄&My*bB7vŧ!7$|M2". pI2궤9& _UR{(}7^U0G}6nd(..%Z*DA҄;ޣ/w <,.8rTt02 ft$w)vvsx vʥŜijD5 Cb<g +@Uq' <{=aݏ{ZMV$Vq;;(LeC xuYd1צށ(T(̎){Zi__\Jz7%4H&q1&u pvJ5`Sֶ3=!^Eޘ$WQ>{ݭF{!(u`"H g7f2SQЋq7R [RI <˼99j30b1WIL@ +0"bYbj +Px?;LRGBXVgckL8#SV_:c[qv̙Vmϔ/uQij#@JT.*=Oȷ,:*P\F?ap.M6u2#t^Ӫ^eglFr戦 Mb(׶NC˙#^: tq\`/<~I:ŝwy1DiʠDCS,fYC@7G ꋍ ʟZ X6u?w&g0 M{ }?&-THڥJ$b-欭4boF 0h9M$Mb< J^1MK%swGwȑ&pѺKX"NiLP.op<:T U1zR@L7Ybs8Qc2_7x$8FvA9݉AA cmUC"h`.ֲ.X$ Ʃw&:/X`nz₱QiԽY!ɝ)*2 +V9Fn# E 謺Mr7#5`yP"mpft|* Q͝MNZ(L'm' F8tB0 WrJ @ lCQ4j8*8*RK2@Ll[ >R_֮݊und,or ,9~35{',⃂L6XV'pwyh) 7YczD30p$ij`uQH]%p+hPaw1HFFz``pL9UQrR. O@ε~g`!ĝq +:.) 5f,F"T\#Z@ZWdoKT1Uft1 徾-`S]LQ @1UXHH7| Oz^7;M&GV/<](& SzC*d0 yd + '(o\rV`~ v}v}†mshb0U&h Ԍ,&@O) weC3n`f !D<Q2&U"d!@60PD +r|gվl'b8thߧ(˓KЈ#&jPQ$dgV4PD"ם1=hSY&-$iXaw*v&`Q/[lW\]qwon8P$KЌ(8v *(Ԋ&|$&lw;;$kH>P5Gеu&@ƒW̅eXEC9>-HE kؕ +29&340xd %FWtp;))RO:#(I v]=a`:"wƅ +6*IBgm /?fH`S?Ve*ө߲m1d)PpS~3(BBTF#NVlA```Wp?mʣɗ[+!ᅰ1%t ӜYѦ]9D:J+fK#+CUL;GXt) wm@婈~.YdH +>?)NW WLOH3Jg]9UAgOBHʺgU` Dm բ`ÛSS @X3aWm!N<*T!] A}SR9z7FpçVA!`䰻 + B8YOqw 0vF@B`cN'9=jRƛ"dJy/ЀRiE3vhU?]GAE.Qs\RcMq21* gUBIo4P1.VUKEpbO/EJ0"zki +&` +-P$UV4Ciiƭi2,0L 0KѴQmwUl +@Z ]Xٺfr^ WWjԕd~@#q/h.Z@K}u#OWO)\A]vU+ 6&)&Dvތf’E *VQ(Ah1 +ʸJz)P:ij z \W{ +T=X$\9VmVh,leJ};TlcVC8 P~F϶1g;fR ( +OEcLkŀ+:Պ:2:XE@#`\ ʠ +0٬n%rh-4%"&cA=NxɝМnf &[ppF/8FIxu鸥]].b/0췋sQfq*`D(k1װBڦ:d2P0:5g"<(.bG)8#>pwq;7XE7s@;;5eI 2Zlu +d{wIɈG`9ζѫmtĭn(J3CǶT-P9l$> 2G6b P?Ǖ6q +d#FC*Nd`3᷇Zн?軑3 +%NVfsS&MIp\/\*0#qRM@pGf)K_K U;kM1g{8V>)I6cxonw J{`ȭIGm4>YO@@1 X?3ևN+8 +7C8eLl٢'RcDmab{Нcl~>8Hɦ#ڔ;} XPK> Kjjrrsm]u\9RV;Ъ9 ֢ШG619 dFդm^<bKKTx7 颶]Y]DxSWfD0EW=B*O7y jIÊ8uvUMm|]U;,MxWB I@w(!WN~^I:dfT&Wk@s1W;\2w#h),Ns2wAK*IBH*ZVрUF$KpD +[i7TԀSq3-ű b`RuR}Ų6_gD\'DWE^_y9(@ y%]LI;i1d43薔`i5Sxs^$reNcĈZEh%k }Q*tEa_;t tn>"D.WjݤQ˸"c)@NfMNBGn(6=[nڃT7[xaEAx=*Jx龫?!A2"I:Q\N°4TʐMq ]PZ(51t߀@J\|DVӒOsV7P a ޚ :-#5YU HVjQ!ja(Y\5lXoa=HDHGΪ6hBYYXiNM$4'BS"0iiB( +HvPnQYStΰ\IJ VW@OׂUe2"G PDl.c[M:M ua7}n",U4uo.;F 1 vp:U!J65rκPHp/k@XEskJ0RvN(DUN΁.kXN__S<+İ>wp*5_׻ +*.k +:'&) ԴNu+jt4]֛:]|V8 * ܏^eoN/X3z1BW,ZE-Jlj(I(A554Jzb HwAYea^CՊ5Z!+ET\BpE 1kտl=/ +55 ڀV: )1kat@⥪%,8jpLjf6Ƀ +jz3ZsZZ7,h؝12#[2;L e&5γ,&1oj,AMJ#mX(?7 'g)RAMDj]TAL]lKEa!uMd%A\1M%mHW6VkPS<-T-W"3a_.X2"s-ڟUYX<% 4YvGD_j,RM{庎#[  yh2!^VXv;nP@ (A%SmAJidrkqe|*LhGR>$jiZ k$lO";P -ck*=Z&y&Sy^ G^((U,5/,P/T~8 +-iTx$ I3 6iy, WPJzd1q΀4H~%b/iIWM YEprE9>+`<&۹$ˆ3) R:E?rpu&+$N$a 940V0WTM + );at ~Ꞛe&! +H0> j#ZVU$dXyQALeNN7:^ sҸ" +LLJ Leq2 `EUn',G^ &IkJ<]K +qj_ =<|Yh2V"9@ETJ/wN4ârg{FAo[ +[&1k׉&δSt V@z@\N'EөG_.-*NHKv3%a nAӢH,18":%JP fW͖U=AY^XOjw+ Ķ:Jԫu`UQ|ЂTdZZ`Kp> +7A=^Q%dqFE+:aL:,R;*2̠*#<4*)vmEzQ}Z$S0%@TS- U,̥Y8Qh +M2Z~r@%k*NlX]!je~NOd+zf!:;:)K()} +4q壱i(S5X+Ԇ&YYV) Vk17MGF/JNQaŨQ}~[X͉m٪SW.7Sda4M +7=w(@]taq#rQ㈊1 +Y[S#ĺPUs)mdWbab7(D1p?Ԋ \~/V$og'$8i*][ `1Xi*qr_.繛XLi| 'gcL@\8Epc@jFq#Iz %[,Mz:QG d3 (IU}Z_$iT"XG2INJ;/d ҢW +ѭ겾4jboL[ K'XI4hq@.7lfX/C0YUEl/|-kFb2ą?0~ g!5ZwH"6 8L+i u4J%.Œ&9'$3QPb7 +6'r^4ekRLl`"Rarը5[0.Hj @L)R,i[ڶ`q7Dy˔%M12gSu4a$qS[oj.͓3[ob˺bV1LjURP^;PrnØ$-Fi` ]]MJrh(:=[dc~GBvK0{&G}ZRC`p]O&YZ(].X8򸩔mX",+:0e4Ž{pV`7L[ E +pM\o9hd2Z.$-l0WK[V*i'49vpsB¡w{fFU-Bpr8!ݮlm$|Biܞ_F"eo@ >Ld^7޴ҙہ4hVmggJ{(p@bb!V|[]4$7EU|cW_0QsҼ[[Ң-;K + Zd5ToHUδ$y RtR_:J6h9#|F4>NX7B9,s6aywIuRTv}.nJuMd ehq,"<(E2TRakZWUO"1\9fqKQhA@|p'Y;! {-E<5"gwoK$G wFd8Qj]^@5-*nN Qf4:â-slMoP{*Z`-rƏRRGJ3UdʔMfk6ac RI/&@ɜoo0mfw Ŀ1K" I?YԿǢK-bP4PR8q,#!뭕8*27% g%Ak }]AMm5gbiMOK$%󤈯Y)YD "1m 6]o&ةz+WX(&ج?aN B +b;m iИVQhݬb&/}EWDz͜TD,ŚbAn#!k6`aȆ/Md%>Qoj03C aX%g12ϓ7_U  $4DZZ13cxD25L=0* + K ͐!&xRӖ"rh +P(U +<2}LqtI'$+HI~A19)ic˘,/q!q`jv*I1YaZ44 fhB4/1-$mc\?kfk4<ـ1XI(<'wkDSٴn `1b\t .`y##w"'<΄irD:inUJF/b[ʨ&+,D9 =Hjr>|-Fqi*vV呗A5\WW#h1TUjΌh9Q5{ F]FZ4D#tV3c(qdNjZz&S"j%*<H˓np>[]Ml 6sW]y +DVLR8R`(5mK5dCћlW7@Eq+WJj2FNQbUp0,@sVn6ZT-4: VnEXEf-Zu./&mF}X7W6)@R8.f@ltYqB/Oի޵;tϧm6[c+_Ab$OMGX\]A4C*z @2- +Mȏ${)ob A7* ؇fi̅c֧AgU38ru8&kꢚXO^PU.όL4c5%AZrCQ!Rr-e,CuTšBSUQ\@ 2&# ύ6okduWK +B#xU_UUZp3WVVZm%rwh[$lq \ʴ(f,RS BY:0q"jYFW؝:+[1v2ዂR/x5H,/Zp*|*]&vtjA7e^ +j"tPEkȂK:xU<މHVzWD$@t[Lo͏(?!h* S %žҔ2(g!0vA`EKh[Cʢ&~Qy@c6Ex{uSY +帀 9pKHTʼ\0 >+TS‹vpٰB(^Ơإ$h]?yJ5ʳ +sNH)M6SEmCJnyWMsW{ji%39%N@5xi4TW¨(ebN<)@n/dQ􄋩%Z HrXiCRh5!аDt$QD6h pXHKpXA0ڭ}@.+4xp^X3mKE4VUJl! cf̔&/~ [2.9]I53ejgk o-n{p M!pD"N$>9IMw W* 3yQ^jczW05XHqzJxdg7LBڹX:Eu)n 11WTty!Tw{͎FE&pp,9zB*⑐%Ȏ (Yv0RlD?_͌Tˇ׊9O3cɡE hb-u-T@k*B/@HN>Q zİnfSJV^Sx%C'̌[pQ}_~S±s"OG1~`қ!kZE` _dɳe~FSDL +}O:(HeU=:3] tȠ|]pKz]ͱ5ĜdǩYUf1M 0 !fKfM,\O()`:ΨF`md>rBUUzOg8^TPjp e6;:Ik,9xQ"bZ*&4iz=M +Qb*0-4K0 VY=Xy`kȅ{E>&*͵(JN [mb " +P-]ຑٞSy8m +Pj]v@A]CW b @QfmDm8LMY5PŠɊOq]uJA6D@IV+*#1K5H lFT5],X퓥>$͢qޣx 2emnEbT[C \T:]{D~U؅hVn}Boo)"fKP)ٚZilzmZ׮*٢6XSe%OTt6.N/H.8ILGi+[iWJrļ5rSDaE@vWPe4Ԭjo]&ҁ_[=cU/pc/JՏi/4k-J,bڠSU]ԭMI3ިM4Eҋ@gp dUgR%4'=cJ592$k-77M"UĂ;TsxiGaQ!obEyS;S5w.,,M9\X IuT0_ C^k|B* "W ]^ VŔВjB~)1sy^vS`K +B"fT-Nj J&3I$Jf#RMVI_XY3>͢yӟ ,B0_9m鲘Of\ZPk(ii3^0h_2g+ݺG!Յ-\&`K13byjv1NPJT g}XRQit^Қk'B׭ɤtR*ô0J;:w}pj^a2<ޣ.,4n6P4XX} R2[@*+'ueJ6 +e+YڰtLYT[wMTj Iڄb9;s?@[%p=8xi˶GUUT')ة0^X: Xf Cص' lVHԀiUh vmE CFJiDN+D0Y;o&4$)`1FQ)~X P n +f^d.('/`핽u;FO; |dk|޻H4mqr}PѴ2,4Ϫb_)ɋ6svc7Ϧ/rl0y X7KNwෳdZx f jisiwwr+ !kYg(DiHUEO@-RejU\)jm)%i=jU%}g?! 9ݡ!LXI\Kp U7N/snt,Bw=8,Ͱ +Q*E}HZ'i +c %.{NX:NKeD2ҭz'JZ6'Eyc[@ocb8_Ioгq]wf #:]OX<8"BV0n(M +f&m.3 a^@f%M|⽮xgY_vszN}QhRԹiNUk{b">-%DxNUK,͚]'V$L2k  ,:P"}A0o EJUa^wW;?T4w+KDSa-J5C9U(Jg$Un$Eg5\ԑ@[Pn6ܖjhUd3N,>mAaf,0uPˍEeժ (hB%宕T9e+-t +1+Ql2 r68K4TQ 4'KUUw,Lz'5щ)`1o`,MPQ>h-BUfU0٢Z̛f3 +ID|x5©[Tjf&qzz[4IK `ҍ: Q<'L|6 2 4ª3[&[L 4,gC艜8$ոז{BONOk߃o3P:iԹ䖉 +)`(}+zt뗉gűtY5UBhb鼴eR[Tl%4ٸE9/ u%jUQ ++E$)F6C]}&s8 +֦ NS@qy&0ЬaeQFxO63̧zB(A۾,\e /;[Ǫ 0f`ekX%̽$F 4w9Dڹ8p| R4 + +k)&;Rr\&mhխ +ib[pkX %,fD̓бrGg;N\tIY O ?5 +dy7 !+V[b3Z6;HS[ djM}#E0K*,[Z hS]M5Edbo|F! #T' 2>hYPVHyk$ge=N]4+T"h%a@Q1.x2(V#YCOH" ]aR^Pϒpݲ! + XXHpJhOwJkJ'HPՆygH8j6lH$GDnEx*?)i !PkNVJ%ڊ18;$AX%C]7h{l9#fEvꈥ%#$. س&xh* x- X&SfCdW7}Sb5k?  cpEa.UGmCJ۳N| +%y\iNH>he* A7`Ս/2\eIS]֛$;գ9ȋ{!dmaUcYӔ +@6’ghu +U"n_3hn_һf {-暸_hvLt6n(7Z%BE8%k@+ݜUڒ #f-.F|oqg~dQ JI ^rfRfaˉ̢v1K,efUÂMr{IvG03h>eTݛUmC5cf'gʚ9a70[[WFx=$ +mO8>r!-U% h>5B@B&Қj lVLT+ p5 R}m,qss:7_YǃUfXðH³f4hvuusCy`(=qE$x,B`;ԞhKlOiG^r[+fhA3x&{2f?7nA_H3UrꎘP0f.SXk`%mѸo](vRkDrZfead]ѴD [v"n?#P ℐ`UVkm9f~GEBS +IP7lQl>Q$5]B3u ATP`^E:4[E[lN`.ڝIS<$oy0'T-f- &zO=אxNPSQ%Q2},uNfINtbd@P(MGM^s?aA<.~B7}d0ŶRx P,^4yk0-4(t R5qTw ZWoU/(h3nmK$kX0XO\J6{KtSH.Di֩km|T'%UǨ +!DSljk?SV<``mbSya~ =/0E +?u5 6iI J 5dk:uuOz$FrSz&JG\N;lޟ~zf>F4R rh^Jռ%W-ݓuC5QW ")z {^DH3Ϟєܞ-w&.:|jv+(ܜ%)E"%@Z{Bk.ɭKls@ + F 39 Zivf&?q?/['ƎpɊTqXQM۸S葼W,Tj J;Xrhb[k5I hLhdy,%Yvd^Yb\Ңoex3Ke15)j&Lq{tdVz$><ʹ ZLM +8mpG2ꤙ`\ B*6S` bٖXt+?: jIOjd>y~Aז.dTIjP$=3NLg +~uht]YEH$h)Bl}|n0CsG,u@RMQUgy5ͅ2B\OnF&j{d<;-U+dodӺ4& A{s9NsOmwZ!abS-A\R/jȖ}}.r 1f +SNO=hՂ2Sƫݚ"a$K>f13rYl lݰ ;/oHX~F%s!d((b}X!Q Jr3)yoxdAZ*֡ /R@OG&HeQݘZZx)r?nT{Ĩo(P>XmKo -QI2/T*KSrulK5,MPp4ll(ז ? L]&D +V:%R)Kms7#׋rQ=jq::@gK#!1x0 &zs`6b@;/~[0[ldQr땋 G An@"8& dɤF\z{*Q"S](ܩw8Y%rߧZqubh4Je4Ӹ18C`)TUȎ )q[kM$J(~BPz.D{)Gc.ƳUSeyq(m7дY}`JCh $z yT*P7|1ȍE3W?|͟~o_ٓ/ON>E?///Nu~?^W/k3<:i1'ɩ[lfL-T\rzt%!/^r9=v82TV$Ќ#"]/L}<|q~6"9E(#$/HC}g,0 bqz6r ʟܫA/$gc " J8"R -^ @ vvBqoPۈѣTBTG{{2tA| Gc"΍:D u ?8ȌZ9zA'i1_ A "3 Fq(("DJt5Dĺ˳A_G>Go@ê9&ӥjע"Gܕ&P " CِlgC|#6B\U.{y5w'5JQD*"VYBaT"hYTXB MA, DDzn QRwGJ#ȭg<:(k߳F+B\?lxMnL2"p%q+\ǣEd:ɳ &#ښ2Oλʳ7#=[W렺$ eL("p- Bb 6AL< +7%6A1 rɩ.KD}۠9If'LɭN&D쉢{0[ %QK,67B^1gbR9ƗI D@rPkYlҧOEn^xt&X5/@3H aCEw`\@f ĈIB. ~{q"q(DFs(g=U}֕*3#CSa"xs±֢w,%;H)&oi!5 + ?"$1Qנr81]ze -˜FGĀ#&IMoVόg^ yFC֋|&/ >ӼYDHêTRq٣,-*u 1 t,7 bEI q Z3SpfU@ +Zr3z~^q9J]I &y<: @gV|E(ED83A8f\lΝT3av [` + xI.ZOmk\ hʰRQʬ xybQo45l݈"LI,F+Z Lwk?%tBXjMI<=xbI&gIhtOR1g'bH9}Ʌ<֍~nGǑ'Ny$AtZ BAJ#ޡb( C E+ZCe*\c[> $$1QE +Y*f#@M|*ƠBGN6ذ وSN#H:I0PGB@ ]t+[-xBQVa#V#ɈYŎSh:鍼x<:-A' R2ą|f#e v)'9pJ]V3{ѨZǧZ#ga%Qp]tLۿyTECd,Tщ{3:D" DeC3Z{r!Jf11+Ds_ʙLL. 4JHl?sDرg%IE mYQyȄu@CEaX`)ӉY rd]c5#vUbGͿvE*6]!#('#ğ@E$p䛈ZqBq2Y#b'ajmJPQ/~/-IsU=|Bjbm +vh)x.; =CU,NauI0Z)2 b/PV%&XXas$rk#=*F]-rУ2.x$c2kf,vcRgr*MH=‹<(Fd"5)f;BN75*gzqBK3tM:-](AJ%Upgѳ#dH 3ZPzo\gԔ2sOњ U%^HFzcEV +QgI$"&i |&ْyrB ;K ~׫ϯ.o.>8`2e,a_?mw_?9/n;m_?y~}}GO秗'?ç?~K?ܜ]]_ߋoqv~b g'~j~ӏ۰;0g_5ޚ鋗7جUMLG{N//vrs7-jRߞ[ej=s7.f?]c9=!؝I⻫g7Wߝ^\]sc.W-sMô|q}sv]nN lC`.b[ܯV"2nQ o{]}ߧ'7O^^>=qU5Sontşۺ&ㆠy׿/7_U={+ڒ7vY{wV5wb=>8ً[E3vۙ{;sog̽iKڙ{W/^_>9s|- g8A'[+ޡl@=dҪZ=f}e麎̳Ww}Md~Љ"zɱ/;=yy~|}rg?:9m|uR[+ymS= r^]9Yuٜ-'uS+e~uwWu,ս\v`ht5Zv}oٛ2m]߹$.>r bwdˋo/b +lh7:պNM]#Q +Zn =m]akk`$aڪ0':l6d de]2_+h fe_le|D#?tu颻t]: ]\+ D>ҰXl>v0+v0?ÜHIxGNCɳ^CɳOG}?TyLȿXWdn/p^{VgwlVslcmf]aIMU;$w1!i=(ςy??j3;j^6ߴ;̰w2aCRagN],rͯl>?u +kmӫ^ӬzXo/UCo-.:5Y^ b}wd]E߆8MuMoL N$mL ke(lyikb<>feRѷjuߢkԩzQ]Z{'뺋3햩}e(~ǯ\؅߭܅?p2I_l}?S. !fJ.˫O򊦴 !p?=wf-ΌH͸WW?|gC0~6t̳>g]]_~L @W5͝iyo3>:#gW7G:.^Wjc 0ʺf.|ȵ|GM[ݝǝKMWt>Ȍ9lx@ouMj^^?C.ϔdW5GYxm޴d(l;~'qBiwv~iw2iwNoeڒ.')W0?A{!VC]hbYL?^^vHOJH;:~qr75@u,n]-[0u__]7p]%<ӹd8#0vhG>=Ű9Y;q ͪ&vkil>YYz#xo'7ߛV +u9=>8 +EKh+UI)XV&?Uܕ|*NoV3N5YvJ뺲~މz$+}u~|gLտ&{K)qX߄\X'tu[)^D{}r1nsÛI['3j~$>Չ9xyg~\F{O@DZR:Muo:S}p!lk7kn;;`O.Ijsئ$}qr|okj]ӻ5;~ϏON2uxKy每8OS4Kܩ{;uSSV5ڞ{սI|BJN?~wuyz\Pڜ#t0UG>b}kݬO5 +w?u~rַoPVaw&򆴅Hژg:(7y|}v}{=A5S?ջseWߝ+Իsm;?s;ksC]|ކ>]Yy|dC"N<ӏĝ9}K_C?Q}g۟ >By ś1>,қlS?@0^1[|k*ف{VkR~Gq.U :[S`0?ֆ `SV.SmL^ +un?]T>|˓$u~qu9o4upٟ?.;n]%=Hzή׵6Tl}T {DV+_ظr]ϗ͸barZP|UrO|̃?啵vuzH?M?ճW<}m=?ݗ|fm@ʠ|׫<ON>\_w$/^]|uu'W?f~_?콴!ʹ_=H?뇡aȽAJĸKSKaKeiC'{0k\Ɣq<}VZӽX|t0~hSp}087WK1>U{M|o+>fØQ1PS4>jcxblpX c|w11{xks`Coӽ{r0-՗r?y`үlnؕceTZ;ӡ}섡2FsK`rMa2Fxd_|΃|9N!xzKhc7ўJba3VfçCRPK0ڽ Voc7`>ʻ[j냟9XupVz\qIQƧ;qDipO)Bmx:1$ +(7T.B"0HB* R  +nAa<#6f{>ay˪T ƕ8t/OqhS;`l[KAch@b= { qA\sDva\`HQ:˃z2Fe`Lڏ1y^?N*hr!r76l8{b p.ލ<`^Ry4UOkePB鍡7ƙ X Lԋyc< BR5$/ǭ1Z~7@ JIdI^h𦌯j%Kl;CiSƆns;VIgl8cn'$ĸB"Sh)Hw8ܸsbH ˄-aS$ttDod|38^k<~Kelƶ-!CɼҊQsEcH WCoC-Ta$l|v4Ncpd8pcQ"M# FL¸6]`%]uMm +m"rw,R20+<*66yWK+Cm* xq>3 S:#㰥`wA Qb S6VE=ǯi 06Ə"Z(|}ZVeIV/K?tZeocIK"QMcL A68.! +wpݲ/4kVd"n ĮtX:I3A4AL +C8MoX l"8rIC63йm:48L)DR2itbߐ>a|`%3G+MwxkM֍L=(Zr}%(ѹ;oKi4E:DVoBlt5x>c k&hX*t :!e2NIw t~TXC>%:\2-of:z "j^U8݁ny#%a,mؐ+[g2d 6zX{8QV"bvދWgC\mMw d)q YDH[ʥjCmM!ᵆc|| Kr/ފϱXĢW՘dͳxGq~⭧nxڦ]tSuݢb<4+ݻt)ƻE/~W;8ɂCܕ$ +3vL=icnluϞbpn4Wd%"j%Jxgx7ߓ#t!ɮ& 3IL|W+2,4VǠ]NdMFX!0=; @tҐC'ZXαbEO|9 +Sy1P2MA$qWY + 偫a.'Kd/\ n_"neIb<lÐ +Ynj+SCP4DxנӭT'XwkiZrdyϷy;luY;Y>QW[{|_MG9OɊܢȖ-h㻅8SͲi-ʻJĦy>v 2{;)ɶO1ظ:̻6K松Ê%a0Dc90b, +t 3~*nz!; +;tIc"xy +8>4a gxC2>Y# C ݘqHG_}&6@aA{(;wƱ`q! C$Tq]PpA9UǏݥ\-+ ߥRXܺJCw7v┌[Q?#'Cܒ.1^z +N(<$(qY,wy$VMr4޹zW-*qGbDg%}ve̼E je&=MDmWY|ctyV>K>0T~~nszJ yLf{"n`9gԋnW}{ r5: 3YwІ$1;yW|O[ʬ<3S8k[:˯Pu;#Lsfyw; s802`Z2/=tO70N|XzO%}}{ N7 NC?z$`q"РƟ*E\|2v'g{nӗ_ް{Sd8 ͍?_=P~PNߗzjqVx!VcW Vl!hH4K@A%fRPEm{ +(ҙa*,}[9.LpGl랦seou,L +E㋙Cx[~y}|mk,YTцCkH)A}'29<44umopHg Lqvc;lJs!A)8+Kq)CAuc9HA5?6W/Xُ*'_^ꀏXQb 173W @r۰vL=Cxr1/ > %ѴgzKCŧ54F(o0Tp9UM F z!n^!Whtv5 ۘSN]ۃA^ - s2YtU90҆Q +/qh^߉]H%G^К}Fi= $|#&<`.p;BUW? NCJ BI> ߄Dzۈ>c8rl)`knȴ\%*r}xOm.ӷ)\qi/P.-1_y{5oMqG: eDH,Ƕ$Rv iLuuo?Ƶ/XI^xDxjeI=E:B]6 Isfؽ%HsGq@{h 1 k雯|k?7CJCb{ɘr;-2,5G Cr]PHiw8"!7ѷ(!U>rKOQgN MܱA|4V +djl \#iFcB|zPǚ + 8T7^ .&y0|?,B=s>'ѳnN.¸8xIeT1w:@^Fz;'98#zu~{#9mṀĈUW rS.5nRO/ 7֮dA:l⣱e>2_B2>>x/ON'=Tr}?ioQxzT;6m.{P4dR24>Z{]tl>A/ڗVz6MMvtm- [-O&P$1vjq.T`xhc`q٪{_>խ?jޠ˿&bw??9]]C ~e|_|p ]/Ϟ1Rï,6u?8J-(yՄr[/_~qr|~v5&O_-S7Wߎm;pD,|9tp.A`s|G+WSӽT ?VJtp/% +BihZCp@B!LR􁒋;Y%H 0̎5zL.LeaT9PF̙˔r*P. ҷBe AQtCi+8 +-P1Py?(X$\.qaDjeI1"o#a7<.>rPiXHk) >R-7'DB!3JB^]pq NL㵨:Q5kB(2F2> yqA=s@ m54P9A@lBV c{H KIj~/|[9bRtt;pX*sDG*}} lp 7{N{NPE*Ed&;X ŦTR)Ub+NT0A 8z ʼn3axӂRAjRtjdӅDف9>XMI:,TZoTEu +!ǵ1"uSrYKB8ҶTIH \[if"!bʃOb +j@4|Հo6 N +J>R*H5Ib;"<+XiCј6]AcBj8p2diȹ9 /w*˄w;q:`(*=oƹD>q+CEHHeȏ(t&{;C?Ôxcc)'bu +w!(6P9s *ES#1QG$$snW!d V޻ryOw`ǀ:ȈȌZ2[ 7y &U@7\$7YT{d忌!g5A_d嚹F,V,)XyʞZYRXRyn+b$ͼ(b}i ~9Ɛ+ Ѽ3p> ̉uDY7mg*-ye{Rk"p`N"hy&E)óc%.h N[rc@ Tiܟlc_.aI6ED{c WF>*(6[3HH46%Ć0zQ˃unbG!4zf%syY1zMQ'Y bgdG/o]@w+ 9p'1 ]ĔA{JIz8s]~֝(-"5 49nYIa';%rg;Y(/j +g ~'"A" 1hu24ifzIx+U#c4DC=|bC"Erؾ?>eRh6<7D-3+ vz>{ɞoge+w\m\RxVrtfCe2'tJUn3o76G4pܧ ͮ5$piKa3~f!עMZ4R@ yN*  s'b_RxײΈiJN$5&F PUީ<%oF) R_r"3[^#hb|[ӳD5?IOY빧 SyvaLĶP&KY9+fs7:zMvtPQlW +n13p-`8J!xF+lg?#㞳gv02?.=J)^O,}ugg BO|TÂ]#y}wJ#!f*N&>Y&TLSx&15I ٹ֐Bw r'q=&rIWfՑ$"3j.? /=#Ns#vV0'Xlﵞ'45n0j5Ͼs[9Sيkd!wpq;i۴b#kIP>K脟L-WOUwQCB'ͷY|ʁBe"}1NHToEN)ݓrʳGEU~A{gs>IrC6A@mJT[΅ϚGdG7usZvsknҷ7s 3R՚#Dv"&7~8*u;L"AN""l:Rx8Kb3:;y˦ɑ}VͤߐlϷ;KdųfPYaDts8wJ0,cE+&n?m9]olA_0,^Ǟ_$ ߍ!N#{faZ +>2#5d[vJ])`Mdi(<춨 +w\wһ}VHd%xꁖҳkN:ctckoo1u5/nݧl½"oGԺ9e:Dm2v vkjSJz,,GpEs0'+"8 +lj 8>x$0P{Fb6+&OU,@wJTo*|OR_0G] 9_<<\ &hۋʤ1%c%p|G"EtV.v+1yQK@J5,]Ee7WCgjo \^zY#xCjUmuc7ę3N5Kʯk.ao6N[bɍ;z@(MP{Xr,5)`w$D Uo5k#%m#Kkb%8`(hנIG4s_}Thh,i0;pPGfXC vŕVMaSi.49:1XQ|?BvBZ|IIhQMه߂ҾOU덆X`bLp4ϺFO;c9.<8mOx|V"3ƘiӰ{"*¶WeOJ  qG)edE9oXe[%?3JSÐd1ir;g2{GN^>ߋ0h#ϯaQ>V*r݀ii0S$n ~ƯBrT/N΍l!wbǧ-þAn0U-󲚤F r݉ru2ak5s(ۉ +$G /0Y$ngS۹SJ oi(3bKU]W7Be6kۀs6NS&(PZ=MaSx&%?A<ҪF#,dz^e+Sߕ1FgdY] K7j/<;%*6vA@)7@ YOBsl!?}X E֬adkELYF=G|SP1 L-6w&2dh11€7wrg5V3kP$]gJ- vϿ3@X.g9yhG^ЩgIqhP." ."[>x)qqX"3zHG #ArsוgЀqw*t&UҼT ~40#%ւ R !fWl7T}0`"6h1b4nD?`*ΑS_ݽP=EA2,Xv il=N+ +{NN'ᢙMU̓6SB&h 2U 2#1][]4!g !uQ1_w`S;FKYiSܦE'kD1{ֈ*QƤT;A3=߭ k[vxGoIhϖ|L/%lʼn'ηϾܮ@VOB&[#1-fw{BmU9b㹗9j:9Pz9S]39@ळ XcsƅxlsRܒQq'aS]Zu,3i9d`{ER B-$OT&Ϻ7(nlwh\|/SNܓpyvD$Q%LYHVDXN4g)5UH@3 Z0Û^uԝ8+֣qW[==iݛfhNIFv2Sk–-aJ)i_S 93"9i8 Au$56hΟ$}AcvIĤ (ʑ\Iސe,P= g>曨lHfKԔ'K>F\H7Jg4^:tId˯L|J3Dw h y~. ,z'g @ĝ ucb±#mm E +,L*C"ĩeyxy vBvV1mE1KXUIHIy$(ei뉬w1*ԗV@TkJ$a+ÏrP.AU>vnA0{@m'R"?͓3s"Tw U$Զ&sv fW~#roŎO27S;^ khuGrSu֑gfsWU6\Hms-,^DmyWiߐpڏpdw,<#UZw. eK&6߭P2A\O%U 7ʘTrh%VA) %ڸ]r[Z+IU</VQwhف`(>b(!6U%f Q!=(Fmn|~GtwX6V;r?vub6a7 +5(Ż:Αب(|a}+w˗T8:>1,Uozq7lJsVeXwD y3?=r2G5e{ stsyLg ^3S)ʈ:@]R0ɯHۇ&pUЎ0}l +B`=>^W{Ϝ:W9ءI>m8+X'iL᪝d +* Omh"z fWԌXVukZ悙Gq?QY[#9W;bNJRiwKX /\0U6C c +ƈ׮)oH)(GbPҙ"TGȿ b{YExIJICiʚ} 陞[MVv$g:G[jp|xCU QY(U Z!!q!?t2*'R?[>Y%Kdit7wm>a۸_;p?COwsl`!a9*7ϨԺ a>L@z2W 6EqPM9 )E=Umc::9c +?g^g;?77*{#/~\ĩ1=HF:\(p $ T +1S2Tc}ϗ/a@rA%@(?9JeZ5](7tWu*e rND{!|Jd»UTy"\iRedҁ§t)p7`JGZi8i*Q\=/vQ2rQOCyb>Aٕzſ[g"qF{+Sǜ&-ZRȢґJ,uzhA2,@md '";<6`#,7M.b+pA7&f zT0'gX?SGeˬl;Ӵ;]P8igj&axPdz+;%E]X/ͺxSFA%8R:tn @5=Tiq%x ;! W; KBg1,ߺ|i\\'(X3I] 2V'O@}? CeeO~~CӾCW&\<wip$űU]q0P׹^_`2TD|wi7,|Q奈tN+0ڂVUȠMC.q(P$Dےpj0\ۿ_5@Ε弜R80#we<H)D_3~QQA3UB_cg8C`.G6Zn0Ml'Z \iaC~<x!13&h&Tr dKL$+[j=TP{"YWH)* Jq1FdfWz!~ˆ Q]!DfVhI`I\ͅ=KE,>HC*_ޤ׬UT;M.#ϥnGpY9jų >$0|N\a˛-5zPF*4꺹hY`$~Ɋ~$wF~: &N!(C13g/vEj-xY7Qֱ[zqN(Ajy',oN4zO,vS(` `UpJ*P#3i4V+ -GX4~:DlS$Fl,?F_%Έb+Y"뉿+ kvM +,rI!0< 'Bb=Ѭ"F\hS{;Gϕ:m !1J=ALRb/aR~#5v%*!OH*5u^98<,F!>B ]q KA$@ɖu(4it,zaѫ]`o/:$03X*'^<@)lEe=P8#A޽{ͨ#~=CpMzf#WG3)E௣md]4En77->k?*N岿T~ Q~S(luG?L+4+(&_3Yg +uǞXVUm+/~]ū|J4s(ȷ\j'MG&o^VX*>e{`DtO*ӗ1{>.A}vRwO8m3=XxʊksWD|RWv4O!.m-Zε,&Ff/3l ﬠti 6M1Ej41vaÚ&H5 +3pۑ!n9&6wbZ +3LXIeՎ<f .p#]2`@)]] f'G ٳ8)*r'ˑͦcuj*VG*)5t>h=Al\=U6:M'`o+qilnűP o["U;;d8yWc{Xw_`V]YFB84"&z4,Yr,  nSgs'r4ӳ'ɇ92*Pvs0q)-ؽ S6l\luQ\.)cIO@ml5GYxYB)C E :ʂnO P#z&[֐ݔy:z|24cHdP~r6&/85u,hP:|_6ZMkӫ(32̗E;f!z0hO˱;>b~8#UWYg+XYz_zuͫ!3߼ʫ߼"?TwOWBw.?_RJT)"}(7h{ԣ TdU + +Cp8t=*^koݑӄ [dh=ؠDIfOv?rL %"2|7~@ 0x89Noj%cU.T{S֣cb +NңNVg"Ət \T"g}u\/_ԫj*;~q;5r  Px6o6\J]=Rʴڭ"~[K֔7m#"*G;XDܒe(2r+P!OǪn4`+z3fsQ=6Wp\ j-?MaΝ" ? ."p;%3XQrZ|nvr/&òa4̴(CNrgGcҨDnE1{3o +iHS:En-E5){=KwnR&e[»hg-<%͈[6BhFov=gl#Y[8#Qf֠Nk;c[JdɳӼ`Ghu:I*js^s]]0zj%Q+fՇS?>.ۊ6Q2͠t=xMOJ+XiOyd(r>_6>og4˕ovF\Yc{r',dnk 2PEH.Kғ*KνmAVJZ3JO?hűOÅۏu8FQuJ+)8rm3ϖqFC,%3T'=Dlt?E/ ԜϜjl]׺*g%]CZ+ +zԒIפ1Q늹2t–TcXX(4,y`moVAeEI4¯i(Mݸwfc,e"bF; IQ.}*Mݢl` +&;]&e:k` ;/Vn&Lm3K &HR* +]m'tNzq|57kXnǣj)=@zpKzG +43jsxʏ3KZ?N_D(vj$v(`E<"G"څhRŃ Ra?N# p%VI?]l&$xy$OKQ^;?Ҳ2DNr|~"r/4X - @7vV 6"kZ+ׇyn=J*_Լ_ЅKbk{MxFU>)̹^I#b!wK@;D&涳F !CIY)T3nYWsN , )] +Wi#`lɑ| ZyBH-=8,:y-t{hN6=/{ g'֪} pBp s.=0 J]d⚿2W_J2h%n3h4VQ݅r x|Խd~/5y $"΁dg.]$}DŢ6$N*Z@4e䄠BhtGn?d'&A8^ڍw4mק=H* ċ\oXrbqYOfU:ʀb$lBbӕi`RC:$U#kW + 0?=srz Ɯ'muv\F[X_gꀐ r̰fh -WD+h@a;K"xr;Q‹D--YS!}eexZb; endstream endobj 30 0 obj <>stream +` !:{&\FP8M{8w xF23O$d38!k(lX~4S +6{#R{_G9VU@8-O)oOQK|g@=z]z#?{i(tYZoX>НHv`!t1Hr#jH-c"H;.њ*?t#rü#DN!8*|ڞWl\e2@vSIV n>"HxP8CW#NӌM∜ ·.Ӕs$b=YiCD }M.iy +2oO5,u1R87=]LƐ*q_ru8f>9rZ[M\x' ]×=8yA'h'Y񇬵"'knG +4aCA!͚=7Vk?QGjEҦ Mt1gn31'NW]j9iڂG*XzMX& +~5U(3r"j,M-z-S-xGzԋ3QxmdS9HHN]H]PRn OL{kЁEz.zZ XPpX>A.B~EI̐jS-/*\6uB^;ItKq#Z/,G֊3ɻMo,~_#*fm3i,: Ztp׌ +S^`Ss+~ !C(mIioaZN>qՋvWHFDowMg!/hbg]i,>|PMy}Z +믝+7,: kᯪJ:~vΥgnO]ElO6jl$WYE}6lq<;^9=[/' ÈAv}]qޞn}L#JS#%Y!m`'FvsVDcT!WQO!wj{8:W6ޘo?}UgDQSW0ƙv[Q#h +W DzE=D݁ } pzF${+IsgG<,o*\){RjV/)$b_۠yXJ8@˕xP4wTn?]3ZF%un)NFq@>_i -?r`3B^$8I]?=1poH<H_^nJW1^> +]MQݤ=oZWNIHU7;bwQ[᎜4:vA]Ic]+eTkf5?y AS5 Ks |dmlc` +x%یlP >LZ|E8BY|bm(5zF"~C>q*t#nl9뿁T膢 +Y8JaEW,`^8/< ++2MGH)_)#̇dGG~/hr\3*^Ax5Ady,S'(22g &3!yAn'wBē+o+ǐ"+zO X +/n䖥Ԙ}z2KGRgGCuZQLB+g^b$Aء{B=#֏'gD5nw! CQ)UoHT_ӳvAI%Cx3"{.UYqq糡3D]ZuHtC-ѡm: zhjI0F$hQᢓY@vhj%|̽&n䁜RNݐݰ%T"Xvت]9&)e?b8aDŽҸ:o%Iyl#|krnEW2 `^5yGGZrJQܶޮZ8RG84ZmJ,kkFD4pZb25=!&缦Gi{HۼEsFAө]'@٬*YbɆBUɻ NPns'^(,ltUbm'i#Dč|'>m= Vn_ZfQC۔z{#98_w-wIQ٫?u$/$ܻl5 >tqSK~b4i3:.92|Vht]V|V]稤{!+*x_!"Z.C  xyJ:ej nQF]0&N7[+7uZǦʽq90yD]G #ڹ)*YZp*'آhK?Ԉ؀ɅC3ziCQc!靖60zkvgBA'V_8]e +LQM}TrKY`98+j_,vQ.ۿQ}pKCJ5xK l?4o)b6Cꊋ4$} @_1k}Cz*Wxgs(]f+bIƱ;Ϋ +n@E-*N~DOc~×Dr +̢[ +?XP \:4VJ ݊bIV$vEv%~P{%OÔ_GB + +a!ǝX#sͫs%6Hq}t`9Xpv\`ւR^ @oMڒ!پ5g~+TKϦS Vԡ7,b L[(=3| p+!Ljk~ {,>ڙ.`jQ#/1k 7=5`g8A,}S!P=@5#1 \rZ}<@U-v0AZ0 (b$q:j/ r$A20r|3#'?d[;u~ eA8dBŽ휵H ""\Dp?6ϒޭ?FMS*`7)PdU;mnҺcH_TRK)D=v)a,Ht$> ɎW?0T/o5*Vkf0g^TZ#F$EK#,Y8 ],`NqUsg(z"ҔOuz6,.KRꍁC;tߌr /.+珶M^0`| + *Sxi;^U^K2>3wP*p*>Z]Vp!HzCi5 vduI}Nga& UrF|J GAxȱz _;)5K +څ.@jj#l>8I~o?LREց?Z_W^}}p=秣JęG҃kPJ<W9y%8d^XMb;]2a,igKlZs1@)hR]*RzQh{YЕstRh3Uϱ{&x->ߣ0{$[۴qg)Ӛ29r߱f}Lc |x_I#"l7)mKʀΒ)3LtVU} Eg@] gˮ/h\ӴkV,%/ƾԛ1cyiP^Ů%*D눫HW%<0-)N-Lxy]ɠ%FR'ږud4#yCR\s@C e+\x-J +wIi%RڥK+}DWP{]F8xSFH1Cd DԂb}@rGb70'lg_Sxs+Z +ډ#Mӿyn?1"x*=&yhT zT_Wdzx7Q4r4-kRǭ޸Q$)dNZg5OЯE5 H͚2ʲxLp8W:Z }҂&+Ռ/ߙwGBMSG oGVֆ:a߄J9ߞ |xB6<5TWl ;z׊~MJȆ@0/Zy9flAaq?lT wX)CO62-O,^G'2ي,C{"&p&*x|`ѴW%\e*Bl=0+vyn|Ҥ"Y;HXԴȪ|rLrL,_)a}JE{gYxǐrz;Iw"Ç )ރ*klN$)+VLgP=b;1!Wٖ>͓O+v-ݖ7fb| "$ܜT[< EMYWO7 iQQ^6; +fAn6%kJ^VxXEYT: usQW^BBDK8K`AnR{MPGYߠ "P6I?ړJUZ(_U[9 w8R>s^4[T׮캻 ~GP@l:`.w" +7cHRQ8ҐHřtw:plx#]a[Xœ8(!LYN®h[a;U-eE8 W'9[bWRRJ>H'3{~~$p v QPAG9wܷ!i[9L3Il]l B% Ժ hDx)NDL[P#"JL9j` +DPQ4m0or +N/Ա B:M\\D %$ӉbfX]wE8z4m%*P7k!]x(0~b03~61EjvB /E7ηt, :Scvk#\"Rzn*5#ӝR[,1ptݾxC*l o"N8KO.]xTJ2';(T-<ÉӜsHx69>'tO ;04݃:m(p5ǀe 7=a^WJr(d9~H*#$LsKIz̧rF)gȀ*TCT7A rë/It/1KvtW%_xG^m dp>gYʎ*Խ"|+6-KdM_˖]jwdzW{Mx n&Y[rw0N^ڣ%n\b~h'\ R8n,k (߯?(G+㿻 +): Gqrpg!$V=ɲ[~Y}->qg=+}SkcKLF6uAK tZU;G;+Wy_5 s\g2#ZdcE[λwI.bM^Kz^ +aDP qW -<r]q7~ff_.,7m$cɀ܋=[:qFy9|ds:PWx_9DV֬:. (V5GNXOgvGʄ rf|r-q.9q%gj]㕤j5 U2ܻFP1 dGvN|fega`9DOO^T:2c%Dd[_#tHU[.APwn(N7 ߕ!Y-ty9c3JC/r*n}N!غD"3>*l'y0 \5q:NhUu~x.d wxQVn'&<WP W~Cn1J}@f#зXCۖ8/ rTzP+5[@kH`\N~훇x 4_l/ +⼴e%#%Uo'Z/4֚M$Wv%F,}룈 sbb،jG.;Jz*[% DgBB;sq~Q2ltҺ3p0M$yu׎7,@s~M\G\u8K )4%ae͗7 43);TM 5,w.[[qu,HDM>/^Vg_VGĠ+`J1 pGgL/S) Q(=OuGCx|DU3&tQ]գɤ"SS6<\p) ;f@/J'jdOJg^k>F%iH $A3r?eh[:tuw2Z̮ tm-_:sB^_;w8: sMߐOP.j+G\+ǩ7B/eM6uBBhL{xM ~C~.-棘;K-U->,)\H)[-ۆoDN䇨85>db@]HX#zqErhA\_i}T_’7OI4'i0`H'pLcOeTr0^(NCltVdEI?9U+Uf2Sшa2K@Iie``Z4鹟tgXWQ@[#ǢU!=giY竉L-7],$3YSLp-#Hjǐ_?bƊܲl=? #V̛2;%|UduH##6R[G7Jy7(bOpaWsk?Z +Q0wOB; q|%2lcrTv0r -RG|f: ~cc% ,w7Z{WdAj/PĭA]2c}ھ.KSBDbP:_\r.wF\5X\n;:QxQ^ + W%|CK{J&P7+b:J#$YJv+pͺDYi_t(1yTȐҋtDc8Gߐ.c.R ټZ%v*~ C$0}%ӱFvr_'(Yw$+h!H;DBA+$uT4cY8p}*n~C|Q;lM7Q_8_Ѩ3%&W;`sT{?dK]CV. p[ dCK* Vd R xb]9ExhT o"|<+=`KHI5yӪ:"ȡbY* b \S?DT*U`DThdZtF:v]XP}ֳ`٨H%c/NWX ,g4q+2&A6W釙3CgD했9Ek8VIROޟ`{=jG2wQb\cGp㗮*.QA'؛A*34j< !ӳiLWI ep}ǢkԀpZ$8n ͬ* 7/ U>Raᤞ;>9ZG7iun?;>,6]tYQ~%;(Bg#ky 4biB<G*'GzL^3GG jdLw~_?D +qM^8ê>S@׽w%:NO{H4i_C(p%%E]f^sGz5 ~-O_Pڕݽ#Z!#vI^r>BT>)ܻ@nb "BU";g &[Ñ=|M7p,dpszrZ%1 ҿ o>T[@2N>ǐ܋֑wR BzRi]X@?PDVg5[ӑFc{ZƩ>7˕hיųdߘ6r?Hӝy% |^}Mޣ` ?3܂z>$(Ty)UGι@:J*xդdd,O SaT5-"ΊY2p萐&Je-O]XKR~MYI%}TZ{Kj!oQ O6׌ʠLm94ɂ +;9 WC/#`onH[![=T@>L9`jwb7ݒC۫L*lK _E b1ó)2lȚKxg//r}/Nu(QJ`y>b`?c5X58#|CO +2#j1o FގiJPaS_~_r,Ry/U}^#zhH"rG3Ho +?UC:\#^z_!=bdX )c0>p9ou3duCJ<9w3"*C^t+:H^$/G  8PE[ +ԟM XW늮A)0vDE#u{p:d pyr3;" +٫ΓL\KK~.\dԡٯPJ@^v {9<V/3D%!(#ޯfgZՏ(3ipkԻTS9fNd\xތٽaq <_Cyپ-ưз/ 21A[,rz#ϭ]Pn.d>?;$NՂSiOzD|`5=RK+MV2%++m D\F ]!@yI+#}5u)~v04@EqIn!u&RYy@ZЈ=zBtUO]m/wd2D+Bˊ@j6}fۯ+́+xIrFwah]XWjb|K3犤cϸX-Pş^zITLgpG[N@LNܯM*ڷ3ŸlSN.mAฝ#O`_wAZ^kΨe*c+ w򴷨>i '-!$9y'CCDnH/۱G<κN=oy +ꜻsji=Eo >'kz3j +W3t&O0̑6L SI1r!w +j8sQ$*ˏ -0u;E'dY@gA:ʎ| dgZ??Ws7dł Y ȭ~E<._oJ<7mYƣquNUxE0VF;,q?QFBsD\.:uD]fp@p5bZro 0Ix>;BV}8J; / "xAsX{pr<#aHj:'Cּ/m XiHx1r Fd0?@4n+f8!$ fsX 9z$k@k{p+/4 g:;8Ut:rzpΈ!'wh?go!\1@r+7?m3\.t&@Ê;bĸÑuݖXɘtǤ.(94VźQ#߷)~2r#_*iȘ +$<Ľ""չ58ud u\ [v#B +I 0WKǿMdq3RAJ)FutAPv#2?܎D?uj^YtgːG2>kוJgSGϘHvhH֪2d_]y~@:+HܞE͜5t GW-WYV}ez\@RYjfM_ީ_ju2cV2C_S+f +wݬJûoP?4VuidVygNst5b3wYD4RԌ(3b:8]pzS(Q߷|Px<,9pG]I##(r]"])Q{y-)_~X]v]lRVw.ZGgha+_XYgq//?H#Ϲ.2i>@:FU0w`^rzk^k׏[|VLw[F'qV(WڜܹC@Jd߄{.Dj!",#LLjk _KM4lE+uMg*T܅6p1R Eӵ[m׆i{8Q-zUhc]dաFف2pFxI5 #W KHHoÛ T\<wNٻ"'oOs+kzhCWI1s82R=*?C@&ڈ6USV@/V<99v€Z? ^eacg ǁ&Koǝ$$!!]_zgI@49Ex./DtY{q&+jyF͈h 0GXbwOvgEh֡uYE[ۡř=KS”PћD,y&OEM2xs?%LHPhsgsB;wzwpQ~{[-}H +Z2v^jBF殑N%N[l#2˼z#0`d-_$5WؽWI:U.5SGf\z~\Ԯ7%wmF=4UdD%:,MC&\M*4UC|*=N pX0;ZDA {ܭ8 s UI(k=6h \hjsѪ ZCRU|Њ02j6QA.CF>ͨ t1F lfv.eo%f@/-F*TM"AS\n~VK-<7\i,J͕Z sO=HE*<(o۟B,Y!k!Bhݵ9V ۼ?~w +Gx|PfWNL{F?Iҭ=7r? -i3㦷p'J 'ޙxZ~N'oFxma/8 FL]Ѷp-ѐn]dnz@LɮYOsEbavGĔ'C@1^wW|2*}FG0F';~/z]3[@ ;Pf[tqDTnGtΦk%/b|0K*(_ZMH#RjGc|C) fs晌wyHۧwFBǞ1ʀ0ŅT]%<@ nŨ#Dl;vz(Qk@&2xh*n1̓f?g1Mk|4vu@If`}Kdlb3t.z5*;zW@s 5e :68UH[ r*[AbΊ~_}QW>b'EnELS82vMTr?WV +b,"kA#5~E_y Zii3pt]Q@۵EWiY#B7 (Hsk|Mgq$8诞NOΉ]k?o,ꤾ eXhčs҃)țG'Y Q9\Wb8oubuoTOIaH7U}4A\n4COdRNCfHX=Y(ޝ][ cK2exZYnG*"*B +u4;MgK2-Kcx穩6- +`GZ:,P k{^4Pq!&W*Q,ze/*ET p\K+D >0fkT>bpJ6>YLxlEUXĦJ^)mrf緧z.l@Ilnܰ*IƷSkd7k3/#E/p5qAGynpF -7)/ /\g༎sR6ܐUw8C6<+2,2?_n|xOKlrg[ IJnl7S4'E\L9A*JB6c'z﷦0n7Zn5Uf։$y {RGa2M޾i4/@KNZ(8#).#P}JgD-=:<1ݒ<"pEMR=ԳYbF>Ψ6%dKFm0iA=3B%c ."0f#% +VM["]RwM a{%bW^P'{<.1³_E02èhoxۃ"|~"[j%r@$eYg>r (Xaa eΤ7nWmzh!s "2ŋN䰿pEV8ن Y`(3#,mܥlq + `GBP% 8^\^s@8sB=Xk)C*ʍ [ zD@_[KT +ؤtqijS8=3 878AL7[5S۩(.Il,&kiŸW’vAS#%gO 6QnԿ:R->T#1#̼,|YS"2`+{cݎY"qE +{p:q mvqg{W_i&jjGȽ 1odANNz64 +Aok4=vjH2ܱ':Sq}8LA)֫R&MSX/Ba ƒ)vz M#E4>'A]$V!UxzwbptJWM4)|--w>b]۫P"NR.@ƺt݋aS(*%s]m:A^EsL%Da!FQxn +wrfc6fB uYRxw$,ޯV\T&]0-Ri񺒨ݱW^"]۹zHZv`s]xqJt.ƱygA#fsN!~ʞj%B8Gv/Ç4bbфÜ;*JSQ sLV F^'^]Rf`҂tGvwɚlG9phG75;{d-*.j w8`~^~sϕ4x2Ŋपn|sclLX_\+"GC{+[ۥ+ $ Q0nõNQZbNO5i2W,#-^'NWhtɽ |tDR!sd٣G]`1Hvt DuF]{3v3Y:P}=#9 +;:Pg(y]/*L6,x/Sji5٠0*;yIw(A"u*כLQ Q/?5ºr;z@D +`o +k(CJiVE3F!k|ꞫrLGIETxC䨈Y>_ًg+[.IvUN]}֊P_q~;}A.U䰨nTdv|po><dVcYPuG)ƜߩDK!0]xr؊Iz|hݣ=(rġ:;36h!Ze.~dǥGZj4|kxDw2$֝v*8J )Uٺ1# +G!& Qw@l\?:Uٶ)(QN2A^k| t?e_b;8Q8ebg%^?>6L5Z N0m~. ?HnKǷ32Oa%ľm +_ڷS~Q]t0{Bƒ!xunjn\ju\g(/ΨKfZĹq;;!^㥨=`pYlDb:w#VBh"T1bC(˟p^㆗18?u?i{_1a*?~KAd>sCf]Άh2=<%}ƷGyQ"948c:D=I/㣧hPOEtO<{Ӗ铣z?rz#c [ӂ7 <ڕNc|{v:mg;8ՅNxk{xRBt<[;V`~tJ=4gF--4EW.es; G}}Ae+i9TUN)AJ%b=KK[W&}N5,29<.1 RUv=^)0A5poK@#.`H_Vhƨrva8еSW#pt=r3p M QK +/pr twS#6 hՋ9eqWƦZGcg~7mwXAPe4\4qA"E9mG|tg%1{=a!lqqFX=Jሖ:@ T۴<@GMEgej2aj1^8Z:&Vu )h2+zRLvسdoMxR 1mJEx/ܻ +)@ĵuU ʡwC[Z1 Ld ;[w3 x05{H]a +AiN2}B28y›WB;h~#KU,S<6'iU[]V$3@k Oho[0Tz2%Cv^$)(~hM+͖oPwUzھ`{/Mt鯴8i.ȩGLDil*R4IO$ +!"֎]?&M7=foրHDZS)n^9.4p~l<f>eɜK.MWlR ]ɷ*awW%"&!^=(~S>v_- o5Z4* !=vŖ"{~đ=>@aYy],4eP/vFgtIuݝ_I&Jؿ>GjQ`A~@u}^='qDbÚC%i({i׃_K챃lsJu`=B pxwWYz-u,{l&{>31oI=(`d{d-c [ ]eJxt)T).U<滞elίHf>F` })VD%%Qv,AaNt192tMKspߊ.x;WK>JevElW:S>N6/21IΜT,Hl1 w/wٓmQ#[&3HkY;C Z].UG@dsT4Cr#xYg@|[/4;htntxr6_Y6K*bzn4+lhMK(-9jhV0g~c 21^"GT݋JE4ؘv z1!Jv-Z:n($͒z{ђI9֥y= <I(<\ ukVA~8:wJ߉L`YgN u{J%X\-6uˮ'jv0|$包b~k"UtU(S7{ H1;z,t̫}KW4㗂OCcNЦ7.NX#&,ymиPQq`HgzV:7@}&y,Vܧb.-jk,2(vU.w/ ]e{AusҠOɊl1]3D8örcuB*Q}~9&ҋ5]4/!C$0 w9sh_9qX !S}IG=g]\C-GSUGo۟@=@.LgZNN ;bW#+1[ԛoj $qZ*GT6vP΁Ill"ziKkyTy' +d^=!A[yᏩFx #-x}=hd2wDn~Jq,dEP嶠^z!SxĹt`Q<.)5.ȧ!:2O--cV Z1BV|tx8r^-k;W+#K|_Z89#Mh^G=(z2򯎩q#Aj=||**2a&Oߗ)QtFOF,pjY貙;R9 U{8 +>|h_f4[ WN/JYbqqknۀ8g/U0֓7x%oE]Remgڸqm_nՂ&%.ZTM~܁}Aj}kWWן{Hѥ܄I7r`3qL)ĴXN N E;멥xWWx)-Q&P_ &__ѮށŮ㪝3ǁjψ92) qZ<-DLAO6_@"3p 'Nb0Ԁ'yO?;P#Ujt6h#^Y=]3} Aؙ/Z +y7@Ktb ~*lX\C^`k%{h9s2Q[)侀vPx/nbv\^NBuCJqtZ#bH"U)1Z,Oғi9[jW/{XP\)yK!wZYIOރ| 쉘L=4In^ˢڃ˷(/JeC9~;q.#{j C3mrQ3M1Gfd9Dڦ=W:_]wxX2* g޹fY^y\Cuy(I#i-F{O36Y{Jx힉hA{E +]\ɧ4Q;UZ +7qZ8l%*w3{D Qr{-fуTdg;ߞf,B4 -@ig%"xb-m5jefLuQ{j R`HHd>[BHk"LN]X^KXgeAn(u>uEoZn 5)-SX,y?M`q, }tJkZԺ]xt`z>zMAN}zU?1^w9gp:S*7R얫.8̣N@|gQ>ԞvPii#lm"K0{(]Y[8:P=RJxO ϶? +:JT$&*#=-VE8ģXuG'{ V,. `}񒩨tN,oNXRdleO;/R̉Y7)s^m % ?4ݘΔ5}`ّtKcWnѩ"ZAV[; [)V^TiiЈffDJb`ZpUy⭲h5‰A5,%"VtjOc`wHK4}ڊdE#(Ѐ-ޱNhkӯl>kS+þY=֯LIFgMJ/cӿlͻ*@ǦӞ>Ԣ= G=8oMCzW#DR6okl`H!+p>{;U.2 Hdd)CڣJ/~?A3WoEʧR_\GԆbvHrL4ky a~&c+`8T +ܟz“7Gy.)h͖VFl3ϧ(lq6{wYQFRŠ:꿝L-W,;vE9LԨcDZ屠ew}Ws7!z9gB^-T+N؁Nlr ݭM##;83yQyeE͔4RQYPf%=ј@=[]mitLrW!ۦw-wzF}InaV2@ + ?":=O;܎b/##̺NU`D;hu{ҡ6Q2aCz)r-*F8QHu +x^^H[\^L5> w:͚t +*U[UΨʾBx6#8.?vWO +!st)}5fÑm&l65[$O0M= tqٝs]}O $5U2HV%"9sϱ6FE}e~ց;v .˪\2{]wW#e}jA~E09)&{ sg(+Prq=# Ƚu[uLxQXM$hG~g~G 3U^p [ (B&,hh 3묫(KEUNw^]6%{g/VcwJ CH* +.p s.]6N z{L 58"%z g4_NLuYͮk ʬTșJ +3#ҧ0Rɣ{W'@TMdY8W<@EvP׺uMѰBsˣޑ5DQւ+ռȦ"ׁ(E7 +aVai +DSʤ^mQV f';xp ,y(Ԅ;ܹABMb"gIFjF]]]#0@F6-Fgh_2-tݑ⢕{.jjzF΁'jR(e#ݣT6K.lCa&oprמ7ܸkDKZoWiy~Q[.cu)hCeW#*w9ҫ>Ӯe +=!g7HTXo-d4ZErz8SaOd}fi 8d/ێ%V"j=?xK|=߫"1ƨo;TICSPK@c!p8AWR?v| L9 dlx䁕:@ k<=R%/ Î42h0J.mW;6D+@%OSǧ*O}珕]Bjy=z)[ʇtL'EZ0w|Ν{pdv'_e?[j>ۖ+s={N60{XSՠ4BK[7=IӎzC(dSruVLUqΐdԱyP&DJ` rB\U}mv=NM8*ypt{ lruYM]B/C'~ Ef2baiyӞkIWlni_`gVW0z^C(fcY]S#.Nq]dkWbEF6nZJ~{%E˰/]Fz1; cy0#ڏ=S&ϳ꒝ +*1E L׭0"VLOS=Bř@nHUE]| Q~D7KAfyn#SjK5 ጼ",Gˇ9c4 2OxT1BIԙ1x3[MPc=2FMY.Ru! k@$/I)X4c^Tw ەNwX4*ZT|pK/wɗ8m2>kPvUĩGHZx ۆ! T^.dgd=B4 afoWac.k5_ M ,dC I8@]'ΐK/)T<ngBϺ .BɎkA(>K)qU/Cucɘy}˂|ޥ"#jGmȘفc`E.4'31{?2Kz\_s + wVx-oX/C=>A0M ^ >Z 29Ku0Oݸ+SBzdJ) +DՋ۫Q)l7h*ɏ>ko$)Anlge\ +@o9k@A ιgFO/{iUK<+8gX]9%9mpM<v)Uf$"$k",쪱RN*yh!0Us -.qmgBUn})T1BY՞9IBiR&bYUÀ!2њ^a>qό+©LyW׬ȡbѕ(¾b Tƺ'Aw]]n1iF|Gy5/]__iCe`8ŷ*l' s=x(ݲ9{TD%aԚ9g4Դ;@ fvTLf=(R=)@U&pOy78vfK-}>XlwMX,JM < &'ߣjK-Z秝KW+/ +C6N /%iiv%"sn#+mSħF Dtjf .iԗxɄZJH0"2+}A;#}stP#1qgLN0ažжsKɒk+@7ң!ѫU.np LDA*ڌRW +tBD#.A dnfE#rDp% % +IދdZ+9~ߊMj _pSϜk<Dz gTplBM}T+GڋU|Ž_ڋT,Y%o7|Q#tֳbqLXvfd퍪bv!RMv8#+`bhX{?i(BGɆI5@\0_C]jgYfj|㣾[jjM/˨3"2P%w +iecVHhnQtOSR4`>S4 8K +Jj [s,K +ӕiv2E+?GZpׯaŘ~]i=#/ZC#|"k}Js[/  +ޗdU-46e_a۬h &I zd&@ܽ31zZnMα#ș-.,+X]7:1~G bW߈`0~F%v./ ~f7ӫW;҂d(Jb8a#,,@a;^UBVMj2qޓ_@U 8fdfHg(%FI3ة.9T̍|Dptu2b<^D!o/+%@"&֣ttoݦv{rLF +Z&XFK-UŸXҌ(I;?\%QyKuB ¤=NYB)Ihɷ- {-B:<+tcx?6&(=A/G*\_Al=P!nw ԚU|N[=cDªKSkxFĥŌ=@@?5+:[?P8"|@9GX1-ӎu*fMS< )L_,khPv'p=;6?LO +"r Mb9[.tH=3ݭ f쵊A0.-nq.VHU8w3+twX{%1oVJ.7"G'Fhk0H9@ZoϏiZ"%Yiע^,.T(GSEC N=E4{t :l"N[ 3صfT6%UN#b#>>yFPi(#Ϯl sSUPQfTt< gnelqgF+ +^0Q<֤0X);aW"ďPBeQӆXwُ+-o]^ާ ?:O- KuU6F& :[Ag1شnܵ·\8S1oʶx?/PnɤHj5J;QA:k_G =ʘ@1:?CF $ba% +TL;*8`E!p5#Q?fRV$;9d f +>w 0<6- 3)mьpN_S[T*E|dTD?5Bf\ ::aɇ4)a'jŚGX DRgR/P'c㚕%u2}U>}a5.~`Qzcmv!U> W5d]:;pXI]w=!Hnm30kaؚk{λCmVqP=J]j2&td-2_gbt=#ÿs?bR"#k沠P-x;~P2wiR9nԹWo2}/VˤTQ[mrXwkQ1mޅ#|YY"~#'u-"̕\ijzigY]c֬{z|V +]S_́$! +H0vv:u6uz9Liz)Aџ-~V{R#ylOǏ$Bh˖M~({dQ3!(*|z2&٨r`|3@yS"R&F=mAjMn34U4Z+ڃF&y5ٻjL38 wȐP,)[<B?S#sb}N Q/8]H0)[9Şv )Κэ䢭Ƹ +b0뒿x?Q{-3XK{ W}H=hL+peBBzfc<(ǓȉB@qZakqkv4_2 u=8b^T`r8rS?~Q9@|x]M=XwZ+Y" +7 KH?ZBJ`YorH8 ='?qB=i1¼dE\\[='O= '"b)lr,+#U!FFabumxr-`􃎎R?U*8ބ¾G$O ^o\&T%9bvFDCWۨZY0|p6G5]B|&tpoT1U<R8NCM?hc!rHe͑&9ni{4Qalst1婘<>|f[ +kC#Ikܴb0gطR+@^ rZ}.UxqT9?gcy~ʟ,H`h& 1sanς|zmʣzGgϲDY,:ZC*x)9&DBWUdwHge]b:j[{g-\vGO]"VW)\+]V!WnHS"U_ЎK;O푌(,U?K2URyyh5Y?W̿UG!9~{x[88ʚ.LXmPpU(TK<-OYkАG7 ++-b[#H ҞFg ov6 +Xtn>CҧawQ +HF +$L=Sbj>;0o=yf sԪ3Ko k>2Px(~*Z SgduJnwLcTdB΀aDeEnogQ:KQtJnӰ$C̞ +j2HY;戭!%5K:DỈ~cX~ѣZdDYm83݃P_Hj<74}bۧ!׭ѣVQtUtjT\ݙ[Xg '2zS* ?ĺVjEjμSҚsqC:ǾKǐϊݰr-V*A*p Z6v:̱&ן=Xdc: =:iBx̞3L3]^B =etv9nV|uDc vNG!$i'qIHkF>,}X)ǞliܭZ_J*yYJTbrn#Eaݱ'}HYYUE]w"A`B`q#gO;ns[ S (6Txz6qVJVRdl–x¢/ + ^9W)O:Ɉ9gcc&შ^O /S|u;] +%5&aW4*3)K$wR{n `-wI3"RĻ󐕧SOG~U@ +6rBxPH/;O`KZtx~]xE53$r9lͫUSiT+yN#5TρQQ]~G^44]KHGyQ1W3B b R-*Ѧ Asphl#M5_ "q X zt>#m +^cɒaTbn֨$VzJ,Ew!ެ iTa^j0J¡N8f.dV1 +I0BRHCLET,R("$._h/í1qAיgsjK#c#GhԳj+~KvD䵂F>+9G Qu!$9+Uyvr{x"u{4u X?_Vnɢ fQTWq<;y՝qb(G3EIimfJ*0E=oX d>y\֬[,ZB[?䏦>W(q.P[ySO%}d\& (LEJ-<@OtfGjԷ],qSa&~|Pi؀ +q#xVa0ݢ)*pEPgAO]/ ޮ0 K},Wd],g @I]%&_$x|÷N +O뎚x +O#?+A3)BϪ?*ھ@*`p=*h\vGR[,vU5aR4c{DFgۆodkOL|޻E0":Z,t=O.mMu+c >S{i)͕1rN)&_.$'SL~.Eh7x6`_`,g/eT|d:Mt31ᖺzZ |^\jVHxD;##lv<|q:dN(Ih"%]ҋv +HR=4+C6q{)Cvǘn;pwJÎ3e^c. X 5wnEЮBқbMZM,A+7W$}sBI@x#{:"ؑ0L뺯ҭ!q) +sibP%qNwq1ϐe uh&րҸW ;1PK¬4‰QfH8^g< t}-J6 sd$ʔņ3ueW,$.fr] R!/g@P (":2Vv (XW4Ĭ&'{S֑lW¨Zxŵ#\%v yZ^*؁%\xg ˅ pQ30  *ŰR*78Q=ޢhQ'=c/:g\66Hsa¿"3. (\"!_OyFw]ߨj?mǾ}6_5 +FqAX+ & 9? U<߻S'gŐ~ȳS.f/RP#h֔',Dél +%ON,4Mc{Ig#V_EjIjS(blQKiqdtB1wGTz"1>lBC9H:"xTJH&?/"mbm\ΗuKš~$!KtYΣ^B/Ba53|,.w߱9|(al`,*tGh0=?/Y¬ coYފf/mͳjTy%2җj2S\"Oৼ7vD"+"-yP㱚ѡ~;mQp;/܏yWBPt fuC3Xb"lt>u;JTTz,0)%Uj1ҋu# wMτb =Q?2fGNV~CC$:;遃TktV[eZ{SdVs.h,;S +F_`<+ziiԦ 2/bQ1M\ӟ`97E<0"F}+=Z8UMS;:a3E޳+Qe„Ki|Fj˘w)4S$>B^r<㹴 +)!'7xvGrJa!eⓨtAjjjpאZq:/CΎIsėC00θO`tnuܠ>n#Kٿ}~Ye\a. *gyޏ0Cz'/Q~K>#%X=tӻ=S- ^wnUbt~労<^.\^_aq`gĩ[ӆ=^TyFK{9aS.}XNh}~v?E XKvnWpMBb`'Zyp˾w]N?H`:[AпQcPԩhsκyv9W@l}88>ZKN̮jI+e`TeIv(EhK `X8*ʜ)Kg_"5q%W~8Z(G'KY ?wɜ⩵z +;u~Agc4:r@>{T۝|k_lO1*GPWJҼQ;ϝ,kޟzOd+R [ J0K]]CKGXP*UHc=BuEʜ?"'%)+HW3*J4cҡ$#DjG:$h=ܠ.ƭu땎tT#??ߴ;vIt +'WJr{|rVl 0C{N" g?Ƽ= DR,n}'ݿirMDKFED _?pL>yT Pޝuӛ8f8'֊ʝ; +Ow1eW B ,^ѻzDEDMɮeroHlIcsLMpFe&;!Er Go"eURDtv(T*ͮuRUGL}S_?AR2NvT3K=)Ҽ[g$vGU>)EЪ^msg:]_)Xo ;MDIC>šH+` `uE;Y2Ѱ0[)PN_dYtWw] w'ǵFb |ApҜY"ߡ\Ο%@i#tEmkaD+3[BS(bOH*UFiFvؕiW'-ii5͂0"@ 4b;b:K Dm起`GEok]+CWx|F@*>d"!Ea OCb 4x1F>U^ ֌&dIHS?\ tF|*\7k:Ao"O[#ӿ}<)SX?z>vm7MƔ̑~-g/7>٫֞%Y)quT`R;ITdwOnͺ5^:cC{?w8-ws>OSZݨжcDͬ{# ؝u:ۼX0Y1`G閬=IvX kD.՞1R:<$\Y9ȇaɈ9&U^M^u6\wX|T 2hȾ簭 LiŠx #腱I`3{ˡFH'!%zCff6ϒ3~*6UwHU(ӢGFWǴzs|fT\|W[Z t.Z?ת2Jp j˸l͂f7VKώ@F#/#ouW%S׽'{GiF {/D!hedTsZubގ?\sSO6rSX x<A MnǾʈVϣH +&\gȃ +O!lL%1N%VݕUICyw,C3M +ם_o,> :D +=^mkHa~A}E ٳlz;##C&cJLϧ__?̯S^YSyyҪPq̜59,b=gu̿?Y"ysQ#:ٵS`V P FAcx̐'cU̟ȋ'2X+(96j̑>3rs;Yuz؛P;1Z".}j@oƈ#]U_x};HCʙM/c^]~'1(LM?|F7AKkG4yU{sy"+zXzZ͎ J<URh# +Uv>dܽ?k#jc, ĥX׊]v6k+2s8b?6a;֮g8rY9_kMkQzU]*XˀYH!tꙸ߬cwSĨsTF.9v쐎Q9JӑV oє{>R(kx֔3D~SH$D_b?2؏xF~ A#y҃zT "Ȱ6 +K\:{h.'E`nM."'84\ |yH'ϥMoww k2AMOzJ.* xh<eI-nʡKn|GR%vh+\/oNV pd-cqu ;ʹhBxED׺ Yg6 AK! JGI+2 >2J!O5P`Mp\gp7eܹ  O%ďHPpFxW"O'wSfz?&sY/O,./O5/%YYdp*,倠i9*EN3B[Q!0ͺu X)W h +O~U<(.C8`/Pw1$CW:s }DJ2y%Xd(?{6֎26p}Qt5r[,'d}f+z#tx;q$Ysy y~.>Z$?74I9_t1"n` 2ʭ`KWayiImqkA 3̏ڿ:'"%d3hPVUG'WAIy̓U*="`lKf5b_pGUi H0SQ6 !:N.#_LĤV +t 'Ya ^|zhcs-A̬I`̬&r i@{#:}~ I$ H-O!7L=*HE\4@HaJ0!@{w7))*& MED @&#4%YGUA""ING@o8X6+ՄED@ JDwU0oNݧV=*X#Ba];f/"NWǡk 0-!^(ӓ d2j+EӈX3cK"qԥyٿqǕZDg#J6ۚ*Hu܅* c8*ᜉWN.q#uIbȥBoRR5XYp"k3OjXWz׊zDR!ȃ@wJJF"*x'Z6G:# +qV =dRRXu:u:Q9JqV-h҂H!YUNYTơhCەi zz_cZ Qˮ/4D"HbT1hcA*8 AkQd\2=X9)}̌r _G|STs +b)`Ks[3=c4G/45W- A`u"ɹ5EV` 8i>ҌVUx &EX/K + 'B=c[YuX^U +y@5QJV|LaDek\ST23oOf \oՎ8IRfSH1^IJ)3):6&]oޘC:H\$2$kC ܍ }6"l@1Tm,D!% +0ߌfy/Bh.kL|R :@Ttx/DPC-F@.(1c,@Uq\}]DU`ݒ `R͝ Q JJCuktzƅe`i 2EIb VQIe9hǪkpb=I"vz4.J_@>H.VvGZPeY ZyP-HPl+EItF1DBW scto0є"JTa+s `d[)Hu_T4b0:7 RS*#M,@R@Q,1b2#U#JPB7ř{N4 +cLTdc%AіI`Xh¤ǘL/gP8lA\§`.M p3*^o.!CiWv)8JIXQUK E4A"p6&o(zB˲uM)l^pZܰԖh41uHU(6 3ʙĕ_a+M%NR&9kiщ.xC,|$` X0ȸ)bAYVהs $R); +cAXדHAg|33RPP.ԛA +6/9``ge$. ͙. ?=@}ߕ_ HZ:F|eY$8MqC]BD>mڴHO|DA[ 3|Fj^u;^1Hɇ^u1E\;S o`XRO7.$:L&S$n=C7AF݊^9$& '77ߌGpJzr!V&,Ї&\Sp8p*#lRF LG:h`N\kZȓs@uɂ"I]##45{4Q +hň|*L>s&H;px=.A$_M!#džx0Ɖr.$y8B.(*H8dh*Rga4Å+iel데aKNzp•pBKĩk~W q`2+ ()b/t1Hв%QI$3`,}Ka@hBbK1W "+-JjBsr]PvvlA.f<8)RxZ{h 1>C@d? ^ĩwO2 Mm90@&-&2+wɞ3Œ 1.`.2 М.6+0VK +WYW箩Nb%5ikZgI i DЀ#YS7^˶KDu fY$8Z^Q́10xuiv!bpN +ĪVIIǹW*`t@4! pV8L9jQ +Ϭ2Ȥ.;ȥ5`"4)0g XC5+Q&kbڦ6RR ϩjKuw \T{Xh7x/`t|u E1`((Pc6~7LT%-'fkNptX-wqg֚a?+%bo(RsbX@v+*+j[:)]9\Rq;++BiX$9 F0S(ܞ)3,qj^pêI)BZ1oLjQGƴ$% Z )y7W#а`%/%{2d4"8#EWDh"pFkЛPޛlt :(\x&ƣjI1qjA\' AnM}n0.C$ (J 0IXN%+O/\tiz[+iRL Qnh,;%}>P ;ղ Bz3fق@T\E8n$vE+bfl6 hr<`(tNK=VjpA +D+4=41A@bΡdۈL h1(Z BV[Fwbo3Z 3 {CE#&6>8EqCTw6|DbgNL+B&YT*`2QgpIk\)`S$p铚^֛ *a_o}YqTO6QstیFz\ipooy[;{H0xwoex}%Fp$á_vsAH a;l;xm6c3^=caydyrD:&ϙuivJk?1:naoWJhaۿrז͟>`zDWXH0iʑC k:æ[:]8"&Ad*TJs)O!!,@C``G^D0j/7ēNb|"cCpyҥ.3h + NW#FjQ?kas;k8+ KhtN|SR r8Eސ_Vٸ%2QF7;dc[Z7dy#%h6}TÍc̔=T &qB ЉyS>?+ 9iF ShbpʍŋZ[-th)^N5n$̇u' @= E03I#ȜKd^` ӁdBI|/B3hdyt: 7N`(Z0`w#A +E1@ro*AX. 2_Zdi_q'L`5XZ`}*)P$dMw$ҶO"KvS3S8^*&řFa|frJ +X;c3`梤|yj3))cVTGBY[kN!O߷9|ma(V kBR}؜D9ɰj$\47돛Ӱ cIħXzM +>@ Q C!`m4Tʆq&_!yp4&G*K5`"ŝ$Ix^heWp<=$S0}C'6ë WjI@LwuZ]8A " tcjAi`?,[hj;Z .9YYt.hQH `W$~Ta0Wl:Z^,@F;-JjZKqp'2b{3-@!U[1UŅZB~1Z&+'xm@E[:YLLeClv.(Dƽ mHǵS"j:蠶;1=`*S7t=hW$YAF2X ##)ȁ7/07([%1a.3HSP|C0@q~[8Q0ҁ}jq"B hx2]Ql&p@E[}Lhf(a l&pȤ,F >7A.HcN%X}9 œ4>A:`wkB BelL(L1eK٧B6HA +F! +(.d^:B մ<&Wau9HkY71{ZKSBʼnԧAɫhrź^sR@ .R +N=zZa(@!:J0E,v'fRgCcJ\ff)%ӹ\tJH:$PNrOk*,hlT V5$;.Xe>8{DP(h`~%p dB1~FObTtDa̚Jit:OALZֈl@D&h|Fֺt%jnzT }g?N 5ʩ0>QKy3؉nF륓%jyNEZ5smc/`*lP ȖZTDtlU˖ʏ aXgϛ|}\heen"P$vLc(3Ե+Қ^u"o qIVP 2~ rkN#o 1 aEo􄱷$LS]Co<Ĺ[tb>}= 6L{8@03P&F%?~_oxcpwfw\3Ϸt6WwH lsjfv'~~߅e[|dlhjz*8>d?b3A^뿍 ~Ŋo`ǣ_bgҋs9tfG]k^V~:ڭ[lE!xIL˕^cOGmPؽ6u;Jgc}l'@șqIq-(V1k7;(( $kSTT<;>J̥]h 7Dİ})u +Jr 0qzEM5JY 腓 JZ(ovCj>9oV/RAN$}TY;[Db=l :uåH$QēȠl(CP%-iQL1IE: T")|oni!R,8uV%$5)E&)-586^Wb,WƛxPRA=@J:3}GķB=/"|WE>Xŷa={(+H9ƏZ  O +4Vxe!9Q";@L7Tm:^CVGp#$ ő*#뚎] EaNy\L|7]@0&qDh# + )V91HtH +_VIk]Za(#It-H>B(a!Nm#QU Zˢd l@:Tŵ"'ɢDtV7WӑVJQ _jPrc &!I#!:C jOZ]¦޲YNN&5Z{Rq1>XY$_ƫ'/RípBoJI^K>.y;kecL&v'Ꚅp4(?yM@&:WVË!X'TW]!m|w4G<qy5g5fj<>NDqݮN$}A{z|VKq'ys]p+]0E|zqk R!2+1k#c1wEzH7IIVʉzyyo8/U+bvc*hnvzSw罇Eή}/nR25M /܉BiQH+$C:upU$8e? _H{AGB +1l2U$ +1 (J,,Hم#(LS)LEwyuLzJDrL"z9 Tco9Remw<|-Đ=~dH&;3OƗŹM|i[۾r)"mҧ!?2"F& +S)^? Tem(@ dHfIQxה1c%ғVd|r%X&%3Ӥ0ޔ)DG ̎?Z{ݞm#2> `#WH٤t4y&OSKAz`"jU*GRb614G1["549<٧ #u HPc&:鉘8 BD^.AV6A\~MmNL"{!|UO)ˀQړmIGLs_Mpfoq$$M$`O}bǦ.6͔%t=j)x_KɘdWBSwW*|THRrx=$15ڥI~) o!oQChF=`wm("j[GJ^Czq +6Bk&AT׌|l&}#5uDuD j47f̊,uxM) .M3ծɍF. *yftg]^aZd&+<3>&$733k;D%MsHAwzs ,;LЌ$FКz<09so#E A,:I1f1F\Љɦk^3#9I#53f}\3Q>u暉b PC)7H6ԉR$ʻguxIWHz(kx[R-yf|\:yfyf(3gkN&,Cn1FQܑ:T$M_glNZיgGI;LCX|qݔWDR<2*M#AMҹSL,NHk&Qh.?uxt_bX&$%oy;/E$%M(A2/*ԿP7"XݢGC0Vѐd &d.rQK2! [rIFFAK .G +g%ڲz8^Q\̞ e}2:Q\(vds\/VNQZVBL,/*Z$ +dv3ԙMOťBbj.q/@c+C L<))i3btiXs$%VRR_,6^uϧQ$95$6{i:pH0|:j$R0\4:d"cnQHyk-~B1i2:ToT1w:sk v&GR H*Td];OM0Us8!:~uIib>҂|Z6x&dž!)t,IَJn OOci*t*ę;Q^ޑJՉ̱`2Rl{Գ[rWlDJH(IPƚE=c$Du`*S~^c*~+@^ˉٙw/ . +M)ˮ4MHi? l+DTg+^RnNGE=iY_Ue +=qS}CR{ct'ktF +d~OFg 5U֢LZCLQha(kE* 9Hٙ̌ƨT@J;U%>CÂcO$qZޔ\riŝޑɑb"Cb:H?8Vh;Z=u@@|8aSD&P$nӊeK㛉sHҚJ!BJk-ev=Hj\$EB$&w0A1.O(nUߋ9x2H<JAI*As;FO\~WQǦ^b. +I셡4n(j%1O@R(hHI^ Rp:F%& +U IeTZp6.SiN<CcFk4akٛiy" $Ere&P&-tG/Jl9fH/H&kEUWOmɇٖ  SEȎN@ںiI+ Z[e2R>YVơb|l!TWјeYeSsoΣƜMԘ{+~VcImkіӘU:4ff4h.i Ni̸4fZ5f4fȾ ҌL1T5HZOʬS/Gq:f +Fer(RbT{ԲTt)%W"q'CqbIG2'mr%r0EI(Ӈaaas(Hr1u)1N$c(:w6Eg"芎%5Q` 7z Tl+wId]lI&ȱXĄBN kXNg*]mghNIz'^-9S|V:L;KKGZNs4'}8_g^2nP-֋znA#md) +eXuwBg.dBBgx3;wTRDC:b\g!tFϞ0)>GUoք]o=b\Dg鮁 0"h VI %b +3_xA i.Fm +QRkN\gGJNOIrc1L Z\/-TLIR䢇?-bl'&'Uwe"d;j΂BZ)ۦ9%$bH/<飝>\4[NU$iqjs$HM^W\k3i"sHD%N0QɄ㣤ɹI8E @ 挘EG>3ݺ=\t.3"GIb.O}gջe6d.l)v:f SOĩ~'$K}ٞ(-`@Srx\DOh qU.;6GV܎Yq;b:|R'c+nRX)ۜ/U?eplW3T56 ةmDV!Vj+XEbJޔtl:bGÅے¦1t/B cH1$bx&ZdKHyoAD%^l34#9Qg{Y72Ғ1C <Id1d-2D]›Р^z;~?gt +׹hj&bL +Þx"ga"PdBԸ-(%mzBmpL!ib&Emg:*s61ID" CL~va3iVPx7]Xwi]W& *?MX|[7>=5 IS27-NP  "$|H_$J'S OłɝG<5͗`MQ7dP=ilhݓNhmCn'T̈J47V$ƣ{X.2ގ&0]YT$$F9DHmCn&Mn!{+ck7~*(i-0SNPcq5M&/Mnm8WzsNY4b^"qDFZN'5%GަkIѝѭR_0}[z{*]r14Vݶu#n2Me!awT:J7I". ?ة :kIuoC]P]Z:xZ)ժMS\I*nՎܭj +3$E,\p^>Ì N s~H]MOD}gV/ -)N) mYG c #oUu "re +&AGg{FKbkwOiyD +ʟYm endstream endobj 31 0 obj <>stream +$VNԿdۿR+\^P߳}Ǧ̗9@]-%IpѕRIk{>)um.(l'?6=;o_om@Sdwd{7m{` Ą'My]׽W/N +k;v ]-h;#퐿yMw}%vS1nK/w9;XZi/^,qw~}+ځ;b࿰^JCwgT>}gԐ]Op]jl~6 dfx?5|Vds ߭&jyI;OA,4㦼0x9܅A' AL6dҀx͟C:1֩I/GuS0.ߎi8 S-|ք*(~z븲d{ͭmVޛyvp^xtae=ſBPp([]rז$ϋzK~ 6S#:Mq^ l0G:yp!6!MBxL{y7@g&ۓ|xw^xVko Z֛ѻ?o}}cnhWz{h9X\kx;Uoj'+[;k4\3kK%'l|kӔݯ&5^x3q}x8RCs;S5ٯ4l'q/tnpor"c] 7v1j 3\o\W&m{gsK/\${l޻쏷=6vNDvGWm__|l񞚠C-c\6A^{88ȩ W=ZGdl}T!3gse6Wu`C^Ix\y9z'\;z9i\uSz?>x% -80v<͟0[_Sv c ~- *v׎qZS|`<#)#5d c;alQoʲy_3Ezh5'nv\l:ak׭P5#?r ^l@X48SMQB‰,w'L2=gr+\nkWe#E졦ϡx +lQV?az'L^s>nd\Q-s/v"1"e*>Kpv؎ cҜo}i>Hz?Ϫiw;$2Sjw|$:|\ׄsO~.Y +l'Li:IbL 7 ;HT'v\$#Gq/rU'nP'iU'|IGkE3 +__s>kUm{lV$ꄯ_;>Ȇ\cdy Olh'XIɊ9#TE/K*T ?k'|xIG  9_CsN?ddYaU_;>_(l.U(}嵦A` c;alؚ<֡.˞?^ :UīNr>?f|ٶ6~%c14|uk{֎d|dsQ3ꃲoa&We~q׎dfu`z!m[㡝pvL$юORuϼɉvXIn +i&A [;aknN&hl4lk_#`i8_ _;ۭ|{ț!Fx]fHcnm?ø`{oapm2k_hsޮx`xw{2C~=U- e; E@)lSn:p[-~Kh7\cFpp+nמͤ1{zGo:7.>hAo~ڇG`-Nq=֯9ߡc9nyl+`uה?59|U=&nw`yNݡ̭:01o`D(7rw//~-i@~pٹ=aα}|sod\o1:Xw18D{Aǭ9tuA;yeWË|]Rl+jnAH?}P9'8#]=12@4=B] K7{Oމ10cНVr*CЇ@{|Z 7w_nl]QKUѲFjzz6Vm;>sB '/ *poAh4?[SSYHm[X㋜*Y孱~5fOH;woFWX~dGcTGK[;]|o{89gׇ36=MYn8dN./|g!Rwvegk{34v^jwەV,$䏹[f]"dsl.nl];* Λk;kG^ohV>m ޏklklmM /\^n&;}whV]dYweƮWvDý*WnެÕ|O74+{3ɧ [ =.j룫Չ$\ -WyiN˱yF5Bp`rVN?" #?dy|7'I$p:n[ny^֛3o6/n_vA j~^ȋ(-'{7㟹asSSk`枼2"vj[HFonS.<2S"J),10?,NG_6cɿ-J-Eb]l[b8hbK}kUߵ~&Mռ 3lI.蛴BSc#ME[hB&ܦ5GZ4s:(3M}[|G϶<.u7XnB+6 &kšpV&H8b.0O_NEKᚬsݮY&q]uos!_a6.&k{GcMh}zEK^ :lVCM2ŐPYsbRz!ч1vYw}jfTPSPf.Y]Bo|W^]ê;e!;5XzPIS [Agok ,p%B^+[/&#_~]wH{Svy ~kpl9%۩p?^~߭r9o;mo]6JmV4;sT{of73L54Zz׭X'\8-_MU8QbM ٽ{]VݥQ*N^3,/&3ʖmʿDN+^rt1aw`c`FNG)O+lnMՖgv_l팡0k%,r4ram 7֭HfwS9LkΞՏ?qxWu6loV|Ykz 9yW$b 99~#Y)&ӵ߳kzOQ7?e8>h$=WqXVZy8Nr/!k{߭7u>38`A ;{[Ýdkg`i]({<nM#dD4xcök ^HnwNkMh}wG&#ubq2<ή.'ZwWҘs)hj {Y&NYДYGB|EU7fPq 2`2A1Opl`4y@1Ͽ()Ϲݟ9._~0Ta7;v1dk`yk{{-h{x2w+:cG⋛6؟ c<lV{$_l!Mop2ޝzpMv%8g{O=\_-'qJn$sV:Sx:q{an^EbǻFvϞ0kFprC\IL@쯶 mm>"*$fJDhz^I\V +EnlzmIS7z%~M̴\M&K. m875ڼ7fWoɨMX& +A}_ 7GS:.F-sˑS rvGieoґ~U杆x9}nc!xѿWFk[9_mco6zL H3V +Kn:s^Id]VCCebT-7Gj5<׆kە1W[r /듭h{æǏ¸BgktĊ|̋*OλZ%DR6u{$V`jƯ;aч:bK'㞇oLԎ|o᜵Fwu<ݻq8M9"S]۟Lp_(&o>نw|c0i)o9i[.Zɦ =e41kvx7f!-l 'yp3rPDzW{UgoMn_)T{j^#KG/Gqx 1+*_x,gc1?fZn:;Dx[d[ߦYLӒ9{ꫥP)\`I]{4WvK3h+ Z-|0\x3S#Stz_{&Gw8ʔu-4L6oOr+}zfg~뮞RNjߟsONəK_^䓳\/On}zL0.W_MN"ҥo3;/3WvVj|ߋ=sO#^o #ҏk?Sg}x־sK;7ϸ-;˹KK_<4r~]jqϘjEtL6\[zWW^ōֵzuչ/ogmPܼwқ}r'Wjw?_~um{/.{u_jo.^n'u[lU?0?~;{7no޺I/]3׫oT~~f~q:4Z8ǯƋn~|MY/}'g/>]Ҟ:?=n͍//])w6_^^[{toy+.+vקn-}wW7՛O^O߻é3 띫ww/+<|ō>ٺtߚ}y7x52wܽn_=xr叏Ϟ{ǗO?<\:dgמ:_?Ϫ,?}67ٍ_W W_|'{/\/gyhᵯ˛7>>3dNSg_-=^|ue}~ttnLܫӯ~]k7n?g>_Z9*fɷkLyʭKO7v6ͻ/n:Ex=z·||[k ;~w8}s_>g? ;>[u3;[۟Z\_ꟿkk^>x߾mw/=:awG/Ӌo]ӭpqtݕVxyńͥ{CF_ů sWZnrKuzdU}\ﭬo~.5\])\Y;;zx}G.>ƫ+??}5O-]zҹo:}ՋVV6O_y>}pۛOV_,l_Z[pX;?Fo7hfՍ^ߺBȾzśSg^-xn_ool}_޲z7Oxιo.xt۫JPږA(bBT0䜳sϹ>^VY-ޯ  kSA.F+ZG=M_˨v'5W4ܘ!_5k >0k?PxYJ4AUB =?) 0X*$_DFazv>损(M'=ܭhZ.ي2I=]^Bo&{`-Vz"6:fNK+XL.:ke8ն5۝f:+|qPi6,wZSeGwL2+/?QG?@&ްÞÍXbUoM`g\ᕛW1oI&aBC֦Wp}7J<:\_B?pY/eh/bzX37{0يvxz˕ۦ#O7k!!B IËސNYfbvڮD8VP˽'nTy]%z{ m|woɋg =9@:0γ 7[.qVמXĆ6?NWTɬxl+fqy6zNc27+@&Sq{w|kM=omu+-* >DŽtPqi| {'}</뎓k~x)]S=Q0[VCah[XԮk څe5<㌕6M !PȽ\ngT\'U_=+7˅:ڿIp<[igRSSJ҄W wQ-1DlmѲH]c`SoIq`[ZX(ɲqJ%B]&jl|E&Xa*X6F{: R<2e&-3PuQ帹'oTǵ} Dǔ^ՐBu{L]ʊJ +V{90Jx>GeV_Ekn<#Z0KFůe I@.נ;}Riz5ݒڊo Y׍Uy8=+#H f?Mܜkق ;\NO^#?i@~W,JIrԐ+lEᖒ)Z?/VE͑AlwعsG'T o碒/%U[ĕ_*GRt̕-3ʞxSւƤy)}F^5\4)"W%-^~j,i~JGQ\ա\6ck10pP9W_Y+Lnm4u S]},JR/T*-G1Rl1k] ++5ga=UڧFl88tz'_?PG{D >vr; )  +}e5، T+ +0iF&l7n5Me"#;= o|i-}{$4NjLZQաG*!\9-|~O:šm^u [j޷8T5u9.[S>>n +H#0<}%۝V<2 cf VRnlOsޭ+`P&#U>uq xgXz } + ﴘb@k8t6]t\IeRi\٢`+Rn4ka^SW]ز,eyٗT'\N[y zmuik1&Av諾>{>KH}n=X\jlCu`K ?}f8Fe(ԬçzVقE_WçӣvTl=mcN]_h+d6 XґUT_s:G%h! XI E [o<;]=E,? u3gײbV5?2)N-/[qo>}ꭘEW;ve\ "XJ|dL5dϸ$\EfjQ rOkɟM], P ś6+~;EKUNTXm2YF..< ?mmq#~`1u_O>T:52gӡ˽WfX?g|\A.VBK`{Z$~H7,xs7O~⠜L5n1/ǧTY~wHP^"`qv>إѱk[5 +> +/.jm}4"2{eL%~Gߺ;pわ6gG3𭯒o5Ƴs5'騙ѯu4l+~1K(\ȕMK5cdxeWk]g?RkuX`κx=4JDO_1*%ו1@d7 +FީV+g,wkj'cxY˽hɯ'L!4ڵTbO9Z>-U^BƮ UC_j3ɐIk݄ea.I@Ko +qȞHXZ涹˴h ^Is nސbshWc3WIxќ5c]ΐaLK/%UaS0Ry yۦ쨽V flu +AxmkKݘtqc@/-ghT4#U̲JT$ߠ)mMe*sl~w- ]{/`T[NbZce/8^.s霜2·<@Vrū_uYlHjN"Uf +!{#{~WvXOq$FLʥ`m7督r8|n+~}(l[ +ˑ__JVf Mu$'O:@%Q*.PQI63ub2=<9#Zx"o ɠq0]W ]ESם iV=SMLԏ^A=US$gir=ӝ[_꬞oZ ' x:\Ktq9JwRZ{룜6jDT,[T u#62J,@?'pH3An?Mʹ#}5K8WkÐZ4iT^KDŽ5]*TEՉB(߾˨dU @)O%e,; -㧕sj3yAYUqd4OzY^X^[Mu齵HK27?CQ0F&,dRkt&׵p9jO_R yH줧-.A*JiL)jHfͻZQ9!jbUą݆4\( az /YI:q +k4/#ڮ|kڶjZ&DZb~n*l㺐L}q[SjRFLL>%J$!1}Tt)'`l92s@ +|(GhwD=,7K}AkK@S ? +aN+4?0#Mu8Pbydyߵa]{Du#ym&s +<D_eB!-=xLc,ҫ3>>QAT>.揻HԢ\T.RDмA"Gqf78>jȠIdO^*'ʏo"&1D$BJ8MeKl»B-4Zfi:٣*| m 94h<dZ-Pn^M%0lMuNԴS ߡBH~5u)(Ontrg3$i0j|mKAn62PK+&t%5Ӯ^$Y2Y5~%/;5h B<ˆտL/G w< +"D@%ք5&N/H!Č%G,]l@g4nB(@y#lEW\|;G:CMAګ{;ؘUb-(R> -qۡ>o4.?AxEn+7Z` Q]UP0h?y'#LJå5mխXn_#N.6;X;O@**{6[Mj^m\Aq# +ΘEa7"/"M-Ρ[1%=]O/N/aCeozuwo*9t(ߋU$ ,4`bWv LVibԼ(=LGUWFca֩$ޱOl7) H8iE0 )s Uկ(fXkFl-n!>QmͼL a3B\G2!컕 AEP> |)~며Xbw"Sj JzܭQ +Qow4^ Sգ]0jP-GAjU<*EMM^-z?,9!4GџO(UتFv }!2rV0i1mHCO?:bǍvx.4\]/![G\~JJdkbg|SWjvuev. +o}!oqHc]q+FeFbM2뽵ԗP#FnFrȂؗb4dc-yPL̴`$RAjd=J:ܓU ";XgQnaS(Q yn-Кof2+TkSu`>f4$Pm"ξRLN)S~f/5܁:mu׸ μ%gctմQx%h9/O3<='"{ʤ& CnԍZ,Z|_1#e"||HyWUپU-s%,+.mtEW^ڦivx +ߵ +]O;0Ϩit+Mr ϮĆȈ1^OߋJdTlऄ$uxp(/ẅ́ C~w&at(*wEO?j~kJ& =*?pͿ|c\rp\ ఔ;R}j+8E +v}pWr*ܣSX kkL np3Z$C,گMѫpu-<0-(w0X5H 0뗏sEcU_(&$^M +%r*RYu]}J0V;FQFl$eaʵvOЛv[/8JN*UL.mղ[%c _BAB뷉qE^Q3[d{.7gGI2= 8z˥lZ+9ׁܨm+Cp. @ѕ/{Y#KHy,KiuuUI cKB_<^IzZ}A37@KoDx{8,re_VF_?K|[Ŕ2$Q$D#wtp0eL;:Kff=zqla7\ÁHCp%uYG/}F!]=E!a8^ְԭ9x su(Mqw ukAmJTmhlw+|cmgP"fq2:Ѩæ}ǚʝg~ <6Mg;W Ι색a (p}3-;arC!-nx^G-)TԾ^!RIL.Jv-.&f+UÚX@^+Rnz+ӭ4V5) n8}fM-jxs}vӢ+m&XPGqTn\Cɒ4?*V#j;46I@̽g~#ϕ%F[=u|Ǥ>W=QEjf ǰv 般uVLտJ<)k'{ï IQivD'T3v=0#DlŅ*l"\'oUkt>rqѠ;5Q#!z]+Jpx ^@D7_=, G;wyT W:V +\јX>'K% +O?]C,EybJ +7|ivtl3}hWN 5h>:5(͔(TY2$x9\L6Dyz=Sј(MٴQzu,5?r_O>:x ~]QßŦlKX; mѰuubFm͸9"]TGĩ s6,f>*%U/J4 -)faHTHsGU7Iƴh_YP@r=6_rY'Oܨ׵௒l"'V[?IVe%CS3hfkzsnR' `~mDs<"}E`"z?COyCc2'7"[?:/.=Go, W3-)vboMq;F Kyj{wӤ.Yle|E8q qKӞI,R:ϣZ*^9ܾ~\e":uSGɰoMȎ ~"W♪hf-g\sê#xCt,ts7r{*9[GT)0 uowcfA#h(0 +.KX=G(߽<xJu  D>׀[ 4űC\Hr(@*@5ƪr &_˓Uy%W.P5i{Tuf^9izr6z>OWWC*oGno).8߹jQLW+\p9pir4dcMkju۴UmDymJnRpOe78 EJ9?k6+LTJ^LGNXƎD$ _|; N^7ߛ-AT So2w;+{8onK;vM]хa%srMl)j?ϻi&&5imfP͕q&wBbrXXm;vWSg;CIE7'VGpĽ#m1V̕+o7p%4/ƕEˎlN/qZX=я.ROP$~}&XK|ϱcr1m~FjlliqK`=8C~!H`&sP %\L3إUfPclnlB'l{3Nq?~SYPd^ +T<?E~we, +i+m~%G8ykjjSw%ue’&ø/;@j*{M}nHMԲC ˦cWHŘY3IFQE4a[J>[Rť?󪖻6W|sŲLG)eN}m;!\yb%RdRܬK)"SkGm;jouf#A{$ыuW;VEH(~ߡ[v,4*2+ yqIɭr%wU BWMxwӔ $2\#jj.sNj">3YObWdB!Dgtiz=/|]sƧ-R6Pw)Cd"LH6Y"~% 1d}`.+gL`Qm(3 x n:q#6lё1t:ъ1r8ePY6"T'6P \zTյ0(ExcUJ9Y1 yGRiؿXa/L[ވ^%iv"S ee%Աa]fE@ǫ}&[tC&_iQ﹜Z_ '+Tt,#̎Ҧ'sCcO*JףŖ0n.{6 {<>ítn>5?[̸dHg\ 0IEWWKǩj%̓JT(vicl$ʷd%)juƨ>0zPWl8!P?IV}M{*jWK\=P.K0.Rkʗ hVDU z\$LcL %ٸquE3:g0JF%#̲y?vƢִCYh{;gnu{|u@WO֠';ZhaToN4A$k/LQPk2;k爒I\xطݵ?>֪qaa[WnbXdk[UY{8Symz7 jmX(7G&]Q.õȕEĶD54)kB Z:3n『5,k?o\ꋣަgoy.Hsv^/bwRˎZW@~A\ "543jp 4l `.À5/3`HqՃʽM-=fbKLߢƖP!ެ=nXJ [/.p:; V~_gugtk/5a#C0:[S'rIz&umǧ(!\#f䎭;ҝ<< 0inV>ٹP08 +]ߨhAYREŷV&ax}T)'WDpG)lk3MG3܉Q3!:0iGC[(YUy09/l9@MumWaT1f?ݫ51 A_J-)^.ͺz:VND2/@Sm݅lOM_IiqlB(ƽf{ô3[KG]vQ1_6țZv=6QT *[Fp؀0eEAWm5YHCЅe75Nr"JJ(>(ɖ;BE?g*-,|Yd8]$;Vgzwx+^7EرTP橥N,ٷorv1]bhssǹu扶pe'Cw/xHW4oFƯsښP +T&kpQK% S +Sz_SsiWYGTÌHNLhiE%زlQ:ǁ+&>d8!lvU3kgMݖ̕E" %'LH?h1M..c<Dyn5Abŀ"J9'Ŝfӫg\L*UTf[C]>TAxu};y_dDbӺ_v-6u%WIv*R<(uՒ«9?sZ6j^^Cu/H)R&4՛tۚJ?kkY&|_ʒݼs$i7f}+($[yl%=e?`A\M6|*tPf+h\XގbMf5m UlF`(" Z(ՠOvFþDXZ[._yë`T36 HΧ6PgaN}4[t(b*7Jd5OG,RN! ͙/jT:]-5u3y#1d0bQUm}kRrZ@ ړ/9A bV&X+pj)h_^&Z9Ÿ>2N`f97 G)[Ł.9x 7-$'-/H#Yd[(k4gt:>fe_<$9E7mb s'.ל7'=sT^;98 +2yTDy ̚/zALl$+UV 2GH]2?b7=E^¨ j$q(5KW__H ֥JTcE8jj?1wNht¡2\]*|U ^v Wj}=Xi,]ϧ 0:FL!uf/jԪ@WqԿcTI&q6ǭQ..^J::yלgs'Ƣp%+SϿ!h:͏eDL/~R_Gr# )"e}{X^[3k^{WnۡwAgxmmf{ Q ܌Ӌ%LmqoݕEC/@6]z ˧XꚼkҪ(*G trQvuR7PF])ٳ:ky6k6&xWoh56TkK?$.^JО#踑*lw@'.i⮮͏k%*'=X򂯞;RD0A 4x7emKu#$݅ +õnQϽeRF.1:-Ȱj\:J˨M6:HbZ*CDkgQl٥aP lEeR7?*c+m._Eiz;kUkD_Zb%) A&*5m ;t5-hg\qURHخ[Mopbu7}cg]~*E4}T0@佾]ďaB6lTͼv;e(U14דvmRN7鏦v K^PmYj旃 Cl}_+NnUԁvi;>T/ _Gča35uwE4yng34}Zw4Iirp]Ϝ@vrSbj[|ôpQ\z?f;Q_?QnEm]L 7sƭXs?Wg{ڀIW:L&і, +{i7CPASF*h ϝDz-e4=톖nx g,z JvK+NXxAML m"*lgh^Qo{dBpk$4 u9P{[T$`o^H}E|ZOFnM\&eP*QmRfDi_3kZU%-h?$A~53% uU$A(YT6=M=MSJɝoy_GTbj6O#b[X*b!.%/kbQ0~& -uNϘU_sPoʈYLkpg,.G"KVxE#˭Y8Ɣq:YLbIq` +ZiWvwjDۃzVh<7cf >\D,ȫ eԙ܏Ѫ*N`sq.S¥8x]̇N!EV/zqkZ_1-z8î?F[WδYtJ^\նy^JՎ>3b;%dMG4z71 YXw۩mR=9/ˤuAΦkMxjAƲ ~'j`nsC=Ї\m7H[v칭<:vZARs%[Tat*8\hi뾤Sv(w!yv,Lϣw?h&'x\w.BGº]u7 b-{z(8&_\E(PD;O}B,=w-צʥ%ӿ :""ӲB`FVI!h0iŻ>zݑb@zӶJKi-x*hޔP +zw):4Lzu| Rm̸Bl_cE^/;oL}7_7+[%~NY4;jxIu +q/6㯇tT>^2}%Tq7SL + #:|&ooXe-wL)4AxF;n7&F91n> +4 G|n:y9~+qw7:@~Ӣ' ޫ qvȗ@TIE\rSf&%eE@?N&GU}|#P}.OХS?m Z_n^ tx7|:0E!V k5D3iL4jFQ=ISiRi龅g˴8IRb:Uj 3'y;Sb']ےK,ն lr˃6 +WE9H]rcltNaqKCeQP฾%܉cHrݱ @wb y-;q]W;$jxgo]i#D G/ncn鷻&[;FELb=H4A6W>ful"왤ܠЍyYZˏ^t|_0[ rtZr,K( Ȧ0=IX`KRi-' Ev0$zP'"XOhfU͘HAu+=\^O6⬴X=ز!/ +Ғ-9.CsmWk>P F_鍤 pz;ŕ:I|ڢ6`ؘjol jUon AYp{tB0|3 7hzmƐ.=oMtiv5/Rr9[mdW[ĨD#QYN컓Es,wu{2V}g1c[nVLgg/IMP&Ǡmq|r 0~k Q} +7׸Bz?<1?/ƞϝLz+%G(C5O6,ʥ;*.nz&3LXCOu%ZPe7C"T$sa2YaDKn2'T+ZNyy/5&f^dS]R >$7mWmP^Fcq˩ +.YMk mi ejC$|p7H/UXA[u^/{mwR6? ѣK +$| >["DnJstn0O'bp2qcEqWWK >) I?VoZ-pb`"߳J8m9|5~cl3iuA?`+cc4>)=v# acb4ƊF%~o>"Tm}jyY}!%%&C3WJ\y>J0Äa]gFZ*h='ߟS: ͗ZK./kc^ Ejf +C +\Оg-ՅOpy4 dxIIf;\T|`T+*.ʼngW$uG*hl(P@+ bYz5qc{Ta4Uf2=,>B&wPg$?Œ8㖠?Яl|mI~j6\_ӨYr{wm!f֓O䩋[ėk{WR7 ǕiZ" mTKPژ H"Uq]SRWѨ)gJv< 'I_}1GQi?TƩn%ŦbjcdЊ`XDOP~\ ]x*)t#9742ڰUUWE{$C^JP O^f$/wn N.з/+ +XIpThU\/"<&=Ku&+&26cH/X}_"XZ@Q5kF K4qp37|ʠL}*u0*cUs }a`}o͖}Œi͍.ǔнn րHϕK@oMr IJ/πϞxؕ6Ǔ+í!dkRFi]=el(2cxofxG!Jfids#-#xh.I0Ww{vj/@Gٔ˯08Y@c +q%h: E)+@o()zC^8W L}9@q]b:)]OnS_ӄ@BSd/5l(%km—R0䮤}{вoU=ڑ ľ:E&aTեQD|:z̕W8ZZѿKC?O5NhCok퉨C|Gl[|ðeu, U g_AH-(VQD:,*QQ"UaIꢶh$@ࢵÞVゆh+[qq"2m|5Cdrju* <.o U}xb+4UKB#ZUoD3UҾdP +ԁTc}/)4z?Ԏp09rfX,i5+ں+7#v?rkPU- +M;I~#2n;ҵG#wJi K/W9u UCRՅz!OTEe&fv L$/sې; l,c5d;tRm lr1#&o hs._;3bv̀N$Pь+S#>URIVPJ" E(.,FݔXUz+x8V:lw9(g!@qڳ|Ϧq~Orib]!#oV=5 (}Hgz9 ZT}q~|c_3HpԿx`=S] $nLB@^=K +u31Yb}?JGC0b+k)j+8& x;Ϋ Eq++mѥ\/[nR +&C·kdžnk_|tЌdډ{Mou,-0?iu xn?kKQJvX>g }fy+T~4S@yfSuǑsRuqܝu^aO0tR +1!O3H3*UD:M1`ݠM`qlJJ{=0$Q pd^07P.Ɣ%ѯC*'ɇG!aF֛+ot@HfOy]>8vō`J+Z}`1/P(w' VVXqEdnr 'y~(}p,ޤݺwUm+k#ўK_a~B]sGf_<"yv:.H65%3@mY噘o1*^L|Nt^`ujPM]gT>\[jICi>H}iʬMw5'{PVX;] ({b8}#FtOr5떷6)ϻhßӁr{?_dPr+O_BՕ %lS9k^.|$9ri c96-gלM=r'z;'ok$_pDӄ{ިJyƔaaӵ}qRv($>â$q4Q\ z'"M@N3U~, +s$ 3:ZHώeMQ -?S6@oڟFFǮ?x?ع'33pOiޑ곲}}_S91\6 ;›Ptl]^>5<=2+T6:Z6ugIkL-? SnaJ|G*Z<"S!p=MR-Rrz:B&+_"ȶyJk0,s ~剢|e6~wƸ!N6 E5JX!]pY*TH4Ֆ|9o' q6P X? ֿX;juJQgbV/dHn?ǸuKucxckP>Isu.Z3{DBE"BJ) s3iK0N&,}bz9d3nd_(ь3B< +ǎC_%ޡeJuOoLtOnfC+6l=9^CrZjM^^d%!3DXvgϋj~A\H],zҠw,CT/m`3Ў+bdJc U <®\>MMLǓfľOF'1Pkz%4kĞ8*Qho>b73KK!>n~?^.|WZHۖ}*;0 3O>/,g |=];BL}7M\*+sr 3G6:Yġt=_^5! w<2# ͕3k ,,p/eB5AˋW/~}MMsW]N?>UlQOεAATM]mb"k5f [l)kv9 +iԠOݢs8v% #  ƒOŔ=Lw-+Ϫ@^_W4 ,7Teu6a,xѧN.:Ն|ImN;g!3(S/-<1\oyr 7o-YӝA qC,OŴ>9VuZU4j[\ly:#y3\滯زFi5(܄8V~ʨ6N2k& q[rsMYns_k)tK +GeË*=0crbi\̒(|s]PqNӒw19V. lr +mKv\.AJÊ[)fUL}o'<7 0 4#o-][4laΝ5@ Wj#ܷW8>2ǕoTS4L\IZUb,( AnHsO/3N9EnEvZ/(Z*jC·R켴pOj/ UGM-v,{ٯ?³d%٫}>X9aѵ0:9AgvHsi&ʃv,J&6_gB:>v 7X@v'@ + +AYA0=EJjbQDU&#!k@~"TjJg?֊cjt:5Kuq$,?Ńb%-a+ugAA;"ZmL'Z7 QWyXMԗv(αpe_{\zw.Z{*Tk MYd~aun*:`{}=CL "iO]p+ +&h;Vn%;xaDqS%VL*\YYEmC?E5lV:iސhv6LK~ +"'WvslM\]OY<6I!ͧ?|$BB.W׵^f_Z m0nHV gZX]_Kk=vQ[0k7rSj:&ٞ2/3?`|Ft9n4c =ڃMrIaO$rؗl4Fӱnf*wv&xi ˖0O]u$ 3I=e}hbq:KδoW~T7.bQj@ 0s՝N'N8!D~B ؏$+{ꢏi\PM1bJ{.BltWQ?ES@:ꔩVr͟)kP8OBBTBjj4]6Q.^ŻrMGizdl_E{$){ѫg2:<&ekڬs-Odgji2XxJnd0:Tﴹ5׃Z쌕Nտ*hl=vc~g38x޿v̚0<Ǿ}ch0j\71gAݴ1ڣ#po&G}¾=Uc{Mb9z6~MT}}0:T+=5ۏLǯ^'# j$eY(Qa+Cpİ/Lҳskp_Wà 7cȇ޻EϦE55~CӌsҸ__;goui +w3u*{wc!J?sö}SyLw MYy<ànghr+xBI2cV[ɱXӈ?=_56vtd^1-3[,2O?͍urq\5r}q^_*q:RCgu 8ѝǰH!C;pp3f/7yWYՄs:}Y/|;k?nQ:jShwI͗|V=6ꋷ܉՟㓛U{cõڗ:v_TE\U_&->褳g̩J=[u]]dh@Da j< _]-/ؑ@W\ +'}=kVG:L+j\s;Vz #. A +!νIz{Ntb[n6|׉o>v7yq4^^.[זrl~$Ri*=)s$k祬aFJZr ;R5-~zZZ#RnMTz@xcl9u5[y4=gzm`707 +rGRj#Ԭi|r&ZppC xCu|~J3*JWY ^L=hw\Z?C!v ++Z615`] + 띭yuz6:Gt`O$Z {:o1m{I(jV`O!_uvĔse G/+'{L + (?+#Q-QqžJ\=h aZ9<1Q/_yg+f,*X(1=bs^x7#| 6W}F/4za + c l++p L7rSc<< q&~gv4"VOޫe-CWEbSF%`Z:N8=@MOưse) 43rbPs̀E#LŷK)tg7`K^XkL^J52x*#:g.μ +H(0p/ۯ}!6u\ ֧IR_.Ie&KHҝf&i0|w4߲4r8-E[L7O4aR'n=zW'n!\6^貒vqYvk{m2mǥfwM΍ƉO5a-6siɤu}+gҶ_Pmeև^i8ӲޗcUՋc,PRQIG u'xK=N[L kToE0VV^jST+Q_qj80 N#r)savF{կv +(S +WvV* +itї5Y?҅_${B/\ON?;z΁&]*f.w֨.Z) yvV,uS) SMyVRdͫPe,/Neߏ?tz7 3IHsdU{U3z=Ja\ pA۟H8Iߓz@-n}IݽsfsFuowY6˰zWXȢX1 iuƖSd5ix3dϔ}M=*ˈP*#ܻ}T +fز1`|oeF3jSM)[#1^7؞LhMi .<oN*:61Bo!+QafYȁٖ:];瞚:O b칻e^Z)o]_š79dʕ1Dg8y=K4 /HQ 7?&vi& 7KǦ fU⡮U7>դ0G3640-4:G/UYY\=]NV)ԑ6УE5Q(16I^&5ֵ$$ ߪq~3Xg8 eUs*juwtW@FT}.nGZ?fh)燷)VE4"&KVwj-%{,ƹJI ͵h=9Bb:!uι[%zhU{"V"aQ@07u#= jn"vn/Un&*?z<88#ՅO|{ % ֶ,dXF"Yn}GƉmB: [`6WzxJ%*[٣I#YbN`ͨݢDm|:304oeaD= [ޛVxQpȓ) wC;[Z4ֹv$fD.7"ԓCLRS&Gt bJjUz@ *«C̄4"Dѱ'Gur0"4[{n$I/)l +~Y1TY?]%=^Ysh][(n@aC1N~Ъh_v̯/~;2ҿM۞p~JfY/áfvT=v +ʫ /\wbTnѽN0-ӕz]Wb=[ZY[}"ΗXRZ n.$γ|Wd JyI`:!HsxGk/E\UMՒϬx+=YI礁;RǞԁ>lź{F^$ ^Sj>U@So/1euw˶-<}C fm|v{`ѰIuvcfOnmZ6y@nѦwgh2WSe':z˩c9pʳev6P+Cӻ-S8[ق9sr3nްO7[ d˻mTՖK{{8ЙܺpCJ-/\a7ӻgL ,7*WL3@\f^|+J/Wb-с]?RZaSsJTSkHalϱFB{n˒eCvK , ?O!R|ɷ,q'A"ܴ#ۮ$~,?U8-C^} 3HYG=GTuU8 f1w"j4iM+Tj.[pBZk-N4JC څ[QwDsl&)̾N9}XLb=Ļi:^f| :]1}7Ϻ;idXsTj7=RH"ZΤq_n +9.y^19S)i> +X%̰]q|v pG+D+ދKx'zo<:̨.` +2 :94qS(Ðq=\ނ)^r2.2A*_kA}|lRe +sc<^mk3W 5)Ƴ{z0o ?lr? jעl p7ÌTy߷|97Ҵ{Lm\k$mEbD(/H!r#Lf,8?ߍ?qٙz&U(;C5W?etSQ'f|i UT]Ly|w %nefLS}#Ǔ yD:\iDBgkۺ @aZPw19\7W3IʍROOFu2ud,hо)}&u>E~iQ 2hIQP'>ez߹؋?9Xf}N7~ +49#U^,,dp楃63m '+M-OԨdʢ~ ?j{v5by4H㬚Ή9Lj1.}L2; +v^Lqkbxlȭ|7t~,I$G\)^'Ϙ; ²HȶfJ`(opͰhJJ⒡ w9 Erݙ`UBgFɽJnVp %H@)È|),g8塠j٦< +==gUQ[(V M{N'5(:_{{pśD0D3niNSEw{K`ק˝Gy!*|'B# >q֔)ʏh k9mu^{Zy V1!DZ#*s Eе,A.Ӯ7̳^7 U3F3e-Y^y޼~aE-ٯԇ?ɩ<D˥ۙ<_kчC+VU-E6HS0x[P2YOwC@ϫ](mm$ +"FqnJKj=6y4<鋰.jQ%a"QJK͉/50C~&M[ro,Ɔ{~gm:2Z=F /-xS +X{>M_f?z;[_8Urb \ (1{ԨȧPsxtAJIB1N:^g>Cj?vT%w&iXa 7 g& +tRj,-lzZ/Zf\u/([5'*5/ l TZ^s"0V#}? mkw xn'%wo +?5Ѷas"cfMyj*.3,O/qk.⩵kj^V!躈;$$Qiz(LGGBe+O Pw^9!LTyn n +h'[v)$ƶ *.mz!q*M[B~=kX8a_: g-._0Z:gڙe$PK')6 +A%;2K_Aߊ&c?a!fO{HR"5&CUvJ:F1zCɮW&' jP`Õ>oD[wE_Ǩ>d.fM3+Nr#ǽݷC;\`qgS1UD3F<6Km.Tw)FTH-Ⳣr+b~A&`2\-3u10٣qx+!`bc.]FWQYdDT[j87ӮdW$.Кj-F)LwK2Vhid4jhGAlUehxwΙLjJnN8=-=Ã?|́n|o*Ϧϙپ/5}|'#L1yY{]O J g^P^&y%.^nE +\m0 ~*mly u5ɕ=kQI0{Zi_+'۽cC|nDT<׉ +K&-^LݖknV }ߡ<ˌ iI5_-~3K&=Iں5!gGkƯ-Xu]No+Hev5@xJ[VFu;ԸlW#kڈy\0*=Hr6@b^Tu2=w;llxK73Vwӈ`rNͧYX(5DgtS~ZN-Rσ+s)lg& ]5 TR#hXsB؈N*49 8'1 yL&.QK_`fZSx꺶J#'`C{矾nbN5k&_:g epdZ'P6owN,6RѡJ`- ryrԤWۘ庭i8wȃ"gc  q loF Ƕ'odY⠷Q? 2D巬y9o}!w峨3""gcAǮ#nW.e\EO{ݼ 8u?oξz5u@n|u~ր'iU~wϝSNԆNmURk&ٲ$xkuk"8j~ =Rk|RRu1g46::TKojJ.ol$ٜz +OM~ђD;Yz-5["}3F~phI_L]„-^b5J`67 Ck\L{OcP=FR2cbf2FL=pp˪L>1na1dj7]=Hw[ c/՛ҫ&cG +^3/IϮˤh2χg ԧ!z=ԇw+_pZ;m> ʦKn*C ?ئYTA~>( Ċ$m |(xE'7iV^+fa7V/X[L9^yB8J#wy¤gAWX=y"=g~%ZA6!_YklZvOYDfL,NM |C{DmpD(O(?(Eͽ4SkYo+ZuL>JǕA,)9)}+>$!%e٠%ӟ ڤ, pb֐Quj7 ̈́=:/.@Nb2,r1)ƻŷB!Eئj͟YwaZt7|d"GHɓ"2#?z1mؚP?5,~Y{9F!Q(\f@r!L%61<(Α<[՜Ǵ +qQHsYnc;6x_MZjVƜ^$wd*} ]2O?$xOj4)ufj*(E*ioo,w֫gꙡT^ufYhN?g,z kPO$V"tUVx{uaSBe|JQU^^ +Ym:fKѥVj]Ѝ:Zܸ'' _o/-0)z &Iը\Eӹfp/C۳Ŧא<֜rm;R +MGAms_,}M؞=b!;+?lq<<:~6RbV!lm^ݱ[́ <^D%}&Mۃr4+wך t `MC@֝``ʚ _b,,VJz( /*J4i/lk3IKIHImN>0ە⣠ǩ` +-Ԯ.f&+4ǐwf5#Ci*/17̖ɀdUuK_#Ηoib_v>RůƝvc(W㰙c̢_S!z<AL6w-sfstk  0ac!}lmm8 e<|H'\QC|=9_98D^ej#-L˦uL$F^7tو|,zל1ѳ>Jr0bdhDQpO>x^oz9)N s8Eah=`mNÿ}*]zX: M0R mt)On/h[@.Jp{'I3tpwr*Fju=p8qʭq[Mc,_~w uh}]sN"-",5Au $H+-L;|cwUd;+лD,Sfhq>:2hIjG!$li1)ygk 14laCq3swm-=})$L?dKp[[dG^ +[5ٜĞ4"9/*z~2>vȏ"i6ョ:mN8g pZܦozxϋcfгDR a6jP%&4I[(1avGR~,Z{~2OPfemȆr)`ע|ꁲ7wGƭ\ΖzR +aLbՁ^_,"ɹ [{'!c9ae3%.Yr$L=` M$f@\Xj-sVI; +JBFKԍ׼$[ME{ BN6O*@rjT΀Z,{,նe25>j~,yl8OQRm| + +ESK&"4N3J%@ u1U +lU +ԶmA `DZds Y,tB5zT2s^9XS#xuD%|=TI}n+Cq}a5b<3PXӅ*Qp  9Fz+iϩSoLgXpᨶ}pPεI"y3oqcW1 "vhl]R3¡/l=ѣ*}BϠc))² ~eh$ټcPɚ4$VIZgdt=XUBDR|zÁkWW dtR:AtqMQPsQAA(MY>L=犤ʢ+L^Fs@~-w/-se&5onm~5zGQЙ5+xfF 1mJJ['rDZ{5}fTj:%+>]*%m +ֲ5 _2ܳ029 sy0RjV|m\D?NT΢d[[N* 1>fO7|$ $n4Ojŋ$T?SeǐR'9|i`pӛlĦk>3^U0s.tK7Ÿx:UZLn2黢t|!#'cX<=Z5IҀԕ{Iԧu2+ TI.mh}@塽R95Dڢ*/܄\^5_1J9vRݒCyN۲=R#DYX8H^ TR󞝪V Gy˧o)JwfV'ԙ|U0! "={⠴bl_CbO5HUB ǭ5sxO$qvoTjU62mcR +ye anp6-d>,dqe(M? E^^E b>ߙ<;&e" ?OW/qxzM]K&r巏[,JwζkV)zښLh\n2 t\ORjC_ +789QbRi[)d80p| NJr+.N~6Wgr}d# +F-@oE?285+]X爩äOUYSk8\ת5GnU{ =L[DEwdDHۯs;Z aXm߈CGuBx~jnjgEҒ]zl^$I} Nj,@ YYo/+sέŜL%:%ngM+O=d~.~͖U؏z[%}zD2VTFJ<}zii%}>~+OͱWzfWmU .Bf/,^YimÐp?mkޡ՗ +8:;ƫwwyF|J" _87߶  @boAy5 NAӤCURKW36.-a`ev2kroSr#nLiHx`NRf=ԊGTl#s +ѡ0S@mk +̀!S'AZ͉MkBdpZ Y>c +umٍ"yfF+KŰvyt^0Z?#W72|^\ķKOtj.$N)\3ᗌD*8@dǔr^?rda"B Ipd xۇʛ/w>F?F{f?@a[م^]r}mƋxo}tqyd `S`ƾɁYZ Ӫeujy[ sPܶ91 7[y_OtC`qlaXfۧ"۸u+K?w)/HF"[ҼZ=depyCMJ丝^y:، vj> +#ѐwn'n=qdh bY =Fe\qK1IQJw̏f+lX +6giQ:Ƣzp BU# PDr# X*zX͗ZeF\| /#pؓ Hj?cBݚ"&B)SnqgOX!7P>կ72:Z|FKK`G7Uuzrd{-qqwo8ُM)*MFu=2AкzÇcwX~@і`GwAl֎mo oroiAJ٢_^{WC@:K#ܕAX#m yzCÏ<8?_tPV>P*+( 'lدnibw ΣLK7G]}mkuf捾,{F~H, qaokP Eaj6 鬏e ="}'e۴ϵB +?7NHOׯn om1,n'ޙصNnwLްtH.UXqЏ +Ϧ5hԿM|fF剷ϳOW1g2_,3$g|t,!?g۽D}m✞+]1%q }U3`UgJ1fR7J(sVoPm~&4Q s)6DPXR1aSs*}o~p~˰} 9fAP㮝GkBw*z3 zEvl )!GҪY׀s z|N۫~WFp}fEmܶ{ tݹQc>Ϥ6Ļ$CKyjR9apf?]交XB#rʅt)kzx e5Ʒnp_9GBcrT+gYIya}~ccDz!mY~2x)osƩ q1Xc.wrh}k"_X^Q{Q͖K=h&p񊇒ZKѤ^j`#)(BGKjiZMq&TmeV;M7ۃwOKn&zv[rs- fLg|ɱ.}+]PT݃< OZN!d;5隬9{ T+Y:}WnT%^}5GGqjpȭF6}Igƴ3Q:-"t>왾9j}֩}$F 3mz1ܢszKj_~kϼC|VG\'~3i\UM7w2h,ճY?MU‚&6@E,AP{J&џ/QPtqS^ѵ@nSj.6B02>@W(_~˝L>r ȳR%g&َ. +\%9>]5h~tBe 2V =VB,gvA>KTs}o]06xyXKP˖78F.wZZ͂H?ne)EHzY67EK^Hl nu|j^Ώuc ڦoUw$}7W/y0ۢˍܢtQCnyf}Tr^B\ܾZ<+l{pOMޖ&Ī84 S2ק4BuW)$uՇfV ]6Bp|ʃ}l$vtq2ЍTz}i*A~hweuj;# K +Z?:Jq5^%4 8ZI\*ݚbn@e3bP+S5Ԙfc +)~Qgf(9.m =x8t?..nB_I4 +eJc_sP]V)<<=qSO@;\a% kS7J!1l5gKɫ=g`.dn|7|chBl `B_]C8cwJBg|a'(iӢ0[Ji~+ xEx2 käyڽ߇y2R9)Z'nQ7e1(Ez׵jXxOl ?-96I܎e3=nIlWt(}xDNom!Ywvx^L3 Z갺l.'ޭieV8rnYQdSzS Q#&v^_iX!jJ}zch.ᬶ,V$Zfި/dž*ڶGoU4kPnm)?ǜ ]dk'rVW[v:9]hc{W^WDIi?|]&%JeJ/$/:]l-zr 1Jë$r$oO.9]uLWo%zq_(>g%6XS]u|\6TJ;5Z_-0XyB!fypn&^Ϳp'7&EDCy?WvI+7 +RdLX]tg \c#,5>vw;r͓큞x7J˕ꣂv \*qp3'S3r'y^VvTWFaf,uǒ{}{V+gx1_*q71[XyW T 5lc/.%>> ::S"2n@4`]p%)\76oFp3>axcy`Ru)9c>ݛs!&TxTĐRF)NSPt˷H$z5Q̵JXuԬ7$&[3% +&2yuT-9\<!{îMhRHܑpu/u#spU}Sf*tg]859)V ,rvxk i?\Co/W*5EJ)ycy9^p`ղRŌpd7b}^@~yv{jtb{]*= +Hl25 =Vuё31[HG_W9ZE*6'oU儣2]5cłzm-;j]Ũ40J3J^6!MsK̥i3.#J,xioZ~`Oؒf5us;Д%љ,F|ݛNۃ6:^KyZ =l:\QRrcLo$![G +Ŀ,Y"H'cD7?Y#̕ܞ]j6wpU,ot/5A͒sd姯 YyT499^ѡNvtl5bQ?$M)xD{M(}No)"OFtg9tY3dgM|랾US/$asA0?ŁgH6G'SJa%wdy`fٲ)aZI >&2z= U )]>Tk}Ѽ +RVm"'w{)M@Tg^q1ͳr}X, bcNu?LK[F#najISN% F}DE2S50\ή/#i 3p}>:M 'cP>%8dM^VW_+yp//壷"&LT:1:V \ook }fu^]^knIuχ&5/utXW$RJ Du'զ9|K%`)T:UΌ?P:Wؗ4w`79.㫊_o*PtP ˁ`QEe +Bq"O=F{薾^{R0[_ޛ.\ѐ#i;gK&CLI&nDVʼn:R,vk-J3vS=Yc r?P⯆bӞaa;-9/Pn_.ᾤv,&,doYԶֲfwfXh:ezח["vm?V:cׇZ~|NO ;/=m>EjZܼs"F"Լ VjN{g>V^Clqh03P9Y ޜʱ9 xL3Gέvꁰ–CRQYrdO Qn{i^~)Bҳ.37P1ƕ.Ev h[weOyUyXSXŻK;|kfQb> rV]6j{=@\dnz_Z49wA~\~W#)] &BqX™L¥y~v2 K|E|*dVl-ч"ɫQ{Q+t)01]'搉oP9_V49%Uc,U@Ѫ2wK'̟T;pjQNsjyճ`dRln#Ú@ Ta(P+Ni!=DQ3l+ 2zTz&$YڰR'+!c2:UknQDENjcUUjY?UC9*ԖEE*{sGqWŜ|+q1DM}̶wcב娮- DO~gS9ܲd!V= nrìڡ/{fE-N_4!ړT|#ۼerAi(>>[ +#.i͗ZF e^53/{P\*P^DoX?)i{שmR('VtIP_˜u`T)Z* &Sw +|+k?C'Zd7 <~ǘUz^WR6sZBwѼ+1U(cB:#iz}ye2_Zm]GtGOOM|TkŬFw%vx}N!^r44v5͞Ӹm^SJVNrn$Nb ae:G{ܴ_N_tW΃8ڄJ2VО2xp}tXbYC:kOEVܻVLτq>Lfgjzx"8;:wmp:~aWoXPg[yrȠDFq:"_EN,p0ke[羪K.aJ.y鉘<*A!t:=rp8ݔoy~Feh~ &G'z^#$}-ߜLUdIajEETL_l/R~:s7S1Et +*YO t6 Jn-ꌯq{> I͍Z yF{O:_y,.; /ȿ[׎kx >T5`LXYxVnhEcZ3_Tzo +˞1<6$6 ml ?zA_M= +;@FVгgIˣq0x=h 'C3rߜ˴Wf57u\m_Yƛ 5+\XawjE/9ABjLog~! _x\jzqh +k+L/<'5P-(AXFըدȽe,wytѻߺ{ut[Z}p y~\=ge8h94s5:dM:xX挒Fy8{sME Jx\zL!;ׇ&mMУup5wH-\] >P9}lTtoiGe=-QkԛvǪ+;g|<'''r6ش;sY2\<ΣH: Y97I_Oo=w{ hjZ@vRGQkf!t=^o'qa^&`BiAu4#vJٵ(IyS"E@lD.a_=2raGԗ= =޵م,ޝywm5߅ٹ̪KWd@sW_!15"[Z}n"lu; +ή*vXdR4?{ǶQmMJXMySF;"ݩ~4?f7(z0o ˡ{NU7-E4Vb"f[ʹ\vqg Wr*-X$Uѥ%%D(wФz1c,Ez!\{Un}K\} q +*ȅq/Q&-ӎLXJ_8ˬ.ڬw5X9σpdTt)CR>Bp^ [_K~ʂH,o\Y:R,#/;Ӥ+Hc@ޠ 婼J/2"eٻ׻QN_?EnYOc.)uّʃt 7Tr{ 4OѝwMN2/gզ>!Y7+'e+|3?94{&@]Hl'E?6Zwҫ7zzm[`D #@+j(=oDЎ󉩉oKfCpdіPvC&R6U%_bl{Zwȃ9*lzZA<a]Ɔh]rOv-Oߺ7&Ekt|o ֊[Ya)NH O-4Z*Xco4tV揥2Vz+zN e5yVr OP/S][ş'Jqr*gvJȶfzT5̨).&&%/>۴,rb bIoǃ"D:kN!qqX ;I{}rC5jiv +Y9Dtht1[>73mMA?Q駉$2q#n~Ck8!4ؘ7״"T Nj##o^6_Mk?+FKv }yr??6,DڌxVL5 Vkzkɠn.. e^`PLmr$GʂYSγ\g+ۡ•vg+T:q'ZV͖aAS+zpѽZšU :ƼKg|b11@-_3LrEv3UeO̡7jD%Q0Z)Pӯұf0ڴ>*]z99 +6mx[`&)vYГƄm RG2E&(cA5.쵞.%(Oue$G:!ؗ#g-pn_/7P>~; eܶုatxOC>z@% \MhcK\?D9XRR+UcӠQUt43f`UmˀѺtk`7;絽J*=ʲ*JToԪPL+oށ,Ec_ڋ%op2ľ6fPMz7&D7;Ru!q 1G)&r^ex$nOmcSs N񭂺h+Djì[]G[m̔v[nlUemVX;UrS.&î@vqP&_}Lk,j !6)2{~aێrԗ㯊MF BF/(/ 11, =Z9_%s*C}cW|c]:GF+ViX_ԥ-.觇=CPg[}}@"hvC( +\4s+vrܰMk=+AC*j6ߺ +^o 7n=2=V^mF[:duTc%-UXoWV:ydёB$H2`)׵dV}CTҢY+zp-JjWQ+dsfBE*.N_NOVߘ3[&+nY n&Y8{Vf&懺Mq +c$ RƸAYtv:X) T:fg}ALZUm~ksr5](}vp`4Ŏmi"v7U֕qd% nY +Rmwtǚ'Yǒ]c- g˻jsl/Ho<.{iPߕl5[#JVAc.\R3?kr7T[swu}~K=F +MMnoωaC_i8ßPk mO>1@ .8PjWݲb3"oa ~edu^Z +Gԡ V^\jT>5`ⵥS@U-ߌi 'ilˁjm +7yC$vmZ/QBHN V8 Uֆv +㴳~MjqϿf ;PsEV/ wbѬw{Zz6mL‘31}>yz9~.7"'MkCoe%s˩ӤKC ;c[ _lY[\y%X94x"_+5kjZ#.K>똍VTa=%H+B59KO%-X)6M`+>K2) NΥJtJ^ƒ9gXHT}Pf͋P@J@bhV}"Kd%WPAeO_UL`do@^FZk<e kQqy:gM J&t.O?. rk+b_־=&k螻7Z`:['x0yk<Ʋ0-/gzpLZOyDp. ooTp;ТfY2)s>Ҡu|ݣfeꉔd3q D=3*R,;=zR4b"coA!8tkYY;CXSymV3EV% 8Eα&p +[+q@Vn?-gPDT^ᵆR0`"8l-q(N-~c77q0Ū^FZKeH eDɽLưl/SsiL/=d>Jӎ? oxSWgy A?.mm CN wq*ա,1,QKin'I V.%]{.1gj2wơ?!E\Yf7 V &8mt-Ka25h3{੺ {T.e!TIPf9kp^>oN;zE!k"*v3Fۯ\BŎz*z-3"MR?v-Hyݵ7)՚%QÛOIbKnQ7IH8Vʼ. zz$1\ݷy&>IU[/I Y/gI u cߦz.UfkSlf{;3[Pj.As:w#Y~kҹ m۱dBSGwFA.&MIInL+>jo·}Sjbn5NS`Ђ֠v}D(,Tt}|f{򵯾s E:y(smT\5Nf~%VsmJn}T+/JJ{q/ 99[Dzm:)ϚǦAS,HIVQCkji̧@ٝ񶷧NvmUnD^}Rq-H"ֳV%y{`4E'/ݞww3˩x#ˤtSAw#?Gc$M*$kA(󢴜qXn^l(W+POR^d0Zߔ\yU03P7t*NUkejTlQ}ĞAAR)Oy +QxwL"*Arh9<|3Jw:BvVW/¡eswSX +`拖u jRA0nhum6UKW+TWb4XmcN5Y\E1\R.*nOԬKp]yCx}푮Ep< 6%RsJ0}3NnݘS#SYT%gOUY_ULkɖ;eѮ޴K aU笚rƫvMs)BN`[?'I +y V~;eJOUTGȪecx K"5xkgmMgaF ^&;8]Z4XYOU3@ɛs4R}_J'.*f>mzu26a=Uʰ2{ߡ +mFe_lu%}Re[lqj qLJqz!fNɔ=_T^z)xFhfM)åQ7WS+c>b6Hzp!I;S<|"K35T3g]w.>(K[E+c}h{}bu^\a/&#|t^]NAmn\0ތkS!UfJx@bV-,~f+*=uUC2i\J+6RZs?pߌE6ztdiaYA6IrVuH}4&̕U6fiziÙG_5ZbM'.dݐQ2;afoH<զ(7ݞ>x329Ch`w1' endstream endobj 32 0 obj <>stream +)o0i'uP78U{vm @![Ҏg8|Yp{;|t2M8O#L~x):^Jֆ"RnVŷ7M{;`wC5-v}эdtwGD'L.~T"xLɢPV6hIvɈ/b#/ۥ,1S^J.;lie|rFl} Dl.5.OYB#q9ٮ;:]xrV+{{QOU쾡MFcM4#/&0D ^v[rC L +h1Rv֧2*kZ#mG2nܛmV]! +nEAJ('w"ɜ,&jh MG)r ϳaʠ؃m+G{ni]o ݖ,X$5FʰR?S0 okn@ ﯔWaYöѵK;~Z25KNʇcʰ23aǚT(ԩPeK[6V \+M-gL +qle2L" Vj]OsqCZgEiFVn[|7u`Z̙:<'VM+vT,c|P{Sg:=3ǏV*Ze+ꄎBc-$SkЏKQOٶӚǯ;}'-!.sV2@x TvfXmȽx_#N{{!r9ە i*ipz%yh\,R=9iW油ar7se!6)A:U9 o~ӛ0 +8Y˷iI@"f߲lJ?^gF.'B[Oޮ5g^_ڜus{՟؈8 YjAU8jԏ湦$D{ "7r(/^f'j =(.rU,K&yq (QJ +;$5akHT49@|+kDܨ9]Q9UzU/OһqH=5"Z)&e7\o[Yp"?"_<3A']*MgBOO87R˄puqݭ7Jj$E߯{oכ~GDn=ݻ`-l2\WT^_g-"RRrTFNE, G^7;87-p>VKaP'7vO=bq>Z#H抿o栈[5^^hA[duf<^d+{_B/cع1a$#$L^s ׻sZozH)SŬK܎ke5۱n.t:ޢz5υl,Ӓߌf$|R.*axSbTq2o9W%͘g(=vbwtsMlqSvv\m,r cWo3P;a!{Xf2+Fw7L+}Pw| X(7n]Y?[G,$Ή`nո3,},JA+%k9%A/fvNӽ]4Z*5|~x`L=Si{Z2Nua3In2ո9V| ,L$h)#>:~:`w}G5_4W^GpWHY٨"rv8 (o7&ʃ > /hg]u jk/:aE.1k㼨0SC䉿%zǰ4눽ZI&0eoO.LW *׽#5$) jVYQ;nXc8:Am~i'}3sa˜qiD7WMDfQ-*?׮:#Ѵ\xQɫ7/ebɲRhb0: W1wdD-]Cٚ=_F KogV[tK fr=_G%!pYsmsL6Ht9$U +P^8wz!gzkƶ4pɌ`Df[ w".'h,{.zhP>=%7fh̛j #ů%vIOTZ%,j[O/GR4ڙo MmJG]I ŭ^<;/y^ݩ&NGx՜;Pz86+1˗޴sm +:;M{l'nL..{e^[5v=j&:%^r\v}>쏡V+ӑvK'+F!!;p*,!q+o@i/1gts)"U_R/۳PK6:m2 3|K*~!\Y%bpm";!p}C.06"k'=%/F}+?JyԲӳjc7. c3wS~gFEHjoPVStm vINץp 12gNo`E m;OeDTYh}(^PKW5R^Q!<rnOD +\|Q.x Fݺ32'HҗM Mbhi++Y-$l5(t5f5ov!Ls+ӑ:V{mu{[CB$c!=g~d 80y߰BVP qYO> +hٰrʻQ\5ꐭTRVZX"nէKry9t=̦L7{qSR.?K_j־EDmS/Q?T'tfm33|)&)RP2/u0`w?T@tg [t/#Lvey(@;_@kcjiB벎~hƬ|-w4~jrPV:Ld6YZ n}%FrQ>J3[}3}}%(+&W|UOBoeO݅|UudO\ՠvVB@}78{\*>۷HV6S*V#z?yH$2㭮fkX]}5AO{A ]uм80-=D;g66)PCMO]͚ewDrUFUݽIb#ǘڡFO˳lf*Nam9!ur1pu=?dN59} ssP+ոkZƱ0G Qnu8:ZV}g~[Ð~t4.<%9wE0?Fsap>MZDvN%g<.!MB<D5#`%δĺZcBs}"]uN%[eUYV/4!l߬qUrsREv]4f<,ԡ:D -ͣI&yAW"dɜ} + x[Pj6nXcrVյdtnQ)TFQ~/#Ruz v)Eu!{04ZWNV|lL8wrc$;ϞVoB nFB+u0v5~Ó6Jm5ZVJG/!/fȔV^<$ W<1DSm*4Vy˗d}aH-Y&_ons=j\qH&!&! +ţF'[sc7nSzS2(#n[w©QK0M} +3NaV$%$!WӗG!=~<ߢڶUm,UϏPg:^-c>cqf;Z9ۉ~hBi q ¹˲pnCũVՈ}3(6}" 7BԘ͊RqGN;Z2 +E}ܾfn7q-b`{|v/, !. +u@ŃRoWR^/omUqy]g[Yv(r4?Q}[$u/,(^3}GĨMtlG`z[%'GJ9eȋjaYG- +-^nVZ$_2M<#P&=,P5L9dM\X~< rByɳa;o!D/vP<4Բl8$w^n-R៳2XG*_Ix#bo=4Cfsx3 Y,Unt-!`eqӋenҡǎ'mUkp%hތ ģ'sZ[ ;M )D$d0qތϞY3>K18> L6]t諤 ۦ80曱J1Ʒ'If֌ȓp[K#h^q\;vc3͸ӃjO6_gvژ}CKcy_o}lmnbio Ff :m3yc;N]CJU!=˰&( ̽PeV|^ wXuF{jIM].qߤ xm|wa) wŏg*_, )v.55kZ}P3ls`l{l\-I pz +cl]eZ5vY|fPT_B;J(W^l\E/'Wfet: 'Տ5+φ}]kK/区MS4<'zP=SrT&(Ԛ%(ޖ5ߟ޵xE-j`v\My~{{9P8óy +ޝu,ψRQz;𲟫W}u[$񓖥RƒwJԘs'9ęə0; k+K]s׹iÐץWs g͉r3,*x=*YZX _zՔfb\ d/}}^WH9r97?tHg銲:n=y{XO=_bs#Cf;AedHY+ΐ!I}:bsdw5q8ו\f#PiM'5@[\Eh@G%:X#6=7z=t=P].?uwhF89pku[E;9Za.:ۍYN}#ֹf%F)ڵ+lܹP셀>!5vG|d9^:b`X YϦ"ljNifO͏5aj?Dq;r+[ʍ-~ܫR+{GWYo>ܵdONEO7J%Rٟͩ4Uc˼A-`t?k'pim$pN^1pͦ2T>=XƿP,4V<|[MN?FmgCe[ o®e Kjy"7)bfšnv\,k/:oXXA"1խ;MKV٪|kiOͷiڏ]wQOYst7-O6d~Y5;[B܁3Fb9Zky4g2g.;kd:Dxz;o*TkKVarz-Jl+*Sn/WvGP@Y2|d*[ԷO>(tZEGt{W{kFn߼-kU":q\|/aj~'AՕ׼Wy7DXQ]sιdA/Gv+EJs٪r.~J >Ñ Gbs0Sy0hzsF5ri)G֫j<=T{|ˌ-vvPes`I^@\q2q98D樸e*ud¹.zh'ƤegaϋQ]4m0!ŽZv^JaHzBƩoEn-O0cMX>͗^xF|91;?sGKr)F3^MN?0,&jq*WMzș+bхՒ$6zu|ZΛXKHcyǃ]OҤ\)ru.M/ٝG3zw+yGp78$ +.޼Lc-Zw&;llZz=̊ fN$mB{hv]ޟC|= ͽW|aVqvzQwR`,Ořg=E}Z.pW 3}O9Rk%âd}j4F_iJRs)*QIpe>Y_:FFW/؅~tumJJf Y h[z AܔKBc'"peM_"QAjk>f,O†Eh9L6o՞m L<̾*]}_ȑe^̫jiv#>3REbeUq(hh >.YVbVBGvռ$' XsخNoE۝p-IiUʎFHĐj}:#5 6d #1T8cVy1t=qʆNdn4^nI O _qKU_ +/Z$ۍ]U'Qz#?>s?3gL0+ << wbϏ$dsvǵc5 7'^Q>c]Ik4L"im d{NU$#$<8tT^nsFnO6>iUVͿUB:F󼖒VFZcEL/ (ZTSE,ֵw4cUEcl#X!C`܇Pl^ɾ[)hT˿Ŗғx޼Κ#/l`i2'v7CUY ,9SSPYyv{r7y[D]&n9lTr g/j3"M]U[ڸ.\7(rv{.=+[=8NQp+ωu+6)=Lc0!:/:Βoc{hi4o=Cd˄ކ>_Y7m41a3W?*g7Lw 9vf cؿpdk$!o.7;v"uс3 ;?mt11<>H} TCi{_4fܖSϡF5pDk˛$W!6v]ơ|+ui΄%eͱۘ4Z;s+ [U.tz6#L5Mn龔%yn^bF 7a;{G+K;i^hZB4g)^"-|VXs4%y3hC@|7nES ^_c? ;Z\K#B,.L5}c؞n,܄͂64'L1ʻdǁ_ ~h@wZ_,z~)-)P6 [4i0hCY.[\ƱE@T *Zxp:י`yI TF\eƗsBJ5vn|}c+!jz ~VBC;DȎ[. 廼bølf82!o_ynfN-I}Xou[1y1)i]OCg+Z[[`~iZ?Zm?7e.J3~OLϷUǐjOu@?xb_oLf䬛.49_ӿ v܏#j˥-t8Y|O  ΔoCڭ,%Rzp0U-6sx<{/ +\'mDs(c~?F#|iLnb6B>kLZEg5]߆G^sUXXn<5ap0#ƬKԭwNpZl!?!V,Ɍbfԍy앧C0P$Ţ 78GJڳ+r}wkb^$ax]nF[ b^DݵŇw~ ZS\Q{Gk4GNd׿ +<,.F!(^G"N'5;(Җ=7NSksR:`݅ݸNU5Зiyu49u F?ęڑH' j`4R^.=kCnTmaU^I^C;lY9tIw#ð̣aunZہYD/[ Ъgtӎ xt\v\mA.Nծ(d?\}×5FzQhb}*Ӽ.Z#֝ &:l!] Ͱo5{=T<؉&Ks֩1<+7e~tXϾ#gQ|FF6&Rpe>jj +YnsD0% +/!*yܹjK4neLjIz3~Q2o#Gsjȝ4?Dߎ!׎zì ɧhŰfl;\5b">N˔>LY#ORnE0On?2n9>$E+tfdw FY޻k ێtg?_vޥMPf>kj[)4dŖ4g5ÈI>ஸQw(m5{ +RC'\rs?Ϣb ѨwЯj|ŦG6x`aopǓGlAx)TvK`T_-pN˞E;qqsϏb=o&1FζfY$w=T!FT_zshgې|RMR' uhXp +OD)&O8wnn-_فzDaF;~N"t?jr4km.4/bɄ9fRQ$GEcf9͈o7(vwe7@.MlcˮQTkLGy] +?*/7XߋGa';Z.@L!ޟƪس]h:%i%=0 #m,5r55i7mPRDs6^E#ޟ;FGfY1@iͩWy~Ӏ gvc[X']Lj&+_G&8F[~9#f`1F¨g؏F7z1>׺Kзq9+]nΛu4:pSbS +cؠK6;4q% PѾͬdQn%c˓Zs-wWaw¶%:u&[:GQ'r?Ӏ@ֲ9T:f*ʢ(uKko`d |=a0S:wFQ.KW=a4lxizzkRre]9}VOEf~mZͼ9ZAxoɸcuolSiºҷӽS;߄h'&K"͚^m\4p$ Mp5oqzbPEGêpn͂q2[Z)S"fi'&eFPvmSS~3X o\8~cq0nEϵ9;:*13/_AbkQ^#EW]']xo`O-W97tGnΐuR5bj[Mq¶oD9||.WhjycsIN4}εW7O"I4Zk-Z^l۵ݵgfF^﯇=B9?HmV^D,c2`ʯc50,(x2j}J*CbwqKGߊ)b]գ}Lh 3bEl*6NK3Ĭ]Ϊ~-zwZwG|ʊٗznׁsf*ɸ3ϙK@m,/nq>wM(+ZI:WJx>zI=0_~ǚrQzٿ}=j i$>S,2m>j]""nPQWju5CdKS=WW%!7U +Nh.KU:򰁞]$ߛUh%*ņޮMq׎;EsfdéA;IX e#QkN{=|b%/fDhP@vxV;̔MYTgT }hWE+)֒ +fą໎`?lmv̝ +T)bK@oi Ѓ:Y-d0u@.(gK33 vgItxY]X7lJŽ7grm,#8Rk&sZÑEQ6}٫v|S8[pC?OlҶ}c-c ?zMt[[Ξ[x3+TG$h)mD~ҼnO;&L\Ë wg@Z4Ż-Mk :- +=9[N;.i3%Y kjILVaC3ۍ-mnjKykgIOW6*q!16B0pt0gXRZF;p.;9Js>y"Ҍ,~^L WLr8ks}~Xzjݜ6.Rre:nw.YImcYk~1vHVjfss:ȥ ܚS1l!WsTJ(\\5P=>iU$Όwy[i@{ae2tW^Jʵտ@^Zdv.fik-;Agsٚ(QG&W>js{UԆ,(g_2n?4nepǹzrb&@-{"c_Oف=K: +ƨ-+4 s^t~1,rgڼuө?OǮ +.fgב=)/U#y[JyUJ^x94O9yݒRGF4uy +wkm] !Dv~1|*Cj,uًfq-w>-0w^-쁌ܫעۛp2:L[Luag*є{DzԶӎ@97gGĴUs2c_&gCޥ鄪VHlIvM'E'k|;dlE0v~&۰'?aw\w;ߛyOΓxӂg [_]@eZvaepFz3g[Uc8.,h6$F{>C% -fDZ~jN8KJ6i±-C .\DOcin5moN T ;guM{~)[AMBۮKH>}ыV.4^\Oa=$,{N,#Pta}ƼmzIŪ4~wns2Fuk~u f}}{xE&iN  {׷ P׳ >@z.: +5gw2j[ޒ$Gk?[2Ư {1mkb$hɹLguk%,G0.5_ܔm9gZqQ Ťt(^#Vp^pu^khu]g#݇+nXn=5C_ r4OlNܹݙ%wI%$nZh;22^-=u2Bq^6 E0j*Zd&()z1soY(2 +cq>m&8+"%.2Jk/bpi^\TP`\gO +$ޘyw":o=G6G񹑯fe9̵H^-'j5**A)qPy`A`hzxp/QszR01 r=:E 6U走~,QwTYчj G pue%EAx_5w3VKTxlԛ\?RMJc?rY[ .䁌k*ǤwXjmwj۝0R$|?IoN^)1TPsuy}D}6d{r8Bs˫Dsqq ֵ[B6)|ٯh};: qsS ]͡^;3="6{/ g2Q8[j=oNb+-S 2l*z&MK6 +ov&y1~棧P +wԾ[@>q/qͮI_}w"':& -cd#eԑU%Sm~?B]M<$|EL}@ӳ6THw~ 6&ʛ pKA=ğ;ݙwPC/oɿ?)kJ~1۔߃?Qmhѯ6|LᤪEI~"3b^$wl4 ֻU^7Bh&d:;%\̎q.F9bYXD>dި:~@f.Kya@@VN*' -͂hފ}%M%)c%iqs2xi5—{fҖ/ejLyH1ƅ[W758P(^4kZ<%\-hVF'+J]F߀` xc]Zp'oL\ |+Ȧ";t$NM\+g|i'KmyZjߟnFN9RGdxqzXG=@yOULc$LA|3]Bj#ǶS4zUqFs&oLr՚` w?@yq| jk\{|$6:dwKsb\>g:tnOɄ$Y!6 ҞDwpY-Zv}-}}-FPv:{v6RmK:KZĎ6Xʿ^j] avZ[ܺ۽]fgƞ0yA%}g뺕{)24p^bќ+)ٵC5ǘs߼Q[$ot z&v]{,c'D ̣EI(P᭚)nя}<ɠF?,Y#SaM;͝2X 5qH)0!i>Jec﹓[|.{~ViEh#i^,i1v"9ֵQ@ZvV َw.ǎ@Ჭt[<1r}{ʟ"4ZN m_qۏ?z +qy2jY{B͒B٬xƗ!dn*+1(KZƈMfWf}@/lbߙ!i/;?ܽVc}(z]s/u[W+#`T +1syz *w +CBdU`/"[^Pt*)Y j)rvΡ"Id:Hc,-G2|n Dseސ5OfdĈ }d |˵(H'A}F5ٳJ=xɆ^i6d">ޥOwX/7؈oC.(SdEwqɭxd5\+xC tǚl'N63N,缸&ݒ[d]4r>k='jE G pbj>^2[>jH =jߞ+e h֌QaOe?E\FNܚ9LolXU–E<_[xrV"2'T% (a{ +r3f5kVnՖڃ)cH^ɸ]~ȗqTeSI  ,9wKͮY: +Y*mtᜪQ,=1BT8/?yS&hz^܍&&ϡIkd8޷RUlUiJ\S8LڵeqToKpP7"l߉Wd"#Al iTd3wo.ە5vCل6Q =>is}8R/RZ\k)'j4dÊ7"<򢾰/P} yjn]U1_u0܋@[Ķע^uuD`W5#|+ ~|ך7]&!c5=v3K8;:~hB|5]v= +'@钾o'f:ys.lz+MgѮR_sʩm ?qz\imw/u0#(Ofu8>w\/Oꎻ ~FMw@n^}CiԺ݃v T,ar1JKl`U{fwŽVYݝ ,:H0|u:W\r@ꎫ +&V~haO6ye.HO]6kJ\Gʸ^]*6_ٜ8K'sM&/"&oY^J|w5}tqh.=GN[ΣoH*\jL}0 +aX_UBlm=!ֱv` jp YCC;~cЉUߒn^4mb5c@Uۦͣs.$tbg,V樗e3?64+AxEW6jfv1+v5Tڮ} ~Yᬜ|t[A +Y}|@2Գw- +Gyu0v927aÔƫos{.-R˽1osQGdKޙŦ_,~-2~u#_E#M,7Z#_ ͅC!խϼv\*y^מ&cNZ6(he\[s"TuZEh~!8ۆ݃YV+1ƸZoss@mJvg[(fW׺rzo@Ԩ n\;[`T +yZw +A(؄5YG;Wp5 nݫ2E7߇\ԫ%̡A>]Pn8(jkL±[/1kҩ`! Kq ''D}li:C= LXZP/"!) ?'خ//jyOe6v=VQw?r]mz}0ϠZ*G5B):+$-eۈz~{i>dWhz"jw/{ݟ%hZߧ/S KHkOQ +dy[ێ$[H~s"=^{씇cpx[!k_F¾c qt.WVacrkhR8)9l!C\LG/؇N v6FOF9 炧w8k+SUu͉>W0Š;k<喂z7ߙt@>p`SB~ah _+J#58~ܯ.<=C%V=XaYe9krUa,vgͤ׺.ϾrZ!$!?jmqw5%jz˽SorUVM/]߫>)y5^S68^a6p6 mKwvG`PP˝uX3Gzc3kjuGatکn+\ԉnR;((zmZ@B#"O4xqsӋl]Wk=0JVބY,bEIgsM3ӝ(ϗmiH2_g4V?nuhÓb/kG춼H& a-RZ vQe5wܼªd%˟N _}Y3ILZ{_*xs_[,o.F܍n;-n k'E)U}At.DjF*cvxil,h,_סAwRJoiR]~oƹC6L6I]ՎJ;u.wk75G.oZ((iD)wD$0/%g԰5XYgSAew.lTz +*K&/}t=쭽0м? .g6,e̪'CXUoOvt +16iN"19t4=-{ zMF>⽕c +` +L>E7=*J=Z˾Ӝv,BuA*^㹦N\c붖1YZBLVzE4ʊgRO$?'D g[IH{ Q7D<hZ˯ d/}k;`X5sboJO,uSbdπZc*u^JwFpsA۶nuv9f ϥi&g]0fMPv`e$cYMm=~:侷wFr<e !58V4I+ +Ýٰ(鍫6o7$u\2%N/xpZ[\b:WӿP |1_{+;'߰ã1:wSe^ovrGﶼMK)K&U#QsA5R( + ;%Ő@Q8\!κ8n3P{ܚu[yXлoo:UO`?qPxcSŕ'rG`|qz͚'b5ʠ~9"־fC.|1}[2)Lvqmby6Ɔ5F1:.=r4Yu%u՘WImuń` +攫rجFʻK s *8 c)vu XX1dzP ˅o;3ο6mRL1 {{q9m\ʧ:^!4e-C֞KƻUվ W}ݳ:6\6- *v{CP?pcsI +qԾ`}qԲhW|׾dOG%\o 1olN܍vfӑao/^q^f`j7U5פ6ovQ,um`~Lrzɛ\oHu؟,g)=k6s nh}Xe}Mf4_}۞uXgW7ؽ'ߑMuLt9).f @H"88"NrU+_؎kŠvXVcu4 $#|oqKFbѦÌQ8haox H vrrH ec ٺ^5FZ G-Q^XHu=vg!МF*9vƀDφց|đg,'ME, ntq&vh; Q120sUg*wbW.jiϞ;^N7v])uu%语Qס/E:"Z>ᵨYӬ>M*q3jtϩhr0t]s+i,5E&xT*LSkc|icN\-ϰ Y?kYNxpygwIembN[p7yɞ0w&>،Uco;O+[ҀYd[1ѻo7C5F>0N]S`BM>qPbL;Sp䪖EQ|flsAȨAqc +=Cct })w@4"w!1pCrxJyBվ̹ݪp _U^uvXZY'1-gĕQeOl'T4׏*rWZ3ל{$[8%eHq80_!"x(o +q`JqJ4vaY}5W׉1oZr lSXK%˲_]Ź~E#JWb5C\==Ez]Rc']c>܎@>Ё|ZaE}}nf_vxR_E, 2.R|Vzn.o8Z%/z`6-vm556O>TȟX'cLʗc~cbU(c6WDhy;@A-^bXe2Gua56~q0]4&_d> !BSd*9זqruvJч'E1nϳhp> g~?/brV+ӦJA>J9zFd-z}N +9Ht6>9vd(XlOַH`1-Tm{a6([h +TzP""6W̵I'v&{&,ē]חKea6QnF;F + Sax%›n.5[U ,yO׼}׀tFg]..pFayrXBq{Tvm{=G)a>K3Z;ϒ}Ýބ3ǫ뻦V/}6YZgtX*H"nhdJb7yX3mQqxSRI1wb"~|Ο]U,VoXa]i\›A?lRU Ztfr0 8z<ͳvpivZ(fp_ב*y r_3T`=N\.-y7,+lVDYFeon0+>eWs +40Ӛ+ǧ!c G;f!;-[dөS$ٜ89 V!AgQd\Z`Wl0 ǗaWgm=(>%r8nΕRBhS~]F:pSB]~b^%!.TޯfVs/Wß502o3VuX }G۰EP+^ż .yɝ:~jh,$Ek&;맏wBM[՚^L=&&޹n܉3;9h0xq|bG᭯B?_Hn_ +NLNO/RG rCz/qO%fKSJ́:jer~׀b)Iz{Oc~d(B֘S|GZ.1՝y{X2ƅ4L\gzLhVnO&Ֆ2&WC vk'F ІpS qu$5 !g \4;K~ /: 8O[B.4:{ʚ||+2?f+u>鳸,^(@t)wUJdcg@UНlWBܡzeiR`Q%v4JeampoXĻ!UnMV~PslJb_>s5jPw£ ,Ωætt:ay`/9Nz g9D眕 t8kDJ?Yl SqWAmd}LX\7zFWa<&7x-W{3(jJ_FpGQ|c|Om +gqwI_boM39N_|>0hN Kȍ??0??0??0b@afs#3^sWϭ\xfsg;?Ls. ns/e?L53*a>ۯr>B>L_関ְpyYdAE<_SUofWןV+}@ SDttɸzИNpQ)/| ɇ+_X,kcbe~:bϷQ_RğYZ-D鮗:hAqQf\,0h|2"=_t礬kygۈ*eMzY꧃q8-Fթ=_͌hM /C^`;. Z&U~h +o(yvNi8m<{W?D ENpGfmwwdlv k~JA?Do6?ߠN`\jVb;#5ړduեҪeHms/tqfcN5v=AFT\@}dI^v}8W1RQ;S¼0E in6 +G&/wD I?D XAO{6~кXF] ۰>l{۳ɦ/O.IB;M2 }4L@Ql=-K/d6OVfs^$ *G䓚LmF 36MScPjU9U Yt6)IgنQGi*qVet?+ӥ*#s'%/\1E?/9V?~s?/N}h[/D 7׾R ́|GעA9?ٗ ~s?4co?_E NRxMG;׊-3>kVǝN"emUka;nM~ЙIYr,CĠ|]:HT?;RlsJwRÕQpeF'As [R_we( B^iѻJ +Wx9L cuG[P۹v|WQhq>`੯3=NE}dtuPܠI""*4.-jM6f lK*S#U9'jC_] k ՝Va9>B6=( ?i pQM}~۶',e㾜(xqݾ_[6> +@x|Meɂ}ok2e/eGa|lj={֚Z*5N3O jnT[3h7st5? Վݼa}ጿ槗m\YdZl0V@}ׅǝ+u;>t]&6eK:ebП_ŸsQ9Fy}L_D?QKghme +zvКo~L!>㒛E\'P,bJ.ZIOw،nþIùLI N"(G*ŋgGNZAc^]H\RF4(5hOɽGH*ӣ߼e>gGm"Eߑ3yGڮ[ѓBadl؄W'b +> 9LT鎌glvk5pEGZdzeJsn[+=8}.F3𗼸=6<w36N{ -z|2sUP#+v<uo*\;-32si8?i1Ȣir* zC}QYC4Y:((hcQzhz}qw %)fGK͖]t}j'$1}qxݣIA$Ѵ>U\C ^Dנ>CY2&XIĥv2Ybdlc\_$؅,i_`){nl?&2nǐ@-V n׽X +D ʛV{G9Y }ߖ֏A֢aj Aƌ\\]Ш_F)Pd31&pM0$&gK{.1}ժ̯fʹF(3# ޻͊>}/B߇|1rkc9/&š=C6~o +RFA3 q`m +DvT]`UTPӚ$U^E7p}-dWMS\%[nteI0 6_6SHDS=`"},JJ=1TȂk9FPuMGO7W0mz'6M H1XڏAZ@ L7*k[~Z}"LIBAۉwT1D7)e@FL–1d&aq]wҊoKLU<0]rŏ~QE;D:]J.1* aA;tofz@ l y Z = I3ZNsl|!Bhb1֩E|0M/}##3Ȉ0v.Ԓxf&h`%g-KKe͕ޙO;7rlaNYvHUHfFMn+ 5lE7KgK\+\3Sb̀GIa49\1iqk# N +3@=uhFKjG6ZAٚ9|q VBL؂O=Sc0ㆍn,΅7vAgD%ۀZ (H9ӲfNaeoR0u3Z4\Z%miGUzM%O'! M#'l~/f eOh[ؿ} {q>co%* +ЛEi,*CT=K.yhO5?.s|D[cʱȔ ۜO~nYoM;T**??Ňd8=!na^%,sq$vJRh6 q1Z*J6^w&H_R xW̲ >\J{}OcT2ٹ\O+] +rۡ˩oirk|Xɲ|,GrQ +TzYwmyq iN%GGXfePR]'>qMxL΅&O'YBX +GDÏzT:Ejx/`ˑԎclZ0aCUW4FN^m7qozqg[nw;'p5xBO1G@ԓ;ssxT +ĝj];oxoWїJ ^i:y'cNS$xS +~a0uZ*# +20~m)늗y:Ly`uĠ-@ }){~2EEU3igkiu,9iym>- ky?ѽ&DfM)cvU*kĻt}z׽I8 &'ʊi:A8^e(A EXb+^N2K!pӟʃMagwQwaV 2s)'K+y 1%q%oKxI~3QfQy$V&!>ƓVBT(Qp^/*_3f^=Ⓤ|x~Q=uYy^nG!\!}rtd$CUs`&ڏFE.Obx-عmZiQ%9IDX 86C~#EJ;Ÿ9U۳A?g8{F4=+&vw)_!Gx.NvTjNu +AcGHnF(<6r*&2[5{IoQU9D(d + G8=@:c# 7pYU,U-$1 q>L9dy}϶E'J)8s4G\T惢m<|f/v>~ S\,} +DO^=U~TNGDjFgWG&[-#aG&z\&5yHVK 9Q" ˢg_OhƠoo f ́T"ZJ F^?DK`",QdhnMv J@|83v\QZs[U/>J$J8jtTÖ@;^Nqn&q 4w&lJ~*FQ+6Sblvud t+%MuD%~Ӝ,A}j<;c$Ȭ r˺u*풅V9%Gldq44:rz;h;i.Ge?A?hN` kDTQye&Ar4;oJs ySDChA^y,T6g\mnGJ^{pŷսo|4J} CA+#TAu:;G}TKC8}ٟ3J6EZ_+0-1/$ذ}QIviPނUL|ZӜq }괿wfZV7AUƩX:*Ⴟ'yl +xKӶԜP~/=M5۝ȗ}zg9:Yƒ= ]43@ѱEQY=>&V<E}U-q][BFk|\xMK_7}+!1yϷT@Lw:o-hӿhַ8nw%nFNelpEїwЄlQNMbŻA/!*Mԧ o-2wECӭտWd?<Ǫue!a21d B;ȎFdc fb +*)TAή鰇ҵ@-1K}ϐH`Ч0|HME nw +;MBB/K elf=~GHS)O{˦o*Tz5\Xz73QoYAފrQ`BSf'1ؒ'.gLn=~'U0T }4x(u_;.ͧg{0,֒+2c|-]+gL4 R 8?T1,bП #astU{g{uqK?h9|4QyuF|.sfp4c֔.L9Y+F++$.Namz$o}h$߯\S{íFr)e=v<ez*t°gF8|hxWuwg1hEJwdnEۏ.OǨ[N1oO~i '.\S+1Mr~+5_^stqO>׋Lϣ'*/TbJ\{`'JR:_ 6vTV>y;x;h #);OmD-MRUbՀ+Ssuםh3[>[v>2()q.^7k97\"z>i"ӎLY]My؂5Ag }[ԦWŠݙ̟!̥J}=ú(@Uug-v1/ʱDFLM!~@M?yjM̪sK~Jz<!!R3O.!;]|1臛>.YpQ:۫Fxd^-rK&1TFmmH.rsMb(,RSBnvP Y&[Ou:@U289 ]g#vGQvEn$ |֘tsrGYB0ci\::|w1b\֐<E2a->]ײ4-Bů>1zRјAH6t}"ѬX^HuV7L^w\ |ci1˾V̝i!y3'e#s;cR"pSTSt<3os܊|f:]X#%@,&%19zb}~jjз_4<Ňژ̶;q1븍$g%AǬpC`E=7Z l}('8accj2#FːPnmqسz DuVj`a/oE3J$ZKڼF rԪҝ qƴ5uKnH=ARk2Ab3$Ju1{WR+iLN\IǙe9Ù oKcJ&~7IcrN^DzlF=}>V#*ITըټZ<*8o;cP^Cyݙ[.kۃۨؤH!O̙,sWmOzS< fS9 4hOӠDf9|'/o9~뢟ЌA, o kf ́}&:kv8 + !\֊L뚟^\-'֔&t#ƷAw'Uۃ|ʆ VW%DEl?! 1c$輚 ^^ӛ{σ1 N\ئb+!y-{zܧU=R1MwbП?GT[.E{4QBrQKٮ_ﴷjcu*}X2{s|fr~?~\C`j%?㳈Ao^P<Ygb#L!Mi"byCwj;sҺ$9ՎA1HZÕwOOڗ K3*@sOOA.r%Xf\#Z噞3v+N}Y7y*yQyF34\tjJ_;I+aᯢJT0y?~NEey;q̭#K~ +ǠP'jI1 "JvҾM,+˂ݺᅣ/!^/aR']*_Y&jJg'=mTO^4eOޒժ=퍤R G 4gYXA } d%si~ +_UJEWG}(do\wfc:_VeMQ!Ǖ-- ˣîOFzXn7Ġx},1Dhb~\Zٷ;S*9tv`]cnf31 ;B~PD\3wlWJPK +=r+j>ώ/C~DD%›L$-)u{5٪j hplɯ25ٝ|{+}Pn2D-`A?y]0Mt*#2/ 2 a +urUMպ&X Hl' ?F ^_Ep&@w zFQnb d9} !rY[S&bP>ݲ0ay/%fȕq4Et*4CDnBU ՃgnW-g;F#ٸ[I9kwһLsp8C0e9t&u/tU6<ʈ7TKwrUH.33O^vLjɭ8]x,>$-̰GT=Ryf{UXHFYb,OokQĥRB D u7\e9kO䦺NBwbZGbПQBfTGAxCJlIOJi"0L$Ѝ$ǯg\iձ*B {6S6M (1KMBI/vo1o"rV!JgVٶ}Ϲz`&Bمnq 򷠻kKDh 4<[#hj{M&y39#w>\92~AUM"\篌Nj'tu}:0>KI{4QƖ;fjEew?[:{u +cb֤czy&5rjx;"},@e7j%o_煭kIy&{nr6W7l<)zI$>G7Q;ٶ7 ^:xPǗUyx=xbq`XW0| iqYA7`}ft:/|VˉS~뀌mf3b1dp;ns~D|{?{`}1o߃ `Yj$ +8_ +M`X|+_^&e>3{kZΤl-_QwO– 5f9j0.A0ސO!݇!ӚKK~x(z#!pnsݽ.y*ΊMf%1noc ]y_0A@qv^{f>쭪q i\]$[wd]Gs\qe]CbvŚn*witЫ냗 1˹{$.Ґb :+;Tb +rMW'B]GF +9*fbTċ .ُGe* ^9-mf\9_04AOWE? z* ˢЌA, M0-+*@no@TeA{VFf%*_fb9gD8e/8e1/NqxɺT;m1fɑYDZxbQa*E$$%aCԱz~~&;s*㞧nܒs( a;7N%lG6QKvM֥۰n>qYMb\8~lҨ<j +^Ή֫]D15aKȺ6|(c4m~Xpq*iv=n e"ӢQ q<"*^)*f}ȩ\۸-c`bD)9tR 1辷&.2Kg3n ۍ><ռu8; Vs5M`SU<|Dw$X?oeǨ$wاo:^A=j@Mܒ +jj6Y(>PҙƹWc6_s@ߏH!b +!/@Quq8Fx'{ ^)xiTݟm}莧n9uX9UYDBgW)3`Z [uh:p4DA\gF'ߣiO**/Vݻv*^VKȦ):6VGj!y[n6(HiwȤzfsa>oZ‰aq$օpVhvҗ~Zg͙ۭP@~3cXٖJ/q'qOWNnO~K%sĠ?ׁcRR (B~=/» Z׸x+ͬ-ME+8|ͣnS"m԰r?]92KNB;]7qRbA +-it(Q1 o0֢b}?MBȽ[v‚=DON{]Ovd}uN^) tbfN>O7Dbu 0|_#p?AD>@T@*#6f=y6 ʇD=>e?Qd2j*A6k9&)v +{ze%,w*VTiv`1L("$hﲟz5_`0F]YT (nr(obPʦu/%iξSߜV`zc10Z*`VDqZ?([Y<ʻ.j}8B-ac9Ug{Hny𖆽\rͥ>=EˎRW^m(|Or6ww= 5Wt + _Vz3,-T(kvF8hnR6WG|0iQū3Z57!zzQrpcJ&z + >e7Kqo;S]gAT vEr./^P 6rrw0ٜ?%NʻKqL߫msH~D5qZBzb3d#5Y#{I|O;h/Go`\OoESs)q6MMRଡ.{yݿgp*̅`k05M?(OmX͎߫xD:˘In+US_:?W]5p” шwf/rFֶ+-=OV7J`1;oRC Lѩ@lYf~ .;f}7Ox')S9mK{l& 5\v?QqH"u.ע+,X.؜Riِ]/UofեxK$)`K, (R?K1;sZǧk~AtmhDgTrXp`brwԌ'|j:5ԎiG;kQ`ұƣ\'ԃ )8إ%f8[q3{XmiNeO:&tۓs[z4\0 Aۜ*S8sumtgv.^w6ui;~ɿǃDhx"Uf-'靥mg:`蠏4K=Vx\ciŕfVO +:_hrWmWgv7cėpSpv)cZI1v,I+fEOT`Jusԝ;O.\~RNﳌɛ(m &E:s*> j ei6ߒE\y1&gIO{  +Zp.ի7Zt4ǎ{eƫ0&Oi>_:;1.lWBAwiN[VN){>Z#Ƃ?ӿf;IYŹ>[e:Xzh-@e^} b3@Ֆ\K-Eb4_So{F9 |jP۵|:u4iVw}lmS{;i۫ D)3|gMFSQD;pzl%)3 tflu}iZt84_E@ÿ~?Є3[ѿ4u Dx CMK>x-;3. <>BQUD^ +B|<SI,ktь6.'?o M{ygcN.2N%O]^.B.~$7rL檂čBN%$_AoK65JY׶响 #^BMGz\ V ۋ\ܬ?wsO,6oPX]>7cVYײ0yI -(*y[/r>$<Ga^ V=a^Rr@#1:3a4[8'--{'º;Դg۾ӣPe4~+};rܓIٷƵegڳd?xtp[4@aö[mŰXrFo x7c 0i"0KM +(a]m_Щ8AK퀞'=qt{sA5r:-b&hE?ߚ`J09g@ױAܿwEI?/N:}"NBީQ)Ž$e:Nfx,{,u1AUH@IpI prھS?8Aw2&bewtw%4>Hp M5}ߐf"pn_TjbX{^(q:jjcs+|v8"w=盳\^m>kOX'J5cSA0%}Kk+9hfb "kXYk)!ׄz icg՘MBYzl/(;Um}- p5+ 4cTN/Y4.|u x~1UXz=T{258=EKԒG<}ofn,@9LY.JAɌLe:\R[>3I_ÞkZOat/3"=n9gtjj|A1arUYᩰ{99)_Ī?:kE\wu,RJ=@Vf,.8p@kٱ?^Y)[eckLY؉.,sv5iki5e( n `;KpJx<&Vȧ'3 [Uo&% n\}>}-l-\sد-o81&GUOE📋p^8ܝ[BcfӮhRlߙ% v> mM⒗uֺY4C) +0giG3?w?w@ɸ A[NtXҋ};"ޚhr :Ҕ[k#UiscީGԕ(l hGyI4M6s˩w>yeyׅ9 &3KBCst㋈[[kJtnBղ/?A=acGrLXJ*/hPoT;tx NnjggV;/Ze]Q@)^VKڱ٨&f9 7X>'.rE{HOKIpJ |eu^2 ?k`LRE[rlS^8 Wy]?-}x:cݡQK-R4ɧ9E  ި7өΙD`#\98Ն8!|22"j1v:^ܢ Y̡/AuRjM2(sP.~s_o13S\ X՚  >RBˈ<wlLxoֻ= ~Zru@6'Tf# ~u^f +T/5 +*_z,{UWV%!{ ) +*̍ +~h/6[1 +Dh*k¶"x7̳xɭ}$i Iu[82 Z1_Q v+MLA$-FPs@s*BM3;h>(kKc9L#b|ǒi&>ncvFG V܇/s 8xU}US?(0R 0xj +O3-,W[T(%!emvI_c]QqM#GB+ +O>^z_=a3>]}=`P F C0_Hge8KO$%@ex 4dxVnG37=(AEI긌Gp6`{9?^O(ްjpY^}ĝ v +"J0I*Uu^}Dz,I7h20ǢRRCPr>Qq=ò{̂T䖺 {GOI3}sdB2T >D$SVU:O)dz5N=.z ޡ_zئz4Kw7i뻀"?)?@-k)|&ݭr cf7˴ XZwB%弇_nĽ[+6/QXgɭ.;qD- {Σ?D=~_@' Yb*jƁ"NT֖7'z}DP󫠥N+?ڵ~p]O_mHni66lWM< dJSvhr.B]| ~~O7d3MR#-7z`_O0al% v*\犭S({hq$.o|`Au=h 3~BQD<܂Uy} %8I ,ca.iƭ>s( Bw#lvrwxQy߾ϔ) \!rkhx@_]Mq;VNGؑ,=Eb=D2G׃|@9[8m{B{ e=&mhǫk{B\g0CIsM}AzZkKsI ?@ `|) R"A ~C/sNmjp|vp9o'eQL姮g՝vG͘繶X;C;5Tkj-4Jy"[fљI~]4B9s2yqݿ΄-f3r Av(e3ZV9\XЍf -?.͝ +1QQ}b{-bbv`0d! +̕yx(i[߈r/3c:͌k=/n3wbjbl]*Yv~ >5U(>#i{kzX A<ힻRoT3uqFKM4\ȚU\՝->i:{IQb +Ajǃ 2=c}ng~ENu 3;6ٍuWj=QAGoa{1ƤW]88Md{bLRRm?_m~Kt}]d%I:Qu=L%3ey2?;*e=+Oh:66.9gjރDq:'Ġ&jP\`):o jZ\&8թ\Kݵ<^8$-n4MrG%v~TZ]ei9cd}W%l<6 Ô'=M"[p?LaD }\e>ؼϭǟ)s)8+FGhJuE0mţ>̴/>y̕Ծ<ߢ8' E.ѓɧuwd;#ORe1`Ra#}IRסU{ga5'ݔi0PFUT?Z1_KhHv8srjoLzUd/J9m8( . E>ZMo<@3i%W ؼtdKWowJC[J,;%zHinߌ83~pEQNYw?;7P,sDz)8*ZƳ}sj^Ot,rn $CWK$eqǗ>[x\iPQ3A`YNU6kQiRdLr{'MW;?1,T?5*z|qJJ?7P{22LnMqta}s,6]M:ѶIdø`ADJYzչac[]/dՉ,R4s'OzC R=+qUיkMΰ9f_Lc?%h~;&3=@>7yǒ:|ms%ug|PNL +h(WꋻСAqw4_ +4aAf'V=RrKRQf9Aʡ5ǿ}n 㨴voߟ[02V :fPo:>ag|\%'yΎϗ[#lNrXLUh*V=vOzl u$?ȯIgeޣUG +Tjen,#OOeIR NKqcg'Ʒ wGhܼ.TkMz쌪u}P{)״ST?~Ah=5zN{1GB\[9gt:>ܢ3&wa2zm%ײ愊 J7To):?RUk.T2NV3~Q٩#8~ Zm]z5~\|gUB~=%e΢@["ޏ%WޤIQ7Jh;w>-fV)ʵ>!yZ RXm!ju!+lX~_t#m5Eɝ˧\o~cޫ(_3>#-@\]kR4v?Wl[[K.kޗ{kE$P=^3h)ӳZyL??_p-P.x?Xa;4Һ~ƑOV̎؟KֱY{rqfkv]،nVZ낣r˦=@AoZ.A͏Dy/Z!lPהcgQ w1en?`Pt˃xڪ:-=SV&q6Ȼ~]PRGPL[0z;umGTW7SEY f\5MmP,6q_;=iei?{!7MClkCR;h4X[tߔ&~ˆ-BDžվ c~ìRUPVm}f}@<2( 9?^P([k{8זӛ BeR\f$ǩ.Y%ń,0Xl԰ѡlP47vitji9iŶgaW`amco)X`.y,x?`#ƥHDCeg/ S{!w4x+g/?L_k}{%!E5)q\L9VgBհ5S8\~T ZLvMNKA?Ⰱj`{\fv>]cd?x6^*l'u;UI^ݍW6y:EjcOԵWYJKN;M<ΚK:W;is twNAr5aJICm= J}ɾ·\'{P0ݶ80Z+QQJ8}qҥ{5^IX ^%\)v8o{c'M:/>vm% / $GPdԬ|$tgc[\)sy.Uo1wn(]MXЧ1RKz;#)]V9D]ZΫZwVfY}*dg%0f+G焳ݾG,%305vX|LfkDMYr/RN:{\s=Mt6fpooM[vUmm{"thdݑ6zIV[?`]T\RPQvCnjFLbs;lv2Cάo,\1ǃ_uc.'#ӵ?h5eyj3&jc1cR~SNE[ts[N%G-i:eN<k9"usKj: +yBčAՊ6[?ȺJ1?k"yazCg]Ic'bͬ&/S'36-QRSM60jfꍰFcVk^#Y3K1{ȘpȚa:dR +*zL5 {ҵ*499"lLd^:~vQO^5'uڽq]tҵqBUɖDf?]_lBf׵ՠfN*5k867{JeξHvpFQy]l93^#܈pkPγj5fjϕ\4 +]F6 ZY9nN`FUiPRo|$jhj~n'Hݛʙf\йH>^*Y~'c!έ!;}t+ +;<Q*0wwuAV/Tf7<r;\\*sg +Uq}na;cL7 ߃t2[QFz +}-r.:`@Cd˔v6ٍwLn1@NHeZH5?W v@d0PJ,/3`j ++CPyC[Ȁ]BQɹA$y«𮔟RJ.V&G wō +t27_h2A!e_AۈX)B @nv@]ס05~ڱhn>cqU jF‡/= >͒ cZ볓C_cNeA: [Rw?`]U/iHI%qm}=/4$J&:=lMCeA ZGW:딧=_ٓ +˼Cl Nϩ>Zx^`#8,g;8/͇&{Q%<%Mw &GOP][ubqv#Y\]vʛ [ev _BѨ]_&p$g{$ʵ'rϓҘKórolVg&ur<ऴ^_$mqb7] +P$;@ +PY̻7EeY=Lx:'J4$^WlS՛RrI3=mN=-ޙW<)fhm5Ra7]օX]2jtmV sPP6[ s I~mgX쓹#(ƾw_V[:Fc*:XjsάnΖ8v Jhӕ(׌Y]#ףMuoykq>$ Du#E-.G>b>SVu'Iɩbҳcqܻ0mژ ~i$dT\NU)֬Hw)2,PVa W!NXu`bPL*MǦ bZR8˜ Wӵ<wbvdQ0rU +(MM}sv.8bɧ1JC4J[i!:_0`$AцUP_πu#nq~qWfYzn6YNۍ+m/·Kk|Z|d'7c-#Bc( Tׯ4SAR> +'@.{@ '(<&$?|aVѼJ;=,,7q]팦t>.2?r}4ܦVJ6=-CJ(zmD dmƌ.- + \%^a3(?t钪JӶBgDEIpBʵx;zno*2Ӣy!eNt) {ڴȈ7ܞcކy+{'DdqR25`ϹΧo`G &oJ92juZ9is~5ĕ6˱[3%SYp ^oD{Ao:^)]t#NZߴ +XSJyŧ|/Gh:@hgY3;bNO!;Ͽۗ6[L%*-GmlZ,mݠ[^JN~a06K=SF, GTA:{ +}P\'#Sg}z]aً];lke8#Y;o[VTs ^KǾŜng=Ns⡒S[ )O u]2{O7oCOrӞ +-7:/Ӹs~˖ +#oUQX /ܞ`JjOKQa+)6;N:`3˓&3+T#i]= (T/,s?9oq&x9_evٙ$^MuFl! $הl?\6KԎSw*0,^g*qIAض;ߕS&vyn~~RnzUi4[5f7wnWi'\6Hʭ%C.8bv[>@cހ^ 0dBVE-2ȴ`RXn A寀AS瑒\qXԷF^NmǝmBϨkőr\Yqa=ϖ\(.:waMpd!U-&.G!%N΃5ȽʲF xGUhlK{ ;}-5ݫV#O%\eϗΫslb ,Zf'{WvF}^HK$(OxKsppW0խ42 6"@ T% +# aUWkj<0I Ao +]d(yP(jC`<ٙPmtx2P0ܓ7[i=t6Pq:"GFPUw[c#J p~Kd*4m_ˇF$adnhBIB]`|h, [ u?; {(ӯIȪ?0[G i"6WNɰϛʡ"*)o@hL{}eg m{_¬0G;`T %}id؍7L U'ݪ޹0WoE|ft.h}Pv :b ++Q2Y=l }J v0g}VhGM=,%G!spguzwMw$ A nkAr鳾S{<{Ȱgj~a궙b,A@6n@p +N@n_g%ĵNLzs+]@vB?إ|-j{2r +3x\Cj} Xex e[YrA>^wK~>D>Nyg\>y"7 ;Lgg5[ +Ãƍ6v[ z7Kh=mTKH>}0Qo`t|\-}B'Ô5}F]xNs>Pr jϩ% ɢqs.NrNZ^Xo+fJuKb1M׉ YX[SZr~Q"3o:}N1SԘi;||V0?y}|#m̨†35[0[i/vj窵WRӋ)̫+k5œ]u쯀Cӂ2%t)(ӯ Tpb({m +tw:ffzںm\1v:fDGR#`ͯ9WŅcM،(33[dIo]+t Tfׄ׷Z~ +7kTѽ (L^,q\s$q\X ct\ΚU$+ |˰b`2dwX&)&p8C=o#͞y{˳čY%v"sfIAOk^C/ͻQIc?ͼDž!2Ї+5-Pt e^] +'=U˓~ n{HTs>B\商̝5e}mY*>>tY?sX[/o{hMmFpj µWdD@oGPGR)s3]oMp^[%Êj6RP\LqfBp0z 8%XƺfS4c2щkPb!诀߽n^ߪ8B~E"!zgjNqαEmL;S|LYJp&ڬh|U.TUtTVts=T' F ,A^,^@aܕJ>u}Hyv{ݟʼet-bm^Ɲ/}^%eA>löw<>,mayEm~\+ߵ/.V}6:kZiN-J4>0OVJ=89 I-PV4̴3U1b(FxMRi6;@f@Jo6i{1u> σeZ>kAYof+<۰>55dJuǛ"a/r $O)³Ү ZS̐Cds+@WtFk84 Ռbڼ}B6VƑ<8'R?9D*TazX#jZ[-=Wr?,X}/GOJ^{s)y&._@g7 _=p߮/k5cɚEuD΅V*sR#͌'Mv@ {IU_gϧ7䶳#^q+l+wZK(:;'x`̒N6ˍ<_/fj;U;'39)MF؉ŕ;&JՕ,kDf ݴ2ou}˦A?ث1>l-X_٫:%-p̒l/^}qtSMIvDct#m}Oo\FVau*r1Uvܶ;QcfAk~3"O?_*M?ޤqt-z1?~r<:u΅} P}wU:kV5Γ4O[n޵\-E Bz JNwݒV^e2~_r~S\ztߘ΄>ɫ:K/'fnҿ[>;OՃių}\$Q|I+='wƤF[3L\\j^k xZjBI4s&W\0Z*rs}ZƠIt4އb(fP&s>"#tb^d^H4Ddi*K+ȿ(y3Qy4OIiLgTpE%U=.YHu^^~C_;}ֶK9齸d dWOh70/N35mlDӟ56~Dy-BQ%.j<[O&\g"yR[Bx4V惪HmNdAbY34NȴLR#|R@~$zҢ=oK=D]ylZЮT kDyxnFQ=:Wf{zuTWX`rJOT=bDfJ1_P 'w)KKҢ]qQK@K[jXᠾyVi*~.+gW:SΆ:CjQ歁k(`$(s1+,F h=RvHMF+51 L$K}WhVBH~h CT̙☛u v" qsY1s23x ~ zY"Toݒ`` +k^o^V `g`=bXw Pq(9).@(D!f72@9 + IQN7A֌zA7t؁2 P-@5<~S805j5Tk_k1NTjU[|ό=@ 񀿌D7;=~V>ːj9P4o[09|a~?g=2szW3݋o,MxTN @J d^B!\WV?v7t#y(~mQ +@]9u0u u=`Czhl;?!6 ^U NY :d4cVyں z㴤~H#ؔaћ?{G +]Ow ɮ<%4e^^j!FW[uoy9Rv5SȅvowvKI?yVʿ +?^y5H@xȤ2 ,lJuH$w|$\|zلc>=3Ѵ +HA&᫋om Ir*Yq~TL7@q`)gD8 #gn s sϴup59<)U<60>O  %Bf*hA6{)T D`_ŮDu}&/x1y؞7>?B/sbF2i,!?@vCDJKwYDӵt S `'_ W2Yvi,أy +~Rڍ|fLދkۊyw~s"U`vy@cdR)Ȁ}O˜t/jJ&yW{)1܎kz.`r{AøSx;n(ύ2Pk*69Vb(ɭ?UoDh`Zpߘ۔GQ#ȗLNmjzFv ϝpW\ +V{wf7Q4t۱#qc F㩢tѪ +Yg~I +* >Ȟ8쓲2Lzp-[I=,=Eso v.vG58w5 j[&++b0Kq.Ԅ/+ǪIe{,`^&y ۺ.@Od_O!no/P?vU# +/v}y[r 5L,660eEH~>nV3oF,~Gccub#ݎS1+ @|/Aξ|KʋjܒD}GO<|K"θUw@m.jfdXr1\5ilƛu +FhO75ؤ|:W}_#q +}ls27UL?/BB԰mx3ҟ8b#4f>E:~Fp3^Aݧa<;j=t5ػˑXjWsŁ쬵WQw1: 3W0s#wW{G\g Y5AS?#D /&ppk%+^ip^wmc~e20R4̚16Joq18ԛG9M qU]JCLʲ/ > +?25Ln;XⳲ,p$ )M,OB+gbAYԷn;zCؤu(AhV9+/gk7di m/1ùǹqq?^uWo2ܽc]Җ=:F˻n7}캛,Mr<m+r>DsFИ8ݱ"ty8T_q{sNxU])l޻9cwt9-%3z Ї3+óQmﰹһQ]6[kU[Up>sUôtC3_ r+STt%,4wQ93A;ö;K̽p*{j~w,&R!Z]URk* }7/NqƍZ椭d1 .P&%;۷vLEH! s'K-6Ƅjeȭt Fѭ#?i'ݧ[WF|Wp\2mƕWk\mđcȧj0&K Kn?Ũ~lCNzJROVg$9vSJM^k;c͖3-uwZ\?`z2 CIqfaUWY]l;Sy[8U߄y>)݄u#qF~0N0nYKl3wЋRl۾;i#ŧkڅ%$% {XmWugM]ɭλUfNg0l 6`!$[j)]N35=߻ut&UeZi5:et]V?E)?X(.A.j'Y<9ƒ #Y_$.H!o+>/d 1*Ya$.|6@{Εܮf5/'L7ik-m~[lS>7jԉ-F(k5A +WolUXg6kjax6M&J)qyj}|9V:aqM;%'֡=0QRTd暕`Z%'un̨]ޓ:k85pnGk؂165 띳pl)tjCa|wT{E ѳt"XzΙd?e*ޡYt؏')}0Tf *Na"zN%+_84S ߰lbxU@wy2?_ѩuZd>΁섃^>%YK#F;lv}W"wjt^=߳VX:aK 9,? no^;525Bh-䚁Y+'koݮTd#V(ևO +05 l}T[[s\ݵ:eyd䉡 @TSP!;YRh. V!XܚcJy6'9!姲J5$&C5S0S>ov)[6Y>2Ld'w'E, endstream endobj 33 0 obj <>stream +λ~q& R7D5{3mx +ju#"PDxZ:Q3@83HOA|%ےR-BTds; ޘa_/a$By# +0$7vq;йhߗ71Tzg!*@z}}q1b0 g+CeYs~".3o~)Pipַ::=80tM@{e h 9@PQA4@+Mi1'_{9 I["Gq|w(Ԥq+ "G-x`a[?|ɺw~w&GIIHrzƥYrh^%afϷ06-c-Px=(`n + \O=?^:=!GA.dEybmqTNNkp!zC>7tX2;3*D&1 J5"VGyNV>7^N+O{ 0IJ&r+]t+׸;&ө`lw=e~~D3q6iw8.)(p@+xD7I8 Nf 3h"h_lx`eA?.e]-]y0{sK_N,mwypnmsc?@k*T sVm+0O+4DhkmGcLu.$3rSd}祇AH[~_֮=wwd W?u9wZ{X/חzi?óB:'$tn%je>( +Ss:[⩅ 3wH S_G}s zM?;0fv^"j}.2_>b+%y`_i]ȶﱡ~<>_nR />.]s]Y{ofsLvu^+)dlVzQ并%FU{Y}fs nm@*^-Axw= +1`6{bokΤ1L}:m.-;]r3VYybA'mCHi!B8h@KWlrHuhc4ܯO/x;;}%r$XsYZqT 7XCƌKcLQe) +cyٌbl ph4~1ƤWdYwBb^kl8"yyN64Ž֨eWY,ui>ΰ R,9~$#w)Ify`֋F)7GU/xpЦ (V}ݜ grv2S2<1f;l` +V֣̙y+܄4E*{SG^hb)R yn!V_,_kBp>}]< bd#̋"\3佼r֩gõ,my3&ȔIp"`2Z(W  rQOݝͨȘ e&5ȴ=Vpp{\rXk|W.ϕe>sQ%$4qz-#B`8Қ4_* {_ODYR@z} b0+쟪XRz㫞mP%|k6/t߁eھ͐'u3>1iLjfNҭpAu}$Mɒ%AI$j7*j,jazK`&'xCEoH8"aˍn"fj﯉7^ʊ~?R3kLK )`hU[m˲IU0uc܄ِ+3 myX+$JVWm:͘_ vpɦbCjInz=zjV{|,}NVtrx]3 4^b=;=;pW7)^仭Zyi6Ij+uYܧ[٢O 59;k1Lu*蟴o BfAкi~Y =;vF]pQ9wwp8rxA(?ؿ zvC.O 󲟠&:[vޜ4Ymv6Ϳ~]m-nj\}{)g\[Ov.>ŬZp}2 +EGNJwC;\v)⯀; JSчcf_YֈylF29ة.q57gS|K]ҋW:)\ߘ|u +#VV&3 44Dec09 q$)͌9dUVS G`鑙R5֡W*=M4 +Kr7a +c3knlD\6w텻Nڋfd7`[nAc^}b7WM]!SH|y}tfwT;nnJtnַBr.ZEݦaZҫ2}Y,~LU6Z{C}a#WqO1iOKR3)k\Ox)cJ苦+2#YGwSu 5,P5vk)4r~Ãx` 3*U{JHwkQΎMgz,]Ldh+CS`42`Ɇ^P9ֵּνU7rbD+{JY?tr#4R9*^fT!vb''Gcϫ̝to8l:q_"9|نrЩqY +^'Q%r!% b$0){Q0$?J|:v-'sm\0#ӛ> yaͣ;oۄ* +yL-jQUgSCNlٟM_*kZ4Y0t;o)N.97[,L393xr8UEHwꥁn` ~ø +q +b\hl#c1sj1Ws(́_޹8RAIv%ǖvZ$Y$tS<6B,v$ U2+ -^1F4:@ +:śȲ!B&n@:@4HG2H9-Iimm@\ݸO'.v}JLƓ:Ba +aSSefuCs} j~9]~x?}7VPy@޷3k:Hv2R2fYQFGDXaN8;spW㞂a)wY-\<݄s|<~{7D5:nw}I(1. 5ɆW\Q$EM!0 +vH 2}'x/r~Ii2X;dNwoW佒vu¸~,ut<8ohqVV +N +=qZ|ZjzTvX?ep_/pзLe*p0IR'G+zTaW^uQy%AkOޚL*٤IfBYIw]Ғg~e1g;n]1r犟؟B2UNiW`z:v]$݌6݇F9zSQd{(+ziGtr/?ƨJxQR+ "1B{7-l2-e G<9){..͈XB3_zNWT7l`tj[;4=Kg.΍ZVbW- u$ m9D.J:eҗ_L[dmηϘf-`a5,چoj[Gl1U\Cn5C@{gtX^/@$1U;U +>u.SE"ksڼ%)(Qwt7=6iK+' X3HѺFszʐuj qD*D)Ii)ݱ`aL:̈wSsKeҷY{jeybV|2F݃պ>mxqsظ^LPvƉ"# ^P-a)UwErhQEgSѦ\L1LrY孏òܹ/kӹ?(-CMcY'P׃]]o.>tƓ`87}&X>-?MqKKdnHI:nEJz?qfB_xNsor51ޞi1o{JgI8K{,ըWFn%94.!N>6w- j*_rܹK'ί}//ސuU6zsCi..qgP^z͠x? jToM@%}cCn`#-oӶ3kPĮ"i$kPU ʴ~š9H}!7'6}z K{sf\LMnL͂Z pY*[ѕ 㰱t{okt&i +NLonVw: +drmل7{pyB^tӅ5 2$jz= MAE%pX!`_+>\7k~E!zW?~bq<Ԋe04Y_? ߞyoM2?Ԃ̐Y%WeD*T5#Ov߂B"CH:Z`޻k~ +OL.ZB-?ZR삖6 J\? eO3[7Q4!Q4WA㉪B=]H@%rDcO>rf+)uSzɶ{^ Vŝ> aP '/!3/>kcYˊڞЎ9u-]p%Os(qT"&4LHR& MJ{; ?_%cѻz>'d'f˟LC#\RYX|eFBP䦠|d2|L§tgp&x<)oȘ+8vEncՠ = go)~qOVgo{/7O:?ƈ>䐌HA Ylr! aAG-Hʮ7@mI;e!pꥈ͡ <+olx'[P|g}`|2>\!S"S?s*Op"ְN*D}YtSNw'lGuPtwQ \9xg)^FZ c}/B :jx .z*Ei#n(M8 n* _lL5Fw@N(`18.I1\XU? cz$ @?GP̜Sº=K N&=xZOCLwF|9a#pϟ? `×Ck&=&'DYLA ŃfLL͎[43:gv0S%Xݟ +J^Z9Ã2]6w9[ +I<ˏdן&#ug/@{+5b𸞎҆DKǷDN1rpXwÄgNɃBl%כ=g,rl Wk(! +VYݝXBa^;PL8c:zy>yw3n'0*!2 :>Ds +:)ev[9Ȃ}o߯|߁[Jqd8+wxFMns0uK_p"^+4.O`s(mُ>/kJ'D^Was0)lUQGA znc(m7xvBmzVThzx n11b26YN2L8Y}V8պΟK}.v=1Oݐҟ;kO)FLo9}*)e$^ ;`;ץ<<@+CSQm biXf=x + ڬ͆gk֑J֔9국\IĻYۇ'2^߻VGߛS5Y% +2_~?± +7F6V Y7ӎ(Lej;|f9?5o6/&죶Ưvޕ-TfT۵,)**A/_dF4m8mpqN@T@"wAZf_W<؞MT/&Olbm^3vLj!Ys(9)A-2Mqc +6`P~?9}Qk&/~@C˛ z "O47Ӝ]t/q;"ykLx9g +XZl~IMK%cod|uI'I##ߙ%N_T{U\Vէ-v,r򬕱A4R^)!^ +)x|%S`O7&rOgb/Z(Z\O7/ҜrZw|,3w7K;r49d5/f+gN-M0yτ׮4AIc`ԘߣF)ntO GY-W|Zz]7(ͳ~.wFa4_NrL]Ewի@y zV-h7sz@1zV!*z%e1kZpRwyEu_JZia覅NJHi3҂R|ygU>{>EN5 > ?+Ewm %!vv_RSܥ0TWNS>5[xm~5Ehda:Z +y4eln`w_,J!߁Qq{J`^GDE@ąZ]]sh]9bw6ټ\יc[jF 1X+!Gm]EZ,PgWbl4S0S)4\z +loP{M02i:n7h/jKP9CόWU>.z +̢n91l{fۺg'iP)XS8(NI~ccR!\f.KyX"~pyp:A4>A;M+Ҏn]?{W|W6wU"mtj!es>peʥw; qZ̫n1;|T^e(M'\=߻ +Q7Fh TMD*MgЎ"^%g ."%A?Ye^@Vۡz;1{r&#b\xaBl魱Η.r}D{9Vq֧hZgn%fN'lB_Vْ_IOGDbr):i;"w)l=-*%oɫ1LnVԻrx~@\Sc yOKf[ |"\kcOE6+nvk;hP~@5;])u)vrfZ\ó7|v||z`󸷼Z6eKP{֖V}2׾1_v D.QQՕGs^}?pxYSZpmmR _S%V9-pVXf>'m=ֶ8J177L]͏y󽺚Yο4çX,`@:4-Չ:q`Q ;l[ f_sr_잛q.Goz?6d{}`57+0w0ӣsi#YU羵՝Bh<]%ďyJțj~@4vs'բY?g*)mZo-(vn/0rSE&c_;8óLIZCw*-Y!GMQ^*$|An|RA .ܘ9.W3)g¥l%҉RZ #Q@ǽdC;5Eu}Pk~K,eU ",$Kcr7X;,6YcIfKk`,fYA#Lh"g)eW%r:v+=[#o=ܬ(^.AM[1#HIWx[ݖ]l8;g͠6aˍa-p&I7pM/n4[_!x37ϻa89a7BRXQǎ(Sfop ^|4(bW J>[WvNPmQBeCHu H-+1?S <$@zt΢ۓݺt/ %; N"#J-ADՁH>},爔8ێ%˼k? -Sֱ1tw2N&9FZEbڨe74EZk {/^"[8m#dut,[n2-]ԥ((?j-92p16H#h-[PUm="'w8(tԣ+0z*c3qr?cvծe `zDvE & p[_RW`#I +gϗd`*W-a'IS:+Y>TٺFIƛ!!1I3Q",=6=S]Kڞ+MvZ-zܨג +w7Wl7Чz>T>P$0Y|['~{?Z8cx{uao$!~PZ][&?@@>8_ۣg;٣ Źx![m 3˹6~/ky|f3d.EJd%j]:(jVR +/r79 Fsw.ΪGY<}-,y2gnOsE˒P0$eQxp3Aul[ AMH[UiOjj4n<9;0&[AV_ZO4=F6^ytP{{ 6Z7_ܾn|=w\ts2c/J>qKY6&?DwM:iOL"ϤKXȍ]Ĝf+RO uG@ jc٧^CƧ&Q눟3 +JG'Q,mSm_7H:_lPm]YX5TOt x.&OK8~º%1BkDn8i h~e`Fّpyߎ-WKc ߓftE2jŬ+،,eOi3קB?jW/Xza.F +h\oʽ:ր0Qw֤}G|UDv?`+fO]i,؁/7\|paUY!]YrWME*ӱI +:g!M~>nk^vlёٷm7}®cs햵l [p +o Cn\*ИQ]Qcv~(=JX=@aBNSR%QʨL9Q_&= nР0l"\Gr+ְ>\켮M/ndlBCQ6겁ϝ˰ ]ܽ-F~~UVS[\2DC9_r6P7z-X +24[ng=;p`kL~N3(RʢFCyBok#jVj`T~kN Kr 7E9܊ea\3 +RNfo4<~!7LkuQT*o䲉0"em4dzV}~)jE5juP)x)+APdX~C1Mo!PfۃBۉK1:⨓tŨe zl-W{<8 ՕqF^pdYm1%J|Kˉ98l%'G@0~[~&7hl3 s,#Y:;fD/HqI@eGkoe)0!)PjO$p'gY&dWfƪqƒɇ Ezɇe?&~3Y,+3)N&O:E'ϲ')ҟ42v.Be\Mg[LQLQH2%}(|}XP[Ay6eL>1g(QOW1i<+E;5qz~2?,(f.5 6RdNs"^}O5H0@I0PS?YI +M|Qx;Y8qƖ{Ȼ{rzrxIcIs- 3|߀44i~8WZl44'>3q]z]_ `>ld1ieH߭[I P2-ͳkz3ο +G+HJn|92zYd mNW56aD<ρ6mppARȥYx(}A?㻽bRd곎c1^>w;4I!IVʭ+D@݋6G2?yﲧSN8J?tWwLUC![{y8<("~wZpB +Vz +'{+FkR%=,{|)Dž~zmu$m/XKdkKoGhW+m֕.\73,;iÇ/N?)؎;/)nWp4eNѕ>[p"ͣON/ ]E[ausAoNuik|ee6- X&~M ʼ?Ãp +a?Fvd7?,l9tGƁŃlXy;%^*R鲑 ?D^J%b Úp+43Z0-jt5"WSH7W=7ok *^; { +l{/؍,tjeK˓Iui1}U[f{_R\{s${MT}dY/+"9JjqZtƛ46:rNh#M uofK3'̗:SB{d?-:Kv. Tn|35jbR KIMRfŗ/6wYUQ}`Ct/ 'j{k}?F#tQd[!=R Bf5>箢tzT\kkO\EX>lE~ W\Y3O\ۂ17)v+?X/^ +&F!Ӟ;//FS_z{U2* L" +)cұb0H=kB +;9<~C sNm[HYiǸ.IퟤP\rZ ;u7kȫLb~WyjY${9!kDjT,x,<”1g:gFؾnaQ2^<:d,[_q)*o+L 23rĊ,#4&.}MOtJRRY "R2>SJ&tں+IlV㙙I7nqܝ8> UB0Q>֪|)egyi\e01Ļ)DBs8IC:cjY#g?one.qr(jէ1tĠb̗$$0{5oWʭTPXzRBq ʘЛX#EL{:Tv|ع8ΰסp/~gnƱv 2H5 0%^y9n[zG7Sr}z')5' Fv10qԥG" -32'#F𧌎"cw*Fa$|-],>"z+)1nKt̩zR7R)|[L4 pxB4U: +]OGZ޶{[r/*;ۧ^[kתKq(}(V@}Vxu2EG*o7Yܝd&X&-l)&6swdOGgn7`[=Qܡ;Q9"~?n^{Τsܭ~R +7S8n] 3d>>vq$Lb5kyÈp@ F jGEueXBJm4rlYn_K{!v~uSEn6Gn, o6)YeO٭z^nTy562f< (LG{?gdiփ\C #wo?GW߽ uY\jh#ag<7FUȧRVY. Has]as}&hKꘃⲜ‡)XT&8+>Q6hEߛ6=u,O +q6],ƹ}cwvx zVDа l$ơ q7 oz6(97ʳ8%a~L]t^K_e~bm]--]IȪ,7ZfOƅ'vmv ?4N,5wÿ|qרnHt'!KtjUq\&UOk*ɾ_iBݜݚ3t[XW ~@ԝ.<ȰLX7z +7z5)5tMe ݘ *F+^)'-ڴ d_JnlRv~:X)_-ueA''h:bCyr%#XCd4{J0~M=w2g<(TO ؈u] T v6`Ee ;FQ˒~tc%[*-~ө4[9OvH|JbHB0f1A1eC?߫ΐ ' ~oq[}Z=ؠ˰o LE(ȷDB%~N\R+/n +h}(~ẵ[0{ę`2qp3K&ɐYe+s%;)n=x ̋OPH7ab:ySeI.[eţGfư1~p \8y=}h&YoOZNn%q2N>,yǂOG;y }g}i2V8kɤ?/'=Ճ UJ˭XKJ_nYp.r)0wS4"O Y}|~ɇh<]r" '}fgyb.5b=[z$u&\ c~/R nFikq +iG4W 8[X[F݋ZO/FJxXTF!=bm +nKz| )Z Ѕ,q{TX9WMY\,BeEhMσͽ$͗e Is`o+]'[J(G)wQn$=[%f\@jkCӗ)n?Ax>>{C3 +j.ClE/i~hDi HsIC2rEhMUVatBs0f;^0:C!pq6x{÷mx$$+e 0u}wrVՊ%uﵗCjKy2*ͮs !#ezOW]MM=RUvٕv_6RX[qZm^YFyw͂.~ۊi‚ef|mW{AlQ)tZȐ&WЇ&'YCZGaZ84nʀF;y [h_̲AFз,h567O`S]_F+~@ꭚӫuZ-DUt|p(}SƳe/YUFlo{6OW{CoݞH\wѻ^Xqgs 譎njRo +)MR}OF7*&k.vT[L^ +b%f`gCvNP߯jU*qp +X\K28֌U3:rBZ,wUTMKʧ|c K29jus ͦ0\=r6d"2_\[?";%FjC0X;iJn8 /نyXiF>2l*ӑ``J=BOo0ui4{(=pCū]{>a%܉[s/_dmޏO;8SAFn2!5n;wV} 8t*oG+ҡ6ܝè3 QAٷ5<>921*[:C::}9?mɔt:C}9O9vH{ZoU{^<5jqvUk +bMbJBKcęxg>+LKYSa"Sɒ&:}hrY]M.ҼIn8WI7"lujS+:Kkem9ڄ[&;*GO/c]PvƊc*,%,wyOxاU] +W/tRu,9IY9%GB@]HR]'6\>$X?GExog܌fvוLm Iz:$˦:D^MM$@tI5//nk NrձisۮY>mvDC(YJ^7 +zGgp>Z|ʖk\93NI(];cII>g.>lxfrub9cZErn"u 2}"]'? 1'VϽQe++ԕa8 a0LJ"9y5o飉;s t1SlvǸzq pa@lO/qySr^.+wY(6kszw!@!\ Qa4ᬘcw^dJ]䰱Kv /+퐃~+YZǫ3E44 [= j_dz_6UA6CZ% _6"j0['PÁw"!wHoRܒv9V⛑OvgRsqu7G-"{4x@'{Cg[;]RUF}u+}# + +҈ +*}/v8 2GBs1nBeGf$H%0mwWUze=ۃ<~/+}^|Ӓe}#>q^\~ٰhBut4@wFYWi>=ΒζgcĻo"Xjg2xP̚Wc.j$c#Յ'"|ڷz<0l;^w93 [48GNdpw/*`e}Aemr\rJۄnj;hIZ[~]5;mCxo/r 7zeC!u/vvBOtN):"_,΍z7&p+3VqU`g1|֗ n-V:Y_`O2^Qr<ο8Civ+0C +09`FvCsKM'tK')>1F' rT9Urj gP p7h;s_og $\?~ovM=9VetG% Sj+O2لpaxɩ +VY:.rAbcҹI^R{JVk-`.KrkrYٻ06 mpd2!'vie#?Słchjg@ et;Kv,ߍI!(+;,{B +q9o[I00eh ,2Ì`Pd 20D'Xl2ɇd|*uoA򮟳O |htu'“T6}t1 +36$Ur $IR2FٿeWՌW;I{m"C@=6sKN[VHs!\"r\o 616*zar/]V>O^L޻^+y;und8n2/VIٽ8w|\rɳgjjb!߾NC06­.5g5}8/$JS[f?I>g=/Rdvɯ" w܇c4_6>B\ 8[ >LsO61y5ϓX)@;l\9w:Nw,ݸrćv:O)ojY*| +z6Ei4D^R}_sV_"*``)"!7ԽEsQd1:[/t*(CY`X5u%-Wn>땳u. YY ͇>?Dhul +3KI)_g +KP9`߮0?`TJ?WUחV*9_8;y5OaNA +%u4h&:4dS%鬦5 +Co7Wi~Jߧm kK.gEL^4bXQAW>T~ƙ-]xۍy +9UIjn`n~\S͖htNqI_؞N1Fix Hz"m N+no+e []^! V|,qOď|q)DuV tP"ɡ2=NjΙ U1`'i[,-fWKblT6˔P!n"xUՙ~ԑԘj|ٔi뽠}%QsQ]x` nfrHgz+e??*jS=&X{2496apr:UԷϋ7誛ўkGPWevs{in/wC8缠0\([HOtx4rPyxnGj͕[2A/lR.BG"GU,S׎DlfZU3kP4wx̾LH f{)dw,- +C]$! &=Sٚ<9EXdt[y8EPKF]҆ lh Qܯ]u@`[鞯t*(h+fmflZL'q2 x>)3(ߚ^Mӂ?jWö +mrfj`Ӎ_ziC>&m Rjtʢ|5'[,] Y -l##|qmqu׽*+?s!uĨL^g\݅0 nsFvuxp!vRlTwHE| +UBECR2l>?Vi@v]ː_lQӍH"awRS7nza޻rYβ,g[0ˍ9cj[_NՃ ,sr< ZvsF8` СϨye.}V8ǛЭ9̅+'j+Gio޿{| f0E6; وh+%v˫>JgpG~uV8;&dݨ ρm*}{r=*R33Kpnm-Z/{`WZoL 4San2=&5=\#zh#0=^Wm9K}OF9ݓ8j5d>SJ*o<"PW4^(؟ǐ<׳1Y +-;bKvCrinArA&KrL~X-`H|iuZW +7w`Ͼ[)Yʔ6L?*]}dJV7%_wrcz`prIw9&d|oG ycC/JbW%A c½$=X-^ff]S8#`ËbK2=8!rt>}/r!8xgV涌ʲ*w7fЭ4sK2,!c8}?b A]%|^a4͍VVX2Uwy0Ǡh5ݵ~Uc䓍ɨ8T=ryM{`[bvU:hdOYPW>Ф>!'LkAxaf^[O nMBQM h6!5C 5f 5x\xbD1FbOQצF[Zrk͍0򹌘7gFqj\9B R\ڢpEeʠ1˅Al +7oLj?,"+ƩbZLrU '9+$Fw#1/xM+? +P桃49<{$mG+Z⭙RW1k^Hsޙ 9t6f\T'rRhP14`Y~*$Yg?Tc{,G5`;}Ze96'47[ 횋,Tb#yHlLXwU?4-mpS߷=LREJ}KMQ ¾]宓~   /z 6@A PtξdA +  7\K]e?U< NҔ[AQtmvշ;Zcv?`mə 25# g2/ +Ml`иA0/o7S;'A[X[%{qX$o{&$ijO-I2Iޒ$uIfJx̒o&z?۬n EuǺtиc|eܕvt|ec癅yfY ^N(I5I!$W$9 t g.~F@}O褹z-f/kΏT?EuW m/[sc?ըk/65 .X{9?ޛY>!Щ|:iuh{yּM{$VaWeۄ4˧>΁%o k_o{+/ޛ׫Y ztr:ǿ1vmSSك]#Dž5OYڅr1)7s7FKoQ\|wϻEQI>Gg5)sNgf2F]&vrEt?|&DYs[sO{a312hܛn +Z8J,1#6{:q^dZOQoˤUO> V6&)+Gl\hQq(r$ z|?|]IQG,YXSx굚SvvEWnhK1{7Sd`?&ZL,5{;`nN:<`U[YW h:pz Cf  //9pKm䂋xܪ#񵸠^X~ Fc+LJhr20›E/s?vzި|cC :2TﱧNJ҆n=;!q[vnyvUJci۠n0h v@XҀb\|4ڌjz[j;^~Do%@P"̫䆳~;}oUd)dTg/ק#+jcdK7<&<+}=;fqFq{,[ګZsLD_Y3_Z+rPXfIUYOYy[]V8+F'м SLk{?583lT#M:Nc,ŝZ*l$rG8ݮбC)>o|e4p~m0BfI'Bƴ<Ɠlݐ~4!x6C*rR|EeYm) WPX{']K· 7&*Gk^yCz 2(#a8a18̢[Yn;cI@v~jc]"/&V9l! ӣ/~҂4 +8? *XE"rC].Y"}2ѫZ*u'qуBe8]z-q@w<^ڦ]bѬ@D/"..](x|GpG-.1.y GK2KSgt%zdлixKa&~=2N^ĤO bdՎ?o0bs+5| +YJ\r +l } nvUv7dOע=ѣNTwEuއx:\( '\-İg AMꏨ4\+>>UeK(x%ݨPMYm[\<8z=]aFgvJI"2%1 I=iLq"(XOBM'y +[aը6MNV{}[o9izp98e-IJ_J`nGD )}s8W Ǹ4kl10'>QR +H+H/>V! WK`dΧSqzzvdts`ή:izxq~N},(WIgI~Gpdytz._ 56HH&B:#+vFB댨3jΨ|:{O]늻Cfk4dc"Nw1K=}fx(tϻD)+AGs%xOhBo`B_AnHp#W:3`m|uNܪm,W{}nM."E"Efx/yǹlikܬJw~T,t({{NX))hGYli4)|x%X} PD;e:'Ij8lٸE;sfw4]\ğN=<0K-w= ׸![P՜}R [*X}yȴn % O,ZIشfӵi%is~Mv.ԛyv6|0 >HF!eהCYN:j*'\=VNMR9&F=M?H |GzK:Q:12w*ݬNw[7JvR6EM=\8Vu|~)W9sJl<;Ԣ!K 5weKida?`SRv[saĬzEHڴk-j*RC=.GV:htQ4/ee{[Ddl"OE^fJAI ]%%ehw7:$?^cP3/h)/>k*^Vauj*urjκzjNʳg,]V?,-|;nrb3N+#n`>Hf} + w`l_ع_̸)0+<& fpˮx+"؍W +ܤX 93s5|DL29{?uyhAz4@ cČ?[,}>;Jx} 6(#N"e⿅1$|PBFgbosm\7ГW`BfQ2n8?e{ĽȜ +52 N(df,5<2rƩK_1\#; &YѨ#XhGУEQq=9y 3m #qm힪g@M=^P#v@@?"`@y0f3/$=z +5I$]eq% dll)fLO*I8L0#-/^yu<>zY?Ǻ=cW+E綧km[sq'ks?$g%zUK$Idoq#.Yp\Ơq:u_,GT:=._O?L$ [ W=G~nmȉ/cQ:t>̖#su)^/mbrCfr(+]c~^!y3/`rߨsFk)l&"\S!``bAYYCC>.O +N >08'%Ar$X)jR胧Lk/XcIW%os3~Vµڄ1w TzFk="oƞ)98`ekh4I ^"VE?hyjmR[,OK}yE3w`7K檰q!fe"&;:0BC3hq͜6t/5k)OΞ5"u¥휖++[kv;~{˛yCFkdGqY=4 zOOrE_־u(jAs[t'k9_D3Mǘc]ޒ rrLߞQp$XIW)|AkG!!\.2 $UɊURp6UXܦ*A~9W8x\ʽ˗t9lKIvR(ʜPAе@Z#fC3GCW⁝ ꓙ*ܗdE ~[C!DK⿔IZ<;E+68p6jvmJ:3K-wRkv&ok3s+8kmώ}x^w}prAnHQR_"4 +Ww+~ݜOwjU}%~ H<ޓ;ܷ86 +V68pW3c)+ueBzRUSbL+p +!oA:fƻNt_)r~& +Lպ|酱\Qcr=pViIiCpl~1Ҳ$DTE8p\?BZ֐|h,rqC8e둟g߽sTϘ48lWߞkhx[oTq{ۑsҡ֨XIj&;E ' Rx8mz zg?fՓcb֓e7h5Cj_~ݥVq$i{%օz%bDk2pRe:F?sTr%_Kʻ!ܫ_Wo*9b/YYvc۫{n zzs?2YOnqi.܋}bކٖnFoUle1x|"Sڞ3K.)| mU׼=;&Gs>}P+]n6=0vǽFaR!\ufRU7i|T.0/q=ջ--oDC}.H~c.D;L? G%r{:laEuCeN|ޚ9]A^T<ȳU%I u3ykl!~Z}((bзU WlgVW]ѵO/ ]wK){UfBȂ"Zlj4T5K"VUE`Δ4׫5wb>`W83j/kK2yB;qޑGؖ^ f;Tٰ{)`sy`lW0Fn@lU9FV0.r#>bPf ]`ԸNoYAE[@bFw]L }yix*SӵN&$$.\TϸcaKѠ3;CָFDUB! +z H*VNu\]J +d_<ZĻFkĢΕӂbLIBbk%%@۠{u˲F3qgo=Bwma琛$=-w&bUVj6hχE}:b`c6xB٘L!@]&/xDP0Ž»`q+@I(b,7M]Car u/m>n#*iZk|.[㵜e3XJ}bxN["0vwNR3e0փ -{Lnt5عE7``حrbn RJ߯|x z#2M`V5S;0/md:m'ƭi6SI^qo2e ODZLzH,y^r?a-﵊/U$OVwժn;,[ U6LFC".D_7onwwGcŒ)?`'B/ P56mzs^՝WR6&Z9ڇ^* L /;-E_+ix*j[y*/άpŇb}R(n_)2ta3_)5pCvdsK}(f^b)Wbz WlŞp`D7(v,5:2X*7`1fk [saԙɸʿ߯~=WЃ+ӆ;bW2;h(;iUNn-W ~Y^5ПaJwgu|19g2Nx h zxDʖd~ +ATywh$g wܹim0Mh cs f'Prc*NAjhW@@_D%4iKV< 2A`\. *+Բ_Z=([PRK޹%m~qM!0Au4SGͷXN mÌ`WhA,{8g7ZEyײ^X@ jv +JuEssպEtMܫsZw6Ůj^rvnr])x +suxtϟXdz~uvl?ɨmկ^W}hA7|:{monP<{(Y뺔-X26E~Fmd/J& +e켣Dƫ=e|+x8}AWfY|jAm#kAE׍%8jwŴJnKװuצ.gm?;qdFJaN=}; j7Ѳ(/N]Kڎz+zyFT-߸H-8>ڶLA{E{YX)ϛSR5w0K*_ċʷ"jx)q{2锬;qT^$ٺ58b3*m-/T9+R34T+mNCcOl8wA^ހMdk.N5z>vۅ?ڼ} 5 AAl +fzlZN e9e56G[gl}I\k`-3f75h䜮fŖN@zKF7guUgZ17j6g7-?\V:6x;n{x]s]-R;}9ۥjy1Ց=yWy;4a׸YŮ͛ V0-vbڕY+]\5U6^lqQRߕZ5Pr/{.nn\v1x6]vMfVYwʵsyZsY~2sg]KN9:SL(5!aL.q}/~:P*8)uٔl5*vZ;NWVY7ʖ#v9_VI$%ZC餡m=sSyn/|U]MHIG6PFZ7MšxĊxŒ],a-#a*/~V'Q(!QmZ串ќXBnֻط,iқ(Qy*Мd5L^[!-,9ĒEbvM.O3@%kb0Ҫݥ8wv4!r2E.ݗdlB˖Yx ^ꀶ6J#ҍ@zM'kwOt O&a MXsIea}w nڧё^ u>E!U.qѝ +>*zi+.L0Te?9)!5&>ѣD >6jͫR :jꄨFIqW^ auԨj|k”A=72/l14ޑgA/|XOp.k/~&>ggBS Ȑ+Z~V>Vfcfʮ+V'Xѫg޻cEuc\\=ǜWyK##v[Ӂ% SCU.; 'xm>rը|fP*[TMe7eYCij |2ԭFhlQ$ҙb2s<(9W(9 - +C[=X{[k27R +O)k]FH:f6ZtDgR Zgt o7eS q\xh0 +M gR6k[ox$<~{H{^ޑ: 8[x^ϮsZQTw/y@m)c8~ }b" f `o0FY0u=R(YpQ0 +{GfA)W~8aM=,].|:;-N$E,TP5 ,Vu`p`.WW޻*##ѳkj cn g'/ +M͖xmRl7ta a,L ',r;y|xֺ~xh@T ٵ xm|A6A񷖺0=#r>$U9JE؇Ki pTr?~;@@\ \ / Y[<{*ҀJ>HIl@2Y/#Y]2?tHi*/ʛ~*E N~VΨTZnWT+/>twkwL>ۏ澅-3nI7|r*WkWf /[]L_# oAC-mS3$+hR6sÌ}G͉;6X_=K$Aˎ^W?n]{ 'qX.߶x<+` Y;eNOgKY1o jFD֘f5Sۛyvw;o}Kȩ^}ȃ.AAG⴩_!J찧e '𲴃mXcn;rͷ~Ӣ /"}Rvu-MJVBW}-5Xפ^_0`}{sҮ 6]^n ݑ!!e yuvZJɾ4.K kp[XpY=q!;sC?72⬴iխwW/_y%~ym_B-O'k,VQt˅KdR/\-]F~ Viv|rVۯ[Ciҝ.~M\<$yZ}Fo{z$ {nP sҞWKv|>.>'Qw_FSMOّ^.|+R(cUd{*l#~0LsO +)*&'{rQf=nrٹƧ0ݳ'90Ls Ѣ섟BN6 ̕xvo-Y7-uTy("A5a+=s )4@aa~NCwy:MWY:CH/*/:om11خF13U<8?\>Ѵ>|Omz]%: 3zut4Lu_<ۃȓ}yr x!E %7Iy(M|9< ,X\?u^z諾p5{9vtet]f)dS +PԔۗM$ nXj]_Rfh6SyZ!oD-{d-ቑǃ^Z9{&ݗM +ʝegw +Ɇno.=o,xn!.Q ^{wjqWv8U>Ű7?Sк5'7#zRv +Ys"t?/'m@3?xvi1Nsyܽs{{"ĶZm*٢" qۯ^Ӳ OfmsΛ?4Mz0QNƩM+ΒI[n-?FvR-]89m[=_n]ܩ7g8WS;E̜-Y&XSi k665٦9n s:G{gR=-֥M_Xʵu%[%2jv]n0WܷkvG8m2<4#s{Xz7gZ1v>[#tOZ<5 +jrUIUW,^49Wy|pZ .QSo#l)M aIRPw.+}3ҙeKnp&/_,+%K6][jxFb+(brkca@teZq0%\byƵI<;y>WI6f[ԌCnIxi`TWjS[8R?'9 uyVNןrq9IvqRg^DRՓd"t$$_gc@B^ U#I惎;4Ϋ댛n ; 8gJ UjMNP)g˩kbֹ@FT/knxng?bi"B')D?mQ {nx~aldQ7\_6(,ΚYB 2:A4r;e+.6'ta)*_C(sgꈑlJ;$,PQhOMz !vBRlj<\U.'UYKhg+ %ga1tytc`01J頳#bw֫֍-TWl/$u4UH9O\ݷleSxU'҅K2kjE6J,ǻ1fH+XGrPVweGOm{4@mYEb2@OeLiN>;=;5駣BVu4ɼ]7L2Wj+hJ%Wv 8hPRd2(/%ZSȊYCЂ,Czgxөyyަޢ)n@c-QnU.TʻE{۴_UXؙ֠-y`fj֋ssq{e }16D9b*3^ +XOڅrd,M]n|gwv +\`~%e +9(S@P@,*WPyO&| ԪwďyfAew92%?"nYgAQpHE,^HXz8˕߳|(;R͠E@S-5ctt'ww@OwE@Gqc怞gD:G%g%Z)YM]B^g1F$kJrJqnj |r'צ`& &m,6`7e)`U[3fz5`7#f;guX;:efw@jxHW}܆GYϏrA۾䓕J??k`wGIpp1q<>hQ_ # +)f|'>?U}iW?y@6m61-n7AezeZL+VP(f3q. +,̝Bߝrag{/$ky?$ZKӳrX)kg@l7!^h^j)k( ;ώ&v!VKDtT&a(ZA~8#dݩmg :|h:mlݖڳY;ͼGqf"` Sڔ;$:ք0Pzmq$16#.ڤ_ݠ( 9Vxg38[/n?qs@V;2oY)Wb`vQKLO äA)K:>5ҷ>7*z$y?ڃ6&e3 t>m!{>hIR8C>=^^9[i[:;Y5Dd Ev_`? 5l'`pFfȠޗ+u[s!Pz/zLhw?`ܭwΜL XR]mo;V6?=7Ryu4l*t\T8:>֩~ŷ*PO=صfkXϐMoνsI)N\H6{ƶr!rZeڨ"Ym{ynm*Zݬ}9N̰K8\6v: +~VcKӱgzd* yyA|rږ^fss7< +ѓ(k_k!'͌ZKY:Y;ۣFfY#mN(׬ jiRg.fƪmlhͣQf_@?YZV_v+L%YKbtWX{L%_FZOOq8VͮWպ|sx"-NM9qcd2o*g':.Wupֈ=TZe 2nNcر o/ÄCɨ)7=c3^daVp̥fK=Ti&Ds߰5|l`<ݮkTuݫFrTXJc +t%,SYmfQ4+RQmM-7K޻o/(Y/?WKtYUh@M,Dk&jYk\Lw_=KٔWM,Ox|?*Oݔ?r#Fա]E:d^)K mgHZO.Y wX#w( sxZ=[,">MhR͙VXr-вhEIeiG(Ī +)B]J>N'<W?0wW7/#옼xg3S^X3 +~ՙge'd}ooQozs,xDT69Tz yH&7;+='S:_Gu;O7t +.:)#v<.XI<7wcgFW:6PV(~ANjD#45e;Ƣ^k~FQ*Wzz:> B{2l$) t+,,&*<ڌE d3Szt^RGPt+N~تq'őNH}1::XsƓfծ))dr{F>Q֣/ L峁RbDit!ا,P%_Nd/xxwx7*%xw3xwpt.x|`_n:}Vj K{׵Zoln޸KD QmTJ A5 - +kI,C 9Nڣv wCs>#8?pU,H6#2.4>t0`:[PE @7*\K$'tWʋQsڄ &[Y\I^At{F٧^J71Ln|ZPRVu*:6CLL=&.~6Y ک֓ؑ 5?U'x/' OYnYq8xf򪎃9J |Ze؊o+31ƴQ!CK2jҮbUK)mGug=j cn ?|P5ecQoL %omY yviQ+Όfw!1N9*[/jRi~R^m\zAŵӤؽvE= 7]*O*^!ODDzY2 N^?KܯǶ6uEm hM1{=!/y[U.XaRN핀H +R<^i|اٌ(BE3eB̈́f{B +sQ'⾲zwذܴhj!J$L\}^Kg|v9 :dBпLߊ`JE6z.JR͎j{ը>MhgܶcH3\xZ_~wV{q9){}JߵW +FTګJ-oEi-W(sV4񊝩xqI@0q$o>ch+t$^ f rz&W'bn 9:l_k  so\,ւ4;9~5Ŗ}&-3ytth'z! YJO6D+.7Z(]irGV`pLC}~D~~ /V}ӚeV=߄ӲǬnCYPy2M9yxNҧ`h!gv;|Ýy-f0Eď;Œ%Z?9ki^e;o[O^5irQZƱ"s0C'nirsSl}s%R\՜il4 ʻ1Ĺ+yKi6kx +X~6RUXuGDou8$P9,|ownޔߏՅl,\ mu30,7wQ;|7jcO~$Cvvb$h'aSnŞ9ɤE;ln$B#=TU#(sF Ŝsi) (=5pKî\ҹcOFo7'|~+G+,pvǝJNth ؙ".j]xeԄRTbu(%W.s%L.YMz·oJHXB-vjŞ #~Ov\m>[VM,23M5tƛ8$[ލ cPR1w 2DrאּaZ's|giO'ݽi IYIcISOc742#Nov_Tba\tBM@5þ6I8bk Ebh?~-K M}"xfKR2{3p,-LݤЖ +fA4SoS52f[C6vW/= 6IQŝl󹶲rZ1JS,kW'p^lZRxx<2Wws흨mlA:{7{k?g|*jQLsGНdkѼ'+x%֚**>Cn2vm<4"A!cIʶ'^BݒP>L ^D2x |8hEx'kѕ 8\TKTr/tʮ}x |A|z$5Z\=0ۘݘ:;_{g͗❻JG6Bk\/ttӦ]_qM"SQUݤW0`R3C _GzΏ]9lE@{mZGhs{yѓE#:z\\uKqn;b/,72CTԢjx7HˍxQw]x0pIJ`P -o'en7W^\֚rqźsEmTboֈ^z%XpVm*AY:/kU^~U7``(!K,?ڷ{;tp3@׹: +Ւ]Rԍ-=l^lLuTr `660꧈+w^).f+*V[$e&ْJ>Q_8hX]( |}0Rk!F0Σ3?O޾_ 04WX"S= ~C?N:=:>i*,4%:f鋈ʭc`ivN6ABJAP0Yi9fɾaqs3gZ vhv-Sgآ1i@ފ a)_\=._Iy[HyrwNHgK}mDXkQ ի{HaABGS~wY|q3Ȗғ:/ %Ayt/NH"'^F/vCB-Ov[ss\xŭ-cd&ȫKMuiCHƏz9I^+|4oa#:iݛw?Z]%^H?mtDr?wKt1PhX?euYSRVdȺ(:/z}`#V"a ]A!25sBc2; | dRA<!WRaBD_󧺚7~v|Qh.|Qp[$+Vәz%€oZNNNTzmزUZЍefJso;ħmPլp;xgR ya2O#XV*p]X>#| XC.])a.\sH6ּ+g\h&QWg>EpJ4S"{ `۠PV𝯎WTgpcˍxY˵fvPa}E8-3̠w]@m@ _moXc´mxw쮒W U!IWfu$'MCY!|$1ӣefi 6`YgPAO@ /("TR}@^Vr+wn]r.\98@6*FW*|Fӱ "iDm9*^l?u!r]BSY"I0 &Iz0#b +f*00fHSϧ^E-s43PAf%kEVzbt˔oy-\6XwIlB;u(z`pNڵ'+s9;\7S 8]ZU 8A9}j`dm3*sdJu# 5l8H,_=9 +q +qs/߮>*~j+l ?@`e&ŵ}:QAL^󬥞皔r%.IeXTRϱZӓye/*- W˽qts9ze U Ԓ2*v?zWsׁm~}t(t!QnNۥoZJB??2_'^mhkijZ;@Yg;@,@ͤ%_A}>Up>-3z#<|v`4R R!x^*p>h|>mt)΍8.~w,hOi6VZ qE:!֪(4^~qΚo^^@9IrOٛ#Fwd^)v.ޙMr뭹VdgWiyR؆E_ 4g7}1k@ߗ?m%1' v |鬗n>R5 X{<u쇫fZv!6 +[n|ЩFܔ 2X>چ*:?Tt֘A[;6έEW` 'ΟU>53/t"݃)ܻT&Mܽ;QϒCvǝ1?ftv9'S>;YyEbb<;Fw,yΦxu24m]J,,1x;#ԡ6P!Ns[SCz?M*EX߫jgXߓiO~JXJ}ա^(A ۃ\T* w[]+eRY%U^/{hr=3bkxVzAl\ f54Y]TV v*Zؕ+d^-ל{Nh!ӓ(he ־ԝWo%_dEѳ{lgX6bRU:z\ef~vy7ZB5%7?4:Cx\V)χ\,XRU;zGsK+ƙoxN8ik^ +l^n Ri&?>uu|9(ģvTܵ\^@/%|||}?4e8iJxWnhENe3k4Waa `Xc(j*cx.яۈhZʃI&a!9c?aK/)B0󭬼ܼ+pqWmzީ1nѮuou+n%rp`vFT)22hG((UԦkK/'_Q_$=n)qKM555JFY:za;KsA}dū>Ex4c DK2@ZutikEwsIŐlNY#N)tnu҉>0)VBg}1@DRӛiCsS%#8SV+fF/I$Lg~v6] 08zR*ɻ=˵ ^:(Zj2=K?|, 8IB&Gtõnޓkj5Kb8^ Gb`nNgճ|uacl=աq]P6W*{ڐd0SΖR@C]߮E^33Dž'BohZmh /A˕[Ý'<y9͝-Hۙ ddݶ]k=,TgJ},&[K 5k^؞({*<ٖ+늠.)K>!?w|VQ>|vЫĴWIJH[GEWmrL)Q\1Dԛ}.9[%3#Kze>dbœ[m\YȧGEZY1#>Hlb?w wfId@}Hnouz)s7['*_9&X孁pS,sfeEpYʔ +B*W)RDӯ:.=Zsxx䩆[Thj=ñI( bZOD_x/ =y;D\:좍Y &LV ]wy՘{C*ٺ=Rj/CD/du麄:"?DX͗*GQK1͒\Xjw֋DR},Iw[0Jh.lsLCfÐ:-yM$zORs#bDrFLF6nr\x\#1v1GݿqIIaA*QP3{'TW ^z6hK^ 蔩9\&bGN15WK#ps<[IaBc`py\6QQHuEV:"!>bitw@VDELTn7>n R*25̭]k.Ԥ˰<|wyz[mIQaI>?ti=; rj>^J<[Yv7inST/}elM9d{&;m4 +YPAH}9ZKnz$1 _+H#C +{Pn]Ȝr.s{YG:Yi.2xa#(A4gmZ8u>~*$KϳS}>gDXBj ^ v =Z=vvRY) 3fy r[ ^p0STk$,)Y8tLS99? 6oƤ=;?\+&¬ձZyP֍r#dgbq?HQ}S>)( "tR|9p{ȼd!çi/n.œĆҊt-ѭq;QP-GnKk#Ojc6ü{РMwdnr8n($u).|J*A^PMq*(Pg(~VRwZAU7Gt|%,3Vm kA9pSz { M +R=?|m.qfZʂ=J7h!~ZqS3m[N|C_j'_&&80Czh:a|s-= ,9`0y sr n~L1-U0AsbbUz> %nZǀMwTmH*8Gzp/eOx[n_' w/p?e\H<.x^1s"GPvK[O-uhpDGV)7n#㴁j`te[dJ*/$'M*@Wm QF2SZ@m@Ӷ=Nu >D@r "~Uk 럼c;ە?Oտ__ex +ff~ +}j>M/Z]Ŭ,L҆^)NidPʔ[]S->-Jϧ)z ڄY>%lu>W<~|.3x> gvxNg+Kɇ;ފ|~xsжrOh3Mxwɬd7Mi뭛ռZY[8>o"a oNqO؝Lf9\Do +|wnup3ȯ"1F +Ejg}n>me33_0Bi:1ܿp38Ǵ𿥫tB=fCf';ش6SpWS^ +sOzh?4̼l:n27q+h䨊P {l~UF c~ +6?ǻg{Z"qXzsE?} +K:79'f2O:0Fj'K;S* Ó|g\>gS;qxμԟwrO l,h.٦2K28֨ +,v (k|||X/;4ԡ.C~D; ծ VLJ~{I6R*![uF=xowSU[]hȯ!YNb]f(q vmRjVU5Z>>mVӭ eV>'q]I6Bg vV NR\ͦp{ޤ^>I}UDvRo˚dwy=UjzB\LݳnXW(dߛipN %1[x_쭣0YJTz6}hzh#複W(1P'HUdU%_ᗷbL]Zxh.zJX[,JJ +{ϙuz5}Yb6Aڕ7]R 2Ixʙ5AdץnU>3?1Ap,NXk]\[j=)G{Qm9ZCi^5C1MbEO_+ڃ' qHm+7+i7jqqF wɆ;K:Wgc>9AxGQ)Fy)ry튦V]x, ]}git1g=[J4'{,Ft3l +"ieH\|z"lN~sWvE,]{['qaj^;g^ƓFh m $`us< 05J'*UO-%o-oW@W/;Vޮ@G嬯]0rvҵi:oՊ%ؔL;H̋4D(mu&K:]sLuPVkS²(rjoZiIGS8>.^\[Y[l1bKD.++"T +W%cg Dȩ:uYfW#c^CHnyM6]u;Tx+k)Y;Qzջny"q /^!D;ܢ-t#tb*[o)&?;M~TwfABO I]|ۺmN{vI˟@EwfM)3fɻaГl4RíxYlb~ +[6#t;,"nozCgʙw<,و  }i ;*^Tl"D0 =0W͠}E]|Rf]D*Rc+EO.!]xc>|@|~1qDvVj4Fl rـ ̋ N̫ NnLPiS)f9NL~ӰjM!> 8f67> *;(Sc$<~I&}a:ߖY,U3,B0fy9&{&2M+]ٌv?Mu,uP<>-utCG~|%JqUd_o],7YGJf\en ﺼY)d$2\8dig23]M u(#U*>]ܷd?E}cפH|dl;?PヒFLr/oM\`Wڻ!fY"pM=gV+`Jot\: U5#yޞD.E$A!UE(-l ? +" ugT[bo=v%S v{!95~ iUu9&,e:C ݩOՏ +5. 2;'UD7eѹ%ōl(`uQcva][66ry[t5s1թҰVJ܍Aㆾp` r B]-P-,3*R#>.Vk ˛M +yG0#AV9}WG̖HHw╲NtaaV:haJe^ #؅NGir Rvg>mq8Iu>< p>u|n[7dˈ +eM򯞬Eq[ģQ4pʨl7UZ,l_CAdzn촵'E Zn-ч:Ҽ 16-^sF$bW)%uYIuxd0n,>BWQ-]9s>)S^3:=%_oFO4j;H;hC@JS]s/d!w\6y/l.2SyeهɸYv<9f >9D0Zӱ7s&C*y4-:HQmQNb3J^)*hkfʲL3^:@Ԯ`8V'c{30n ,i^~mCZф/}/1urGʨ揻 K͞ 7RD< [K-GU%& pRL J94|2kGq+=Hq;G%,F+LشIT|曤2 y/fWlt~unF)1 t7S4v)w@ F)M@ +Mq) H3&1}.?jYRM/6 =%-d3eQR%$|9C@\> 3Zw8`i @I>YO,9šȱڧ9Z)m@# Y%G3Q}NXR,/)iN"` K^Ϡjj'Zk U{M#[@3)1h9a fv *9NZkQN3@W6w@K93ZPɉ]asHݘ7 9|sCC3PQl^Z#wWoM/<O }m, wEl)U/6F)i[nDZ{6-}L-o}G|,*oՓ=`^ s[\m>ݼ{fG?'pk<~m3zv|6.>Np. +e)מ& R90ܽtFvKߎNjۯ8_NJ_^ e d"@TQgV\ +$d:Bpf#pq^ JyHtZ|rC<@ub ?P`JBOc0?I7BP~3#7-nH\8:Y2+zS^'aߺYrc!ϺYUi7v.JՏ`骎$`ŮiկtUG Dw8x1}/[e]bp޴Z\JQ1Xahbaeq+υ>!O03SZIq0!5Af űū7o naߎt's .b슝*Ys혳g L~]1>%*ΓCHov_Z7;NGrs ?ؤfs n޷t?w2Y66S\&z3O(a0&P؟A=|}z3?T;fEμ8^vd}m|ZkU9kE|o] +ȝe}ckkxv]rI/Q;iYNdW~Q BU%$>D Yo֌ũ׸u/QCzuecEߌ#  [^s\+;)3aiQHw>R0ZMoUq܋UGތyݸ^#I&-H^G~Ȃ[m55YFU=TVQU2.o[Ң\Bz2RkՓGԔ}. 𐺶~[IS\/M&m?;7,KSTz_i UYn+!1;\$b ;fKƅm*s";~uJTԌ= [uQtiQ+"7rV]vB|uB-DR̙/[Dv7S#ġVYrvnA~/%/g!kPkG^;r별bZPVjqձ̪ǕʼngȌgoLh 12@zg)h'MeOaIStzz\=ZYF}wN\],5:8DuwBiײR֦'vj ּ4F)e֦qCX}0DNz&gɚ]kuӟ ASZpG]l=ʴb>\$Cg%kXh OFWXyyߺt4or׍>ic+=*ꌜB?7PzUp(إM +-R^rE7܃Ih<!l|K]oNuC9zů#ߔfNhJ]͎nC=ӝʹOax:AN1Q{+L)+IQ͎%V=Grp* +b}WlsZG:37\= uFSn+CfE ίJj:F*"m% W؉y+.R$}B[IyיZt/&<Y^\5AŅ Ocv. P|v>+ʪT|2upP{[5@bl}VB:n⧡hUoW%YwlV|gQĺ$E,]%vdrala6*Z,%<\A:¨.?wS+tPP"οXUr\YՑE';eEu?11 k0%R뾴2CK &MCb!0Y>.oo}N[zWR,{ +I,xi'((ԁŃ(d4b]͟rCfѤgLLG +vz{I;R#0T/|| +:>IJ3ƋHcчbjP^+Í݄1-[V~[LջKj8(J,gNhbJ `]m;hiuhrS{:J34ї/mebnRS/~ +:@b=c٤]/9*j%)M=z5R=(Opmbuae@avNG'N\C<2AEG!^@ ʾE#cn9,+l+rK^ggHoCEm$nQw#}+б46 0Yy%==$. Qײh>:"!hV",yRޥ@84/^ +}Y5!nm; +}r3+CϒqBR,fuqpMS,foA;~!|bk!_#~J{ >+3 7>>?sMUGQsb s?~n֖)BQ5z0f :zvh)W&Ҭspҹ3 0)Qʓyw#^'o4^3y\trz;B1V۠kLk56IvIp!w=D΃Q=:'3XT/w?Y +]ϋVXJ&%5w쭹PWEeɤy;-b^[TL#JL{FwK[#Nd!uY𠭧C9Z[q9 lxލ.o3YLt=-vUPK j_%eN %$"c l&#`SL64if.b{I0 ۵T-~JtN'/6O 7[h&Z{[7* (J=B- +xS{"v Ff2``z`2AfP3~ާ3wiDc +0QrL\X- +Dw HHfu:"6uv +(<'s5*%m[`7`-5 }}5c9 ؓ3ʁdu?i'r٫L& 6:2!N3*zzPA dvI*KɛɥQrrV# ȮѭS 寓Ñ +fg]_}O!RW@ۿo+Oܶ< @(5:ImNP{*Pu`iuhTÿ%cRx~'E\5=O'*_ߦn +_W}J@w9;0ppÚ ?]̲0r51Li_%k&#\GWp.'r|c}TŇo߬wػRsKh5:&953(+>.**w z_#97pzuZWrA=@71/K!CK?UxrjnYJKm^Lk-]^JShLc~ ٣̏gMm8'wԭ19q&_*"&[WQYWc¼&:vlĻUU=/pPE䣎t($iau%֘@(_@*~hyf(ޣG}P׃\ Zgulrt¾[Hkʏ7d}U]i8}kJ1ٻ6!G9f=h]-NGt;4z>cwwƴgopDm- +i3hnJaLfFU>M%u0WoXPj/ՃE SOW.թ wǩ^:Un{,6=nTˬ!^m:֮mZ3hՁ|wՏ:r'J.Y鹏feJr,߸)=MNcԭh-QWCu@!%굱jmlfYjt=rarr@2ZQ1Pp%8VM +gn)h_1uZ|;ǘnd1P*5N*C^kUf>Q,rRȥ⦒}UbN]hXu-n&Lü O˹G|i5Ⱦ"1SL B;vuY3LYWĊdYvLfԕm8ՊhJQB^A}T&ss38;x^!T&.R\&)L=I0CmHo8[oUӆ1mx:۔ڹW]Hd(<͂6Jy3gV50n+E$ *\&##UNcENikY3Ԫ<;p~z>vicɏۻ;8[93/a-P/%g|:RwՒ'Z4۩WI)vۙ5ywN$%FĩeC(g^e킻IUrycΌU;%H? T"9+b{ۭLs{9&l.N;Ͻ)Y/̊s8rjiH$PVF,P9y0ihf N0t}{fhOZ|jJjJ%kJ55M>%ߚu~Mʅ6;(ޫzuN޶3()сLAGٲ;2--,afTLډ{FqYuUe)T/Ž{SJEh,iJLkQxft ~Zʉtɣ9!$BUHEOnN~nQ59UwdXYFP{q&boB4Œtk>%#p`sUh_ &\:#rkliA׫ӑ5 +^kB5]B)S^~ڷd;cK +ړ%+|$x.,VWD`<Q)򂱒\uirr!dXgI=ފK}bG2;2`GaO'l, +CW?p]ӖEQ5;B Dg%ʊ$˝JX GE E81[r{qɉ=hVi5)cU|\s^υe$8ή{{CWXK;k5+Mشce$ +"ոbBx{:08\ >-\|) +Wbc:!:e,-ыOivM(LFNۘH;tV3mF?ٌ{7qFk(2kQJS܌(Hq= ˙1ɞ m\޿= _Stji]jP1n1$nYP"i0"ǙX<*$1d݄:6:ghSznS;h-LQV +þ&&NoV=Ij^w.@CPС|lPӚ Ja$^iX+5H<28oTJxhҲi+{k+ФJY O%gݣlBL7b^C4L  ;#=S!I'0%zDa,LQ7K{wU 2<&m}LO?(ڐ4=RELun8!zX/*d*_[)Tk1ݍу'M3JҖ7q5l?QVfeLLhhc$ә.[L0=[dk*ձ=]U#?7,);pUaT4ht`*P@Ro;h}'}*GAA$eR[,HGg1-ܷO  endstream endobj 34 0 obj <>stream +FRv!}y l`0|3O,J]eY<̍A2vaiȝhRUKp2`7`HrT 4U)"C0@d # 3}VDJu@h7ۅ;ЌdSXA('-+[ش9;Z$I$@h HpSob9@BڞjVmHD@29 5$J^U@``U.u\P;? Y[QЬ_\G6iK< dرh+\%5nWZh034  yQa'xys I!S'{ѓO; v7KȍO\@N/C@[w,-Zg\Se_O:ӐθيLe@!ѓK!4BkBP +:< ST5|@m&vqP{`z:m@-{@-* P Ps8}"u%-_[:)",j:kDiKةv! 㡉d )@7:,@7"'>R0MpN ``s0H{=''6h8p*b#{nMl&u; +V=,$YI%cG` 5Iaf*Q?vkrcM\ACisɈXfiҿwx=V~SW7\|Cwpq8Z䗇k6nfIeq!ãM#~P*M~W1az8cVڳF;JV:N۳,tl,Jbn+q7vɣk]k]v3di?ubA \[*{wSۯ^T}kݞZ!yٌ;w(ިJ4[?5Nm55lU{3:V3̯ srW&{n~?wW<W))$frl+-3Ĝ`iJEv m*/a ) :Z̬7Gv w`/6!)"אVZQ~?pߤ aUWʅSWvįbo{M1r)bdE68 ``&[_L8%ōfwo/cSY +G ~?hXUދ© o ?ԧ̷]ʛPzG,f߳Hs 5 F&.SdYT +r2T0(91-@\2HC6- 8a5|kt-/+Nm.߶%4f7 N&`:y0 'v>3W޴i$? ֫i9uTuvv^&oFN/N;JE=<)\SX*޻i8uYKr[>sI(FUmI;u) uҝxb<Nj+2=, ĂlkZ[o:ϝˈs̹ %]8񨌢"<ܰN"W _rUTSgR+Q~PLcN9N/C{{XrJj6ZV\m@-켜icX:oFmQWlY.cϜjAdPjQPU|/O8Wʴ=3Ԝ߲O@u҂آhaoK3se嶖5r^YqR7sKRv@Xn&Óx ߪ6,HM^Cż3 ;֕ެ I9x5])ҽaہbM[\ӔIgIe/(2NFGQM;![/z Pqҩr?F8d- JJ]B(/N'f&,C Hiy̷C$6/{ju8AlZ9.{w'%xhuZ䳤\hU//UKd9d(},JcU3#9w,fεH4Wa+@j2#:ļkɾ૑ӧ7:gUlr6u󂉚bQĶR7IZ^l`cۯ:.UQNYBX56_''_N|4s%hJԅ Iȓo9ȗ- ^} /.}<\;6cmm^_гy># +K5_ Opsjb +Cl'g({ʞm8 ';By>|<W@y#"->nN<~ ڭVdH?%}FK|U䯀rog+QpI @*K &cHS1`R/ϒ@=|  i t8=ߦ'\Tɬ}Lܸoeyk!o_~OvOUGMq4\@y@9 +PVhaV?y]ԿYdyZ_[_=Vn_o23wp_tM%mNbMWs_q;njΒ׏{@e+~rv;RW˞KW9Gu=|X]j&73yí-S4}u:I ͻqI^:3b8dʕ5Ҧ94=O?h߸p~v0hv=${“ZʡM5~*b7zף5m:$V !TZ",AU*u48ڿVg81ޣ!#=&ݡRK;qJ_kൖFb֛V3ic_+]ҕ꧎۪7,yL2J懯5Mo~?ʽֻ[bz6"jmrjBmn +A\ƍp6eQo(ZW/Cm.5ɽ=W*qxX,ǹKv4+vQNd<+SWKWo7f~oo1#/Vo i= Ӝ]:Xaꐪ/9F9rVZR(FH1WC1 + 癬 +smT͛{,vJ$_|kE~͈r6k8x-c0"~\ +Y+1)Eɂ//Lηݷ7a=b>sp>Ⱦvh^&w`VANiy%t>zew/}G~~_=~*J!3~>o'\Ws2oeߓ G,OlkނY{91䱌Z~P6=Qse{dXNqoν."mᶋm{]7/v+*H!^V[U, 퇲Y қfUMGW#Oz囹L5&mgky, ~o[=,]>qE+nt#=3 {YW+2|U:ar! WRt䅼Wp:u68bꠏqz\u:a)_mݵj<y9umZ$X<!oFWK| q x:헹_a3]RɱaJlk\rTW)Pq;)s}p,"Q+._+ﴅ ޜ5hia75oV>g0rQ =Jz 68ĚL +NjЄf*(,+(,Etj+\F=CXJ֫0yhN6;5ib +ƪP|a I=raX cѪ!h2R,ku몔VVN1i$?vdžܫ}ّ>wN! ~*%)l#&8f mKxs{HZӴ{VIO9Bߥvħ.7|=sqRnK1=HA޶ANy(@)1$o{1Yqe1ضZBMjY{"E=ޒ"}/:* jګ;WO6 "W +;;sP]v2.raeeR?%dC⤮"~ia6y!o@m_g>__T))ZqbذG{Ee1m^gwo=Ip - +V>Liɵ1SV >Ӛ^r*[J!f+fA$YȏdR;|Y\nq;@sSĖGqڣc.ΰ´e _+koh՟: eUP*4cT +T +ïU.Mm.囤KCRy)azIs +Ɔ__%- N\Q'X?(7s(Ӓ"}n FҴ9EjPTʾN)'O)%"[+D`l([t9+`,N='碦/Jq N.݇HNg{oyk2sxMX̙vf ёz]W/j}i +29>6myB1A{|iG(XÙQ+686m̳3(uEƮ=KOjkR gC`\쩊/=.W3ca'=H/!l(8P6?$Vt1s$Q 7軌 +μY,wX&YݫUBtGʢZj~RU+cQBh]aJ~o7GӉ`\O%c֘hH4!'$rkEPA;a)YbǂŢKŢyDŽ$B*G;;A,#g!4A4U#k^u ppdA%{s;W]GV KɔWնIt gLKhM2 . +*_89k4Cqm;)8l14l);9as7]7+bQdC:/#,.R%sc~tvI,9Ƃ 1&z+S.ZwErD.#=";hV&CI s@1vAzZ܃fvlCk+ IXao7WS?wР3_BfF/IiTkD?MpW$s~غ-.ЫsyAC!h,aA>;#}hG@IntZtr :)Y#J檽tyԿb>c=\ytё7+`2s|SvIUͶ6,fK 0|עDE;A3h&f?w/c,+9m*yq{S3aʾV:A̔tx!o|IA-4 4.+ߦ@ # 8 +]XќX@u5A3YDtwRzK .! ) 7 +4 [#MJϙ AHj҅@E$ C@SW +Ȗ2b n( H'36})pwoxMz(k' Wv+Vg@ M 4 +(؃kѓ'[N0 uZ JS@.'@K8愙\EwFD/U2v{b_SvL֕2H7WTn1@mM̄ )N|+qU0)7+0l :'oq^P{eX ̳[Ltb nј$boW8蟒ը+揞|?#{uI`[o7/!e wv O;^tUlLw6ijD1 z|pzGJKq&?y|0T[@0|CO?k/9+|s|rYWg7?EmqW@po)*_ W,u~eυX]$a @*/ U2+9hŚ̗m'W`qFq+ Bv;ߒ_IoO?mnz^^T@Y$se$Ҩ$KOOh\.9XY+"^ڢ'OnM'zv7}k+~| 7ugmSChhZmG &N[:cV5ZkqS1Ibf#.[vKcP^mJuO4MR۬4D&Ur1~GLs8Ė(pYomC[/%s׺ =-ks&{Kq_^h5d9t:Qq5fԀ(WqWExK9]gp* yZKq.1.ax V +|'Orn?G=v=#t`y.NmJkl#GwZ$eo5ӍܷmfNs\q aPڬ's(v{O7]PHJ2Wƴ$k%oZ暅m0aYSZ +9aceVe( +igY" {HoVyptqT~pYLtSprLU>c4}-;I4=p )q=aWS +Qvkj1__s,qfQ֏'(uƜc&cRi)^ғF{eX(F`TۍrYe#lsOU\;[k&؉]',&( b.yسL_vK7h̙މKLbZ7Z)=XEo.Jkd +PncmpƲBޱRH]-916Vl\YZ+@Wq.;n3B].6V\lpIGVz-n$忈mZT$ +yXd}^廌Cy _D3Dajn\;y2df'mجe8d jKs>pZL=^F,7~-fS/4>Q-}""Sqb>DkM53:õ~0ewG tcHZEb1͌,?6OFcn"V8q^T4kPQ(!)TɫQi&XՕV'X]TW)G6rMg# ;㧝,̼XQLrddoX˄wrmy dMtr4Mo$QH9no%+!z4F&W~[Ž#;a Wz OtKN2V*F7Y0QP[(N?/yצ(B&Nķ#[;-c^߄g%lM}iҐd/gDmbtzhJpqv)^``}ƒu'uyAG3c )ĵUy +Q'xLj$^쯑2:ҵW/Ί5NXdw6QOءv:_ѥWڤJ6L,$̾r8:Ik]uฉy:cdfx )\*3TH͜*%twXVy~WwE.<$^w9>ƒ2v!f$4yWT `m+(` wI(z`/I}\:5[S^`bP\gKR5$>ĀQawl*ie`QYOǼIhQ4` [ p]JnޫL=(x?sW'[!/ԹkŴ%.R ,#XAEL7qhyG(}WYIKiW +d2d\ *f m@4A4͂(: (b~.7* &b|'~ڙAh\Vx YQ{-At>dAtq̣,Ȼw:2(_Hbs8DOvO[Hϯ Tfiz6ޥ :v Njd:B砜d20dNDO8 1s0Ĺp&ј^~C-ձ|:9tlepD4 tB{'û絝bMTЍ_Y ?ĥx:c۵}L%;x6ɥd6Fw-ԁ&F[  +:WڢF+GsDOcGiŪZlՆϟ +C?| %>Ơ~ձe}7pvD֋:1^l5n^lhG"/i#͚Pg&'N}Z{e(!-19lrvR!?3 bГ+eT_6n٬3.1!eM]8LMs6/ʂ>-K6^Ivw-Ŷ30p 7O=xJT Ii xyyd3Sk3#F<}`}Wn-2>ƦR>=f~A2iLMT*+9A~7jhG;^1AݣPlea\ Fѹw?SXUzYue ۬v>] zSgdpڡaUngٶ+(`]EIG2zDž.t&YmױV薆mdߛaIXQ/5[M߯؟~xx9;C2nJ269/?nz>6mlg#cY"rUll4+W䮺bwq-?O9$~T5|v]j^ath{b6)E(vʳ]a5IUef,ZR*r+U +D*?7 r9&KH6rAbZMqO9=-t@Te9P.P5$^*,Xxv)),R2%NSPrq($yrjE] +:@B~)/QZ>.sZyK5{Z#I;fS]˸4#LJqC 3Ϳjgek vo%{nNޟ +Rv"{B1gSTʸUd)v~Z&K+穲L1UN6`6*'kEdT?mVj)}`e@H9繺d'vq&%봷q;:[|(HJgT+$iK2L,2by3ѩ^ +v~{er=v 6Wo0gTaZܘ}yYzJS{2iQ3YK^bv_s Aa\38s3{Kjk(5MeC&ؠuxidg<)řTB*Kbk'Ǥx6_Z.J3wff*ה{Nm88\$qMgwnEhePڀ^ĝezrx8sO̤׽2ёe9Kвt!_QN= RjREzoz2 \a ~rQ^bD;Xf|lU|Ȍм͙zEؕVԘ((A{OޢeUiybBjۍR-)7$p%}+neh|$3F,bXSbapqT-+2`H푊#Ζ<8'V4&=c9A=l1lU|5)QZB*ic&Y;&WP{3LZ~cDġzH]vt(]-) P>X>pN+<>F%%"32^^z M;^"PD]D%Hy*$Si2瓖qhO&^1hE8Ω*[mf1nrPAoo߫!qa?hbqEЋ@yi5D$M!ҸTGF<ܢQī)xS ]P*RH8~FWϲ.;;f5 4J$X. \EWNkǨ0i #ݲ0KO/$R&,xFCPo@p%r,@&@RZKHs#9~bۘ| =o$K$/1l^KMFZc33B/>:B3]#"yQ+|8q6S}`HP7AAF #띏5 ~=N{ +k( P@yGe%PLK@t?%xP։P0y7ZX7%}MIBqvcbf|f(z В}p Iւ2Aq\ +@ P=Y_76@g <p5@[Riڞ"a]>+.iGP d`Rl<2')'D4ҵ)jj"\X@](} ?<UJJ|9 *DU(9pz{} +Dk)FvN;W;V\ױ#mR te͆Ƞ#觃;o zPv@og@  v+,XBPd c +"5[E87ˍߟ7=*q>y J Wꫩw2L)DC{lBriC@;@diRyK#vaO\6`v3T`~KE_JPx;e@v3rtut~:Oʣ 0 z f8a#h73NHuk/4ACP|%K{B{24o +bR00MLLL 7;Z1x 6@Y'jĞ=wجPq +8H +q!pLY +*ڶx^vU;V10`jtlqBA|>(8ų6{fc #GP'?;Zpfކ秅i4k+Ao[b,076vnn +|K.sc>HeR%IZg0i}/vwPVK!R莆wC6 h{);/}eas, }N|YAz=@z + Q FUZ +H Ef9Pl@:x5O=,C~|35Jz$|JZ>4lALNa jצ 7qK {;O@v1قl+?(xᛨp)pf_rB.I m0M5G](m$iRlZҔΙXzZ43p:\_tz}{*$>pROeS="Fg53GM.>4&׋e3M-k%GW^b_OJxnmN}MK9|p2+eanm{Zo~^eM~u>ۯwqQgL>m?{GD _}F +w=2U=!J&I( b7ͻ scಂ; pZp\O>H5WgN?x0>I`RUhj/KܢmN)uN2mXTHE>0tzn1%U\[V<ϝ4/mY}GkA>Jz덲3-7HQy1NJu8uN5?a9=,z֭uo=zg?K}ގnn~s[ +Gm4d}}Cd3)ҾT3\1yأu$/$ͦj63I{rѮ qxZp\q˝2ׂ%u{bg6м6+~6ڏ׬j͠R3fFM'i~2JD]0zAK{ЗVYS2- e3V]Dad%+I'̶e[;I sƩpi4vڷ(`aa) 3d_| }ϮqNg75h<4xZ d>cOY)<|Z)s?HGO)?x0 0Ƥ8\?rSf4rfN.ir]QӋK:9(qޅ`|xCx:n_]VdTf0O!3p<:4&'yo/)wDn `u5yW<"9~`A􄻕hjF޻&:8(~`⡜5.YzLt?[;ay/rG+OڞZJ*H*5_#ط?O?b~`? #߁ {c}w7' 7_7'We;0?ߜ:_Oߛ͉x~`9ױ &>Ąsߛ/򫯠t{wg~ii yb.p1?W2ړ̾^!hq=. OzTI6)OˆvX;r A%{}!4Tc$|ꨒNy.N1"pBq aV=Gz>ӝ^5!"&,e̋oGK/κL's >}{⠑nƉJfZrHOof +s~?#*_MI{s'WTgq|ݙ||`ªl\s<,"#D^64>Ry"﯋TH6 +Ua  _a}"#ۅ6?,Y,Cw|%\t]Խ$^$zTE> ;0?cO߁ ? p{cՉ1^~oCLJ`<&oI|WOxx~`9>ߗZC:M"s;:fT9Ox"4X9Ry{t>0 wRf8 h܂z"5TQcUNYU#ECv~UrᵈHIj~|/xmJVRZin`S\q3]LMF;Ƶ4)B7P%ZgOUk=*]/+> zs]#uHݩڐ*g=jGr:[CM\ūO3+8z2v6ɂ[/l}ѸY!d xX+l!P=7'NRd#U3/ի55_$*[zk:\%ҵ?[쬮@~0:y9(]F gZS b4zF_$Q馎{b^F$sq>c[3R07Q'ӎ3/$TÊkѮZִ-HO0yλ4j8/#7/_4h1|]1tcT0=j@2Y~VϨLNdGq˳D:Kgw`|_&ՈVj:ed_vd$֧OG J,r (i5~:¯vk;΍rسU]s'%th̖0k+&洿hB'sƋBñ3jHGQNv?$p/q=|3ucL2I3T"bw,ELwl0$%f,>=i8lGp?4.Kp,e"=%'V똺ke6-; ĝT3iBiN҂4s`\,&QG Va00 +XӲ2P}^_Y_㽤5T¼#fTqe3L4 4=dשn;.;,ۙ#w|O<ע𩗟rݻSues~vy=oˬ-[õGlfѓYG35φy.{FRm=~F>LYk4w`ćAk+b&p{/<`oC 5?Oߛ9_}~B+v?,Զu (w @#lI_[6FgdN& KXm|1Fj`S'R֝7;sQ ++0"g##xV)0[pZVi̩g}5l]ֳr[!P9Oe5`<3Z@-]b~~!hs/1i`-<_h&S*;KLHh":d +>WH@PՅ=#Tj\Aiqm' pmFujZoTjswp/Q13(2\Og? +})יD>aDiv2Ϥ_|[@6ctiB*];.>3]\ gǿ?<U>AhSl!@Ls~obf?&wsTlQ˶EbH̉i֟۝vxWK:y +kp`"28֛ ?F\aU^ߨ?3'/tPU%3ݙ_0ϕ;xI7>0?L^,FJ@Zh`"^L[I'ayO!=y? oOA¶A԰6? 飲\zhXĪ;DHwO <Ú3H&N,'<>;3=n)sk pwˍ:]APzZǵ7v'SXo9ݔk!ߚ;{|3\cvX!Ѝ71'zX:S'=kyi,FiϷ2uybL:;}H#{Xؿ}ș#U m=\p[RsՌVMcWgI{q,: U|u.uO/:p}ts(L C_,ԑf:AeWvq9m"c +V 984g#e=. Ê/?(W⌗ױ0=?V.ݷto@,*^QgSf{y 9b'[%ɩn#qBW1=@VHp,C$n{#J>6ܯ_shs1V_5J|iqF`)hʱ*'ȡ߀ OH7@i?~&\,w`~`91?7'b½ćp{x9X!9__13v}*fZ}= hحRwϫO;ZOR**gSYf 󡷨 0OD9 . f4m8af+mz.}b=WR"Ļ'^fe}8y1#gGU?Cg|4 At +YZTv`mQ*| 9dXibԥkԇNP黺;\.x~P `ds+vMwMه2D, wqoE2ﺦM K[_ my +ݔF NAݞ\ahjQǬq,Y{b38MR7m +$r} +x|ӫeLB"nXu޽}k  ;*Fga8B?]}{Ծ+Ȏ[Vt5]EF.e#ءAR٨P%|U:n\t +^&l͙ xc*n{{=s`ء3_XZeQJH# H`>e%9>(xKNh>4O1H(@̓`r9xm隢ȶ /gyTFAS{ש/k^HD,VDBginE;*1|vˇ8\,]BfNn3-Y#Calꑜ^~hW |Wc6k >b:f ޺p)S@'{@JM-!ʎu9 s Ѯ̯ɧ{fpldDž9?u"xvD7lzb}Awm۱' +cPkAMlYQ~M3{0]p;nVkMIn9>Z~Ç[8,9=ǻDc*=-.vErMOzogMH/ rǾ:g^ǸiQ6|kUb5N?KtxY_Z5VE8.?C^p_V>%mX%R^ty/ힳg%TJ$b~Ϭe٬S.Oaђc z=3~_-_Rc+-Jmk}]|pjݣ>MJzK +Oz:~ 8!O&o/.{m5 CC {Bпp)gE9*DEƖbM{RϢK rhߗ+dk݈cKvSUZ/by|˫¦Y]VD'FJ[ek-z0e5M`m*[r49m׺9W"-Ie`̦w[p}|2jk޹c30fb=B&f,9Ʃ1hU%BGU}Ljtkts[9ytNtp=Xޕ^XX8Yl("uǚL0:;ub?+SlsZ33%iL oer{lS—%keFvUdGJ0uG ;4Bҿ5@W]#SLhI/. I= ,2f鏓V. Օ_Z=l%,e3IJ]L8S-_<:27"<+|K79t8~AǢ_Ќ2$P J, ݆ԄmD?5a?m_%AI}m(~K5gG6%IXG܌xqf~5ԝêhܑZ[>E}i{wP.ɭfKn7:WӞ 88*mg<]mN@ǝ߬-V tkJ'8Nx27cfO| ?οxrбyqlydG]5BwZEtIV[@L0;\OԎ2B;u3y#G~PǐUDT@Qi-CQFC޺:mD}szÇ`<4sO摷sz}5Ω+\ McP:=VB/\;G6YB5҈)z+\ {|Gyp3Ki4)^ǤX ;YJ2~.= o>6Acc1dWc\UŒU/_'QT^sCDTӜ89ҵw_iT|5ќ '%dPT}rSlp,^>g6](՘iLa<ۙH65Ay(:zQVJtmy'iX%%Ey[!/~3a˽Aj(WknlŲ,+| O@c\t <`<{fW_'PG%}5GBH:[e19j樺txD07~s߸x-\G}ܙJ +m7FtJFT v{LtEЪWr6K%?ShPfr}n`{IB7S:6ʰ3P)JhX Pd`<0ȶ1y#:șhcKkw*S b):X@ϴ3/G +r[y$wș$7g{"ʎͯc}Fϳ^^o64Yų=Fm{F`<'m CaD[.STj)3#/<a"zCtO 9aƳ?}+mߊh8\(NMc:T:\&Ae]9K-JToynOn+ Djr+;9c%xPTblVwxef@e!6&imrVSG?ߒ,EX6"ⷢK:lQ%mrUYI&j=%zf?˿_ew E|2=hsFRX >;U2MrPuѨbȎqv Qj9sZz=fuF͟?OF ϫS!-}(υ0L0v}mt3LP[0/SG8c8BNG_BlN*?&˵L0Hq؏ܘj _ѩLLrY toZW<0>ܶ㰇I/RueW4$<Vu"X(E•Vwlnտǹ5D8hp0;iEK-Zc2Kxcua2P`^,Ԟ ϧ;{ 6X,t2el'eG}Ie2O fs*;5ͼ6dMnqauؘqH#9FG(ٹ LR3| ?][~ˣe

~ݟ82m;3%S⁇ssҳZ*-bWIsؽۃm;{]v;lްzqkꞦ)G|GPUCP/>@qe@.'>k∠5i ی/C.B3~:aTST+hRτշxxUrЗ/ +E(Ec/h~ RAlעW3<EwS(% D:b}I^0USC;:R4d#̈́xVy(^-qZ?ù-W/#Wnڋt/)_CYdX1ŢWWAEu$ξ6WP㭟MS}!6q%+"Z`my[a w*GfϩqsgoNg)MEJ4֟P4;l@]&xҳn9BkZb-]zzG~,48+^ڑí.0DG EMwjzPɧ?J N#.czl{Qx2&ӎ]|V{Ҡn\*pCwzpyK&w-*ۿDa×/zH%VɁUpE3r|v.p.v\)\8ƕX\{;gp)ܫeH@4K0jRd.Oen'cM5:|[6|ly"W q)bR2fGkLsu؏>5Д_]ybnq~ ^@ D- F=d @~xjUmAѝ3~,%]]l^YܘժcNUnYҗw0&&l dbWeV^k7`bQav,)r{͉ix<*.Iؓn-CfgUҊʚ+)wrߜG)eŐ&M.w'ebH{Ц踵/@QՇtcca8G쐜-'ғڀ} s\lsp4Mɖwܫ?md B@-~/:3h$?~ ygԭDٜV9RD/ysvٹ<9}Z@V̄4zш.z UĽ}:r]wa<[{P]T>o,W͖9GJL%ŚMo#¹z ov= 4}Jm# fQT-W3Ŷ5E|plVN%ã#^c227,6Gז;um'ϵܟŵl'xو"ch?11' eSIdQJ{9Pѯg7f9cHބ} |&hh[n1LRҊ Yh_^F<6zM_ +KU$EhyuǮѦФaώR!vv|>!^sBGdjuy\0bec`Cڠ\[36cWs>,uT>ƅ#Ƣ@&CTsZmo5q Z͚CuНoa Ƴj +QFo~ʋJi&ڴ>[HPsa[&܄%F ({\Mr7@O`}D4lLk5xnXx 6#ӛE<Ȃ(m]dEӗIi}gA:'EV ۆjOJ_%M%af|JN1?eG:[E7E#DuH10U,쯙M'_P;#UbNYgE3;VL ,Le]LG|JR +8酻ߗ"{?AP } l84O_sg-HSG*\Ǒf;sY,/Ww/M5`bUvC. YuvҬ&^)fF43ѻ$7}ԊY5f|M?#1~ϻR9}*@qG >l F8_@@~R=ߙㅽM%k_T:f|M{u;J9Tܑ0]<Ǵ#[*>EAY@<|(-2gEHQe;`hK5(U]1ڧGqJPOkPp +J v{>_](wjӈ^TM(*'U+=n(B٥eSTYQ:F_v*SQ5rC&Ꝫ.?{TEa a6ۯfw}K0A*gAɭ(O?n;NZC=ԨvC)A%?U!;Ix +M,n`v]Iu7bFlP-Rin)*د5I}J(x-@n'oiS}yIq#DUq㼯Sb'&\,$ 8Ws{͔%*@)-C97@l+E3(nH->.RH}ZPt+EPg}po>x>lUj#e6Ƈr5me8v=F[FӨ@/,|^N^͑aZ<fW]SߜnW{w {,*TI',a;2N0**^$ Ȥ}'> gQ2 4аLd‰ >U91,&ǫŎȏ#z?EevԼ~tn=^{z8UbcYޝX)}嵆soG7AbE2־G&FBqf>Qx(. /S7 pߋtA_(љGWqMGJn~9zA6lv֦W䪍:suj3v Ulrp{o/FޕVwZ zm:v`4i ;v- r-\~O_、Se4tHȮnL>OdUS#^u'Rov4/HgV'^{U#-[[Dkj2Ѥ{t&ȕHjoʾUPr2@x2- C7ר^b.TlR&%7mve,hxl^UϋŞz&sP8o2;i@j9ʭ6w?R_ws.t}ra2yba7yˈ>_]i(^ཪ07 :Pnk\w/oS-;r-C$kE#FW/ڔ.UW=êkni9v5]4M_//wEPӥWQot*Yԗ^Sa/΋@C,kK哄]/>;s;mV f|5]-yTry_ e qMB(bCٷa2 +msDoDB՟{$3cUUf$Z!uӔ)ĸD/F` / +i$*ÛRU}[9 ik/`(t@a⒠P-+>7;HDs8 %z1j.w>9;yVnlD +v,A%_\ .~{ENQ7ŕWyY"i\.U+(`+|Ps}Ӡo&;oE@A)W US 4]ˤvz3.3r<;휋SVxn}0xVpSy>`C @ANoM}(MPFI>rE.2zX+u8kjm>7w_>ۼsnO +=#E0Lg{AoUamgy<<˜Z (ge<ۋ#(i[/ڲ[Z)Mi}9iŰgDE!g|;x4Mٺb9SOjp }~ lM y :ڞ'xQSڐ,zfH6dоT"\O| ?P2 ٘ Tޣ]5ec[g߷Vs_j㶏F& a<.FKa2l5CtjC=M5 nD~p1ge1ϗAq' B,lu_9}^׬c^U~[V(kR4MʢX*o?k~<2dQ4?UP;( +i6Ѯ05*m-2gv oO cX({\b +Z:V+.nYxzNCe=5ۡmQ#'!ٻ6@.lmIʢqfFΌ˷CVmԋD:qv=-OOK̫=+`Tڤ +Os0cv?_QF0i "XPR=PsBb ϟi.XV5M<+DXH=GbܘI%=M۱őZCwׇM4bߞ+~{0vu:S#ïtr ƣmNWS}[{q^6b 5j{EgS/>r\*֣H k@M`jz^,?uGYLqnyw}yĭ=ܕNiQ<,/7l.v罪Da{^*jζ9vo݆6{b;4F^wxЙmj'^Y^?6F_b|K}Nh4&sҢ-lc-n׫VXṗ(VtY}~ cԫ?lrV|o!*iaThĨzQ{pgio5BjR^oVGo8?){lwP{m912%KkT׺X;Mg$[C nA9t{O+cڹAvẸ:%AS7ؑP]ga.l$%F;\q=t&, +^91yrT "qZktSku.Örzg&]Č<5շ9T8UGp)vb/FMOL_% +t#*6wQ#wu.g~NX!5qTߗj:*ՄSmTUSIQylpA /j~dl) 6+ϼ~>J0uo*՜4Bn2^b{xjUڑdZ6[)'G\mbjnr{^>4??m + KbPTMAG@\LX>b?LS 3}ۤ7$ Zؚ[ݿvsQ<ط +`_m:ҵˮ{tio<%*P@Hd9-fs> mObj`-W +OrA`P|bALyY/U{G_Lܝ6~:ʝ;HyPӚ]@σ-An<+ G?g1iڲu*[P0sᖙݤ^tbq/3_?LTa&I@&:[».YA$g| Bf\E. u8 <3xϕƆwש'o K͇mfYh g??dS|fCq`|79i񆠟3XvKQ! X"VLkv WqiE9) Yt۝~fb}R l?(̛ =[bSYqn@,Fd}#>dtMG\)r˙*@Ѹr\yE) *}{γ? K`b맚Ǒ7Ҙ/'{gͰMn肩}GU^x +-c'}6@~۬m:,[a(]kt^@U@@A@'uLBX0bj$z`)Onm'_mDƋ=M}]fҩݡwǃݙ9z{ 5>FA%u(o@I@N@ᮻO% H̦kc5k-76NfKJaʾiă\r^ah UAipXpQ+2v#yF~MCMTcvb3l.{[dcJu8aȎ;Ko9Q<{‰=[my ~u@}vn)o[P\Q +J=JhzVZnH_#^u =+ldžTyLϋTQ!$:/@9'?-'\x.]E}|֮ïOwht} H)o3[%Sq.vt8y6ʌoO@>sVa0W9P]u6^Ώfͥjspw"Xk5c9!VAx5a{>wv&wYd#QvdsG [vco(>~EGDATE }fU?tlѱb5@O,JX`4'[wJbpu?^mOv]OϷ (6.:#:9R֛Pm~~ml{;hFvI.x,m(ӧD-&*w,TKnQLYw:Zr@#s0gRRO0lO]+uѶ ot޹[ ?0~\(%`&] +83M\zcJ~ҽI^nQҾ̃iMwlҧ6O9.aԤb|f^SkK3pеx h/A!0q\BOEѠAT]!\V 8m^4 fn?-ZL58m5Mdny)g+0s>^@wS;@[0yzɬt"r}3kNNS<ܵ_2`vo.-5sF6}JV>Xi{ҰGof5KA=ChAуEpsV`Diz·! 8L)\:G}Ӟ]ug{_Dpb6W2^e*zˊao?z==@o(ike1a/g=K]dEp.FHZ-;#oI8N/Vv_w[U6X&mVɠtlǰ5ѭ~PZϹ=Q;NaQ"2"1G2n~ykjL&BwXmpɂת~=5Cm+s)FFWA/pAQGJUfy1)WLw|| N;NN0gL? +ErLae!3Nj4 ->l7xd9$¦|nzBx?lz u^ez[彵fWD;#' N9h4|OrSd bzwɌkļ=Foq(hb̶i;h R% U5o&v C?Wqa,T7Rۧ{xzNH'q/-p*.Ӈ1ZރξBurڑ+{MKߠbn/j8Mram{Z dVeJ&E%syz{ꨣVN;s%[="qrqv yҢ?Yz#k\oT3Ξ;r\qSt=7Z}rZ[; JBym6?SD٢TOG-Z"J9* }nAv79_}:?wv085@-?thj 2j:amD_.EJUgW,WՆjLx'ѹ@d#,:rOܷ%~ en +_͊w:Faq՚G2d>Rg@pT3;RKNG,%.D +:)?( R*T|}Կc۝x|33Ө8osgh&pgTzfr)vV{#nu/E#* +Y||Q&wn_+Te19vXScnoh~s^#Bcrk *٤M-!ezxI*5!rSW&tPe2O97|櫅+h>xQ7_/lFs)Th{k*lsc5L oeENⱿ fKx"YZ%sGWٜ\1 SE>,$ޠܤ6~Mv["_^ }&сOsF|F Ɵy>ϻsʯ*am%;;m1\*4<y62EVh5IFBĝ2=x`*[i>ۻ?:_-}l l[&w@PԟAE+kK-!1CNTKUi n!"9XD:>gr䞅G㨖\zI>Z\7&N0x"vȥ6 h|z;!fzӍg+2Wϱ>x)^|wg~SMZ};wZd ~m] s. e.`֓Ur~C.9Nn%\<{! tv^{pvűHTIkG_w[SNܿ; @t~H`7Mܝ9} cX.aۍfn -&={0u{r̳>TG[FryZWһ`3}N{M@<*CM \>{AUt(fKaa6P֖O[xoDs{Z*9Tr}fۭ +9]:nI]j{wSS=LĴſP^dV5r M]H_\:)BXo>͝j[L/ݜVag< ;^vn!uZ^MgŤiϼX)7Eљ y녖rA?݇ag7 60p |>.5m;﮴ZHyNk2 >=L[֔קM\egA^&V#MCu;@Gh*Wr9xM6F\aa榪pwoi͜EIӞ Մᵡ,Շ%feM @>o;֍cUv PCh.X]zx(C"-=em7mnzӫICujn걲B"̠-,Hu V!x9;m/I?fv<ӿYFfKM'~hkAYU04K8wU}d V&>IreSof*oWn& +3@dZp+_bB@GF 9n^)cp>@z0TDU+ z7dWvm?һJ]C>+wR-+&țid@: @or3P4|K'em7ٹxAڨ$G|z㻧l9H~oDVy,53mk¤Wp(7'[3*d#H/Y+sx gvNcV9 ymm4"+]-)F+} e]:?ںq,(67m+5(.uR2ZS2gG%6SSEE} +lvY=s?ֳYH^Ӎ3_$^&7Wipj׳Q+(M>'\CvV;x $>x@ӕMo /te +n{nQ[b7osIf=z릧EcP+>f#$@u uJ + +rhZb Bw8: +b +q|-7px%{,l4WcN~:-Zf:=oF2^Fq+r#2igs|:63J2Y]`. 0})Nl>>@+'hzhε*T;<@y?%.Oq{#8ç(֣.7KBୖqo\ @ mshA^^@k"1жjsĩ.١mO=]  aRx>}.]`}]+eߵps\ s\CPKB̧I=n.]ߒ3f{:ҙίbWg1elÇ_r$ RDvq<kmu,Jڞbߢ<i)A׋ I{"50Wͨ6s_ {>Ys  f;Dz‡nxa+VupufMC57he !Xw^Da,%i7aW;;5wFc? hfzpwt2XTSx.a9[Jc6p]/O h[/^|oKDX=nZ>3sFQ 7PPSfP%_y[rݳ @; -M/aϗܧE/Rܘyqչ)KSBTZmc.5\v+FlOX:nz4 KPCc(g9Y|F'>c(:æ\h  mTvBx䴿w<ַ[۞ã -֝l^[ep.]M? 3t9 q +({ta' # +iCmLYXC3z u'"]H:^9OSYmPЇUvORѮ !n*d㍸@Ժg'?s kda]/7{>: [ͯ_kҤ . +@(g\*}G00(Ox>FwKUb/6;* R0ސ1 ;@ONVJ?ǒKܑΞSiZ8! 'NY`9bvr[=8Q4?=REdr(oVVbö}ݚUt{Ʉ&渚唤A},rué@h?l}> 0HC3OnVs>Nxm1JZG|ii}&g6Kl>j bۜ +βg +APj<PLGl=A. u>1M8ԏ#Zf&cX2U TLjBLߕl^Po2x#P޻p'/]#1VNjs"[0h8ĥ1˘a1[I?mk}ZQ^lsD)3Jw 36T_fqEGWb 4BϜ]IVM3Lڱ}mk]}+2E LҪ?P~Au^tΩhn"UEBܻ(6_1e^*YH>(tb ++$iRre~`9k.V<ޘ#13,$aqZEV)>zB/B/~N=NV֊pFSE?hRM*%"jO]!W%I3Z*i0z^U?t\&sU)٪VmV8kKv)j)[ .D0]dlqk\g" jQ rqr`Um,{rcոQ=ߝx5s}TUPIoK.ojm]Z,qO&Qu)qw*\{,*9[r仚YD+Q*M) ώS7a:3cg(7 V) CHMј J< y]y6k0O:dۆgwkue;Tgu%kr^۾UkՌUu hj)qP1)>E6?oNjrö*uf#9-s]LiE[#?Zs>ylHG;FFҵ%;b*Ǧן%`$KNe8oаR%~ijjG1/fpP%zԸ(}yDjg`zRqkBcW vv#ړw4_>~PMfD Γ|s=b7-d&#]iV9KRK%*J +L&N~4=,h"?(#k1GsO@m Ohy4X#ߝ I"@n HO @2E42OL,BMVbƳíkS/.m(@G} xH(7vyP)@׾]wzqA7w*$@m l:VcU=8L5En]Y@ǽ oFJP/Tdh;$ژ#%  4('n 0 ?M馭 Z-`x m{ :b;W`Q 0w6XqIC2PSd:>@*/im4*D/hO;׷6lN-vo(:+t0O2e u-}.on\h=9} P|xâ@vw[sp5JEu׏,y\?5>ӟs@ݣK砾D~@mm8a?eqttq[muS!}g).ِ8m S5yj& +yF#e&/2oFGf%xo9>np*Ww +hPpNoun%QA:%HS&leG™0J7 W@TXHYw' +eh&s^ΥF̣ZaXvG!odޗ ͎9.W +e=mPÉZ"e?FF!J&?;g2ޑ<>4Jp[̒;XyoN 5Cf<)OC~c0a`,{,D#dJaz=gn!g\+G + mXO_ˬeY:*b*0n8kEgs>"ѵJE:rLNS&# sAK e6)m@ZD8_[j[Zŏq>ש,ۚpsO)nk;p8A~}Um\鹀ίY.htpMAqvYsJ8ؓz~2d,ZaJzQc[Hdb0ӐZKnՑU{JJn[<ۉy +B(z8=vO <۩ޞe=Ȣ֪wv~!`Ņi;V:Ʈx׆k L,^FO^/P_0(p@Ko:dRFw&pFFpiV}0coIv"xCɂ;yb+Ҡem ۥ]"sv``8-[A?Ju-T1|b+`⚰i/\7 ]8AankuLa5;YpoyKVbt=]o-3dIU~m,k82泜 vz5u8AhU2}+r]΅R -1^tQ[9U*I,#DzA7sx gFlO[L#,ssӊ;$ (&WŽo"_Uz[{LoڷhR'] ",WZR5j\ŀ.(3Jk:LCЬilìzSh_w&E78Z-zRVA‰:)}z?Wke}ڎ^^啯2œ +~ kK#bލunci{rVV#$ކeHM杕2.LҒݬn ,.83T!EHHIBԯxV׽6Xan4nc3S .P~ɍN2BXD82~P4mj_tUF +YX: qD4 +[7 .0~aP=;=>QvzCrTW82pNͫY@D +kZl $dꕢ;}D _-g.*T) g@ 9k6a9[:UZ{Sޟֺxo)c} rpϺ.M'ؓ\FMi?hqdׂF`w'Sx5¶^7l-$rݯIFrꁉlTˈ:Z^I^5JAiA<"U I͑|R*[@Gf`E1=rB+ͷג'VS+Fڡu]Ҫ?1n?L?}22yR"w?T_ˢ|r,s@EZҸA&Vw|tS)}5+b,YmoY=[f?QV 񟭼c=lTgxdn+4GBilJA Ÿp g4]Y$VKH Zi^r#xWģ`23W\ i!W.8@A]2dl2dQ# SYͬ oS$a sH)H_ kǹ\ؘ K?/9^<Ȩju'h2t6C|-bA-L|Kt@b +b~ ٯaΓbBg.r`r(Y b +w%@@dVR Z#=#d8f*edĉ.2\m }`Hu Ncd91],ٛ_;&6 ĆSD[* @ ÷ds +k%;Wy(]N]!U;sE=]hnA=q8عY^X`'P"hK@m,x <+@fx__ϓw>zc^LW=Qqcz73i|@5 ejq`A"''G?$Own{`tVc',lWIvM#Ͻ>9U?z%uWᦌߕKe0]Rnl f5? E`p!n@Lgwr 2x~NGq[x|$?JyFsK.M?,?H;5\QH_Bg!\ :n_YCzyEǰٺksKq1qER,*PX7OGbAO\<܈}/jnv-.dJ836o?xӱ$r4c~DgI?]Sp#WlQQEDAQl@l#z;εzWW}ǝTMHF0 S.?9!> "8Z=-ibLU>P&m7^TaEayҹyZ^~#lܿ v"a(yj0 ץW%c3 pr]D`}yYvsCo3:>wwg~}dҜ`=XQX1K$53L mcfUJ̙Q sYCOC]`\ABc }nUl|Tجu/f]R@+:SbIA~ +-6 F_ +UhskMY||_%DN"?%Nu,FFVUKX:M+!ɎӲjvy`st+*SYtLQE]#m||So+ӡ+,)AN~W+F/-n75Jr'x}-yt|FL7yjNlߛL^[NmHO{1wpTjc!?R*PO.~Zp'h֔k.=i/RqNU͆eۅ4=&̼iQݠ0z.V-*\9]>`>păoVL}>_~Of<<|T] =F߾29.I`֘8#}agsfKq`\{dNY2CZYJG)[ϋ8F +NH/@W/BZX.|}̻{ݽ5:[.v_- @΋93g1͎dlC T}G?|3HMLglġ9<$n$v:v]Cͼ W_}OO!/ek`Múre+`gu #IO/viY~ں!. Nݿt_AɄ뀇#_0iK_u5Рn^ +4NMf +)ok39ij"a;n$L!齜Gig]uYeAr>v}3F`sТ*~=l}t ||XyI,xZF;H%MZR\O3[ f +BQӦV(kHd F,!wnM\ZKK 'H#ϾшQ'ž3d>rTzomt}v&.Jt4SkGԤVHmQa8gBŋՒ,[G-uJ'K956sjMn>n='_!K`[ 6\>cq;aﵟaxAnk}CЈտӮU[ؾQpf 7ɖͫ]u$N>f^dyXt+V_rK11{>U=TnU-:zVk;ԜfM9bHljykҥǖwFz==ɺ縟7aȢP9.Zmԇi&{.<*0&;md` K2 +_Q\fv +H;[~NQsaŦ̜ =ddX|Q?o$m7 ~`EYs69Ih^UwvZY$6 ۤTkLyҨ~Q}{n>\@xYx}\!L%`Tv~QͷpJ)DR֔{VE~u3hBws?_jSi\pL*N-DT~WE+ئ\ +On*ʈ~Wl5N}lf&0$Zj>7X2U>|4(SlO: SlSs$ᖪJ_k)Uv+-<Tj YD]t +ҡLlo3c>|;Z4+a, azYgdc\fV`>E:9W}pd>dI!RnZĉJ ~n]^٘> ==E+T6xd\[0[?{j*c,jX.#PI)-"zX;U"5?->Q/V|$u1cR 0P2PakBtXPΨ%~U.7wb5c`9+NSRK/eFh˴H+~J2bBbND1JW8P|F"L [AX0t!!`pPis5;'@~ ɮ ]Z-̽sȢtAExql:-.S0M#XA(%X`i 9r ZfJ~2-SC{y yȻS`eHr/mBWY˰& X^Os9Sre:W(3)OEX3L/ea5P, 1f耬BLY%bj3|uA +XŻq_Ɓw,PA|sf5<`޵09V(@zĦФ&Aoz9vk`ă4$~LK缸P-G(>Kh c 'ڀ2Y``sXxlB37CJ'wu⩐̳g炸sLyT/쵩nSk(3^ʸS<m+}=JY5X|ݟIRWX4\tt. on֏{M٠߬|6Amq}E.A3>_xT@DSRcEgR MOOR'򒌶8\q ⇭{ mAoMlrYZ r^Oi7TSAVx¿My~nC{]-Hy[؜@*` Qσ>پOwm{2UuYʎ>olhy>(߷s ۫<ͬ+wdiUVw(T7@Jw4@AF*]!ky!fv>O/7at?O4R,SvA63i7^Gw|Ӷ_wK#!L=o:T|}A<_d[m6^T)]ȋrt"VWΗb6;Ycy,Gg5uF +w-&PNN~ϧ U^R MQ B6q,UA0أ9:{֥;ܽh_ꖙ1EinswN?^}!ed_D ڗ&H{Jd! ߬x5_Aly?oWAOŶ.if]y;Ǐ5n+X, /(G#5;VjV6VSO哶\픯|}mUCWļ_'~ |EQ ϝ,K~50 »*{1۹Kјl@@k9in$?HVZ=/t\ dfٺC<뵓:/ Dⲩz.%e4:]%qsŖM-K*f\O|zI1-Sb|RFu,:P4l>FU>ƽaB]Qdz{9o>%:S?|7 +QLgmjg2Q1xomg"O+m$cM!5z5 FFY z9j/ +gP "2rװ9>DZ3nCE{#Ωw+[m4uwtQ5=ra2^ξSV>|VhW<}P Їu(U@`W^:>8AN652V!R'L*mb෗;IzޒTMT + [_nr:sK4/maCHۥS+/ր +ZyؾN&CVNc[~ul/q7\̕|QaTxg̏IԸ>_0ٶ! ))Iio%yp`\ZZw.*m B5~֊jTa+}0KP^7^Ѓ7хΦWv ꣼:=+g(Fq$,VsC( 5x׋׹̬Q/4@4Nfn3nBXu2gjբao8=OPYD3#JKեwDRtSzf9YflךusW/Wd MjCTdKq\.{MmG16e&A˖n{.vfvi0^'7, ז#D>wn47듡~2ϚR-O +*r[-?s+(i^[ӯ`bm->Mw~u_\_49_ +͍=&ֽٙ\X{:E%xqmI}o +1rryuFTy*[ɵitL+-b:?>g8>*FJ2.%QY3MͦPL¹X]X1Z|pKf6ZiιNX.Y)ɓ)u^yU[om~h#[i\=9|lVi4Sn26>SE_w_.oӐwW%U$zf~mJq"/:el~x~hC92{.AaQSL "|v/JռffUkVVr/|jyU^0`BY-/}0)m ^wL0taD?M eZ7&X7NR{V|PV2󆫾 + +!|'iYr:a3=:>jEm{EIhyCr3uԌR$Eo$ۨ;pRjY>fZUV,7*\e.a*]|kX"+uif}>9KԸ8~FŊCWyĮKܯpT%:xGJ~tlh~z'ZU`3孮,$ILfa +T?a%scj 73YϞA0k שdgGGӒfܔ:DQ1VķUO/eFʠ% +e]PcȠjW%-2!0Rzjf6_0r0n\ ci̥T~X}qE(ur6.9^|ψn[tNf?FlI=s: qJ~1Zcp=-Za00Džʇ_+-ȴQsag YxXc+%sAzcJu:R +3Wr6ϛe¨""ɵDF;Ce00Ͳq!LktjS(Ģi"c1vcVJ: q'/;%#J>jq'q W$ML> BƧPA4Aި Nu!d6}t ~ܾۖ  p!`(H mo_ ͙,KU;mPB?Z`Y +.@Pi44<r>.#<3-%@Bȷ-F 8taMo4<1_42c2lsolB|o|=G8Pk [4@N(m,lK=B8OhWh C *WW3 ~of~w-7a;9%52-X;N-vP8lP}wc@@OHz{5h6<$5ߵqsf2T΄ݞ{py\'_~!ӴpD<J@ԟ + +dp|\L-{&Z+7I׶_p}y|78qɀޫK\xk!, +U lw5Jۆ2wG%Gp7%x}{uZyW>Iƈeٴ1͑W,7/pr=3!uP¨&Mhhޏ +/8|y*@%( Z7tIVi=dޯ]f5gJkwօY^y}.Ιtw{_Ic11z gfwt厧OG>b5{͙0^mZ8 0D ^2HG +M/{/%&wot~^;uқI^#Yku{=O—; WA7:wT)m?R d+Vg{Fϩqͱ;`/|BAPaZdrk:{چ#9%^GDFaK' ]cRȞ>^GOZsW PTݗk&Kv~#V(qBdhFC:` GP])]iCm"ȸ1e==f[qp6k&[)S"KNx?|DKx1{=˹_u$nVԜy쳖, tVU `߳ ULeAf[^# Ρҗi!.MVb^lڛ[Y&ac.<+ mv(}Ov ab:5էca1]PO\/>5$4e-hBݴǚtBUWʾ0zo{n@q0*ɔ˳]ekɜUgc^2\#JwfMvA:҆2˷ %88Y cz(LWsڼZwqm'5\~}+{PE:;"in7Rf0_fb%@LO__dI>YktFqOiC.==|84y%8*O;!'w;ti3B1Wx)o%$Z;WxެV"O5*ߩMFdo0[cuJ#+k(_. Nb8l'a @*-tc]H=[> #t;* 9%#g94ϾI`p28NS2 AFS9jJm(1?L2b[a + yyu!#ge7_'>*?Sg,.Hɶt5SOG/6&ē6-jAߍwIn'Kp (m!eVTvJT2SNT"B{ {  J=PC6!!|nGk=֞+TB=X) ѻ;rmZRP;qyG3sJFTYN xS#78$ֿ ̪?Y>0Ub!/X ʅMP_YQrg.5)W.=se9wA[I\CvTkEW;gq\?>¾MLH,ܮѿlpvsv{ڹݛI{G@dA0.?ա1yH`csZ7^K<3t\F=k&wi'&e +c +/G}Y$gۅEghA{/o /s8]9d4ـkU|G`EH\>X,5^;2b7d#& ehcʕ\Ů=;bo$TDkQԸ@ud) y1M{Tn<.=d{]gRsAy39ɚv&Ǡ3Fc9a[|WIXOC7A|/Xl' +략xDّ#L0OYiFj (^؜pwagRΕ|Wzm7G ===2ezx,omWxa8hqΟfMgB vr*</>iQ'Mo{` /0}M"fR):C(>&bq ӹC'kfO{͕rw[9I ÷kmc>\DvJr +ڳ"陹\#ASs؂cG4'M2[*:sci<(Ot\->7NSRPdCbcn 53%"X,[aGkRcytf&?KX\Ωb0ϒ-%X0)hl.ltCP#wWѲXעdU|zZkջև{/ڇSχjb;~vI=L30L?OYuIO5GX0yHhTxZiiګ8ܲQz-~jf7W>W^uoe*`zoW֘wa2'_X7c!5yFri>զ+N#S j>stream +:x՛^+:_+)ʖEeƛAWDtQ;Khl%j[uids+d&魹)E +2=8mfQkuzT6#^6=1&"'^%Q5Xr/ #pZkh&ӹ1%=;D:))&Ѧ9̄D٠xobYt0C!VVE3gUf2RYk \o<\ODxMS#Հ8,MFN|f-b۔ %  5) +SWT + YV/Y]S3dáŒ&@9um/ F^Ύ +i$x?_KyH}\4oChEʼ>0US87|S0t?| +8mi*@5ؖ"AIx[%Dև)3ao|G!n;mJDg23!/@+P 4W/R@UNKv:v$X}K)#ڦG2O˚{nm:8bˬҾ`*{}cr1X(.ڬ –pCWX&j$Q7M +竀ț]@7 p[\Ĩvx~~-^ΠeQ`qmws*_O[I q3ڽT Y\Om>{C;K Dvl@\n#a2hYf:'l>^G)bSKGa5EC(oXS  =-oir: c!K3dY}IN@5 E" c9v/6SQ}kL;~Чpn3XHd_u G?Wvyൻbs 4%u-C;~jRИ } %$2>&[3rĞ?xoӜx%]VۦP~dz:K-OXF@txբsu-92FUǮbl˚ +/|CLTǾ\*wpN)yjI%fM#.㍲Y갴ӻVÙk3<ՠ(w2\)]{6RS{[+m!4`\iLHjq,#&_~5 +Udӈ+/}K߂{ゅhYJng=^ʴ X,v.ۣ+QFcdv9lv$F<L8׌DWF'>S`Sl3辦TL7'"Mr8^&0@$/SJf\)9E9zVKdjbh|n]m\W4y <,gǨ9[743HقwrҊхQ$OlbVXeeM/oO7S9{>L!\loG_agWX&sabg۾FsfY٥ogѕ)/ޯcD*%EmMˀZF7=5j[ԇm2y1);+@~ +y_;+o!LXeQ'[O Z/I)邞9u<]6KZ=r$wktsNBئ.mF1 x'ab#7Oisb2)P=a(9{HZhT#nZ-Hc2?Q{ 6j{7ӛ;!\zyV=9 b 5uiLڸgڭ16֐mOt5), + N)?yN0*7%Pȹ,TU0jR%$LRC3 qμn:Y/uk0)- w֠m7ԳUjIv;Fc8D !\Z,0(ֈ޳|σFyf}3)+t ztHMJԭŨh;)^,* +iu4 _Tz8hڙ5G+V3Q^?7_wBS;xu +D46U*1626qCp$ rٯ/^s\t"˴N5m91RWOP.oZPytPEGt`nJk'w6sdE1#PQ:3 c>G2Q.v5WLnO%:j 7g׳V|~<({Ǔqh0Tg9\N^'4ļ>k tczs-+wܷNQ}m^<<ȴ \jǍZSmrMg! +mx˅~Ε`=dwnˋ9ב,}Խ0JY[{)gGyvGrdKȔ$*eyl+* lXvy-=?fܖn`+ȃckclA׳rGKl\)r) OD/("7YD3Agul G*󝷆X#LgTM5hZpعߊbTv˲kLIa ڕe l"k^ft* +^Pr4Wߌ"^Cbq _,fFא5Uy is&A#.j*WKD $vo5,EM0Բ0GNɢ~m9Ah>4CWmhh#i{xnb8  mǫ;%B4svQ +i{rHEPn. ͼLpZAseQ fRD>V;wXhq:<Խqztၵf8N"8q8Yt8qBfq2̽Cga +H`o0;ɸDK?ozMj\Bc@-owyb5X5 N.N6بo9qu*Ypw8d|՞)ifi{Ӳ Micuًn2^,g%B"RxnڡaU;Â:>yNM ̍0O|wڍz di@ $P&P޼%PͩlZAm֌&s=z_x :в͎?8\;>4H}auD8q߰A- ?\0.%fn <>Û>N4:m" C"?GU>%S;?NэvOηrpqacj UZQCHvbw4{޼{Z@#r}0=Z;d +;sTk [&?$ +ӎ#H3#X=W~o/"ɞMt8uctT;lY@ewG'sXgid'(ہ)9-ofŷ$CoAp "}E q Vʯ[+(yq+q{F[w?,ƿ93a ]{h׶~SMeګY -DM)ձhL/:igU!\0ɎD 8B 簨Xh D|g2⨧B?lVdmPnickwyʰEky f6I&/~gB S*aAE9M?@OG}Uq;s-w^+hv>n(2rRۋ KJbɂe8j_ܽ|׋K*tK7QVL"Anqb +r2vC%LBO?2'ʵ}^]aH-sj9 {R TZn;YH&iuȒQyx2-ez[^ fgs_2sΟLҥ! ޼+=hӪrKsKƮ5mGhD;fM/'J}#NynD4VKIe{[qWL+FDXGX1Rz}V9wBv?==1Ӗ +{Zj Bv(niHº%}ZӉ)sڞ4ʋC5~:ҵD{CΤӘ ;stFxsof49'c-!yߌ|:&MBKQ"WmnUBrK2}Ի󙶑$iREYmALofه*GeЃ߱ +#AP|I{.:x֝Xڳdg̓`-*;prBYjQwiOFVgyRʿNQV-vL9EkLȜs%.@]4 ,/~ueBv?5h-@9LꟅy[Tŀt%gI$r[)ӑ6,WNPC&0&Us=y(KDtח Fj:bvgl 轚=gj\34ymn j/ !fh2S:\]IU ۣv] QMƽy/k/bfa>6NZNuͭ,ɻ#WUJ*K-iO͛׻PT gɱP޵MJwZ`pfs4}O>$u8 TS*,T<̅PT))*zS АJ$\۬(RvXofi뵹Z +nUeBS%pUGc~"#$ؙ7/t {&]̏WR,Ν5z@dAIH7q!V_?<s8qjp[h~[RQAsKm5bdφ9r fn7H`YRmtP\L۾ldFVmZ52˜1YbzADr>;p'컯 );x- pwv e:i9T(2eo3ڛYnNO~^Mw"8Nw0oY落3%?x#HWYC7찷;уrKq٥KUatTMt7/.s.gk_\F]p{2uS|.;h:ːt:=h*]}\+{*vGա}_p{tݴ  A,hiotvJh[hRJU<">O'TGW*G yY]w~A׬y |2.:yĵK2n 5ܧ9On6XvnWFVw{mI7q6^,c&uȫZdX*hjmWb֚;hRmlL[ _>fU~\V\ɽVq28 csx{t&ʨU22/gİB.[^^yt4&65S˶T'٤MNIrW^`y/gʳ^JUA)ϩ(XQŦo +Oru*<[⩰:0jXS +Z}ؒa'dD ,uu3\1EF|?q|c(]"}yBsiwqTm$7L\qt !CC u u_,F1'5?1P+8Z~R.5D)wsa.#Vؾ/cؾ@GӺE#'!!'7;J4/x1p̲8jN^A߼AQ|T\?rۚ)oj~!P؏~$kY'U-.>O'ð-N0"쇍>dGdVaͧDD*. !-@$KAD" ih}b|Aa4~ᥣM204u2 |'eKL3+8.ΛC[if/M 9o5&ڶwzS V pYbɲ8 zd=1qn޽8V4`6F X^gq,66XBi+؀+&N~(]]>Q ((JL AߤA 8ςF)TWL[v4N/S8:}cEXSK{g qE͎:$34<$To>J0D le~4ˏq{4KUYLjO٩uQ"}wnrEls-V12[.gI'?*G}OِcG톱r]ݝy>ܝkn旃=v6"iL.O2dgѢгxy7yxGO5z}uzg0?vָ] +3NmgTvC쪽jm^)X7zXʹ\wJ2x $[>^l~FAYeV(9K@^wL/Dژofmf\v/n'f=Dc+u0k-Zfzl nmu oU?nZ_\"z.v*ܷB/t#i}}s hNQݻ)Vt'qV5 ݍS9skc8=P_Q0oAk'T1LyBoR﫷^\VZ881f7*<QyvNOO]y7=JA.?1ws|rnYd\,*9ӧKaN֪v3JVVV/ɩy~'N.N ڄ/?$dx<Z4obeyiyOƮ$Sҷz[}5܆uժ^qWAm.j_Qt%~Ei2 &G&S$ ݩ+U""t$!|Iޚ3ux=ݭm'J`Nf]SQՑÏr/e[J$dT̑^W &R4V6뗄6Ng˱g= >}9~9|q8H [f{0ExCp 954lj˂2V~?N̦^'BnjPu=t9 ]%l/jef zh֭ph!YIzYږ\04 AYj7}}`}s*T_\//?$T?L>qlךgU#IԎ^uk{(: ++EuErҭzr8fکXMnsN1?ZdfS9kzkkҵCT3ҩ ּYOuR?{ OJ +ќtc62?ֶ4_ngf-n9r٢tյlߎG.{ӧ找u>crͼZC˷b֖`2냹xQ𒛇q{r(.|dT#Lh JNڅ6?VGNB ej5:LM}͠v}C2f~;K/ZdU4|l̀:##SN{;DqAH'-IƮHH'̂p,w~߇Gsg&;Um܆`5BE-pڛ% >o%GkZ.s֯υ7Q6ug;nC,s|[~H܈ቋ J{;(̀$i _|Cu3u|tmH +蜛9H#]SrIXQ>{QbI.<9(Q;4\xw'wdOjfƛ+m{wTfna& J!#O9|\fC0um!Oz9J!z@xs,>(lP jD0vJ÷ ~&GzӒ4S-GXjI;]:6)=IDŽ^z6y ZJ Na3[E݉/PB#;O:StHjD[4Cp +h_~S݊,)e&sź妋K3xOM8Q|Jy8<ްifA=j[\f6N9xlbX7k`fwm6։a^V4ڼ$#yqy9}xdT54R".]JA:#ׇ> ?de= eKVWpuRab޳CwwES^mᥭ7oSk,h#g=tRe]gf]9z]vf$ne-/FBF0yq0 Z ~jXzE[p^o{+gErZ7+ƻ}ާkPT7wRyJFjƝi]Vv 69nF64uڃ(-qiՁیDpIe@a!wum˕>ܸfP#Ms]:a`BRnŵ1/ޡ4 JwR:u^\<>z-6RXsF'y ctCUڞiڳ-KI^R2*U--އ^(b:f +ȅS =a8Vf+Os zssjAjxWW;x~l̿'h_ +V0Fڕ;XQq \C6]lN?u(=47hca=BŌLCaL_), )AwYa>"7 +=dMbkupYQɺ:nVкWP}J݊̓LNGJ߷Lc=n.uhBkLAJAP_XzB} 0&C}/sCSiC[.|u"M25L,_?!R8f1z~}A ,: S‰>;`B_!@Dy@Dn,F= 7B "f.DlQ"BK{z! >BNHUXpm{5S +kJաi*/?!8A:=]memm묾=ODF5H?i S8ٓZuCs,uh<>9.mc7 +z`^ܺqLwiZf>\^+9H~6O5=du@=@,@vozpne1 +3am36r0&"ڔm46oQFb]}!N .NofpKM8V Z|ckhtZ\5'hR6F3Z|m~g{pz=|rr K F?8]ԶuHX.ZPz<㟳5|~Y%N ũTAo%w\1,lTXڜ`5x)qyKk/EjCߐe_ہ"9үc}<{8wtc\4h T* B76 8568qeѣWǡyg;NDs4[TÑݶiߐv u\u>0tRt >alY=ݴ!ͨ"Th` ( ﹇rwLAp~|jEͼ zIQrr)Nw??Ֆot[qvhLd_dw2Y[`ipK5[kfEn2c DȬ"IqJ'.[p^Daa.bN8XEsYo|;~wZ,AQzߊҝ)gyY6i`@w#j/j] C_YZmH/QSaWswZGbwRdwsW6nF3iiAǤ!jLNBLaauەzw֯JpV!S#UK=5WA~1&%=1CWݺǎ [ZYfe9T/I?WCkOQ<竦 YidHq9xlwz[Ş6 Z:͋ʗ4k/L?^5SlN*f?OϠhe=YfXХV9`^ݿ^+ܺK+cKWd Z}C΋2ؼJ5Eɤ£f%,W_/H2ZcTz=wRSv/8{,xyԠ" +Jdi=xO^(:EnAZI Uo6:>ZLS#-9:ei1,!ՌeeEi›qR[|s6-&~n"WfwPRw{r#dy |?K"rx pjڶ8Y&3Yyeڈ2G' X>`_~$l?.hli:߽OǢn%eP[$Q^Qn5Xev,Ž8*'e#6+6lA5l?\j`\/Ug]o\0٦/ՄOYA?"}i?Z6ؘcb)Zj$p-aDktuING-YP4= [w-Zbj#%qd8kBܙEqG8o8^]—OrvÅYzҲ>\*O9 ˒tZ}&D~[t4WUl < +2#&2%S[;Q^)9NEp2Cƹ-%жv&X]˫OCrnżTb1faI8ğܙ٢KlʩsO7ExB}ڝE<;}O"ܿ{r!ҕ2D*p4 o3 7?ops`t^ خY\zeo׹]GL]lȰܹ-2[UAsܧXQ?IX+jz8(>BzP*Ӵ _ܝd:A?z!U +ᖋ mɺ͈L2u]\xDߝt6 6<~(v[*]T\qNHao ĥ3ϝ7 7%wa<]Ӫσ [,sn,kçޅ +ay'~1fѢ1y2` fH4Be'c89.nˀ7!!ڣ ~j?H~zk{ef[O|ux6LevN ++~cQVF̋,&~\őnIߥc{G٥O4t2}nZ$AWҢpe+§Fnrdu`bul;Y@{;vOv!U$q]ꛠde\$}SƑ!mK@A`[GNwMx5*̱A2F` xRF+~Pfo*Ƕ:f'~,$Ӽ캵f 3G6\h,F^qFC2ƼC}`MQ L֏Ewf)˳얌 2gN<]t̲nNãZbzn^exI]1Z+>ΫZiYM9[5;I,71_͍ӧkWSuQhnS]I{_Q~#/F5*Jj˒|8Q#JCN5xu\Ă[#sU.jAL\u͜ON~?fMl8* Bj[0SC\$(rP$zM1!%E1|njTi KJm"]}7|ꔋ~,,uER Q4<'4e6g%#djz2 ˹7 =|)e@@X9BZ:p'haվsٴތUGDojU$m.dP SIH]&Fi߿L*s>1 :ԽP W˕&ԜA=zB=w\z~z x/g`_G$!S(M&L!B"vmfTT{dݢ4=3vˀ-0>:@ +S +'[Ze §'V偅΁pB!|w!|] X_ilVkvvx=>R9Tb K/9d>ԗ;x |1؀*ADBq> #ݡA]-h{B2Sqf~߃GϦ8Sr8IAŇ66+R:g#*?q:[Ol"hCnʿGΒ=@QDۜ0cfޣ2g朏cRg5-1U&l m`=('y0i|<,Y_|ʴ-9Nv1N0CbD eB/`@|ϯ8Jbgc+Ftފ6(ʈN{((fUoh]'ý"=ɜ}"r +˱[&Sӹ,hA)gKbD#ܾPtxJxj׆ݜۨ(^XA.c9l?Wu5NK=>#>vk!\glw~(_4I|>278%;!D_c;ݸ8r|ZO2éq3=U;(dv^Qtv%VE}i1oCk 5`mE(hG5:|f6sU yy !>K*[+T=5[S_vSrڛ'!7M{4zr57Nac^զe +'h'Oi dRٻ 7.Sp<יD/x[x1r8=%z1S˿WWg1L3 +]j<.!#]l 堔>V#5hk'kvYk?l炪ʶ &Tr"IADEŀb/:k}lª9GOQ#{i\ef+y4=k6SGu4gu+Ӹ=Dؚ9#k3H@@@0ޓV[m-G4P'|0I>_~Mv\Π|=3a-[57;OrhL oꏍ1_mg+jEhy47X6(}ݑuZd^vJB Ds|tb|4n tIo;i1mCG{ l#b"z=F]\}{\AB+ Btaȼ^M-v.]\4;x=/woJ}~k6y5*o)!FJH_\s!dZV|Y+4WkJM;wF%UMS?B٩TR<52//NMV\@ V>`ƅ{bko5M1;#ULz.zHPE|K5c~u#s$W;^U5,+ERT֔J*hW |@np-V +ˍ& R3tX#6-uRV͵=l̚=swۧ8d(j]٭ޏ8Pe:yr-ϪrQC^ +PC*WsKɼ9_[ks1[7l=VA +طf\}oOJ:]5j1UV_W3nOƓ<{w:>ˋ +t"qk 4'4+"P_lWkH?9> +}xkme=>Vnd}t+ +TGJ-.a=Bg"=+b,n'< .?߃#VwZ}2ڰ(YyP 0yt4&,4h#3%Z)$9njh?RS[UWʠ˓5K1Pճג-mJe͞"|WZ,ݛCps:I2j1z|#7'~se'v#$vm'K˿,ycljxu^Ǜ䔩Odbw j([3N´Évľ"DZ)D[AnOA $`۬/z^6r<fK |V5 dSldHd ѰE-4w5[ET rvp(WMi73NJ[ N +{h N8!@Eyzl l }\/|*<_L/b# măYBo^jX3,ǽүDJ+zњ[a 3zbp=M1:_fߜ0@0.ם/1hvW-uq&^2L\l xD!q3f6Y|96)-`Q`}KK==vv%v)^ X}/<ztUY\p9ƺc~ڗy^츏w`>]Cz86\1_ܦy |~`@zEw?%h YՌ?"Ev/G~((E$j.R\>Ϳ[j `K_x_BGQLDP)6^~~,C!ŌJUa+Ź([ާ"mFc\8ӊܑҾ)ax3-79|?iK#yb6ss|zW~upa_:_IBh=Qy(˻Y +iq"|[]Wt}uE{yn[ Cε:9D/wC_H^LN^`%Ϟ!%IM;KZ1.)CYX27~}ʗ-P`H9~@]c/]niNɭҫhm`AMw_qg:9+yѱv¥&+ V1to\ 2;{/ps˂CXf![MC%zkTKԟۥ -0 C,[` KiaK%*% 7i?IcN~|@ܿN1#.ye+̣j¥Sbk+B{yYIc˹ؓ; vSa,aԖy=r;pq{=Gj=0P\3u4T=j0ʠnXN{#xe8Xk/ғZ;_}3tDo1l;]qd29tܸYW0MpZ!d_9/p`7OUo^tևfX%KUһ eHT>?}m鷘u--nZ3ѽi2!]uO6C__мnı. +aj6gvݴɹ-oD~+WZp=p;5튚s7zuH cf|p*Vb춳$NQڎu|4 ~'ֹ;mA(3ms]&js:%Ŝ㝨Ff z6ܥ r]Ѭm}/Gȫ;c+#f'> z06þ=L<ĬKS;-x&[YL+6W,a~Crt8'ΡHg$S$ٺ R`AX#͒Z !sbD3,_~?~֭ {VG Vv\va]Z˺v>hyuCu@Wr5g*aBUF78KGA/O Ņ3ȫ<9 Cx޹7|y-ݘfkf1}HqLvN.^ʻ 'kD@qV"а`KP"_?x#>,$j컭M:FՃa[fN1*)2@Y }δWzF.>W4ط&l+xvې7 ~4י;:[ljv>7j 5Ux@kymT1SX^t/P37a^08;#ve^)O^h/{^,mY9JFU gǜ %A-Uz+7UΛxU2(%ې+}Md膤ؼ/XXc.Úe}6mne5pc^<_/\Ҟ4ͽ +Ivn`NZ:9~qS(^5cI\ST<2C  )?[XnĕكSL)bWz#x9 _0*ag._[ZܖVCef`4jF{;ԎR#^F<\.*U3* ,k^ZoӑL$h|/{iV}05 S;+ vXp.$l׽_X_:3owXՃWjQN\:6TXfA5}n=҉c3j('s\RPej}9YU0~%6Ь<6gMU$[:cƛmg+zAwu5E˴G˹g~.-QBCtq^ 9Ʒ[>n*ot+]cF! uHzL^BËHW?0]=/U}~DG3F DCF4/f.Pk jo,'-3n3񰛮/lht(= + z'>2!@3D+%ѵ? ȼh0I ScGɒ%r'eZgίcĒQIwf;-Sz⧬ >2)?Sӵ;VR 0t]R>8x89( ]"WRo|_8I_L7] +MmaQ\}e;["ToLU{j?0.eE>Ut.1 +;^f'NlVĮobTdYγkg d%9Ak_壑3y",Y(Ij:YgOҠj:\rrh\6(w4d."X2Xvff{TCH>Xz8d̤t @ +@ml  @h拎64JjQ< :7kT3vt9-;dC I*.,'PaSE P vP/ й- yJ00tѼ4ʧy%@h@#%¯PdKt֍;8'ƆxoX*vnLpV3$f-|rV +tjs5ǥ&M" #'\}oZ_4YM'\)?7]ƭ6+st<}dZN-3k4uŧ6 +:g`= 7&8=3{}jzr ^ Ye Z,| +So)zW}*n$YFYg|A0픞 6or.4?p`G=k[/?wWs_|^@@/e@; + "b1x D}!7~|ZG> }lj-`{X]e[mjiKQ?zW_/Wmyb +mbbw$fHr}$ QnDL%3J~?%{'WڦQ~I痉Rʮ7?Z5IG~/.O*uocY7Ə e`rO;mNћq 섍5_\|է }"\ڼԯ^wo8'`Ю2wmkI9nyauh/[nֻT|.<7R蹏{ŒxH{+pn/<S'2[K)Kn<ڠ4\.[f<-t&F[Fō=śxcykӮtwk$\"oꀶ\pBuT]KG_$/0($$S*N#u^v>%t'jr|ׅx v|xޠ}f֯AC+b~/;kyqkwyH՛XgS̐ɮ8kYjjO 5+Sg%|\Os,C;5VBU zKzyn.z3 ~q\o=d3Ӟt.hw[X ッaC1bqnxFa/˶_Ǯv7]y:y:v;٭% >#`gӮNOqC;d-ZL_#dGߍY:] |gp8f1ܴ?[=~%={E dE.?kg`9OVsCCk;1-=o_a/>c MNsדɾv]đ`XxP>~8w=ھ>kvP3mbҐ1d;wo_6 ,L?{ZTdٓ2.<lE8oNJsnƣNGW?%,-,4;/o#wEI/^cVtk;HcTW)l^~LG] .hKcO˙՚hfE{̢#O]s,D܆Q?[Fcu`<nj `!q3[fA0ȉz0˚.TUZt\2iӪw9/._^. dfqBj7Tq8u@u=؃*W^KVXJa_A ~f^ 웨XJNݒ^pUiO Ab.ҌNEVLksM&9=V|=W"~7~ণUG;gvNHsQMePh m$X2-D)\7\5ť~;.u^vP[ k(Te4=4}}>.RpRR]h)2ZtJqU8&|tQ{8OQo +]+䖒뺁rPo0ξW燙=,ROM/',(LjgdP2,xDk#ҧ +Y5lw5fKgv2T! +@ +<#</9>Q y^`W]\(Ŧ+ROb˪VGcS7⥱8?NF< eךc (ݐ~jw[>FpY(ɓ{-WCp'$zrfŮ<ݔ&4[ʐX,0Vs99Hh_ڛFp5E1Lpur5E~jɃ GוddD-qiXK&Erm|(ZA\2lCJcQ=ߵ3odtf#c>3i9S%kh{i,X0Uupʛ +e9:Li!d`]\&\ ڭ`.l.P"VRL*lt5[Mݚ%[@3N7'yӬXz^LC5b=w_0_r `inE)bvXSC6*s3WCGoy#׾/|s] $C|ճq :ZU\jDƫ=Oac($PTu}"4l9x'2bZ ToIԸlbodx`aʄ]0<2_3ɑ90}1*5.\iP"@{똦9U^jb*Ppy +r7$~lk#<E,[;.?~񾰃t-qپ)sd: ·DGt57ih)Ԭڌh(4x?PhH-#Z\9JjCnoʇ3RQTEZˢب=aw* O+-<[#ä1pQ(4\+ٔef" +&!ECEqw bG-i_2r8rۋ~k0WT2$(v6܈gΊEe^j~(nCGˉ֬lB *C#QbSCg{>N-v59;-)fS~W:r4qۓݬk*.-{ +Db2BȀ虔ߴUdg$n{!\qG'2㦊1ckraEC+CEޕCߔC.' +b syn+yn3KuSðQT$<=1fl拔줁*GC~2oac]:1涜U׶"[^NRtzNP1hAV!E͚~kI9|㙱]-X*: LDvyG^.ED4K5Ѹ:nF9飹1+.[ƶhKG䳅Mх +r5Eyv;mgir'oqy|0q/X1p^:[3Ɂ2TOG{!`\V*)!=?R4< Ny4~\5s ^eopCWV%$9S +55zEix MXi`h>rvB'S)]_ sbф!4r4,di^i, أ ЌY#!KLEw ]HM'Ue3WaNѹ*#bw@dU-`<@wWJѷ %f >ĉH==b=d"7 ) sǂ-a\:CYg5\/}C.V*s.׃1 +Q!͏r9>6< +\Hy +@])@))E (5oh j Pz0(S,^_D1o؎Y:'/5p@:.O%Qtm=ǯW2%ᗞFp+U +9N1ZʀJ6@UEW)s'`ۖ-LDD8*M_* ?w$Y?u>yfk!IV4(6c ǃC GOfl96Y6RpS׹XËv}\\\\lnΡ>>u .Oۺ~}Q+gٽ!O=9FoG-gۄWH@ @! 3 @̗\@, @,E@DKu..RJ=Q~`j=* _ h'moW _-ң)=@CȾ) w% HO&t蟟K90uto)]ˁAQLlD'lT9~ߌ3xvي}qޛPW|[KU.Zկ`Jv$8ܧM6,K|kC\˞lٽxq/|_s;ތjtVA G,;twȠb;ZV7+4'ZHdu%÷}Z@y\W7Tՙ'z_;aWkCj@= eU+m,6,mXN7f2_tP/_gB:>ތm3wRv&*wzӹ ue8.;xy/ost}c|>δAM&GZЈb/IeG$~7gp.%\5sO7|޿u;'.\;7NʑNMEm xJݵ:L0TV|*cb']G oaaL +5{X rB%t[t_gkӔOZ?\pk|+r3i~K&Pu*h o-r&]>x@yT~ zlzsx9>(qP:.ϝ9=wB_Q7| +s6ՄwubUS# ɶd~:ޡ:|9@ap&~vY{j2-?m`j_/4~k/Z:"! v!g~'eg& 4䣠۽d uzWm&j9 0 ];ǂlZNKa$pߌڻ/ 7-VN%n~Ɓc׿QW_ܖ-~a~b*-]t{S ׏2׳+ݯˍN;vp"?uݜ[kxS=d5bY[B^Z֨jQ}'hz5+Kq9nln+yfz uN޾Rf4o]ŭ[ZIUc` kyջ扵ba=?-YZ$*ͪ3c2r417m[=n.1gLbulE[:P_iMIٛ97iI_m7Nÿ8 u6_mzY#L\)&rD#dž۽|&qmw5Zj$[2;2A<w~+tQw[9] UnFzA^^!(SLJHb%̷f0xקep5 +wy|h(xKq] gGXޝ5Pxm2muщ%z +N#[U^m%HZNjCV-C+MwR3f},ji&HFcZɽ礝b:l֨.f*ÏB=]jXVbN4r>^Uʬ7_g @!I[dLRvBOEuy-E-mh&X,UO,5le-&}kd?.aIXqPak|WxQK[wCU`ə[E6OdIj}Iݱ(_'4Ʉ߽ߜTJ"xn3`nГQa)Qmr|($$6#6m=9ShQH\ܩP{yJpr΅{" .%zN XMJ2)yof~u/dyɮ{NʼnbkazpWV8MܖJ$WzS[RFOajFQƂ!/D{0`^nqxlhI5Urr)b%˼:&@A8!:0ppPx.K%RzLi?%UfZth +|WV9VwZ~Xy7yLyvLm{PzǙƦ5?kjFs*HRjt[YMNhva݊L(([(#R~7U8eus(_e/."@q>"4kEʈ g=oH_W!nHS])c<XF]﹭*u^AQ @EQ9?\[m?6)*FeDž' zLX G!Iah<=2:! >%hSN2C[6ʃĀBwPgyB +:v +~ +t +E|uk6fFp:tU(fSJ)O{xk|COuTFמIHZP `%^ P|``s6:2!lj/Cv_4 W':񯗚ݻp"}k*ZQo2# MuCXKY?FJ0x SU*tm8؀LM`"]N~ 3\8gSWNE]N (h1 B]rW+ +*=E[>m GOe3O~U3S\Nzl_r *Bn8pp'| u +\s2&K2(<ïIX% 28v+@>uS폈e&Jz[yy*;"Z1W/@+X}Vų8_k[‰Ofl!˱| JsۚlX#6?[XXw~:)_riQ.@VN +5 Ⱦ=qX ƖZgQy1G]>ibXAM,5w7(IJ 弑v[@n6g&A3Mo'a'xI ʫ#D2{CwE+~Sboyd.ߔ/֯P+~/7 &#90JUUooH3]g\vaxYr\39x"'jH'zµxmoWd~P"W_%k:>'7=_Q7Td\^SǓGn%Gp-Ń0wF6f- :sk,_]hZ/~ѿuI-6؛+ڴJ g5N{5<3iWVr +ۭy63>w]Wj+r|.-Ny~6{L9ϓ#6D4 7R d\5yR5y\TMA XZZmtQe.n,,ݩ~ I,FX㙺z;9f|fDT2r@\9v] /:6*uYNw1_mt#\\͏wkBg87^CrcvLh_jC\TH0w ^0i}x^\\#=dFqt/ 'sܰ;Zz4t|K2Ug5F ڗ7/0[\~$}hD{!zHň:]l7; 2{۵OT@/Ş/GLH:^~5/Yٛz%Ι4sqxx+8}(=$ZtZஃVSuțw]jup zyޓJ.z5pegAkzl3қ0yxoYkZz+~Զ@^4Ә?j#e+ں׉vZk>KnjWUyλ3 9^<:cm7#pNw3B7ܗ=ӓڂ,^cѡǍe}['NW(Ur͊O w\1-Xīe zedHhw(e< R):GUS57ۅ3ҜxzJ FP8rfWl^y</h;]59DVKvYI 1d6a&0Rk4>]d๶j]KhTY2=,zoYQqW}s@ t(9/U@xkEl53(H>.gΪTQRD7kz` st zc7.H}ftڲیDkoj2pv[=t(7󏈨Syڹ`dfQsKۣ2h EA/UvJ)구{ҵ04[sjR;|Sw![:9p꼍?iifMɣ8k ާd&KTjGID֯έ=bԅzR]pC|HsVO6 w2+f*$3%UfZ4YX"[,\@qhNavڸ/[O:YJe#FԂOX pi[C]SW(ýJ ۭ)],I5z1ɷji>O[@d'x~`:>%#`1DPV ynk|V Pe_jiu)H-Xm ]ϾT/+U{ LkcE>3+`-d>rT986 +.TI%[F@F5 ף{υm);oUٌ(ySObU9G\:}) $Zw7BY8?X+W^-LXz9KcuϹQ TAx +n] %#D0Ϗș[u"pFjC*Gn7km +V"3e<]+{d9 ׆ޫеd^ΖƛV/3T!fss^&;ԳI'G"wJ! 0!jh+K{O,=Xza1ɘH;X8!n^mUٰܲjsJqFExZ\O|8W[-.O ^8#L7!{ b$> +SZxʪTbw槜g[8"6bh!+;1I5K#黌K=0+o-DžK.;z- G}q8ƣ"?ݵrk|Σ[2z^l ^h}[ +`sh&g? r +rf@=ҽD +N(U:R:7Z4Lr_bVVb7Y+Su묉ϱ8JܲngYh)Wr \$HzU ~ʋCX- tzO13<鴮Si'(-'g?>7ˇoG)pp%-jG.m8<.rή===!`k p`}K ث-H/;7VaSN{ZL5)g4[ _Ii`tIo0<Ꮜ*,CV \'#; Bn@2 z X7%?yY8h8K.kjgܻOцϛ!GEQqSb8xzH) -] w $Cf db/KS{Trv hW>*Yt5J4۔gzߥ~[k9_ұ(\Hb+PѧBU*U1ʬT%7~//?n v nϯh]+g|n[`],DCq{Sw}Ub"J=Bw\gls @u~]im'Po-ffS#XUfnd:+|(%[/XY7>awګ*9p2ۑͱCw+qGI_{\6^V2ny~Nh>oᴗ˗=>\lW9F~]wٝmz5m9EK#KzUsg-Fo9Pen]u&=DO꼶юqTo]}%\}7:\ܾFRӷOS&&\'pQ</˹A{[zm +T*7qZK\?Zve)"Ð H^}h1{vzkvV袽:4IC^ϧo? +?k[k,5'1PhfR ^_l= xp:8i/߷RYߥ }Yջz'Va=16 ܛ͸fvT=ނ #0FÇ[;e"w6U }V kWzCPU +cˀf\RM =4l3/[Z;P +Hv\qRqF.5;3:tGGaZAj3whsA֓ҫwU, YlLVc\ +o0AmV_oΡZH;&)BTzj`?oGvm<:Md^yq#;lv:Ѿ'߃B;0Z̧YHBlI5Ǟ^fLTzWffR#~NuCV|TR9wER4|LX0xҍWv0or67j;U8Z5ULXpr/z9[)OTlZ4RyҙXhmUOjnx6mYܗ/Ki~MM=e=Pǥ_ī9{}Jtӗ('W9tQya[9pr^#MlNde\V,j0 o*RnэQjƎ^zpbӪ sijgTj_.n}:ިrBcHW<&匤lJyO>G^E<&uc*e6kzm`]f}mYǚfhU8*K^Pb"ϟ\␜ׯN/V7ȔQ}N|oË#‹cUH[ T/~;췕g5ٞ*RF"W<iIzAT]+P3&c #5$FEt '::ᯱkGv`߷F5TcȶBU=tiRYK[}Mcl[le|ٙQT8Rh"<2d9])6#ڗ-`UD7.32#!$[W +X4X%E>|&Wf-#+< g>sou.]!Z\Ij5L@?KcDk>yuR2yilY?SRjL +١F heC9sf~w]U:?8Y (2zS6bN>6 ń X@u` ZKCW6XAУ)' +|})~Gל悼sJr(d`t2|pirsj0x\&mT;Hi|_@<\/5G'*&\ZOc=)-hrk덩< +BTYbGw({fVQ{&fhwZXt V 7 s|Op*2_K-LS= AqJ8ɗeQ-N]HecpH*fI70[©>JJ^f'e1Z#U C@N}@(3قAA>@aP$($m$0-h +RBrG@$_Uk^vJU+βyC(C -*l!\6ɳ(iٝnր{@yN7KP/t-M@+ mh۽e@d?&6 f69JA9h.Xzan{ ꙸK5;Ꮮ~-t` xz> fE*`B i,8 ksfh X~a޼JHC7 c@d/ +IvOS."xw-qW?*ாx_3ݲW;ޒ||r{%x +&%)VF>թ>-zb\g&+k!]itۯUpܯݵOH,@ + ^HXoUTc ձd[@1# +) k-@25[]@z|a8dک^iܶt/t˿Є嶧ށ>dR %tPbvm>vK@E9P3h:]j9?sL/]-M_#%(7(ſAL.s]h~-zd]D7pCW޿Aѯu@M~ZQfPeoH} GR=Fh#e*\=ѣ|owJE}M_|թ 7'~mx=ø3z3WwE[H^z/~j>\ag署w1{oczm$cY-kءV h ,H_*ggm +<(,G; V;(_| {r`^*uj?GEk N^Ym\XՇR^#YSoo`xgM#=BJctl⣍FZGn!#'oj_jGm \{oɨlcb9[mdq2>g1}^IѸc>~#r#7W:X.ꃤ{Pw#Cޫg!)"Z`瓣OǯWCFu?3޽Ykpul(٧h0x0T +CApCƽg2dt6»NnBw6QGIP.Ox I~׫Z? m.>Zm<ɱZ?Rr2?p귤6xӇ񸝜Y^ .v\P<\5[I[do7^oAou'RZ&h4gA6{`SVF[ $[l'>w=%Wyg-hqw4,6iouTw +ƬmgݦWi`U_T*טWk?_8Gқd?6C- qX{um} WMdV tK6![#OCkݡo-wVץQF_~lKIoTg_N.uaX)ގ*4*bUvc>Lǡ]O|[#֘f-eȕx}cO_U~sB*C:-`#jQ\*u4 R65YMjb \:/Xr 㘝m X'῰&WTM} 05upRHX*~bS2hsҔRu0kʏb\7ILVq""u&Ʊc ]墋9=kcN}=ت:d^Tdgzv|2Kr7k#6Xeӕ2RݘXl̺^[*ҥbP+zuQj05wO&5 +!Y*l㋒ G2/'-;p,Ͽt+Ӗ{l9#gn&I.Vb\..qM{\k)M:Y d&nf_qSX#3/*q$0t+A-6'R, E`P#Im)09#xk9OvlL}ʋ,Zs<*zJ&a=OI%OZ_Sͱ:"G+5&S~*ؤc H5uIDiz%R +-V|g=i\oqr8_/FG3 +^CJOV=#.ԉ;wjGlj(Źj;i Qʈs +m$ lҏKsks}c*cuTY5x1RY0Rs1~P*hh,'5̠mkr}`]-EH; m{ +>NEEq7!rH3wVeCh|ʘ~ #ѨJeJSK(K(OzF1 {flgBe$*\ʋ)՝VMl5MWG|wbsW) j=a~=rL,T|6=+mClG +;gy۷ +#{+u@/u!4ӾVeNŽ5'd5P^rG"~C8ɢ_X{ϩ=dք5ᚅ.w_Ʋ4ɘyڮT):J*QD4 AeP(hLq"­3<E$ӹ_ ܰ[z7lVwS/U<ͻ{} +g_=Ȳf8Ts_a L|~wEQ洽oӽPy;Sؚ$Qh"&ONz̥NT + S{ƒ J#6Ph {&ťI߇ eZ5\xO#X;5S;V1U("hPVئ_F׸@В<*g{#:ћ0]u:K gdVovnry{0{-V*f +QHqeu&@L6,nمIƷKIn"~y茽zYR7q۪+S]FˮɄh~suIvdEϮ xY^wX5|-t +-K|pE[9|>D;37̛iG4{K<޼shϡCү1/в˩%si=w =5ć9~`D:X6X ?~NoK5zC- +3s 9m8Ћ +*~36 FVBV.J5ԩUZ(NtFk04?m08rW8r"n>;XjHrXp1J?cp`[xsMtj5,jFdur+f+a2~w-f|Jb 9@& R]V0x#F˴9ٵ^ki魈x7̎ ,ex C:Qɹ"^gz2IƀT-i Ⱦ؂f GS1yWubeh9Bj 14aD(7~ kFt|Ũ +1(t5(OG@;X 2C>Ej/jɶfY@P*ʵB@51[];k:p?FgtW|^]Ђ/=+%kNj_7?E`M 0xL-fq3D?92y&4`f6gqn=*wdxiy"usBp"OC㏀u[Yq_w/sC$`.pÀG19m K.[Y] N5՜ XHI J$Yt/?J p̮2aES;1H!@2{+hQ@< e#Ы$Po\;W1oٗe['؁Mm/Ӥ'mO+?7z*?|Vά@nZ/8 boEbu@ivO ^J?>z}_7ѶIYx*{T(We~P}w3:m/%Fv +g2q~Caʡ_Wtȡe#|ѯh+A7#z(qx*\WL_`;fWLDGe觫탸7!ލW6{"ؔ_^7cZWР!ʡwRBfedPo6t.XwO{G?e ]2+4lfy>GU#ջ.8[Msqg!}WLZp}3s~O˒^Nt_4ؽ+WhyF %=(G7o/mM 'j$.b,cl(u\}IUhC}ѓ o6&k^کL©~cԻ_䆺PjckE3nތ_iZ5I/~[ ũ8-ͼra@gtNv%}}râw'ú*zGae^ QƓ^eNEuӵM!j n88<:{Œ`^/N~"r=FwOv >tƶ?O2[/WyέHHv?vB՗;_vw֠z<%g!/U()=a|UTFˑA*ehK{ʔ, TOɼxp[Tw5 @[ ,mڌ;~cV.Guڦ).}[9UT}+AHj?aH@߳X(X)CYkj ٣e3\B݅Nj=Lqb!Uj>IM`cvߛBo]'s!z4gm[و{!!{/$d]{Ο*L.bo0"l.vm 9*|>?k< zXn2&z?x= Fm|-&NNgmDNѢh+ϣ=q;? ;gz9U~mEs}c|]|}av2,xm0ðχf"oa_9a9lձ)R3WRѨWO? vz;UUfbV~DoIʞW-oӎ=1C+%l 8Њ9as J{Kh$Փ-|q *cua~M򲞺bny_|Q4-D=)G&⢼\5> JV͌Jböڙ h/Pgd>`:0/]0j%n?ۯ}OsfǤE]SiɎҥ鉋 "* /=ss'sbgh.Dt\[h*7X{FԘިohghk& O^I!\}e1j=Yi~=i\iFX=|ԹS?f3uFgU~pg3` t=xmPn g̋ĄG,7ŐìIhNL](/Oq,#&HP@N"W$.(W)-,rcY/KM#}4d:Z݁8F?&ۅ~fF  Xf^ +Db/d]E b0KpKG@4$w!pvofe Hxu.i(9$9Z8;!1NWY@1/NcT o&wɡ<L<w@ `S0f0 0^I6 {,|֧W +O5^I;) ߄u=V.Z2ҟb&ht~7${G/lN00׿ANiVTvphK>S3;5^AULSWɃ Έ\=:d"dZ5axSk:T^j?a~ xV]ދloC 4$'@`vH|ldGXo&UOỳb֚ +fh,VhyKZuݺ12ʔGP'OE@w8Ј"V.@O ̯G@ cA&OSTZOZ_ iCjMsy2O,PxPJuR NoBor_E;@LєԊmT@DMh/xY?ѓӒ\5?m*7OrQh"b:I{uIRC@^/f@/4+hH\s[d|^&\?=ONJӀS2ww+ῥ_m*ަy 6 ̾% Gh`dXwL$?*l?*oSjWoe!H%Ubm^c^Pxnƍd9ls+<çfdͤZ]Zүn暑JߗS{mj =AϺ`5Y!^VelMu8(baWqkv:nҿf3d"]b9g;er%ujSN ic1nvZ_2䨟ZW'-Ih Iy3Xsat-Ahݥ;|ޗZVۑx[\7ҬǥU#w yԡ Ԓ/M[NU7TR~U5_!4jjR.9GF 2mֵnƲݲhf4kpdЭVTT ;/6j:6UW2} ĤTBOKz8}\YF޾O=.Ɨi ܆mļ;;*҂ŔN-b6qٲ\ ,,>YdL&& {3k]ib;)uS4Fy :;T *өw{JZtXwԨ8k {(L}9&z= 9U95c +ζJ~2YBzh́jMUN|!YmޠB\JguV@m59/([v[~x}ՖZ%,srYT&oZtߜ?豙9+K{cuU::ۅhh& ڢɈCstM~WP{}Ckj/51qч!5<=FR4dzƴ{Wr<,X[5̅ۿ%ԯFԫҠi8W|eI_VUژce+(Tv7 N>QyUQscW+5rX Cӯc7oRapk"&A0hm.N^5*}<,tL7"Qߗ4HHr>#c]D@BO =_֪0OǞ3X—M蚢zG@ɘ{kG56*&GlĮ4]C罛5 +NFnMSB/'ǗmYs]0H4ܚg`/MXAɔ?c$mgJ th6b&JSu`va=˧k[*ŰwE0r5߰VѨKG;w]WFYN1zZ|(I'3Xw/g%8D]ذVC_(R@ _3ϼocy٦{mo1^~ӦiS<^|?HX||=zͅ;fdnN׆GŰ$k,'MkJwLaXEe<~{K|yVuڲ7`A >r|0w0` iHhAe92Q=De's3+\q~ U7nl'WZܕR% Yu(jhrkIh\Yd9aqɳ-Sadmtڌё7" 5jWX*ZdΖBdLr_ _'GbQN)|eK}JMߎ~N.pK9ܔuuU!Gh lHz13v Fw.3"?kUїQ8 }&s՛X(\Q'Xzb\{c\Ū#N;ɶ{Ez[gc3iqWZøjV.JN#<Nǥ+M[HX\)hmT*2jGaK/0, +zh#FnHT9$j;ONhCT"T╝Nz>kA&+^r=.%MWe}A~~sXJoS/yirU-Z?FϹmb V%Ҧ>pOh~Hؖpv3 +[dmbZkbf1g~G&V3E~} )-rϵ[*CŪIyslZ%.Eh@#]RQ9@m. o7 5dQJoύtv qȡMl5;2h@V! {JkFd4)(GE.6} ^;"[&?i@A[P ,JU @APqPQ\$5E~W`/f`</5E@5JA'(@}Zk:,>" [l"ᖘySy@ohB@kQuD@hk:y0X<C! &'F1w Z~ tp +<@kF;~ u'tlߤBxá`ro̴UՓw:`!X%;[6O? sNB`lw[fB?Ԩh/}܂6xܕ:4QjN 1})dH*o=9{v$hMJp^ppGuxqǀxoR+-Cπ2Ռ xxMAB҈[=N .4">7aZ ɿɩu|K78p\w D8;@\T@\K o 6#VUz:Mo0F)vz +Ȍ8os4`zo5RrN 4MPL?ϫ@Բ@J(r:Nܙ@. @J/T/οUX2%l$@M;=0E>TENuT;N-)Rktڎ+@>Zi:PSւ@ڄ*Zh@Mh*N &īqS6-ׄ!O7/o*ަ[i6]lXg^ 0fPYUs9Ns7]jcMi6Bj]%jK?KF+]N%p{Bl{kTe3z"\wٵ!GvNqIa׺:-C>Cw4`Ԍqd;Floէs?ruY_14805x~0eWcF\Z?Ȫ+TJNTJNK"+5ǟ'Zj"YFo\G`'^v%{ wc~_dqjی 7t9\t„AxzmF):cJWvSto=o7Swav'۽o|,U79_{x--489lur­f,h~q4|4m 4V|w&e~+)Ld?-RM_EUI]^u9Rg)=~'{7avt- +#eXCīqywM]b1uޗ{v_ѩ6Fe"4=Dik v'uo<~~sWNZ^[ u:nZƃΧGgSJXKv6E os;NPSd[#jWr;j<|<p`]݄c>__P!eJב)ETij˵"|[('7M6^ͳZH<֍k.,rȾ5\Zd n*U +w-STWjV|Zc4* hQAk6L +㒶+@+?es#p~ '+{n AFms1d' +k'*[_``贵u܍*Y^yMMڕyzeUo6Mj+wկCUi= xw%|;8*2ųŅdF㭙m]'xjRjAwWvLЋw**wQ\cYzb?x~p[r!{hzsi 3nMމGQav=(ۦ;;k&t>Ys ~ӗUO x /m?_)~jaP:hebh8׺#EiDR\qr;JH]$;^D&W5l-e9 :Eӗઉޘ=#96z>xiX 4U +m}EG]D~×K'<9ljDZDI!'aOʴekjB6eη5ƜW**Anz^az<H[]YpG=oȡ,sUfEWE3_7ItM%)#ZqrDD"k"⇫FMZ1N'd7śv껾@UY<#EsT/(GhfC~nӂHQR?轇>ey~ퟺ) 0k@Gs/s1w"[6è1\60)֞Gwpb^vT +8ضp2^^۳p Wi:=i_*F߻jVk$O^P"[P+{2$<$yvUY&sjT6,HYtC _cSŵUZ=1Z/h-y\alpb}ZW ++ݺuqZkYrZ|O D9˰͑fIǛ1`txbI$ r,ʩ8SqaU=Nsu11@Qಅ(HnY{?!.;ikSNol5ɻZ϶! 餸̭ QdB}%Rt`qڃlV]>*z]~خke` þ`}CyL_4+;Ѭd6.wmjOv*%kʟ.D[ iKK_7Bˠ^EfL0P ?rݐ.2Q ~Nɬ.Z![ҙq?d=?9;e7Ό˹i1.޼hƋzM,*u\&O#!.C3~7?1^埨T~: YS܂͇@ 3enw +Q%}%6-Eڽ=:`>Kf81Qmi QY]t>{ve _P ňk,Hwp Ed D 8 p[\z M0ݤHx:OibRv=*j|EVy)4m+K]߲gh5h*A+l nIDF_ 63wak}%,ߢ> _?N#SxQz1RӸ.;Eoc($ 򮢘` T!+h4`~2hfTRdjJx,@||:&8ƀ%Uz!0c7q\)!*0y\\W7F4GP. 'G7+FEwzҐE +p{9u@>]P(Bv@H 3@~ o YMaǏ7t2V{u${h\s|kE٤bG!J&*`b ]ɠa[è V&! (eK x@EMh:Mm>e Х UC@{4I> 8/XTm||cG\*'?n>XبtSo$hR Qc,)kHB-)y2``f.`X޲E|01Np<*uR&4M&}y[(48d- I[0R3TLٞJWOn{+He?p|:18ƀl"AE˕LwY뀛z0r5@12N&S'OcIJ́XK>l'S?Rrs8T6- 4A1_| Z%fD8&Ëk"kOcjQtqqERrf5k~U봞}ܿ*{kD@< Fȣ\ 䈖~~dYn@6H2`V_= K$9_C-/J U+[;w/7_m0y4VOW hr-4@'O]67@]DqXr;\ ED,=Dn+gmofCZÿq7۶(L~^'O7i Mp]+"#` W ?Yi2OFl>Iݶm5`r֦Y퉆Yo=_Zz՛/Ϗ~Y;%F!`'AMdgi/_czNAmɈW(ܜ`9~+Ճnc6XbdaQOҺ‰|TMOT&5Ҭ$}N7VI}.o(}Kn]-7k>V/3_X;X8Gdk?-#t/x km  8 ;-/jM&V} OnY[= +2.ڋom7\8" Afp}sԟk>6W T{*w>!U.}F)SV;]"Ask/ z@WurW)S#ewqc*B/?֩b_*]b~lt"jfWߝxos^Tɑ.H3$NMoj4F+sphm YGOWN[ܚz6qNEC^_%vEZʾQVB,nY| ǥڮ ^.r`v)8 vsϚUhP?)PնK{QpY L *;peW> +,>Jv>nօF\@6 +. \Oܸ~nnmr{]`=>i<񃤯.iBֆ&S.)^>Z傋ka~VҚ jO2|<6)GW7o9P߽ ^s<#XnnΞۃi|[˺k}W׶%tVrXZ\Ff2_Vi%$ou{n,;nÌ %u,6;f \:ζ{`A0}EMqx%ceVfLzك s ?lK**nEW4r >WʫfXvr w;Tqe|eo@`XDoXX4o/oNGm??#pyQػur\+Qu)*U-_A{|~U1?x'آ}e[,fΙ{;D/ )i5owY/]?:xN!6PO3JASbo*?v M6<" +I ~8k-ѵQ y BĴ*5rwIܓ3vA~\W;9XJ:J*טhit{:䥷HCՒ%;'m$̵;+{ |1y﹭6 hm=o^"K VPumG Vg?Lt^J~(+\l $6I'.1#eX UBEE|Up狽Ϝ,U{ [[T\B<[Lsww^a4x/SAJ: |ZT;^]x/PEϲ_/iT(ܤWJM%eGeHDeLX]FK]_+{/>YsWŕu΄#_Q=,7M3&7JϴԢ>RwRR|L2B%*wI('nAz W5`0a+Wb`.ô:"r*VU]/Ӝ!~5VK|1/D4\ClVw0㺽MmZ'[On2%rgGX O~<=\}&q\5'd0Wi3xS{st7ri}ZTh(6ɱNL/YPhئq`e2GaCX̣mܸQ&H~qW\>vFb/Jr +,,9XO.,/i8bȖcnŏ~AR5 0HewrBݐo.1W$,2{ +|Yl[Va&z#&<( 2HSJۀ p; p[\֚5iltmON`0Joi*@a=[uv{qyKzxoM[#C^^cMT3 v\Z]ZmC/QCfy Gí,:ԛE4Ž-k^R|K1բ(;uߎW˗>sٸPt$aGJeSaqU z,hŨ[CϐHG8e D~sp'{&GLU<2R`n  +m VӬ(`3nK>6H;%e8>TX4wHɟaM +) +@GYz15On,M \ +OKpz&@WwѺ ]xy?ȟkf/%tK}'3VϏ*(?F.$~V{=A`l ߬Nl<uiKɯ`90,% wl,}bF*{sǭN +>~WEu'3'ؘz$/{G'YpQrJ6P$X^^ FxE%=JO[:=04hZSr)F4z"Z9G$s$O׶ymBwjykwlpKt^;LkBOvtcpKBP#rSFQ`lz +?6V4PK|DUsqY7=րXHX",-=;eFh|]t3gj&dP*~t>Boһ9}_y>y}ye @z,@N1[ o(Iy@: RpX-M,RX'M +)D&T @i(%"+M6ʆ91d#.@G@e]%uUw"WgwLu Lk7 I?#oҭӳSd,%ID- Ҵz Rx  b:!KsU裡-vRzP&1ߖ_dT$hLo@,v~̆0ng-Rmvm +m3&0o's ̺f&RwB,=LQ2яC.`ހ(Hu:_~#./Eݢ:2ڢXulF뽓镀u-/5R]mo4m2b[u/#]܃x>orJP6W/qUJ6NAJ?N4U8d/gM-HhTh ESCC }/ՠpݛКw./d3ȉD\nB0QR,AŬbOvL/H6馭K +34ы{gcCzv{i띸*#a]dkgsv*D41/W;K3~()x1E"^h)$"(jQ@Y| QZkgz7"{ȁmm?Yc'Ǘ9V8jAUsX[e +g;^|8ThJ z;̶jnzBЪHEqh<*Hj:HݷX*C`Wz&۾sɶ.WlWEu9ضa5>H>:kEQ~8zr*RB1H"e8&zī޷u5i:]CO2>cyVo$xȵhg[mUQf(_Xm;R0v^jP.>F1AIYp/k7&OvnNsϱW*fB!nX1֡ZO}g[޺7BZ +wř8*>֢8䶅ϲx,%?lh=JhhR'5_* ^J1[* +x_X |i[RMu+3N?ȨXތ=E͏.)b>]zByϙ&A{欴RZBY&yüS=+$oIrC# 7]wݦ\APg0rQt=s ҉ЭM&}A^3GmZ&7 =5_t6wSֲRW8wȻ]K,)+#)~+7vE +X"G8odȽν"ZzeG&vґ@ HO6nG6'u{*3*n$f.TyE"Kz!;FKx&\U1RDŽΎH ѪUۃ˂2sͬ4%GYb=&r_$$J0FMZI>xfRg:2cog 7PJTN[Ka!5BvIm<Hwn, m"x4=Jp\%)S`V>$]}7u#D2*o9t}=Yշ-:Mct{cl%jWeٱvV֤? :nL15w\=qsƽѓKY{^ͦ0x9-ԪYUvuܢG>(G8%(٘RN6e4]ύMو6/,_p"\;JڊۊdzD}?Ȅ7ߣ/5;=]>K? m6mP^)j|ӡ}H'V1BGz0V ٳM}^*fo_Wo/q6~`/YÁN%/HpX)E?FHNz6S!ԢG%b j ׽<c  KdTN|᪴S7+X۵5ʹ*}T9yʵ*AM[~o.82k<ltv@DߏO? j"& S92c@A$R(Ix@ b_d(sSH~$^wܔ\ ͙u5T<&ւ|k| f7ػcsfF +x7WsB Y5) W kZ/rYC*i;xӵ6k^WS6}>tO1J /,;vQίE{QlJ[Kݗ`000 &@#F)68 ,6`Vp>3 endstream endobj 36 0 obj <>stream +=ӺTSo>c>QqJiqP%JO Lnnx#9rm)-wpSdFHO?`G8jC[0쬱j{Uc S_ǀ_w*`nDV=]Њe1H}e* Iw. O:OR?Dewy7$mM#p+xQ_e!\[!l6OQj{ O ~t&D^4^PDVݎ~Xfl⑷8v?V R쇞  Q +n"$!³1vQQFg 2R0p)ր0KI[˻@_4\;:+S.i \C!rFL'#6!H X$?IHDWdVpf2V@V+ ' ëuS2ets@vH4|x*(HZXQJ&Bl|Te>_EO̭|~F87"4'tNCV +2YxW'RT䬀2>@C9VJar> l[6ٶF۟N}`z ~\~^x~AW*ʈEK-h !En9DŽxi)E޶zW ~MƙTOͣwԥ!t}Q΢o[h(50p}s>"#O׳g|3rgmVW;KvOA{LC\3mE߭{2uE3| G1cUg +eڋ߯k[^r!?;y<Y e_.7jy=fX >gG;.bs{A~?GPzHEB}$qHEgDgzkbw_*Nt ޑnܟ'*\esӭ}ǫ|hڮ ̚-#8K/7>ðo*A}^9Жe3W|n#i+!=$) +59u];h•l2-:6{p`7>kO7[M+3{(BXP]>]j_ٖ]G8Wf[tv4^eU^2G|D5VgU mzv~^f1抺U {fX g'덌ByUNVCDAHCYh9QӅIn(s.?/=J9"q`9-{8K;?w_M݄fl3i*r1&(wAV3Z1*\ ^C aʱL}V"'Ωc‘󙷩 XdXE3bŶ}5v6&3Ũ7:Q?L7:F\ S@^}XXZ +^a5N۩?k b9:QK*f%&-*I@^U4k[ްq*9#%t3'PNi 09J;`7\>ldzBkյe&rW S1fNY-ZF:*M&j.SRǢ%G}. #teh/>Hp"PYOZa~!xihȋ`yOԜe*YJ1YI,6)ٳ-Wr,˳mRT+"_(A:RԜJ.\á۰7H!0jڂJ(|wzRZY v[RL:S%I2JKB^!)U,R#`\ +|gBps|+MeʕJ 2)pD՚勎GR8x}"W>ՙ,V2sɻGR.-$Ell{[}Q7_B6&z| 7.>r=ɄtzgәM% ~ldl7Hi%'o +z")|XRc4vr$6@l.ج3Q3|υXw +vୗt^#ɍeKbGd3 +dS#Cm&$.X1x-p'Eƌ 2˻>Rұvi"$W +ӱ?>߿|vvȔ$A""I!!RuvLlVA+PYz~Gوmg&1X|vqr007ozjfv1KvµfA@o +]fj_hʑR*% ʤz{ĹXoûw7W 3>جǥb6M-R-`-?8>|N9m |dq$-AjqJ$Ο,$c{r WPVYR8 ㆑u H|L.Dy@*xB16RAͺF+lag.McVmx}Jn]Fd#dNImfe԰%yP}qx#)UoC/"n4Ŏxv3(D·;9O?TSnŸ\n'CU2ٌ]!Goƒk )![{(ޛ*Y;@p6@UXZW2eTǼ~ +(v}ejZUe4l1j e[dWW5m॔U}N5)nƝ)_.(r"Eчva:ғ3_/ +..W[QÎxR1ΏF&ˏ䎏 Sӳ8/ "2NhE$X#tL!R?(ԓJV_ͷbYB_Auf@0V9 wI  H7_IUTC 1 5YX/<]H+ڽ~ +x1!;Tm#/Ki+.kHSRi3[I@bF% n?3+#V>ǒS*CwG7ZnY-EЄ0/A=PP[-AjyVpeywb`z]9\@Vx;l\tʀ|*ҷ]_u„ `p+~jbjH.qq"$!m@j FZtt.mJQV.E$վev )#"wn[N'C'EAtٚh^#C&$k6f8Qej@|cTf{5[>ɧoJJ6Zpmv5~lc68½?"]УւXV_w;VB q/ԉGjɉdĢEȺ_B{|r#ٽV X7N8su1S.O="pxs9 +/Q +Eh)$\[ E^p<>UBs.ܳ[1D ^nB\Sd:%G8^tv^P:ȃu`VslL˂UlS$'~GA!y#r?sDrMpKS$~$\JtE(|y^M6_cM񟩗`SyȉtGA㢎bgtRI\lʏm|v;ّŬH-Yl2ɴt"QDm~ƌzP- >H?ONH +iuב*i\.[m%pvo|brX8U|6>@zVHObf" yh,!kcgtX!\oOjY1II\}c:fZ' g됖#XZӱLŊ`r;K$9.YDgWbm*IU,p|CHEb!M( k7p&E6E>r% Ta/|f+r gևkQݶRVvF6+i7uB>. I Rsӏh?DQ)$0kDB^fvlE᯴/vPiFBȏvN2)Stc L@sζm3F Sch~$8^"ct :&MIɈ޷jIض{<DŽz%nh-Qog +MUMJE˪3F2]#U% =>Ut%FKv ] | 4H`43jiTE95sGC&3YEz"b %Nz#mh a*I P@yԜU)Q-x[γs;^HYd^d^v\~Tn, +*%Sc i[h0Rz_E=zTG3a ^)p+]I#yKj$/)l]*(n n)ALl!S0> V#1ōK/S(5jĈ+G}(W.|WSMu$^!GS_[֢.0{']/R0҇N5 +o=j].aWPdLd'E`F8ԑI9ZH`IJzw1鰍#:+] BVnm/t+xKjLa'Žl9L^iHUbi9:b%"&A }3g!>wb0=(_Uf]!=I 2%f.,aa*Q+5Ih|*ѠxIU%y-Y?SgRmrD3x͎{i{Eb0{0w7c(tsGYR fK?:~37yR +1=lz/V2St}r(WJsjd Zifqa&"u?wkY$ +6H>S=Ϻ EیqMJ6:1=˩.qYj)UĿlZ8 ߆Yax%/Aa*]VUjJ@U$OFJD0x: {<۰b|.r-r }o}FI]%n`%wό9 Z=OOq'܇lQn2_ge9_I%j[uR^U垪x5Q&$~~U k͇py}Z.QRq5)EV}Wq9YԼ-5h3.H׫V+D # +&f<;u@m Bq׻<2Ҁ( Vʀw@7 ,]Ctuv(:DUvknRf&lUUyϥ<[EXGOm=^EL + `SOHA!TKBhd@L$Ip_ndž1b +9U#C){XANXov')jPW'u!^{'%vȐ#XrC=9 +;mlȐJ } ȵr,lW??eVHt"tONGk)Zut*w(D5p0pW!un +9DtP|osԦp0A1>ԓv2f=~ύ*cߞeúGddN-q9R%CDI {+x3^ir-@%.>Nah;t~D-ڏ&!^ЭttLCuMtj; >K<请̩ôCN>6!>w, NJ~Ӊs|?hFT |5 +,n&swf3SQ1S#2oGK +:a)##7يgD,^b>Q,$*;CRf}8f~.@B"741 +)!o1C+Ω^{@!757ˤ/J>xv/#<RR 1qu~io)#*N+TQS/|IWcY2UlF{y,AOMI>n6:ls<-/H[^D7&Z7%[ U]yuZjTth7qjCmjٱ<1tX,SӖFƭچ9V츅}e>E?ܟG\l&Xֻ3^ RTA5 T/UGU":2"Gw#_ +ܕڤ:N(+n;La,.D8o#X3EukGn% )kg葢kx~9xϟuEQ*~Tǿ_g_+crCR"w>SQ^z^|?nvl괼T_I05`a˜Hn@9 &U __&'7< [mS=aom/c#|6z~p Ηن_?/Hi6/_?ݗ4@zLQz))?ӗ&ypmn:=l6B7Xz0O6)M)Io%G;̭ }'/9D˴Re#vo^t-rs}luґi$/~,tnVW'-M{x&H{-D]1x.y<]Qm/hڙ3aKڃFw"]R6$H-– ҇URcojy7jw0gkMWpqQNm0Rk7 ӗO_;|}|~^:7zG6ǧY6S\~.[׿KX9xf#"[Qq %G`}kX>:et,v~ +ͺf8p&]Y #|-HTD/}^j}M|vc +}zxW8 f\>&*VY\:;LҌga?纟 ҹ""FVaR1^5zFe"jQ=!s RrxTO;/%W3KY_G,N]KX{0gl>\|-3][MYԟ\5WlFS,uv xp*TzYS (o>>E`S͚̎ju8ƽbɭU6]JW pT /ylCS\?n-"/8ƝH{'$Ei]fM壤 R5/XTNbyW4E^ +A6{8䡱z^;ic;ī"'Fyo0P +c_ /E5]=E~[j2YgSy8 ^c kzy_(_*Jv)]yR-G°m_:v3Fx)#}vQo†+[`0њ-cyu֥i-|!0㟀/~=.BO.GYo2u438S';F:5Uy7pJA[k #p>kJOLslUeGb +`@}nV%W^IN5䘺rw*TStqhTHNs"HeS.+օWU25uWKi=&/ /v/Y6^n^r,¾C Qe^'>ur]W7(ۼ+ {], i=zz)ocrfAiA1w@͕Tp77۴T4[hOmu3 OdKf &/,9[{d5ȁߟ@ sz_%-MU|cp9ezK1iK*I?Zzd|o?C_|9LB /}.oȸ{gkbO;͝4e r7{*XN+U>CD*t=:@APA y4)x`_VYrrXSw`wkqe̷⒀a])lL˿o2[.L྄38?lnV4`K@|$ᬔ[B W kX%ՖfjNLMN k' +ycØcAG& $TwΔB +EKomg%437uSjvX\L^L -,R9O -9XWK)j? !S0F"(/ zV4]o)yZb>Zu+ݐṠ\KiB'M0^6>\r(DQobT|J? x/{jDGŎ=Na+;m0kh!0G1>%8(/fvG?0' aTz"w}_"^+ꓷ-|3p3▋'YFU\zpa(LJc}zMW$I䇁/bt%|<67Ӽ荍G`u|,W̋ˢad{L0kgZ.tt¥(V5=({)X$mI%-Դɥ`jZsH ntdQt* =ɴ+GbRU.%+q\mKۥ5`Yy/D6IoܣZ@C2ԔdQ8%1-"-D3 ا]룗fW8-Kx7+{:!03FHAQb~)({XlbW~7P*-_G(G`=|D5"5ݨ,B\t^Xbυp^=m{>ZYy=& c:흳/7{ʷNdg ]A~['vLY|О;qL8'Y|{:{F?˟s:µY"t.,ꠀvאָj>@K4B0$\9X<|]SM[+GU3KZ6w~/g5Wm;qD0~;h@Mm3U`@aMr4hIB9*sTݧgVZh\R-KC)[vȅ;ugkw-q(o@۶  +q +^61`lT/UFPvfggNJfojT|%;ҵ^d#!tMKĻ۶%e.1JWMk\̝KoŽ DIzzVWAVCy*6=>}yVX;(mTDw̯sB"w5>//Wû|^{<uGbtG||{-4~nNfKuAA}ݼmO`W:PUed'+U݋/ܞ7Ykm8CŞR ʜ`0X2m3wlO'î!CzuBmNNb:d&==-PBܶ~uP|; QC5(tbfIz^x=żoK`פCokE}>.ګh7 sn\wS>d~-0Njy;aҧ,^qVrI㬭\pm'5VHbHd^i[*cвM0~0Ko2c$%sp_yäwjӎi<nlL-/.Ȅf֬I?2Ԩk [W ? |߄>#8yJ(IPAf[5We{Κ^Ħ$K2_!aެJz:1W:VРkICR^N'ܗ_ _lԡJX&(X y_1"S ya @:-wa'6NMq?!~ B<rϏf5:?E9)s%.[ToP놁1AXrjvݳٔ.1{?Q{aݸXHPo,B&dӥicmYхCnܫ 8'$rD"F M]Xhw/ozظÐ?f ׮=|G0TOdSLƐ +\_]0S +~flz$sڤ ⴘǩWS$ 54徎y )(\SpElj3iGvvoR_C~e,91*8;2тa^1 Z1bX!D67-~w+^$ s˚Gu46^}7 +5sB<5`7Η2aʀ|x;ۙ;؆OvFb-KGsr9OqBaVkG?A̲5@`O 󑴋ʙ13AgPAԃ(8;Vmi6VTH/'C6aK!z, iTPI6)$z)T"#}shAN90ov+ԘWBYP\Ns2i 'YL-n~)=O3espnYwG7xi +xx~uy}p3eCh<ʞeWQ/+ך}9(W'go;WW2Xe_> 8Ex +,.}Er栢jfmuwo ] +zP'tjl?BXB' zɷF[ouZ^nZy7~'eQI{@Uf'K@>46bିBVˆpfI^A[q}- i >M9th~jvI; +̓#Ab=*kkfueL~yQX( f8h},a1l)`t3s]6cXlMIf-ժ +%|%1.Bw^.mY^"D ߄<(tC{wP@{G en@uVxo>a,|Էub oo(DeU[)W4\/X}?Ba(,-r(:9sxW!<|HО<_Ar-bqCU>jÒOuq#=m}:ox)--g<J=q%ުSܹlK%X 䗗 +ݢOP0%PxJ3~m8cdz]`Y>èTNIV bՒ%wbPfu4jN@%M@+CBJ P ط?q!:FڣLڭ+u}a}Kv 渋q3_QZM3 WV[;pAneJpSvp|R=*㹥95^44^\H٢Of3FnLK$aEە/A7L +]EMʽs~u$^+:::hv/DJmOW `86; =3Q 1Q2tn谭?{x Ϻ x`[a%^lpHk2VĮH-.3kb}3.u@蚞i JhEA<N  +y7/K'/o:ku )JK/J>oXLqL`(3I3ʌL$PݎH bDxPS@1za_3uٖ?O3d͒%*Matݦ+8ӭdٽOE?^^vԸG0Ƨ\ߞJ}&!^ZK +=Ͻ^ +lV>\Sb*%|i6}55&Zrl($K(Q6qbX}oz'pNGh ; +WV[9?jH1ioA[\t.kkB?w=uslr8 r%Fn?S>x/?Y È Lqnz}bLz4s6yx x]ϙNٕЭ;Z 7xx/>}*C2#WrI{N:D!@~TA RKN^NXEQڷe./!L3isj-9+@Iv%& +ݜr 1-V>AM >Ɍ7Mr[qm$MvCeԚF28ILpwc v^_g܅qڧ|s֯ z䙓KegZ7ÌSt?-Bq&g]4SHw%IH(eS{U*]hfL5!9vt_.(ӘsmwOXD5~Qlsy+#ѫ>t7m+vn3zt0ĥ n2T{K߇;ׁjaJl$aP!۞Jk|3Q/wݨņew/f}?Wi~ߎ۫sKgnB7J 4XsX8!AKh9'ܰX% xPvUn9+1!Z% +^ǿe+Xw8NC9l/(^puyhR?d=ʵKoOȌ -2#o ˟sL?oQm^ }`jP^B7.ZV1.S^_s>;Hkr yns[3N;DobޡZzt}iXx\{{_@ oCthnťsYzP Ckod_yfstwc 䗗>P2hPJ h`\vGq@yR)(AZ PHNI;OIxax/p<.=dcRK8׶Wm5Am7vGI/C{N A~`hG Cj9p-r~nOSeSdR5P%YΞɏVU2: %EweZB{y\> Z/= =}mazZ{9UdRR屁"VMZ J[ +QO0(t7_h ++:|81D{=gN(Blt-%;wm +F}.|&ƾv|`JlD?wgl&u|9V?-|8[P(Sb1t}1 tXB9ns џ)Xc<_Bl8/$G[rS"gg>_RОһߒ25" +fhw=>IdvrnS)Mw-LT>Ysƛ>ך_,A@aOЊ{#c wH~y3RZԑUW'M73A|jg.;$cֹs^I2\_t~[^8Vi9w̑ՇnؤGꎎSJ/!|V N0砰\Mz4ѤF{.ճ9'祮cJ,̥D>?Izzf4IzyjHmG]ȩзGo'#Е4 =^x'o˗#8i9smgt=Z )a_dSM1vb">H=FQ-F&-tI{zb +QkWwc9uƺeڃj6xV奖m;hA0{  I%^Lx03igס].~x52 p=0'~Q-v$![ &W]r]~\S0H7" >ڄ=fW +>>${vR:2l#ɶIsquT:fMGY KnANS2IMLz?o*~],qꮒdRX|k?,)]ugP=ًG`Y]=HY#=ߦĴx<`v ++n3vvZ|'=dԌ|t_"=c,4<>hQxt?:

HB +@` -W"̮P+zJ̻ۖnѷΓ{ 2⚡+Eu2i%Տyμvi2F"sSȕ$DXc+ 5}dT{DΞn+_nuw}zz }?vҨ?įúvc7wTK5B+)52-m&ABX[(|.]s/n3iz< 2|,7G{;~3ެt]Nƹz}BrA~ 'o*_GQB~1}5~9'Z:]\q6lr9[.SiBtFG,᳈ 3P(BN`ULz7.cox5ѐ+tgţڮlljjV'-uzNCQv[kbŗ(>29=N~vByF3xMS^}wt0/Ge{d]\a2f'7h54OY|o*ǵպ,$nͿ#03eyd`P_@.' w2ga,KѾC8oq=U }IRjF5eٕb{SY|)&JJ6_{}.tӺ-AސPh>>lm` +ד| w0PN=^LLJ%=NWbu:Of-*).7KmfI_[)9 oӪ}OT?ɚ#w|ugآ؜ +|ɵ &VH,/o 4_z!ޢTsb t(GiixhktJOkP6Qu;Ou^ _) Uf~ pd~ +dV",H@ 'X7?mHs dOd߳X6@zteËPs vA*lJ *iЈۿ!c7 ֌'ds ䷅~Bfm -g!/'T9l ebi6TH:}~x.9z|Aj=PKqOs0 {^~S1tUi]Sx:}\ޛ ?2f4ȕ0@C< 3OtfKM&j,S~` G + +EntVSWnWi{P3.c8ļբeӤ 3D~ڏH,>5.gYF;Es!5ݬ;cr5sTٞ\?UN`G`Ԟ3OMA]wgl +\)s w~5GX/O[f ALX\ +=Q<-a-n)o_zytw 3mLqM? ( +& >`s_ko@4<WEY9o3y=NJ﷮;ʬЅqxqCOMuՆ/JMe&Ⱥ!2 -y>q`SѸ\$\ܫc +5~CVTz峧&kك6Ǖxow I-g&vÙ*7Bq;6P^]l.9J?,@u|̤wG0kq~|]fH_V3Xɸ(hU3 +,Uކb2=ޫ劜B|Umu|AS>[,|dzrwsS@5Tsscj/+ngY> -uE +[ ׉>:{B|T {D0RWݗ_wGGp+ OdF;K-MSN{=dZc&ȣr>䥅yXuܧ=!q ~bG|:-kRp,k{\cm9:̩%E/rb3T{vZ2̪]fNyv1JručO!ks'r,|}k }|e zL0 +p80c_o7g`;6 ^RmЎ /s,K6&Qe>̺3Q5 f3~%>X߄:ТG E{-+j.a'ĝZf})Fo+ʤ=Vݘ)]`̹J֕Ҝh6DF,Yp `1 +PrqM\5wfѕR]w깛ˁ|6628Q\WXIbso bD9 G/85C.l:f$Ʃˆ뫃$'a.BW.&DÛWN`c㌵G]S|wyJg-]`z/Ρ;}v(ӽ::+dOmVJc2խ|&<#P-v!Vc͛0[CPIpp~5#%& S@YK^R"؋LTM]tdG<:g} v8%/|r|Z?HA~p0UaX,䃟wk%QO4sƙlq9BF6uGzn-l0YTW89"Gz>L)SZw@.cNJxμT7ږ³Z <댺q&l#vDmj2}QNhUwқi \{qU[f7Zcl;3ni%hD,H9綿zt}ZL"Jes\9.:|a;7 +[u<:gh^A>@A!" M.-݃q]=,Rs芔`rj 9i*!/Yqхu6EVb?$4_lˇ|gFGFׁjSp +Aa%~┈`J[FEuM`EB(r-mM$Uf< E+kK NZ6q$ӊ۟rނǻB|?P0*;VJmٯ`LKHFu-QZHZS1SBWh 26ΖZtoR`(ûIFDb٩}{^ʺ]m4WgͭM˷7{sg ?yo^2Ӊ:zxb{d􅘧 xqQKI$Iʓ{V;lhܫKL[rMa c΀(EQ 翧~{?k=^=7bpvpb?'`3&WkS14,b*򙞈l"Z}}Zxz <ކ63uH{Ӌr3RO<z轙7>gt'noeg^KsS +]G[Lk ׹@.8@ǕGT??yѽmgpTy6[ݶN~Fnxpkh0k~ZIq<|_*A~(foreOFy|N~S&s +2L+.lf3ծUŻOڤNOm9Cfaq|Kݿ/p4)W5o[ \lA^~l[{`rUg4>Hv;l  ̹rYrX8_gr`V5{xn( +XQܵB?ȿN@f;M7@˽Ʀ '8?*D5sq!;֏7%g{ר=w,eXnz&NxXw&΢DޙΈ ,w(V[h{fE<zhuH;;^x'\T%^1N/a=uaB̺dʙ Pn/${[~ _MP@QOZ\,{"}ی;ZdxZ{EBǑ +Q=͕JfʽnvXynbwdd3ogYܞp (4^e(Տ +ɗ'oXJvRX:g \_o~l6]niv|;[JvLUOV`Y^^_+s|| C- 4{~s34[l&qqvRww% koqc}MR;M6mLcPRn 5Vkjpũ[dYk)P:+k߲_^g ycVNģ~AreS/Ye/U~ }#Ɲ:}3ٞ{dNzٹcǒ0a)ʇ8~ +u[oم|NEj[o)|Mk]%{~~4m>G0J+2-q2.֦p-7S_T0&D(C)7%yrB|ru{S`۹(#ƨ\W0޿ h>0Oje4բmV-ꍵt­X'~؝D +ѫC! -1os ȕZR +rvIa]휟fǃ + h:_Ju2UU_h}Ʋ8pfZ7 ++$A F^F3]Qd}RqS`]-'Έ y^^7)8)" +NۅXmktz&pa",J642iKXr]@w3;/eaP+&f.z@@;7k +(VRb#AQ%~g&JLߜAUʥ/$OpM:Bi8Sm}f eؾn̷W(uܢAUHQog$9٠wڪ*vq;" A7m90~i*́{6!W_( % 6rv"Ws_v䀇#jm#Wy#{~Xnd3 +=ƫ(A{3H:3J`1?US +vM/\slN(#TZ̺D̘e?ȯt}1'Mv h}N'LYl\o3 +.j~Ü#"t[n&{;ɕJapީC &gn.1N(fkU 2E9gZ.)4?m"&Q3Xk!!uT +] +=X)c<څްotGC˅ةUb=! .Apg?dvJfGTAE0im)lOo/ZCns/k['8d{6|h[d H dU_/XmԹ gs<̡4g<3e|ne?nFL_A9o8YKI^pxcc6܂1xUN7ӠВdg CjN-A8. uc3IA%R7[M6a4Nq(D5 lKh~:&آ_/tRu(gD +[wՂgw:c6%Ă!74Ӝ5NSo(mxO CjfëF,T݄zgZVm9-f :þ'S7'(ƻ)d`|jkL^[ma^Ŗb4Meʙs[ D?Xb<ӲmgU~NU'vc(3o5i]/W4 27w'^ΜQI(zb( +Kk0|^dmp?*fpTAb #`bXqLaֽYdyX;G" xR_A 0CQ ^|>ąBvj"ehP|ԁ[SšV \[Pm &F $qZ7٩f@O8\Ac.2* g ~ 5$y@Z6<,< +֠y)BȈj">?878-"c.aFua՝W7S].PB8fB : +1]@#=m0j?;@TkT+ PYjT^d7@k7u9L\ >l }ZtWы880{rTeY`$* k'u- mXQyt3+|B߼ `u2Z$gr\[N>^ 8Cjg%5@#,b bR +Y"._|2|׍{_4l`;ݰ%8v^e擵dO;_ veTД 9@m 1 wIa(*Ab-u:DfA{K\]|wg1P`a||[nvߖ&[|MH1xrPo>(t<[a=;wؤP+,:<p{mV*EE1n0VPux봝ܳ}A{1,G(!,V}AӾ쐈BiKy=mqMM͜=ݦ{9N7 rH}.5B*X% =kFƿ +m__>_|ml}p~_ݕ_e"mvwKb6eR%Fzвª;*n8֔/j(l @.Psw ;o:Gא'jG[bv]Wj噳jq窻ժ7ѬUgi3y`&O.O:w})\?໿ +V:p]+da[<3pZ/7YmG4ߩjTo +۽\'>fL]dǤg6 +- =# saA.<A>;/+ۿ ODnƺxnU56 Iw3~k}wkȍ@瓝;ۂ5mrGuo,I陸O]Y][-T-ֵ[X/k_%1|-wszZ:#;5YI3]aRpN?^]vd,Mf0yaO%r]ͤݓ´QQ zjQXn'eˆe}|'Dk6]줘g61慷 +“U$W8Hu jxDy^ z;w6`fd{F/W6Ivl[0 5~ +G{e}ϬޝCoRݼ[|pZ(q1vrqьA+5o-";6*|bg7 =;..u+>22:U5AIb?t 7c٠ \d%lbW-ljadMtُ>c03oEmc"hquopv^I]Kjf :zwZK-4jj=jqXσyTɗ|bXClWI?L`v%~fvVu%sAGsZkR Q?ȯfyUVg'E.bbfVHޱVdyTtZ[%i[PZΥXNU^|*8̔?!Ԑ~%1i/\(Ο_zܤȅꚓ(q5=@ SkIZRCb:2#%̋q*-&OA:sFtU$M1d,^Zyj :@,,gN`>L[6H V/#PxC@k 3 Q^Ghs'DlȈ.k߫Gh\ߡFx{_$B,a_'{qoL +p&X˃ZG5y,UOiPP`4bOWQcLš (?m +(w/Lж.`C݆7^ơ1*EH%_ed1mFZp ɰ-_  {Ph5mTjBL@ H<8+## +xa4:gk`(X3d],yٳKY0w%\o|xu@7n( +&4tzXylsP;1wfꛓXD(xq&%*ɟ0PwpЍ1G(@fm@1 u\'|&> +~bDb|)qn%(JyJҋtJ`f@m8d& bM*BFD?uU^?ȫ3Ѹ& /SbԾwG\l7ë5eV'[imi aYs@IPmdh(H"kF G1phׯٻx=;7 +8Ɍ/7 a]?mɫ&mvπOY^fʀ2Pwo>9-?>~dUrES%HǺT}m܆QrG}']'t; P# ;Ze2oEpV\YϘ5ۧ鸇x + O{y lwk ݒ}7d'an^KZ +?$&kN̓RE(Oq5(/3t4qb}D<}t1w͛9ˍ\j##߿޻ū6mcԙƺ'\?QV3^nր'@ QvV@nxq_Oir pwTAj^oUtFo'服4&Y^ڮze*W7MEgVfMv,VKpB*C&G(teszPp4JNFDscy\7jƎN9{tݗW8T֙OKOaX-Fv;z ״U3fYO2%_yh4AF'F)pVM`o{p O {Ef +MzGQn)~s_;%=S3nVțB]-_Ij,-ԽtCv{GGFvջc9ā-~_ ڑ|@#VrGokԿ|/+޶-_Oū>H-&ev.=dN7qY.߯eyT?.& B<'Is0jRcC6F 8y3@@w4(d/\Kr^yQKWKGVR>^UGǺٙTFAqjٖ$hW,R *K\w%8È?OVvL.~0;fk[&nﻣftE} g|x&~Yu!1-ӋRYh 7$0`[jmo(gRkK!zEs;' r.J"t/.p :cjw?7S 2C)R =&^ӽ|?|Da}{z=";[7:+_K\^ Ђc(wN.g6wWJ)Litl5z돲*l|8ݷAtf]cP$ʟG4n.ҷeBHeRWY f#W}n[U㤓S~UMORWc> m}5)Tgd8jOz%}{nŻ8)tѣƧ.7%b=J + @޵`vywyjw~e;FI +v9k6y[Z vxI[+q|N!`ܣ_ѰAD] =K c~I6ePcgkwZel.6Օgcy*9]|,Hd?hËpQ:{xG~2ڷp1KY&NZݹm!)|V\~@Oq4}*;:Жռ4_k&.$jbº)DgD+/ALz=`;G=.:P6 yk1o b}L)jISzS&?aa@ⷜ{w]uD fitw.)V.M7~{.޼h]YX|i{0;rq`ߵ·M " \nvoFҤy(m΍="ӻK?}ͻ~tXkI`3~'jiD=ec_d~pd;ƠnC=7Ms-ٵB"vø)S8ͮF!0z%=^zW3}fK/l]veڕtwmz~ ƢL|Ids"ص OkgAOI?yQ9n]/l $PpyZ#fit[k~c:] ʰE["F>q[}g^@UCh1n{^ ;mt=wc}ݺ;*<&?CV[J,65aSȬRɣKv8S;:!2*{19QɭЧeL?|zK@VnZAV]g[-2d54j @%2G29эbq{d7X_-E-J޽R0:r-X/d}x.1WD8bT-<ȅfI@lQd-,-7cGx;F,.Lg2妺~?/(dyRϢtp +) 3mPC+i@ WDS&?AR^ r>sO`>\ʏ7b8%晸BY,-\7#Śht?kV9ݗ6rO͝6;BoW0~;u2dGja@3Nz>uz)CufЛiӶʟl$!P8Vmyn +}#T43n-&2d"7,=A_b,2M=PFp -$+gИf..c{H2CwYv9z99t |回ߞj?25}dD睱DCfO3rm3rR@g.1[_G ͨJd%OIC|CX ~QV`ڀF(T|b\6zn[EmI;J.MXV7qԞ6wJ@)\j~-4!OGdt>50~8'u=Wnfm+s;we> [vVrStw#S0z+YAj}(IK2ξH Jw;uOY/ Jyِ#q}XSڮ6vNtMAmSxW:g|0CEbkfu{Q+">5+v6E.,*;"v;_oHmyvzR;-8'of[TzU3(1qCu-tOSR.ڃ[-z&zQB] y\;ig Wy4HJ(w4~@0[I{~VNQ^^V`TJ}rʼRd Nje: +ZšW=c|~8M;y'][cnN%j3f[ .R^VjxߦۛPhD Z;|i0 S^BTwa9+W?*`B}UZ<ЛM}6ktV[/b"C|f"+\ Z +kzK.ݜ>oWFSՊsӼp1IB |pR5О] ~9|Eqv62.[n7۸[n4 2餚*3hȢlPrdwY<\KmV>Y\x0o6syeUT◊.r-[ƙO3թe4yM9yt{Lh3wˡ>:`甧5[bv{ |`6*Z$ʪ,֥ 6|438R2' t6O1<.`uʚXv6'CJ i^XqFKo!@o;Xg +bC4*z2_dz7'oKP?AXBo.[J3ka`%y qF*؂H P}J&*v xu:W, +նI?ЉP2} KqLxW8<ݻ~W`j:wDMJ&`$X!!\B]P3N&5s~Wލ'ۡ/@4+9'omypxK<-aUB?[cX̮$E0A\ ^g8y(Y֣<2 J`m3 < 컀c" J~|8 +Ypz 4wD$^zBR{A(Rg?v +l(gtCixiTd27\% 28|d9rK^[υb{\RQأW'O&w%Lt8l;Ə u@& @A$|O&KC7GQ*0TT4¤-:~?OJp]-#?w\|oՕZ+ad8@o2d}ɭy22qfAFLm^^|=?ˏyxTh&,FjI;nMobUn^ 2ssb޽.B&T]"vMl͎Nm7n5vVrgF;ކ@W o8TԐ^qUlD};P2 E?6wU}ɺz!>rsTNǣ5/LFyѰlźi>2[vb`as :8O~&N؝Xx<ɾѴvuf}jTwϰ1 Y]o1o'qOANϚy|@_p +~4'屶{y z{b}qY\{al`gv<;غw[]R*oMsۉ+'xxSh$MVVBVJx ޿F ]h ƿ뎎+V}~ІPT2cRLr:|ʣk슷"]Fw-9^V|Q۽]D;gosM&M;J_:է(gW%זy$B[ܗI&-; }K)?_ +8nrc@:MPtÀ2zF|;myP- V&>lekF`R`rKoٙcNxmhH*"X [X=;p Cy +X}vPl2T-`w'[qު +٭߹%n9o?E? ,Ez?E%|L*~5/4vl"92>zm܊3ɗIax>u-N i-61ոjx'A*Ե ne}y7ܮ:pSw&o90n*pW"t H K [RR2 X",<8B8kmwڴA2Я+0Vt _FGY%oڽqZ`NOn(;#YY'nva'+ g fNd}zfw#DZ3EIfFn9xafl ۅY]j*ƴ|-y}a=e~fdŲ8<} ݱ%.sZtRK}p=g,/ۢ*Ϻ,lyYb3 x$%ʭ^7lOk$Ticӊ2H{ ؋vμ\[u^:;i}cP3 ȷsY-ޕjJ8G}&4tJ&ͷ6;SZ\Ǫ͹)g 괞;ͤwr+L;hYga 9b56诀6î9W#&m]1Vwyݖu,45A#>@j 82".^'2o?!0ټQ׫aWa ۨPvwTzxt +YҵTl]l+Jӛ2{bwh.۠:2NilrxgKz+N gʵUy-DD>M{k9&Km{h;rq0,IQx z֚tޭn,Y#)K/c}?ؿ=B)]j2\lҲR&YyO[;f ;,4ߧdum1]+e{?]kw..u/}jV0.54SR&\d\ۢ[C^Ȣ[|OؙV +>_+~d_^WgGItˇ+1M4ԥ&Ŧ[Ͼ +9QoV)z +mYn59 t]QS): -"qфc<~?=yG۵{뭷N푑7+fXk!AT1g|Tƃj\tש|?:1El"1\-IT 7q 2 d|c{}1VE%⯀UIB| |wEMb9؏il=]lm$=߄h +u޾Uy[3 Sɀpaq鄸֡{ǩB|݃\,nW('aQ^M7o5tkƷ\>CBbXOrѦ M 5KVgZ C%b4*_dok7&N2}]FsQ8 >%~m?o!T%LK⯀mކyAxXdJY` Ubjx{6`uOzi#kQeul}C z;'{_n 3ѫ1zv9&V.oC@XYR@ކ@䝬',<}ʗZFOvCwSw?7k&~. + 3h|Vkw޽7ܻf^܍^'QCNǚEE;#3W؋r/BإnXUc~`@M?!7 c΀ʧ@ guq/GpD=>.9̼x-a'MzE# 0߇|Wl~-,IU+wuSE6lm}=j4ve\6 LfP(~hw}ҏA~?{7uF<N$Uǒ͛Ga2)bf#@Gv(}dRlWbggc33oto$.2nHX>E,xvQgw{8[x^^4m Nv@lsv9J+*z㑽):Pk^)Vt7R(# s&fZS^7x_iN{6[ae-nW4oz/cW]@QҫxjnջjV=-wҖw^B2m_m/_x[_ + lsCU)|7e^yTqYn :0m)ZФvVWJ5֔[ug?p[b["O+dF:q=Z)QbQwyrTpR%޻gI$r;).Ѯb4%&/t؞H:ӉM^º#+?oْ[x%7|1J ަ//&TLi/:닥\!oD:PdW;YlZh09A>{y:Bˏ!^52SU7izW}~RrkL zx_G~ynjӛ'7/k|98FW}u +g"j;K4wb,ܴo{>x\֖δtHڗ%M9ט%kz{m.b/1-ok3%wޫ/_8;ׇ6ԜPfvјK㟆zng)ajS]F|sLF}fmUW`~LȜ:sn96;;,?o>64euo+L.jx–q©dm^Ҫ4?hqiɴcۖ Pt4RFXFfeaeOOx72ߊ8 ;YgƓ9@cPo=k_é9ʵD7FDž5dl%ʻa췋ahI(=I$ǥ="Dyc_8|]ؓwcߟ't*,GS?;DL< 7Slhj6Pg ar 3;ǹ44 +i̩7*Q`3v1/[{U Z;\g]bgf|,יhg8df6Uì8TO}>z5ӛcδ?q_p> Qj\Bae^DʡfΪl\oji"/*-hvWwDz_gSSY*4Ɲd0V)Wpn ;wFvwmݞ<{k~욝QP8Ԫ/?UѤDN5L}Ζ^G;(]rz1rt +#3NjC"j]g<+uj:YMIE7(Ϊs8st.M~_:)`UdRҥP A\\^@Ɩ;LSE$?hljRS/ ٽSR$WV+Mz:mJwVwvZmjb~J {&YYfy؝82"g~0=Ei&rk͉Ԝ4f>?lCm9ZJ:-C <JZ3p*aj_Ff,cZy-b2@zd#2GHptUtƵpDTzkp#a@OW Z}VFlԮTU>W ~+ Vl0M`u<_bs决0&HEGI6ƥ^zNo51F3;YZIL =l5Ԫm1ՂU)m_AyT2e&1eY1C4`NsdCɚOqDsߘ Gh '=mG|h3#5^9b+~Z3I.ysN˖H&e<`̳S,re{??(=ץ%F!\zx6ak!>}lVӨt>VqN1FG5s76_~2jb'o@OVSt/ժPJ4\sz%ζ +N%>_t1QjS|1av^iPᔹϣLvYnךS"mB:tZ <+];Tx1jg +O!X1W'^l+Ӕ3 2H%Lpw7;ܨMy\b#鞫80^۪evUUY?T1aV.1bܳtsmQ -,̠ҿz%"]#ƹ>ZV"%7BUQTR `  HuZ dh=@  +oF>H +Cl<;H08K ֆ[o8dnN42 SbtZ e +4 t LA$@x a )= )?H %$#ټTu(z1@9@/,Pލڦ\ w{B.dSd]uM_5,}h  hH ~1i=ze鎘-6W*mPfO-2:,gA赛f6:0amW6 +PRH44]hAp}_Dz)lwps~?Plx)Bc3 ^&< CKEr{7#zmmڰoC.jO1Yʽ'j%<+%3p_[s73voFS2o]@ LQ{wwydz\1N+z$%md`ʮ>;߯v\|eR > +~4h^:=h72P}dduб?&t2{o]tiQ0b3Ͻ9ݾ^ݔ1 +h߬'x:\Qe!2V[U aʶd; +%6SKlQ,G`< . P +Pw|r˥%K;MAx7/Wj4w:sIdҋgKiv۟MWiw(,1`JKK,,ɒXpKsqIT )7,)~h@fVPhڡ( V,8ak=bzh%lbjUQTVFɵ8 X{%wOch0}rȓ1O ̊_ʇs|-T"z쨝oDaٸ~ _48_x?Q)=T}eqq0Hb6?:%,TΣP:BL'|4xH+CWx(?gRRZ/Zp Q @nX͆qygf];aK=!0~1xͩ۳vw奍:<"ɰAJ祟B, UnuC+q+qeǛ1=cKT .ܚ+AGӽtdG%O:ڤh) Pn6]_Y<^NG:iL, +t=VC i<Ϩ1z75-qs漾g-7¬7@vuX.^̻V1W8rfR:4d[z۴~_7U+ky3ҥPO +}JʬO, yNAs6S[C%i֓U~zGFQ~]Ou9O7~E~~dS*grnmՍ:?Ƃ)[a\+8nUW[(bt2l*էb/՛tp}Q܆Zuq6z]˱ ]9J[hE\YEYwtoA}Z9 +^_cF1bp]vpD%L\{ATsPzVjm>ɰi`d|Pf# eZ4h37@wb{N)v~ƌӡ+Z#5v{maْصxw.;~S){bǤ0 :R]fXOyg QdܧF?`owVhNioNb|{D((K݌*U}nS릅3۔&euS^ćhy +0܉ީyN:wj/vcZDV]PkQjf\~ Cc +ku\;ە֒-#$~>.nnqZk`OcוNHe[I:jlA+ivsۊ~ÍA:QnôҽX"N#%3(KV9ق +GSP&yNqHW=yw+ѩoPVj͚Rx6&dv?lChRZlL WٚRܵZ 5wx6y!}k3d/sfV\Ӧ'x?CAzAvvNisvgJ`>G lLS?]VJ=W\;&iXϥjb=?\Tu.H6*h²ygqu\dxXr#"B'nIki%KM wJcu'tYxTo=V]oZu~!n|JK~*WQg%:M;0o0q_xfr'imzOϘ,\nlna/_/]|՘댪F$bGSVYʟ"%VߦuҞgߗ{jI? +[Aȍ[ڻӍ6픛݄56VuQaiSj¾ٱ2WwK"]iJʗ ӊř`QUTRuq_ro +j Hk5X-=E&T;Ⱥ %z$T;eTTrZ,>bn9`>| +W $=\:/dc j%9WԤ tWcfg!4ZT>' Urk讏esWQmiVew<ܞVf@WoirNUH͍HVJ0Vu ̱lu#_ 5S*cj_ѱTvn1.{vWJ$̠cPE5B>vV" Uˡ¤qĵv\L}v6;{|e;Bgǯv*V#zU\@ wuC12pײ˾~JL놄K0Wm"խon#?Зn3gC,ooi:ɂ["Vat p</ ,)Yo VGY ,SU)P]1 KH3P|?i$/d&o@w  lTңa +]=si=Qˈ~[n}y37^~rO~Ln~/sKXr3``~Yg<-ߺj?\3.-C +b?0s*θ|տ~#Nt-ݕ{ڷoUiƠwF\orw3+gjchGLGg+w{tnu;ϐBzϚΑ~^s{/[;m;.I[X:nMPM`loͿkԳD"hH9sw$a\"\baSΏN K3t3Pd;Zg4D=Հjj\icDL:oحXDuWB0[mL%&`!nm2~͙jڵli%9RrXgtJovTn2.PU0+4gD. ^>+Wkspa㵂QD,,ݙq0sD)XjF][+bMe_PdB$uklO|CTGsX.e@f'^Lt8-X>l:X*Rtmuv[ϙ9OMu&S W婰JɞؕT,T dt}lsA#A[AU 4rr)/2,0ISk{b^1)=/6 rE. WH[{ɇxN +)z +R|1w.,[4ܢ6f4i`W/p; m($JrkKCvAEݡEO䵎1Zo7Ō{Q,֩ +8-*gZAAg1W7ׁpi.Qs`q$@}nrq:V}T|GKX^KZ/iwSǓb혲hMzeѦwxղu/I>HgvyՆX3O*}<8D,.SYfQ6X활3dI2p +elZ8M*428&6ep&٪^ԍ86f7Mȹ%#ByF` P1v[*Q/#*$(@̢`D];{=@IT]"J |T@6Oo9xkvA\k$U?:D8j_+63C!GՍܥϬXO<=cށ2ɉM}\$Q-C6Cz0!xzv1%&qi_ p!OM KEJ.'j/b~?ȃWY_]1vv>^gcrk5,q`dTm%AZ2]uRy_{y*>+EI j__ɶ:ҊW2J H\V\wFHob4Wn*=; +mnAv_Zbe}]-4MĀ^-%JiTB12PQDc'ޮ< 4"/!~~i\lō`rH$jsgN_<^~eټuPky ϓq_rQfq-"a&q*|z+&JjWOi#ʹ#׈v9h=݌L8=/-i̸=3?Eɮ|YɾLE-:6 ۑēž~Z`^K0Lwiuрi_Mj)x6tJGJ"Ӧh/fGXF3t0?U<̌ޞܞ}{?/Qx -utuuL×9rM;5~=9pW.{Iqq"277+Y;EZ/CUF9Ufr94{^)r9e20㤭vж_HG9_ZЎa3\(e2Gʼn V/5ީ7Ըѽu9x|s*x!7J +YW/g&N~NnE/Ӄ@lO@, npr$'/r?kJkqWvG\fq"Bg<"?ozNq/G@ф vy V-(Vۨnch$gb[Tn 3wC+ÍK.jr5x#Cl"J)J dtV +g.JŬhkc8~(Gz-0I %3 1|ʁ0OeQaj~3L?!EizDi5Jg*J_h8ͣ+0JCCY! +(2DK|6' PL #$e,ԘB "21$I #7C{"!\8: +4L{Iv%..=ðG 0|3# +̈.]3K3]ngS+} p Sg"P? 1\-.]p]@g+!qrT^Ӟwr1|_)E1"rq"#gxgVc8C^Yzp)pۘ yا.Ƿ*2G/OQIw-oo| {Q_vgbĨ@ ,Ξ_DzmYL~g7g5g+Aٻ[$<-emA^F<ul\o AH̵ 6lWpUMU}`J0t~g|فc1#+1r21rwc5cܸC=B6y6=v;{Z&rM?_Wu^I ^!?c춏y]>d%[o+ ~/F+/l0 ✎rqn`o? /h/su Y>at = EQv<*SxhvN4\W+pIe{r osx˟l{{l8w8⒝I 8;51¾[JA2Foz^ҟTw}-j'GLd}^~]"^CoA##ntw(2v^Y +%̡WmBކggچ[{劇^a0:]b6mGXʫ.zM1NPXrvwM>7:BֳEPp>Ka erбA˧l˝o/Qy]?i·~1//b* "b w:{F]kA80;"gomcs^ w]hNŻfRy]ũ|,5c +rЪu\nt3:=d~֡~mO UFĵ^a}0[νo +4)ݨS>ƛy;Ǔ|/.Nw^ˇXͦ [M8)^݌ ѯWV9a& [NgWJ _7g8W)l::1%`F>liVDuBk1*ͨXD0+/(?Oc|2DUM6r=KS"sP&+v.r@|)\l sͷga/0q٫M;NdOǙzcfę;CDƣfyh8 g,zPykLTO*`tÖiO]~~T(Y8 +c93[~޴~ Uog',0xVE6Q- u6*=j,%uUfO}7j{g=%-rC[Y):KL#RTݢ+t ܅C-]Gԯ{>oam썍Ÿ0ok@ K<ȏ*hl4ͥ1PvfszO(qO0&׶HM` 5LjxUJkz˷pJSspZ!zCGNv3m_uG}R\( 8}p)[oﵹNh+l0-WdOӧ`Iu=/ })4:r+l;MVƫ)~L+u+6u ݘ8bl@<>B95iIrܶ.jn%#l2:_,n,1{)s4Ubӻd~7cv1В?nN|1aU`2OȱMosl.ȖZ¾yj wZ:8WT M?;-_W;Ya&Cy +zr44Ph`a?H[)v(ٟ +[G9idn窣6 T!-1mݛmWqR݆WO+ SAÿ`ۆRW`S!\Oϋa}̾2M%C OU0<1^\Uf5* +jm8G +- )M=E4׫ZR=J}<cOc㲅9#]A_b`q[N3lǗ\Ѣ;gPZҤ/씳>ȼ۴CG쵝j2TnV*E6ݸZ20N}۵Wp(QA,AbuY.hTUnVRA~mEEJnK=NY桉A8/VDd7-n\sCW!y;3$I !kscIիr`ZY +B_mΗ)ᮌ?ayeW7v~S筅r(vl^`1)bNl\:o2A?jg܆1nԫRìѺYA S𥰒^ekN6& J5 {JFdq&]*[hB xsJyCO]va%SsO |G\/mʇ h⚸F扨8>{«ZK_ FK!;+ˡJB.D1;BPbZat+0]SNŜ7٧Q۳͓ͣ]ur0N.zT2F᭤|4ͬ';xmԢB +4[4NT~_E.A*XtշZe<Yf2%$rnBw}nJ^ِteEIBiphj% T![Ϯjj9Z? i6m:~p3Mp7 z !Ick b[jxom+o–GР%2A'Q8 +46L#˹?zNe:rq|*lvqaK+RHi%L[߾9&@m^|SW@13/b]bbڈ B1(7(-H(&Jfi/J$Qv7QBc>v{tRz(;xM2vLπ_7Qo83 ed4bQzԢQ`Q6gQrkpkEɮT(%2%ÞbӪgЋKD4yUkM9twZoN4=ٚÉ3>YlkWfG)g˲gg" }x|/>Fio賁JwGsK/ H+˃3ϵ7R09|@xUz+d*ξrz2dx}]`, 89O +~bU/Ƥmj+K>OuNt8K壸ϭʮ[ڔvoߪ5 g1 +$K͉?e:R?cECQYk0˵wyדD_ǸEG#Q%YTANw;' }=C{sIOYgʳn'V3//_Ryc HLYɚk_)pWx3PtշƹA{Dsms]Myg1M'\PNM^ qV*~@-厏-1}AEr $6jQX?)(5^z蔐~_v|;^+>+DKy,/pZĶ2rĻ0Njٙ__|ghCP .Xv{g}I(|~&~FLg2N[Z0L425m_MB~(s^y{>gG?1 Al|9ӭڝ#J-ѶPzo)nr6T݇wS]'>yf*cqɓreCqk$metNdɗ1\tE{, /J8*RFhՌbKMSTX3<_r~`U3m)\Cs,e15I| ]{Ҭe3ڭ (m0+sЌņo rfK@SWScu iş:Vr^Pacnx727]/휹<-ce=4h/?~D\8#,Q&ROۣVB9⬮櫿l?[znד }ok#>ɟ/q.wώ76UcvKkJݼ3*r2X]+ۏn~|y"Qqz_P/X?snbZ>s:t~,]/>x(ZEA#434J Wya@)Ma=꽍"Ճ}LQ ez~<ϥ)q>RXohftuڢGV ڟrє3>~Í֤ NMK`z)vODAU.bAHEjpP3\#f|.Rz~y Rc{",OP='XvZsR\:t?]ƱfM׭f6!9J|/>Z+ VS;)GL% T{OÞ!5RlCg']h[~,IOħ xy;17lA_ΚձYڴ;wGճiL";Bw4qciUyn +h68Ŏߤ;0Kfu=;ҙ/mfi*  A |,cݩE㡹{c2CQW~Fa`_/^g%{?)I/oeU4;2෾8 +Y\OLs#;]s,/Ovt;*las:3L5042M.din?xb0y*Fȍ(^RrfB<:q鳞S嬸fIB.ir+ ۯEMy%?HటNl` S4ͮZ +bn$wiˮ^6s9 ԨJ#J VFgk#1vRrbF~+uB'[w*26_x3_'co?ky-&|lTb? yݭϊBpW~Z,糃1_,WbEJ2M5MWk5EK(v r"ht56eĸ&e?ni3";''ڻ4[3T,2@ꢓY1 !gNZ _؀_̣.%b @FT|+hMEgܓ&VHiR&˵ʎ,;Yz7rX[fOǵJ˙Z틱` aK5*'v/'f|,:b+:4Jv<-m֯TQ[RXěVmvxfxg{&k@5'{5nwbӺG[S,rY_0 YZ,>,Hq53eT\웅o W\Q@zmc:ՏgjU W{ +*<飕LfݩW-V,7y1F θ-y}BT.dNZYXr|HCdZA\:KZ{1VuBV֐A*T*b}ęjy aqLt-j#(jR{lB-ȮNwMo8;,PThtCe!&WY5`k|D'W0Z:Yjy\:<ƙ@h X.|xXZ=0}~atkgu[hԼi[jJEtkZD!Wn𨋹|gl~,eg]áƲ^CIZ7K/Gx82R;TH z~Lvc5|hS-2nhԧT-('o5|DJ}%)ן*rAdlPۺٚz?Hf_U0^PtE.s͍8$db_Fu5sL53#WTfjY/eeN`짨1\$k Zǧl3I–&v嘒 TTn l \qM?)PgX!!_ K>c[ ֻM`j (^(Ip'EXLPH(8J]-p' @Ā@kߐC`>ڶPW2i0`VE:ri(i(ApD/(Z(f#39~ pπ<YQZUpUY(G-7'1 1Do{<a>wLo(}DqpE6.zCࢀW1OX @SQ|0ϩŞDu5A? 6v⿈!1_wJ6rIrM,Ja%ޅ WD&J \;% V$`R0N(Fc+},$!*I ][ &e|2nj?yj(V51J#=J"J l聳"QpbďJ1f>\ wu 4AN 0x4֙xݩݢޖ:w[$.76WW;Z5>CsȐ1 endstream endobj 8 0 obj [7 0 R 6 0 R] endobj 37 0 obj <> endobj xref 0 38 0000000000 65535 f +0000000016 00000 n +0000000161 00000 n +0000049855 00000 n +0000000000 00000 f +0000052203 00000 n +0000051831 00000 n +0000051901 00000 n +0001073182 00000 n +0000049906 00000 n +0000050304 00000 n +0000448356 00000 n +0000058488 00000 n +0000058375 00000 n +0000050870 00000 n +0000051270 00000 n +0000051318 00000 n +0000052087 00000 n +0000052118 00000 n +0000051971 00000 n +0000052002 00000 n +0000052453 00000 n +0000052706 00000 n +0000058523 00000 n +0000448430 00000 n +0000448805 00000 n +0000449824 00000 n +0000454844 00000 n +0000520432 00000 n +0000548478 00000 n +0000614066 00000 n +0000679654 00000 n +0000745242 00000 n +0000810830 00000 n +0000876418 00000 n +0000942006 00000 n +0001007594 00000 n +0001073211 00000 n +trailer <<35D8B41605234F92B1A82E7C4FD34A94>]>> startxref 1073379 %%EOF \ No newline at end of file diff --git a/server/assets/logo.png b/server/assets/logo.png new file mode 100644 index 0000000..4503da4 Binary files /dev/null and b/server/assets/logo.png differ diff --git a/server/assets/logo2.ai b/server/assets/logo2.ai new file mode 100644 index 0000000..324bd78 --- /dev/null +++ b/server/assets/logo2.ai @@ -0,0 +1,5203 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 7 0 R 39 0 R 40 0 R 71 0 R 72 0 R 103 0 R 104 0 R 135 0 R 136 0 R 167 0 R 168 0 R 199 0 R 200 0 R 231 0 R 232 0 R 263 0 R 264 0 R 295 0 R 296 0 R 327 0 R 328 0 R 359 0 R 360 0 R 391 0 R 392 0 R 423 0 R 424 0 R 455 0 R 456 0 R 487 0 R 488 0 R 519 0 R 520 0 R 551 0 R 552 0 R 583 0 R 584 0 R 615 0 R 616 0 R 647 0 R 648 0 R 679 0 R 680 0 R 681 0 R 715 0 R 714 0 R 716 0 R 749 0 R 750 0 R 751 0 R 785 0 R 784 0 R 786 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Print + + + + + 2017-06-18T23:18:21-07:00 + 2017-06-18T23:18:21-07:00 + 2017-06-06T00:38:16-07:00 + Adobe Illustrator CS5 + + + + 256 + 68 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgARAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A8/4snYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUy0jT7adLi6u 2K2loqmQJ9pmckKo+dP9rqKskyKA5lz9Dp8c+KeUkY4DeuZJ5RHme/oAUZbQ6Nq0jWdramzuyCbZ w7uHIqaOGLcdv9vsYSMobk2HLx49LqbhjjLHOiY3LiBoXR9IomtiOu1JDmQ6V2KuxV2KuxV2KuxV N18tXY9NZri2t5pACsEsnGTc0HwgHrl3gHqQC2+EepAS66tZ7WdoJ14Sp1HXruNxlUomJotZBBoq OBDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqZaReWkcdzZ3fw292FDSgElS hqOlTSprsO2VZImwRzDsdBqMURPHlvw8gG45xkPplXXqCO47JjaJpulW0mqWsz3kiv6FvJwMSrIQ TXiSSfhG+/Q0pvUVSMpnhIrq7LHiwaXCc8J+LM3CNAgRJjzN73RPDtV9TTHMynnHYqm/lu2tJbye a6j9aKyt5Lr0ezmOlFPtvkJlxdXkkIiMTUpy4b7up+wGvNH6f5hk1G/isb+2hlsbhlijhVAvo8vh BjbqOu/4YDGhYcbNpfCgZwlLiiL3kSDXfZrdQuPLulWsjpd6xFGUcpxjRpmFCR8QU7Hbf3w8ZPIN sdXOQBGOe/nEf75YLHypEGMupzXNPsrDCYydun7yoxuXcyOTUHlCPxl+qKpaXHk63uYpkW9ZkZSP W9PgpBB5HhuaZKBIkLqmUBn4gSYCPUUT9tj7lPV9F1WbVZXjjadLhi8MqkFOB3UFiaCg23+jMrJh mZEgXfV2E8cidt1LzNIhvYYRJ6sltAkM8nWsik8tz333yGc7gdwY5Tv7kJpel3GpTtBAyK6rzJck CnILTYHuwzGnMRFlt0uknnkYwFkAn4Dmg8m4zsVTLy7PocGs20uuW8l1pSlvrVvCSHYFCF4kPH+1 Q/aGVZhMwIgal0bMRiJDiFxQl89o97cPZo0do0rm3jbdljLHgp3bcL7nLI3W/NgavZQwodiqe6H5 WfVrCa5juBG8bsiRFKhmChhVuQpXlTplc50XW63tEaecIyG0+t8kjIINDsR1GWOyaxVO4fLMj6A+ rPPwABZIONSVB41LVFKmvbK+P1U66faIGpGACyeZvltaSZY7F2KuxVO9f06ztNP0ma3j4SXMHOdq seTcUNdyafaPTIQJNuu7PzzyHJxG+HJID3BJMm7F2KuxV2KuxV2KuxVOdFrc2GoafuWaMTRd/iQj 4VHi7cB8spybEF23Z/7zFlw98eMe+G/+4Mkmy51LIPL3kvU9Xga+kePTtGiP7/Vbo8IRQ0old5G/ yVzHy6mMDXOXcOf7PeW7HgMhfKPeeSZzeZvK+iRNYeW7H676lFvdXvgRLMgIJSGMbRIad9z3GVwx ZJHima7oj9J6/c16vHinA4wP87rY5Ed2/vS6LzBolnW407S/SviCEeSRnWMkUJUGtfuGZHATzLrZ aTLkHDkncOtCifeb+dUsHmKzvgE1uyWdv+WyCkc42IqaUVvYbDHgrky/KSh/dS4f6J3j+sfA15LZ fLttco82jXqXSqCzW0hEcyqKVNGoGAru2wyUSSQK3KY6uUTWWJj5j1R+fMfEBCHT9PR/Qlu6XFaM wB4Kdqqa/r5D3pmYcOMHhMvV7tvn+xvE5HcDb7VKWbU7B2tVuJY0X9lHZVIPegIyrJGWMmJbYTsW EFlSWTeU/qn1tvqvqfWfSX1fVpw/vI68eO/26fRmJqbrflb2Ps3+Ts34vjeHPi+nhqjy63Xf1SK6 /RvAfVfW51+L1eNKe3HMiPF1p5/X/k/T+W8XrxcfD8K4fjbOtQ/L/wAs6Xpmj61qmo3Fvpd9YQXE sKBJbma6lQu8duKIqoooavWnjvmvxazJMyjEAyjIjyA82OTSwgIyJPCYg+d+SV6JoXlLXvPFhpGm Pfx6PdBlke5MIuQ6xu54lFaOnwjtl2XLlx4TKXDxjuumvHjxzyiMb4T380g1DTGj1650uzV5mS6e 1t1NC7kSFEGwFWOZUZ+mz3OMY+qgy288p+RfLfC0806je3GslVeey0pYaW/NahZHmqrN8vupvmCN Rmyi8QiI98r3+Acw4MWM1kJ4u6NbfNA+Y/JumRaGnmTy3evf6IZPRuUnUJcW0hpxWULsa1G4Hh45 bh1MjPw8gqfPyPu/U15cAEeOBuP2j3rvLN+1h5WvLtan0rpCwHUoWiDDfxUkZdkFyAec1+EZdRCB 5SjNKvN1glvqpuIaNbXo9eJ13UlvtUPufi+RGSxmw5fZ2YzxVL64emXvH6+aV6fZSXt7DaR7NMwW tK0Hdqew3yZNBy8uQQiZHkBbPNVuYH0TVLW3FILFVt1ANd1C1+6vH6MoiNwe95vDiIz4Zy+vJxyP y2HwDD9C0X9JPM8sogs7VedzKdyBuaAe/E/57ZbKVO91Wq8IAAcU5bRHei4bXybNOYBc3cRJKpcS emIia0BNF5UPvT3pguXk4xnrRZMcZHcDK/mdku1nSZ9LvntZiGoOUcg25Iehp26UIyUZWLczTaiO aAnHqm3mn/jk6F/zDf8AGkeQx9fe6/srnm/4bJQtdCs4dIOp6s8kaSf7yW8ZVZJK9D8QagPy6b+F SZG6DkZNXKWXwsVEj6ieQHd7yhNE0SbVJpAJBBbQLzuLht1QUJ8R4HvkpSpu1WqGEDa5SNADqUet p5LkuTbpd3SV2S5fgIqnpWqhqV8QMjcnFM9YPVw4yP5tni+dUlms6TcaVfNazHltyjkGwZCSAadu lDkoysW5mm1Ec0BOP9nkgck3uxV2Ks00Frby75UXzMLSK81W8u3s7A3ALw26RoGkk4bBnblQV6df bMLMDkyeHdRAs+d/2OZgyHDHxI/USQPLbf53SaeXta0XXrPVb3WdCtLjU9Gt2v7eSFPq0UyqQhju FiorULArtv0yrNjnCURGREZGu89+1+5linGYJlEExF93lvXvYd5h81a1r86yahPWKPa3tIxwgiUd BHGPhHz65mYcEcY9I/WfeXGyZZTO6UZc1OxV2KoixnWC6jlb7IqGp1owKk/jlmHJwTEu4sckeKJH ej5dK+szSXUdxH9Wdy7Pv8Ib4iDtxqK9yPemZEtKCbjKPD33+jm1DNQog3+OqE1W5jnuv3ZrFGvB GNSSKk7k7nduuVajIJT25Ch8tmeKJA3/ABaDyhsZD5J/46kv/GIf8n4sxtV9I9/6C7/2d/v5/wDC sn+5Y9mS6Bn/AOaDMdI8lpU8RotuQO1Si1/Vmt7O55P+GSc/W8of1Al/5S/+TD0f/Xl/5MSZb2j/ AHEvc16H++j7038h28U/5zMJaER3l9IoPdlEpX7jvlOvkRpTXcP0NmjiDqBfef0rdXtPysvdVvLu 713UfrNxNJJMPq4NHZiSOnY5OBzxiAIxof0v2MJjCSSZS38v2q0Wr/l5pHlPX9K0zUru9l1WJBHF cQFUWSIkqRQUBJPX2GROLNPLCUhECN9e/wCDMZMUccogk8VdO74sb0//AJQTU/8AjOv/ABKHM2X1 h53Uf43i/qz/AEOT/ct5SaP7V3pDchXcmE17noAoO3+SMeUvep/c6q/4co/2Uf1j7lvlZEsrK/1y UA/VkMVtyFR6rU+n9pR8icZ7kBe0P3koYP5xuX9WP6zsq6Q7v5S1d3Ys7OSzE1JJCkkk4ZfUGvV/ 43h/z/8Acpboml6nfxTLFObXT1p9aldysW25qOjEDff6SMMpAOXqs+PGYmQ4p/wgC5edd3mvbSvL qsVOt1I2NLaQj7wd8bl3MRm1B38MD3z3+yJ+9Gefv+Otbb1/0Vd/+ekmRxcj72nsknglfPxJfenk dno91BoCX7EzCBfq0B+xIfTQkNt2oNq79N8rsi6dRDUajGM3hxseJL1d3w6sU80XmpXGrSpfL6bQ njFCDVVQ7gg7V5Devf8ADLoAVs7/AEGPHHEPD3B3vqfM+adaEunL5QuFvpmht55yJJIxVgfgoNlb rx8MhK+LZwNTLIdbERAlw473NczRPIoP6j5G/wCrjcf8Cf8Aqlkrl3OZ4mq/mQ/0x/4lS81ahpd2 liljKZzbxmOSV1YMQAoXkWC1OxOMARdo0Gnnj4zOhxTMtvNj+WOwdirsVZF5d8021jp9xo2rWC6p olzIs5t+ZilinUcfWhkUGjcdiD1++uNmwGUhKJ4Zj47dxb8WYAGMhcT+Nk2/5WDYaLbNa+TdPOnC Zg15eXZS5mmVa/uirKUVN+gyo6QzN5TxVyA2A8+d22fmRAVjFd97n3e5R/TvkjXCBrmlnSLxuuo6 TtETvvJavVfmUNcl4WWH0S4h3S/4r9YKPExz+ocJ74/q/VSpbflfd6lKsuiatY6jpe73N96ghNtE o5NJcwyUdAAO1chPXxgPXGUZd1XZ7gRsg6Y84kEfjmOaJtPJPkTVrgaRonmaSbXXqtqbm1MFpcyg bRxuWLIWOylhvkJ6vNjHHOAEOtSsgd5FfOiwGOJNA7sEnhlgmkgmQxzRMUkRtirKaEH5HNiDbSp4 VdirsVdiqd+UbqKDVCJDQypwjHiwkR6b9yE298x9REmOzu/Z/LCGpqZEROMo2eQ4ht9qAvtKvbLe dAI+RRZAQQxHh3+8ZbDIJcnF1/ZWfSEeLHh4uW4N17j97MvzQ/45fkz/ALYlt/xBcwOzueT/AIZJ hrf4P6kUB+Uv/kw9H/15f+TEmW9o/wBxL3MND/fR96hHrsugfmLPq8a8zaahOzp/MjSOkij3KMQM snhGTDwHrFrjlOPLxDoU+178u7nzBqE+teTJIdU06+czNbLLHHPbvJ8TpIkrLShO29d/pzFx64Yo iOa4yG10aPmKcmekOSXFi9UT8wkWveRJ/L+ltPq+o2sGqsyCHR43E05VvtNIUJVOP0g+OZGHVjJL 0g8P87kPt5tGXTnGPURxd3MrNP8A+UE1P/jOv/Eocul9YdHqP8bxf1Z/oQPlXUVstXjElDb3P7iZ TSlH6E122alfauSmLDfr8ByYjw/XH1R945I/zc1tY29polqSYoKzSE0J5MTxrTvQk/IjI4993F7N JzGWciuLYeUR+s23ov8AyiGrf638Fwy+oI1f+N4f8/7m9DRdS8t3WkwzJFe+r6qRseIdfhO/Wv2T 28MEtpWuqJw6gZiCcfAYmt+He7Qtv5SvIyZtWdLCyjNZHZ1ZmG5IQLy+Lb+gPTD4g6bto7Ux5BWK 5y9xA+JI2V/PhD6jaToP3Mlsvpv2PxsdvoYYMXI+9q7HJ4JiX1DJK/e15nZl0vQWUkMLYEEbEEJH jj6+9eyueb/hsldGj80aZ6b8V1uzX4G2HrIO3Ybk/Qd9gTg+k+TEj8nOx/cTO/8AQPf/AFT9iG0C 7tWsb3QdRf6qs7Fo5XHHhKtKh60pQovh3HfJTG9hv1mOYnHNAcRjsR3xPd7uan/gjXvrPo8I/T/5 aOY4UpWtPt/8Lj4oR/K+nvhs8Xdwyv7ks1SytrO5EMF0l4OCl5IxRQx6qDUhqeIyUTbm4MpnHiMT HyPNB5JudirsVdirsVdirKvy91HSbbUtQsdVn+qWetafNppvaErA8rI8cjgb8eUYDexzD1mORjGU RZhISrv5gj5HbzbMRFkHqE+8veSrDy3rFtr/AJi1vTTpemyrdQR2Nyl1NdyREPGkKR/FxZgKs1KD MbPqpZYGGOMuKQreJAjfUk93lbZCAibJFBgWq376jql5qEihHvJ5Lh0G4BlcuQPvzZQgIxAHRoJs 2hMmh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvt/wD6xu/7 87/uV4od/wBY3f8Afnf9yvFXf9Y3f9+d/wByvFXf9Y3f9+d/3K8Vd/1jd/353/crxV3/AFjd/wB+ d/3K8Vd/1jd/353/AHK8Vd/1jd/353/crxV3/WN3/fnf9yvFXf8AWN3/AH53/crxV3/WN3/fnf8A crxV3/WN3/fnf9yvFXf9Y3f9+d/3K8Vd/wBY3f8Afnf9yvFXf9Y3f9+d/wByvFXf9Y3f9+d/3K8V d/1jd/353/crxV3/AFjd/wB+d/3K8Vd/1jd/353/AHK8Vd/1jd/353/crxV3/WN3/fnf9yvFXf8A WN3/AH53/crxV3/WN3/fnf8AcrxV3/WN3/fnf9yvFXf9Y3f9+d/3K8Vd/wBY3f8Afnf9yvFXf9Y3 f9+d/wByvFXf9Y3f9+d/3K8Vd/1jd/353/crxV3/AFjd/wB+d/3K8Vd/1jd/353/AHK8Vd/1jd/3 53/crxV//9k= + + + + + + uuid:a4019122-a601-9b45-9e73-de0875928fc3 + xmp.did:FA7F1174072068118083EC4952E7F74D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:F97F1174072068118083EC4952E7F74D + xmp.did:F97F1174072068118083EC4952E7F74D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:F77F1174072068118083EC4952E7F74D + 2017-06-04T23:01:31-07:00 + Adobe Illustrator CS5 + / + + + saved + xmp.iid:F97F1174072068118083EC4952E7F74D + 2017-06-05T12:51:29-07:00 + Adobe Illustrator CS5 + / + + + saved + xmp.iid:FA7F1174072068118083EC4952E7F74D + 2017-06-06T00:38:17-07:00 + Adobe Illustrator CS5 + / + + + + + + Document + Print + + + False + False + 1 + + 600.000000 + 150.000000 + Points + + + + + Roboto-Light + Roboto + Light + Open Type + Version 1.00000; 2011 + False + Roboto-Light.ttf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 9.90 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 792 0 R/TrimBox[0.0 0.0 600.0 150.0]/Type/Page>> endobj 788 0 obj <>stream +HWn7 WVEq"z(r( hH\jm{~]a OWU +o +u +7w!pwe-ܲ·u n˴ruhEaIY^޽0>,j[O\/yh?Ur4K9H؊In>#uQ[VR*5N/#:ª.=HV,SDbq5LXXzXX(q0GUÞOZ)n3s}IciJz aHj݂DĮ1pQ-6X pޱ};17/~+_ӆEV"{(CDXELVúfa12W:@Gxt +ik-񜯢!S09` (bC.!bc36<2hb3gXI-9 ^(Bc˨gh ǐm@VZShr k puҫYj 련X],JRx =R䱴0xAӊ\.t3 Ae0RБMG8SB@5Sv@ { +AAeZQD/'oٞI(%+ E!Nl1.۬QcFfX3kmOJ:43^pg ܣԡAZGKMޕYuEW@=:l}Is{M?pYl f0q^8FFE +HO(*e6x@c +xf=G<s-W +ltU؜ Cg.ϣ,Z MyrH' 7xf>3 qU3-lr[?Cc1m7e{mx}d=rL ȒU7_SY VEg`}k0ˮt%FۭV:K;3# ڔL>,q.:[W$0 <(qEC] $ky<_&Ԟ +Ҡ[|X>+C׃õ/~p/[$WUwNha4Vɔ1Y2}x}kO2B.T<8]XgnPuYfÀ[&A.Ul ]蔶; /s"k.9a4M okm- XjW8BQ'ga7\X+zՅm?HЗIHOIM1}+>=W&}ΟF_=/ҧG^O6loc^Ǟa'>gOγ/'q,|lo:gfz3>NFz '#o#]nώ͉^'!?tVsy8p} Q'ߙ߫O;S~\ǹo'F훏w? :O endstream endobj 792 0 obj <>stream +8;YQT0lk2T$q4HV)HEs)<4_6$nR5\i-*i?p*0p\HG^Q"$Z +mtp/WJN!`CHICE+qYP9'aWZckmF\nnpW*9CWg6Hn4_n?-D&ga(s%4`73WiOr@%!"R +,d6C9.0=)S3:CLfj;LB3._/@&MU'PU_f]9cWhL8<%N/?+YhI?<7e3@#VK*M0YPGg\ +_t5^fN]V6'?0gS`"5hM+Rr'kaPq$Q'[8Of0aIY@'6]PENG?q.X9la9eRA6_Q<_!j6 +*`feLWuR8$im>+/:^nquda)ai!2Y;#=5:JcEMQ[)]J<<+hcW0gd#2([YM.oL;JX@p +Rr)-+Ag)`n5]$>kejj'm9Wp[0Kq0`jWt%AklJMQD^'=YRo@cD~> endstream endobj 793 0 obj [/Indexed/DeviceRGB 255 794 0 R] endobj 794 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 785 0 obj <> endobj 784 0 obj <> endobj 786 0 obj <> endobj 799 0 obj [/View/Design] endobj 800 0 obj <>>> endobj 797 0 obj [/View/Design] endobj 798 0 obj <>>> endobj 795 0 obj [/View/Design] endobj 796 0 obj <>>> endobj 783 0 obj <> endobj 801 0 obj <> endobj 802 0 obj <>stream +HW{pTW{n6wYX͆ݤBH$!E`vIyJ i m;(,؞TUGKF˔d?tSKwn6L3:S;{w{s \zӷΛt]kԝ;wkW{,6?}ꝕD_26{ar /N6FztiP|6F}ʍ;v]<|( +fm:mmRd#!@_ObK7 (3n߱?A?w 爾LprRKQLySpu ?سmLƭH}GbQLə&J|x1:UpkDC%VdLd!9T<(B1y-E&Q;&a2B؜pAC%ܨTLt̀:53QY:A=0 ЄG ьbp?3ӥX ڱ+X!5XuX8/+:wp <$xg!1s8e\p?O3~/a7a؉8#l`v?]k-| Fu7Q~|Q<5]d-Wauի.MH,EF& цZFf:CNi CN Yoa!-͑9$-B֘S`Hh4"dV0dЎ0yY\v#%VR,i]BzT^9n;QMEmy(§f*A>C}pls af! ӚCPR+~e PWf;=Tj3im-LbAYF +2p]TMh/-7IC93i-'*Bkd%]bZkZjډ0>ceSa_ 264cH׋ d&[ߖ#;Ԫ{-x+?S CKx Aã +.+8øڮYtSPWqxbo8VUHӳ,2DLhӌ 6ۺG L?S?n}dn"q=tzo +|踙^o 4'7N?պttBO:}DcnS^~^nN͢rY, +Vovۣ^VBvs-ϻw]V5}Ń`/._XUQ.AsJ/'qq:8yvi87py^Kn􀋰 +RݡEBp`y'Oi <ˈC2t!h~'Oi$S]]/"Yn +|D9SPR?}꿍 +}:3143]0ծ +6@͊bJZq_KsHPyj**SVPͽ0YtBSl\![[ތڙ6􊴠T([Yʳe{sިM(e;(h2nhKxixdZHzŔGWw'vovC34}7Z;!17HٙAO̻tv  9's,hvܔ>C0`΅?ιF]($oys2xc(Xx۩OWF~UsܬF!Ϡ\a j\fߍ2]Q1nOٽY/)U9ᔭr4duj/kY/:&݊}a*'}z&~kZ쳮IX}6q=͵-(*{i@a>"g2ꨳB_`FEPw4c!"V%y4{Bȩ^sOضFo1xQf J$"U.Ym"kW sv(.5'yl/^j5:+z m_@/p)iE'Kd`μN|lү*݇~},|[3V6~c6FI6q*=C(grvf$@-L^/Ԍ0Zf{FǢkPd#qm. ֟q޷&yʞY*#Kַ͌AKofEwf-o75xEw1lz&7aY|1t2sW'O&I)i6?-6( sfvvZ4!14,mQFݖ6mnwۥ5nQ K$l*TDEHx. $"^e}gv4<̜,뤾U,Sq8nGyByMN1ɀr]%Na7=1ыnut&OQ6yF+Shznh~l#~#gxrqN:<<yߞ&ڎF ›ӎ6w\\oec yCV3#"{EITP$}GNNV-yj?]^1%gt!G!կؠa:!y.581 \1csv1=qҾqe*qAB Ҏ4ql{&".}p|I3k4\#f_wxF[-5zѐҝr-$Gŕ8G<%>$/o +[Rgm)GYS9w˜=irW;EX>!AUƶEGmC +6qVآnw{W`efۚh~6]=(Rwr6]DJuF2d$#<}c2vLq=k6TYuR RI̥tzԋ] r_`9Utu sWש/vu/V*%Yg,3d7Dbjۮo `I/h1{A[QJ7eZpղ˴#(`L:XL-j!5- Nj5"\!WO)E9(1QKĈ(dz1oJ/7Yʷ3Fk,Fc.و<ɝl!30kNf"&b,Ld +&w=*|w{B.nge +T/hS endstream endobj 791 0 obj <> endobj 790 0 obj [/ICCBased 803 0 R] endobj 803 0 obj <>stream +HuTKtKKJI,t(݋4K%ҹH4J#Ғ(H +wqyy~3̙g<3Y9El +@ ]!O-@\+BVKK :OX~WCaiHKL0qY `5ck +X]x= 8 XĿ׽>.f#aPn D^{y8  dp H st:Y׬cxc IV?S!:_9[YbQP~+rA +ShHht^ '0߅™kYXY9Yqqpl'WzEE$%D>,^|t*K)%/`\ҫ:&D [7dplDa5|mb4,yy{e5 3⚅,t+whlA   m k +xYUH&%Ȥ +qO'Mz3KT@v[NUnn^\o]abTrtlmE]e~U+jאZ:zaqi5};CS[\_ۆwCaQ1;>L$Lz}4:%8M7l̎Χ/}XT^]X>\Ym[n!ycskkƶʷ;v{pIs0Xݯ3s󝋒&$WWW*)!$$%!e$cHNOAKIMEq ƕ;KLw@YX;ؚ8^+DspfKOTCPpJ%D=++O%$*8IZ\Z^UK_wL"dx]}>9=;s_G8/̹N!Gz[<=2|B}PQzlH0Wc(Een|Pds::5&89yFT"od䳔i/ZK^&gd:fgQl kJХeJ*+篍kj5U[ZUh0|em6]B@`PpH?QM1Msψ*iϛ.Z [JYZ)X-]R޸Ѻپw?@?5 ǖ'vNg +W3gLC#u!MMMEvAms˔FVNA̝GLwA̬,llؿsݛnͽ+!B²" 'R&k?3?4+:6oT\ұڿ6VʝoF?LT;:>::>:;eqvx^sawݥʕ'_EFO\DKLtAnFF)F|ԭ6\`@z?m+F;LwiAhy͖)Mgw~_ @ZH_XA,"F)%/*9aZ:Q,\B^_AU񡒀2 +*'[j o5[uR1uh`fm$1xJgBdrltlyyEe$feg-g#`dGbwj0TOC9; ܨݿxz6zx8IP=A!.aAxۑϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{T?~ò~i~L}~cbA~Dad~ty~W~O>~\/~|~`Cx}%H}1X}%z}K} {N}׋<_~7A~-ψ||Dz|+E|[s|z} ^}wO@}-~ċ {Gu{Dz{]Ĭ{f{Zx|[]|ϕM?}R<}Ǝz]YzHħz|z={LNw{\|=>|v|ېI8z/r z;bz'sMzd6zɬqv{D[{0> |;|yyaIy?yazYvzݮ[{^=c{ФI{R*y߄yfUy`VyyuKzZi{ <{z%zȎ~+~}͇}W0}3}HtЄ}Zk}=~zɇ}!~Єd*s}Y<9wpSwuuVrUW؈|;,뇔{RsѲ;:8q)PCV:4.8Ȅ2񡂡?Up Vu9S c bփR.ՁNn U388A/ͬδz6߆өn1T\e7݀tXT)$̯̕6;eCʷˆ imw3SƀV7M +\lGNػځNāa5tNzlߴS<H6*-N}o2ن N%է>w֣A}⇤\fXMݘ2, KԐ3g°[} +0e6M _1 ? 1ӣǾI^I|B̯dܪwLe1$: rW] 1S{z|diL g0\ U{[G{!{ ޔ`{&yE{xbie{Jr|/c5}~ +~:f#MKx+Ca|uI~.yW ώәߎ%¡唘[w!^T`^H*- 5GȨ瘎=Π4rv_ҍRGf,ދ̋|,ƕ{ Ҙtٕ^1Fő,;',#h%T,Qۥ{[s:9󅼓&^!Փa@!" y +.Jl6mHju,bU6+s hܸd-ʥ}wi-sun=0Ľi-_*)U_ˈb$na+;ϧT;ppA7C4.*Iߥa8Mm.ACi7\j|fiԫ)]ޭjʄU]3(í whJch-4x7h׿*P0H됎L랇ڡuÂ,{Bz}8vggҲd[!XTZZ.vlAg +{;Sm`vؿ`~?ga. +3Ì{L^WYe4]L7ok!wI~Ira^=C#Zh`Wu}p)"z7ff&3$FJ8Ҷ5m +uR_,^VS&aR~PfLL_Dw*`\-9]q  TI6)>u6 D`e͢/xqY%9ʜ;åOd\˾P&eRz;].R<oΡ]P{?: r̨\ʻb Ҥ3|m s؟W9oZt]RnÅ\cW#+nI&gyAjsN06HiD'@J+a5V~cRI̫vwtUc[3+?F|l(iU^+O?Rs1Hqil$Wþh=(RE +1BvџnF/ BsGMY9>ܖ3ȗqI ڣ5V_1ȣβiJiX0WVH[8g_/ +n3 ` 38A.|f|ј0I6bv%& ;Y㿜҄#dD.).p'3J12K[Duɥ$s8IƊ.z^48e!R6}vcMiozo0'=~i,3:?-?oS,9w#ROa; ?pB +֞IO ݟe#}ԯN$\l?], y,>&Рq]yh0AqK)ĝBFҍcH:-h-ǟcf)K9T127]qEjL<>h;|U +dpG +ƫ`&!8al`83>.qɂnA9 +; `HByg KB*k㰗2fF=#OM eT? +mTm_OBۊV<ɆF('n3uG~Ȯ#7Њ9[١`Ns.P..콤 'KnpF\? B>-`NWOOWBlfxW^b-_x&*/(j_=߆󑊢zF`LdE:SNʔ@S 03|TOKokto}bFz$4-,.m'j*J|)J6BP ^3ewܫpX.*,07xPڳ:2XOT21|"7=0ߴy}ĸB)H[Fs V+̯+Y(I(x&9JAI'tXmyG=X[8TK)2<TSRvxlȓGO|g/{>4/gRFȶ&A52 uЯ*B幃AuFǞѧuD)B,*?n` 'qQIzK֗4{B_g68#ʉ2.A$69!̒ub1&D3Qx" >ɏnνxVG&TۨÓ)sxd-5KxߣD&1±jdGjJ|J{Z ޲f6/vTp̄ub PmBU#gBg˷)-*E +ar>>Ƶrn[ɭF-IByѸP=ĶKUC wG D}"vN.p]]Q8uY{#qCv}sax_oyiNr( d8aw2CQ}V8UWO\g \yk@dcZt9$u +p-1z(=f) +vě92 w u煼ת#{P6+Dq3HIi%BCb!kc5&U ):X$܎[b2*@PkcӘdoTB_L1Uwi")=2#pI9,RO>T@>;bnDPuCfk^^\G~ oLRcHqܮ=-8^5Ońy*9:-\g8:T<?*C;[yX+I;lRL߭$DvYTQ6DyVmfy%/sIsmXP1Lռȭvow)QBb_LVwupeėO*|+](uHװ4WU.{ 4\m.QwR~MAiRz+%BKz?'{ k҉aa{H]sX}da~3_auQz VM\ĵv5I0LM)DŽp1:5,&4 %!$}ocޤA]R^xT◬M&/B:DwA24?cd&g]5b4a?iǐ Ĉ.OA 6vfvsd(5yTH/P=(a;zUs bWxDa)Eʼ $sgPJreY3w`cFo0|U[j5k.5J&eTor È´}I lpjC8c5J=g%Uo|L58E" +ِ[Ak]J͆VBM"{NrQihЦ@Y?6^߫ZWٯ]ذc؋hKSLj:>O ɲ.ݰQ{5mm<ٷ?^v"}ъw9O&vX7km[ ,70nΒ7|eP\I;-wgFN cIP#qWI ;NٶA)H~7i thl~~dzY Cx2>*c&mb{9f1X*L #> + V@g蒼]7n249=MK% ;,F\j 1klZi؊ΐ.|Q9а$_.!;̿lE,ɥDi}D3^a`Y5g{J=mɳy3CM'jM-iЦm n5? SJE+U~ ;q.tXd~~p*QeS%.Ћ"ưBsZ6-6[\d;^z4`;64藸ͱw;|+&AfLU3XTm)lF'l VɺgcGObbɜ9;v \CL, >B?KGCe"z -@EHILp<5'҉$>8#gL2m c1 c Fw)P+rkC qp/u8#!*g°Pa`vu@oH`"Ž:z_Q<,D>'ӅWP .`xW3|!6 +5 El[",0 e[Oz0~lUO+&xkPc|u$k.?{Qp""kr6isVa=~@W_ +.<7 +2#h?c~m'rE_xs6aG+K 14L^kUp^^_mS^dШ'>}5$:τ!E[bJx&n t(m;ZsF5uqX.ՂBqKP *l%{ٓ{'f';,TT,bhUq2Z3;}T9vwRR;GD + K*/@hUv$j!@ vyבm,W|-͢ ^ ~D_􆭍"ĉ#c禘*X/Ϝe>|XH;:)d9gƖ4aBQ4Ew,C +ۯBU#>SV$L-5gV ϯ*B#} npþtdU$Db&$^\^&Z"/˺+-}%Z:}9AYu rTlP0"~! ͚*@5K?߫Z-P=j>܈[O?)a5 +?WUsy5^(ge${Cm> "Gգ+$踿ϫ& Xw8?g,'ō="/xNM)'EFqrf CįQ9ZY$r!6m)4 V9kJ$# FьX٥Cp[ģ)CS;rFP#ImKGɺzj>>X9,ZL-jIbkȉ8˚?vtxPIO}_ay@:|Ve6ubd/e3<֭ztea'cLaM +lz&,f^_!?l2x2Xyń3D)\?ye ~4O+9$  +EVDTSؓ7X?MM!ԼuOtP Cbt;iްa@gW#@4c9.Do z2>M5i~u0 qswQ9ǸLt삟Mz)>kɝI;io"U)]$YL >$$T:gUo$UK,C`sCMAJMÄKC(g]ٮ9sUG0?L5QM%0Ol5&`Ƒ1,x'{k+mY}-Js#\d:i/NK\8HstQ#-ND).s*Zymnf\1l{(E=VGW9s:?wǟQZsC6A1ƃ6K@8OUY^`7j6@9?,yt4&}"T- +\Y&kVx녣391ٵqQ=beMq\`/nņ|2͌JkzDmͫIR4\~5NlօKɁZ]TC3l̅D3jSS)tWw$IX[wV +WTUw^PeUhWE^ؓ~Wchs sIg`wgs (5mr] B`7JfAaA3ƓG?{O[ ?xj/Z*7exXz Ά})C?`KcMՌ&)Y5J]q':]$؞]Yv x(ıH1eU>_0b?*񸨎b¤،D;Wxm]|N7U13*;.=>SÜj)CM>.eI1/QvН6Tkk+Ɯn\\FFV#Xde&~WE7"bju^I@j@bQ Wk8w_D ^z xZKA _`T}] +x}ЁM0S,rV+ KO&ƈ`;E{irf0F] w86f fm_8c3V<)r1p +hs|p!QP'Ղʛ2rӤej4Y r, r?4! Uq]f(*&umM+;1 +-c8CjL=L1TDJ7>)BH*cHY}~xI,{7WjWާʇhg_YovMKiN> QRǧ}AQj^G syJG"?txt,L>֍p_>Po$^<%}KDS4 +*S<ܖyd;éIJ~JMn>ȸcI6uɖژ䩊i77_5W2' 9t^}/8%wd0k)ͦF9kih3ShPBULzs'0$Y/L3ol|f ɪ\AW#siS-O^I+36xas @M +A hm45V-' ѵ1S+ ~*%~k˝ʉl * +lك=3_2~OgPs +Ccd[aے{<ХjA {! ߲ۓ;O'9+wEHE&JV?fiӺ j05瀶bhWZxo=ƺ 0zhK5mov (YOut;e=R*yMVn,$v:QڳE.yVl;svn,Wi.[@34SD_!MF>J柣ND @$Y~-CMu (+lBpБ^#$~2è /@̣6 3nh +;۪.3Fq3\َvZnZ"/vNFNJ2V{#ΚVse_쑮Ta8C¢!Η>FL\M{5eH~7;F AB?VY=۩Q i9J.sӿc%FVbdեiL`a)kD=W \ne>NX7Ƒ†2IYf-to7/~Uas[`W*v3_`~:kjR("E +* +e)DDIss,f_n6":hmh+]AqñQqSa9{~8|~bh6GZĠםN\h+(E30~kTMGβ1:zka'LG2>,gt X&@?e% +=@Ihs)HUOeX^m7R7~,, \jJԌfͬ8!*]JR:WR]Mɚ PZ;JN.8ɦ,[r*Α]MM"waX)Lbjd`>:?|:?u>^G$fa. +ʥ_S%ED8 J=ĕK{6r zGG Ui<Kg"^ q +I6vPWy^,uc/5@:ǹ+[N+li{P#^yv,ñ-NѳH⺣<֡gxV</nb6󴳜Ρ +nhB˾PoT(W##ĉTwZU} w-vT-9O᭺HIz) z9R'dI5aZGS˟agW=.P1ٜ y?2X)r4VaGXBe`9Q1͚@85$W?D}z2* +pt +;Br\ܕ'> -vCNeʔL-ʌqKHr 7I d<BgNelB^փRγF2AqCR&t7߄{" D9u)Cw1t}?"'[7o̩~1{>Ru* ʖdClutqf2[l~{S4>J$.nQnlP#x])By`r+wLH?VD:|iUG~ժ+&+Rb gP>}WԹkQǖ]WSkqwZ +DQdVd24KGMvU35KJ~4&jwJ*y;X߉˔O@5hw)񘴕o-9E:_̂o&6#V(ѽS-te$ פp}4%4mrnzhe4KX*KÃ29ʩ~'Ǥl|O5ÍB +;^j㛑Q`exH;J\*`l˴Khk +&tF|(8VǡܷR:ϳoG*UjSKknRgl ޅ-6&Nŗ7O4rGmO[du_TvY{ ̏Iy\aRKy&P7ݪJ)l"W5{K S_j0WSW;wixF1^lО伴^'1b%OAXhq)L7j}=9PX=n`ɗKX#CùA *7{ jWܴTByufכd=Af]F=_u*`q+_i݋\^`BaE|S&%Z a8+QgQ[IK-jIKr2Tcju=A ʧQ"7{ٮם*X|,Yzѽ}ƈf:jCo[>]x^hlhNrϳEDkcCǪ ת9c Ht<)}z!hE~DBӳ2S͆i{;ouIp??砃46ٺ^"1R<-65sjpCSjqi6dzھİ紈 41.$5EG9:=ob쾄 v#[xﯦAF+T(C@RQF772I$^a$Eq>.AEbiO0]ТK5ΫPÛG ZdJ*$d ^}E*֤>?Ƅ$dO _tl%$^7[KSECqz"$]*B]}W zT[Rk"n]EUYvFUW\B6-RB^Me2B4/wͺh4Ek5˖<1U[tD>Q!.kR涧7uJc>c +l/i^3;iڐ0sĀZnS +qW7Np:([568ViAFޜ~h9Pldüj2dO ++61--1Ewv =JCHW34܏&x8,&#Rc3Dvz6RSyu_N/nmكvT֥Y˼?RFװKzn9Q4gC^5l`P\ܲG&ޫ` 9PҞٲXr6 +V4,{a؄\tcY`]lǿԾar鴯؏=b!&Yb ^[\aYt$w +[R)i[{$7f"o Xp +zBz'hO|Ō4ǐ|-j +:}̴a%Tv5Y9QK d0 ?$ćH|#uD3 phrd@,@XmVKY@ou([8#!OM~.7SoJn%OG" +Ü3N|/'O-R_1Vh&׺ NPz8de 勊ZTH;XQ6}+'h_|ȋCcuHjBA,NOS{3 L`]1> A rxӴ*E^.ؐ`Q5 v{`=W6뼟\9avGOXc& v1w~0W:ʎ~f: 0/˵%m KRKAcR% P#CSߥfmD5oEx17B0<&Yd8"1wܡ5 TaaJ3p57A>+yIMcu Zd?Bk1x-rsV9sH6p]DGgO| y5S$aE`$Ls +[Ym ~u8p`6*I ߕ`S88sn9O3nXOE /7f^lbN[PBFO.9Z_.5>F S̉R'}ΪѬ`_dX|{dHXԾ3QlZe7PRqشO5OkZrx5u`aǂ:*`T), +DPQʮdߓJRk=H+ +*#u)h) )B6s9߹瞏HZGzGT"93hDͺ sr|b4y $TK "$I~$v(B#].qi?CN ~ޱ|ܷLcOnT~vxj̦5<.f\K<2p:CpSy,66>|zC +E +T)f/:X1}J+>_~Q;^ㆪvs&۸>.k7yZS:˩㜍rݖۜaKa!l.g57Kv0!;ڗfe %]"XT J3aժlwVj=v姠αe=bI/gH& :g,(y 27>aba88fVVqɌT0NɉB`( _"fo! t}Wg_0}HX 9,Qx=~Jٹx>ӱe9M2mFS)Vk-eZFF٥btg0O?Dǐ%7eyښ6WSCyeUS}l`a8i g"1лJ"|PKڝc,$+&PvꖴGBoj_t4I vqf熚(eC!b׼^SbYi1¨;2W`/7uh?4 +!z@#(T 6 ^!R S#>E/Sq9z_ /G%ӈ0C9[ۼ@(٩P ,}XTOkpQȫUG6 x2e,> -?ϭQެYz/T5FL^`tީ3\#̬D:,vw[mDW)TBZ`0Ֆ`3tBQ˟kks41y `\޸cV#z`XHhwA0چFTyqӵܫ*F˪%*/>9 +gS'"b'zL=N)cs*bR)W<#S 癛)K +&L\9WtW!Y17i*%wJ_ 閥nWJ!p-0T`:K6B+SzlL,~J#ZLHBEe߈Eq1 +ڸTD}bB;*OTCnՍl$OYQ0mz7o9NŻ|hDV[Ve֩b7YZÖHl~I)ܻJ5oOݑ%(,hZGҼmRd!/NEWutV57z;jjs^^lDǾ0-a_aL؁w44簍b^ppi&nX uƻ-݂ -cY4_g ?jGIfH %J҂[%ϩC6OzvWzoZtA$?z;ؼFT2/+0@@S<@>0bSuqw;j4S'/4sEթ(P[V^5ƊHkg/ۄw 0*֭ ajyB5TC J(_F4!m, RN ?S9 :״OfOV"յڇ1,V)S@._ +#Q`K|ͨ%cj/&\: [Ft^Z"q٤Jm뙊jMarח`VCg +w"~>< 8i}XT8dzQVY<p%HG/Û`rq;Nm~Ms\/Zh:(MXа^F.꜋.Ys}5`a((X0T+JS 4&~|iB!! !)$)ʰ WFY]E븎3x,˽}|dc +|i-0Ws +Q_GpRjy0׿tjT̎ԍD1څڍ›N:ka? 7ek_%]a;זF=9-b= &Mm0-vD'^j+/5(er^+EL F1$1KWE|fOFMKm::1`ڥfXЩM*i9 +l?+Lw?-Nx͈wɳ\C0瑃f sM;iđ`$O0z*RٹB9@"k5v~.lB?ug]ed8JAj͹um.DO^^v:y;ske+,L¶vŝҼخd_5Z;q#k> MU\J{l*͟ґ3Doy"UDcu#H)BPit/ v`_Sʝ{e5mpPpy=-2[m+v6*.WۿSǔ] +^DMk,2.#ɲ\!{^I4Ԉ.~çlDcBU\b"c jvJG|H`_2rHѥ tHHBaG :Bf{'9 +[jaЧe +&hz6Fdy?>gۑx&l$^:^nx-'-]O 5@S Uڏy]Tu _,zWPT|BJ,ɕ}`8ߴy?p7gˢu\JO(_vOUue4+Qbi?A.jCxyRJ駥Pt㸲rTfdd$ֺFR>PaL'v2M*׵T]`W*cD*hAe#"ɆKO9JKL2J( KgK3jԉfZnL5oM(_>FOӹGi}<@w#Ndhoo4Y ̾Fٸ2YAz$W֜5Copli\ 32l;a<;S?B>zprjsm1tZc̥{s/J{c*#3ހfϡneh->Bc9SJ"չO8'8ހ `yHϤu-*` x[c')Oy\x!QS9q*;$;d'=NY ,|ܶ34qT=ka%hs䬺UX7Fl[ o1apuxf9QGk4;e +˸7荇5xB:yZdͫ,`2?_a[0~9iY Fs3g Ë9u<,yx87 1Ja,O@/gO㔛94 |.]16'^@1'p:XtwL,jVQv@wl{έ̱\?R^UV\GI+9D03oyd[R<""" +.2}"!<4tH~(-r25DH@l"K濣,/S}"+~wF}V dRz,:w&?C~FqJ}JݢJirjzEgU#p]ZF%+[PjewVjlW7wR/*C%%jGx @EFH)&0_Օ|Xu +DRNXA\0JSH307͛73 CWc+U#r# aQOL4Eљ?s~{sIy?y>ҒLָKd-ޣJ1v*fH 6hz+~BO:IQqZUՍP[UD#BM >$ z|?^!J0W8N WzXfщ@'h< +%sdR۔e[$z,Z2H5[&Ht L UO 췯+52j&P6uRɮ! +a+rk!o4 `ܗP)f%VQTF(Z]s,TR|O)O?ho# ]6yл)OU,F٠E})gsٴGyҘp/kw~˖I'Y;TdgYU'I8@F* 8 $I+A2((+y8OϋWȗE {բbW"@}@C׌teYgvֈHofE`eagbN_4!/e%O;mhtWv6[iyFy4ʔat V] au #QYm3rM/q{~tjD 7fiɷ  . =[n`4qShBrx_5wԐ %nQ~x'G[ `+qb]Q2Ըi=UGn~ڋJ(Aݪd E7Kz +M]!} jnh-Cզ_魺a٭Dfrj6$-4nUZF)Zpux'@]U/ٳۿ3Ug`iU}ڰULWu+SU[;uXJPvOŀ{$KF,qQruH.}imfZh~atMBb0*iWC䶧jZmn[nKfi c+.&oV.&ʭ{5_s9dmIA. *s5: 1Ů m!|fl'6#N +Z>\oMkCZ8)*bEE@(27{I" $!0a=+vUZŁ`-xEJUǺ +~~7TSsV6i1=2J眆Jh@ Uu;7!0 +߽\醮%-;=.e/T7D$v{.ʫ|ZѮmcDֲ+-Cu_{>1H1]"D^nR ٺ:E3[h9 7TJOW+3 vœLimc @6'[c`Ǧ8v!bR{1_ӵuoPE2\@;4"mO m{ ߺE1dA}C=WB}[3']\PJG5VmnYG Xyahd'J[U~ vWۅWo]WnGnR9H7ѨAu 1vZm]lUrTVA +sj6lhm,My4A*0vJR? Ĵ>2C!*#q0MJ!:ŏCR|dFa?2݂ch3dBzSIt?%LmF[AxYGҏ0m;GY1űh%[sጒ@9 q_8G>r Wn)jodEzC.qJviN&If8bg + v|sd%:uTf&L0~p.(RU +; _)w%$/ t# +~#u`u[w.qsY_-*'̳ɩk/)2* i9$7fUzflc9}],툏WYCIkS-ty7>T! 26Kݲ m&cӣh' ..+upC6&@j5tdP0=I˂Ė +C{޶$tR:(ϭuOR4$=jluq1?פ9Si|cqF!_z^SK}`d%DT wV>;<'V=(5H%jWMV#9YD2֓p~~J }D]gNSsjJmn->,vg&SLl#>^i8ʞ%4'RJDhRN0hBA0(r0K+aMY|"EGE_R^v4/?m[˨yN`K/5[71[Gؒ' '铯RGhqꭁ]>iIX +5'\GB ćd^ux+[^%e ֪pxE + 6%!Itި@Ҿ#% :*h$r7שׁ55׈Ց'I+6*ЮwȰ%U#zD+Jt BaUؕ 6}uOr7dP Cu}FEua7RV"KST20 EN{^lkƕ$vW(,F7b ˢÞOy<"_).kh[n 9W?gڈ7yș*ӼuA@ OpIRrP($e[iVYR +n#(aFq&mq3%\g?%ӆM5XD3b$ʁW ƿ5&͔D4®KcᏊ . +1Zo +^`~¿`6z q aXǰ)Ӽ܄'84 n"Db.yC<K d},{*h +ڸh>wMv^ c8Iƻ(~j? +eoyl/Dl5Żרpy1ܣܵ^004{ .%CA22dWuQ>okL<5.ſȠiffh7S-|^TjX[wCY*sG^1Ve֗+˃L3 /2y{+.;CtJ } ->٫y6q< WxA_PZ? Q y1>yK\.!OqM +0Cl];Sk)=RZ@[ɷ5JBeǐ$Ni"0 -úR4H~9.☫|Dϸah-)r~"eoMK%4 _7"‘e +QD~0T.>"x*O>酧.Ey+HVy55RWsEk*PxEGB;(J X(8hiqmh^ 0`}_APWDLZ‹]<4zG֦`oyZR|u^gCF#nr)Va5ƪw9njyIt +xI1bIy>}-AگOShKFx6xqqQ +3SU\ka椚̩Di~ ?{>J3mtߐZt]YNju]ɒQYlZZsNѴѷW>Sݥ0Bj+7q҄fU7m :8^;#eտ+*,_CY3MSU*LX.jQȖg_IWJ5a"9R'C\y׳qH)VU-Z.\+Ѥ/aen/|F[?SPkr" +^Y>VH9 &yaIxQfd}+] +U.o.=q-y][viRgk*`/pLBu+A@[)&PYQ?im/K,Y*gu(i2`؀V"fJSs=RU@7+>dْsmY)w=U?ο3D qjv83׽} 1r@vy:{Eͩԡ.޸,珈~CH{ksv_l毁@"lOR."0Fl]]C˧Mfi nq˶Q{56ef e l[IuY_(i&;to 5kZ/ jjp~Ch⨿䦿iRs!G-֠5 +&wa7WAƫXUr8+}E)oVӃIÌ}qZlh<gw +A?=$6-ޡ|,)!<*ǘ*z!8߀ϸuPpD|Ŝe=sm4'ҢؽYaPOZ(vj?VGgxI=V-̹uMCJH_-C]B~2A\8*E8PTΔTo 9/whaߣby\'F,Ռo%wU/ժnM*T Ƌ{5NJԢT9L;y _fXD\uַA:x")V%V/*]1# )ԋ@X"SVӅ4u.f?Uչk%Nj;c~?]Pۺ˄WҌ=V듍1 +E ֻqd{q׉; +NYHdfttc #&vPtQjd1o ­R)ʽ@}<7 &8wyybH04͂@>o` ~M`Oi#T2"-!NSn\ z$SC%Q%;OzcT)!M.wf.Po1U=Bl1F#F0HD\u̞rڜ*ujQO5u8E$7:"І(UuANgulWYE*Z"cT\kTxlx)$8(YBIY`[}.Bb T$=U8Oŧ yP-x$]0_ +j(sOH|/=wKR` ptl>f*ӡuU<=Ts(&zpKA?sLo`N0Mq+~*m-~F7^5惬H]${|-Ҷ9Y&=X'Vu+^ϖEm +Y/0X cAdPc_X VRx6b|C6^FeC]o-F?f7Q3V>͝yFsy]ݯMF͊k^NնI#FZ.7ƆQfeϫCJn;AjB JFw +mԗ6t(I5beElXQ͌ i,)6QS 1zJezVBf ۹ʹ/ HQ89SnE%o-4NJ``,)~utyQN]vحp+e"xN6y*,7$'x\CQL[8.d@}CɏE)1D?@晹b$?7 + YM N| _Td'wa}0Z<9|3閗3~o=Y>l0Wb=P1jmE XR[louv:.C=;.a.BřS[nWJ3ǟN1='\Xr8۲:KXj6e g΀ap%z"K1.c1ɇzɭGTRiVBe-)K@iͬ!u@_`&2q up%P +SЧ|NWP !o-t_ nyV|ؤ賐e`HʏE=>\Tǀ|cҎkIST!%Gu,%[IR'+#T}m3\/df)`n2#\M(CQd6flqGv첵).Z&wITe{JQܕQE\m`p`Ҵ\z[v7OVo9ݜQ}$SSFMWdnyuя: *o[3 O FRJ0ոl+L+&oE+d- +@?^fEkoo\fyJ8zΰXmi  -Nw}OYpz&@>gݪHc. ]7Mz#fe"g\a@\qyºJc\3ܔ r'WQVE D|PLs\h_h#9Z-TdL>˼!WS/bniA3.1Fx@Ǡ3UNN^nPOZdtvWO&-8ךshveSȉ`wPU_cař=շ}m`<<$+UV66do88{ηzkG}ڻ<<7\jvg!5M!w&GmpfSgO3x? +wZsLRq/~lK]QV:om<Q' R]AMXyu ^ȩ $}! 9LHaH8hʡrTtD-*fY]]wuu[bgg޼ߛ"ȹ I7HR7HBHudt *Ჲ=eJtj| #TI/W?{ΝO^'`v'$^E=7ITF2˵7-^'Z"[x ;[U7,QyWrr9E6cy'I gIRm2ZQ +{0K,^H/>>G@l`T=FZnZH ѳ$m¯鵩KA3D;w7ŏw^J<`i$M_x8wU-,/h!pbP1|*k _U;N45jX_:]$ %ͫX+é Miwzz{7`fOE5FohX}fL}k%Jq_b_A54WK'h?:lTHmm. m&"X7rV7l̨b]r+ OpK[{0EuwrfӵFajCCPktMݻVw[FR(Y-VE8 P?)p>͛5 #TtF%3 qhk ;`LVOpZۓ. j&\Cʡ <*g!r)J;ȁ&xK0N\B&Գ$bԍ7fpt(0H23ӲG1d?ź +bVֆ|\[w+tjj?b7hwJCmm#b.^VBDRb8E]4J 7LGc.Xd/a&ڎ @顢zQuֈ4Tqi˽èb˕ 43~,ymoθ[0 +l} TCuLBt 2ZW>Eh@+[Řy0= +sU"r];û](̏{e E=ma^2'FKv~.Оm0Oj(esߺ Pk*!3IBЦs4{^|{6k\* }XYǠD=A %$hǹWǂORV UBꯪr+Ca6 Kԣe :Zڿu6&?W&k).]%],lb7MX][H"}WL)RIrfr?AƁY&I~_IB${XlZXE&|w#؆`_vߢfu3fm89?9 +̟NՎ`jz1*.@爎܋`oْJ_+-4α6@/DWEjE}HRDl;Y+ z/1Dѓ(z)oι&;.4aZ#gsbZ+XWi;<~n"( M'b6!G lP<^\nM8--aG+dyXP^s:0q \p3bWu.,R&rm#қs)lej(^ ,=/FV6fj;ex%Dk%!FW@ao2QTvs 5h0B{UHiGCOzL'pbIq+'_1Lv +QA%$[H~}{1fKٲ:HmWS +ëd}2w7 j< O7i2G;SWݒ!@YsZ~*PƐ6xQܡ/9i7cGHVf3R>K2jZxH"Z")vHD} @} YJ64T(P_(*C]miSJqOZgA(ny8}wν37;?߇*x"D6HaeZ +5K e +tE=H\ƒW8 72ym]Ly 1N<8͍@:> >6pӹ$.7$C$pA)hJewT*FmKg-lm*{{v\ܲsJa>3_*ݑہ>V5|WG_>RR_YL!RFjz S5fځO2< `}I\:XiZkRH*4[(xX$u|I9̺TkVzl_׼gC%*wXR nY)N.9+wZ[E9ľWJ%wp`Nj[.b|JOsdW,R~#* ĽyFdwCp*L(8OelL˞)A vfFʹ.Knd~A򥾺]Di(i]YʯJߟ?>w[侾7KK6w"!eDp5V* 3VEa{:KoEDcɾJ#oOU44lTjFk,>{S?ýSk>Su=|j}T +SU.nk.mcŮ)RxbT<TV*yÙ<+`RC;S^0-itp<ȗ2IZ_0ȡVVKHWol9=fd jb%}DCy{sI*{ZL1r`n}+D_*Uz3}i779_kjxL+u ;FxL.mmQ`sKzK#>&ޗxiBV^\s3_XX_رC+ҭj|S kϽ|j|[X +ΆBL.?\DCqߢ7nO(M&JOiݖw0IJLM,NCOYPoQRSTUVX Y#Z:[Q\f]x^_`abcdfgh#i3jBkRl^mgnqozpqrstuvwxyz{|}~ˀɁǂф{pdXL@3& ֜ȝ|jWE3 תū}kYG6$ڷȸ~kYG5"ŵƣǑ~lYD.оѧҐyaI1ڲۘ}bG,{W3qHvU3sIa)\ Z, +     !"#$%&'()*+,-./0123456789:;~<|=|>|?}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdeefghijklmnopqrstuvwxyz{|z}o~dXMA5)ۈʉq`N=, +ٖɗmZH6%ؤʥwog`ZTOLIFEDEFHJNRW]cjr{ĄŊƐǖȝɥʭ˶̿*7DQ^kyކߔ ,8CNYcjnoldVD/h 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$%&'()*+,-./|0p1d2Y3M4A566+7!89 ::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}v~oiaZQH>5+! ؎͏Ðxpjc^YURPOOPRUY_fnx̰߱ 8Ql»!Ceª9^ɂʦ2TtҔӲ6Lat݇ޘߧoX\[VL=*b/fMq T + p_L7! }tfUA, !"#$%z&d'N(9)%**+,-./01y2g3U4D526"7889:;<=>?@}AoBbCUDIE~% ہ‚rW; ϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{OX͙~ʹ~y~eL~j~Qc=9~|4~cl@~]̳~nf~C~لOiZ/gP8v}6q}0}>ϲ:}i^},~ ׉_LpK-~~,*~&E()D9vyowy=TS3wI!D)J%OBvwN64;>FVWm +S^Di*bPkpة?%"1#!ϼK`L<n-e2*+) X䥂C@v2l Q?(=0q MzǃIz7MEY; Y@K (-\U&>rI^2IMe;Ya"VN,S;o_%sD;fƎ.R?l ;0Dq>8zDKG)3o+&<4@n͗0EO94#ҐnW9 b_7}B2yːv/ąJH삻Ȧp$ȫވy;Æǘfo虔F¨LsI,KhW2!AjHE^τ _wdlXggΩr!jU)[%B\DCfp <_\?k,.wȲirJRݐ=>0+cvZ{HllLVAc۠ ^{6oCҏSمbȏ:sz 7jP@Q;[wg|z30Uq`!P-~|X3+z2lIђ:_p-FOJ*Yr(".O'qäfrCRJ'dc~h!€?`}WzBd;hѲGϲmT SAij9< +ߨ%@`8xLTqė=,Mk $hJdx_r̰gʱhtG,KytomVK0X?R=Џ ]ٛa`sʠ7g&Grŀ?>r&z`b>&z%sxbw&{~څ]"WR%c"zD zA rs!֝=jcf]rmANJl$ے#ؑ >wTfGFF699<׵.'SZ*˺#-Jl.ZZx%m*| o 2ӝ_TWK4eRsu33'jRFBWl| +Fgml0L1, y+Hu2f;[T0BE{:qntoT]okI, + LgV_R:Kϋ0dP?= vE̷փ(M4m\Tk׉o,H=Zw/EI-LQ[ 8F/g֖'$?[u~fghXjݚ- VImKՀ,%ibQ*e97WKMYiHtXTBUDw-49#iԗ/r]hGވ/ + +lD2 h‘%TTT*Fdw">GY?"[f r5ʊ4`TAo4H5rWS8Xy;$Yr'q vUPV&4m/5LJE:S7Hvy.. kPXAl` +,e: E$@BKr.!{A$A,CY[EA;| TJkU>41aƜdcT.Us R&BchR) + Pd;ʟHbl?1;_:i^mMh9Ӝ+,x+(‡j3=P6u>a}&b (0=.À<2&m%u9_~zL!S`(6͟>թVlW䨸m5ypg!2< PR%wC>ubvbF.0UK$K;؂P,!rA5%\v" +[2gwdxJ:_'Eښ_+^Cژ I! v,V72UJLNITUKɎIy/R+=+(֨v6!M @PB%R--3|4-)#ͯ w.ܘ<;b#;*>$eG +>3"و~AZ$xOUx f𜓜x;٥Q h X(Zx=`dš 8b†id, ϐ!enZ +b /޲І2P0~ +1baktT ?g)˧9 С`.ޓ`>'4\DRdPaxԗ?i|9,t Ĵq]"m-9OD'Ex>#Bz6Nk%tm6BDzVQGq,2O: y{iHcy[]vaZT5 ȨR 345N@qG!fYXr{3^M7HX1ey87ҙ;NP9tn/D=}*I:2s̋%G{7abTBm6ۺ4JZmI׶Fהz\FD*rEyք ̣V-8ˉi#7XmZLW:2 +$Iⷱd`U+z3 8"}Y\E^\Qܵ)<&uZ!FM)V"ڟ}&à/ ď 5 O546PW눤0 fGlEbdc 'ƪrӬ[{K("M/y%0=zFBx}{w6{Y50%,40R}ԓvTp>K@fR$7HU( /10f<,1BS>٨RI3#&&pa5j19#yTH9cI[էjU̟~? +7NzM`k|-kqJ}(Ҙ2SaӼGi ; b:`uǤayU}T 2Ftm̔%OpuDU0m~L-_:qWg0~huw-] NVrP =<]x;Y1iw@8,n\(zqb !$zB&5dn61Q& & CuЎy#c%$7]w'z\0Lk{8 ;fGS Fx¬P~Km%t3MccM(bCB$ _ J,@՜ %ӸZ;.6B)PT~~:_tHNITScΤ5_3bO6-[o 7$cn:zNqnE2~7\NT' "[fTT^2F&+c5r~ԕ(jl 48mWDC]X#<n_ T 45 C0 V~ m&AGA7w@w;Q8Q ?d9#1yʕq_eS]y|d*&6Q30J(WG>HN vAg+[o:y1ډGmUV'pJ{"M@3X|*oƙޞ%sfJ<ߔ[-0R'G i++qNPF\&XT~ykPx>–~u2LX'P MOW rة Z?qU\+w>-q}y/sRQQJ@737Ka[t̷E8X,Tp!PVK$`Κ׵bu~*LlBz-f{i8DbMp/ŲF_<`w[Uq. Y!'i7L' Rz$v]c-ީ%HY~ٕ 鞀ws{)Wa˹ԑ`{[z ϡZ& z +- U@uBP.8jz B{GtϤ1ޕq# ^o2N*`DZm錞c@QY@Oy`ŕ^ )H??s %J@f-H%{#}řPKn@u5w:=YX9(5#p 9#Av(~-"]Qb'䠡ya +'£ +vO@%7_*Z-r*~z Ց4!wBpG-q.a+c"wmqk=WfB +k^0>npu5㞃= m]0o-1:ǒ~%ui;pVO/a3;0oKܼL6Ed@ZU%{ ^ ͰyOVNHLmu?uMBEQ1\IُOui@L7Nk\dd[i|lRܰ3"rW^  +19~(VZQjsfb5~Nl, $LAE \Yv3k"*Ie.gj4uDk"*T~~g^ ~<|1cPx7kF84K(/AI\%HG;'6`kK +ZJAFqKq$5GT#.a;1 p't.t-SSUn;QY(sў*M8= +BHZ# GcDS{d',Utl=,}*vcr+](_1rØ@?A[KDlv'”o>=ԏ[?Q ôn!ܘeoiB]u3PzP'ߧ%44Qw L7@?;gSVjgohop7syR\7V%xL| 3n|2Q|-GotuV֘Gk}fd'̐yQ/;^+b#&~ي2(ɚpTֆ)$Dru:5zj,|~0T\~>*,6Y +]7E9!7;au*8Y?Ң#WfiA~\mB\$OwDhE16:_JqBR%*X3 !O:`Iok2+}Y'1%Y GPMJ{rK w_ L&N NyA'ճmﺾo4gz"v;L je %Ɯ{NS6U'*@djNcvo^=Bi 795l€Aⶫ627ICkyV_}B.I=YR2U^c~o\Ƙa3Ƹ2@eU*Tlmcӱ~ xnNU)o`Iχa]PFŚVTC&ϣ࿋Y=d]/..FBXs+$=}buM>RWm6Ŗ6ᢐFX 5x{v*j;zv<_~AVUJϐ^IjQxシuQo=lK_ՑEkZ\4sqU7vOa J?Q)4C^\k[{3y~M|J'g4Ay,$0( jHl:Q"V҉1X&e s)MZ(W |Ϲ\88&tcpҔa͔ CC GU$^fb|8u̸&A֍9ke7;㥦koAvՏ0o5y'M3q"y$[Y@SgÓ=ݎP1)L \!B;U!)/C$N$A³ueuU},3Y'/Jc .8_[ON-<"NawGm_+yj~P]ſ^\y X,r-|㒒ܳ<L^T},^eDR,nkqց%|r,!gJx=~p{"\eeEN;Þ=${q@Q_\?/иLe>u#Mp'Yn_e<q㼅Ra8pLB=(YK[l`BKB#4;c;HS^OA>Ʉx\+0lkOԼ`Fcfup.wlCnKJIi]&fXPAn1کFTKBoI!ӮZ f)~Xhy9 ݨOC5&|T2ӲnSLB5eD0:yP;(w9mΪnWhKu{`wk +kH>*ڲ1 wp5Q݌$;LvvJ1f3n*Tg@oO#9|}?V0M5.ۀz{" NK?C_$ P&B̆e>(qIu`|ob|_0l2WꂝsCܴLTIa?f(/+PIwB WhgšH EiŮ(G6 +"  +"(H2̙dfr $xZEP>ţC~EF:}< \{ +% rH6N$(߫Nᷘ_%1]2:$o-8ȥ I-qt;'kTjJW^}kfQUr\ulNkHn᫂H*Wd6M2 *{`V%VRoJJ`+"yO|s86Vy8 :+;9ɨ=.qqѝ=ɥ^ӏwldG;fH^2`zBȳ ŞO*{M2MoR0i:T~%$9ED~cj<}${.-+P]c=Vzpwz\S;!?C:GFIױqYŞ ݇>;]mS)yrEz_n˕aI"l|sGvmߵ_7e]֭>ГU)i:D΂G}V W5*{f? +($p\)9D$ZYr|(4D܁OHʳ ;ܫv۱jxLr_r ;Wi nV|Rudܦ;@YNl-QnJȲc/14C:'K&̕BOJ{ߴzfsW|F-q2 ?}Y[pXdY<\v+M{ir8~LJޯ vlL: ?@o[g`}>?UrǛI2Lk.}GpI8QRV%܂L0/PUE ?ɹTcۼfHs^QMC!)$ ; ej uIy W6#LMi9ĦͱP*HʘFg]mߝn+|X$Z6K'OQJq m(B~ljSuZ ťbhWP"z@UVJ΂\,<\HA 5Oaf΍C75O Uݮx7F>QL~:ʥ#][eTS2%c Æ~EWg9i%3W4ފ:}޼0_X|-ƣµVu8H{YF"qĔ-F95E!L/3zLw@"FRmOQ&[#ZO/xˤr~9T00bܬ 4Pߋb>_nMFY%MOaN$ʡ˖~ &($~>tBM%^i3ϐEf8UB '`-icIaͨ+ دR=ZȾŁ=5U#5HR>njky/s6H؃E oLyCG/?QE%FvMMz)=ZB.ϡƋ/•3O85&YKլ(ST eҝZVx'xaV4Ë*H]z~h~ i0d,K8CZy{jCF')b|xNJ>V{0e#|SE1b狛*_R"37Boξ(p3_<ݥ%-tɫBetƓpx HuRuɵ)H?mf@Iz͂qrgM_D|Ce +ӯ_wCՄYK/Ԩ 佨/Y0y̸7.]*ѳa !d[m9#{-;W[ U$mb?ci3ؘsq6ĂT t֠} dlv{Fyt/ټt̰KQ8 N"4ʻc'׸Ns6I ][#?wsb,4U_ f)Eď* uä6Go76ɵ{'CGa+RUA=@5_rgs1OUG*ʚO&Q͡4%nlc=%Z vY Zeਝ4? eC` _wvĦ10KB/*Brv4όwM 0r `$CܝGa6;g-N_&ɰ.` `0M/s\PMf`p3 $A7 i c(y jӍ 5!UiMSD-rBFL&^:OF-T4w T3c q]2Rd/3U\;?Up=@b +TYRJ3O)*+sWu.[L6ǼA. 귒hoN_=C|HW Gz}w\2h{?Ur_ס,[<4DmD〷C/Fl Mr_򑹾g"P\TMIiDw$=` IӐ }6.jYx^h}]"]l +8"ӽ΃ǐL"Hڝk:^֖Tm.^@1~qxTlU#U75:LE|4&W25exz*̖̆;M0do^lpmaIS7kD#'͊$"lL?bADINmEh 8Ԍ*"vұE݌5Z5 `z~x[MN&a|b(ǁ$ch |cq)M_Ɔw>bSО$  Dpz!G@o3a]PnN2);K4 U"p+q 7bLay$04iCc9(6>E3a{ R䏡0`?s07y9'`Lq`ScLr&MP.ڽ,_ru/F=܏=1ltŜ 9>1lם +KX_t+ =#ثL +uuWK̹ u)F@jR_$YuBśGbQl+$,o8qlg!) n2QήU>Ytw(^'Y! %GU9, &>YcwU Mj"Zo6VWF9=al mynqA/2AI̐i +qAN?!9NxlbO{eiYQ̶>SZ .&sbj?1_ǡPkٟx`дY!n6fVJ?ffon06l)7BuyMAѢ&m>>Nj#4J%&|E]ۊ:i2g0io*6zXh +҂3;1"2ҍ+O?KjaY|nMHpA/LsI5cu*ΐDx!W {|mpq%qehrYbBt M7uA- +w%5,x+ z!Ί}|%wpȩxeXx|Yy$M}yAz5{+=}5"6~{άq~p^Q~Md~*XŸ~,LU~S@~5 ~+f2T"P{pUIpf P[AE;Z1ٓ0U)Fj"0΂op~7f ![BPY_EE;T\1撠C)k"djpmfr=[M,1P\ǑES;`Ћ1')}"Ρmfni=pkqr^mtolVurX wtDyw'0|Yz>̾jqźjlr`ntpu0rnvgkbtgwWIv~yCtxz0b{x|bh|~j|l|^n|~pp|j\s}AVtu[}Bw}0z~l;fׇ i +9kDmh5})oviNqꂿUtXBEv=/yVǧeP{qgi卞|l{nohLp(TsuSAv@Z/ryX_dִ2f}}hƖMk/zmtLgdojT3rxAKuI/8xσ[c&5e[}gܞrQj.xylfoDSr d@u/x\ębp vdܫg%iwy3kyenbSq@to.wUad`RfWh-xkkemn)Rq\@?t@.wZtf4uhvjxxm0xyosekz.qR|{itP?|w-~zK'rp{sqԜu#svFtgwwtudxw*Qz%x?E{zb-}|Xpzr'zssj{@(t{vxv|cwy|Qy +}>z}-R|~H(oYpq݃^s=uPt;bvSPPx <>Ay-|0m{opzrt?s^auQOw+T=y>,{¹luSmoou{psGrlatqOvk?=txj,{ @k mܖnlprxqؔM`WsNuȌ=&x,zj׫4lgmomqq0_s*9N uI_|2so|u]}@vLO}xT;"~z-*|Ly(x*yyr z$y gWTaˢĮkTd@D\dPPp-HG&]30;sCg( 1DE*n6ܵaz*&>P3ĸg| ,X񦁓`S$>BG DǕu#i#܌-`xJ!wم:(`[HWeQ2UFD`|:Cd2~TvkdEeUb2̽p ʠ~[@QdF!7H$ #dLt!BOK*G-iCrB.UlmO> ,B2W<+367ߛ@ )۠&KO 0ޏO igm82=D 4FB[!AIb4~Z *fz\OtF&ӝN&3xF[Hjz&3n14bM zB! |+ +/hw{V\lsTjg?қ۟u 깮D}û.5ʺ(wM ұ=Ljeo(u\ yPXƢ8p2232"uh0 ;(3-ybݷ3WdsF@w ,8#!H*9)iF^ +P7Dg3I33D_)JQNdOm2ta':=J.۱ +s`d+uu- ǵiȵ\L +kw/i&G1|91:H^gW@-Eif?QF?/KvřMkz݈uN0:ӎ3BJ]PU@׊VVzDPC9>RTl{=EY^ScyjN96b~mwj[ Zl'd}[YގM:tU9WI-#d=sѣS IKuƷ6i/JO{s{c@6oPU,'9cV~M6IQ1WwoT+mlF0\Od?oi4M4MC%HfM[r0p[p|R’/Ld/_c8]׍ YpFKM(Ewo@jjI0/kad[H>|/ѓL |00SVRׂV2Cæav4x,'L82'7&n&CĿf]9-f]i{Ta4EeNٟή"V_ǔ3tf65ҷ, jP6Ex)ͻUSu@6M6dFVSˬGŦwƠuy@>.TȆVOdj?#驺sycA)w,zl<ـB*7ij,\P#;}}~r4fxO"ZhNMBe@(78,iA#FaN}qǖ*lf Zۋ M2HB-7߅,yY#p9|qeےNYƐ*M}"A튘6؈U,ۅ#||(qW,esY!MANJje6Ç,}#5tPcjOf=_`rhTkHm=op2s(Hv "zbtu5k#jl_-$nnSjpDHrB=tytn2ݑOv)yL |triIs ^ٟtSuSHt#v=_.x02y)B{! +}~st(o.w]^`cCcHlVf+;t)i0aldOȯ>tsw[-wnw\-_AMb0ke#SsShA!a7kO|o>#r -v0[Dn^aaShdL%rg{`j哟On-=rfv-vm3Zp]­ `܄cr f؝C` jRNnb=q-vBw~o`^q&ccrfBti quk_wInN1yq<{u8,-}pymjynlpptnRrp/qsr_;utMwv2>@?nC)HKс#Eu$%`^>[ +(?`~^x0_+OËv&"YD>s5x']~-if~>NF" P^OG# ǖ0<7ӆ7 :sXL!kݱrx{6Rt"+@q*7k1U誘Y}(~\H`J䞂\ +52[{F;Onݦ *C{2Hpuw0D(MHOB$vKѻX{'V' 5c + +sh]T4I DGãTD(2BNlz9eB_ ݫ.#JUbGɰ Pc36߅!3?o/˼ 4Ta1l-vKWZApɾ<>\Щހka8Z5$GdW#{{ߢ! e8l&Vlu4ʚ@ԸQWJ"쎛)9(6gf y'1?JL)b쭢l]4LkۘPpuﲹ)nCA Ŷ+2dEH'Hm&Y3uѷkѽӭ1n]_Z<ڮRvӛpjm9G݂#j}dA-uڠ +0\C"dhK>مٸ:IFq\BVhF'$[I&3BtK\ D'`;I ["%#N\I +|?a8+ş3"-Aש_ZZKO%u6`X{cͯw1 $+OM{'E],jz6+~ Qk a=_/E qbVk&S7fg\"&]KOÑ: %ijeB>%j:l=T1e~/ߪg I0^YV)<^ϑ% +զՏQS-WGpaθD8ߠ9D֑ՃXM' +UJ]I"mteuuE)-3`Ҍ SoO6Ju@$ZZǚ;oam>݄92)@m{>-V|WU>r$Ӳ]qّ¸zEYuɔ>GT@蚩\'}њG9mp.d.@L4c&,r;b ӂdlt3ݦ]Q<b-w Nk k bK%H@ j"W4sf|Aa{8c%J@bW\E':Ehsř=}9fǹTW !3ߔ% פԘ]YzĀ&XIkWdPيb]9gbIi $ O1wu_)xS$P)m/UI .mpsf5Uwl}oyh 4;=DUIKSDSjj:?2*w0P4o+G4O6jeu HW)ϛ=ݮȆs51 okaIӽ֒Wo0%>#}?V5N_r}%7 +Լ{!`D}K_4 +!Q\HҽzȔHN>uA-^Ჰbg%+k58W #wi+q0khcuTT[`5Z[`J &-v**cs0:-7o3G(Z!d  z Q}vx'E}aQ#*'viƷ|'in˵Y;eR{E1vikYT24o/;K |O c +Rr_T'UtKyγzaL= zs#k)|OĀ܇:axim&&^cŽoIѓ` +W82K/ױϬ˽^ipuO:JD:WtG<8YJ] + ՄyiZP-|xm4rQe`dZH ;4SX1̚`wpu>7 H2%Cd>zES?+&e{\Q>+) ^T9ZPFV+@l@ A B +r3L2$$x *,^-ڷ[]<**RInpdk ŻΫ :C>KXi<_TTՖqcs.JmZEŒ:^΄hsVIbm8tSX&^ a*Ɋn^m=A2s^mICca|k`K{"Y١:nf,ڱW x_n~ +!f睥# Aɧo(u +gįVg攷E)?n/ؠbdSu3QQIB`\C!d +P,2QC[Pһn`RXYU^',|Y5G4-},V{:T5zGFdx|4Zٲ u'ʦ"Ww[f^'0Xcx2rKJJDJmB|CÁ=55oc/hNL9'0jI. =$!_3s^>pX0]ScԹ`gi9Q?+,O|ekkC)6bf!),MjQZF_Y[-ۈfiv&mH!`5oIxudP#F +P&h_2nnmMsC?wOt[Pk+jnA ǐHځY*zל`L﵋TL01|w:44o(%j̨5YJ_|fyl00DO+/.5T"$8[g)T`MH?Ɠ\fިÕyL/\Zj@Ν(Wڢud>P"Yd'$$ʗVJ+W>pG[^Gڻ2|M 5kci{ZJbILFPCR7<]'wKÍQXb* +$f»~ ^̈́:)]}pA(+RXzE;b1t!9ݠBj` d> !L7gh%7nׅ _Qg1R2Ǽĸ:@n\KX)'WIC0hݤ!XL}4l5 Vh2,?bLb#(sÀytk]:ibP_"2S&F ߆*:/~5l6fݻ Ӡv(l1u;8qi7mL[@Wxlg Y<#nMDyYZOEX;/C<_IfGuROM++c7S +4ƊaZԃu Mߊ]>]o/m^&=Nh̕.g*>d_$ +]koj-]wz`g`@XRSZ^6uV^og~XQ 濮a%{s Tp4{HLydW)YU&R?FD/'gH7yOG +S0᪄g :po)-.XF:e*diG{.㯙nwn.tY<"`7dsSC!x$g:SX9Y%r_']4K . q cYv.㏢Mrm*ADbW냊M1Dqby9mT'buq7Or }yXK8`微.;~1K}wҭrB;ҏޒ &6 Rr*?j䆑lugICkM|vhZYHn8VzQ3N??֫zGP5|No(RGJ[5&Hs)qq}^&2n:zǰkFmP03;7Nsi+ZiӍ ^zs7Tm , zb@p22{96ʄ/= 4)c x +t&83B-(;^SedSy7yG^H@Es7<AQ|h[\jeZҎy1|i-M']|k!3h{&m5&[KiK%}UEk̀u hT[*FkkOZ e ev]G ؼ;GLW[d;oo3xY{OEk[@|l2섐^򒼗F6a 9uUQ[Em'*uWAw:^WfAw:Rc$DZ9-N7~c + +?;A34VfO 5*DvUe_Rqr_pMv]{қ[;f4( c5ڑGdxEjO-n +| g8 KٶŲ]{r3J(?ұqlu;S7qWA}ǰ=o +nxg|GCTpTaH͗O0U`llڤClt0jh~pڱY_,x',IUjn\[M zDBb<Ô]T7S0Co}2%sF͘MQ ś!7fSѕ&.!mFk(+O Oȏ@ W1fG 0JZ-#=qb>@@gIxFz|޴\E=Yg6atҺ*SY5T9vh  %2{}n}I90v zRf8kOʼjVo:*xH3_ 6WWx4\;5juK::i7rʶYAd~X:J1<;e +(;MsrlڪU[y5vw(k +-OlHWeG㐣݆L9sŠFp6i&xИp0C2}TxmCH#ѽZyڇm{+EAaWdVSy%ې8bש"SLL14$Bs&Bj&d@Y?O+82}-D^ݒD(PR{Ѭ.s!$4Pڣo\i(#u"D8 +:]C>6ڒ׶*m@1GQm lìOrusg# tk-ۤ^G) yۂ2b+PgDWB;T+4Qv{9輵;!f6~/ė|@r~EM$,<`2+oMҿ$ȵk뤆)<$\nnu|LX+z-]:r"Xꗺ.KW;–YFC :Aǔ+IU u+U>.+͋;SN@] LUXKx6 ͑8=*U4^qݗۥ>S韒+Ż eLsf v?m!'粈Yv0zْ2GwT1e{BHM, &fr(y)% P Ehl% +$EVDĶt o \~6-s//E 2<뤪t :mbpVn(Q7:ziZNl*3miИ` snX +U\Пbi0^Kc=!!{pwpyKH&Ș/UDg#M@1&yf_sIrŔ\ Bc7HexXltbu!hI +&) ֩ršbps;Cu GFq~~c6RbO'l"<͖z [T0}5y V|EWrф\2aAA0 /ɷW&aA +AK]מ q\kPU"Jѻ?W{j#'rG^$U)~VHDTup7eÊ⚊R"I^w0^+mOXiMi-T5ȝ'N]~{e r5Ճ-wA-VYF~UgBOJt8y0.{KO(vlJ uS0փyk^?6Wc+ +Cl]Eko%ݼ脦g}h0[[tVۃw,U^|}X?4:a<X s%هU)<@ZQ/[6 . 0A=fxIҗQl3\PBoJ]Դ\>[3?,ЛMOyIOi> '|2kxo6oy*Zo9XYifNP?1k𾠣 *_BupֲB[ 4Xφ}P73d"dٮ&<ăT>x4Y"GXF%Ngt2S 8.hpq܏#~2HleҢ(j =~n$ Y9PKC‰/q䢘&lrS1|8+ۺp5q Z(QӸAX!\$$$CsrL2$L%,*OQuOłBuUX뵊]xV~n,[|nC +-bY@X?(e92"կ)fm6@>_|Xȼ L N+VJ2v&ǂga:y*=>C,꽅zqwΣaVbP$Ԇ3H* +|tc^7CvfCUʆN\A X)MȊQrK{Fۏe"j%hCi24.$ҲɹDӮ?2]HMtaPZ+C9J*_r%QNH4r{W) |em}^e ٻ +.v_.e'T)V4(FoUgzf0=rƣ[(hGjKҢy}%]ʟ%(y쭬0L1sR1w^NJO7 نyoxõO`i0)¿6T@JJL#״C[!)9!w+@,&TQ0GU5a +5\1(-9]s41y3yʍ/ G䇫~IĴ41_35g%@.1N§ N̡Pi'74@rz8Z? i;f +cENOri@Du{A6.ѱ>1_:, Jf?/LCNN*E]٭!mq=p)ݍ +cFMH?b;t% 7r~L&3>ﰞ~6slD'9?6T­ϙ^ 5; +k[}gX0^hq$WKJm3qV/f̔&|}31sO[9"6ε6 9K+|dj8a&kɐ=9wUͩ?|0,lugzeU,}* e-^uGSoy77bC#Qşn[,( l^ 6!ʌ>":jbiq2$V1\$ǕwkGԣQ%[`ѐJ Ή `]+Y)u!*5(HIdaoElw17hYxЈrMyA39ScLYgBل*dlQ P/Džml)IR`i?ĞAY訌:et/ ysn琸M>dSG&HPe*p:vFӫ}9|%*CdڌTm ؍θSVkq~VQ< f +CB'LH? 6ǍZWzjxA|+cshi#a43 KZr?'H:m2AĽ eЭdcM^k^Cj#,@DL2I~tHGǫJ̀e W`_qZb +"pp߄CH I&d2L)xʪ*jXEtJJ]EZ_=@XY#>(UT#tgE UO4E]cDix`Ffw0b(U +Y]sAvjfhw@A,bx#iu+E_Xx˼U-EW'_@ce2b1( h^EN +`V[@-kbn_Pe:60lu-'\j|Dme;tHGD˪&աD!ߪ@M?B=rΕtSwo2Y!;DLž]򮆁˶Rf;˷-r0ۏ첸R}"?5#mk+3((.RxP{K$ ~?uX m(U$C[KIl9vL"F]C2q.OI61Qx 1iQZxle_)O&uZCj7$6} A~8zXmb|n^i>]fQBchJDj^ k]rou#Ih +8ЂTc1)üW+-*kxueI~PE:LR] &t-¬^*$M4-bB c鎳A9ZuKDۄT}pp;dzx0w + 7 ? rlJU/3BK3hf@jm1RזD*p֓2O(Vv +ndmMAO;1S`M-a6)N˛,_ +l[c.Hі%Ŗش+#]lcٶ$ s~&b~In^Y6-쪸ʟ/FRa` Ei|o$Գh:)=kZv6g|V'E;R^t\"ZW +YnN'⢒LiK[!6bjnf$=+ *.ӃKvIchP*%zډ,1-pGsD8DC7x&X8e!j5kL4Y &XqYLA)$]s_g^.[fx́{sHq  o݌ KFaa)1$PoגיDO̐Ńwq?0$װޮxYZN8$8 _ُ$`lcZ6ݐ?ȇY+0H5zቔkQ}Ö!~QQ2&P{BcH|7gz9^sylu^A ;RckU>)vQ 8:oVcsK68#7>^nNk_<w*>mڹ3"ΨŢl` D#ޣ7W-#hD:G"DxA4 >X( 6b-X>*'qkxOOX+{5| fP|~NEzEy?|S-2<3}=`[~#ltGPj_ _߷,cn$kaM=UlMQ"gɆ 5iЉ5M%7R%qvLSG[]]M vKsw>q| +7pL=#.[CjϨ^wUOlTvCe]j20uuFfձʪ:AƆ"E*S'_ +!Z:Qpt47rv윽Ys9{<Fr׃d+G1 F~ /bm1&&x, ^ LtZnDz4g?x7o߽06m3fB|=ksΛ 4|K5~Xp%&(*,.0<664^?|X@`PsB#b$ PX<1A͹O3l.O IrOS#?UBP' +BPT;} *~>22 +EOL_~[ g ,v,cy]zFl(}FVύPq㫪J6A$*H$Ρ`v0;f×9zL2ٞQC|QM5xzAR+Ԕ k*xGjsH%Ť^Vaݼr~Lȡ3h5$؋#2'$ +,FP].V!foDc&2`* _'ǹ{# ݰw%{2>aQ*X SV*5r1V/\2dL9x~dE ]0 +^z[AKmILŤSK``;m\ojc{.]w{]}A][UT5䄚T9"#֑$-QJ֙ +(R;7n^윆a:VVTST@e& +PkLlvw6ԷU8{`>5#8-Eʦhc5Ij ɱUx(EUu=XU=ux}{tjG +4a(=Gr(nËqZTivU肝 F7 :&|ؾĮȬ8CLNlG\nt{Bvx~T2?]ъ?:B': nAS+w."nG%PBRBz^MLpz&*T@ mHh؇Dc΢&ZT_Wj 5yI5LOї5m + һE/`v0;fˡp;ϙ־A}UlK8SQC#kדtYFUVErAF̾!b7E|{e wY쓌E8T@V4U4<7IIiA(R@: j:8vug*tE@EQ*r 럄B; !rIC@V@]_ӇQ5UW/)aY/-Ry%F2"  InK/i"tY{p8d|Q\Đxi'6ĩ/UUi5gԧyebLY(ke&\1q(h-Ev;wΛ6 !5kC(xH@m՝N&וy UFeaf5n\+#$,۾.wAڐ&T%_}ؗY6"s 9G&j ơR9aWLt~-m ANv$&! 2p0t{z$?5Z uTj]Ġ`9t& f,h؈!%gS$&T<6ncK /'z&bp`F*8b(@H3x!}': yo8IP&\P{C@Rt(ɓʌ*rH1𵐗&dx'McČ`$f>m|S~䃱ؕ$x0mq]Pe& i#eF6AWB~8QChiTɞ <|]z[u*nz!bg9Ԓr3lq Xr3" >4SPh=m@A8 {Ͼ+\Ǖ--F3a@4M6;ҩ'Z8JԐpjj6 DzQ0'չ=;Qv(X N#0-z#}2Ң>ƾ#Ahw8Vw5C/[r:mU5fYH7H)N6S PX'>}<5ӽe~y'NNdtOݗdjM Z̓x3YAdECM&-ڀjG ož>ْm\-u ZTS#%xG;Ѣ8]0^`#Hƺb~ںnA-9*ViTR8 +`'yM>aATm#GђZVZ˪ݐETD_l }mϒdo8zPc)VdjGT *:YϪ z*MSqKP}W7K۫Ov*om;Czzqt}JeVl|eryItV2j)kb腳h ?|lIlN^mzQr}\E+ݫl([Xp1ٔZ[m@_Xi䮠pvfy?q)?GZ3=@W =T2lvsdrڰP챢ށzE     q5YTp +yOCŻReb &l[Ghmb9M%>]8!p~{gkl’B42?ȩVnI6 +e%2G-8o QP6ncN/J/FQ&= }-9>#, +>nƙ,Π z,>3'ЏԍI6Mo$GWdosfܐT:jGyhKڻ)k[Leٓ#ceA>Vl oiEǪ2p˪lMe.{J~IT"Cvnc53}-"ÐhI'ِ,kHM"D[YjsUZCM:fD˂+)U +Naa␽Zfk@ 0,"IBLtrAlĐ  N9Vr:#Q1ha x!coDjԀE_dLqi&]8NLSNIS/)WKlƜ5==\[jTv]٨@(WKsm!fwO)iiLڤ?鑓#tɕOL=?ٯ9,o9̳t2UAP@C6-!d!@ BB6BĂQDkop94Mre9*ӍRMd0W:rB5*G1GRBd; ib"P'dh8^`B5yϕJ\ L΄*nW2b߭L)3t*E&' sdr* i@s?/=:Vh,~ߗ;{u15k}6EnA;xobhS$u,N%ɕ8j 'q/qO=`S)г ,Tרs=@o5-z$^˚Fk3(lUA?5(!4v(_uw1ff:w-}hXKvzqAOQ NϜ@:&z$B/ $Gc*8?z0;ߗ]/ZZV#sY]X&qzlKNCd P¶GFޜ=;èj!,z5ϥ+D`C^n"NJf90 2?}ɉ=yΝi*mJnL6M$_e A ($eEU Ȁӏ^9,>IoGs}YEHBWh֯յYTwL3rS1MOeS-)*d`[hh%؝jӣ͓\$|[XRK@-_JoЌ+כŋ8V"]?/&{d_$]B?,kʯ2xF5xun#s +[oyDs?{how1,8 fL?CVAyE% +K.?)-amU [5[ڜȺMtM0o?s}*Ϝ|-.̩ {JZVu (lIneC6%FQnj̍;\M{w 564q@p${{bKXQVx &\^fA{O򒻭m.B0b @ħ/d?4m/o +y0wA6kloz=vVtbd.RC{,DŽ4]@Г zӁ4#L#y,xK|}]XÿC>A𵲇i6pD1|܎,HψP(@c ii@Rq2[eaU^FR6Jz!` {v' fQm)0}^(6Rc$5 (r~P,y9wM:(^։gDHDϡyl"0A4t!5F5bl ”#@ +)ۚ+Ou`;\ mqׂZ4++'8bqu2ǬN Gt$ F7 G,)O '6bgSo/+WuQ.mlc`rj($oQM +0rIF?i#@I_S>8Z7gW-[ܫ J?&[1Ck\B"mф;[ + 7qD +$fØt;Sj͖%qzfg,;-^Q`-}"ҘGHv- 35Sl.J7oÉ@ 5pNgmwٱٙmu*ꊸ/#7H NH  @HB\$77!PxE.ov[O8bD>Π)Q6AY-aWjLGU-oF7k1Fj@3\=ۉ <'#Gޙ?uߎo qxeP IÉh1nzY=Wu Mզgԥ'(e]-gCGi.];^ɹ>~o[?) oOP^M!=aǠtRl69m^rU4\ O%%-,O]TB*s;?Mw+Pmv{ւC)#HܥO)ih\LC.!K'b1 HQs.w{ϟ/2Tp c6#s6"bI)i+˰exVz:;9 sYAnSKG?vOW{$a R*ը1o7l ˯WC^kh+qf7 :B|J+*u}B2#PCѦˋS%e*:g cCh܁li) +`Fm5{kï 5!>s^sUXt9UJ厓7YΆ-P7 $*gz0W]yl`\:XA>s97<5'&cE=ffӕDdyix M8ZH6."4Fm Iz9)d1 ź F+)mju@a7gDfFiUcԝRڊXxi>6|XG/@@+$kaQbќ0/nMҋ]%:c!רZTxY jq4Fּ]Xyw?=5a'v:u]㌵u=,"@n9 $$!+E@AHGBBpEA."(hA P뷙ӗ}Їw +oPEiԑ9qͩ[ q)Q<\Uh.gY}WS(35QEJYj)zS h/Pk<^~'?aS| A :8}F/R+|cha + 4Y^HjZU7 +[C1 ?w<}Aw{_Kyē]Pmp\+ؐ- TźˠRVYĐ[tX;-i(i7[9GPq4zg6@0=4kֈ\c-MANTij *A+7V |ZQ4fmld/ 5@ +ݽ#]w̋Usri07mN wˌ|!WQRQIc fWlerU:Gg&{ q? +n. |f0rg$u͚B869A$Vˊ:bVoi L,EUJ@!Og)Л@v4>4=A[+g $fy4"nv,9r1gJc:5J-AYL +:J匞Y*ϗȭy5Zg!W6@@6,GDOMBӆF`+٘^-+*uj/iuUcnC9K)7hsz 5]Nٰ;Td~>TJ4& *ow} u?zXcΑggS+~P2u.3MV&*1Z,_e%I#\iPpYRg/PphmsY}~'kGs4Tj`ޅX~>3en؈24"y 'ʸq~tZh/5kofصOa8s߸F_$@3q˰>'n9;7^^^=1.5?jD'_X,D,Qn?t/J\p &w!ב0؋gTStZ*j| D„=bCB3WYx{ot}5[,w$ 4LBA#oaQQ\xąʈ}IHNK ȇߠ Ke's}*_};v$p;$p\,1~ ?$ + + ! +9~|?}SRwp^@YH{VDrqQ"Ş'VpoTU$VdDױJtzt +*BM"{i1a=~oضR[ Q!q/eUV.yVH[(`IʪYL 1KWiE2c9rg0]DgQ])ܚd]ѯWiMU}:o@:vN?ćѱ@Fq?.[cT(y1oM70œh~8Jh.#lQDҭWF[3j;E#@O<~.;YKhk&qtd=rT}J+zPUX}Ψ9gTz<#8:<1)y/%O$yevUm:>Cn^!R$,@P18Qr .eFҺs&o|<#AD1@q47剜_NJ5yvAT8a@Â*2 +hc^3~13JEi颸r!:Aj$U^NMrs!&xt~8ۀ>4@sWѴm)9PV-kQŸiP8SYFR4c4Kl] IC4<Q zás!{2 ЅfNxfKH~JμΟuF^4܊prfJ@г:6BRBd +Am-[[ꍏm@Ch[kd+>~r`vS!CkBD+Y]d=a&JD;Dlw؛7c_so` + y툈z6tk4 6֗7Z *-Kآ&%ת#qfB׆cʡ2 GMTC?.X [ZH5:Wt6譥dUEFIҬŋ(ZǗkxZ,z0= >=P~?Y9=1y~4tV$aix%A!jLsLdEԶrV!tZQ<s`i ,{߸?xQ#/Ne`%zyx+UnGz)xVY'iNCV`k"|FyT&`y'_z>#n/F\Lz2Cs/)Tb%Ӌ\8yU B+|Ȫ/: {7Ӟ޸ho;A[,8N(V'O7* xUzjޝ;Wd(aCV%l`PPyp<}捑^gՕBkQG5wa…g7pkŭYlhd˿L^b/IİK(9w} ۿy7S[Zh=(L0~l.}-ZYn@."@P +gSDFd{W5d˸:n8 \o3K>^=ݻ_%%4$&8 j%| A +oմĶ^Ƿî:fԌ& 6-LzH| b?ӑu[}U +^^_b6QYU82Tݘi-434o'iͩZRn +ZoH͟sӹ?}W>ߪm7 +b#1en ?#s"*aQ{u5k ixtJK} +LjH +0}0:[gAM vtv3tљvZuծ]uC;rCDD @ !`BBHHBr;\BZPXnŋu ؇}f~/76ذQ @Bbh\Yuun^R! lQwLs6H-M{#RpRʒKʓ7k׌MrM'?gİkS!" q8@& xw3KsޖG!禼:􊑟 %X~H<齾vmWkaİu~AD +(Dh>F,AC~I)o|J"&xŭԤǮ03bgF}PM}3-z[6|ǓoK@C' 룐A PtD`#c{xʢHjl80bÀ!s'<jc/q/Ӄ@ | +8- QMxFeU>iHR|/1{.K<['-<+AIgPW7 K g + N H]iD/X"IYEMo( +g]Ytd_6]8|pR~ =)L}Uz{@ yf4HsRA:VPRX[CYqDu*ܹr. Y%3XlsZ~=*UN^i\U^,t{gP5y - AEr(ӣAeQq>IY`<<)`?5Y^2]b+0gnϪn]T_\Vc/=˚%>x[@A#I=,-B- g Vm<Ǿ_%߭PfZewJ-۸?{5# %SryUC ݠ>Ф'XʂRlFyCrsTI0%ŭҐǞ݌!Wi KFMvWZfC?]>jqF-VTyl?d^6b#Sl0bYKO̹4KftDuE5spx!DGSvWLv|j'mmcUZգ_E&Ѕmc~0 ֑ܙyWk:nv}þv sv$4y4A֏K磻2nuJUaDG222qwQ؃RpaWPgM/ uLnmXivu:3_0%yN䍡I/ɴQ:8nj %bP,|Tv@^@q;$8ΐBOGhOtP___r:!͆i`=li_(x1ra q#Ь$ $v@mdx8$ F{8 +;("a)^STS 7 +Ә>ɟAdL bc!3쨠bUom`kRS2i@1ȏlr>>^@=͚#K+ڴW+lc4`}_81CQ~u6hxF 0l? y;H !?)|$Y"3?iV徊H!fLSI̝Itx#{vMH!!M@0cr?H+e.%fNMcH͐/dLk V-I9wȫ_G 7^P6P%Ȩea-\`XL)jYFX| ך3"紒jro/&ꀣmjv;!NzA1 +1+d)VasYV.o*X0N?'Tg<'TZs{ZI=yw)=?S4О\ p|*N{?(ы +Q#eMeXqiJѳRSFz9XFRwOMnUzwOqKqOVgKx}E5qcu(:ʢ2 R^P)R @JHC"BE0 A\ gnև}99? ^!HyYz@-F*#1KcH9}b_Rh2/s/gf 97y7 HPa 0WRX3aA *v=A)%(j*5ybf?7 +@\MH@2 P7]APeB<*#q +r|h%x\N/bz|VViè- +5(n@ +^$k +$ub +wkd߁zf0]1>F)\d7KheRUr:[Dx%2Q5I%euaYI+tJ^%(G-il \~NSyU0.FyaM𔋵dCPq d&؜L,QdJ)BJ)dB֋$SC wNyߧ6Ʈ6/> +qJhMIlm"Y+q &WQ%+ŕm +Tbs@@ӞEoܭ-~b0䤶2'rą >UepKyBBc^3XVVIqUz1 >7O;AtzB;~ICțF-LZ,8GK(^4#J]cz9@YA}O_\;nzGPLh%%lƲ.I*\Y(ؼX%mK$ik ^-!Bs@i +?lu?ov9цwD%HS2{31| +n)c!5*!/Q)Hj&I A |sPsp3F>M/Gl|tĺκ>mw3ȭUNӑ98żbt,Bw2IjVs:L&9Z&9&^ MaݕɤvOeq'Ey+_hbh'GDzCȺB(kAzE*f5Ό0"4ӌ)ftPnjXo]+o?سB쨅手e36M$Po(u +v02`Ry=0^G/z*TN k㷩a#3 +sr%ۿ +Ve ˴?si1ߓAԇaqIw3SY*v5(Y51讆to40xQ9rl|Wӆus^Y~mKw|NQ^#Bqsғi1s̈9Zn0/GϷ`{|{cn[:6-2vk-oVZm-FC q4Fcqƴ(c j&Rߕ}L{#}9,Wϼ3 , S!VCfi}ؼþMGNK?z8O.{—`bc?[BD/b>bSPo93){J<#}Yw:W@F4 WAZY۾[hΪ8,v +]#xA7̀}@a zZ`C? O-"ܖ#>65ڷ;2"{+vM%\ -ypI^vq2_gQMg9=ǥ=Gg>(*(Ȏ;Hd%| ,심@EERVOU0l*wo{_;Ci zCg н|_H)Om;ݠ0ʃ]ʬ_Y4("65p`63q' ܭc~3!>G P~؎wr+ ..:rN@uᎅEc *lظ +zHMQ xzAԾDkW pN8t8@`s$@fka;PYln "b HQƺoc.᮳cً9 ܹ11?` v뀍5}wG!Bj/YD}鈿S ++5wqY.棇xcy/q14o(v7kHx AAn8x|A +e=1ı.${5pנq +&+0ȋ9 55l eԄJtJ{UK?Mj>"k>G>EOsE7ڙ+2k1`0)쉑KxP{ +]D#؄t +J2:xՙ&V"_8Cj71RuӲ +6YPsMҹ>jY,BOz;[Rd:MRhg75V]={__Зsbc kAENBv?k|?0j78H89PE +-aoPoꤜYB#k 5*a\pP&k, +E|>O<3KbXC㟡m+y~oߛ`b<&Uȥ\59颦lY€VɋTg*uũ 6cdJ3Ft@6cv`^GKq;}^] +h;c;H N]/eS  VUfRe $7eMZYWF0W-3|@oΗ l1a ؜um%]V;B=vB\pW-%\gKERSy*ʐU(E_0}&79 @͟ +S߮\tncuO:>hp{+!Z#9RM2Ǫ* KH)T*mN6M2յ4\DgB9_2?B p%MumwuL@#pBA^ ST::8iQimlY"YY9}^Pd9(R6 D)LI3 %8)|'r2$E9)yW ro?(}Sӑ) ֩ COǥ]%c7M5Y,iY!iFy-_RM-ϻR?{9,Rl|RRF$5tYqE7 )ɏ<ޑ)  Y4PSF5;/xWg-^f72.ԊU!AyW2*R/}8Bfzc%9gʥAgjĥ:NwJCrgECzu6Wzsmsw~a5eJmN qȈԪkRbWH:&*_V/+w_rDgfIkU[4Pe1vGO}MO@ٛK_omϕY' YwFHNM?x=G_sb:Uݔɬyɮ|ɭRAb/+զtU|J +WmR}mNW)6'|cDŽ6%ňw3\Heܩ%w_J{1 GV(d2*uTnVyxիE5.vmyN5ҏ.b< >oDrZc}[-U$rD$j {.TB2/^#.SjПS3gi{ݒ>'Oqb_B]\~gݑ&ft{w t\ ꨎltz9)z68D WoZ?u#ꇗT ,iCzҏNF<,iQL?ЛO`S,W}ueyUL+vS;3$~S' j#*eߩ]o^T,7Y+O;'=#e4@ӑ/rdbO,B&xȏYhuX#wvݗ +C3깢L!rL:{NFN&&%ST˴}P<4Mt +/fVwWkS%*4ҩǡ; Ra:6p`F~ 0cFnuF##G! +E$Ks@9]0D Te8v,`X` N70I>~ r>ę["fȱ2E>ރwf6uw r3W)˕ 0b +WS $x9[LkpXBA{c7$;C#@!MO/ X/AbAh)c52 +E0"Z+l xj=ir$5w« /Urc3\嬃hD1w!av%8?)b|Jؠs~S6$ o=OQ3MAdpm:f2ɷ@Hq$KˡS YeLT~Sz7I}t _(Âh#t! NuM5exuH،x1bCp = Ȣ{v)Ki5)Zޤw=@0A}N7PF,`Ȅݾr<`&OlX+m$9CiFg#Zd= ̠W5o*oQ+~(F{.0F0Lw$sD% lggEw:v/@2ڿ.bϰ=l.R-:{RUp#V$BB Y$9Y$0Baod(PW+^!,E^y>9/yw}qzP!qO( CT=gd W o#oŸ_F M"#Q/IѯȷP(7b5. 0w~B~`9PXT?9; @X\V?, !tǻ4̡Y%ԴjH#uz:~CCoX}:No\{5MU?ͯO+r3nwfB` 9HY}LpuD(09ZMF5M.t+y&A ?,'L2򤨈2% `uM%;Ěsy~QC| %'bzjb72zjRXMI\I-)'Kb mB\@ḨOH8Ww~rCsk 3s63Q64r6[!¶K&~˙F"D]?L 49.5%Y =7pH`1],Y1W|rTMOweC/0m|L"H +Qo\JhKٍU}_6HϵIӹ{n OO?|{e/ʏU{Pu''L٠KT2^fq OhgK ^\RQ?& +lLjwxѬw݂{"YMв֞\;Tw}˄ nʦD֤ctB5YN7)S92 C'NEEC,PGI1YR PJ[rY¹}'}K5Uv Y/Ηg1c|I'SCR(NYd*R!Z2_ɞ*!hTAc2px3H]}=@]_Y0^}gwt# cOU EttAVJNSrY&U+UJJE1HaU@5ikwxN|ҹk5zC'KԘ<^-j3$/K5u&-Qp5 J暒Qr4rn,Am@7dK[>Tluٰ}së otxՕ`ߦ*P'B2p5 (\R' G&w5\gZ׻^<|}WwVPr9꘩{.+a%R!(Pq9g83mRa. $rt >SWV:rk>WX}rKEGK 2؀9ZG@$Ub\TDc+شB-h.YK}6(E[%XӸ$.wBly; +OU+ڼGr꽳ݳҚ7y(n)(A=Ǯ52:ZVf$+̂J]#EOP)=@/q֯/qxpoӡrΟ}=K+3FNȺ :VMi ӒLC5vDS7<]~QmP.rF/Pm`C߽yݏ:6Žў%GVg  uDЏ fB)7^^Lu)6Z2>u䝆c Ъh](VED$ +*d/FI + Œb#ngT-.uGܷ0n +B39+r?%RC]9˻RzU.y;w;l`Wqy-g?cS_iy=*| BKZJO6>b)MSXT*4VUj^cu:ZvctWn`>ӳ~˴[9N;W/9'%j:f8#mϲLviTv:^֚ۖǔ.[Wd1uV#eߴj%?Pbv$k4mv!&2yҶ]7tG۝8 /t)]8IWN0׵^bvWrRsLyc?=*˷ /m $KQ TL eP`F80+c_ĴŦXJU$& U% J>=r25j"#C##KnD]=q=ɑgDGw>ѝW!p|!ݲ7=^Jp|Rq^>(9!Q( HaY1!;BG.;QȞX?2n )~c3:Q/H&à r"d(|!/1B?T`GMG b ֶj+}<Aw#` 'p3nI`ǃѴ(ȦG@=# :d Ry=[9}Ʀ߷ V|aStD}Hp GP''C>i>ԓ}<9S|P6%_z=P5uv1 ġP/r. ܙIH@Z^(%Q| DJ/&8X`a:$I!a xa;{K!Ȉra93aӡ@ +eqqu1Syn-\Hnlf裆XT?go"aHi9C +crY3aaH @FVҖECm<$ 1n&x k&i}V3 #~{Pi کaa5, >.A C+Ĺ!<20DC:oe@Xu QS|pS\(nD{;rPo,'!6@f A c8Lש( _6 hLj] +䛙āh'#NwY3a)X<,a&Fc42Q)mkD,Bg_ ܒZTO.P&6+%_e- / _'E}4pR4Bo`,L\jV[x~IvX%=!+9x-7+__)[T-=YsSn\V/*G5f. 9sPl8PY^X#*EP.r`i^|onI)k-筮EҗvElSecM셦Y֓~G>A^W֯;8"߇UcPwGs-}5bc)pڳS2$kw[4UՇ5wtO7T]Kzuᔦp?VM63rz\?Y Brs9z!p2;ik#|r[a[!g=,Ʈlׂw1XWef ƫVD)tL^Nn?Γ8rFJF7qxg3Pr|UO3& S5`їƽ}/0~_5t<᳷9h[C䙆xO$_TN r0󖻍\g'9YߎAZ-՘MOd%LM59U}v!5J@XĖ1fGyPdвp.O80v9f< smOvcb8fZp(%-$T,,5K34HDuQP"KٗdZN<9\vupdi}{>Q `>7ZNHM$RCÆGda+2ZB'pĂp2SHr] +j yhC_K^hyb5b=lО# pQ,[8XG*cE_ODNCVNš)i8GU;ۈ&_HfPHZ!I!q"EmB"~>"pg#!(Ohg3aNQ4NB8kC{-!v,t5J d @T~|p7c1?#HKAo*V"t@' @ P{}dY7` +b u: Z34b(@,i!֡%`D(0~N} G69?CL  [(B[= q.Ш=4Bqq%xg`]y=;{5x5,k 2)Blp'0\Wx@c2;U ._ QM;#tp[\6scc~pG{ÜʘT e0} 5alZ(~'gYb.cny8=לOO11v +{*D̿D[!އ-L쑾h hśH 1%:K谺8|H!rP6 ca=,(^%~wBx/[bE܋=!9a grܑN6C=ڵQTUnE/?%'bW/wsᓸےRȬCAIɃL;8bXɜ!|n>sZzs~Ē7 ѯ4[؝>sQSYr_?ߓߑǷKWҋayu!CNF +;ڢ0xǡؐ|Ѹ#i{KcmJqkjobMZ:Oo tgw%;y}w,p>zݭB/M6小\!8D߲^7ZՐUPq̸%5:=iszGRUgcefobEf +b,g":z_Jמ 獡#NvF:unrsԱLvSQpxWZy}&6K&w*簩2yCgu9Irr{A"rYLtފ#oserɁ`{&^ɛu6LfJSdSy:qMP\Tee`KBE~Cb2isjrqؤϷ&,%!T ; (]@{:!PRB( R'DD H*" qwPagȇ99ߒs9I$(BVK S%> ~"^=7y^as`&ETSYAʨcGq'y3좂s‚nÔ/.w-XOlDde1%PD _*s:bhqИvN~Vqt`~xv>ǵ6Ç_TSq4Һ"މDnW49z)p}8EGדrlD@`VFExߡ³JdT=bH2`#7>"ak{?~л>;0y&6)!3)l09l:`9e̒ (FPyyX햅#`\/X˜pQ<cr9Ut(PZ=/2*PmC|zu;+lrJ'&I̩ZgTn$VlDt_$ X' ڤEmۓJper7ujRzdYgg穾P3Qֵ]SNA&&t.C#I.^hz-;XO#v>c>N6nkRlrk}xg.+98=7Q; pa``4ݣARP.F}CycJO$ ]ㅾjQPpav:MaC/ao,lfʹ%?wHo, ןDY\$o4(^U5"kUfJglYsVXV^ R x_md-;]:fֳ{l`^`h>jd~rgc" t^hXx@@!`CӘJ*䣃t'w9O~[=>*~fnsK;jZ|[=8t#42B/kd@su:pPQD-JSь6t7t䌞[_Ce!S +"gf(`*`Tݍ=.ne4.OH"Q(D'P\ЈhCFG t}JaFK!k.:7ict5A=Ș0EƬ_lWXi?M12qJ$ވ:&$*eQyPEY+:긺 (# ~| G E 3N:8ͺ;8Oz@5!8&cǴ +|5;Gk :{nq#x9g 8fӸ/<.ou[@1?s!p@3 if o^9-j y;Rf5@nrv' tR/2}e_^S\?zqfLxÞ7$>hp ANAF\2r6hjіI,[t;RZq3~.Ӿg\^3E&$ߑN_%| +, @`iRkCٽV@8y5l 9H:ff +(wĬMқ\?'?z u:Lw~v{ S?xJ;oe;5CB"/oSlKlYk3)Nd;9ut3{ܟ1N|ʸI/WIs >@e@>AngkJXO]%i2Bӟ֯eǤ鎣2Մ!n 1!ktkk:K7J?(}\[0G}Eb=l AdHQ@[!Mڮ{W{zn4yX)(6~;aj<ⵠ*+6EI>9?nj3qf K10$H 0<_^ ꝉh4 ]\ܒ\w,_!5{omwrqqQ{/3=.iH}!徽jϾ&)id`Oˬc6'vMUE]sz=H٤[ ע/Kj{FܕXRgkܴ?ZWLdUE7pQ=’_DőEQoQ3C:~AW= 1%ޙhFIiV V\-[SOxgWVS{zTg*|$1ZpqXqU_-khbOc/scs^r⦅sx!!n꽫QZM}y6Tvnj +Ҁ' ;#=T>)2U>(I*ي.Q$]qWVS4)u߀`_vP@cMjM給`:IkOk[ +lZ +ϗΉ#j3I%iCibVvr/]$8)NIC5Cǝ/: ;/1n&K `ŏX4jFtM@- + aPBzVYaLYㅘk|kObX3ٱ~&6r6ȻOOG6ɠDW9i"ӽQEhƜ ,0b*e9,'aՖS3c3{DQ4H0)ځPqE! +<Q=0i` 4LOt=.a.ʰ"aDCE4TQDU8 cPf([ .Rn(ASxX9xG r09ACڗZ1Jj ֨IGբ8hJ*\'8(>M\'ot b`8dLT;YR6*q~uF.J=QrNި?(KGyR$%zQQţGC1 0Vg်Qf@e;b/CxbQި$D*,,  ]彂w9zЧ[0OE-z c LZ` +c16\0j +#ڭaMzo0|?@uDЧj*[>*/x}P~|ݣ|ݥBY0< }c% \*fS1wM\H tdrtqƽ7jCd n]7{G}^kNtiD/5D/4Dj=|f~Rc5uԙqIDQ⊈ȾCHrsH }; + +#xZʴiZԱuZ>sx9||񐊵n.5YMAJ"KA 5 *#pL6#-pͶz7ӦJWn]Rc&S٥";H+,%p jHVJbe)Qa^b(,D y)|Z)qn3כ X)a zmVoRG,K)kȫvٕɎ|3LV&V%XU?@Uw(1ſ!1Ő(ZeW0Wi x6}=A{a.'M6eKȞ&!>6!$.ݙ[+tOfUUFW#ȑWy{R"wypьÝs8>Zﵡ7"fi-hgMoKKiIuHl7Iz7QCi +n +\+k{'B>p6?7{qevCd]@?ߓv> eЛbw8Gv廝xw{S;|)W[E?r/~V迒g9jfjk`s@=aSN3w1_3"ܑН]QM^i@AH ,!!   aȢ ѶNjkkGfܵ"hE .qj3/s{{sfW/=4rl4:&eUԉU'br(PV_}P#>NW8,9u >K~i]ԅ܋/a坟ÝyDUD^Rj NOD{Z\oO#"V7ЊwXN)iQOͿjr˹jʺZ\25/$7'6}&o 7}״Gm:i=ic l:;wP^Ս Ϳ㌊|QMD[}fpNۊ<zǷ1tmk|cm_blԶݜǸv ?6OvwP;;ye*pALdRԩ3vΰOJuvuO*vt/v^^ٳK޳[s.=͐^cHzak=U>GhùwK[w@9(+JcԾ"_L+)qZ;@U=h̦E;ȇ#J$ëpKi +נZV7n7ˁp;8]~QBi8 c>H7'""zBJ*'T"}kC]dR!EBXd/48pܑ~p֑ ͎,xx5quoC('u"4c )d $L.9t?$\0Q ‚̷C|n Pݠ}f>g#Ѕf!8w + +W(|!g5q ̤+$a.9N )Br=H$$(H-@TPiwgpZwl!_t1 b v{ cbh01dU!$Ą Va8*Ĥ@= >re(>/}K _2AR]`O!tZ +WR`HR~E$bP +ev0CKq'@7' - r\>&@~ aأ+{X>߀8rɀ7(qVH pIj*$&9f̙!vh7z+bMDbGd*FU'9oTת+-Πӧ<S@?IH䓐0)IO0M_=_3[|5略3h5gx/4x57xk}10=c ֟.)~ HEnZ{4:ML5y$҇V'c0l{nj]^An}SwQDMЮ$M|[:A8n@,ҘHB>#/~|qĒ2U<}̷;u 3+ޣ&Op/Bh3Pxtp_t=ᙨ*рK_걺I& (NBQ(e(:\ Ź77ǽ#g={ U[Zm7SH!zʿE-!ƚ+ƛ9ji&"N}} {o7sY Rʳj)s\ΞMoBVkNŲZД!cR֐ȧ̻$VqSmDcYi@~<4VJ' s<0,bK%!dW"fŹbR~]ʀs> *SINf패';Q̨<Ѡs,AeԽ"xBBZuh)MְBXRȶ[ȯ)\.<9q]QMi$((H*"@V,f5@ !LK@(h5x92NGǶsȇ߹~z}c)̓*u96Ϝ e^*3WuZM?YP2r}mob ZfkVPa~RM|%Qz|Ǹ$~(ŵO%n +%ZnUSOPj8=G`ߡ_ҥhܟ)<fA%z)U#%ܫefeE䶉ò3. ҼMBZ P+ڰ¦9$P%+2-%&DqlZ`ߗ+ ks9l3k2"Z*?﯊"you@+a{6 }jKKKbA*huE!j iTo5&#YP>e~L`C&ZSXQr5\k޸qM>ʮSkMmeCJ)׻_V& *W"5QXN< @>Bsoh\!B-"y3$0T`½z5:<̶ɖøPFm[ÉZUGJ>EMʪ|oHY8T*Wy-$W6Ec-sFF*"odRJ,48X`f:` -ؼbt̡Bpק{+y~š@~,6<_ɮdUL2d tt[Z?tBɐ!䭐\oJީr1p {@0uָ]r]Ky뀨1dzX]ksTu +BV&*)LU*CqP|Ce¬Aȿ!mpLp~Wy z{ô1){˻O9w&)HWԖu㕧4K3!i03"Y3JJTϑ+ r|ȭ^:OuW) {hshF}p|f+iZ@՜#H1\%wc홗.:3.f$p㦥NNzj5y˟>?}?Oq$6nfDgpG p =I=@+B;D7xxK>ؼ04+6g|`rŁfڵCk3eO=IW_zFοC#fwv~Qir +os+ k cLV-&۞˲?f`;Dx; ejgA'зhv 7|fkg/] z ٿկ{x`),@ [ߙ@C 8`64f1ƳGm4c5ȵ4W+jv8N Z] _;{ z LpA8"4```"pP, RFC` +l¥zb'&jA'^R +4TxPQ HG</chm6F&Vjr +l&e +#n#D +eSNCCC@:*"=S,kP%;LQRBlt$js_%nsFΐـ޻9sG^xWSo-Tj}'润 MuyVMg/hF5DӠDdEa0$L!g*Si=j0DG3t9G.ߌzFZd-tm%mӅZ!?9rNGؠq;EQ=QGNZ (M4LfΙIJz{zX[3ح ټkqyVcW\YgCSǟ"8(s9~P~Tx>좸6xx!IM8JEo`iǒ7g`Yûl;x +ʩg[at5#}!UgєPp6i 6-)>$VG7yTE_UF?UcP=LxI ds0<Z@{-ΑR.¸j8]ECF.-D +ǣ_:N N&!Ƚ2~"RVws܏^ZqO%(ߓok"!dc@13E4wкXD]c[lظ ]lq|,úՙ3 +\+ֹM.}7מEIRN+g^3?*I1ބS8Ä́!9&1<&_b7r2Wi1_ì͍dIUTfgT6k^QIɷ<^3{{j϶:-畅w_u+7nJG騘=C<R}ZVry^).jpdI*/Wy`vs-q-[ 5gdBV.YMY2O(g6yK.omZ>a"^.#NzK\ g8@U+beV%y:Ewn_Bu.Ϩ<PD H)#LQA,"tІFpF RD *1XQp]f%'nf=G}s=WR*x-^nAIܐ84wQSQQ;aQP_B61xCTT0^,p̕_-]Qךnܔm^`UfWH+v)OmRIޒ)ܤ޹oEDBLH$ oA26.98]pfnt.*[;hQ]&8+e6lDzBY[Q+HouSEg|2R>H{-H#BK&E20\ߖpQ )qXt)*+4W֕V"ҭ &ۖg:J $\IN^vNWFv -h[i Q^R"K0T꺭bQ#U+,-}).$)" +&{d1pq5k7٨&+46r5 j:^q:(X̝),dEK9wkE5/snAph}OQQQF_,Õ2ڃJwfm4Յlț5{V5d7DbRd+>6)uSu墈&ކ.uCq~hН) +Sxgz7.^܃ZZi>5Pt:2e^iRuI*Knm7rKs=M2 JnHC{p OpCpC:=zW? +-4 ]@e*{磤ϖ)sg.VY97[pp֮(f):v!;ikw۪n{B.^R=lRMPzA]H-u̕IrbVύ>u4BcuGLBd.XPWvﰢqy7N}7{;s& 9:t}C@HĶQc$:2%@`u#BF6_s*ppqp5~'[-LjL.7h2h1=D[!b܍Y?.b/Qߪr#icؤ#7&s,17]Կ+_6dǁ\DU#c$&3+Y+&lU}'|2爦4SJM&-m):S]{ýqwx+}P2 +d.W)6ncmm,m +ib191 qBG|KV@E1aɂ:3jQ!9N,vP>'Sߨ־XԤN]O}&gI}D]\wa% R)i~=>BO͂82ٙ!.g.CX~خe6JlQ*\iTS@H.!y`b FdA@A 4 aJ"cD'( +(
Pϱ+߱}`:{uI ,c`#ց]{I|OdE?Xc{< +8b¯37*535.ClU4-B 8۰::paQpڱX'v1e| 2F9#a[ lA{̷Sɥ,s0\; +"_ h@ |9 fрW2:pb5 a|'&Gq b{̽D|^'Fa7BMhXt'=o) <_YؗڝW(5ܞdZnQcU!-[j!.z5{%-dp_jI:Pw1 d_hwWеL*D:臕fJ>Y)hץ(Sc +e&Ir2j}S_l_W- TC|)3I]':&ͺ(f^zLd/.XBVJ/)y+nd)˼hYh=w2٬ )vQ,yvi%)YaYYWCoadbτd`Π6AfҊ`u ؋M,hSbE nU/*H,X%%.ls>abAǐSN7=p w +%!9kųx)-vbE8{`u,= +*̃/ŖŔ fL7=[+"|WhW+BwK' ,:}mDss^R(shRX\)wPCTffU*'EL;mV1$bل-mWC_^!S~\[~ uI}q-v P߻`G)@N9@ΡKհSk +km N3<:fjm0ormڹ55K֤Uk|YxWWENѨQ?Jw0%wrf@Rɼe%ǘג3Ly)P@w_wOqץu*N:ڕyw[6~_U%1/;{xb ؅>K= c.Ul&׮VsǭX[-uMu^uY~%U4uyqx"*ʡvlC5ިxxŃJs`Vm\clTf3iwNl׶ݴMnc3w<>]لmqN +`TRiyFxs.q|r۵yyo띭}w8>9|nrolʖҵ-ˤe=UΧ䋜o)`"<#“QZ2\b$D+ mk ݾKvxr~Kqf(/]p6Q43` (; e /r*x> ].K< ^9e>gx:,fٌ M`tWDL+p`_+ǐ5|U"wxP w`EĄ+͸EQ"\!dAל8#P ܆Vk=!㼽ay4gTh֩ȑtG] ;z6& +,}sQD%IV%~pYJFii~Nu?V,'ZBsS` 9}yt{\T_b޼1zDw5Q]_Z|#x~sKn)$U9 48U*婄\C"⁒RX?"ZB =zOᨮFgyfG*˒V{3f{OBlMz 4eεFO >pZ`JUD/y:Ľr y̿_ # C{-4k-CF(^ԽfjppQ0f|7\^a3d{wUҕiM դ 0ь]}QNbWT.ŪUV^+1\"h:еg=Փp>j +-b oЫ*CH׵Gh(MAcj1:QLtwxBOg tZf݈kVߙ^b]jP!SXIsGN/l7O3y|-0?a LYB6b>@p-3(.7RFvsնD7ó2?YWyĪw6vXhŽ]ٖ eɳјJgg]ȳfPQ%L^`}a`aQ PD0÷Q )Fal7Ls:q&3sޜ0e \[%%I8ù s>pٴi +]ʞQK @ ?IoUWp㠻6DC{=7ff:47BsP u~ڪ`v? lo>mnVGA '&:n1ߒBӡC U(| YO"$=3!Q2 @ׄBz=HfX0IF)_u@wPlP ( PC2hM? tB"A +kSRsӚEs@a=2`8Ȩl3q}JCHb >$L$)^>8qZt^wK-uD'3Ÿ2q'vABpaRNH^ɛB~ CXHPCnnDOZu T 52^HF"$W셺=W3uЯGnj6{ΆF.f#W'~#{;֫e=֥?:CןdNvå_…VW.D.rah+i 8Jc=a} Xa2bak7lcwݿfwܳmЗH=_2p5YIr4'jqbjQ3o7>xDxG#G퍼y13K~{ԷofÆ_$TT.nTwR7\v43g7p$I42w7y Y<=Aߎ~m1[b~(h-hHh\`%li<?"ﻝAtWΰ)83Aq^aQYpZӀ4ۥWsN)LjK$4%Ygu 煵Dğ |1SPk_yd`ZT[0VFr2zeN +K<׭EhJ3y5YxS}k]|tDP%VHEfuIcQؘo1}c%殺9Us0clƐfӧveٷ͙.J[}FG]z%WPt!A|BT*˗$S^X`EаtP7)r>0Oc m@o6Sm9`ߨIvV8ת\+Urg̬-l/VʣBYNxBKdń3_ ܣگ逋"`~ǸCBGGAӢñG%8XrӜ+wcNg3de7 }|aQ$G}%@~HJQbB'Ry"es8Ba+z|tٰ֠iEU9H.%:!_YW˫mks{H=%Qi/dj )Բb-in({HWFG'5ԗ25e;8a\sI}iqp)2t|b +~VA `T;!V.J亻r'?$ +K߱!u="!{KsH_[p"$bP[*( b ݜB~xmuSv%2MYY^aS̃$0(8qKQ[Q&']%3ZZ:WtCY?֠ȺYwrpnvC}V}^8vw֕z&Vk}j15,(-aW¨/U V]uTz>+C4-(lA~*h7#};jdEqmim2Gi9%5\y볿_x,?:_/aa ճ`>GSʹ -]=m]]@^7^/dٿA0Xnb>/!W[cv 幷%ޮB:B:㦉fz~t.tV.=Q7![@$oGx(3͉OF"Ʋ9u5ctmim##?r>o<Y, Q}hPv ec@¤b=%F:ފ] gBgb=3) ΙmU?nqxkzq 7/ޜS'Xc@ +v>ʵ sH:D&u9_[sc>oχ`|mq2oTh3q6٬܍~Ivl?ᮝn9~Wc2 Ng9ឋ@e.,x p iq6.a]xj_Ǻ%,e%V/YUKʥ#LyFr6#Y,/<爯1E#T{'trcIICm׀759`w +ﮃ^ł_9}PV )x=χ_u1>FH}oM+@ lzx> չle D((`W% 1`A,H@Dņ(< C-O1D!ODQDĂg0;=;{9F 9PY0s C Yҿ#DHNb:D X +ACFr<(g3J,Z=X=OZ8 `] h%+"6!j&;@:5ͣ1n@hm +}k7jGK(]48Zw }0`W.e@~5Gn+jM :kRsG?:=@ON}DoG=b{}`]$7bu)bѽ5t?+f 5(F?C?b>`hUŗ`RwŮ`0o4H%$"H>)k xCxjth(m0k0QLɼLDcOWI%KrW߀|ExNyn@߅BV5ջ ]x)[,<:t6ᑬt7J+&BZ7pC]h2ehTsE9塡|(T7Tj +:U3PŸ@7QMVen)wr{q]yMWՌCkp^øZsƝ{=fKm`f9/c)QDy P+Kz?'\z?#qnU듸c>;sC V}ҮBܾUXfLXD%L3lw`φ1H6G[g\qǜqy,wy"y_sW8-q;-v\#,s:Jvv:;9:wlqfLm|N:h{u A!8bnqm* +[u_epKؐ**2,m7֛l1l5)0.7TJ6 W\:dk\^V2Yg`(vF#9. % }#cwJFscS[ŋ6-X f%YZ=_ڽXU9 ֥t'+mZ#PM88>(cEV~O8qT oDѺk6+Y"ʐ-ʑg{fzmS,maeye//L:}?>4sЬD}>͟Po ;`k@xry`A1Zѓ٣L2eit,ET-RBg}[~=h(1:ӑ (X2 d 3lj2|/N&I I?Wbиlqr1_5׸S3Xejf<.iSGCp" +80(ٯ[u^ȉ̘AȈҢ}QXqR9Ӥ'S E ]|j)ǻMk"-&1sT?pjPEq췍Ҽ3NZ,ҿqBj;(v<.@0wlpvL8!f)xy\ԨLȵ" uyGEuqwgfd`.誈i*e60 URUZb2XYK(nQ@M\)GO-hknQ999s{}b<31=uO\u]D1D[~:s[<ס='ˍykP0e P0I(HҜy2s&3.N#56CiuXShvNޠGGp>36o_kE QY|7jdYc?4bIQ4I\tl-4 6)1D")!ΐc/T+b۵ \z/NFŋ~>\3T`'ٔuy%&G,5E^rR!+ea򗤚a6IѶE +$}LR¤r'Vaܦ 7w 3wY`%Rf5Q|'&`_ԥ;I 2ۭ^8cGbt8Nşi kܭz a5_b[7 W`=.Z +׆]4T[]Mo:`+@. +L p? f' iA̓0 8 ׃S +{t{Ȁ>-fn)Eϖ:4@ro9tXr0y TO&`R3`Q19*hZ]nusp2Nm U{0C{2OAy +vP7A%PJ^uqW}@w&cN7sG80u +p>-*ka{l(H/xArA$upup}DwPA;6yDt3=S-iw8O.ձ]#Zr_`HD)PY^K:_KFn )kp9}5O= G; pKŦ@ ؋+p By:xyDM?} :[KWO21 F.~EG+#ɗK q_po-~#nT]:˪^nb +8K!N>C<O}'iǠd[[k;ϯEf\ wNrgũ!p/394L`""}*/@%Spk6\KÍ8†NQp: +jp2`9Nű yy9t>`:G}vm(/cH?5'Ip?P;2z4.c: 'i8ڍVW0.bfzWt[=h/ + n{h˸_E zyɓTb5 O7?OEOHhq`t Dg)`Cʘ!]Zv{*vkphsѦŭ!CΉׇ7OZ4gI{Y*w}? A/zPg&2S:Qh MP3}:5<@SnT6hZ4uuqUҠ%YVkNq+5WSHOQZ*HyYITꩤމ&8biޡ'H}1 +"'b{d86Gji`6D3-vv]m / %^^%^DR[- & +[v\^'_H {BWG7&3ҿ| )-F{lM16ͱhIbƤ2l}C<@,L\5G$jW3NpZzfyմyQG}*.*D=P̎NQ-xyO |JOi:D'mxZѬSQ7uOg x $>[TujZ*W+F^kSRΌUighUjP yj9n/L]ns!I!X2)!K CmJ,S,HNe'e%9ĕىeܬJiybLR^[(TĻ|~$A& \9 4{IF ǪXnZ㻨1b12h![\npI%\BZ_ +/7+)ەN}?&zAI(^s?dN~7_mSJ<ñ TMAeZ$Sa2s +[jfKS\q7K]*Ӵ'Ԥ1n},)F??2 J/W袙h!kS.s(N9]Q;yIq#IlĦ3Ein8U(1} +$pGn?cUk(b,% J,v-I.. Eu݊#ʘOʘA'GHotE,9g0@X3}9ݓT84ɬOOZqIP/y_,*ʷ8o{PzN-gߑn1>c ӧ#% iJ-,KRĦwIp^4;D!:gk{Re܋$$ӻ0 +Lg6)C8cl7FgaTV?x B\,Il|ଥҨղYeY&rM"<'"*WB[+XIYIoR٢M^s=\wD\C5`0D"83ƹBqfL7JHCvKCviH#iȆe!Ԧ.e.I +^ ̦{~F`8[֘B99c@"u(AxI$ %_2JF_Tf!شzS۴Ne*Kv +PrQ? +_H +\ la d5i!݉tOR r+ZJWޕeE9X 0e,sòb 3КB[m(xuQ!b#IY}XLa[8 l5N /xF6#n7LŖ-lڶ* joAe}u͏Dt##s*g16Jҿ< pnPBUNP6t>2 kgBCfQttR@Z| 01O'06 z? 'Q@86!=Õx-~ 0h兠V>xڸ\[ 9/G0+"<5`#Ha 8iAu#y㼖➼ ŜG;/"WX_B_-'{9ȍN2I{F(;޾^S@y\|N u'^5Mw6'݁t$jV; . ={\\ ry =f +0^-z~I8m|E&w͜>ɤDtح;DM"P2$ydIOK exJVғ;؀DW!-tUU񭸆2Gq?"G@ο\!/"o™89iͦ=zГQ3pkMrpqUFjFgъSm$3‘O"%Cpb.đh8!x ܒNuY"o$[ TY:Sf*/G|6Eр&E :=؝~@JDd j|<\5x]7\uK18 Ψ)ؐ<޷=||E>86pcQgvǡJ? +`>e TNXI(ћ`Pl67HCNI6ܒCHrCEIίx̲\fimc?p}a2lEa$&4lLY(6COBao/}\)A55J .{]8..]n r[ۊ(%*XԱmSӦi3δv!mӴt2M3Mil/2f9ߞ>f&mJ`OfO-'_Ʌɍˍ "ܱj}6p/{Vp\qz܊5)hF+" ӚjLjIMs"fÙ!v43gNsCܠ"\4wYSe}~@DPCܦ+;t/m"hUc*7'sMέdFNfXa젶 i{~0ק=hgnK.UEg_  yyBrpeCmnNSgcDǐނA}ۘ~#ۥ悺\noӝQ ~+BY_٤+Ш>BIN1@QD,60aL@ش æ4g"dGٌt*tUVG5U~B$Zʜ5!M^Z{&Mpݵ6W&dw*&]g] ] ++"\F5uWep2CiJi +zE{RpqbS#uEuSnCw}jwςb_c٘B5Y3xwZ. +וywy_sjJ`&FOy]7Gif-PO՟ +f"1j=d\?_T䴼n"[n~i~-J#0GLQ;;ZPŽ0wn)j2@eE~W9tYV2s܁wyu65WGyu7HJxZ)st~P@1лoA^nhRqp@P>CfdJ U!#:¤zq65qMMKr)=kJu.ӞF D5-ʞ[ +d!st#2ƶc8ia=R|+,a_؉pH0ç] M&)|II74eָLZqhcq=dLO ej=N'$$O`fbI"qH+FB3sH\3oFH28O1p#Mύ!Z-v87 dRLL=e\,'`f< )H\8شhlX|s/#~qxqo n=<9) Ch_$uh +ПfIH^6]p) D"\ށX"vŌu+XEJʕA|-p~I|gėPG@pS%gi9i%ҿL/וP1M}SQQB_CRJSNhHER !|dB29>eȲZfǚ550żmw\]繟њ@ҚCeSeSE؈xxu`E D994|Cݬ`@c\ 0^_o !(`$' NRp>ٜ69mV<Z[9ɭ u;yr)ɘ+ƫf0jRӢ P676 +}@R;Nl_lL:X;:8 u'F7yۀ܋ouQ`= PSy +*_6XAEl<sDw' L7;0x0ZSלV/R"ȭN'w97?=G3sǼBOٌ<݋*%_꺑aуBFqd$$o+%9V)6 *5 Gp-'.o Y]> C+"/NyYG(2ꬢ:lΧq&9[<`_Gz)s 1'#`uQ/Z)ʤN`uSJY1ks4r.f~/Ȣ!ӝ7:WGP3ٌV"uC.b,lN%3_gpqoZ躙Y<8I + ᧾dJQϟ0ԊhI>K\P\͜E140M\ts :k42JC斒e.F` J.$A"gѦV84%^:e^.R/NZ*4؉zzu uawc3vE= 2,wwȍ>6^X㴱;MI(M"pX2 ʏqPze6>WNbOr۱t?63/QmvU揱-xN,+? bIaJ.l?=*q|]?o쵘ݖѨ)nyfQ%*W`U56YQ1 ^GXmnzxj3%Gyg{GFhh:!m3;m}PcjQevlMv`7v9Xgka}9VoE{X^nA+'C %bY(zԿ=}bi}z5 56t38zc?*ð1ӱ#9JYXR<,u*BSPۓ C%(Cg( +<'bg$LCRimE/R. aǜ|+W㬰@=ծL?2ԡHWO,TcNiB:[H+~vHZENһ\b͡\l{Jza|7[ +Θ_!90IB|B\`/.> \/E(TL : <&JAigV29Rz)d>rIv!cv RC⎙!c1# !a ؐHĄ +ѡIBTh0=4W -mSL +'-kzaRYA#[]dK3f H0$h\FFhM04ᘮiBdx0%|09_#M273(Bj+7& +"0#2L*8y2T2E$\Ct2_ۮfFmo^R=|yߔ-}ԋRR-)>Ϝ"3*{$efEim4%wW^zQM ʶ&fPndXVL#1Z[W,2Z2cI>&6j!<@ۖh!Y>q4M`,e,x 9*#fT{RclO8MIE,%eF+amڭku!u +j[5Vm8պʭVU_Z-mߺC[[7䷦A-Vsy\۾HJ1eRl4^kЯBnfs nԢ:D~aj^)K`eổf+]M"ˁ샓4(-wZ^;ir) 㞓nwF[Zi&sMk.:⽏B8jijpkxju-HN~spRb]05g9#э܆AV +xE{M\0pvƎ4Gh 1.::6zIù:bQG, r/ֱ>[#>AVG%h8ٜh[mӝihml҉GccPϡ_ONIt=.9_9%tzuR glf13] &;Jw>%}iBPWf2PWIU̫8rf`Db405nt;xZj~yl ҧp>HKo[ȝkrf>7vߐ@a5쇃L  B,$B&'fѿHi5\Buz}M=żtC:~5V)@C(M44sћ 4棱XׯuSDg-:XsE]>c}X+]`F>/jh   M@'_\h(Ac{)ezO=lK59cnE鄩zj>^TPnBHȅ@B.@!B- !"BAQDTRuκεgzvvnݥ]9o|=y2|k1;nmmW׆p%f.Ōb^pe^wqbpGX}qQ,MB!R}[;q+67Dĕ8.n0np̆vr|'p"~b!MX‘8p1Slӛ+,ejwѽW6\ڔsxiXJ$+܂d'wc.#2-޺[b_77 I}O0vG1QݟP{WH{1jm }=]8c,Pxub'k&j~GIF(}Ls1.è( Qv 0 .E!qbz]BgNtW2)ZXKM於C~ʚ%X$|@5敏)pS=e勔Ǡd#$Jr#K*C@ZԂvenx:) -f$sSk48?&"fE9OO5_{Hcq2Kc^2F9)_<Ay)(ѡ]QVE9*(Mp+Фtl ;|Us^lcQQfU=|ƌsdL3NY)GQF@:,xphRRW€ + WzPW [jƙEsjN1Ǩ}|H@1jO'Pݛz49D&N7@9z_ЦG t|4j JQU*;,:7:?L>fԏ /1*Go6Gg!=GrO4\Q|̒մoѽ =?eiѬ_> Tx +`5\@mj#5uiBuc:NVefZq1^Tr*L#NKT֬`o+&&uh<͔zSy(CC xIe_3LVe(%dtSV@uʹ[hUIѶ +X6# D(ЯvB / ?02xmY/sd?q5iݧg&#?E^`!! rB*d lnFf2SH/!-|H }z+NRi2Bz'6@m W7Dd;灼i06@0{]1K%5edX+aXo/m` ƣP;612@:Xvp {KO"ޣbrϯ.˥*4q~d%dԳճ|$$;G؍=g~Iރs{Ecpnk*>'͓|]%5!qw4V BB%}lN:PBp$aIvg9s~DD$<Ɂ' =Q%_BfjDd{=YpN')|FLN3,19%]`aB.(}INPWʤ8xd8Du:1>J;돟Ч[o pp p&t;1({@}>np/p_b?'v5Q5M+[4[Rjcr}Ǯ{GﱷEsS{^ =9כ `.AFhC+qrCH_i!eWk2[EB ;ɳtUvZ+~~vuGMD]쟀F3A#bÎZ̙m e|??[#(FXI 5hHKS?(4HИ9hb4qR<_Zق5b.@dP+^?jFؤsbguC |h4)ڏ$/{;vk.rrkmOqR-Yۤk#ވ ?;@_e.hza}D Bc>رlÎر;ꔏ<-zUv5ZVJ*T)W x+>hv@Iy _bh4ICgV)B^fUllF-n~TTj{OĎ\봷hh{NC-U'5vk}?UV0īܐe-5LbCfaJh*w\*v:"*p~9.ϔbUnܜoGEچ{hsVDh_wTb-pMD(9IQ&1S9DqpŚjdt/ a44ztc-Mh`yн\g̣:0+*"EPEaeXT7( +.ǚb&Zq_c5֥1xXҨZMD? \{0t^>|߂3s1TG9y%41W1~PŌV1V$ٍ6es[2͔-WJ3-WAMJ`?fr1 6 k`T78bEqgO9+h`U9Kq&(%a,pFIJHc0'+ ?:cx#%S3=|K!1'tTN쉽/[P%5)J)Iq$[d-`.s\ŧ<+SJM2ZbSI Qg[)#Si)ZdQ5DJH5ʜ4LiK+Rm9-QtzƦoԘТKj0;1Ue +v~ۘ7m]Č~2g V|F2-cY1YVEg56@cehKoPxve +G +r+^eti)̇ ߶LUvyWMP*սj4ʳrUS99~nբf@ pWKXN/`^ @8)a3/ffl^˹-~**uv4{Wnuٕ-thFt2K` Py;Nn{7M.v77\ĵ7TN(WRjgpG˽_&h'?mM^!A918P~!0qGBAlp.|7ݾ\Gx`K:9:A$'1 +G f:GMhI ކ* ]{.CvyH8ZZg8 U|J}'|/Fk~Eo#v{n;tk`3?M—Nñ=]|m--M< W8/t?úB9sIm|y=C魇 +ЏF{ok:KkOB<u:=K[Dp\џDlAOЕp@F=+1ɤI *!q|@#q8մNjB)odJOXWGta(V2:h䳣:FGqK]k!*WmWxvjgvBm1<{/H.ΐ}"1++YO䱜LYvNATúuLM&آMG2ӤO<JpW0`6``6` +$&!IsM4I&kf]zd=Uuӎv6դQҺN:mkUv޷dz{>I}R/xW%^սŋ7Zʥc:\G&dQqXtS gb"㙏5;e2|+ +O =.V%?{ewV,Y ,de#l33a*pN79nek4y g((FsP;."7)R.JŎ].%Yˏg m K(dXѢV 2X4Lq턶GIPݦ2=Ke6ҿ7Q׾H_Ny5K/Ib$SCrM6MNJ)&X:@w8]eos[<7C_kҝ6GYyҾLh_Fͱ 3k6Tmqeioi⧣"D{(Uh:D,xlO}fۯ_\DVyFWf/k\2,'XL5v IM[aS4,d +48/QxKEDd'{VwQi> fѩ6n5zqmIޚNuk>VֶJTzx#f(-Q[仗G~C(7_eJ"(YRZ X;TvPљN3eՔ1[(80EQ`#.x O~S +U..HgI*1'k*j;ʃ(`KO>=&z(쭥z MIv Y =DFۤ~&~OF'dDwK렴ĔDPKINA? L!w("d U9@pA҆GI#ydGΈ$ ?KŻ$ }*wJkYEHM%ZcUVQ[cȘ06HD:)y$OyZ'$bcxMćOb_O7xG?#~<Ši1"ѡ5UIJQ٘U!}z I$m8Ms`/68e|/Hu^dD~@cL<0""2 +* 5"(Ȧ(( (8* ++˩₩1n&DQc%i[5ǦMjԨI44>99=Ǚg}T:++Hϖs''- ŏ;q?>Əq)S&ժt"_u~uyzYWz+TXGO~>/~طb-v7R(=zB>C,N)V|^)P+[]G9DFx!Ngu%yab Qh@#`52yi>ZUƏq@Vf*%cDuX;;M,$ǩW5Ġ1 +㱟LVUG$oV*V[rcգ_Ks4g [{/^g A' +hEc)hdc)E +ZV,""[.v._iswr# kG>>wpelwUSVw JhYG%Vu.ZꚢZL-q"|Y܊TVjZ֤y-*s?RwTcxJ1lD%G(1,V aAي /иrF,؈lCuR#~=;iAo m +1 +ǽl09C"J (EӸъQ)5UkTtFF[4b0dǼa1|`!vS\7ya&po +K#.M ̣>0dQvMvD}}GEepcĠ`Ԉ\Ƹ5qiFkUظ/MjzbNs5MSTk7IOsf`f{{K9YeIPfRIIHJWzrҒR%SJMJM]j%7)MG`A,W}́z@y>9JTqd2јTI)& +`ҧ)1ݮEXgޭX`>x7e8نV7m\30*ǔ.SR3(;[9%ʩVdLE(}t jK4l)w)We 7v2l {Emg6k|m~sn0(z8E BװH~Rr_&,K8p.+*.]tqíAaa= Gw1]_5 ͩPFs([\!k\>ZiJɩm*si-䱎jb`;6{[ Vf6SDEVFr{ 6xh$2.c}cc}ǹ}7TGKH1Ia1y5빑oz v^x2 + 3#jrK y36 Y+0;g6~K8N[ u?E\vih2@o!ނ18I59͌# </W/RK ե e_&*F;Djǒ7pjY`\ U +\eN>aFї2gl MVżuؠu <=w'-]U'mu}r uvxa}k}Ӹ_C<ω <74}tWE/JD3|t*Ш-6KANw}eE|y\Y"qyW(29?9<{=;BDzQDJ^Gt<ΐ))y|X5<\i0w|G'X4HG# |4J=ͫ O[;i$Nb''sqbױsqiRM6Z:umU]K+T(L\Mh B6&B Ć m0ډ3??~:w}~{cc/V0]b -|Q_75O op}$1s4WG + :kѡ\i5ϫ~j%?L FX0i*\ъvif/hGɋ*ɒ5Q&>d +eEi׸?-Ye,-5jԪJ-ЬyC =ij׌!ƔiM5a<NjĮ1]ר鞒ה0F,Yڬ^FzЧ}c~,lZsLf1;5mnДEami21˘F-Jn\U c>nzRqU Zju~?>./8l>Xz{f,3qږ)Q)&iU֦-,xwnm~LъksxUa +WާyEit-<3M2s36{f 5dw*nנݧG=9bVr\Ym(TO5wU:koÇgZI"r=I8ce^FːH_mUPY^g8[R&Au׎*X;EuTo͉[=?kh=Rioޡyd,}TckDָTߖۿG.Ljj7T2|[/iW?ճ@su~NB/ ]m|5j RC%w{jc@霑sE՝GT*^eٻހ_p7ά濏YjN~#?yJ +ZUVnTTeOLCS-isCO,| $[[&[=>Vy54ИVA:R#Շ}…rn1*bQe\HnUCe٢CFS]C;'Ḵ{Mb?9WY73hzϣ3N Aۄ%n໣RU_*KT>`RـUA6 j`#e )>s2/]_SIǴ0:tf|0^ B-'F)ՃRuPAED6$dLeHKɘJ 'w([*H^T^r*7C%~(cFgJ D H~hObl3ɘ*QIʤ&*Lժ ըT@aتuL.EL%*Pl܎3% Ce{ˇvLJmϳ?ݿ}" JH%:bv̠RѰ$H@phĈ`ּ>5&ym xyX{g(b5 s/w)1WΣ0JWAJc6ԔG1 #uơK?C"<˚eße.o-q3<{>Mzmx_ShB?ʹ |5[By=g®r'oϳ.0gK2{9 2{2r{ 8|oaׄnZr1xvfK04&{CYi>>椏 ~q>J%?A۹B>zƸ%9j]cF2ur9ACa?/~곟B;i8'U9@mcAg|FW(ćW$ ^~Ea{3ظ!'}q=/XRl $Ip.G&& ҝjKt>oKOlH1ӝS{7$ۘ~S M̫2ґZv>Ϫ@VOS;tF=ğI |ݞpOѩye \0]׹ i"'kL>RXf)'Z:%t,ev+-H|';!.'v5LqTa'&3iB/mt9.hXIdn9L?Ev( ,r5^qOCr1/$v9u&q'-[|c!.yds.3: +On1.̓ي +U2E|$E/"|,||\q7˺LOgTT2CeO8[S6[.R^/i8:4D# <4(GJ31yJ}P\M曓Tp$:`v [6 jV^?!=8-:qHCh(fSwԫMԡAS4>. Y2a ݩЃj +=!vA@{ql5[=0fO53\6;ܠICtgUaɚR{Xi Tkh79|uq 5D,P}JEnGBTaT,5VŶDٜ*e/Hy&)7U9]N%}Ik2*#\gsó֣T= W|$^h)Ub{ +Fʳ'+מle'I.;FY)LTc|Pr:#x>3zhL9eHc_#yVR!: qq)ˑLS,yJO-QZZRL#}R\ z@IGeǕ6|W<h5 ћȅL|}^d+ +W\QhŔX]tȑ_$4(c,J*t=TO\K%7MEF4 gR]AQg]wEЪ(* +-, +BmăD3iFUi;1&ͤNkNc̴L56i֣c,d?Y罾}FL+`WJQdv|dȕQ Jv\*C ~;+ιOcqX^8V±`>( *id_+;IFYIJdT'[y*u)ڋ'/ыp| <<_h&q;(@1τ;~$J ~dʼnJ**@0 :3"$ * !yURxP JlL_qÿ~Llu1JXbPt|R.Fz#ìCH Njų#aKgpK-/p +PH9ĜE̓}O?/Q_µEgKO F+k+:w%KF.(\/Qu`;ϰ-DMT\~vPBsy&1O _?f4`9VAZM.?Ppxs{Ez3r [d!m\@̳p}jΫ)$C7XlaX?X6N`LM6s6U|RMySpw+TQ"͡|ի^3uK a·A? XWY +q/O=r, w}qKCM~'q~g<>,O ڙzb/ku?#|agD:a/Caq0&Xku7F4(8!8G䠿&M sA ";`4"hu&x`x?NsfO8)w /:r΄;M6HhD9pɈH#88rpu\,b%% +~O +y.!MwAQj@|ν:+OQ8|H❧I~E?"sphBp;C->Un3o>$}|QX5=:7j ~{=Hj=k? +Ux3z]W]Rt+pk>\P\fFi3[GP'^uz|:z:~CE0-{/J'i : A ƸE+Zd$,%ض㷋\DKè!A6]Tyxscu9/pޏ#N[f|a +Gb]m;V]a;l/nvS<7v#dr EA+|2;17bۊtf.v#ʎ^DZ=B]F yBz}d%,ã%2vb\lQ*'a{:sυ.#U{~=7QBy5df'ީ~.=$8#`; ۓ=beد~ ?:CZEKo +rzSL9q,Ǭ`#vpFHo~:b&'2B". +8p@wtұkuԣj .3HxU32_ Vq G-*3VÑG&ȃceTY 1GT5Ii +De=G(\jycm+U5qr ?'L84^zJKXk'/SIF-6X3k,!K.l-HWMbHQuOzU&.UUfRqJL/tBEp |'6\p-^~w[62UcJӔjTM3Te|S**7WUV㖫hjͳUk}Eso*!=pm`cmzk.|q⛃SbUeMRŢ +MI*NS5[ֹ*ZS;IyW)7urR٩O+fL9p{HC +U |w*_ԖTRST:A575Kslʳ*VDEʞT5#}2.5-cD55,! ¿4`$|e}oJx  b I5AI*;œVYKfnVbUQyUۺuն]ﶹ]n9 d'y^z|*|̍W%Yety-Y*R OGrjU(Ek +&-V_vl4~PVg~”߬8Ki̥*PfYI(/TzT) jhQjE'Uo@ɾA%;Ċs2T\*>W?a;Rԃ|ǤJ pϊ|THپx&')ʨLiԪP*JnRbuDŚXFwlU|^U կ+|DUݬmo W +TP *1Q +<|.HF3ńٴF4P(NiO;JN3X3.kᡖ&lAĵ)0(41{$f[3K7E,^mfv)##ψvl/ dx:4z0^oQ&R1&J ȵ Ny=/亭Mԃ>!g}6blS|s>imd7yp.]6E,`c 5YQ>9fq/r9br9c/[yfg0% .mm,o:HCYk7f-Pl,`'&'ߡOQ!zt~"'(~sbϫ5*]Msv,!{_3hl<&Bh-TlDŽ0 ň2=r?F(8 +a:tPuVr4%-|4.F&1BJg蓳q\E?OAr3!pFpvR#<+;<au:Qx\(.A]6}fJ#+{^8i=syS~}=*:+G /P]Wiԟ%.~J~B.i\:ops0^/c_>Q\f +4G5t̻jL?~ʹy -JCxЙOEh47jvP}hũ߄3,ji0)(' +L5{ #u̼M`pEWhT՟W<~`;۹v0Ŵi%mx} %rǘ as9jj=7{L`e R5:%.Z;}Q`O#6Zm/u؞{݌VlEݥ Te е/iVқbX1\G.t욱k.l{]Z쇰V+#]Lb +Y:1~6ktv 5bׄE g?RX a2)snM?ӳٮ:e05&9(Fd}{\,XH.&=Fڍc~t!셱ۦv,n/f:z43UaKH}$A+oX&fp:9/:jQ6LC8JdRruaĉc;ǗN8NvlDZs:M$m״ K֭bBJAVSV1Dm0؀A h*h6&.ZQPG'e=:3Hì1V*f젗 c%Xz>A4lsGX 㰔gKH ;;Ѩ$:u42to>.& zg=;6%ʯc³x/U|8fwcniL".|5ը\nsL]:Yuv0-WxZ(m٣fA,ǔVr vM{RaG^{jSWKVZliDҸZJJ[;lWʺPɲ1%(n۬mjS" +ۧ:\G8N +6 +CC7]'caVDY]-vJ~%uJأjw)UԱ@ 1E(llVG!~*h<G +W^k[KBzNUy9-粼u7 ;\MZL3v@gi%r1O5m + ջ+rW]'OWT]HU+ީJ.Uq}\Kryr{oj'荓@.pm4$x#FE[תסץjWU DJ[զ~UT㟐ۿA |EFpJ偋rPOtk#Z!kR]'D~vy*婩&.W0#gGڅ2j<4)Gh/òRYcm݆]h44O#"YePP\u9rWɨUy}4t'[d"kdlUidJ%#DN *\d ԿEسA,$!=P ˀ91B4B6Lֺ"og4t@ mM@mݍ>T𚱮ib8d6cLll&qc|-0'3/<~w4\|tzFaɪ{Yנ6t-#Hb3ı8VjXCc1dOT +3oce}~z.hE75L\=5-Ch,I5$so%{sIFMı817v0&;XTVfH3׆A!s++z ))"ö[/:@ndwt/ ıv?~ޗ}S) +kyR{꣯s"!Rt{^sk^nh +Ƃz8K!Lt?I!q8feep#TxplCN.a0UXR|e>oH])a0K$SgX'0ٟq%=y2ղ1@ۏk#VR+{ @^y3xޔT'Y{.o?$ %KE&<{ŋsgW ml}y`}ò{ސ͚:Lm`VKs%O,~ccl:W {ś4썓dŧpO/yC/s /d"oGG,~~ͤyIKLWW^/}_%Կ,jg'ހ Ufyw?6sZ) +:2qӺ{Esxq~&̳gcۼ8m~v|;׉8iM鑶뵵)F=Cݠ$@cL ILHCC􏩈C$PP}~{<$% ݜ73 0(_fѯ=MgP^ O߰y ކ!$=~7V!Rd cse e:#h$>+xyK+Dgt*sB?Lm* у_u]S25t,v#Wȑq?>2S{R#aCdC/6k*< 3ϋJ\;-[Cw6Н@wY4:0 Gt7)T 2d V9-hm[=c0g!X=GG xl'[p3=ѲЄqQϰǦ![[-&v؉c'vة`;fL$GS\VY<:ށ(Na |ayjiȓ*ʝʕ3ݔ=$[愬epf(Hicc{SP2(:x$!(*n?/UK/w6$gGL*)r F%O9s* rg}-ckl@%!4 +AhߌM-]N9K-uma*$MG+],ljj@iCePPo)CН$PnNS!6J@e4U6]?MS'hu>[w4qu:@zJʱ{-hAz<2Lrr®Y~ΚE~A!ah66@A<0ǀfq&m&А ឦ ]` ta/)q ĮQaE{HYaNaV6 3]Qg6{9d7l[ Pb F +*e(P*SS +J/Pʥj-2 ʴ:ڱj 3Hm-ɞt;oel?V~YpYKbr5 c̉ջc,NY{&Μ&38]p~ᣴX,k:gHL6}?ѯ' v ?mI[-~x;gr!q68wsΕΒmQQ]·˨#rs[ 7c?}&{vdVĻH"8sIKi&xA;.Gd##h^e~WN0?HH3(qe3~VpNEj'[ٜ;nG<$H9X< WU~H<^W^ef\. euqDINۿ^p᳹ϏU6K<`,D$+5>>ɿJKb&>f- | +Ol.>IQAaM2z 2zQ{u΢k~8 p ޿z]uq-l$.%~u9Gem~~|?D~bz":'~BiUh +^VXe]SNڟ&hq48Zj%v؝lj~>^n.NC)u}v!~D_v<mv\pǝ;vd`IЈ"v;;eZu&v;#bl/"Vc(p< 4z"%kЙcp_/;muiG:ў؊ @ENA{;ӱ;arXeQÛ rW+b f8S a@䩾";=}ll>B~ *YoaT1v|*8=ط{Lcz\cQlz+۱ݍ>l`o6 ;s:>GNU QuCt~1lEоkپ Tc ~o~;@VdjYdg:YG-e:5c_ ;~σaWuMC,lr2ژT2c^y;u£)TE G7Y.wmkUh9WJ4fy$;B5ur%X| EΊ}ṗs&o/E̻,HK}ܥx#+iժDb񠂉jO˓˝lSMG;lqf܆i I|HbxSGdQh- ϻ|Iy"QX+3SD~ +& y24Xr5 9gϢ)K{caq+X³Yφ$/"\Cedj(fsI>'ݲ=&=#U0?;ӼMvū_nF5#\O&~mXflؒ! ||e6;A+h9/)>O&d\25 +r73D V:HJW xmǶAlcoC%K"K+>|pN+=`hiy׀)ޅ~F5}faX5 ZZ" +nUƱ3h:Z+neJ;=HYB6BIH@P !Ѻ/NT;նK2x:ɇ0p=!?}f^LRpφ`@Vr@G Aw"0<A!\ŜԪX<71 1 '#hGw_C0" 5m ṫ` ",B",BPGbP !BpS/ t3Ϟߧ"$/0` %:BrXa`F6;XApٕVb\r>i:_PK -:G/Ґ9c+.q|h"|X ~5.5uбFl 0a|x=u04.zE4)x C$Hl- yױ;'jn i\ W8tl-бk؎nA pNlEMlaY6{ר` +Y;y80_w97=Ecg@Ҁ= бQR$Ή {P1j` B΃Vݕ Yk`Õ(,7U +U+'F|` + ^EMB@n/+iQ'B/ paT/D;C!XB"0cr>Q88/l0݊M?xy~n07|cǎ0q)SMs^(d^^2l/WYn_zWl۾ܵ{"ވ־o|#G?>3L6ğ=w>1)BY"D-U5ڂ¢CiTSźƦffpvv]|nܼu}ŗ_o~OD%}y1<\'_ gK"0X8d$ D0QPp)#`@L6-F8n#mO@zH(=&c̾dݽz~x FEyy = % G X'$`(,K?W-=C o"[ ;=Qo;p0ȱ4Ï?!Idr -bXwAWM1 0 +z޻}_>xo=z;xɓOkMuDT__ba~CٖsJ:CR Z G#e&\WfHKi h0a@À 4 w|kfdKeUh_ݯAųs94HASe *g)AxӀ n_ToO*HSoTb.W]ޠZA Р%4(ײ3n膆>nE$YL!`*_mԝ/QsР 4y"ySIfuaƹgc,i0,5pCu~S9Ѡriȇ۝+]xWY"Z:ӸdM3^Dv 97V0N6CC4N۝#>1tdBG*@C'ie$5hͥotРUrS!\ʖrz$N:Ҡ#{脆ƒn#Hi КʷkJ +A˱)sNy6K"cwgI=q:E+6 Zg +Uo-/4CTРa;rV(ՕБu9'_4qbf՚ *ʶ̅ڸ|5ǢT۳,8Ȅ#Eƾt^鎗{<6XjwУ-VZzQQYkF}QLVנϋIh4X$&}49߻w?cW{YE˫}?Q +˱lpWDL|rV\`ƉмVmӰi4l6 m{Pdžg0|ǐ0aV]ց灡F!ʺ[Kn۹l{`?)`oh@lǧ"sf\޼-RtɌ)Nm-në= +5e'#1=0htHh#EAg"F Vh•Ibm0;;6 7`2>A :SvIQĢU]1W B% OXoL[n` `Q/c×hޫF'Jcs_+!DtU3(˗vjYy`xN+1™-x[VJf AƻC),ȗfjkۭTkëK/ck$fLGz(6lj;^i<)7m}Uɰw>&t%4aS&Hsĉe!e;l[԰0ݸ/WioƮOW}/>{cI_ᜲks,p!m,g9@Ov.Rgu6A$Ⱥ[5X=ښWǖͯslwrl$&";$&,aqJ'=ʲ[_vwMæaӰi7X?ښc˖9_ 0tJddD'%x:,&rA>'>\0EEh`NӽGWpkz^`x +Wc"R,Bq&<$Lci7_uA[=kV};Ǘ/ b$fǢ* ˱\PW@i.wEfx΁HmjiHW#-]`0(̩ IHL` HwEĴϙqrxsvB@E͌:yn8~ ^I3mfځ6MmҔK IJ qCwI֣yGﻭѾobKl˖%[^ p(t4uU}\?ɩk3Xb?<1{B1 )ʠ)u +e;5+jK״4Œ^S5x{z~q_=a8 ie/ŴxXj(Q@ӨʨVf =[rSPԤtuEhx{~ {/ͩ0/!=k[8P&ڪY V $7yMRULMogn`##4n%ubD@tPf*haTIȚ^ʸ,oe>OUq x -"8g3h.PԗMЬ] U,*WPW2M~K(d+\+x{ڍ^o_=NioYz!pg'ئb +Z(e^ik{dEDUۆa}B{_k_ӜB3sޔJ(6y +%<$iCPMAcqd"mnf:p~0HA\^0K Ì*QJ 82Eg`*)=P3؏6r[h/w`}o羣=\[u᣻nj:|ͶoZp7ȗ|ImKu:mlB%a50as5ޱwDGI^{Ivx\/$ٝh cD,IFIdB#mZ47"TՁ>m3V?1Yiޯ-:B}Ky/eN(^, +юd,A#$9Z6mtoJZmio=aqS5ݾ|OӂSacO0.v8hx'#TQ*LIHLʆt ޜYޖ~0˪a +аm=ć“!A)# xB1B 3QFg2R!@ R`, }owYr6[iì+auc71'R 9#lD}qNܱqZӝNUzuuk@zWEAAP I\Bx $F$@BȅpAEVԺ9;m-ʶ?*9M8bɢv:jh"(VV@ߠTei4EJtLpavwk}n䅜4~1+=n*(NU +<L;sYINiBx6 +_sZfFGܰZ)HB':!TUr_JDot$ H\$\VQ"Fa]|VaG ^j2#(Q6"*r*&!i"$]0 k A]0ݺ4!>DZр/rz[IV-9~`qL45z]ECmdULDD](ՀOICVt^DA$"C V[+{$SL:Q 1hG 5M|CF^kʇZx3UAPi/  n҄di=ۊ~i+zd%C6@>k\OX["d>Еq]iB6gx;iذ% +gd9 $*MM//uxUakfR2ȕ\o`*X( 0,OƤAq.<1*; O[T{j8lQƒ .3&Ba:A8/ W=hS g4IC΢/}ڐ:=kJ]* *8l]Kh-nH6j &_ciS 3Ҁir`xaؚDy]Mݧ 1M&o +Zr-s.j)kjTAAdGO۸7`pHGܤM$Հ!o?f*wm2~\?h2b۩z2lnʯK @1'TYY0FG)2UhӲ4`^2nK֬f{}Vm&pҁ-ZwZܥ5UUz(ԦMjJ m3GrA A%h4 `Z ЭlVy1>g~ |y؟~uG? ӷmHozޯ'|%:WS 8#^87Ѐ`SӏT]=r{L&u~C*gN{i%8 dp?3 x \aheeh jOy`~RMOU!KrUh>Du38lj,J0pzT~ޡ{&`jmյk˦t˸("R(HɼX&QoAqq˓2,ah6EeX=7eNަ ;63e0uOɧ4]jnH"QRĀvߌ帶la,/1 G#Œaܔ>ehi3~1k<ʞ1tȧiPQ'5D^LRMl)l8q(˛G| 0#xeX+)z 9Ys{xJ1?o'ud^H2kq2,9ʄq00|hahe>o옵fϘ+&;jpQNj$ +%h>鵐ifqfb5\Éߊys&``1k{ڦ4vTᢁ/AɩYL"2B5=+ v:̂*;\q`r!=\= ycʚqOZO:ᢉ/),duPbM97Fz\Wjz{Be7&H΋ ( un̬uyP>8Z?]'[E(fjY1)QUoh"^jN^l^$oGs4o-Ҁ28>u9Ƚyhlu^sKO3;(jzIyD. As\5KT1E7w>u>3mu *].NQ!iWcZDX ޲=7B^UtpQ+.hD2-hM;[l'Apd:d;,{OHgpj]<5jT:hCjJ +]QI%d@ [[ߎA;.}߆w[|pRB\G;A-٤}SKUT*K0)!D=eRoh`2xo.cxk{wt#;]ds=c?bv> k6`B:EM{MDZ"VE +Ӽgwo2oM{ ireӇŢ#3PS + }fj;8wym>3tE`uÅzAQlnwG6{xϫkE7]HH ~5_8ɯs뜀gq+>~?>].Lm`=acܜ>"ˑ~RJaiVUXaS/%(\bxa@ @Յ e nH\tzK?Y)ƶX f#fHvuqҨFą^DJ +a]XH:$?y.d_Y«ѶOo~~ZJ^]rrj[Eۛb.A\Ԓwͽ xYbN8ww`{-CplInF'LǬ/F>-/,zTB^O>{.V~1vtnYHI׽{Bc{C: >gώP:}$%_z^US~nˢeϪq%kҔIe?R˒6^L|,Oxri' ޥ^y/ >9}Ǿ+22AnB:@$dPɈğ?Ǐ۠d~u9;3'ܝd}/Ds;d~>O`?T.@WY4v,dG$xPt2\11 ЧO| @<(1>0nN\x??G )eUMuƥ6-k8b#S͢v횮馐J~Ү*`wo2`i(`!8):W@KD|Ъj){g3Wzǫqdq 1>, Ay-"8YhfNS%o_%B)X7oǶ;LyeT;- DA  p[ZT ͷ4zS>KkL7tDa 3fY`l^{j{~8 &x@ ?= +R7 +EUne2^dQDLr9I[M#D%@P؆~?VN8 o @A$o @ (pM@/6,qkًxդfu㍼*d %vk\Cn\ӂ9Xgh ?)lń(9 +R7DkPPqKf9T$Y?. c(w 5A3xی{6gsv` ;llHklԪa *,ђY.I38aOr791fkpoui6ٶ0 ( KJlK-Xo;_*%/K8 P*cK3\iaY< r|^|ǐk2L=>_USI;İ 6mNH OHT$+U=Td웒rl+Z3! 6?9(zI!73`zѯP^e-'ڜ2a@d#LҖ*1:HFמӼ(/J pEHy,pWt:;7 ^)m.3ȷ '=Zs&6qg +6q[ͷOG$$_py"!hgT6! !E f_+Rl.[buũ@36.}"~'>]W6SL + 1f񌒢Su<*qOhfuqi6gAm8%h?w=Oe4Ĕ=1a$P[k匭sH_g7)hv!oFVϷ0&96gtdul`5( _YT8PG]s߉5{4;~elH&{aL0Ejm<,P2|sszl e1- +?N٭s׏oPʝ~w8 JW14Gu'C0VЮ#ԫ%JFWV]R-fE`%la*2 +& 7Ym((C U5XB~dgr[7h~ }hč87w*A?:Lڞ64^or]҆Xѝ&jL/RiYvCA)Tu6Ae} +{48=?pkbPVg(3]BGiK{hnzicgXeTCP T!١} փNt[>59w#;vމ)/)+F $ev+Ӥ(󻒔.RPtSj]Τ +eGrJc(D 5f&P}j-~&swl&n.Yh)YQtвE~Nkbr[iWra;=VCjRic.TڄjP E &P)46_.K{OkVW<>D:Ewa>r:lHd(qm6r[uKT[|ks+AutpP.0Vhaf' ,լR:!]: sep1"@L)FK%tەYݑ@ 29!kZb.zۖ7.nޭY["B>ߝ1cEGC z)?"WWc{5: DUՄ/ +jDA?iW7lZ7ʷ;[%NJd&Dr'IY\hR60r-ʺ6WC`}UI$P,1oDAÖ/V:eņ-`,oY/ݱ)|! 1iTܽشDιt^73h0!-/]6(֣5~c#턉ӗR05nl:CLy! a1Q_sOq!)%5#03g!0̃T2^6:ע4C_XW L: ip='>sCa@Ci4kP z#T=saTؽ;`fVg  ;`xN@vvG! R\!pJCPy8Otغ.̾߄?m?.N8BpDt=~8+[Z!H[Ck#`X 0- - "dl2.b" >c @gaЫ\BXK&=ה%?}*_Ŗ͐iŢIbhX<" JFA0(&~> C e Cfpc/شLVbJ-?k.A7_"NDˊǣ%cƒ1;;AͲ^bYgT2Cb!,OK= yЫ7DvZC&3O&L%Hq1|4JYqZy->i':OJ|C> 1d#LĐ3ѫorٔTÛcM'M$cؚr]0IU=uf# ȮZT!΢<0ZOsjӞqkuQj-"eA` @XB$d%!@VI %$lj@AA VG;ߙuzݼ٦$DbRfw9WiQ^cUT-U3f5URmJ*0P 5ṗƝK@ޱ C? + ;61|3$-!xUF1x&(bJfX,tf(FނOg5p}o1(f|Sv/%V})$;͚F.MeםuEmvC'hQCݢYаsh],^trx77n97Lw@,Ddu,B %k{=eե:uS.uܥʐt*ڿB۷/7&V,tOmx} o*<^DAxbyލ0>P,8OkĸDT6.HO:{9F#OV{xAW~%=3ϭ/?ulmWۂ%/=J=:U|?HdeP2дpy7g3w{jd8⇃ȀX <&(Gdl1?Ƞʨ13?3vjjqBn8J:j`G'`21| ;7`&oPh1G a}C )ȁedD#O/6 P{]䈪F (䠀Kc.#KqgKhpu?ŀ׊@ؿtAC}"c_zAW;(v@ہ;\BPn  :w#-ya~ C'z6 UC_ + B 9t ;{p?*NN& n +nlw p?8_QC< +Lq;FVk)+>eRƜ%Y8ωgz4Q0kMa?M47q1콌!} Xu;1pC:b`!7Ey!%x„LiRK33oT-"֋2$+Ill2_;$'I$ʻ厐7Fz, \ GN-M"EǚT`R%~BL&6.dN(&pG~H988l' +]mE P7ȌE2&GrpI/9iγ"Szx2*}L|DjP'^81Nh~ʾ}8K ii1U vp9l Z$N0gy4x2L6AT'f=$7< Kl#&s)' /S՗@ A +N*1hb d| Q&O%xΗL(Ɠ+jU) QS4w75}M{Ҁ6D6%h'h ĈADA pm|("F-lTže 'Z88kaVmFwII7 +i~~~}FY;A2 Πq@PB ^WfΔT! sF.JsѯzJrИk8W\+e^_4 1b ,oB! APw}A"NUqSJxBrR9aC۴s%Ime]+nnYfSV)) !cHɽ_oCP% I/ ֔J zP*5aniԚ>Z*|a98fkz.7q{ʹ=O@dA (F0aDY0H R'uJP + ;-ִWSXmzNf+2~D]nt1k%~fo2 0~Py]܊?K +ՉLMeQkj\rU[kתKmVHaыLzqWb1CO@s0 +&߷uasQOԑLe-ZyUqR+ +Ygԕ[j2ZkkU6NQt.bA&b#VgL{BPz7CF7}V3GvHwVeU+mŲ.5[4my6kR-4UN#rH|jx>A2 91PRo<݂x.NW@Ʋ5΅ʃvz!0$lŜ KHH"N_Ԥy=Hzg04Ay,Ey٬,G} "}bg}OXeeK'!vD _0Yǩo"ȋąs^kJ86׍z99`t2~@2ȓCByvK߿靐E?)ԯ&X׺5\L^sv:F"ed? ƿK \⇻)t{]ue5yn4nq2ueI 1@&d tGeɍRR؞Z`nvb, S!O" +Hu rK}*e:.װ~vxcOѥ$Z"oieLMoʲ@[ F{^ ؙΜ.zD{@,D۵rZ ?8rD݁A bfL6lL0V;f`Kdp3% d 7 l+Gq@#[8ko G-x +,=j] bOrT!H4dT2-pSbj'tC>ZMISs?Ç k +LDFr$j@#H$C!ױAU&46Aw'(vGUNkp+o5SB!JbD}ӃP*CD}qIE3 aQ*qGt7Z#`&gV[VpV0wEJz@٦ }}/DІ.ݐr%`U 0j(6 +pUa/S 1f-u%o/&|E@j R|iA +~9_y" -c>CzϐBT0Bh2@EjpB e(;`uzP/R e@SWI-A+vw>o/e<{g@|˚]b={ǖ lMi24kp/70D'^' RʚBka~mg}#|%#3a&ϰ&5==-:+ZQԣuTD+ʅuBf! H,'$!Ҡ("e(U(Lx@e(λO}s7i /l>BG/`X/Ш[ DՄ.3#6'=0] 3ĉjқ:kci!i{JFӚ0#NI@Z +݀xr 9{"=qH{\v[laSBzYF +Hz1|`D>e1̦X 5Q5P7y7@?H @O< qzܻ,\>5F})b_d < y`ۣpnapE?tݦ,p89 ٹi$,~'<=E3ch/qǘcӬ*h䥄gx=?1x~M\!_;_[ 8> yȷ/5 Yt Ac|bIo#e\=;0 cÑ͢GV\_͘>؇:Cɹ>q%y?h] zjPo4L A f~ 'J8=leC5Q QI^M|or=񁬊@vܛ|ܛ,`:jp!ul,Ap#@䐏bv/f<#|`l \QރR܎V^N9OJtQ'i= +G,`Ow& iנ8 `ڹ} 3 ѻkJ&DD0 GMIT: wc;rjޑnct3:S ])lG en G `2w, oo~g1Ag[$KiPyRT'5kkCWlǷiYjl|(9Uѱrfr% 503o':M,s&[W8nR)UK]^6a֖ 6X~%dgEl|AWIg)E + b K1F|q B̳(V=1mxCY0;̂c&εk\,č `rlLjxcWʴ|Yu6NQaK:|a6.ݮX:ҝbMf*7CIC<\:W{}w/<صSS~ՍuquDPQT(bIl$$,D*0:ŒZ;NZ:nǵZP*2)UdK9}m^|^K.7VzaZjBK5}F_\c<\mzGiafӛ0ܻ=|j|4쳨Ǟ$MW?l{I]voqf"k[եm+UnzZh|:^Eh[m[?QIT"bŋxFR.p\T*m?;1te!WrΉDyjx,k#]!ԳQ>ňX&gk *Y>cȎcd%rQ)#5Ңq+QhG3bwF-!?&H#!EjZQq_qY_iRH #ܰ8΋ŊhM\ sp1nq9fG!~%d͠3Y /RLtFkӡ\Ob ICo2 : Ʃ:KayU4c&ϜBp,4? #G2_%dBR+>a.| sxF=qs@ ݄Y0)։AXISQ-~bOqp?;"s;TR4HH6•%t0 `Hp\"b4GvnM-13Vw_,Q1_@? `g]!gCzztPh +á.r=3'CM*${yCBEXtY m Rw26MV/z/钼vH?i3 lhS`¨DFf(Ь\_ܜvCrH1D%3O ;r,jߥh@aEvy7;S0 A1lz, +8HA6 MPnK|bH- z9DWUB𘂠z'~٨]BfoU A %@ǰlr2p`^cI<BW(w8 V)%$uWT5!zJ _6+_(ltrH e&f|U7h2}`t06 +cP2A J$7?OCj!L0lSAG~DuAYgV\7?QtR6?I:?K 94d0 \`Qr$TOCl6Vh%o eLpq__ӫڣI7?k~"-ցjWuDd !I 2 hQP(ThI ǭ{{̋yy~y$A'b*37EmJO%\OŚx4C  b'iݑ/f F}KF-%:v22vfAi:Oǡs=_H`0Z:*J?,m: 20% qqChmݨ6foT?'j݆49u NU<*А^ _b`406YAP24]f2e\w|D x~j&TxXp%=6s@4j rѐǓ +) [`bc1` i,p<f;/_ +|A;sT!5஘I 7X- eI$->CX?\Ij(cO3 4#76N0 Zd{߽\ml׷m#šC.9 !ƶ˜LV]Q[j6,KeDŽ =<Àd0 x9h@ZjKf{p?pjw˓S?+<ڕߡcSX8Z-PKj~!Bl0{R2Y:=,VGr=/mDP\s`z[k sBfjv,t^<{ j]7wZu@E מVET$xb%Rν)S $"B˸D5ŕhڷxHGz,߾ோ;^5YovYcS%]7+Îj~jrXUPPl,S.)Du2qrgH\&餢aH8, DO7"@@*,XSiy}-z.h umǟѨ1yHJ%e+f% b~jږʑ!K餈tXHFy1_d 9i9%FWa`FN֏oU6>\w1ҧ"6TU"Oe!<32%Q*f<%Ii#b|TȖ 8)GjD́dtm-,_tmkŃ]_t_w]|`eDAmLpfV"tnKR%q)yI㲇%dՈznLHK +B@ +6X֬6c7WG0}wv]:֋5-a9AZRNV +T#$Jđ%"\hrLǟ7J#rn<[%/sڥY-xg ~5=?Xt,S~gZxB/sI$4IŎ gj/C5z*4 F.!gCȚ0 -Em-xlۀl@З}pƁ}U7ܭ>"Ϳ{IŒ81k5Rji`MK vXQdbF0 v<[_o7l@陣UeEmz]~?hn/$%8vC2]$ow/4WԀWKկh!Ab;,å` +tYk24cGfMcݬ?Q }#ف!'Gz6⼆pq^o 7}:Y0y!`XNKg j,eUL9or^!p]/?4$BQ.X=㴞0&+Am;2]>0GzbL;Z hk ,A}kPdk-[me{Vg]1f=Ϝt{jx&{9:jo|}{׉ϾGt~;߁pF:0Yc>:̓|ޖy9ӡ7Fy:-p.]gQMy? q +.,* l!!!{ I 7kKGwKU#-X+:uA=zL[8 +B|潚|w]=hil*5{.]0wp3GN RqU"֘[>asbOn"){>G6bڸ-Gx}HY|HC4ЄaX(AQ> a@TNq Gq2͓$ߡ(2)*%`8z dE!; qL.}6D3e|4|Es262'aqh/Ȣhf3 2* (\GAi,; <As +Ru t:3ALd> 1y +J ' JCʀÄF KTaP-!DXK/ldAV'ɺ.g Ivg|[xbd=xM4d'ѡ`1IgB'^9pGCI<ے!ٟ +tNf@x&v.Ywg!>Y/yB t&xCȀ. &E [D(@/8nBܖ>BE<C!ρ ُQx /(#hPy#o1&BPPCUꓠ4 ʝ =GBH#3 KGR9 &'}HNJ1&QOn=[}KAݝ <Ϡ#4>(:qLT}å +A1(Iy -|v{8TgP^RWhʟk4Owyw:?.)4½a#*}P23L}*QhAd$?ҵj}jzoW ˦QӅQ9g0"7x&XśU@|e渱jGʰs)wtuV+neEc88ᑾx_~aKyrpf.l=tГ|{]Ċ:&N'ؐ=ա#1+mWU]GF&K_ +n[nZd(0[mmECSC-_zl/yAo"ؔ-Y#zY[|%+p2\+9TcqK?gK:-;,J/Y_8Z4h 8NJ),9yL~#d+ȷ.ͱLlK2ȟ9( vmpo]_JSMk{As_%Q{k7%γfGpYeM>'( dȾWOz4̣a[4;Yp؛=n[m .ѕ++ۗn)ztAGd9׉+eU|Yy+׾ʾݮ~.'0FfQC5&2%?1Ad袻[~mC?h9|{ɉǪ]]mK:j\]Etm_Wly8yƟ8H%CESf_˖889v!5dl!ҴeFiK4L^XYA@3AZ6]MDj+.;fw9&G7%ƞgTF.8M$, +%tIIlb樒I^֥N{:+vxof:4 kRe i"anH^lYXVt/#\Ԉ 5=/%z*"9z&,9j649j>$)j%=֓0{"_B4{YS.uEp@ +k%Y5_qOfKf|Pw .F +&BWLxYN\;.v% +#<{+UͤHߴzrLNM~jK +ODdg%222YI„)x䇑 ~d7*a:<:~7ǎ.DDaDrxY~nSћjᮽ&ʷmZ_s2P"wZ~ܙ *d 8ᇧOq#Rgy)~[& `A O_B'=q/n&yd,@؆%`mY`Yn`ug=w4{@7|I:H5 ?BHI t`{R"n>|bf/s/m!?삐OV"xF`'!,ɹ 0z}OX ҂Ag,7{Ɇ_g"D.ǃ +QvGlYMtBt"s+]*W5Fh+ !:i__#;?=G+b `>7ҁO=3@$fAb"h%[WWGmtp:f}6aי D @+5zq$X?r'j"Du"֕ +S g8@> JdHJ[Q+<: D3q,]bk,d;2{!8?Ds3듀UHXAPAK +},N&-*unH2 _x+lƴEwÆ؃Q7Q9/9}pŀw3Wq>&!?{ԯZ{d>@V#֊ArArUU=,7J$6^Z^%s^[%*7!q+C;Q 8/DN&A-d_Ɠ|Ň-֑{@w. …lٲt[R["WQT;KRgIO{[7c! qe#C1$WLhb- +#G4g _4egy?YH_κs[+▲%kҞ+o.J{IEeW@ܩj$>đ|)֑6UTN-g7G8/yZ\ИNn}%7,ܫQ=V!Jy27ңv[V-@g_Bidg'=6M%sz_e_- ~6K]nt^7 +r 9戞;O?O9$w&8|[ٮ]ٖ2h[ͩ㲦ԷƴwI dgQ@zlZhRjwZOkCf>VEuv$ٳ!}*$\KlWv#Ir8}`ZjMk귚}#ꆵVE}Ƹ|{[)!yDmH@6o<l&} ԭmݣFyN$,P}U.+*wWdS6g4e6d\Kٙ٫NQdsqYUDH$[G dΥ‘2VrG6O]m5n6;^.{vW6g?h䷙6 +[ ++eyU; jks?լ}0RiN0-1VU0.{$mJ l޲T͡ p<߽Vԫ{58xthWflYWf6nIY\#-lTWO0vZn|Z^03 iMqTU?(˷y{)L|28k݃(7x_h {YGՌF6Z +Ě*yeNfSkʦԒ4Sb:ST41L a&.&{S͠|>rǔmݭ%"J};uʍbBf\.1M),,ոLZ^ُĀ>ӐX:)(UƔLV&Bٜ3(CU沧iFuh:'ʿ۝j[W[Ģx=rzSS +nW&./fkIiViqUX٬5X9SY׺-CuyTe4\ѪuMBXEAaIXE@0qWzZD +REAPAܵEܗ#n=3v +cNUԞ,gg|~zy}?ѐf͂1=ŧoA4ӵV+ok2?mW{$QRYk+;.b}˶S"{qIyy%w,>{I@m˶\6E~у*!ݮ3FtmuM原Tյh'ly}OqOj# Ǭ;&a)*>K_X?+w᜜}md}=@V^`O2w  Y٧DN6 u1ֳ.3&sՒ"/jT6慮;TnuÛf=,=sӪo2/ UYeCswFRևD"_IUǧ M%S,\RU\,=㰽CQ>wݩy'G,iY5-yc\vSѬc{SkRNo / Æ/?R>*FGRGCo#zTFtb=tG_]ҡkT%^ 1MmDd+/d/>08g6;>'^:1U>>f6#9(TѰ臝Dw]۽j/qTyÈM{\]ۑފ_q3m,k |VS\1s6zڌ1יӣ vyŴ#>3D]!h`?Utr뮈ӖO}[8:>˼&<ت};hVFByCx]DFvAu:yDgD7#jnfʯӖ"kNkzżr =ZkCO]JOxVcz>Fȵ=U͊t2T8w(C@u752ω.4>/N͈V/y/eTFWfɯfOxdחa3/N׷!oc.܂M |{FD7$/!5Z!Dul+Xvv'_=7-)_3{p~jZxY4C +UClw~d5IJAlbY?hGXaD|K#Q;#JÎ7n:Z(3 +BHc?d`l.ATVK\_0l_Lj*P5˿C)EpVCԿ.4YEjE( "A% #@#r A("HM׫XVG+VWZ]gߝ/g|g]ך$i VcjD0!D +hzG[Cq n@=_\r}As}F} +ns[x +ϫAy9*Φ9|f9DY@DB(KD*׌F!.mz?2a4;Na1vk +ZC狰oR # ~H{/px*ٽ_ +LJjٰb׻ͷ=o:~y_#!|\qw| $|ÃQ>P@)wusW`Qn2#5hyR/ף5n3Q-߇/5uM  +N :!x\$hB6&P(APo8.S3)mOEHd`\iXf6iK'Ed Rtv阽';' :>|$l*@zg!U 4S V, =vS^jR +\g [ͨ.Ǭ="w99)xOHKU|%i t D0^y(ewE&:bh F 0$@@)=Į%Ωs?A şS~+[ovlLqɥgr"2.GRIZYEࡄc|;+#vl6Knsc$SA +j)0@7b-ǮȳCcSSfz3%쥓a㹱.#->J ;,3*o&e=d}06ߐp]PW%n 8r r`d0q-=-@Ѝ}M>*g./.qL'꒮O+IX") ]E7!=*nFgfONTF*=ERώ\>fP陕}z;D/*'Dˡ9a~5i(akRe +-D}/ +=˷Duz|o.5-Bg7߿f6x@ wqo]GSI:mu~nG߶a6޲z1hQoge!̩R^[.*KחkUM/+(L U~P^^Z6j`0pXWwT hu:yMt52-&bEKh}]m[UM6]e_Q*P+K+njQ@ɵgCe"y;B;9S w!!tC}fh@nj ՔUOguUMbW]CVm7ϐNԱu/ D{X[~|pL[V)DBwNc=fh rͲ]5gm[Gn˞YʆܠRzBNQH~T +Ș +Ht@ĖZYpـp{C |i/CC._-+aNn݉[S;mŴݭՌV"0G)js23^;B|3$toL>,u'{RFj+E^O?dr7 N07]X!@*Bw]Ad Bc _ݤt{+k/7ZT_ks76mDna-r[;~cx|D_|J>KˎEћԂEG->v8T)Nв@]n|;)T{s%35q0Ͷm@yW5;dd&GyS-<D6zvc_֍Yco,dYbjmt"\8\ۅHMkD Ds;^ ,4㹼~ocd 8= TxV{ .\;vhH5mL¯.CwC׏ma3>^gsX~G[BQ(e>*  MCraxayFc xGaw$xKp' l`3vog&_$*BM# |Ʉ@CBZ(( *.\,\ xH` X&c ࠇW!fpU3+l?D"\" Hų: Ix +C =q?/8T 籎簝'c??g5|M˾Erb(xS(b +DZDhĒT /j!8K"f5SdZm$=m2] +{ +-HEbfy"z} ];ҏ|!iү 9ꏨbD2wa1xd] ԠkyXzLVG'zB9 q h( F|?b2 ?ɜgfn3~_r +B,#dX,TzGPA}1a4{W#"f2ς友#; @vȨAKH?0q}5HpvE,UO ɯ)cI +n e@t 1W͈1Ҵʀ﫧4OmbEۄ?+[+M:VHiPv}>dj3q]3r57`g0o/iK9XߎM9#sdkQ5nBN y\8 <; ?QB+ y#p!uNxʶ [Ÿ] X&wg<%ݫ:0/<8S6|n:9@틼H뉸Axh|KD~F!ZS4.y} + +|&t3I l}#fr+Ȧ0k4f,9nD$s& J{jUwQ1k n$o<.x:rVȖQF"vIv$5 +Jst0k울 NeNEOU{JX( Z0D] +(ަi0E&pJהFߍyǷ ʣl2v2&%ݵI ť3ɵD K%)^U + +/ +Es +!Bh`/ {o. +c2{WTKEV}9{[I rU:]M/6 %}_7[͖7[|ĒC_dD[ :U7JHu!ܪ5*5LNe莖˜=jС&K<\YH)ʨ+d nQnz 1!Y*bRSv10x{J.7[$5; לvU< uSTbt<%7GEϒ׳dYa$8̯~Lđd"412D +Xp;O눠kXMaщԭq-5ǷUWFRW%TVzeRkYE;')O'̝{/!s[Y)(J"j& pk0hkZ1i8f .ZU*+{H˔Ԥj<|/_|b +.1]$[=gp{W#vVvYB{>bc'ٸQ9jU#'!@jYR.:S%񫚙'+|*'88|"*;R%S"h5[KLqf`34&w3T1Lz-#6-.Y(l5+ȼ&WdC#- n +Va#FpV#ZX+*_ͿE{Wp ``#6ფ!ly +@N{Ss\»JC:՞A=q;mAԣ͈zL(Auy{oq`w0@-vвuq1Q -q/xl#GN *v:s9>Վiq\r@ o/"s;ٿ}52GpsgN kdӻ iWRX0o39jUmW;'2w(tێLݒc} 9. ra ut 4|$@MH3v;b=IQ>as7[MΦ[sf +fjvg:`Kږ:duȎ1{\E+WwA'@?@ίXΟH m!f[Bਞ_l쫏^'1)i}g6Ky+wVn|8x8]Mh_ο-3'pC"HvY(9yѡY&/J9hZru3W/~,=A}ny;P gD.~gЗL{(m# a!: 5px7?ՙSa20 f`FP"JQ,X"q%Uc jtE=.Y{uƵG"%( +!;O}}'~$~0Ofh#v^R+uBW e{; F;m_ x(6Q}اD֍"j)]5GPps`|(|H?-"")bϏ߈5X/v~nH>6J-߳* .C4'DD8?( + + А:H>0ZArCOY +yJLX R`Ev%,M4/q-T{cDAD 38Ӆ㡽.Cw&]mqm{w'♯E^d֬QSzɫly]jyh'P=9]}GK4wV{Ju#qg|&xBSFӉПHD1v( Cjxm#TFtfNLPɮ+( }߆}fDTDDYaVePYM*X&FM0.59Ѵ1ihKs޼[ą3r { ʏ2hnڒ۪1Sb_ǯ*Ҫ=RDna_Y9sMF"",MB0R߯iPQt &VX) wj+\ټwIl徼Tʜl~Yv)(NBQj& +S(Xlaᮔ^;4>#80Pk=uL{Ӽ/xE}ZhBg./c$18%#p0U$MK]O=O>d(NGQb. +w`1JD}P:}'ih`A=hcZU4u kbMeՉV9iҊ~-FX_r'N>++D8E; +QB`4ԃs5ԃz{vH[Cje-ZEM+c-$u))Y$TzU7 Uxm];xs6pk +bJsS 5PH3@/*Ʌ.3rev.+k_ٶ0Ӥ{,wdh9(w辩KpBr_:lEX z.,^.Vô6T~GK5=Z)GvMw[n̳>\Q缮kD{xv;a="zNϤB 4MC rfh a]';m$gxF[bFl6_7 o7䴺)AU輺ɡQA5h8AzvV,Ns!eL83 Gx*NgLбB㐱Um +kpooȱ>^AwP~1?OH1Łi=3LL{յ3OǨޥzZtnT!ACӷyFsh"D3\p-Ds8I?DMy`%6U" lBgE b eJ2L^U++fMOe?Y-k7g]ew+bG)F)O+a5Xs\3 )ς@x+܊f֟btRk(j/˔? 'ODT up~ `$lF򙔱xV2eы,?xO{*PuAo_t?_#?%7j`X~|0^@0WANx絔Ahieޞ`og?hΓ|9g|Ht7B|{`'  zh%hp440ppX%B0H1Bo FʗRQ>= X=Q[LɅCy+)hEˉH #[!`|E~\BAYpS8RB7(ˉ +ro }bL x`B/Hb͇C<hƠ3̕A#z jAM,H`Z&)&5t>2L$U)}~D^ KK0hȠ ]̝ACo l`rI$! 2A%r|INeJvv :2hOZ1[•XB\RJj٨B: Bw,\'u}GEugqSFA"3u +DPAd230 ",BK5ZWcM=hbY-b'su߻}9(zy'V&q_ Nq%]ev^Hihde-r8hQA:'hE"[|}mqBLb?ǖ( zŨ-,rw( e}ow?$kxo%7WCgҋ_w?=߷{'+E;oKQܒ(['e8s21E3fNPxpz]8oW.Z ?Y̬ Y 0/2]7\ +g'\e +/p@w$@/#@oZP/^z~>+]}A&ݙ;U'Eb;w>3_q)0JƧ(:@38]z~@Iw}҆<4{~ެ>;ܛs\Z&Uٳg7'dY>=x5qχ&G<ޚ~f

#z}b!\ C a ZdC_E yN68=qh~y&sL?ݢ?`xOn>A]gwd-MwN6]V@A`Wal-pM9G2p:ҋ},b>H.p ,ݨ?$Ev/6߹r{Z6A[K:K7]`'QkԱO/&f~e%<疈JGT؃q=ѱ{#4=]7nmtۯ6lM%YK#٪w͡hOPc8O7cq>_'d$8,d_۝P=>Ұ;.AԵ$lSlEGtmMֈ6eY˩1sC9z:N(#5hWұ0e7gRYp" S'g67c{g7'upKJFu=1Ŭ-![ܪYĕ6/Yn"UVѩ6̥2+yy]7Li :Ƣ8н}I ڍ0۔)oS1ņ,؛m ;s䬞l/^g\Pu1$U)&uMCR.־:acE|sejkQ)Wjvţ3q$2 +ÍxAe Z!3|gVglnG^[΢ DY f itMuZ<ʾ$ɱHѩII'ܴI7r/Z52ĉȴI0.x82LcTe} +AO)tX6eiʟPj=VٵuZaIBC]U(ReS*,˶I+-K5;w01E]#.BdSc +PFF 9Pg?\Nay4;ʛfq+ Fuj,ĚqҘFYdNʊmLXŠKhLX9:RXU[<^H}ݍkW J8 +(8g6NZ`jNmzN?f`afnMPEESkٺn]6eyZ(*X +)JYYػہΞ;0}'MZB׋ǽ2-c$)nJjG%W?ō'=vpUB`J56<ցYki3d^S`gꪉ~E+߷bz + |NXc.tsȥձK,i)X,1$f=baoy-~KU^)5cFi(ޔmJצJGxiqoMnx$p̆; .X$lhIix^IUDnIcDܵZ"sVIdގ5^u+7r~v'l3`Jy*qEX[Qsl$S}Fna)kֹ9[V̭3ʮ؇-%$}0=5P-gťʁi\&TwWQXJ(W wݣwy2df3]/ӪKR\;-] lI6h )wHp8_\ɞ:P;`yVCNdQ7F׍j)3u{&կro7$1T(c1f`6ɝ.`2Wûùf6hXt$ G<gSFcwAUQ˴2-Z-~ˣQ;"ijro`R?PTY@Ƈ& cO!g|&_$#%;`?;}MCO"h-ݰ} `;+BgDi#3~n`k/b݅ F I'3@9=.ak[,m03Lv^NOй^6Am?tuނvU*3N5?evSO Hflo|oa1:w4;pPA7 -`s̟ɹ2;ك?e[V`'` x@7BdNqL9ćᇡ7\.,P.W/{rg̎ X>̽o,v$'ehB| CG{"$(C iJ0~OzJclr}jO][B 9 <9Sb(T/yf(ў:-TDA@'/R'yN[ߛ3?;nD$_}š-&¸P9U^x<~4^.0#;ߟi%G\ )PaI6Re١Ԫ֏ k괶MM6ѮAbN} :F9UrꧠǕiE`_PKufT :kA+i_ !7!q6Tt-? A$b@k"q$>ǫPZ%vٱDX}ب]ti;֨ڹS+D7Lj:##ݢ{-T3$88t%|t$ˉWӵ ki-Η=>wqڹ\wYsssy6%6{6&]jH`T$>5@| q4Ay@+#Wӝt[ZF⋴dډS5?gcb)+ )yLeKgMi4Hm5M'UvSUX*iIXgk{YjveVc5 Sհ|w cemyUWo5+ o" JbZE( K!@k@E(޸junkn۱vvt;ad?=s9s߰NJbMH k) ^ ك{x s%' 0!n%&,%^JR/5|ϹR3qS։ةPG2{4!xW!s΀e$ kg|¾Ct+J\V卵WI*9}V8=0MTL$[ƒۘI=!CCY=2/.H]r³ זDظTuYc繥ΕAt_fMMtfv<gTF0즎Їyj^]w!S[lϩ mn6gu4Caͤ&s>*Ie#YBCDHYCB>9Ήװ{^.p!g 0e b GP5&0z +ޝ,}`k~ I_Zȭusf털\;')Yh?P[xJ$  |s×jߢ7 A R7 +`LRʢܺKeM + "]`Ȭ3VVs͆v~YQaIH?+)/n(|+)1"4#Ucpу. {F[UQyнŜX[W]_]j6BJj9%m|cqP4*Ht+rޠ5~#0t`aB 8Y0O0{Ͳny\VQS +(2UXEj/-唞ה^dޗd3MD1AJ^W%fA=X4By#45Zѫ ޥ~E@C]S_kͭif!azSz;\Yu:\YHUITf"P _]AxkC?4 +`Cz'f,@w +;kW j0\Ž-nؾ$mˉuY [uMeW/ة)ZxM* u]xpNA{&q38;p;@57h~D@t[ۛ NDn^>pW BCȃz`uP y2cc}8ܻy3itu` cOx>>ޏ;x}~lFຕ@Cq \֥)bJr:ɣP-g< <ܗ\;JܖᦼUp8^E' 霽:'8^vMm -,U)Q٬jifM~/-߿-4˩ŸS۟*p-lQ犓|P:Ma(UOUϰfRn1MPm6MWf7 +l0Ԭ7m\keYb׭Vh %? Z+jslgXgzj~:J[EJ,6PnLW . )lڜk\]n^bԼfy\d\h,7W9aSs\ Nq+H +eu-??;w +WtX1QcJejtȴ* +OY4KTh;7h.?~vP}^P}n#~zБ]N-:3.mKvʺ{:+=TFiXCEqYZX, +SvfU6zY_L.4W:~Frǜ !{vziBЏdO%⹷7ubM7gjHwP,,ΏL떢u͌lsdvq);|a\NwYo _G=97Y#Y.{{3~,K`E=^&W{^VocvJ4yRp }بR=9$A_ٍCf =s c;eH~kZLtNr"}zpppc-4CJbe6%%ppj\&#}YI %)֘ꌉ!;_3T#R4b JIOde7 1P,,.V:,UHA@*`-k1Xb]QQD#UѱrԊ:k+ڙs@wŤ,F/(GFWύ8;jSxTQWc(a>_# }xk+$|dm8IZ%BN(If4-yYrR"!1ba\eLBUt|M,9"V6:p kv + A>0^舶Kgųf] ޹>-)9;r=$eѹ~Ȝ9aّʰ4$Khz: w=}lIV|(fYb.sFx <%!e3˦˂KQ~-'-Vy[M(Yc^IWؒSڎ]*lH!)6=g;ؖm^!I.I}*$BP# `hKWjlҪP3yU UeXxUYRzVnQyTWW+>j +a^c{s2|s@鎭WU[` |7q8P3kH̐ Y I{6+1n2w55w1lmxk:VXX\s;}FZ:K+* <moԪYG]׏[\?Mx,i+q1K6HVȆjdCLN2T+䃶^7τ={tW +MDofm]2 kPO  3CwǀPosc6.C}$NKE%q\[Hv l#z,za ˞u?0 &5M:0h`<c=F`ӒrXBz\U3X>"$d382;s `. 00(лв]:!e +mv0o E2 +N?!kvN}'5) i{M'܋HDrA..iT5/Z\/_\JyC2h/`pB/뭐yO33OW:赦;X_*8kx!v7\[cی@77,]N)KOgͣp4x0mځ=jz/ȏI~"r~T<</qC.נ(++7&F,(,ȲܖEvvrY˂+  ".!xCEh&Fmc6If:i:MSM[vڴ}z<_9y>|e >X6e7pmŕOK\@$ dXqu,xFVe +*U-])[kkݵMp={aj1drrr_w~ko7CfC $r"CkKGmoWkqKp/4 nRZ.GRZpP9E;}VC)g~֬(b}Bq}Lq==WΑHH둄CHW ׇG17r}G͛`!:)3aNi(-)>)wfi^Qg2z{88w}Hca kl!Mw07ߟWЧ>(U Qϊ귙.=CӞOQ[2 $<%b޿{?@ωlsc9ʅ49Lføv33 @fkזs5ތF~OF-L/jOJ[>})iNؕND"BWO_zp}b0L +&tRݱp@Gt>ի/`wg[]6^g@ێ֬@wV?Ӓt3Fݼ^wKZVw#ơ#"$9p7\G߷`=` +ci`@J0C1)Q0󊸞<+ߝ[ВrE 9{NÈaޒWޕ m'2H1D>O1wW9K(D}7 +A) iN3X&{m.,5V4 +ZE5=!8)Ae_HSGD瘃[xqz~\__z_ΒhlViI]lvcI>Yb9Jl5N-,+̃RaYLPZIXn6iH; \>b';(}-ügyQۼxQ}z ?jXxc^.=.vv)jdҐ0@+w(RV, Ư\2ZBm6^V{Nr1糨{{i'҈ߕ>j@k<ɃȣP]S!> kjX?7vy@E}eaOp}P, +(q]ՠƂADET,NPXh{,G$1qu]{Xۏ{@xgygΑڛ%_>`Q2l]f(2C/)멷4y赌A.| b38~Z9P rxë;<+"Q1ír\\p4éUp,2!9V3yLYǻH?RO VF*gS݀cju#`WDak261ZCcIڲ*K%\@]+!=bԝC݉Eݸr6ԯ_ȠAVh6#GdeYPV: S^ jO-Pwm.߃k=?CIl3Yw8ߕF6eل\dikbR5љ&+"CV!V`zmDQ7+|; R@.Wtll]> 7 Lb|II}g'&w!h!y6N(F{;Q׋]# DuOrLhv/C?[7lO 1yI#_ҐWhv<xռmּExD3=桍i<,`!Pqk6@kA? $#dYM6RDJvRK!u/+~xI!쨭PpW;H32$t䐍dur +.2i.'WG ƙ5H?2|B>N"u9RkC:k%2SVo>~CG7A8RWm! +GzjXjMf|tX@Tjds"@# ~I p'4q7F \hK_hZG9&ۇGx}Lԙ0&He%rM8O_ŠS 8tZ%#R9SThgG8A'5qU˲h%|:bN+qJ'98̃UYê +4jpHՀ&|W2cjAxQeNW^/'7~}6}pV7lGX3`?`8nsWu2:AC=84aT9F@YBz7ˈn.yJ\C;N;tQwðԹGT{$aL敃*|Tx{JHfKi +IA3!!Z=k, `;孁Pg} lʎcPR(bdl HVJ TX)Iy'e~LY֐՝FRK03Ov@ol=P4[Gas8OgHy!s!) !!9!5!U!쐣eOKC"#TțY?]8iG,=c~3XP7la(<`G`q8AZc"[eLeʳƕLFEq2ݸS^~EX(\(I< ԝn_>|r8nU =+LXcFie%-7e&2Lt\E)EjZL1S-0FlSϏ8gj1=6 ,Pe s :W|j +{Kھ>XX? +#e&5E\F3+Pydvf>6#hE ()Tm(O|ǧJx bca@OdFwƒ0XiQGdcNR̎LNNγ]mMV71.!Fh*a`+"}ccbuX2qH &̏(͍͎)K#"q4!SR4VhuGEyafav .D&葨((("0 ̌ (qh]\Q0.cMh4rZ=&Ic\kmm&A;8}}yIirjIjI4j{'JxU?3~F[6a>(ѠԦ*CPnH t$=WV^PVOW5MߡYgMYHc֋*^TZRES.qaQؑlZVudD9TfCi*LiPlJN]Y(_Yeƕjq&˸KΘqZqC&#CT ҏ}mf`69x%RuԘTfbK0ʬcQbBA>dbJxyhI%){rs~0AZy(R+‘R9HLT I\E4L6-U]ު^WY>J"r,JB2`y)PK8]LWA߳H^FB@̯}a瞂hĺ0ǝ"ĸ3ndX宖Ns/nO}M><<P{ + ~u@7hYGo ڥŠ$;Fc@G8;#\<өG] + <M hw=n];G;65+P`0^ہN``~ jCp(C!EAeaqC1}C"? 6je6րv1.Ao8]@8B{|a#hB>n~psynu󘈿+27ԝXg&Qs459=@{?0# pZM3lF{p3,?gyٟ!a{(pm>/д.d/`=fC70ԧ'J"H5K\~¿ƍ b^?EnD|B]k4RCIX= +(z%-BR&kOm?rw޸p0>&?62j4hGLAIþxq1GxPR*Ǎ+GsMԝPS20l<@?F-5Aո޸5ZxWXwq+0"<⢤MT8UKƱs qW\ %uW7hZpYӉQ\ňv ¸C8? ΍3n&<ĉIdGoN~:G ӊx0n11W&%atrF&0- _NI~GH) +^?`ST!|:lG0V#ӝ84ߛш3۱j웹 Cv`p>ݳ10v%%U'8V? _LHjȹ{<3&̬)8>'$r&cp{T`: 5cgP'vö~ak?|^ .l +>/څCք|/@܎FcyG92]ұcq6-.Rlw/# û º]bO~qui;X\/=R}F4XLk6c9 b r&G/Ė$W|ٱVW.jձ*]إ[/vI!-;*ޕb$7SjU=c;3Ҙ?ov$/޸ذ, +Xn}+Ra%=W.H Ƅ'NQ?RjjWr^\ Ekp4riӊ 2)I~<'yNGWJVRn0͐/BBl4ԉC6 rUe8T.j* w4eߓ(N*;STu˯lU' j^,^h71nFȘyP"\ֹ-B-΂d,NJ`/( +bAAdHyղ֯dۆ4fi,5L}2dZU%3_S11׫=W̽H;Xx:O#c㳪EpFIB81(rБ-6!Q"ګ{dwY>ey&& MCMZMZr4;ej\A+XEq 挄2r˲S/dSYlN)ݹINuVR55I4)I%)RCm|GiJ%i"ߋk$UNjr!ۥɕ,]]EBLHuW ]򲪣r|ը纯UUT +U+Wg`/*!mMVXE] k#ݳFz}IEDŽdAyZ8Z1~SIOrYSZU!ϸ\R㻤Ž@H55 IFJd$LEb<[ðu ⽉f`ׂX.omBw{P ޻bh'bh*6FU {'Za'|/^@,%#k& jU8"W-EĪdĢn+ºKuG|qXYĖ,$&niTUk_p +"$DԒPJ2UcLUjj:Jϕ:Gr#y<꒕Ȭ g*]FhI#tM#44B3`i M7-a *tfpY Sa*gC~mw@^dQbOE*<7Ps#)7Fay +믐 + +̟j_v;\y)`jcmAv3yf.fN5`={e!/b򥈥Rpq/R?- T@iڔʿ4A~kS>jmVҾU^#_WOjYQx?Vv&gR\)"K/ʥk%O<Xp1Pom$5qQ cXFTޕe) +SM4PIYhx>]B IϕR)51JjIb۶21 ocR P RCk(b Wovm7) + ĚzrjE oTK;$]++>v۽ c~ǏZZ}-ͥbbjW#0Gi%oFɺUh$/5?(G ~ŏc0$~b9EQ:_|F^}I;l 5wKa MchJV0E:\:Ǣt%B{ KuL/gds2y4]!T=AOI.?H+XMXPܥq>gA*KczM#c/v?>>~_zNo:ptp0JSjc &C0&51II1/gה_q0ބ10fXP+` -6ПPOls&\wV6= 0a&~j [Z=W^u_:Rtzme.4+k4xƠF +)O ίu/`@hȉ+f7r}!>w7%,gҹYn!Kktv> KP_ ٤4*3ZzCǪljjm3S/`R _Z- +N!Mhon6\[b6R\wϑc*=Vc=?jCZyF+n{>@NZ5/bF*#r#7i{YQǍԨ+ƌG(HyNd7xg{=Ê6Wvg"7*l.an ZЭ跔=Js'jvLbR53fg̈YaT2c?5b/ScSbM#I̯\%gˌ\}2|))enE1>=*U)@=Da)fn$[IcuhuX&L;by7q3qFzWhD{o͌ qڽ]iVK4+>B =5#>4`%ۆ)6ZSmD{d[1ѶИ`+UXj,m\Fλݳ 1g$b>ã0{ KHe K"I&L2IfLB&$$C!"ITBR, @!(}cVVc] +B_Hg3s9|/>X$E ҐcU8E5IsT@U-wdґ +G@2#Xa:Ŏ;BGYn;[ycq9.YK$_mqg.j]L,kc acSUU +TE<',ݩӣgFsQ3Lw[,q+'+yN+fNj?g8IK+MuJ,Ty]̈Qif3ȝ;KnEFk\mǽvo[Vr_\GF9ƱlMԀxꉧ,'r`fE8;J9SU3GK= qɔϛ\o@^o1Mfg<`9={4cVy+󱕒c}fCV?8+/n-xBRgT7\c_-or}'w*Q?_n0#b&w[I^+Z\xm&}$=o%PF0 7f|>xhA,BeVVQ2#*RzTVj|&)ԥ`- +V(!x lc 4o2cؒbی-͸"ۈ+c/bO~o&j`C5o(]k(FӜUʥWj֪"ͬFnԴnM=ɵ(zۚ\16&gJm<h|Pu<شZՃ4>\3 i7ѴxMmthJcuC2Mjӄ6ii|qkzCz[Qk`mD#hl#Yy&-)tS4s!&E:TKXܗ.S p8.jkaR3нAWe4ހRbc‡/L>e~>g|A`fNmh5@8 +q P`%:X>qBx_]}%~1%ޅ&V#7B%B70vޯեh>g^}~$%zEs`@}xËWbCaADA z,EL +Fe;{v0-[nrt#Lqjh8Чm>GulꖀiEP0'oeX׈?L0?gpjJU^lbPx;w@x#F7b;&"awQ\r㑗#G~-QXM7gQ;O-SQp2"G#q$*q`i9-2 v/kΘV#cak6X.#/a86`Cj~c>11_Cqy,$Ȱ31;VcJlYi$+6%90HAOPKL=PISA&ze?Z#tI %UoW9R2yWP~XaJy;RU496*pz9֧1ڌv d?}ѓݙCM7!Y'KG=2%|'>KL!rl/碗͙s1  ec [Do=9 V8PxWtS9ڕ{QNUy^ g#?¡3m>K,;&Ygɸl`\*cїyŸ_΂j +([ +OaZ p6¥jJ4 ꚰ>ªzB$a-@Sf4(cCO# 1.aV-EWQ|řh/΃D*.m^4aS$E0 u3J$a"?JE>Nśi^t!:Q%,r\pVhЬEv6VZk`n&AaԾ& EQH5咸Oͫz4KI='=駛qfܚ%piQ)CSU6UhԕêӣAgF&}F F@NZOIB[%*%qX'{j}񻋿UZLXj`-P:FC#j -1tBo Ag}Bcr:#w#K V5HA 5Їf$&"p|wHdꓰb | .&7P[M`븪oR#$32R$uHYjA\, iD"*cDAtH8MENLm]'{LwXǿ *pʐ%DqEׁ /BEyjMl`֓&8֪16Mn?H}~~=~_Y⦎%( )Dn(/WS:`ʖ@Φ%r2mKʡ|2LhLcx, W<$Rk3`\r2#s͡jgQ[ ٙek,3ƛvsZ+*Pb[嵅OΗg +S3`VjeSˌ[ۑCh(u:.:.Xn0g<̙+[F_sa +SyH1g`^.@Us$z 4fp'Eg  +m=E'{xK4bX94s퉮j#MCd;srÎ]ر;ر;h(|Ful]pwr߇ {)5՜ ݌>4Ap&B4hΏ{Hc_N`G#I#ůKuX4`;1'-cٮqux-tɞ%CR[1Y~ւ}8694.HbU(Mm™&>v ~fتnc8!;ݪu.4@W 9| -Mywt{>Sӆ#I? {YrU +nGL_M%݁{ց 0=&&OVۃAcYp drXw@0C̄9P eP`~aY̍;ټ' K==⭇܁uޔ_8 l4r9 scxƎi )>s]u ~˯| | \K68ش +/cHgi? ؂.c*Zkl7ң49Y}]ZZ9flAMOŢ:#WϚdDeo{g)Q~hAN^Z0UiEUUnE&herU|w+Wrm]w?<5nk0I!vßWÕ_n/*}cJ;U *4X;<1*J,{T\,POfӌov?)E]C)!*mU2a.mTAE5k)7Vy~7L9ɚ?^3kz7P2VkJ6Ҥ3J &=UjE7%gaz<+Ŗ7fn^ jzM9X=G(eJSF,BW(5x&k\A yOcB+%FXZ(.EQ6XU<+Ė|l%69i!]552{+w >4)l&MPjX&и /SJ +ج%E҈ CE#\ 06C9,{rhaVᮚɑJ쭉}5 5D㢒46jR'ktQ@#bjxFOCcNjH, Q-נ\ZZ#mPGjRRc<5>_b5&.R)qo%jd%ŧix|4,ޤ5^JأNh`'P-?<*?we1 $n "" 2,0QNHAA(MqZ5q4զM6mzĸ&ƚXa9}"ΡlX?m _fK1SU@Y(/ir'+; ,E&C2 2UZJRSdHPR>%RBNJO %$HrT#,g= 3 +boeȜ6RpeE+#=ItsjLJ26(\MG'qA;Nw(4bS:F @QU5IVcwU^56=VS5Y!r>><ekzP +)iluOy-P0yڇ>+7{4>]5o_pS$l7SO7=ϡ~z&j"9Ff3A(h ܚ4K}i~i<[dZ8ZL-P kygຈmlyh*^/|3Xs"kĚC 7IÚ%%m,1ϵxXE# C N01ҾCP"p8iFjz͚ 5Jc{Jj}?@?6f p뤰;YT':ppzybFcI7xZZ+ow^BmxBP\wFzw>{pbGs֏ ŜC9VM(gU8@xuq?Nx;AEquO/Nj[9WuqN ?%wŗ̺75f/NLN>V 1,vb{%Ө;[|;xR>prWJU}s_DщTMNΨ@Ə7𣋼:~ŏZu[8}D|E Bm'|.85go-/(t"шZ:s_lخ|l6bsll29=قldsۮ"G'#$:D b]Pr\l.`w,$ +ϓTVWUD̮r]9 ];A1B9 (hr4*Ѩf,Ry ZDd+G#r"pvrԾѿ+`ܵ^ Gk4:ıT-TiL\Yn0˰/2,3,31 $vcxKʭk7V괪*RRU~V.Q*Jc;R{;G: rq+YȦcn:JFd)ﱰG}VuWj폴~UeZr6f_T=/F|Tg"S8%S[K8]ͱlsrx[}嘽,Lr fÄce.vLg2=&> 1,wvi9Tk%?k5t2Y$Dq"nG9orj8`!E8\IL&1B(iK{SH9#3jJCq'_vDSyʝi%SK,'r %pj6iLU1݌2ьQfL4-0`tݙ2y_ d2LG_d}>'.zi{XdU˜jɌf*3Y&w/4i'p y-0ws_c=om)]Ɲo6t=&ezX✖.kߜ,ȔjٯZ͛ٗs J*fwa=V|En+x O=ūt?*%o^ΒVGaֺ"tQޓDY3%R=V +=xz1{GN]a92k=c`~53tRLrH[(m $`H#Ϸ\_!9 +}ue1ӿH4)$(~I$ =5XE_Z#_t ^}Wt,RT$k$S @:;I Th$9")Obp/ yvOL\Mb&&+#rrC|ǥĠp!ҮZjBVCq$Y!6BLaCSl aTdo1'"lgqHLݢէ9(Ji+"J_1uBp:ع DSbsMa}aܰnBywx fkf?T#VJ٭aH=Aa+\89JI_4)ҟMDZYXI׃(ORS_US[Ƕ\[U\=%=@vP5,O8"Y=%]6mzI0H_)K0l>.wR )ZL-vj5!/Cp'V54Xք,(z۩g C|D' z "9&5xZpT% -vz'57` BcㆎS}&Tyi0(:5 : HtRwKc)j<)^xrS긭Mz[95YiGcݲ9S OkI7e.5ӍB 2{2ceey(Kk]XXXv]`9DPEEE-}3Ѫ68ƨǚ&5UcըʹMG϶&iLL9l?qg~e}yG㣍 Y&FaV[O?r&4ݑ Cƹߢԩ~?pҪ 'Ki.g]l穋 LhݷS c)+C7`?vj $ur.{gxhV.37kznP7I7M;*D2f;y6U+6S|}.UXzM|;]jsrE5zH]< t9}" v@ Z3a,tS|=t}M>|\sOzO BVȆB}24FQG@Ǘ9 3ЕbA\Ru!u>}p?^0zݣ׽C.RC('~n>_~fb/%||% +x6Otk?Sn)qG>H^WBԟqsϨسu8Mhl6uF*ާVc%>V2e e摍ϯilJfSQM49αͷhf x%{Z1p"ơ4-6o,P +4jИTmnq_x y-5+8{wn}W0zh%KdhVWfvWc!޽LӺR8MI~Tc&X[Us<1=/gjjb(Gˋla5øph?YCif5iJ_&U}M (Q]HѸ8C5 TFU[UWo<=ߏ2pFqZ#-93#gjҔ>(BlQmp֘~+~e_UC,dlְڪ!T~q >O ИUEktI"2¡9*PJ4@);҃i Vgd(͑TG9du(9YgdrF wAF2:)SB}ځγ$:P^ ,g3_Yٲ5(ۢt%ggWk̮*\Jp5fuoQeEຬ(]EgS WgђL1P%PR]e`Yr#+sY<9Sg<);S2Ez7+;y*sIaSDn[X,4&rP ^pV,o4 P!2WdU薡PE#Q4NE +-ZE'̃>8dY]p9dj FEvǮ"!fRzD1j56$HӚ1ZsL5Gڴ4uSv~LLJ=}}}J,}Zҗe-=/kMي\!iZP[OhgJ(~ԏ0h.CM& lXoӈ`]~񣇋5顸{ ٽ ]k4N>brK $B])f:[`ki8`ogg~rr9H};¥{Ev$9P,z)YJ\BcU?t-=7L0cQq-)8ť|?ct$`]9sMxB@w~DŽ q` +a2B5XXQfezE|^&WT_?xNDH x&@QGՠoLNי1]e +?>Ǐ?Y>c2D|oI9d 88>//w@<)3̤NL ?>ď0՝?{wgROyN9%x%cd5^ \{%e3)/&.lخlln应wEVوvϓ:^<@G!.b(?hDcy2ĶuDڄ]?Sm+_qх*?J&v%} (nC +D:\fkmt*t3zs7]/Rk3ɰZ嶥jm\Lʤ"iʒUTZM8K[T`T}wj9ME$QnrvJˤ3i ƗR-gE)v8T:Lũ#5-u&0PiєA^MԬI_ ەO_ kx +G҂Ҋ. `+ܔ9"T0k#Qi*7eyG(AuY`w]`e]]6xM0xD⠉hhԦ:M4=$ΤvI۴;^37{y{wiJ>SMM,)O"t]-)n~]6pDo}=׿%؃ +M|!.oNP9M1#U3&_,UVSSE嶶i] u.XwzHb=xpgيlAS!|(^UEUY\QYM29m^a,-<ٗоY.e|9)-0pvӍ*-M0 &]*pĪ̑,Wi*-5,TRŮ:&5UW27j{/h*u]9rFc3e.KFB|P e;GYli*.RQyVe(S^&OF{f)ӡQ]FV>L+y>FG*^3T͑[|oF׸[SQ5SӨ|3kWo2|ەۯ4 \UZ FoTQ=Fh.& B +}/P06Fk[yoHCY2uLRz` XmJ-ocB2)f(= &rkxȧPPɡf%*!BCC݊S\bo+6znڌ5]0Pp]W>mĤX6&*%p¹J[4,p(.ܨ0/6&|f,4b96Dx5ƌ@=|mA{D'Rb45AC[R@pDT#EMaP<0iBSBca<}P{{$7eh6ugrј?v6ʜMncښ 0mx9c8GXfH⽓1[s)V)m)nql( ".ɣ=åM$wc:<_O&(ӧ &⩒iX tSK(kRˆpp [eg%yt2'9drcN/8&s-[ֳji'7UjCm^0}ƛnr ]"W4y&걙ztG7B=V6,Ԣ\1ovaM]QD:Ro ig3tt:~͍[`+<(f"$#I̯e'{5N1bhof=Cc@~ Wad 0*r޸ΞqM&:$fϼɀ$`8dA>ؠAd,-=qB~#M][}wuO|ʯ~g ryAXzEa N +n2.SY4yy]C4b9eh'{̻Ja,#tZ\S Z!}5}L>U3 xG;h^ms{V3]8 +Je|INS4hTO[}?#ĞIybZg)W*7eƻjArz}}Fwㄧ ShGV4\ԭ~b&Tb n_}ث ѫmM-v,ϵ'`| />g,ƒ8B-^T*G_L|7{٢mӉ9:w [iɨ Fܤ`< W;k,ExNT2yg?fۈ_FtA7 +Z9#9NZ֓I:Y' +\9yv2È?#KBh&t0UjgBF5׏p6XfƱZtR'e]o;v.p8qNlp9&MNv-mvJWrT+[v h5[@QZXA\1& +  +!:'}<_+Qˌ7ъFQ4$M,c]OxaYEVW^eN{{J;Q>!ctM:^FݏNtf6R;Iha:fmMEQڣ^C")RQXs< +uM!}*FjT tj"W5=dƲ7k 7,jpV7PE,+s_ܴb%4J{JCvJ.Ym\)Weʘ&+W*ߩd~ +Z4ZHAD˜*@#S4hтk"6P:MAZ]ƴwRIJfa X<1ٔ0974dnҀ9~sb}kIieF˜, WrFAeY*]YzJ9ZM `<ĉeȖ" X-V(b ֣.:c +7(hߡ} +Skj.7-}G\ܓ<:B %CYXc)O/;Qb-SOYrʫYVI6+^UrD~ǤZ[ث&xFNjr;^Ɋphƒ8$:j0.kQmRD5jq*P mZjj9Ffy|Bu|A5WU| qOPٍQ4` z=^0>Eü^P.Z\jvW]/ۧv5GT_?(g\.&9=A6Á23|43 #7964U_.4&ab1۸zsVW6t-ribAL"c+ǶDObIcN9TYPs46LJs;0c`w^@nwUf 5V1!a5&9f6Ԍn&لnތc+Z$_-xIL|1yyuz8c}:`?GgisyǼO& ٷ=0ۃ>9g4OdNi8)<|.[O+q8O^aX\ūÚRZ#u}g\"ӿ30+FHaW MqM7-:uqSu_qp?a`ә>^h^; s͌I.1_^ }C~w=ue|>r,!݆!ytVLX1K/W[e2c̦Z^ً@'~yy_=ͫ O8v?;NDZ%n;7zImvݺ6[E֪] Bҁ( ʠ*kT.T`@`m2sQS>w{y+8!hn X_8wp@7)82}]c^e?̫ +<߅o79|NFb-COoc\#Wp9/|^u¹|<~KhM^#80lO1|e.c_ރw&2؉_3/^P'=C%i/pZO~|1!} +"zARBLy,|>Osyx4c$csyy0;G{ W=hϳ<*wnY6e6NY]adZyN8K΋eT/·df }?edNaA{)tg"֣=Sqy9 ܯ3 +OTnawj~ m+'`6@;vahO0y$>f{;{n2ŵSϰހa<_֜B~c7EE]TK2/{]B?J5hgI8Zrs̜y)u&x"<参 ǃ-hQt1"Eo2KnB>@6X=GRff}6CKc@ ZbKI~hyYE6VhF~ , )Y}E SQiT]ILkiS;,>Dj+>V%%9ib"6N&!ˀXf2ez˪cU99Ty:;QޣeJZV2V˼jQAE-\RrU!u9Eqs mohn0*]7t ԵTiU)CjꔴXSҤZnicƄYEyj0*h|JTgX>E:'?'n݅=XK۳|ý49u_;-s)(WaQV+TѦhEJgάkpnr*[yZsrW^Ru pSngN5pwoc-u@[>C )VB.1WljtU(r+RW:긂 +ܫuonkUsJ5_#9ϫ}*s:Ļv|OA?tbqo&FxL +y,j+P[ZޠMyu7)6U>(g9|'e="|Ruޜp-ĺV|e:^$Z"s~|KwF@܁rҪ d%"#O Y_%xQgTxSJ}NBw3h&hڡ{Pa\a.UF|rFBt-:'kt,=2GWY!D.5Wi8{ 5سly Cc~;7zUSr cN1d5OQy|Lj78SEc*hct U +9?ހڣس^V>7CPǵIrag+Z +eʖʚpȒp1xiE%ɔL%I$1ILY( IpB'Po+h{$qh~\r߅uc H^"sʢ!Sʩ%) +S jV `V4NaRRRl֝Iّ]hϠņd6h3//LH/S/9t5Hu i࿏{vw #A<0sqsc,1|rl7mF1f#+>i<>]s 4y%lH*P_rsN0+8t&ܧH()^b)e`.ɐц?:񣛜M'х.;q+\̎ ')'/aS} 0Pc7!g y?QK9d% .5u!}0klVO)^ތ6)`{`5=0XI}ƏuaK}u\kWr@nzcyGY<D^%-ći 5M7a&X90Os6&j>괟d+V곟Xl!y}K؟6Sϟ!s=U|R</hr뭁H(!0 XBqaC*5?+8plI>| L}_cuM;9`ͅ9x7Z}k -Ǹ(dD\,FN?#'')3q˥|xCulb3׻Z>W]yD&Qp$ U\0!Vs%q@ϓs ,QTg~)!ĻeW9IнFsƺFA}pC&k@&0@>r0u-ys% kTmr YWIe{1܏-S׀CX5ȵG6(пјwUH}r:~\eM! s?ΣijOZ{$U1#1J ]v[>_mpmu })'hЗQ* 8fy +>=w$) t9Ïa|$љY;6f_)b 5خǶ&b{gbx O)5dt;mG/Q'*;)p XUf{&wѺИPn.NVjd ~E=Kx:\?דDtO`X >-`U2K@ +\gQQH/5?z ORz^Nl߰Ǩc~g;h$i= lYnl WP:l7`{'!n-n_%sŃtAzDwm_P|ت]>`tdJa7#u:IDQR-4,MGZYmbÛV͵ǐy,G1C,E'9 'F;5:KQL䥅L>f2H6lq~+93=\ssAOǾٚ5E^8BpDJ8jnV_D*P#ĸc7|8V3pw1wG6Q)pd‘GnRx੅M؟Ld4HR1è:g(UW^1DwAýxK#>6s13:mԐ`ˀ)𔰓U W\ᚈxC v~nw]Al}`hi`, Y̹ßI)&;U^U'4$yRTRLPij݊.V8uS_T(u)G9%RQ}_ι_m>@xV˻JP=Eՙa2åL2TYrEm5WEA{kߢ^y䶝UrF8Xʸ HjFJޗO4:Vđ,Y**U" 3X|WF\~96>>`b:ɧ20ہZyVJ)7WJI*vf*RRY N@9U*!k]S˵HNZe^+쮳9ALk=YHI;cQ5WR> BK?/M< +*ϗ'';A׃AA?L pew^g;n ,$$\ T +D8V^Bq2ZN6#2Ң >q;9oyn'[鐫%g+{ ]Il% +e VP!d"Z "8<<]LpUq-@ԉhܛ_! +c> ) $Uc֥ &Sa +(Hw#)<as29C>q-JFP .~1͵~L{ MHi 4 -JG ll+@5c`*o >40E70cۭ +W/pdK,1!a7fF3bll m B&xjG؄;@ |Ro.<)> ?:cm9&'4^6O/3JκsܺbCg\o3@jiy\g6^g8 9@/}o1DNQCbwD&AzkN# -:Ncnx_`='d62!'#FW?r&eRR;㚅ͬU[uv ~&v6IZFPI`%XEnE㮥>yl>7 ,f=F5\3KTh\5!%>擤!s`1kD- ^[csX|0>CMlFY} s$A n–Z5d||X`5?b ߝ%b&&ϰo_`aM<~H{xy71RX:8{WYIň%@#_&A%WL$u8xWXQ>8B>0uUJ &^pKd|G|FwUV3]6KD_PLpoFp*%U~/N )ڇGNvSO8jQv85mjd+~Ɵ9D!Mǧ);Lr+jOU,U*.V_ZUbRmP*Q!y7^'q~&>@^gUcS;Y))*wzT0TjĞb{*tT(Ѭj-JsHOU/Zl( "Tr O%*HV^SSSI++5W0*7BMJ3:eK1VmlxRS4Na\ɑJb1ǐ' A9J@!%7=A9$e(ϗP&#}cr?8ʫ +o6$,fwI6l~vIHBH&@J$ +$AkJJJRZjŢXZdZQt:0VvږaV;0/۽=s}o +|ӷCyd}Ke+{y3݌slP⼫`M2|ey*(!Uh+ت`>9ò7RN-F 6`|KZi +|A|lr :)wr(4KP +Q~RpBpNˆ/B׏܆hDѲ!|PNc%|a#hpJF0ߕKżbxLq㤸Sn~ǐ Ѐ (%]%\a8g|JHlHOq4di X65|ՆoexhE0W!Д./n{y೎Y|< scZlŏv0 :rEE0&u٦0k@3nIk%e o!ya|HsvB!'KA#KYd>`]*Y Ճr\tuL-1GlkKx_ o8I/9kA!h.\c 2ꄯMS~w9Xeqrđ&fNjn q/X6,ao=puV?&kyGC&g3dL(9!Qjgky?ۇG>-})wžk) +!#6ko,c\ɊA(fC~yCv&ړ{OK߹F*JyW=烀% qe#3pH\΀j<9y{@&/|N:gT "bc|'ku4Jg-_-__߃?[mrrz{ҿrGQ +-@t%"}v̨N|StLF8$P3\PEM/3y^b}"3ɹ#LV92l+C +3l3ԑ)eX%x?<>j* + +-tL4&qXsh^x_xONjqJtR{L(P&˽v+p^Z!3Ne8qY Squ sa(C2M~] +{mf{Lm5:'`6?)=|w|_APŎL籟.Li$_y=Bz?"kzDZ}p_!B%}'] J)(<5kn tb#BŅ9!:NwpCȎn$|_)nSV"xfO*xlyxH%k7xxSspd;I쯇o9r8+[@ +ԁ8cҕhC|E\ +;{Tn6ٻ4wX܍*ɝyyrgEo/(3?do%3$$`BH@ Ud(Q"EED +TPM(Ȗ-Z""Kw;=4s3_sg}ߖ6(M@rAk&Ь%vJ^ ; KgM@ úZ|u9I<9v,}l+팸 O8:C_ mk<b$J.!)A-A&.~OHtOHZsѴѪŭ$NVi%M["VxsRܢx:{u>4 gqYBzt}N}.ѽzDEģgq%+ġ~ŢNy}d8/aKbrg*bNE} +A3A "M~K[4[<~M [[%VA[rNj?]༆ey|1G@(h`*]S@K!M>b Gs)4 N_(| SC,u%7$ђ4ų `6уv-dwCaآļb1a11NSaȤϋ8!5F -ESw':{U!<\>y0?*>⎤3&C̙",\&57K?GӚ +4JC96g! -dSCI23!rm3A{Z"%I cfqdZ$-*<|6xcw!^"0Å("qkNƤ5!96"M%3 Cso#:24s4/%RLZJkM[f +ESjhrٓ\gRGB %xPEWjI],-VI^T0 GFZќ^IRkA#VN,c.'ZϕW:g/\hL1$iRUkkuRG[bNڱEAΚh˺نTIn}Rɻ@S3$( 4[f\" h /\4DSGwΆ݊+yލCF3gDv6gTT a[>u 4UFhF4B@?hI| baX_MbHДt%0>BS .z$f*|ըj@8:FF0'YPyH`pΪ4M LH9:KFf T{|jHh#OS4puddq'qm*i~RRB7 ೛%ljۛ ZoIq@>CRM}jP~D&%x8(D笚|9*Ŭvh֘Ws/wQqN2,AI5F(SB)RV$M׍luxUyd./(ǘn+ДЬB݆j>׍l[ {T38؂r99<cBvOUdN[`(Y9y +6izEqe-Z^Yqխ暶U_WݱSv7٫w8vC 1r17~¤Snco5{gκos~?.x?.|EO<䩥˖xz3ϮZ k^Z~Ɨ7ymn߱s[{o{>Og𑯎~}Ϝ=ϟ.\JJ]IYWQdg+/RKrR+kAݔ7) nƃe-ʅpa2b"NLUV܉w+3~ܘP~< y G+K<Ô+/b:&e+8fMy[sP>| T}<:I?().^J>\ͻ%~__b2lvǣaO G8#1<\|LҚ7?3' t뮶;f[mq&O6}ƽfϝ7 [xe+.j[ȤƟILiLT*Nhj~o'G~83gϞ;w?]pƶehbm֮-;zW_5a3Жj꩛sӲZdOG. 54PCC 54PCC w +u%^]/9 _ԏ-~kwe ܝVOѢ'~HPG VFծ=Ͽ1}C&|ww>/n{y /Mٵzo.Ѳ{_d'װ6Rk]/޳̾{ttp|gvzffgi;fiNд2/AoF)TLP. E["-)'-߶g/yޘᎀN"_ +)Uka"a>W~ՓĢ ?J!&vezzc-̣>$CkSFkCe\ )j3J-)|ʉ鱶d(;nZs>w'C71}fDmX4 >J6 3O;F.^hW}F]υ +{E"f(/c`4Ѭ7h^!}w>85KhʙHAΡ 5.-F\ |{Gq{im=/ZtUppdK*8+#KD0 +3{717@AoPa.57d0~DK2qH9yBCOmHLU1tՔl2"8dX2, K%e( %6@du= +םj^A\ˎ*$,!2.KGv[=ZP +$A=]+#zw^ XaF*bZ*SRD &^\4h`C͏@v~'x<\վAGi]8^@(WI<}IXA-edYÍDVa( e Zg:8QCHz,I^PQ%xI-02,탡2Ad jk.s[g-HQ$Xi}yJ&E|Ne2@ZFO AF# zw/؄9Ќވ0RYeJ($9J;C`M􂜇}0 P/69&Il됼:y*LYT~?W@lͥt%SYBfaC*Pn;ӑW_ހ}]M*'(bN)%O2qbzȅ)}^KgX $'mo N_u_q y[r=P"fUdVp=!:qܴ.K``ZJ s^9z5-&i *ઑ9u(I#ObDQHnƖP VKE2jVwn '\G&ǼԲ֠m0NJ\ɰuUH Z %4Y@" 5Pog1ip`䉳ߦq/g(MEɱZ,T"V $KM2TjA})Ï9;g/(Ė>Ȝf+Z5b m @92v~ jl̆q'G%7B#~̇ސt& n磛#XB. xю?S]1a^‹w>LpP8:H"Ol@H4@D E> Eߧh x 3{ =p~@bIb)y`o%65~) +}OztGr( yĆ_ x {L|@mT+5s7*Nȁ3GR]xڅ)|9x^d\ \dyb.pPdmkkm_"8'q*)c{&B?P|5 +b} \hXL35j1|%/h`?b!4У( ^@9 Sa6r%'Pb 5A(=)|FIS|F!'AcIn#V4jBkn    {C.bE aԞ=ag*"tVP*GhHLf)sUQ͚H%PY~5[y6V!zgkhpwK +Ly}\DM3 3]WdkijJ$#d=U$yA +7B-P%P_6`ׅ3$}N+5AIL62U`#%yWFSE E[V\Ks2[nh`ԱCbx. 蕽|Đ +Cű-NV>ߊ=jVy& ޠe=ή0ۯk@G +*h\̰O^LA m(U42fwO'pxa0|YPa47(t%1 Ο;\0^vwvgԟg oB l;e^cdUd ~Pb07(PfG?^;87rzĸ~_|)8Wх5SSrITdC!b@ As/=s߼tD[gnyQAA$LN'3 c8FBm}.)u#=g4b4~noUc[Q8ܾMYBy͇fBHOI8t8:K + |H{ȠLdT}ūoݸ\7gMӫ[e`Gp=ϡnO"@EdYs@\4yjlflV/o.=ٴBj:*n%}lNmg[SeJKn/T^P@QQQ@@PA/],YinmyRؽ +e[ +C>yE@)H;a#ssEfKϖ?,?_V3|~lEfAx8䌃XH?Br_({Jh3[^^0_S 3`p^AkOot7$磐dmÐА +P+6/ +f^ Gp1~)$T1|RB.玦TMI千.YoA777SCkCɦC ?#4wPO?Nfo0qZbNYLn~(VbOKmkZeu8MB ̵Օ??#Ȏ,kNDs:#:'>V\9Oe t̚R2'L掞8Nhmנ镡1!?mb#~GPqEfV 7UO$K.R+ \f9\cLu%uMXyߪoNhkGWF 5Ak(9ԁZ$)93Ε4RfiNb]6*MZInAӉW2v -&Ġڷ6[ɐiuL Ye>3YK@e6rU/"4 SjbMCb"5b@ ЇIUBEI*w:SW.+Է[i>9Eߔ+UKr7Se@p^*6A3x!Y!,!*y-vANEM&ACӫ cuԆnvC$e^X_/.bm[rĠyb g \)ƴ&} IQRVmz;hgyn46,bhغ ;WB;b>tv/KWt:A`jNmg\}CEŴ6NΠ7Ҥ}4E111t"/,1AaO\4FٴC AJd2ȫ(8Um3R HaD ذ$[n+A? + cSΙ# ͺvUD֜Zא )F/ +(F;Lj! +14! +rfס^w Y]1|6QHUU5gvŹ=utsԚSͳe׈2xRKFEMP81H|ZOgk15zq4`.dzXFPV(3Kd&Z/asbP+KVPBCǎOf{~4]=|RPIZ-` I-|M)z圾ЂxME os?߻IocA?c)ґ]쉗RtIZbAe򺣕EHE)B)2*AW8/1/o\#=s#ǒF#l{t%/NՓ % ʸtM~aB4|}MG 5 qtl^44ra8((>' ) 1tIDIz*5+ @};XpgӻG\^km'#!_ٴ_DTXrR,-s4A8K`qqY9UX[~M6®QUA۠]tw \ԮUGg<6`**9{".#u 7 '8́j');m{k&h ho''DX_A!NW1K)LY[FfZy on: L㆚ P 5ۗ@+@t =  򆶤YIVS~AƷST*e\W;^^'cF:/n΢wt@s[\d FPEt$H3>eOsJ0)/(kh@>Ӭn fvhN1{vgo'h9_ >u6EgZcin=aqWu7h4(N~ ="l'h0SFI721MGMl/ 4d`B mȠ84'<@sgV;5Q9Ts ny*rQ(FRiھ,&#{ZsJgK|ݶ ۷6@|ftgB&'=TeH[H}U{˚6˪Zs}I/S9K 'h߷ +T7P1!O I=;scPcƪQm%WY.(IM7ـ Ad|LgGX"nJVx+9J%rS}Zd5LV%THdHm/6%^AfdP] ={}-*[[|SJј*9(#6a"[R)|Υt9Xe*\of{{8 o@eЅ փos{Ȑ選 WtEi2ȕMe*icAfa<&ZOki*QCP:gZd`"/zn߽ʯ'mytSqф̚t^s4{g%wQ5g,lmEڬJgd୛ m?gz݋NP*|3I;! RʼnC䖸 5mkey_goMi#֊NǺ_ъbZԊ"( D K! ـ!!@BB "ua(nXQHU^h?ܿʪ@-g{~o٦w7iaݯ'^ EQG TŶȟEa|1Hx]&]-E"͚`^?eܡaWtLmqu~)~?;I _)OԄi_hY=A.3+ݑq+rnW-n/^2禰gl}'=$qϛ2 &[ftC2.L?+N +z*)ShSes s +)[+,vU%8Zyps T z;v6ُ.3 -#0l&. . x D ꞏ|ces`"5^Y{JOD'"E5 2p!8 ;Bq(7n\v{>F+,Uyv.5ก +.I- +vA@Dl 8p}!:.uXb,15(`ռbYȅK2Uw ׇ _ yC7^R@qX;o;w]8|6s\FV[a4,/Aqp[k=;\ȯ f+7@!H26:C6 pm mlO +8{q\ׁD!P@rԣag +BdIR&ԉqMYϢhc.ƓޜG{a87Nso5dX݋`J#o;A ccx⇿LNHVvL7(I sU g F3LcL.SITS󞞹's1{.bXܛ|mz^y3-9D^鮒d L4T ~m8d{嘳@_h[;V'(PJIki)%F'\WTonuwWIeU'z+fjol/c}I6K m+ΨU\f\VnFeoÅwE*I> fh:֥ݰ˧֚.n&(袔[1Z(>D$h $k+{*%KGuS[o{d<5mq|셽qj??gpzB9(RF/oeV[׃ZE-M]5rI@.i' 7crk]:_Szp؜q봋sd 2hD Ӌ>n_ҧʫW\[1(\Ax*P& e~Qaўw5rr,` )||dh2e"1!>LpW1CBzmM><\( WyPzѿdf--hxomP1^R#g¦iIIVD6)/D~R:.rЬ,N/TV ֭],[y +)u߃'/RBHoƒHgyQ0 +L=ED] +DI(>݂]+Q[W_M[f1-cC\ÿDa)5:6`5\,+E$Eq$rV7z߂jZ'W ۄpN%4X`E3@D߅P Y &( Nv /Wm FI,ˣF9"/*J~ ?*\8 'C| X d}51RL܁i k|s'Z8B$1"۳ uod8:;r8 8DC+D8CN@;)/S~l ZCDݑA5"*{&#Ud8p@>3Nl ]80 {`ma CVsX@s`5Qd3c&?.n)TC*בֿ$\)/]N`,w[V6/SW1F@g JUTC4$"1 Bg $*AHP ' `jAj9H7Z $d;A, Q^jC>Ak6*8$l(|g<59jCo_j@nEDioK 0W, `{kX3_*yBJZJEZ n $/F.D>y;5?5HoCIH>,1Sd{jC<, 5ujS h5<:y)!j@Ky4@ݿ4$ig>3MM$" q:y;*CaӇ,.1ҽ?'qL.\|Q&$NzEseP ONM%O_P@<Ґֻ<eh@!Z jYu&o5C\D.S^GU$ͅ`̐n1p=pS4\:9x Va dYˤ~Hg/$'gK'd= iN%  t=n?e5&S74!i HCJ9@ї^\Z;=z4C1O# + FI%>aOЀ~9x,&i<4А͛lG68`H7K +ANmtaLs)JM + + +.QY2%Y")u"bb] +q@$8@50Eڿp0̿bv9YCu7DrV,8dI6Rr<ĵH i(ߴ׵G>trÛV/,أO[C0L]5SI =V E fKt XBkUSjOL~Wi_  鶅 ^9k>=퓝#ۃ͑QqMzZA(VIXb>Yʙ,uIr- RzV]@j +齒B  dW'`#g! ƽßo=UǹC;|{Z#"[o]MIjRE6') oTWV(VX5֝U[++h(\Aj|l>m/^7K>fs,ؐ'NYJdXʮK2_f dzh F<ߪ!zA=P4;A%r@Esw]kЙM? _p8#,-:Ym+jQYņ<YK G*hez}I$jp^ixo\GJ9t[ivO=W{y{7QUmqYd +݄/4s +b)R$Ī8V}pKsةUu_8t#Tov4t_6=sꋈw]`X ҊsdU4a|S$$E#LMaT! LdN)σM~kcK_o}vvo8~,x8<⻘4j̒byƉ_Qy"Z4`k0mz{i4hހ&ǁqܵy 9O"n|@F 'gR> ݈6fYM\d2m&Vp73pp,gnWA8vx2 5c/OOp>D962{"1>m"S^gEYQϸĐ҂z6 +v|yl@jGr j`bCo+ o=]ޜ3a93WgC3"㧉1ԸkxI!/)uJTm sE7Cj?EXzf?l^s_);xًٳa'fKf`cfKʂCgy!$a~W}g{e(]P;# Q7la +8 +` xd( yBr&gp>;~`}juBR*G!lu))6<קix A;/CԞPH i =H1= bPz\Qoh<-^(eCUM-tZ':-"%,X8.λی-~^m灴\qJw֮ udO~q|2PG( ac>lpNj2[Ke8vGEłH "BH)$${$!H*(( X.l"(3{9W?p.Y{ofF0  dI_}Rb/Wx"xW]^ <|s8ųq0}<Nb8!cVx} sw[1,b]YHLelQuҬ`ZdY-IVQ¾guDY@< ␋ +_x:[9pˣ!5Q-e'& +㤞-Pq$FDk +(ܚ|9ǻenkxn1P` #|"Ȝ̍j]w{MEP[[L('1F:רgKjJPER+.4ŧ3M7XN-Kt_>kDP"ga^c'qqK>˞^=SgsוGŜ*OJ)*JS9ZSXW +tr]:ǐ,ȣ+*,4EC>UuӜХKe"[q`/j, +IgMk@76޺|tŦڳ1ѥ|~y +M_La˭LQM-àͥXL$}9UBȹn&;t$=)Y-0epD`anj{9vZkgoaGQudC g Kv1[F?!RS +zdH4%Y0aN8u)H d9s8g[lIJŴ\u]I㚚G1hhjsP+]ռ\}xn~sDr^G{TAPI =uz:ڬ5>tk7ͤ﾿Mw/uk zDs7u#)y)6YAO9e;푷T֦P{@!AsSwZCRs?U O>Rj&;ߨ}M[Z +W}^w76MUK,Ց=8RAbyڰsԁ ֫ uTqZV"D '(`A^Iyݿ20duQ琯UPi5w["I^OjfƵ<ɕawY9*y;zZ]k^wiT4لݔxwg 10dBVI۰ՙ!NG|=xa~iw\p7?W^)m,m*m+w4XƋk/ TA!GRpn .q.qst [q3c>VFn=RRL{ e"Ibw:C/8hΎCBh$3b\PpJx֮CyK2c~q_vdrT]ptInpF"Sp},t66!l"FMl I3Ff9X!AN{H+RƍQgSwy*wlHڨTG= cpsdX"[,G\Z $7@t6KH  +/im>MKH{ +D6XkBA2]d (["O@~bN{@i 9Z F?x9 ϙaciǩF9ݬۜ{1HH@?!i&Ri#g.Qi@sTnBz!<y1v> eJ ?Vެ#Cbhw/e=(}z,~L:%|HŞcdA@6}GnRŨj=˱j*n_J2}rcf32gҎ$MIٔqQ~7לG᜻ vfOJsE]Y*HPkPNaZnZweCI~T~%c"7*kHNT$Kc͢ܧEw/ sGxvt'g@B6$7ϰ&5oT#G:i)E edY$oH I؄ld)C@+R>}/Ç}07H^0iƟRO~O$,i,K0)QN|BȢ`z@`/A\$%%!5v_k]7t 7S.lt9nF f=ް|܁Uǵ6[B!ڐgiznT[$߮sڀxoʐ8dgWos0f3iApZ@bڢ2Mq? n.a~DX+"UP"  "d&R0 w~T]sJ/)h +k0x QbF-&*E jQQDkbaĠ8?R9Q_3kỵ@` ܦO_,Z_t86]aɿe?'#a dëcV[L:@?}b#o$`W{tC +5@; A_m@%kPkj~CfeK0Jjn@A((g4:I?|kXyI*x $%Rtfffjj3Q*jS$bZ\uab'q(\} Tp0zSs( 2A hBmT‰c4탱!]~^qD:M"!#M)Xag +'d&n,D#fa$ȋO0K!G>(B'j m6s+.\I9MD*9N` (7Fx!$fツ^kx]2_K,GT-t@B{,Z_]$$)\Na8XE= Ìzs\2Nl숄^ RMVBd2ePڠfV*`u}P\\cB瀿<JmQۂG0ց~Ӯ^ 7Pz<^O$B°7yi}>Ǎhc'|>B':8<WC𼍑2M0,؀oNXׂ䣮wvkʯHH|;čWH^: 4.x#=h1, -GrR:" `q'yq~=@$= &j ڐw c!o& 0 *r4bY0CFsȒ,!M[t=NU")3`^D`0~폰I𱤡-YI|89H  #D:#eDN3afȎ\E%+!_q U7xw܎ pN}!kH) +'c-uh&W؁/1("B`p7Yke9⬐˶ETxATGLroc?KO~K RSS?{i_c#:u6ᐼJUOjoSp +'r"Rqΐ1QcM#)'XkF/%mG{~B?d%KD.vX5u3Qi`slBE|q볢0H+z/}+K~?Hcd`v1n O ?dh=L-6kq=NƙLR +=d,GJfb *`[%ƶh>U^ذl`=>ԧٝG0odg>$nޤ__I\2s)pFn[lu4v?5c5vwֿ) eG+ ˙%5oDH:2p~LξɹΧ}⏰O2t.KC 7:y, TzdVG[ʾ=VF9Pis.)/w"`8P#~}bC:1J"n!ȼ=sSbMsF])c~.SPnrn(W%3ʓNcžQ[=T ,BBxyɮht9e5hp[Ԋ˓vja̭J9jsT}vi.|oC#$ +$Z-2dAC.q {'i:&C D,{ږ^;2(+r9gJ' +*GUYs[eu-FvAdOse}N6V i(&A;}_;c䰛p­s}Vt*YIVe˯W6嵨~[TsdJiujejekq@H[2YD,%!iAGF>s:jh[i~W#J:Q#gW *J-eٍŻuMj*UgirYB?uz@Q5B];sk:~#-4)A)ԡZ I - +*HDP]@?8*~Yѳ}ssv: {:,{~'ŠBzjZƲԨ3Y i%9ՙp0W(D/D)췉y@4!M?a{g6-—KR.~4qj4h^\:Y]_^+(.*N/gd)ŒԌ 񟱒@:mCySn~c+ǯx`q_8ΩZAd +ёTaiEfFajŜ¾#E%/KiG $I;8-88 w>\/~e*=3rpAO^?۶[cK8!)LjFU^Y\Q/?//[>_LRZbٛ$8I rԫ⾶oý؁{q{nvh䘽a^k]gOhV0qјĴdL^M0TWõO5Ki1oxU+q@6\ET)I}QFˣ{*޴!ݖ17ݶa LjiO$3#>$Mr,ȅ#q)MU2Cu6d7m\N ;~8I jTDfl\o,jo: {FeDzS{“zbb#; WקjHjNgv̦_ -8$t%diF4;$ݑFSh䑎T^Ŗ86_p& ׄ!q쁊D$߁!c`V761=/{5JqP)^^ >;JBf6gdtmB᱃F՜ACƾ,ǴPOhޝ6wBš(whñԉ9mb%~cPI _}8-ۤН /οQKrk{5.T@%uR=w1щXE_R^K>KC  />/iE%FoZgaAլ HkU-ɫV"WCW9FHՔ}B[Z~Z/9})gOrveNfB82GuRbE| |#5lYwT [`wi} ӣ}x={ɏPcMeC0cy^a[I2ކP_B-7:=P&\hΆ80dWPh' bpN't/}hc{6m@]Ĭ Pet7||ϔA$י T%OX黀 >]4.#`\5ƨ LϬ_9,P-R ,?S@5"Ib-adVp'EBP>0O]QM^[TzYuQ Ɛ9! I@ @ A@(rUZPE +*Ȱw;9]笇ظm@X  o#D/a$vla,|Fk~`We0;xۜ{!p .B i+n hkrx[6?nǹQ'q-[FÖ8āh=н0 D Aq1O#pR=%~h@m 3@ ҵ@ez$|e[IZ؀ ws*CfV=zG%v?&W0e 'waO"w6x   Æ9~/ϸnl$;C8 T7[ځ|فa䮛 N!F#{4i!U!_ٔ>oA%W;9-<þ$`ODfhl<%n|TQG wN::>r~u.;Zm`.W&<AȍԄȾD WA3JJb;D|IoKIyO%^H>J3*dS +4p1:?,y7s_pyP]yW~1GyFԦЎ'XGE6&Z,L( %;Hi{I 2+F,,jB&)&:Wn*J.eW{;i4IsȒVIT|(0g-$Z.UíN2 +TU% iC +nE>rSiT՟՟y z ߾C7u27ۉZ5/[|ٲ[WjʙN[QM*jmU-M-4cR<7U>42_%di> +35LA,ty ]lrxOgwۂ_;CO=aCAֶ2fS<֨ThX%B}0/D=$קUR:U)?RHӎ1thkuNf Gkf,ںkyWS:s-=hUR*S Y#0deIU+*"0$N%ǘq5@:g6t1f_Km^t?p#`:Ἇ7R4ԲwVW e2raS(hr+F$!ˬeHP<3Sd[X15@ cbfq݉Ř]K0W4t QrFVXY_aS֗pRK qb\&-O+=JA]4_8̗-,qi O +1P= f<^g̍Kv;φڻp;iSe #ݓ &ZJMr`:/2O_^*yNi7.*a^\W<ƴH=;af~.al̽s0W0}Wu8/l_t.ҳWl:j~IH (" ;BBB@aG(Vԩ#.uSw +,0EtVEq=c= bʎϼO;~|}&GPnj'Stbo~~́ՍҴ껥? eUe>6 S9Gg?2ɃVEnvK7rk. ^H +/usYq[[ 7sbMFuaӶ9Y k +U E┆u9&NMit tIn3 .3^9w^SǰVՑ|פЭ37\X%XQ"L{~:ܮԶʬymdmC9TeZl7$chI-if+ qA3$MScCV{n Э _}#/zq|εIJŕJ*-A#HOr{kJxBrA7좑ܭt~NZn2I##rߒwYQ۞7<{7ú{cDfknNS2KR2LH.$ &zrX艨Y? +^3C \?bY>.Ԉd#hݐky˰qooLlqd)jMlp-:2{-O)zIH8!J"HX>--t?x9g#0 ee:@i5 !e96̰p\C8hՇ" `Bʂ,R)!*Bk ;[s@\#/x7){4<ǃ.fqq!cBE1"ST,B%W"=U^jo3v+w)n࿡) +>HmW] f{!և‡ T\cMPCj1de6C!>Q DHhu«)5QʤL @JM 0&jTًH CָCR6 Qrq Zلq鄏 gLQغ|AACil2} fl)2HϠY_8!e+<8!vCKľāIp1\h"G$wH +.HpAFڕLw8(XahS-^dltf',rw6&`FQ4%oL::!Az;׈Qɛo%Cҹ7I{-GK+ D4ȝP*yLa5%B )mP1oL6Ɍ=~iޫԆ&7rGQo1IyCWW/dclLg)BCBt!ő,:飔c}!"LPƷ:̚ bϱMr6s_`kcN8MEqkKXܪ {H @ b B-@"D@D +A^VPֶ^u9ߞ3)1 ŌyD>$ < {>p}n0 1[ n32+$lw} b:XۯQ)GrU`0kq&LxO1 Q f#@O[ a#O}kTm=0}ډ}Bs"oףX}i$6hWѰV0+ +s~1e9XET2K^Q9A~E6fLH@S@V@((C^ +d!o5n3aNKǪ]/wt9Q~uqXN-Q1J8yj^NB03S?*?g$z$ {s羚P?llew]O~{GI=VkȉŔe&tir:NfQJ8Y9$Q)JRR^y:m<$HX|\^ԯsv-K.O}ݪ7rV>VANfgf1ӋjMOu^>/NPJԷ$?IIeH\@\k X +:G.5yionm>KWg(Kɔ4m#%']ƍϬfeiƴ$:7<-3.#%. lb$ zob0[=\&:7;/j;E W_v_U*є(ɧB-K^P•Djω^H;)ʋ*|˔|J d!"5.7 Eg0ri={vUM-ݥ :gv_cĄr5-4uFxb$[ܒ\A?LQGl2d=iv'poٻǩѕ7w6qiD>YP|]>&Q*4qw mWB-PA;?k#t{h5h0phUw-uHy^/;,1 +0idҌ,M6ɍOhoht#$1a-0 pF;0r]m3`fouw)^lw+{/J#E] J ˒B'Q:*(v#-3>xJ÷!a m̝`,߷A ,hrO-i~%s0ɇv9-t9(ax@!p`9 l ,n0aߌ@v;(ݎ[G%];1MοÞOʾ\O%(wƁfdlfGmrޟ~n^BL Ѿ"4 I\dLCpfbc!Ń5RlOh0P¡Ej9Nh8b#MN dBBgCbrDd9CVI;hdFo۸O@p꣞Sc>k ᳐ENCP@^ᆌE gސlB@|<:S!RԨ/Do/G [1|l hf;U:A=*$(j='os背f2N/d~~C]'^OaM)^Rq|m$ y$ rȋACrr]3CS2.TkyP~@ȏA~6dJ +|:a9z[ gBƄ>c8i80 :W=79>Эvc4ۂnAPAu,lȗQ!ѿ)^E*T'* d#d@G4LX( aaV4D{%1K튢|O"Ə y%~Gnwv?DsdڐT ߳`F5}E=z&L`dcn= +'\y0.+\2lZb憘gMOsN=ɪHӞK{*+y&O\0TAtLi/vNuĂ 7ucżsJ>?.\0s}Իym9,?-wnog\?]}oD|$u0R.`ḁS.͇=/4[/[$ɿ(*n)1wƎKNw=Rv<[7E)F$z".5,uL,Xo?T48˽oҐ17*fhiHRRF酒EMs-3ԧL4'L]c;ڣϳۋd)!J~r}EoY{|_y"űo2ksk._YB|Ʋ.͊c/5K9P|>wϹ%VKedZ n)J{4/#/x +b}_`߻FܽR|~vLU k,WTy|zߜ_);qc2i@Vs%dM}Q ỐOsڷYVp3? c> tF}i1\Ci`mrkU{*7iw<狹_(o3~n9h2m:oHXնf>L0?I8XUA)ғ`B(@( =jjA@P((2눸zQ 3{f{vV|>_NnMF*1&8xxot~ |NΌъXQuTY٭9.}|gWF>UVJoO&51/'&Tſ +NZ 4D#/C ++2TVkrRtLgve뢰%1Gz ;ryr)R~1)ܿ>YƪLa&KEļus->TC"{٘p#W7 ưnA:hO6zIw VzE':J 9U*%IeQ'Nt=h/L@ +TP![ ד`]tk 5]Rwҗ]&ok7BۣKq-IM79'LWBȎr0yL, +M1e?0Y~rD#CdUV&z 0_@]=hxVr⸁pD0`ƿޟ:esZdjJh*dAC1b)VO(P T{kn~x{oeFgC5='ݼios~)wC,D쏹k5t$9ǐ27zO17ml36E|blՋ6<ȕ~WNP0- 7HP5 #(^C}lgIqLO΅sd?8{ &`V`ǘ9f32g̠촋#:JR%n+Wq gC5(~/r!Z Ɯ% Ygf~,"/|&x6dtmGUnߣCnO6p`sY9P@ -HUY.B )RyLR7*71[hP),SOeNwen6sew,~^p\O;Cde.|-{2!aYb3V]5+ꊟJJMWӌV}(>o;6kb6ە/a+~*p<@k:> }Kې_|4kC:(r:k!T +5C^pZ>}w <H[_Hh \~:L:IvMQ" +ְD{P9Jڍrw2Iu|u &9+m8)@ g)kHE vȜ` dYTg;Av5&@ $$$6!)67,E*n8RA[EQ}k=ťӊ֭Uq3_ۙx;}srpig0 bɴA$ +ZH2E1ʴ JYec'6PT9I~(“Fp [83ؘǰ' hiCzu%icj&v&ON߃Ѓ`O B Jπ_.xzǂ6p0~b8A\4uxg3O>C|x\-,@0Yï {M;H3)W;=%wÔ/x0ȃ&|<BDd,H:τ(} Xict `)$- ?&^[?i >Th\H>D,Ku YB !2m@½V"i EknٓWB_ a5W\R'H#ݘZXc!F](#,2S֛CMʆd͔dpG#vg&W߉ڏux!px.S lH`8G!ք`gr{Qv4bgمD)t01&*4 _c3fE;v7{^u~%;4 sI\I>{7s~c +RV$4ePͦ24/-!E: >&ϵ|3So"j9O=w60G=/xߑI;vM +3 " D[1`@*&D3>+ߤL_$~YT|?V.z}nFs#b{=bwUywTyߥ7 Q> v&c a$7d;3,!7#ўL {g c NrPչ_Khȹ&v߅s1D <}Ip"Xˀ|ăs8Ép'4!ιtl2K %dsobɬ&?$3K/w)|*Ι=G :Pui㟈&LUw( dx CIb̀B R2 +{ƛ*WI5GneЌeJѢDNgN˽^w05@rp_Rhhɠj_Ȁ꘴?lww}Kop[b RH~6[EFVQlƯuNV+.Y*Ns:v(@Vo?,r=K%};;RC ˷W$VCؓ/M7&wУ(#Qo̩G06NX'3ZȖgaks&%C>_GT䷫I+&gRVRZfQ6Qmv>-"{9צU[^RZ*^Q$ސA.o9wGxS#VD5\j}\?!m,DPSO;!oQzR[3~:7SohUڻR]\Qo+/]%n.Y'k*ڤXUMYW0Y?U)aDm{gՕAP_&(TLf ֦CnAlMU``|wBmMIs2<;?n-_[])XSY/^],+oWԖ~*鏬(9]VrUQ.rՕT iiQohjl5M]_M:4:-p|澮PѶ[ZT.kzlXпBаliTW}" aQ(B @ؑm( ""PYdY(.Pjg: eLm 8ȢTEgǙ3=a>~s>9 +f?pfތ=!)B3&w7- :íT~!3߷1 ײ~\btqjZVWdx,ҬdX]~at,^}w:}.();x{Br%FeTA:']Hx uE:L8˄M|j2$Z%&EŹ;itK+L)(I:Z㟘75Qp|o~ ^BD&}8jh]π4\nAG byэWYoP|&lmM95qU;U.puVnTUy?? Ȫ=us5:r%j8Of.-lHa^ttz/Z}=b]Zfx;:ƞ͒G7(=:}B|BF:V7^:{Nx +۵W:?yO^T]ׇ^+F5);ǃѽAOﺴ4BU\ۘ{>ȔF|rT^^v=#}#mJ6'jEVH]r.;hHO2pl`)0?cWh-KjэcǚD&Zn*Q<ZG+2[2Q)'9O7^F;uߑ.> g_E̟d+?Āp{߆L3Npp~; ơwRL2,X +kmb>E !T*ք!>8^LI dlT,q*+N׶>~LW4Ӡg3s'|:Dx ꩻDa5`ɿ | 9_!(_SW"y֑vuc8aڽ԰ye=c\\tm2YYpO'-Ba -|P&(Pq%HђBW=iS `0F3 1 +Ә+{XY2kY|uS}.?@O߁2``Aa1 +5ZJTP+Л^4#h=up,08XKt0Ļ75LU$;x #0%uj}4d/K P@領F)AWJ) (t" EƖF;R!"Jh`8 AhyǵHsq'*.Zoω7r,ɖXD8(g?E,A660G \ QJ\ Y ?ψrȝ/j:YB(>\E t1QB0MƲ!Y 2Pͺ(EQK  gijoĨ;Kx,(RfBҜ0SD% ݂5%;_t߸Jkx(i ZG>b9 z }z3u< +qz:O|I~`V=.h` t "7N qQTM ֆAH$2Ī3l5c ~[>`-c5Sfe~ #Ɯ}Ƃٽ0L ƋBF cJjH}1@LIJQz#r߇zVM#ٳn'AF}xiۻnzЂL0X^W6!``U8ߐ4|3-5.!q1GQkG,7[޸VNa{rq&ՐΗB;_ y4F=֧#TX`̿6M{W"H7Bd]沼5_g.}ʎ{fk"f|*k1vWZ~޴b.#" t?>1>Kg O.Qx,ŀ^ `38xػ,|+>Iq峜DKm%8opks=}2f43J>}pIʡ^~3G 4@x{;W`2@_VBkcڝ"_!y٦9zw,;XýȒp>IdY>--\!BEݔjoBWhN(Ԏ}ɂWD+,z*2m;xBa"4hR~/C);ªțfc?]Y뫊]H[@Y1BVaߩSGB:j&Z4y/#g$H;$l61ױTW*H}$B%M\(/, + nOY xb - ;jp:DUʎ0\2ckY,ͦ&k\wUEbʊ:NFQ _r*(VP~[|(B0l5g>BU t]*щvutc%߱0Nkc,l 3R5n^Ԑb]P+uHd|&3e#30x=KvHU=ki;m_0ptn.>'n_Zm}W +>H[4@oƤ`GLspf=1Ze_LRs`6`a(nQ5 S≧3JӾU_zk;qolcoLc9a91 5Rk)C:{PWX\(nvW(hdDzs۵ DQ:8[3.O08ĵ}ݶYٶG1ֻ5]ƶD\"ΡKԼ +*/= 0"&\Bֿl!:!#ԑufq:': ;#;?:kXݵ&$F$W1h|~z=}?o ? n3b{˜XFӛ̊VsBs>)Kk ~ׅBy yV?Kv@x D? ŸBG0qLd0%c Mc{ xgu7v+{u+}u+5=Jp_A_F9\w`l7@0JttTa4F1ned8 Y8ebIeI 52@cs'?25P@` EԔP\ 1l1 l01LF>ba c/jwJRC,Hn!? ۞ Fz0EYf&\TOal>/r* QD('UDE +尢O\\DEM‘0Qn ƹ28_BX=&P3] ^"°O,ߨ[VeJڤRUUG/Tgs⧪+⇪n}Sq[{jVwF@/eP`}\zi=u\Ԏc|p<˘VtS~U*~QV@do}v5uv^ͥQw5y2FkHWɕ(az{tGh.R0#3{g$inuD;nݽov%n=N7coK;bOIǶˮޖ]}$7,5ƣSk<:OQ0-mH8&dհd'dXdYIgs3e]~õ5NW7HL4\rA׭][ަm}^9U3~fݐ{S"6&d2:HF'6Q7t̓МЏyTbq~t[]͙i{iBέ\ΥM8t2&}w }q_GRJEϺ4tKGtfmL,+zwNq›NxLdnG*/ZN~I[rMuG5}qIK@H &8L 5! !!!!B-D~AumγMzvqwHEӒԫ|90;Fzx5OռQQBgC$kP|sKMgZ;> .=w$e@q<;eb6tU!ŕFQ=.Q#U"tGr VMN|D#2fo+) ;i Dokvpa2v\wz`Ys:P{qG2ˬ6d:jH343!ZHXi\:!$;D0ut [8?^|WA ,9ai;d8У;^rji&F7Q*Vnbh +CJdCJ,K!).R.>H_RT +DQ!5({AW ie$J/wwT_ZIqae-Q(w=|kXhރk}twKfWvzoUk%ƜyTe7J| EueTam5-hftd֌W RUXz͏eDL5;hϴ`!@[+{} =L۪_9w^ܧHr+pڸVwU9)ECi6P3&4l6m&lbB&fBdk*=[\?ޅ;`@Iv0ʾd Qџ\ЛvPԓ}-bnV>h0-<m[8u{\r#?Z_#3M/eȐoewbp8S-]YrNaUy,"_M|Tn'UԐZ\&MaSހׯT%=Oz{U z9gIO1!E41C׹z. 銌hԯ-iw {=k aC,CRDNئC +GgsYg./1n_nߘ7wϰ_d8"i46[4X\3 嵄 37%_A_Kn^ ,Pisc ?\tN B`hDSEoOu̐&ʡ'Q <8H1&FTȅ?G|&^(=7ت.Dv6ltvS!{lOVԆ!aP~`*ZpӄqtL:R͠LCsR|I_EuqӱKO,^&?u-Ñ#w6N/►*♺2jw*vEME4ʈhn +ҵПƃL##Z3p'S2'2h,ď,Q ;mu\ݾU{w+igaˣlnsۧ.eqhWD>F` }lAmstl6+Bx4sPzd\yʔŊBb5e Λ]7w+w_cmBKI"KPUvv4 t6L睦y 4,B8,pc7p5aFrD{̔=jG|Ŗ6\!uSiz)kN>*ve]]q+aMLtX*b72):F[\B:qP?Y@PU/bT5?F37Y-gUYv|cVtbYk25X2}ۗiӾ-K;4NҌA^6 ru КHW?w|98/#j8g> ̛fM -KeKr?R|Z9E5.fo/u$F!@n ulJA@5@XYE#.`ǕxZjUlF2Z;sng.8g>>&u)1$~*2~DV]Y$ILLl'bopk9@[D;W"!+H^૫QMmG3ӭ>ȵNSWV:u.NLVH:.K$Mr"91{b7P.8EC`{Jm]inTśXVʳmʲ Y咢LSAFK^z:kQ;kiZ2E]\PUnZV=CU`QJV$YNM.)g')v'(ds8]ٚ&3&I*`Fga4g˨}=@W:Eh[+WV(DVerی"ԒJiRqì5Mh'*o{DZŜb'z|K}jpvAH{WALl:O^UniCan4:vfGɖiY6I55تzv++ETuQOL9DU0DR/i?WS (l BԶ۠rW~>oJn +㬖u1D mRUjNaug}Pw5n|5s U3b7%zCt}v=7[*J5PjfqoEz S:BL6ψiO3ڐk6V*Y%]ֺ)s`7΁-Zòf&^l'~L !߽PvK'^e.=ӑ#Af'OЏl=R-4+Y֕mYdbkufM_Osak%[F~mf6zP(hU((H"y5E/_fm7A|oi=3zj,}{=e{g7>=f>yz LwoTy#@D rH!O.tȇe|5r B<x GhfL{'0yZLA8 c< +0~2$o򏁜a?O@ ([@z0F=7 30z ׋z9cQ- 7ö́1j5򄌑+)?W $ïK(ۍ(0` +2=1 |f Lmo08qLJ8 ƍcGg 0H YG6.Yc \#'+q/?dyTSWK¾!/@ Z*,ʾHHXHԸТH݊8mک^ENw~NrOqw¢)^/  (sHlCbh&M+_<8 xKKO>Nctf' HbGZdAC6=|Gwѽ8}|K ߑgcr?F>c!SMA\=iOcOg#SbH5|'.5ԘhZz%BSE]3QDtNSEWG-M1fO u?Ax}aM>nۓO_)S 'zRC*}I d+d[}̛~?$'7$XW<.z60s;pv*f} τp-#k +,IK`btV`Y.u˻w52U&߽6]n|ѳMF<My~ozIfC޿Ʀ76# uAmaG-Ƽ\%9Zy%FjM0=favo}OOՀ)c>׬>~?l\Ȃ aha߿~}'l_o0'([wb+`50@hlFcYqeF9 3Йۨ(֑p< u}ֽK{BVq +nn ++ogY^G-=w[k [?0^c_t-ě:aqFbe=-V؝՜vkNo o ;(61'ǖg;͑ض9 +|/=7SЅt>LCO!l/5ѓc;)մ31bGں=[n[cm\L_&X'\=* 1X쁭! Bwa0$Ѱѡ 1&T,ҨCh-Mfٚޔ$7'V94%6ҫVovZC,nKCQQ}܈.K]¸c]"0Iiq' AR :Jm(sEM^ğPи(Ƭ Ų\+gjm܂RZW#P BUQVW-Su=#*x!Tc' jLޤQ8' •\CT" RFM.P1ha, 1(6-+Id,[MQPSV +;ej׻ȵe=nRq4ew8],X\iP%28Z2 XNvQSK髂X& Z:\Q-Qg9(J+FuiWIcn(YS üIwypB{a4ܷ 7XFU7(oE42 ÍbrkS,klEV^UM*U.$W4 *\ݢXq04k 3!A4(ADqpU֩Z +X+ +8"8KlUk+.D:Zu}_Z?y}r?hL1+'Ǫ$;LZ_3~Pec^:A?iÖ8g~&h;+Wƒ&^I>7AR9{u{d*`}¬4=f15x/j\jѫ;|v G X{EwϔLmn5l%$ ݓWoy?8lJeҁ529ega:__qڋQq=C89NwnXۚ]2xuj8QgCls4و<+al܃?/ b, q=0DGcr504/"~}Ts{re.r,EvܜGD7H}zQI;q-ri9Ѩ }>mmV ⭱5^tWtSYNq̟Xbߢm_6*m管;k莿+gs' v}8 .B- 8Dz 6PF mmmmdۤ}hͮnyc!xP:շn+9 +d ;H΢l@@ѺEA0[TV%=вdKƠE4++JDuIU>%Kſ+ +T Oﳿ&3{_3[_ wE .R.uCKɗ"ۡrAWY E ] ombj/e?fSXhf? rh^U?mwfpػ>pbP٭P؋!vI/3xG@S` +j'hjXU5@¨#񥤆5kxk ^]zB/Hf,d~Љٖ@ˀO&|P:t^;5o +@] a\:$dwXNR]% +RJ:RpUu~ߜ%Hx]/dϦ{̽j  ~O9^D.Ue纍.O<Otc BTPwk`w%襸MtlVGKf#d<3#Kwa5,Ն!]jr}va2v7Ἰ}[S-.R\ +@!nӀ\!Cu~a/ZlEY`<7"{n\$n q͸Ah?J ŀ2EyuŹf)4S6b*B:Ul| 2ۚ0#Zŭ i4UT$wT9Si̴MuڴWUb*PԅJc~ 2W :b\Qq}nE%󖱢2YQjPYl:e^Ɯ>iNs8ar8.hvO820|aj|tmGF8BF"xY;ը&(n1PO|3Bq"zQt8/ǃKGhE2 jĪ}Eb'{c\jl!B!$K@$6Ibر@ 8X$vl'Y&vL=i&I:Mm433{y9^+b?uUL$L(8/~?b.JϤTJ> FI l +|,Ki #ޖ_LAYB e"dDG_ŞvQe sIZOKB/yȝK3kFJ0}n3уL̽{T +rr\9fW 9eAEEr5 z!֜l=+;ŝ\2S cr0GY)kXP!JEBlkdJ'+RRD.0ԓy 5LG aŸ!5Gh@h@DЯ$a!0\̜/񨻍(#AḦ́˚Ͱy 4iӥr)uQL6WlzUDQs=\,+ {xw/\: >ulG<>G~=<𞍄r98 z1iVIEזƌ3SZPJ\ܞx"Y|RԡZoS'&>Ij){|K !hQ< 0*A-3^d hE0cJ!MaCqG_NU{ʭ.m#۩mv4BfFԤYJh,]KNi~ɦ[ڴ߮%'7؇1wޭF0w]żcX[kN&U&VfG TF4nQZjFn5r]FЮk/'Yt6~5F_EO,g50_.|\}DW1y+Zu/iВFEtUG9*=QYhc5T4sm&Z@bbR&# +ӏJ!@xU&K>zpu6͘79o=Flc 61]ASF4[˩ +ʪnX;恸Jqʟp|&]ՇȗIz"CG/_p3u8mx 8لǚyRHG"^mQlFY]gTֵL}qq:46ZGHX#*qe_k%xa>}g6ּ::1wvw ҠMζm֖Ljn=LnhG; +-Zeijg[nAYè>_b9Qe5^Rs|^b;Gxa}x&ּ+?1s [ܮhhw~{I6W*֕IvFVvǘ:˩ +zy{-ns[ +[gDdZ$E,,siJg|XHCBr<(ds r뀯hf'07!_R:WƊ2B_}(VM* 6U M Me0?;ϋgnse@@Ӏs%`-TMP^q7W;AT(ĉff>XxkU@c^_ c?\p/0Qz:Ue@+ n:ԤnZpC͐7݀3!/o)ca؉?DZڏCKswُM>0U﵀&Ѓ)yocܤQ}E.>o9G윸x~Q`:ϞWXx}ͼ{~⦆5i`M󞬉"CFQl`.~ <_ @]Q }Fi +ͦIٴ66*TL';1E;w<;A&W E8>UQ1=H?y,NxdJ<2uQ-R.iOeEBvWjz/+/ x=K{+~rK NX2Z*L-!Kel%]ϒ%#/X +|* +})v\UlSl}Mbc#?4esZ 4tU\q/Q]}IEcdOΔﰦ)[+ZW(7[sUͪ #s5oPtU]*60>kt&T Q?wQ=F*Nm %4N)h"/_WfWdkr6hvج o"nYo̠6ABmАc̿B$Q~<)p0EaWHiCxڰܰъ_({NV ^ +]dLk$d>=H(aAha^S}ZO#=vn4ݛjfWpj/s'Ϡ?FJ׀7GbCdr#H91Pf蛤^'Ygi3lz2 h8;8R}J_#6{܎~f췏l:lvژȉ醕1aRVtYFtbaʅ&-jiّ" )+G7Niq4%CrcG ;ғ=FYcP'pFnXoEF|O v"-6Q͠hfLΈIM=ߐe41zWCR[c@a [5{砚}>)8 +|`BV `)-,5!Z>ʔULM7]?1nݗbWq\>r{c ;ғm|/#Y.h=?goÌX<5/e GAkТ!#@ Az@TBt]OZa]-3umn~L _|?~i扫t$))2k89ǹ0ՒJT2k7gk[=LڃYSL^&3iH$%QS{ Krٻ>5`:d1UKkR$iAzc~97⚣[XVu'4i^ԛ4#uNpK J?sYIjeC?14LӱظP\!?kԜsr2\ VAZwmꔌ5I^Z Iz-Y/(bkی8(bq1;¬Ay¤c> xc&;b|G:1SYQ1#:As9|ҩw X=|}鄓2v q~ x́GO4=ˠ5½ +PBEE(z<(O=޷z]ɸ-w "N! t;< Ji7N}7PHI2$9CԿp;7qBƝIS0"@!tIeKo4pe" WX0/#tpL.#?o05w1cbzx;~~ 3 'MJpT,=/^`Q|9Y0y\t$o>r|O~|F!Dϵg/PdcE]cAnArKĂܑlX Y,?`/G|b‡hEE>{F)[6SDϣ̘.c x6o>&w -C}1<%ă=&YEyCp m49q42,&$ Ud=LZțNr qO?/ +z%qx:)$D-"d% d+APg?u1q +xk%w~AE?4tN"|G҉Xy8&>y;uvQ ?uR8ۃo>?pnA+r7Fx@qnT\9C41$[1jlf4h:Ӆ/u<;HT}Pem:X5$p 1$$"B"QmCToB +~ZC j]FҊ6\lU~\_qQBYOU"1J F* !zR}/&4w|kuWa\QƗ#.hVs|يs=1|Nw'#k"uqb  $?-2zp۸%Wb7;>ŹU8ӽz4Þ8ٳ'z^m8k:CO`kO]"_ǘ٧1-O$.E&꟏Q8ÑEOg`f_BfOr2lav lpxixm71Fd7w_AB> ' ]8\Q|L|4h9'6{6`ٮf:S-ڙLv.Yݤ]nnbkwrܺ!g5CV_>T-ÈG<&w銿6ZY=[|0,Ga_pҍ6 [tyجs0t%zmu:vMl*[/m[bJ,ѝ.ݒ6x,m!J? +O?$[FM|@380J]b^q!ވ,fM\2]WʶUqKiB}YHҤ_%o5OW̸񢔐O%RkL!jy{Io$('ClH&$%IfQmNpM$2BZ +P )Ҟs=n#ڌ2tŪh1hNMaf3sRNaC1,36 +K5e0j*` +G11E٫`Sg~+Ofz^b)K29sG1sӐc 7_k*ԘҐi:A/OL_LoWUPQ*L,Ch>rp:>iBzeE6l r1M4侍>'d[PJYҪ2 ܤW(6uy8ƓuE^W(6ҜN`g!XK- 5?OY=1#?ov` UyvΟ-R%(ZBe“LUQݭqZ>8,;9,?y™'ʝQxɷTd8GڳX@~*P`ڢQ3a6=$fb+ +rٲWZPėX}5 + .ka][׫m]NVM_jUTXE gܤ:![G-^]4:u&rDiי; ^Q%k}j_ooUwj,\ub3^wY Gr`C3}Qye1LȸfnowKlE~F/zGn)\)\*ܮ6,x2Js KtNRS*4~$'j+텒x|Q䋃7q2 t7畖Kr!Yw]Q{;TiޣTďQV"_ <3:S P4vNO~%npUFQ9FXҘlRir* J$?IRF*ErVe*IXPT!*E9!{:;)`Tҝui />aB0H1șldBLf(5\ZO N$I2Cp0]<^PU T$ +QSo&7h"i4L#UOs: {\?a0G!=p:c 066)a ~nL>\yTƟ3, +ʦ0 '-Dk$F5O465"eE 8Hpj%&*.TӨ(1> +&y{E +9^٬IθI&9]hBm^]u KY+ǢVwdX'!-'Y00g#YT:Gaf)r +/lV&TƜҘXe\*T%R=PC_7f1&yeVr dia=H>}BR8Ο,$}oɽX{c?&ؾc~RĬvywR@Դ`5GQk׋WI%0PCi4K+MA/@t Cc4b嘆HG;rX/usRغv)XHk}/q ;z8x@Mi3_pz"©G3*ViDhe +B*"r8*Ǣk$T͆U[U}VRS0\$1θلyY&7Vlc<.=c6$z =08WO] Թԩy$&ߓBwp_F;~v[.vB-ӎxJd"%"SB ԩN 5j{q|˿C?N?D_/b"Od +fRg>u p6Q)\s;SU[whWp}+\D ZBӅ9 H^!M?Ө3m&SǎXC56sjnݸX|8%:Uj- @oX ^zXHo2L77Z3X Ȧ +󸮥F5*phf,Nc'Y@*o1zuAS;hvcGbl ^;CQ T6`sQl +n?Jp!! "',Y<8}hHBmcj"G:rĦ lZDB4zT픊51n(T{GUHOic{WT^o}kd4hg7Pih2X8 PbxņiuBT#'Ib9/a2a"axFq-ENcEv:Y=k=ן@|U߶^pĦXcBIXcզQ74QZek!0}$-3-rPe*S,1mU,65*N*$Pf)盅"JCơqs5>}{`%v,iȵ2j/e[&IK-Ŗ兖 y%[a)-%yjťeyޙ{D K] qDpFf`fD +5.Kq-5zXTkĜ4mz5m<96ij4Iۓd1w= |zemA6G#ulI1kLslJFɄU&3-X,VUZMI[a(wcm<+1Vl y+6"SH"?7wg:xuH?6#<MXmE%4X2EZ +S,7{2 +ۼZ[b~^*6o]BeKa?LK^Ze}%s4kahEI٦*t۲mPj+KlbͫqֵRul:lsm/ԬkCzu]˸9Dq-빮l-#QW +eʔ$#JLHY"8Xr]+~)W$/U~Q)ʅpEy'<[!܃Yż1t7|ۊQBRu&T@j:\L5IRԀXݭRYVxO^YՐLܢߗuJ@o/K} J#Pdc:9pHG#KPX&.q5َ,Gjo2;uq.,q3l>P/^0GO4l^\NGV G3 +w><\$丌X]9bCJLWcqҦ6H&gltҥ^եOuo4gH꣰+y|'{X[rzTB^i$1qO➉ŞdyRaX,|!S$.TFO&ͽNkpoRrFIII>KB^ޠgS@-H zdW BVHX+' ; <)XTeʆUVU(ebNL,n{OKqޫ)ڸʐ6'.S8\>84ʕ] \n ~OFo }HYSs >Ź͚پSX[hbBڟ8tf`5 |?` 4HnX< S1?$0o.f0fi8Ycc 1Qu@fύC PD3I&s[1efƌhLoiqڪ3fL ((@Lс<؈ =x*)`|W ~KwQ{s+=o^[6 Q1LLjۢ0m,&MSX<`*30`1FkZن;aX"FԎG=a֐Qe۩BFT'%`^ v>ۣ0} ڣ1}t'i;w,ǠF ؂ h?[?CAzdݛX'$b_f1G Dqrº+RW,] Lz?]  |d8paD8vs 0CK77[7E. ̹3_oI}^3vi=EWGA a:-Dr:0 3G_l]BG>Z{#=`7ԧ__ DQԾI@!j{r aCя =aOpaȞߓ{G{]E Ybj٬5{#|Dc1=GO>g`|C x/y=dO4 rjbE 20*;o!"\>'ug_KH2kDT} ** EZnnhYDQA@B"2bM01rRV&NRV8ff\*5qܢo~T{=缤O~ld!Hu'3enDٍ^ӉYDdd"d3AvtS"oq?xW?" ~ 1 1tKlF3`'5ڨqssg#>mj O9z<&ȿ?eg7N&qdOT@EꬤF5j8s#5P{8g;V!}i_2:2G;C5ķQĝL%_AԌ3sӨCBjF%5jH-_'QB//} Moq~$7 /DÁc 9}r]*|=c\| urQDUԨF-5>V9wd4o鋫˴wi0Z"6;ٙ0eG'\;kBq5JN&gͣp y]U +Dh9YВSG|kwqlCyeÆo$O^17x Ұ,\p9bu,ǙU85|z6S 9G#qGF^Qߠ1] sh!ȓx吻|!+ȍpy~.)DpM1lt-C[ :jtmD6toO$xm}qoc<6WL7OfRߛ70L.Ot%wW􎝆|=^ }`M.Ůk:-ScJ O9Sylv M=D+4xB y4O3 : +]&s6L*gsf2ϴaR4{bW*UY[Q?kP7S+}]s_\uS^})ZO.;v{{bs%}4h1' >VlDoj|P[*BoηUX3P>G\=X6rޏb|Y,yP<\{-]~tS\ `*aRJ=ʔXLAҎ"eBY$,W ˔br+-]--YtI#e?!,CG߈.10vƲ1-Zָ. Uc6C}PUT:(PLy!E_H^X +1cx@k[Hb[fB+:q#1&.헥{Rh2q<3I+s#kvxa>Y=DlvBP&-~,"d%ĞXVjI 5bԴc1ZiCvZ3\o1\r{y{lb>Kz 4&Vq.]#4"!RhX0&>'dӀ~M}̽5G%]3G%>4G%VhdeT>` + 38E<gTJ&;iHbR48%LSh@jT6Q}Ҧ+:mҲ+3m),)tUShShdArCc#˰ Jsz2gکOzguStV_ٱ +ώS +˙МSPE9kS+c͹,2L/RXݲ|އB}0 f8*]A +, V@a Zƨe|,3mIU7"ue<-\GacFgWA+%r:!-;klql}Q3dcMW2UP +#[yL@^RE7_W?7Hq؃R)`+5okTg/S |!adg,@PՑXuw\ xº2s/)kS +܍>iޖloaHa1~R=Ci}_CP o,^Ç<OXI-A GhFoz<^ÒsdwT2GvNI8Eag0?:Ǚg +hrM@-H| -/:'֣?<ŕldllj֟%hMFg&9GEq\#dG(+t|+e`؛=vEHrsh@:st4CjQNFi-9c֋]DNg:ЙCGaoA:N:K(gJm5b>i-mP՝ U|ǴUl';cWC(NzM=~WO2|u{7W ?w1ԄZY?T}40VEq*  zM f*7h+;8WYEYy!GsC+-)%)a_ڸŵ7+x(0fl#Yik͊P- %,@=# ^+eOiJWZxR#2Q>_ +h- ZE%Hy!@$ $BТmN!Zҭ͵{3nu;֞vNZ!~>Ͻ`͊O= S&',V iw$uLs0^5K>[R)G{Z +6g-=Xaڌ +pŸQ ?|mX +o^:"YDX\f!U<ຒX`d?|lΞH)EkӰ:;9:rLh)GCN9u]Q-\ʰQjIY̡TP/*IT80Tf?گ>8b팣E5yhV-O j Q`e<y [v&*w _4#2]Y&H4cO79rZM;렂Ʊ _39j&c6.N:tpQæ_/'EYQZ' ̆wd%["G+ ?Xu ;i& }60(Ӱ9lT4 +a+,ƕ(5`1h(.z^ɊLC2iTVh#HEc[LyB~'Z$[s8ܦIpf +bLa5eXX0QRBq*[`4(0zOd:yc/"ɴfIJG=L+s3Y&Pa0JR si:K0PTf̊ʽЗ?]yX}"z\loTBe(me-rA/{"z`-]c,Mb{,KQhO|+UA[YJ*WC][:l1pYUD+~g9 ۀ}M.G}\fN*KqC0TGB_]"hj!&y5*P9P:+ZlW3 tu WH=*gDjUO!wIBFs/QwZǀ'Ɇ5y0(Ȑ_{8CAGL V;V߈Vx2oR/#{Z$y HDGqKU(=C$ s[*e^ Oo*2}QHGZ"țRڔM*,o6`YUHj"ѿK['?m$4CB$!s;ڹ'Zg[#cR3 Hi@R$bi,i]G[Xܪ ;u Fl 11man% ¼"EB̺1q}~ux@s `3]9 ;v#%L-[Jpmcr60%&^JI$"|HL8x˥^ȩI @@ \*""^b2T@W=j>gmt]36v[NvݦsT|?D~;K NH#H3i#ϑm%1|I1G,Cy|G3y~g_2)ѐ,O"ƯgFCldbOajWL#>[_0o69aOƒ #5 &$dP/:jTι_72~w1N.~vp:kߤ0ڍ>$%qαRgrragaoj^ԓ24jZ}\ q>)tvpgp//^_ğYopjG708=]O͙xԓ3I<87+]Jjbf@FRcn)C\vV{k4Wy? C~9wyD)B8%3/ DQU^jM]c:ut='ye&I-`SGch"x^Qy1H}^Y:9?"56qj66LubTZGKB<kW)hVub]X1eG;Kf ?6I:E1g ~s7ڧmFeV +5f4`Up>V.X6!QҌ%!X50<_EugxG|Lw +d*g> Iǚl)X>#"BTGP\,SEsajTϭCFTmCyTG@Y̋ Qo +O}؂ձ!|u iKd煕Q~X=u1cQl2jPkDe qN̏,Q⟠Hn (D +•>.SL >{Hh%kS'F$ $Ơ\*C4 z$d(OB܉(L\|2dp:F87`O9Ia0x'29gIigk譞>'B>e`H![BIFlp&9H*F^r%K))w"KyUȢ(S`n:ظv``볎>VG-}+Ǣ$t(#R#O +J٪\Rݰ#+F¤QsDyUd _Ads6x:ْ>(}T"O +:X5)hĄLm6KaLAn6tۑ? HcNAF?V'.w/Zd=F.V}0,9ԋa+`ԧ!Ð +}Bk\q=LH5|Q4@A4 " F'Aj?xK1#MQ2gLdL3a Yt +ZL ԙyH!RU2d"9k^>d{|~y0Bc{?wp$(^ J5ři h!Pۢf"Ֆ UlRHqCSyRHoԾsGBl$va3#{/u+9Tq/𹼜<\z1:EPyCYH΋D# +rGd $:m:!qAEk-b]g|A#% 9i?wQ{">9*VK!G%=B$A ;y @TQ `NQ#"7#xŠO!m9B!H@+9Κ~/;9_ +4s]QQXWeueߑE=-fQ(̸ `T 0q8QU bզAlVMM`L6{bCRc4how{ xmcb-fJM`PW`ŘՔhSE(4\ldZR[_yE`oجloCkiYΧ6B}3UXO|)uF(6VvЫ +dά<Ȇ3D$ͭlJabWS2mzAWڄf_0'xni]' )vba'luPC!d|R[Yp156v)40wIwvjQ:jXG .@Z.Z}-Kbna14,ttN_tb\KK34@ o/uahj!j6pENc$\bq'-%r?= kgY,zA&Z@q.IX4iÁ=9]lix3o'3#MF{- ~FK.wuNĐv>Q@$M1p2 u1(}\4׸7qț|m‘3}ldIƿ>_{[4Ү)yWP(]%| [6]?>FC#c61qF./l~ `0)`(bJzآ~d|isY;}/\pedZ AwH0Ŵ}k1˰_}- :55u]|gu N|OCx̹7T} c ضa{.0.S0I v͏C8 Zנ"ZIJa/`߈"ih~1/Ƕ \M?Ч<~b*-a8k7刦NƠABc")}gcfcߪ^N*ȎSD2P-T+nKK_ϡ1L4ʓIg#?EhXrc;YvO^Ö}51%;JUhi#:cFg1v՜\; keҧ.]:6k 8qW:Dy{+ePvw9] ƧimZqGiV9hsV8s\ +eJ]*TNuA2_T=z6k\FXᷔaw͆SUnZ=̣U9R%3EiI *4,\JhX|~C9>5fSvVfspN_FъpuQ7N :sh@ h;3bʹvK| ]9ʎ UVd21fF ֌=Vi)=MSf)kRb5)\c7+9Zh|qݚy};`sآ#;EXojz\kj|MV*%~&unS5Qr5.at_7W=hTbF&6jdѳm/uT@T@S2 0 ]`H䲨1 `y ^K$Zf*hY)=Zֶɶv:k%ִܓ?>y}}˚ƎL}%q4bb\9\0 -_EUG$+7ª\eGڔYQ5ʌ5EJTjl,5?NܛEra #NJ + q-z +)?zrX͎1*#&U,*-ήԸjYR)JNإ2%Șx~)S'FNm[q88GE9^2LTaJ3D)Ր KB JI,Pr\%ͪiV'4˸Q2ː.;?^b911AaaV٦0QG%#dɔ$cRf%*1D ɏȐRfřE[*| w)<@75؇~gא2jSHdd8̓d4*yS~NC@SKoޖt/*zXlȤ,bI&XP,cR4QE +*(M+NTV) +M-Ճ%4CJɧ䔼K>yC6&35‹JzYQ΅Zz-X҉oya+>J+)5I0=hD{&3SV$_VqOjlyʳ<˳:8e ,\~Zʹ4\SHl2y1!P&JOոJ? HyU%ʳ*UcQe{"n[FVKիUF.wZVmhȠF΅ǩzr@LI1Z(7T:B(GFe遺 : ;лX_mQg?ߎI~%g#=Rb|J cʥUÛйM\\k1>$mIgiໝSQ;vMG'$]0P`C@uQN w+ +}|7[ًO +FwJ]#y‘PRa#> eԥ8 t4v71qzjiW|?-/҃ +܏WO1xNA^SIAN$'gR,Yhmy׵u/`ͅ35b%Ұ>Z ҅\Opn!p8>c"5ec,ýKKf+ų`ߐoO!|z-Kp\uCѫ 7RnWosܦHv;; PeP hfh(MEyEևb7:󺮢gKp>5HCax$q`\,?Yu !yaMZ`{!`{9)E h̏Qh;:.iofp^'Ѻ7/}J3G~1`9U~ YKm@k6Ӣ?ڵzGOѺѩlS$8AQn<r_ w_pYX;|r"𓈏4-"el +ֱc X:V;؎t^*ׅ5h 9$ V,a߆};plՐZ| -]ɳ|kyF;lݘ؀m@an_L b -M&kk^5SWUv6ҤjTiViӤݴnUNC}>}}.Wy%z"Y/_{Ob> +ۻ3>wiJ>EOOUE79𓣛}!\+q~F6e;K 0"WҽMyޑ`HRsxx/Yڱ8]c~9Xze TtOҢQB|c29wxz8-RLSγhqyi'Ooi=lff1s c`4!F?јop4Vc:Wy,=|`oŔ>1 D`1*u`6ƎjLza"ΏnhF0pC LÒ{_CI"%M{MlbdK II%LTc,QcI%:0,APڀ!i H;0 EldcdsI^EwUtmDG{+3wLYfV 37C;1"##) /ՆCГք6tw`z?:GϘ2іyYwz ^ω?9B x6`uKlfiq'L) (R‚@v9NgѦUGޜ!4LE4?-xo s@Ïy uQD\, Nݿ{xmtMc[:oCxhdj2q@FV Z' +ܨ-ZKg1TΡRav+(7~@N<_&-7p%~X Rud h,LGz}jTpp2Ԣ؄ +c;E즣(3@y6uX-/>K%"Y=r`wps:T:&9&*Mp a7Qn.CŅRKlm$iXga]GQ"}opKcm*q-$ RG7u2VP֊&E&.wm  li&IX9㡭BS5uv۠T!ӆ^(Fp +Ho"!R䳈=%.p$[;xuwIE덂99r(ݬ«CׂL:|Hu!7 yI$lBr ҖHlI-_Y̷۴?77s, ijڥZ Qn Y8H!ůܟd2pAф;! !3 OqF_|g|AfY㼓#VA}FK=J} io{eD$ + B + +D !L`0!J{e7#bɽ6ɼ0Xa,L|qzJ] PSSm$;8D'!b8 +-,FI> d0 1y7ȹf{5"Iq[\9 N98|_%~ / .) ._\Z!,8 ]u'0B(5wN FO3朜>dPg\Ҥ}jCtrt\\ȯkK8D??8{=<<wrx\O &5y vh}q- t=! P Fj0ؔf/TdV [=v]Ku_}K7펝ץc+ XASZQvg+tB-l7?ckncgX>Ntho+|+{n* ^k踂?t\B{lum29wtt"w71pyG\Vx塿ۏa +]x: k %^i optDoq>!;p(cv;i w|-88,~>^rlWaد@Z=ZAXf8Z_m&:-D`kwp~ >szK?"'f)X~vcN^F[4Eт&tl2!'*,42"^q6Q{rר_\1a#bP Gcᨆc2pӜ.E(>;Fvf|¤n 3a#<H#8 +-F"t)rkKwմZ)eZTmjKU}*{lVEσF]W=x2undy>уnOun5W&h{j3T힫qCU1Bc=U9^= y.RJxh~Km**qtS>TgYB*ݨ|V {Sy+0w^s6|;:rT +?Oj_J#5ߤb*ꛪa}sTw+?\Co50hv++2*3䞲B#u jv}L$7TA* 2 (F588CB)7P9!_) t21RJq%ڕP +xwۜC^_IqD7g C"De(#<[JԈ +DNRRl٣Zw}L֘Kp(щCp`<9k6d>FBr<̨~J2(-*F)QJ+):C ׀r%j"ǭٴ]&gzWq2}61dZʧyo":*1CБTCd3F*'k\T%b.TLje΁kJJ%QC|`jK0~a||}XzfXd/,`0oJfJj_5 TE +WQ%+@3T.¤Vބ;@_Kڕ|VKH F7D`aLr_hvȣ<ȣ<iFF6wh es-**12eXI3b3Ism2Q"@zcn^NVN$)I&O/\T ypײ ~ h +x Nw 8 ^o7h:9ϚQL3xm\|pZ+>V4X9np 9 +%pb]79E|Fk.=tqߣp_ ~ @z! 8d +%8b&qO, 7G;[s}F7}#8>oDX׏xobE.!}F'W\G8?#} +y 7{//x8xB/?xxd!]ʥ?8 +Jqq`2ϓ9cʚv鷈uXi<^^G~_['228}@-1/i z]@"b#v91::f)d̲%8 )=`A}`7x#vL*%x[fEA>Nlb=Ӊe2į~xVav];aA-63ڧamFnf:iyZG1cW6!~>gbE,C %F3QVXn8ױwl=>t 3mIB6wh=X)p1b8{V e5YЕ(އq#%Y/>`ݍ.F($ p< +G + 68jȣZӴ<G UJ\ #J7á{6h^b{?v[!{8v +!J$D @2-Dʂ xPW`k,@9GY?[ԟ0G^m8rК.5~a_\0A O:YT W*N.gd m$VM{Mn+rޓ+}GXo|/DA]U9fy;kfTW5-hr,lSNCݚ;d\%X mh#aǕ~Iww[~8:ZڲE7*HFyb=41\ T3f(8NYɲGNWfd2"+Y&YMj:.,/>R+цhkknтҖQ|k9T(ƛm,S/My2̣d3[n\F)%fĬШW#^wh 8ӂ%mhY y>̠NSikTF.+_l# 0 3ΰl +(0.D4Dwq;hc9&٬i&VLlkXSi&=iZcܲUt=}kPqQE! 0ԩ,+7lFSNx1WUJ3nUK)rF7r+%.^nrn-d߂Y?=N#_<&0ҧzs+&OQA1#RVg&),3]Y +*հI2dPp<(0C9?(8/<39AM֪lTi&Sy?;pMgq$*rkPHnȐP`~˿̖qHA>+#C *B ܼg9G0s%\*(EYX'btTP%b_qq-OI,WWҍ1 %gحNՠ:iV4x i|U<}/!㤀A+ Р2|ˌ)h`yr\rYX +0嘵rCƠSW.jB豉4/Ɩd%ӛ BM +0wE=\.BD."c'1!Mdb61;-s8KpG`O+yɇK*a@ȡ3$x \ \5\t5\@5д!`u+-M_M;"88Lum6{&P\ U jbibh[6ҋP@/DG=lyC2D-\X:` +XX G} 35ã9p5XᲈXĢ.$ml||<[\ +nm 5ʡ]ֱ@!H]/Y@ & +VxҏVx£%RZq.|j&UL+q4+ZOX9HfF$|6K[w+(݋ < d۹xvzю(8r965]@:r;zgAK2>Ab{婋t} A===uh $߽V3u"o%9KɓFbvI9V#= u̐ǜc@E?eb(Ea.^zCU>_Z>QA\%!Կ_p55AGy1~ [/ g?>q&8Ǣ%Yzq]9@"g 57<Ǽ=f/΀w9Q|P5Xr*.S 8yP  q-M\׸p@E~_).: x~B>G"QUmpA0ҷx̯5c=U K+<.$;?1?R>@k?eέx +^?ni 53|5ezqA#_L +^.{8 3w𗿂8#=C=:n$2y?t,Y?8VrEr?أ8G:rXD^]M2m~A馲.= ݠ&救GZq+YȑLLV8DDRKX%_"6cvv'iP6Դl_+u:~G-rE.9ϢB1į DWc Ğ2 YNy: ߰Z_j%yWx=19v-{E'{Cf$Ilq1 BjrԑdkL76`0`n&&`CbH'@B(HB[Fi.K@%Ye (mfi6AZN]5mӺ}m6MӦM۪}ؤjڥ4G.S =z?y99『w f 8$7el{W('ߡܿ$xqÖ8 1Ua#f<ߦg3q;cX5#Df= MSw)h5졅p$v1iL.x +8K)gYBDim` $]v>NK<n'2LY%u )tY='e*\v/q~J M5+ɢmIښQ{rڒ˵9%M)aES՜USj61m"Z~D XR(j ?R/1~ +b:m:r"8+GS IږVQQU6`(VBZ7֫޸Qu6Mݪ5Ri3)yNU +VUX>T3SKH'bCطEȓ&K"L3TgU\Z_5ZjUm(hک_Qgͪ,mUb{Sg;>S#{Lo&Yg{(C$;I!Qk,ekͭ*[*m媰W^2GJ[SI39OQsWޜw6 %33IcuKZ~vlF9{IW3SNʜ.*8'"WH>涩 Gyv?ʬQ5` Q)-[J&RVj0vƟ^Dw;X҃][K> 'dMSfI,kr@ ʨVz(PRB=J +)1N0uR;HfbM ~f/w_ዾKax e"'q!a$|:xĞqbMG#a{i{sp mx AY2`͐ѐb: }0q8k]A(nbL4n"LvLavL"&i0bK4A<&?åC){1ǎJw ցJ9>c;cܘɋ9.?7FҳB_Hx| +:;_ U:G;0\|Hv,bb,R(2 $y{8G^~;?oسEi㗩WH*_%p p Ǎ' 67%X,e +2X&8ҫ>_{Ŵna"r܄*_a |n]M>gVcB~PW +Iʊt9c/ggTW6\ۏ_ݛ¸oo=^I/G!R6\{tƟ6%inmzK4IIKKEZ.E\1AAȠ ás)`e2q2&sӝYiOs~/<Yz,GG>ۇ;h +{mf5*c?,ks51#ꋚ b԰>_8?@}^Gnx7u6v̀/b@2(CAw6ڦq-gҿu7g8?R<7{{BGeER?.jK?wvT=:uч踂89,C%tz gz@{཮kz _>/߈M_p귪һܷtɜGG8qyqa6WqR6K'Hz0v]_p|ܟ>ݛ,::)tGsc88#8Zܬ}d/ _R@m!B#_y \b3e'"֯MzGek=:Bt5JR=pt±nѽ(\Sݰt*O.r?b̘C"f'Q~mmIG<4vPAo ɠy#ynsmEo + 8,OUB$P]*,Od_ 2\G{?vX-s^tSsd+\x +)c:h_P +~/k$?fOyF>OqmrѺ!.sSc>;\䱧"p᪇pMdptvZf^w@dG\ȝ +-a4uAL&cjHָA9ʂ͞*P}LHuª4Z59_'`K0\RE-U$Fp+mw_ղqlI&&cqjHNQ8:CjU`b+4$JUI +$5ȗ4VH%oUqOxBwU`BSDEOƮGm%#P1i(bPɨ!Ft94y4T*Rjܤbs +*HW5r[)\ʱ\zD $#F#ϯw泥8!7#kȍߚ +YJ-*RBK +UX):Jn[rm3/T}RcxGi3-»[1nŌsJnFS'R*U`cO۞<{r%r9|I );AY㕙>MNgҝ+*{^2^5MlkH=Sl-~@ Fy24+iSө̌\P +93*=+4L={l]< K7#L_O̔zvx75RxeXՅ|vꤖz P#6(e3Ǣ49\#L*Yek.{LddHO*sLIs#>|o #c`;3 mcHrSCn|Ĥ* Y|vY +ke,K)EmJ.+x U\Qy|;rȻ chiCG3#t27^RL%VJe,u) % VRYH 2*ۡXxK^n"/˴2K-pg]9]m jF_-CF2֓b$&@>*-JLx_b}^ SH~gCcc ~cUEp>4q*=NsaXFh11+)`bA MhPi`0MA C?Vj)x6{LzӐأVBV7q7 $K%l\xa0t\x ǸcBHuhcC걓zCON0yy@0"dF\1RkRivHMdM4pġӄ&45GoLLk.Khhh k\ni)![ 9<h#;?;: 6+Xy#tp 30hs1 ; 9tG7&4nrхU]Gy,AUEpܳ:^J<a<2h6ƺ gGI'M/uE賏FG.Y'ṿ; 1pa0p{Lߐ {%W@Ca!WқO c *r1@_RqpfLtLRl`ut^o$6hVӐq -8.sfp>rFqخR+_W.0Y āt0Rοgjs;pH}A#GGs"^@ aG>|Tp!X4T |pƲ~kg88K8G<N]zS'u/ >z:=E;N*ңn<7U#` :._ORܠԍp/h=k!G!^7YJgz\hDt*bn 6^ 489x,؋h2GM>:p6Nv4#ԥY EfUR0we mXu8# teDt2!Ue/Z"\B.j(fmV]O{ jȭ7\~t \χc9)2xYŮC-Z@泳R\ ,F}9(48ĵ5xW:EiU5YJϨ.&j$ +n1 BxS(fYjC(i>'{ogG;k}+l$n9C5rxxK;\p%'/\p k4\5hr#{#PN. +idgqedY1@3zMaL$?r2C&X5>ȡ1A.%jTPFgiD a!w+'tCV:7)5C)O( 1|!OwDt.Xm)1PANO!ǁ紆*dT^Ur .eGxGRZySbdSd{< =ZQ1]!2YQ,jLN\r,rNi 9~LSeLȄ*W*,qB=9  +NUHO]pwL,Xߕ|VLl)f9#'CNPEyLxl2{2yeLJUD0(-U3Ui0v|:ɮL1v +ͥB+tr)D]᥊y +ݸ~0)\*ָɽû{Xfmհ2V|ߵ=růĔTMT۩jEZWj^vqq*B˄ΆKZ[µo5c[_U`8,G bK^2ٓ:hh5i|1/jZVXA>ך_,N7Ѧ _\[=_iu`xD@yy_2%ʹx>r؏{Թr`jf>+Te$9 `cU: I ~%ٱ/袁/h _s)qqlK3[j ML_>7\;ֲc4QkTT((kx[w +ሕKk4U@{.J1P╢4 ŗqE`ƎUn\ɼEi]l'${.yǵ1Ja} !Ϛ:mfG3m4I3]4E35q^'$;i츎[u r@ +1T<ȸѹm a-߉MKvǀz(j-|BL9~3p.Q3 xԭGn߶dN;|ܛ}6'Ѷ$3'qR<%&4S|qJ~DzR>ދx/9f |ʸ'yj= kâٱ ]0!,ڣp~ӳq0rN<Qٗc;ޥ`|<\^\e>PF<?WOcq|xiorM_a{ u| =&RK忚6W$dv}*1?X߶i{#_\Y3Nmc} 6>|d)];__/9Գ +3%OlOI' 3d,mB=E;bW8{; +,g_^U*IltBtl x( $/g :{'iv6l`gv;8hûCQO)͠s'I=. \x)9)#+yJ9ۉxs'5ۆ Tx>)3tSI/ WB)t~-vk~ƻFvNZMsEp]z>Dk;ddI8,ybi|ENbWVf{crVրco5(Xe1/sSG j+GYvꎣ7b%8pTȊ*J3LJY–ٲ_h9 +ukTz.?.7i<%oD,!`R8\)`. .jȥHB@H1%폎@TXb/&f:.cK4#1wsb=8|LfҖxxCCxt $2N(mt 5&j0T?CpmG2aEh9K(U/0q&{@AkX = =Y&zfͺ uЭ>HV^iPfPwމЋlxH9,4ٲ5f` ,x808!qM٠)]I l"10BTI##P$Ccba܍2Sc5#&F&G;Τ-gҖH#D >[3F5b( Ab${izз9&l^}p"F;b2!{asE +D&x#8j$,byb!p,dLY]ّ!1CHlp\q .U%NLH-Rdch +^@D3Hvgxq|Dp*жhcHu}67jʌ +?R#3I3< PS,> ؞Eq\=-R'6;9IAzɆٜI6|XdA,@W־+Y?[ړC iBF-(ӊ -A[(oq@j ȡ^s8j$,AE$h~?Xhڊ>ǁ-•a0|!St+R)5D@*zmahCFnlV7qm͐pnyQњ+{O#Ok R>5y]Nbs0 ;P^84~EJcil)%dtUY#Wq€rFtGz](9dj_8`]భKJ7HKwsؗ1TT..(rۮѵ}4f>z{ϟࣵLAϻsƌzfzkfL(քC ~h?j}CJ3E%/c_TVJ*pT_xEy\_^Hڨ;Wi YA"ҭ[l!Iv^يR9$Vd2nqy>=/<y;s+Nw $ ӟmWy0\*c<0gלuN@B! +G[Yu?R|^rrH/坑,~$K]Kn`l=Z5[7q|gUnr"~F8ߛ-cY đ\ೖ-K1Es)`[>zyH]PF(볫ܤ;dqFV Lk-zPߔJK{wWy~P'C8d,ߴ. :J@7 dzqF@` V" 6X ##  ZeWŔԃN~a~qfu#E".lйy.?Xϊ ;m HK=`(tu4G!gn_:^!B@zhCLZ8l$@ ++ @ e!OAx C8~ⷎNs]=/I֣3ѡM*{q6ljK~!}9Ym!!_7Hlް(Qppj`0GXs,D`+/xGF@ҚSШ +s=t##URuMT?|zq+[:sMnִ䂹33o\P7.B *OEtO1o,N4GO\ٞ~pc݌)GR0XQAl(f4 M)h@<׹L"]NJYsr,'%hݹv + ݆/U)|JnPW +x kFEQ`0|=t[ 1x}fpc3A&ŽpJ ~ 7%1,۰PRND,^HU0uf>7웻ñ]zQZVq6 S d`0XA#GVJ[(9 +RWvHo^0x3 bx +p`+gQ(^1ױ>9ږ騬*^x#qb ,Y2aHwcVMOb/f=-ȁ/} - `=瀾}k) +4`" C!)p3:mu@XoQv ngn3w:s+*qBV- M$NreO{}v R` 83JyMO4)XZGyQj{DM {_πY ̸Ӻ|)weUefᨈ.A]]dciI~\w<8/t Pg+e >*7E`S# 3\GHpχHn aKS[K 5uk;mɶcVރ iEHD_+߾U\'9GVXJ¬9M<~̨փI+qijL9%A0pcF"((`77Q#'q h[:-H,n#*Z_YXO +=Vy!pLYzY*K;x2}{"w7er"Iw:GSy\V[<6'Rչn%:溬'5mDtbZL\&$ +ܾ~vן{}߻<%E&gINDHJ"NƄdD] Q!c@ +d *>7 8PW% \ h`3^l:93cM|;egA :܂8XJ[7XI|0|N7w[{EkvcJȬi%J-Q#u|FBѵ<~ԠVTw|_JvV{J,͓ɯ)l/` R|Vxfm 96pL1c3Y0ߜ,/NP[@Qt+eKTe9ۏ-p +Ȯ|BpW$ %IHO޿y:~0?_(gD,rE}KcШ+)J_*=I,?!4l=Å[Pծ=Ğ [ }g OZO$o!xL=5dbBC) Oմ>RIr\r"#;@V2[kclzi5a#*Xm?;62.#:ĉ֙Li_8L+ endstream endobj 789 0 obj <> endobj 804 0 obj <> endobj 805 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.0 %%For: (Leif Shackelford) () %%Title: (logo2.ai) %%CreationDate: 6/18/17 11:18 PM %%Canvassize: 16383 %%BoundingBox: -2 -377 602 -223 %%HiResBoundingBox: -1.5 -376.5 601.5 -223.5 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -375 600 -225 %AI3_TemplateBox: 300.5 -300.5 300.5 -300.5 %AI3_TileBox: -78 -588 656 -12 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 3 %AI9_OpenToView: -25.5 -67.5 2 1835 931 18 0 0 43 135 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 727 %%PageOrigin:-6 -696 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 806 0 obj <>stream +%%BoundingBox: -2 -377 602 -223 %%HiResBoundingBox: -1.5 -376.5 601.5 -223.5 %AI7_Thumbnail: 128 32 8 %%BeginData: 9754 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %272720272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %2727202727272027272720F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727F8272727F8272727F827 %2727F8272727F8272727F8272727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F8272727F8272727F8272727F8272727F827 %2727F8272727F8272727F8272727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F8272727F8272727F8272727F82727F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8272720272727212727524B272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %272720272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %27272027272720272727202727F827F827F82727996F999351F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F8FD0427F827279A4B2727 %766F272727F8272727F8272727F8272727F8272727F8272727F8272727F8 %5253774C522727F8272727F8272727F8272727F8272727F8272727F82727 %27F8272727F8272727F8272727F8272727F8272727F8272727F8272727F8 %272727F8272727F8272727F8272727F8272727F8272727F8272727F8F827 %F827F84B6F27F827F8932027F827F827F827F827F82727522727F827F827 %F827F827F827F8274C52F84C4C4CF827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F8FD04272027279A272727769327272720272727202727272E58 %52582E272727202727272027275252532727207752272027272720272727 %202727272027272776522727202727272027272720272727202727272027 %272720272727202727272027272720272727205252272027272720272727 %20272727202727272027272720F827F827F8274B934B9A934BF827F827F8 %27F827F8272D58F827F8342D522D522D582E582D582D534C27F8274C52F8 %27F827F827F827F827F827F827F827F8A05127F827F827F827F827F827F8 %2E2E52F827F827F827F827F8522E27F827F827F827F827F827F8272D34F8 %27F827F827F827F827F827F827F827F827F827F82727F8272727F8272776 %93762727F8272727F8272727F8582E27202752342E58525227522727F827 %27774C525277FD0427F8769327F8272727F8272727F8272727F8272727F8 %272727F82727272D123427F8272727F827272733122727F8272727F82727 %27F827275834272727F8272727F8272727F8272727F8272727F82727F827 %F827F827F827F8516F27F827F827F827F827F8275158F827F834332DF827 %F827F827F827F82727524C532727F827F8274B93F827F827F827F827F827 %F827F827F827F827F827F827F827F85211122727F827F827F82727121127 %F827F827F827F827F827F8272D34F827F827F827F827F827F827F827F827 %F827F827F827272027272720FD04279A27272027272720272752A0A05858 %2E3452523458522720FD04274C272720272727202727274B9A93764B2727 %522727517C2727525120FD0427767652202727272D585858202727272027 %275834342727212727522E52272720272758342727272052522720272752 %2E52272720272727202727F827F827F827F827F8276F76F827F827F827F8 %7CA052F82727522727F827275833582727282F28532727F827F827F82727 %9993B59399272776A051A0A051F8C85227F82751C29FA0A0A0F827F85233 %2E112DF827F827F8521152112DF827273433342D342D27F8272E34F827F8 %271158F827F85811342D342D27F827F827F8FD0427F8272727F82727766F %272727F82752C276272727F8272727F8272727F8272E582E532727285327 %27F8272727F827277693272727F87CC17CF8272727A07C27274BC85227F8 %27A0A0F8272E34F8583427F827272734582734272727342EFD0427182D27 %F8583427F8521258F827275834FD0427182D27F8272727F8F827F827F827 %F827F82727BB7576F8519FA02727F827F827F827F827F827F827F827F82F %2727F8272852F827F827F827F8274B93F827F82775C2F827F827F8C25127 %F8A07527F827F8279F4BF852112727342727F827271227271127F8272D27 %F827F8272D58F8272D34F8271158F827F8521127F827F8272D58F827F827 %F8FD042720272727202727C252527CC8A052272720272727202727272027 %272720272727285327272053282720272727202727769327272720A0A027 %20272727A07C2727C1A05276527C52C852272E3427273458202727583427 %2734FD042720272752275852272058345234582727202752342E5252522D %5834272027272720F827F827F827F827F8A05127F8277C52F827F827F827 %F827F827F827F827F827F827F8272853282F2827F827F827F827F8274B93 %F827F82776A0F827F82720C2512727C27CA07CA076A07C51F8521127F852 %1127F8271152F8521127F827275833582E581158F8272D1211122727F827 %F85811582D582E582D52F827F827F82727F8272727F82727277C762727F8 %A07627F8272727F8272727F8272727F8272727F827272728532827F82727 %27F8272727F8769327F82727A0A0272727F827A076F852C227F8272727F8 %2727272D342727F83452272E582727273A2727273A5227F82727582E2727 %5834273434202727272E582727F8272727F8272727F82727F827F827F827 %F827F8529F51F8529FA07C52F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8274B93F827F82776A0F827F827F8C25127 %F8C25127F827F827F827F8521127F8272D34F8342727F82D1127F8582D27 %F827F8273352F8272D34F8273334F827F8521127F827F827F827F827F827 %F8272720272727202727272076A0A0A05227527CC27C522027277C7C7C27 %27202727272027272720272727202727272027272720769327202727A0A0 %2727272027A076202776C8FD0427205227272D3A27272027345834FD0427 %3A27272E582727202752122E2727583427272734582727273A5227202727 %52FD0427202727F827F827F827F827F827F8272727F827F827F876A0A051 %A07C527CA6F827F827F827F827F827F827F827F827F827F827F82727B06F %75202776A0F827F827F8C85227F82776C2757676C27627F8521127F827F8 %521152F827F82E112DF82711582D522D583358F8272E34F827F8271158F8 %2727342E522D581152F827F827F8FD0427F8272727F8272727F8272727F8 %272727F82727C87C2727277C7C2727F8272727F8272727F8272727F82727 %27F8FD04279A6F27F8767627F827272776522727F82751A0A0A05227F827 %2758FD0527582727F8272758FD04272E583452F8525227F8525227F82727 %2D2E522727275834582E272727F8272727F8F827F827F827F827F827F827 %F827F827F827F827F8277652F827F87C5127F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F8FD04272027 %27272027272720272727202727272027277CA0272752A652272720272727 %202727272027272720272727202727272027272720272727202727272027 %272720272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %272720F827F827F827F827F827F827F827F827F827F827F827F87C9FA0A0 %52F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F8272727F8272727F8272727F8272727F827 %2727F8FD0727F8272727F8272727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F8272727F8272727F8272727F8272727F827 %2727F8272727F8272727F8272727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F82727F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727202727272027 %272720272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %272720272727202727272027272720272727202727272027272720272727 %202727272027272720272727202727272027272720272727202727272027 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F8277D537D527D537D527D537D527D537D527D537D527D %537D527D537D527D537D527D537D527D537D527D537D527D537D527D537D %527D537D527D537D527D537D527D537D527D537D527D537D527D537D527D %537D527D537D527D537D527D537D527D537D527D537D527D537D527D537D %527D537D527D537D527D537D527D537D52FD7FFFFF %%EndData endstream endobj 807 0 obj <>stream +c7zMt!_22kWYvEG/ƹMm!t TcmB˫77'uT.Ȁ81+JHZZECWi4,դƾQYoq=KfqhF#vF60]bm2%3JŻ'Vł)Dq/ңf9#yD1Cb..djQB42cbP/$=/#J+ iQ2墄~-JiŷcJ}޽3@\CBF=pAjm?+v_2HB*¯M/Qy] =*+L h5nSӞ ~>gU8yEl^,]k/YPd㝹*1T314(,0GGk>BʫCI4ݣf/ń⇘o ހ$ |a[Etbzyx vyU wtN [hmW~@yZ੝vWTn={ݙ]ߊboTRb\b %In.P[{k@)4r+Wcr'Gs_lgqo6'M%nZgӶa*=+Gߏ[÷.[/)RMf-we m\/YoGyr'|VJq{ !nzv97-/LRVM V9[):K]g\H/]KyYR|/{{y|ΏO>(ywl6t9UΧd$ nm[Br:{z},{jV4U6To>ü.f\x6=%YOkG>p/Mťn;GȘ;UJevZѕoWa+i.ڝZx3}n';1t𸘿HϝWvgԿOnWѲ4!Ns=M:7UqY)?8.YNӏ{Zm}zXOJiG{(;[8֦sZ\ j̰b<:Tk1j`F PWZL4Նer\0D4iu<@j=rrP+r|?IƦ7 qjYwF;+mxpXJ1fn +;6뵝$bz]mӑ&%3UǷJ c\6NMew٢O__vS. +:O7.yu,uVh Rt]sƑ[v)" +Z+6**fǏVC;;Օ,9wS*BOGsp-G؟~__6bXT>.7z=ߕ&$ʈY*(>^hg4:'S+dRFZ} ֙h +ec~{"刳p l+BAlA&{a7v_6_ܿDm&ZTgQKJks쾩cqusFz:,OO +Kex ڳ~aߟ2,,S;6LힾO1_V JT'lszıys2,Y{}^?c@|}}eP%,G4x9w +8'NŹ`>[ˬ͜@M]\qn6>6oU[N8+o$wA*`  ΆTDGr{eNL]|o m }3_ܝyt>/]vځnsTYud,Td2Q<x48".Qa`׻fgᕲodSr~f ܈^y4vzRSJo+}Id4j!Myyժ}UD 9(Goee~ri-eNgP=OǵπL?IãR>0M3cӽu%Xe{nUrD _nIPMV4c͖>K6l(d,VݹHI{(TZmK'.Sv>!3 SОW(#wxucC~I.^N..L~u6鴥›nEV7Wlh~Mž $0'ap3f?8q>+c6R.]6wV&Iiڤm?/6Do-7zZ#!tnel6_3_N0r';0-~":C54) S/llx61Ae< Cc +ФDMkLН2 +$6c~֔fAhĹbLDfuؿKZRhYϸIWhNwT58KChO*t}&T^}}m.mdI),Z;o{xY\s=I 5,5sZsQ}z.ܪ/_;p@9\a6qp,'O/=WV^,\&;⡌M4z[ 5Vdhj?ɝ'FAImjT*-["H{zKʸ৲s6T*yt/ @-cz.U^ʹOTƝbeM +s-[mWr՗aeg4h<U +fʣeK,%j\iojt< +c3a3 źܥ&R֋eNEAi .3#*wi2~<]9y~1PU/]VSox0=NFW4yYf\]J +k-)=*b]:{mC\PUF}}s "QD05w3~<0{:(`԰,T|dvL*W2an3 7 S7(}FBྟ5sy]o*dq< <=g!tK?sv%(C +^4k{")]@j#,0sl)ڸrz4 "cqm~ *Cg!:t "oj6 3"+nSo̶|Qe^-sfOȋRX kL>rRyQ QeQ* ?0~Qx(!,AksbMН]U*~-튟 2\ ?SjE pTmm_5j;;-g3>o[&~SxU2o^~p /)GL8/G?0D8f>@9W=~9 q<~o(w[@Q e@LI dZ ɥWx@] +.FqL;i+; ?x\l #jm#<߲p~x *zoG\^߱3V Vď_7j,*D 89q0dh'z j xD>78GT O#^+ϛzO Ě+'{ "~e8k_/j/ƯZ,ů:moݷqW|T={Rӱ#櫑h+m loqnX ߻m˧ _`\&" d 4E R;J[vw\ZzvQȦQ^ܕAa};h]+vu?>~`Y>?_'L2)0&:\`ulî+E*I}eFt-LRpZT9C8ok{5'26 GENrӭ,O9Y* kB|jf?Y}ö7n"&vHf嗑`?T֫0%I1l@hc6AIڜ}|r1_xᇝ>\)yoq7H:0Hu%6*+N#d-,pQ[ܛ_$K9ԓi#Woј}oQ;^z~:5yR0z955|5UD_z-O8zFrc12/N^usܛNgw|dKtg$Fmղ)t]P|fl#'1:7Ru"rTjAUiN>]}hY-q9i1z~z1Ƶ{ilkvf2_$ c| RoE~ v%1#q +_dVKK.r;?}!seT;њ +r +=8SѸ΂/u+取G=6Y04@N P031qotHIFހ|yT݋k6湻"5tnkn6 K>uyx SaY#5W6Z0fI3Mޫz&T׈`GgJ:0VwO$S1ypa6wdzZ]}o$Wm?|˷1O]R.+=te'^6oq\7-q󞶭hSn zcun?xiu*ZQmT=S-O32ğVG{H=m}0?h\eЅl8۞諙>%lXY{p_,|"z_BZ1ێ*֞۰yŊY7-Ͳ)ޜ=/O}*ACௌ(!XBV0%jN9y̶IFkSOya3YM.SVc&L]тnb8uk [VAqs̫ +)bD yq] !*qㆪfpXc]?T? t_jv *L0NHi jmAR,Lʓ䲑 +d_[Ŝ`ɅꃲV57;ּ)0kk+#FQ_Л7 rvϖ/3+|HUZcYUl1<ɔ&ϢXr˅٭P*J +ON%Ld{m="#̌OtV{D=EMJG.N&|y{CsQI +i*9R`\9NLw6C >KPZK6,}cH1Ţj# /4g=,cF6s-^B;¤7_.img}#nsLHia5m[m ++iWd8dumx) +]/_ e#3z9Z4T._Tjl]JKJjPj3"nDPɹ12;VtYAxlvhTM=9z&$ͱ(PIx\ #eL{*~[:%7FbݹysN.fObXga-+'EJ=[Qb''P*'n`úEݭ/pe!zt*FRz]e9l(돕Ӎ\RO_5;j۩w{5z4~ZUW[We\e%2~>ߔ(ZQ<$[F*ae]/Ku'F=S=n"6&5UF|DUԎDe35=5&Z!URwD1ȗw\R8>K!Хe%\ӊsȜ31oic^U(mbn yv*/Ԙ蠺x~yr-]J]:zL4R~KY(;  g@oW_ȓ3+5l r@s.)21{e2'j;EuxKQc*lJ'Ymc`Co֣l*EP^,[ kN5Bf~QJ41D8étuLšaeܳaieQe(m( MmZN dV ξu~|Y߷pin7KS2R&ա*d{ ETfBتl[Zv R\A5C8v_@>)|HӄYm\gEJ%nw%T\Igj:Iۅ6» ¥A6_,D -{ ":DH; "dm @Mb1n[/}?ν1x8[m͝Lu~+LSOn{*nS׃Yr**6ۻl!^ou_[sbzc4K4Vc/G:f:Vx69B?Ư_- +68.goaFi^u%4/yzA[7g3SR{= u5dsgc@2o&?pR({h'[{5נӃ{yTqL_;i\v>qdv/\s~?i?2HϷjP^V +w_y[ܪm{əIK݇3bz*iNJ96X=#i3b}݉PmASnjOFP ì~_g`m*Y;0>=yL/a֜V0><2KĴKSc$i'>!Vډam,7xWW (>Rujn) k:w0h={Ue3Sn&6pR2ʤ$S/?w'^׫N0KEdaqdLHlmR>gcElƵY,̨*eS&$lIϯx*71ٽq EY Ş#u<[O6N e"x|v׬)wN8H]D 5נ2GXOR}%-/15a3맲ofӝ߫/ϙmy1Iљ^z==V gdߺqÝ'pˀ"3Kg0NȌ4YdZǥ0*Pú' xܧyw|̻N3#Æ+jw;2Nϓs{>X=dTYOA#U:n4nGʽJM6l`\љjp9m`q7_~\ݴ+ +}Cܢ^Ҷq%vi9qglEW$={;*GQqp6tt`FKyDSJ$.-3%uE7nS|v۟ z_nZWpᄡcw"VYr-OB(N܌R}]mWӶ:d j| 0IgeU&S#zVz+6k/xSaj~,YXޔY3ˑU/WK&{c+)kA@Mɹkm^ǭ6) Yk#yUJ:wWV +l7}nHEffX5zGu{xn2f3D`CP=t?|/kqadR9zW(CG͒Dh{t>G/dqWf_kﵾtni٠|?:ƅ4+ܤu}LwƾEeerg}|b'2pvg~-ܝlyDez<~8ϜNEgQFS\Nb[KDkw>[P.vvSP$|};L5]M^N ?R^:c⚶=߇xh$8fYl)Ut(4s|Q:ns.mKq >daqN #v c/6 5 i6 C~YOm8 ;\FOS\WUBN~@AF3XsYͻBGw]D[a[uk5i(8h z\-RhmYojԸ_A9&`/UM&Ѫoʽ^&(Ut;jmԇ6/z4 +[.w "hןׂaRޯީse +RR(Z._fǶf)fv~F{Q 5&ܾ,>d{i 0twDxWêᬚg֕͜+6N*8̖\,wq\)9a 85#.\Q.W@[@Z|h>X>P/fnX UJ* GO%Loat2iNmiEl\<_FUKAxE? #^H*g\ן wR#Y.W/ۻ,l +`.X#(_)nlkFQN Tqr~^!9o1B;["0F} +ZP晴W)rӢf]߫Y42[g>ȭ)ߞn\CL|zv_JVaB׃@~AHcт+CHKCH+8 ~1s#n4jwRwv*F-4pV~,[w|B49țpP4,mb@ < Th? Tg!tVjBh0A1B wX6UkBeP}p\<uT]:T{+eyX@nzS)MR6`=ł| +aˇe{aS?kyT${b.^v_įj/PW%F]q|94<&}~-^m盧Ozҟ\jmzۂ9fy]JcVǗ|-mGB$GpR4?< 8M຃rʴE0:/N{ig8RSNEU=bU4#|F fM|$AGECT9RaXa]W|E6 m [\q0ґx*HT]n( 13@|k_;@Ftu6<_MqxjcYHϗ㢼Qju Wt ,kʏr~hRr|Cbd73"oRQ6Qv^C/k0:,1|:NjPw4RLgq6*y%]sSkTIkKPՖ)pjo̚/ 3S\(Vj$57^ThgeVvvcW/n6fO8;hL'(r%BYb"!7L̦}RofȗS)lhdor`g =[Hgd1qfUPP򩎂9gڅ@Ύ;Ay\Qm&IG)t\x"[ANP- ºlu5naSw$bHOMDgVh6| e\V]mL\-~b̜*92=)b.y4+T_վ{6ꅱH1E̋c#JJvUE lX_Nxjg}Yu`v8#r5(~(|N';zjݱll{ɔeȥGV'gc~=*Kuiu>M SWeat ֠6eJCK6Bd: +ՌsP<]h:Զ]P3#mFlEh)_CGk "WJAYp#^B+ k{+Fۅ"si o (["uasEW3rnx]iۺ ~S)V_%Zx[a# : itjE5y;YNq+Z;*qj|:ӬovGzgɝ}u +0T]ͣp0j¼~C.SŚi%צʱ6\6d7ΩdJym>}VnԷn8x*|]Y0Z!5OC{㪛H:WG֜|jäcj:*r^b%'a%;JrB/u + +iMLn]*ll?:zĭq֓ ]$y6j[E5zUw﫽V6T]PzndY*BT4`jMJՊT(6X2?pr3Gp6 ,6פU0R$ޓհ۳Aui} ++c2M+\˽k8XBgx)F"鳚s22G Z9(vYzIlνv!;WMV/B|6U:fag[y͎/UOr +9hgV 0 +`ޜa.[}ùTɈ6¤wN}*tJ׈Z)}޽X/VzZ +nJ(qU}̖Ixy FiD̷[ˌs\ +Wm5BvY0riE˩f@ƐѠ8x uXCPjM=1F:] uhuruPu|Qq|҆:(26QJTWiy^U'V~:YvI˙Wu؇IdWABpAȍ@(ti@hAh9c[i6qK yvgKE.3,Gqh|?Vy*^ћ{m ^ߗZ:!6< BHUV#mCt! EbJy\+8M߂1,*xL .>)`o|˛-ƛ62qtwIE/sCuR HPބ0w  CxBH|&B?'w#/ D8D'?i$S+D`̃@ rUR(yu?ͱ{UvM\xM^F1oHzloWS!? ?u[ q sϊw͟oS*=%N'zn§؝qLW=L>k=+ҟ^;&glPV.f`8t㘺s^g " rwm_8:1_]3=z?w#o$ub${;P?S`7 IIqq2@R &Ag2:UIE~{Q_ +*E.EZjqk}Sd=u뵹.fvWtw)gyξOU^@dhk"ߣ[׏ϴؽGo[t^ʭ6eћG/W'/f`gq~bij|\k0;_.ۗGS]-h[EKZuAb89D,X5?֜[m|Z^)||#} 3!{ 5[­ռ r*?q=7Y;mf&"Z*=bktڏ_9>_gࠁ y=3JWE?0ToVK/+=ΪZS#:Z\?WDjyײp)?DwY9R/k |̭ɤ=|3G9%~xR_Fk>fȳ<=;jV:T`|9C9Jx'\f=Uffq-JmmM%-ͦęt|{ +'ƄIZV"~?E.~^G9?ʧtO}o/3 B(bPۀRQ 5opsxn s2iV7=aN?ƅ&rXJk%9<=XN-V5MV1\1GK|d=*f',ibikJIX1^ -\\WJ3(BLDO?2ޕP},{c; Vֹ5;X-7=ٴWD1)=μ>̅ͧ;ok Q. +_\w2_2Zx''IFleK_y/ʒhLBE_wSGOǕ*F܆ͨ]UK;91n2 l03K4Kݝ9Ng:=ў +LN>]L$_ǩq:mb 'NM^GcV3*<^@-Pގr Ҥ: +Nol#c\l' }F/, 7Y8 h\*N+۷mu on8NgR]ˮQaȩr-SIK9Y Ej>3\Sku1s @P E=kύvMI깊gTV<)ZŝF2 9~(S]EZة*rr50ks,kYf~v}yκ87p=|<O{q@ag v(-M]4KlriVV럕kLתkrY#;U*W13覟,=}6雛A[!2y&PXN,hIw;v1;Hwآ^e+N +}-_t5fz7,>є3a`ӅUnEH9ޓIO?gu0>xo3/"XSuF!thg OunITmphTMҹSXjU2aRs1 ={p+ڍյ45H+>UԏFLi+vP2Wv ,r֙Yz; MݨҬAv;Jk ڎq=7KhK<3:9_M/SAT6 e\;Jf*z9@q%/!֒V.lluhtDf* +,c g,&lnN^3JRycAUS|RtPPƷ |VVr)@k"4D}nCm%QA6Z35n=rFJbf)Gc_w *=HTw%kJniZѡv)KŽDHd!bL@>K:hhG4{Ŕb ^%1{O"X08ۛ:ӍDtq8oiyĆ Ix - +wDJtyqԲ98^=dKnq"v]׸Ar +IFk,7Mxs<}k"уsX=|t{0Yؐ9|xrJ.Y3~XBFXx%5rƉPa=#8Sž=[lD[Xa2M=twor`% iLBx(]?2q<ܭw{1JWln/m~jt=F|mg_ +}tiEkkrl4-.t;[i]|ǹAɣE;m"斉';*Wop{3v+sxH+tj=&9׿<^mCo}D>{(™ ɇdIx`z8׸_rvn"S9oͻl` >h+¨ʶTO9'$}ֻ>/n ?Kdr|7#h9wmgzM f^q[qig2 wݔBåzԄ@̬7]+>B,AzGҐ#"拾Qb#Vycm 9i/v]JЛo¹Raaz̬O,8ŶHq25؁6f?HLl8ȁk#Qwcj.gzG|ǯѮ|֗^ t7,;ڬamؔg֤OH1;9U1Χ{ ljpfYy`(/o'>2c!yݬ%ߋPZv!dsVنz3-a/mǴЄ1S#(WLmf ,е=ۻ&_c4EW袛lr{^)a܀qHx|1ݸ7]\pϏ\:䨥|ٮ +7\o"+_@xڿFnӖNyڞ;r^Ndlqj9 +mkshX'śQ +}IV[V1vB~f&;'brawԻUQcWkcFy]׊kq#i. q;֕R V4sYccbXmYǮNe{'3^Y%W_ÑߤHp,}qYwɎ3}3VM\ V./T +囑֐ٸYW\nȉ+(*v `v-EƶAUJKT;Eo0On 2%/.z"bo7Cg!n8kpi֒k4;6~c4pP=iTwJbvu^z3y年HR $&1J6e̚ՓV&2oZ$:=;ȝۍ5oՙVNTʬWhVjᆞ]P3u0d핊>+2|V+T8CԮJ+4f.MlF TDM[D]|ByXR+64䏨lۋ6C&XZOK _Ŗ˾c˼[\\8ϳh 59޹ovZProɏxWs>h#һ[^؈ԖUٖP7Q.ԈіT+zW[) $w4@`hS0U|`& /ǨȰΨ1e&t_p|ΐ-֓9zPepwe|hZWLJ%t"ܘdlVlcEsCp_n%fڌgΚ'VwY|*IqL:t5h**]J+tch};㬘.Оdfizo\WT$lThs7Ύ׈9 l=3mvL8zy,e:׬%&4'"Fc@"wztŌvTr/fB(j7?7 4$=.Ⱦ%V:Hh@jæl@І_JUlDtބAwQd9KV-pzI},Cu^Wܔv+ޥ32~6H5j'"U#l&)KD~ _g\ba×A!DjLnwnb 6=1ѓs*lF]O+#3 t!/o4g<-0~˸GhUaBG%l-~|L@r<2ܙjkV*ZU*jW*rERM34ۏGʝB}F>D׻UgmWp3<2W$M0^)祢YZN`P*YCsb?:\:W^&P U:|cnV<_t=l>[B}Ă5t$sZ#=^j $i .5D`Ew<~aa~o-s]rH95!4 @ʣrT.ہQBWnA{\ٝ'{ζ,ђ*D^dzN&.g,,Q-+乡J[Z*PR6\. h!Pl"Xvt!l>K lWrX7_ ok XeIcRaRa@k Lfj}8מ.@zqd H1Rt46@ d"xdO?W*dERoe8yL\6y?iZNOO$nI.3OE 6xV&SDzw\1V/|F'\2kf+.}zU7_j+}w)߇Gd( S=B!h3&%1)S<|讟?|XJb,I\ؿ7Zcr˿%3W^/ɟaio>7$::^16/`|۰x+,z+6.N~CǁۺA(_%4ZusH<&9{Kbvh\pq==w\[IzLBN3EC3 ?)6YX&qBf#MCnpoRggP;)iH5NC)# w} ?PlۆT֝_1v>3a~WW`nG%*!U^m;+ ͵WFUܶ+\~5O,8NGD?$VĘF[+Dž_[ +v!C8ZyT~ɔrpnq!4[{z[Ê?ˀXNj{-C!)s²8`>o)&~M"S[+&~]_=ogf8~|95`xCγ*n27N<<7tf`ΟƓqOs;bOF|Z0 1 Up9s&yTR<ȭ?$/#S*\:8!g&F+X o7>5,t_e'Q=~]3H| +䂤Ji 7 rssqQ߽aLpg{' +_xԶ}k:=N!`1vk ݭ_hhg N'~';#2wNk07^#E^FҺY{{S7Us}-hH4&6 T.;öXl4js*֫, \]{ɫksԱ2󀭑[7?.L[M/0Lռ+96L3V^qZV.Σf?zE:4.u`K5 yɅ&>܌մ%̲gnQmKEZj+`f q2\3S\^?лC:+'ȣ5Of]A/3{SFC RWX,hORuGOjVcUJ+>݆gc8ӑvvoɞ>BYZC9ŗU ~E~6뱃UYDžX WxC<}ٳZqm.gor`4ZX-u+Z{/:Nx4F.j D?ԕ|e 74R[Ѫ )ieE&?w}d&zyzs}={rVLF u!"hcUt򴋺j^>Sc斪_(coJފt*TԂZCkҕ(sKZ7UZ澴R`_J?E>5 ;M3tC󜯶3;.ƇRM$犧Ȍ6T;wV`iw qӳ/ZLDC8p$J/EoX'b5ܿpX80vA71k7OYҼYT}# + +Pku6U#W'| hn.3W;gDdE B-'|(_yq<]tSTF< pY4L`ּ{L#\, ZJ732` '`}1e'PeZ!dddi(T əm}n5&"t-kww[NeG샎 hvp_>cfŢTj'ayYpzrlٯj֪+Y\XJQ Tαl +ͷ3{q4qG>a/7y4k4csd2'g2k8d2T^ cUA[k'==:w㶃wñ+mʀҪ_w;f<~E zvnt:G<ʜ;ʜ!% I2mO-C8rW Sv6]JOTjtVy5he O @XXw]]֘ we]3L Zk:R6qr8d v}"*G}wMו?LB1:owzZ|[\? Wt1Z2E9LBݛM%LZ,wGYV(3N-w~6.UĒ<%T̈8d/2N2tļb1+Vc\Md, =^o[4QkrJV ##ay{VPi3[mPv񮶟tz5qԾKӡR2[2^[ZԕRmaͯ^-A<^d OJa5};"ޯT7dl>e40}Wy9k7RXuJ 7 +>/Z`;{D;'f> O>'#M;0l#rt *XM`|՚dqX)"w ^1b}[u|܊HAVB>1vQNŁ{Tzrgnќtt9.H9vus rB*",`?}p;Xi zRۨ ų>irרPL`. *z{N/9桱UR4xHAPt~: ]1J`>ʙ9ҭ4i %3VF2[pCRSY󸓮 |Pi?{Bi1!#.5[u XgV3 +@?^UkEtbzpI\$&]-W'4Rl}/ydn"Ɲ&T6t%qcȬ$C\%ͮ"x2T5p'@ 1 +s) 롚8bboC} / b j"EyfRlVVI %k +C҅mTp5E3_7\l!B*h)@! P(n`Sx[-)&@z 4P(2rLzou+*G!݂tV JeApJ,Ի_hiW5h.t0S\->=~.Cg!.9![Ph+} 0?J/{ &G)|e|Df l\h%c3t;ScV+R*%fA+;,^n'[ e-U.z`7u*upp֦pͱppO迢" rd8Fu}6ّlP2P"[n>FG,ߚ=@΀ ǽaOᖉ1| !@!ŮMv'M3y]\XwUv]3uTnO $YҎ̇\>3̥ۇcn[aT$OA?ڢIR[W}.Am:_{0-^ufm$דh31el^򒅧V@'㋝41s]lFq~"IeM }ûںһ33n͏Rn۰*geBń!Bt_Slu&Nf/5f[gS/H |8nN + Ai-lˑwwsNs|m6),wrr7,ZkCˆO:8a' `=sCU, BFH*[VI6zV"9r^ze>rDt̸$a~I/V  ? 2#:sgJ2ye;FНPIAnjY-'Snәy,~xD1Np+h5[ Gg +Q{iԮs`][(ï :޼v;۵DW1lfzٵkv]_]~ g4ۭLxܙoqh 8)%DZ;Pm6;[:Sr΢gBRi}|bۓqhsZ}V92mҜ_+Zմ+J'vAkYq\S1|^#ykV)52a HbƪS tuh'/5j<({rzv"42zqdv+>YJ WlChu95uZ9UM8fWUH?ɯ6ɽ.<5,=c˨\2eWDM+nN4*+8/O[:}dam 2l7kR4X 2ꆉTkq_;BNu]z+gz* NW^AʸV*{gJiVTLnfH&ْ:zLfhJr{}Ygh +o{6u縊o]`T9Fy˒2ԕjT+ɳz,c)-h:֚/PkzXޝ.iZY"pO 2b*cyLE Fm["'W\0b$W׉EMxNzM:ZnŒn=bkM5r9gvz{\(/ULoJS,3Nѐ 4EQp)c댩|/ޑ|@d)ĮWV%}o;S@V@?hANcXJ9\ܬu{:̻sBQ֍;O\:~ fL7LDih~P 3SQk[!Fwh +~$1n"v~D.[iqQas'l\}]R '\y~뚟J"c6N+:rk {1.dY?}y#Zc:4#qUbļ1|'$CDdDҋIq"!~51 ډTC##:|fy^?y̐2w~xA$BBG5_ +vʷкC1÷  fC.~ٲ12iɧ?L{bų;VU81!w +AU%+0w}BȂ|:|IΙfzQ<:|ZY̗C$TRZ(z5Uk JEQf1H͵}?wQNBBjS-`?,J%LØk/ B +ԺQ PM+~MȀfZb'܁DmԽf*Qer>S㇆L,mp?\ lG vƳ`\GUHa!Q16 3'0de=2&9Oj0L0klaDp87yf甘! 26#0[# "u4RZe躳:6;kN,;:_[_<>N&:jwoRC9 SbWmo♃<;/~/ȳ4ɛƕsTwWnpRbUuZ^ځ +ZiOszDFHpf穓j U|mVk4iD'q0< ~`<:,XF/,׫a6ctī=q}^sgI'jޣ9DeQ!ol=ljJx5NM  "ub~ CݥZXL;uݰH, +Dٻ^pw^|[W_jk8LYi7*k[߈ܜim8voU0z|Uߕ¯ڮޢ$*xXpkXklg5 Bw[#uG{漓j F5bZGIQ G-):TGWykݠ'JʹlD|%JE)p1hl2H-/ZCDN~$^DT8 +FǯI˻,cx{}[$VU}Lר5U Zb6(lwKp{b%iSlj"^Brq6/~>' "柛N)l/:6$Z"=ݬfVyڷ{[֚ęRhzHXʇI_".~B +^pۆn~4+G_^QXO+WgV:VpDD1*i]\U0)Diޠx_ {U&񷵹{,zy ރw! e̳SA+酳oQtefZdLѭjB]B)՚?sRǻfr*>~YDM@0`_ +krS8:&/l:ݕ8LƮ㻻&zb^u 7w8zT +GTb)6NULɇCNEYq +*!f—0 [Sy2fL/Xݘ0:lY0av44`N?te7v1=iWIu)i1IjΉHKwhyJ\qSK.98|RycV?01a̡+5-UbC JDWv,XYcYuIJ V&%akvYS=s83b3-/ঠ3 K"> ؊i[}S WBtO3 (Y>Yur+LF2l:G.etg +ɅnS(A"ݐ_x2x |߲='V2Ɉ0l+n(50x͜]/AFN3 +қzt7j,1VF7'QqI:NMޗ4ye:t-}hC,h+{-\j?IVۅEYwÒ=EwPko{kNI~N-pLCQ I-ᴚhDƈҀ0 + B)@p%!7 +H)?I\Jୋ)7ե-բ*\*9!Ex2A/vTgyM6KVcmtcqdBiS {%]2FCN&B[̌J\tUa9Ϫ{h*pS8>,KVQ_l9JКCh-ZP6$P#'HYğ&mNe%F$r xYS[ƏOYcnPM̓#q[Vj?} &ZQk먶!)O GM叞D&nۤW0νWOF!Du}Ԗ6'84ھޚ7k]I, +E5<{w<xDf`t_ɐr/F*VAWޱ=[t<[jUm]Eޣgy&[YVaKT%򨩵4Bmܤ^#(ӕJ:.ТF="d)ޱ)=̞:QGuěr}ŀϡmwH-h-6KxXA=wuGSu+v~?4~>Vzl(O%r # K>w{Q:)éQo}ƍvntrcD֍qci 6uk;7r +FѰ ٹTP%[U2S%{R N oN:dnuS\ 3ז*Wρ[[{]-hzo['kjq=sײif6BRA%hJsn1g{-\iTKp<+a0cnlnzuͬɦWTnɤ^w~!rDv8훙:9Ⱦwr:aV)Z[],]RΦFj^ GF#>Xq/fȕ/Ulfbtd襏!wvAR믢J}!|f.U95Ǹ+U`w+(LƬ=0¤<[N"+c6,[T_¿m4X,:b\oyȐK.+kՉU7z/S2f*=uu/*:[%d8_]`y701N_,F=>Uj?kl(i>\M8wj+61WjϐQ>+tz#_Z:4Ϊ=K%ԒR{˧%.Jf\R1\/fuǤ:>Y}_RM2B֢Eܮ2X,R+l^%7VJftRfRd\7WrB/rGx]tVN[Τ0SD< ù$H`6{'^wbժjλPM吓N1燧e^K4MW!v_nt Vr6uI"7 Rޙ* ٪TBxy-l7GYf"^`=;$I8"WӍ9Vj8J7Ruz6$xć@OEǭiҺ-7 +ś)[Y 沯f#` d2Gklf zAv@^o:+մ 7JAWA*̊0ݴ0tm֬kӗ9VUFq|t7݌ۚ[tg;>8k!%tԷ҄{ }Tͭͅ6(DE}{TRݧ i $sܶвcrު.tۗ^BtܨHsűysqq%Έ%c?q?⇡Ǖ }t,ݦ Cʫ'M!ߛkF2 T2a>;V@Lӹmj +48t =`4]20۶ybvIy}rM޳Bh\O avb&@,'bMz>A:: !@1m'PVuVOֆu>g>^aJOu6m >^RVd?H4Ca"I`VƱY;+,eaXDW{];͌10lcb7nI/L5֔SY!-ċd0=D#Mr-Li*Uv-R։a|e?$RkO/J͟7VVY,[x4(^?[^fkoFS."̡8di ֮_kW֪Ém9ͮXPi-6&ڭ 5jep [Բv|ZXPAwq%![/fY*ÙaBgZ팞tD)ztN; u:"V/zu&thmѦ޽fvq-*X׋3MɗA-؎#ÈEA2꤯xOVhok6p3>G4E<\۸J~a +Uh+B4٥ur"@tpI۲j5Aۅ:f$ul~3s`\f= ش8,U+x}^OFg>:cN\%ru|t^)&Nu&_4C?{hHO_ې씅ȵT60` 1[O gcc|^|A>}pwx'.΋}!;fY-z|$EX Rrɥ;%}B2@n \!7xvE'v=x@d +Tb3bjҀQ@ Z$× 5.|?+VS|5~x+RT|g!QbBΛdj.TP"Ջ1UP9jECMl6 (<rf +*' r(N̙[8K(vՇ{1 O=_ `1C  R'c,@DE?F-lu+hUm%f$fP :\kXcvl UcTR/1XU[pg- +X?EXa[յWvcז{W;g mJo*pW}[@ҴH) +@V-h.݌?R!;@_jo>]JO~v>>a.ȓy?ٿ_o4 .YΟ?>{7Üt5d۵K蜣?Le||VS#@3<~%zc Bn3kOgڕ\, +@|!7/\&_9ԗKkHnQQ}n59;#.!nvR ̓z'Ѩ-S Ngn>l7f3tS>&tmgnY[ל +g|x'?_?ѿ+Fa;nbPˆܼ_3t$LLqEuy( omNgװac@_JoW~%8BGz sUK_r[-C :⻿xj;ѓO>$OwKtQqCfK+Ov׼4G>  +ءLȯ G̻`,LAwlYr'M]_:kifUGҜ_꿬h}u:>KxC)g"=\Z4*9ӵL3%=b͕ Bv6#~N]֣/3mָ(n[<7guo"a4*d摯:O5_S{^Qb,;sv܁x={J> n۾xuwÔ{vبY*7U-ߨ5k:qj۪sڒ_YWoثRUVyȕcȹgqeoJCHe8(=Jlq/ߺIzy]ڎ#jVZFsKn>,L=OWz +)bXmfOk7(RKv>115t +KUL:QM64WQl'i9zs3.ې)8HX^5)Zί۵WVbK5U+A>Zjx#SVrVuQ>2jv!] + +r='e:I- K7OΗ:(U_1_LtZz~ wl"fm{enA ֖PKO>MղўV-Kn<ҬpfeZo}R\BcYsg^wse~':L[9 GqNAAjX!M@Ii[TLSxqJOHʌ _|9gg̱BUj:e6{cL0ŕC1 05gJ0OʝSΞlo}kiš!B#/s+]n^a/BO+g].sNUYUgqȿ2bjMd(5Pqh錨Fb -JXE;PgBek/~UC.z >%pМvn=ͮwe`PfqXcjb̮P˔>0n +xSBȫ?=Ur|$a+K 1y!ɟLh/.zn5ꤌ-Sf2eJقDzFg +yw~`){&k +/2SGn*un 绔jCJ+M^O!˗@hR z{*06˾ l1*n7>z!A5_v5ߤMyf*J%qc^ZY.`*g*}J o"e mQk)C L!CA+1bTC}V솿:{L:)>ǜyW+V\R#Tj<&%:NyL^Z{SKz7+4|[zCZ]A|e~u\5++]NMJw1%`#tGP}^<u7 M~"F/=Xv&irBAFF H> ?pX6`*'iWVcto`q<Ukon@%.Rh;4Vrmr(3=uo@ }\U4xfTT&k r3x:c 1`C .0}>yywfԪc]66'S}X)r'b=Xvܐ#^b]9ST -¡|*y:Iv)FSXoNS# %<3LA1"`C ``2q-ahr]8鐶.'+A!FoTr/1m)Ft̔xǨdxL3Ƶym:@Lp_uG0 "9 GxqKNb*f9M1dt]_'}ݶ#tpJ\рO-;&ܲr0q+ntΛ<ם'+i* Hõ ^F7&5 +X| gQh0Sdx|H7?roz.)@hM vg +mrZaa7HmpA%eiyNj!̧eoVgANlg}jljOn(7 k5ri*]@;0yHH߹; eT˛2h5N'n]z^ n_o HOrB"&ۤY;<5|ʾ8jKn[1Du QfR' +n)JXO h[%ڼ>>na'XwqnK޾_CgW/l.wW6jCqo_w9?CD^6Lo2B:_O0#Ex Jx˥~=:Dh>{8{g!y3!{|VwØ~Uwֳs3o(7N?M\ژЗ0.tT<{`R9>fqj~{( 6|*>bz^m#_Tslqbk:*̑1ޙUuZ}TMHĵs+%|w0[)[GY9sv¸tLȠkάkMÂLۜ4ngBMlfq&ݲס|@{nYzveK$ޱKn5hWru!7˧3uƹޛ#5C;Ln|QT[{ OAG`PhpQȬL F.}̽=:k븷QmFeF鯃u\YV6xTϬg&ĊJb]'|z=Տ.촻seSfqgD|/jyk}uU@ZsVyTV6*p].^wĒU'n~_ՆR'R*#-[MA oůZkÃed{Ī{Ǻvsoݜlk\5-hk5KYDzQ!a=l賺8am綏5:~8mt6Uose*:agwqu13ct)'H}xUHuҋc +vS{[-[mԳ +s*Aiв>oiyրeKKw-d:Jnm.6 +*Ot^޷~3:Lw./ޭ8oA:`х]?- +.=Xg-#;4WBt =F7{Tlz8z L\6@Jy1^׼B(A ۛv׹1^ piS=e֭#(9gEń97;w͵ji-уq*(y]ȣt0iWP/}xr"vϜwtJ b-؏b6+ARA,G=nI/s4B~10FJK}˝.[J#Hu鈣}1WXDT*EӅ 38E6-8u"{)&.W6oVl e uj`J" L\iqCّ;'[n,f]zm #qtK176N"6P8h;@2OoscnSyݸ\;\X\Mo.lz|(V1]T|khٺ6< r> Ҁ)MMkGD0!eC@_F)πՖ۬K8OzJ>4`t4n>Ϩfi<-s֣\oiE^-[͉i73{T45#sg@^eX+@Ռ3pwȅuK{`!kkV.LF]$" ;?C4ko&i:56eΥpxvizpK|#MxuMMJ,9<;1m>TH$?_)ؒ;m~/#fa(4|`Í3;,;  +ERv$mYN07sF$ӌc=cnf:mEw*T:K 9©=V^TD.f| +7p_W8uvPJf>񰍷z_Vu@.2g|r`6AR<iMx^N7o.AeRH%GMЍK"LLkJ(C|1p?d8ͷHll #tۋH3>)ƹì3ɍZY rSMIζ̞JATm-E~15&Qd 'QKf|a3"ҠmG +?y0-/нwQr7S\" #*~K!*I\H#^#^qӼHam$RR?>࣪:Bڅu3o;+ҦEw4CbC{cBc(t\V":UfZ1HFɼU(=a_Zi)ô62bӬFZ*w5O  +, ZQL04l4Q@CR=4.Č?i~ +dVGSIb|aLy t*I`84(& !S5\&\}Џ|>E@/O}@F7@|q=+d˂ +P-o)SđÌk=qykya?/Aio/ex-'vT &s!s`u*`[L`M2ϗl^w)HH׸eAEzFT`gWP~J{_|_=xC %ˀu x[#W5~tnUpW(9?TM@\.@]X^jРp +ԛuuo&h 3iOl:+ģ|*_A_WoN+TNo4jO^Zi0Zm}S뛌͈ͯ~vGۘz173W`]\K;o|x溥).ʌb7ZW?bx~8XCWX:'T}>Fj9\sA/x  Ag2ۢ)auM*ov}Ѡgy,4ȯL ʡʥ?ydiɳs`Oo7][‘)\>KKqJT ϯښ[; +piJ'cC9M^5R |cqRPn/_; ⧩iUt!^OƻK՞.xh\_wu<}bLy:? 4}Q-*~zhQ]kݏh>]16 e}Mկ0'^{G`&cTniF "`A/i0gnʸё=4 ZK/H67y~T8XvFM;ltoU^YV_jHka}817\q)Kљ.:&ukҁ:pXVkr͍P A׮-[ ǿ/BSXq=1S^4tqYd쟆6B1ռ#zPʺ~qfHn^SjZDL]SzT:ɝLBiewVHS'VsTK1=;$A-@I:?g 'J\42&ӡkzc6nj{5Mf>7/&_Ӟa7{%JS-ٰ]jľs=rr߅V42*\ 8_ ~kgb rG҆:JUQ (g yA&=p6&AC =kj<ٌzt\kbno7 k"ˆ8n1vsMNN3ұ+Yv8{-sӕԺiN Thm2'3t(mdOǸ]j@YwK;39&_Z?e_}Dk_*KOa +"$]oPih/qӋ>)V>1.F_ˆFzcS9TEk@hC}Hgs[z|4T;z 5[Ru* )-Ξcz#".roEl!\L#>9~ӆքn%ز +H"@:qsPp%Eu[VƜ$+Izi'Ak|7=](8\:b~5Ұl]0LMD5ԫ|*u Ž-ٚhc){jVt8p0}u$էͯ\ILϷ,ScWAR`lfFw 'h嶟BG?!ub!uҷBKk[F/} "~SCv-UKAp?s.ݺ|c7 TX$w]0 +3IcCDZgHcoUbڷmJ+4 ;TD*3%1^YeYA[11L姎($@08鿶`@!h3?Np9 +a@a)v/wѓO\[H2 57\Sb7 8{%3j4MձiZًy_ >n Ŕ3./>lu,WO؂=K mj F=@e JHNBU+f @#ˤNP9%.Ҁ>`65^]0R~Cs( +6Xӝ 4Z寧XKjfv' vfL&`v64EN'xKh1.£8'WktVm&Y}iqAR]NdIf&1RpZ pvߗ°0\jl7E W!21朒Qz5;gul?ug^!tW)tRQi%pU/R߃-L8~ntIoxB:P|@ T=*٤Ԅ u?~Aul]q^c?XV(⚂#H$<@>6ln.7L^i |#x?>KRTR%؜ d]RD@;!jZ/` +nʖCr _oW'_񷹚 4 ++svԁϓuҬ +3bTp+vPVxPΑn#%5Um7|̾mfEϧUpK&|-m  |`rs`r0|c*Hܶz O8'r@]g9r%gSVNw8sl p_j}I%c})nvo:k}W^nwDaB׽Tk?ȱC2}Fw 2;x`)ziNk#8SZfyҚfc2NRWӃm+տyJW3׬ݎ?4{EX`GY4pØ4oϺV3:|YW?+k#5Oh-!^|{lofsy ";ԅ.z]kݖz'qf{8~n4шT!Tƪ]ɯu!b^{I!:(Xzt_ܞ~]R:P7A.(b[Bv +Ҫ &=7cYo(TwQ7}7/TyQqH/:^S_9ugDk6fHy|#\ސk=:v>޶_8vX&FTf]8wveL[Bq +;bcSߘYW~d~[׎ ?x:]_G^ٻrǨk OU'UV\ +=҇Kj)qDjNO7>jS4B~XVw=9\sւF6M6tT"6Si퍽@γEϢqWiyPnkblwW^7Ʃ[ZyA\OPe}\&K3˽@Ή2|9s{팊اc3vRl[lm[B>ߥd +o@VZ'ZxnSu_creD2Y*֪RxOؗ#FnYCMrw#d9 CFEs:?H 2-͂Zݘ{SóA=M /FMzjz˥zq=َͻT= $.nLq\HXb\n =s-&z^΍Y566Cl,5FA8W:PT~WT!cM<jQr,={a1G59h?}a)3hn>Mb[r1̲-7&(L>Wiƃ/nNx)܍"b8p8UR:3ǒtglЗj[bPAuX,֫jCflbE ;yPӺ80p ^!l וWgVrxbA:'Ⱦ0"fpN(_&gk]!"G )Ӱz4[3n W7e_UpɹuU-j\J77+$W4yQLV^p +qrήЭ6]}A3Ԥ瑜vxЇn230zA]#΋T +~Tړ|9DuaFեIWs0fڹI}ꢡ%q."[=5rDkD\x I=ʂaYV s8-I7j}R*@P0"y -SWχt%.輡d$KfR,ZHrPoZ'V{|٧v}A3=^=P*0Z%2 ,j@~j@\ "2rѬpڡZҷBMOvMb׃K45/dܵ$9(Ҩ c&R8oYx%x0nO(QL`lt{_pW\3A7)lvmv}=ۿryAna-7 )= +O Si Y!A/sŧ ߩ& X;@8 \W GeQzv 2^.pa[Kv=0iQ\Lh2hdj @#A^4 7+54د-g~S4 H/2ilɛ~ h (*٬H( zF>1*+@hJ7nm h+T-zN~ LYP˽]MPjxYjTLsq{GT;FjR \=h]Ϙ:X$3trSbZ3H)/>l+YK=WLPO6:Qu 00I>F`aC0$Fw2Yެ:78W3ӳZ93]ۥ;^f3#s\cŅpw= +`_Zod[4cSm2ƛwO{n؀]sn`k jl%GM<GWkdrT˩ON+7~8~~ "7~[IoNϖU[/*s+X}fV5||*zX[?۾Oz_Xr +7 ě%8Z@'} f@Hp2;@|o@<M6bu_Ŧa$4[r.g*֡e.b7|f6Ur#Q+&@@rP"<JÁ@%ve\G)TY\Ov7(XUp;?'>?ˀ{@ϱk0ǫON@Oo@Ou-C &~z]F;!o1JTۋA\.th쒡ˬ+4sC̨?Ĥ2D6oPԷyՏOo|Gߎ9!Y3B٣ƧHPS)jcb@#z"/Jfɍr{\[typ㤆V{.'v _Wy+~CiSRur8bu<3(FDvUɇƃۧZ1{u$vS4&dL\kL7=7"kZwRv[Hqv;BY߄?l;f'Aȡq!K=};f_@~:nk-zQ4_kDLTjN!Wk<=Mdֱ:Uh~ +<ѡZyY etKܽt ݡDi$,˺'6F@tW 3eGs^r!t[Y@Oj^zT)/YpbiK%VlN+;{A07 ΎT~~cV?Oַ8!}@wj^k]]I9.Cb_6@waxHHyGC#0BB-?.%t7p]O\rƵ(˽ {'r6#!5VFװ|aM폟yu d4jͬYmlx.8wȝKzܲ6ݴV,X^'m<Ⱦu+i-[-GWtsjk&2_p + Ws,$P#ט[\;+w@> +;ŕ3eTk%>S>S&ݞЈRt|S*euʹdPSkCnEQtApsƉ+yNr0 + +pLv±t.|l # }[D(kstɞ;\i|ΐisȴ5c9B,r3Tp1}]ڤH?ZѴ=KZA|moUfpގ9fޞÒ%h19.iiNH&,[َ's[&Qh IazOBpŷ7Z n-Ym3RcdkiqeLɌ\IO?u[Gt"FNd@BlkC 6'xB2v"({ڍQ &i,?ht[a>@=?1tݡ5^}{dTT%2j9;"ӏI!4 >vVxq|zI#R/(:t=Brh9WP=jͻ":"tz;ׅ КfS4ABYUWڧ*N>3ΜfҚˆ@B[̷>F]/3kܨ^(8G +"RD>ٓ!HI߇|u"S@Rk4tP*LYo$@X$'k˅,cEuzb~`v2M.>R@(M#t#(WN0LP8 vO77,]U+ Zv 0X36pʛLR 1tnb2YYl.M 4t;aӨ'Cgr_jaŦp-az;%@@3Dps*9bhrHp4&5num&ZLpT'cY AXu!RuڞAzw +$!2s/mrrC9l;=CHW;N:`x! l0ZE `@\<9@i +U+!eJ7b[>\3YX5%+xļD\}A4B҅4_yT~P<2GgoF^ +w#`L*ALpHg{J-^ lyl5I֍c$I$F{~412^4M^k`Q[/'X}1o =]'Y tx]Rzwvrs4&f|V١o[(ƒ&G1ч +d\RD0 $%T_[0 i@l?2[_ⴸ\`! GOnol@D,9kcMTE+{qQQYAgyDEEQ{~k? XUbU=ʥDdFFDFD&A+/s)|0J],GS&*PZ.n-c+E2:9=M k9جXM$0(ᓰ9FĺY- +98S88E=>OOiq3EjQ2{]NOy;;: -68D|%~@X|baS aj;Jq *fx +%8p- p[ד5uyhQʇb;C4@m0Σ}y-t$k* +~ߵ\g7M_7d6sT t+__v55ke)bi,_3rL56|Dafi-cs~涧`ABC& u4pK8pHO-LF ^ Lf%_Mڼ}A}I-,߻Vf^A5yF?2( Ӷdr$WHL{y@= @&h |+6aFxjf͹AK$=tzzXKkYbesV k6o-÷(&=|Zxt>oh){~T3R'LzhW=t#3~$d r82C.~׈j,9߯5>+62 ӴsI9V F d`srt8g[N$lڶBˎj\sUQë6\Ԓ՚,61P|qZi%z"ʰKS9jS2F.M.p1! yl~.RlGC*yNB` _zR$ztk.Q.(cm׺b+viF'.󪖦Vh@ωGW?ZtR]yAHPoGάR8Umߺٺ4WlχM!ф0Ѳ1>+s~;VUy*JιT9k^9}AK ؋,a)TՑeOtNK fG?z,3Ҽ8Il7fS/`mVvj[Wz9fGL.K\k2*7dWLۣB +b[TSΥr@gjY* 3tSǙ/57GW{vO֊! ҡzՂ]UkuS (Ktt TTWK{e*Ce&BhZ(8S/(n:^rX-uĦ|ĢbzUK#/P?^B@C#kiKҥ- Y'JY/S 4}=b*\+o9dV>$Yg᜴,ԭ}ǙN,?:-#r䡷AO+qb8^έ~6Zn Z^xLث^2O8Z`ҪdZbQ_5 +%^qbfg)'r8=",n +_~{8a,ca6"EM ˡv8F!l$RH;L/"B"аC- +N5 L;嵧(-H)YP;[aZ U^kjqE5}|>9 +;װYxNysF{}Y䱚W)dkM zifw{|.duO)SYf]ghXr )?g]MԗL~yCmٶsHx!xf٫Bdܯ$42z NF)] _mfs},hR +Z՚V,nYDdҷ)+\BW-Vӽx̛l&n:7%#@m: )SuM^PS+[LHW.)a*WKd]s!hld톰K7OIknv:ǭ/Gw7mٸfZ< +hꅱYmشGMe!1\1A7,Xbެeg"D k35ۘ.8bbO=^Y%vp)_F"ؔ|a +L(ۤ>p1<5ś62rք`kP!}ؓaD3_P) wQ&9:&E:TUӱjă^tAdZd+@b0Y`vYͩI5 V3W1%wH2IM38!.6,j;[z,6uLT[0['E*;L +Ms[^b} K/07y`"0.`h)M$Ѝg$LhG%DluX*׼H/v +?v6%Q[] $+]|:SmiP+MBB'J*j>lB oP(=(C1Yb&Wlq\fRLX$bsn]`3N"1""ݖhauqiZ#b=4t7TastaSY(.cl$@W:lND*dCo=$Z?_ªUpCcJ(R{6.ς xwN36gJulHiK7 Kl ,0qX l64+`6`)q`Iv[n%eŗȖPʶt>meZiE,tXs +1}*̩91iF m鈝-3`D` ڜ(ʰ).찙z5æpaP +8R$X]8Iks= r*ͬrœFm$Ǯ3!xLe)`ORNsAW(jґ66퀭8[=}\k l M6YP.`# endstream endobj 808 0 obj <>stream +97SJOrͲFI4٩sCe+u0*Y8Y>!8OH:i6 ; fqvi}~5'*6>\K:< +o66gU ++`]&gp}p^)L`G2Q>\o&_V\M5U"58ʣg[;G`Ģ ^zcM* Y8ZlV2p9pTjGzGljo ǿ>(;bScY)=jܵsF54,áӡ>pӔxr.ws6)M#e`v``|`1wdX37Z +@f)=0)>ދ4z̀K~i275;ՀsHa#H٤), Yπ3 U{8?ɋu#DXb,y.n´#c[dhu}ymV3kX,P\EMUbUi՜&IJ +dv̡y9*oыƝڛ˲2eSp'܃޻ԭVxXZfvIkgu^!O~23_Ϡa< xZ|^N A˥Mv,#%Mku% E>?lȢjIւ^s$w8ŧࣅ9N K=o`6 ,w,,]xsmJO~Vj~lP35P_[׻Uǀv.tb,_жT[n(ҷA_0Z2w= Y +s,ַ +ӖhS.ߡ<;aKdp1gw@ >Os5k/\{Ar]iO'\{AW~ᴚFUƼBQfZ6IlcUfz6u#|5hwk9!C_;MoK@'`]>#Ko%gPj =L*=%a,EKJrfkTv^h\red݅JU5kDk4Ƿ;m';m r2HK9&~^AVҔZLt1y^J))P45EHܽK e0#r}'k5 Yj5x-c\Yquq;nѓy]:xI5T Z v~x0ּ,|}?8MUd.?ͨIE<1PnL"^_UĹ*AMe)MOzYNsxJ2uXm-㙭%HOVA: qLԞXk :ozA !JN䬛]H}]or`Yvmfutkk"*}>3ÐKϐeJ +Υ8]/(hz۞XfqlU 6n`vr alujp\ B'Q!\|A"1>?om-*?T~PC*?T~PC?O5\TL*~PC9w|'upȯ۶œpjh>P%os*?T߆Ǎ #0 +W&7i|Pc+^],d6Ml|6ϓ}S0O*s6kM<]+*?TThS֣cx".Dalۉ,XQ&^ϱ+[g3qH?,\4XQO 7#n9,B;03qmZ*w=?/Y`q9>ꑐAr|&@z[x.C?,;xn}-\8wm/(f`]pqJb?dwaf+S78,GIP4{N;V E}*'Ic@ ~-TXu; 8jÃ~nwHVn{eb;2Fي9kŸ8gw3R^a$iCzeXL۵7va @}O>{H5EE0Ve+0SҍMTJ dcCKC$e^fyZȚWI/q;3Jx 4"emRXjf|Gviϔ*?Ts%C|KsnzAB\2W`[g0%>mYC' i3 F(v g6Cؕ`Z8zAfoI=7{.f8 |&j jT"7)- NRrT;BYNٷ)G~hPsΝ=!b/myCZc?p%d_N+*\@wnM#L)/M>Շ3;خ95~J: ]Zنqs6cZm9&C4tbLW̋uV'> +I# +=&^:3G"R7ZAOB}NqL%s5f"7W ̶MT; Gv|i*<$kJHe#]+~4iyI"Ol}#NQFȧTzyUڇ`ٝ:kcG_ 816UG/84I=FKR 2?w,վWE0M7-l;fo +,zۑة5+aL-ji~8޺9 @b`LFx̉TptZز(cKMCb.mҷý'?T^T<]MoSoO Uޤ|/Ex1'^LSgNdf5F*ġ}C+HݟNIj' )ƽrhzz,2|ev%vߞ{IdI8n]D؅+<;䇷&V%X-kQ!r)DTq]a> ٮ[#]YT=# TKWajA6Wq߷TX5V{p: ;KFp]և<æ5w\$<N*Q3K#ZTo2^׮5@YVU,0ԓ#Ca/l¤dBzCF_-£Wf+T}m W2hRkݤqQP95de)o1N:Q_p1 _}}{$j艹G8ےKΫ[|qf#c}DG~4A 㨪hW[p?i9q',Go;\4^avX,pk=Ofo4xY?6N{#"5ԗhQ,e''9CE!hh[ v(I&Jz=gkԨS y +CI$sP%p -TōC3+t" x +n@Kx@1kZV27SC֍ f-_pTL{7龋]Z?蝎BBwki$%y8E A͵fX .]W7.\'}7mz$FkPVt.%Ykz A:ZM Aw`Ke`ka&G{I=[s-n"䏤s̯fU0|p Н7AM Firܸ zDG=Ytf&FZn<~迿8集V5}eAI}7VUH w%+Bގ9bx.CjP'M>PzXTmiStTs̴$ˠ2} HK4 s(ke\6chɡ6]3rgc׉X5kXpSᴆ񘭔_}F^Zõ6YMQxg!mVoGsǝԆQ+k3tƒ *p򺵷%)Y& .O}*FJPvc!p$ml4\LHPynNSZa ߣiZ5By52px<ݜjTJ{=uRh=?RBv9L>^-t*l vכ{`sBzpV?Ϡ(C.'ҽODHw|FqxBTSĔ9ڻ{+^> d.80kT+ĵ#i$sZ:~V Em+ :wڲ3[PCJr/hb6[ bGOF5tO4nv9MMcy˷mfӔg>>[! ;t|wjSaE1uC kv>UdTSG@nq\[՗u^CaD:p %pl)]W}N 4MQ}&k;!|#z=F.n wz'U'&w0-},JʺX h?F pj'ƥnQP}KoOEwHӸm{}lʃ;:-/?싘,9TAf;FSC|ףUcnC(D_8%ڮ(WWQG@:JGǻ-{˗"_<*՜Uh 0w^D{u&lpj4̶YwX')ԕZ4:9z1{4Ym|DAx.0%mPB즮0mG=S$=F6f:޲.jcR!"hZC5h昚e4lCv~ƒ^M '4Z{8^A\!ԗ}g)>Z?jXVo!֓jLC~[Bu!%d8U=f־D%3es޻a~~eyW_,Zѭz=εյq=W]GUi̖}tmD $i#FM4%64]'Ljp.۹;6^'l"؋=Fbk};@*h{ءZ`vr[aO$?m_sD M(^쇃D4z>꒚|]`ZPW~iW$ͪ1<$I Vl z =x,ЌՓ|1)E|v}7?Jx9Ă;e$gu!hV"_-}򗣲^朰:mDdsl/w, 9խ$hۙ + +^6zoZ`? bvC:Uhhy@Z\/5?Cy@:wx,}\[jdԍ6pF6D! #3P ѳc }hToͨHH%ZC7~WcN5n*<]}v=YP/hBdd_\cp{t9m>z Af`P$]F<ClԣrƆj'k}rƭl +>6~44xgn0uԟ)d|ܣջ38TIϱs~{{Ctxu kZhez.,' $ϓМU2!{~P+[?AKf'Fd +p"긆9a}k:7(o9k~nzIocW^vTg!Y^:[Ֆ^;f EXGĻ4짆Uc/UVT-c_o5S]NI |&Ns vDY=.ͽ'FY!'n Ŧgbm?Ϯm_>x T6|Nk-̅764~R3>[_شfiY-Q'M䂝*_Q{sR#Ť};Fуl=bE3>P({|_-rY0pOfscD>^qzOJwsħr)+T}{r,5XT֠'&ΔK]fi8ϟx:7Ի=3َs mJ48(k;+¯6//m?T~C,3~^~r0F^ZwDF|d,Rn݅8XVExzD}I=;!l^pVd"^멕]h"ji-Jw$֞))s*lT rڃ/-ðJ-n 4kG㥨{Zy]?ړ޾*?T9TuT| ]4:yFHZ1,88hxF7V!oYtKke^>Ve9y&w ae8~9\ <|n=ڂ;9N@ ZO&Z_m_qƭsLj[N,ѦG< +C/Mxg9 wV_OG^q<+.[qw~$p8qr +k(a)Ve*A,(WBu@ 5UmV.gYډQوg`IYڿ&^..%ewK\l'EᕡI ,N<'ZᒯLxW^7`]Ogx~vW^ +RM0Tƨ7&וp:GW rP9,f#n_Yv瑏_@r[O!_yOͯ⤙M85*+8Ssqe]Q^ɵ_n7TŹXŒU=-W;|CT+hrF$ ߕMA)dpJu`l2@Ror rOr:+k' )S=-~:e7Ϳo:?{b!rFD _~p|. *ښISoi]!ϟ<)rF{s8;קɇ@|+a.ɞS[ ȻVU/ĥpTR-uO:.!ϑ,vgt +2DžPIi(Cvr+7'XNu \V xao{7 ^^K3EVSppGB Kt}2iP~Ex3o+ Ax..Tg_zrL>bh};s|:߿ N8'heaOppK;Koysvf/ϮVclfu0AKկx\hQAI^U((r|^38娺ݿТ|fH0|vw.%4`UW[TIW<r}s$-w~$ڝh%t ~[:O{e`_#\Տ00m@Z/+?f=X~}y +v6p A߭}O|I`Wpª)Nܤ*x=uHc8_D/;E-x"|eށ_![*^UV5У?TϗW|׼2}^۝^eb(nj +;%VEhH&!VXKA7;hp֣{T/X)R8N~:if}ܤrȯ.NoV u{'QUƛnל.{(>\on_O.7r_q v\|1>|)_?Jے?L0nR'}r.>r>|8$mFw=+);e:*[Ѩ/>o{./iĔ]0^ 2Hһ*=I 4jХ7{X~@wA{Wkw>aϚRƅ n 7mS3w,k'@FAIȩ~3U ^ ¹([|F)[nhW-3L$\ss(GBzw_Sߵ _90:s}ʍwĺ +*4Ư`W^z^W yzJܽ?A [gJ`N\QHBgAE ۯ\^{#UiU:=[ !u׳ A7wQ2[8-DSAn_`'yzmv[5D=;J_.pZn-ojP]|;EjʹFuR￧ݪp;n*s_ -V?HˆwnßY߭tIN +{As$h(~:OLJoozy@hӖ$OFEn}?U1v{KJPL褼Q*W~G6j.ߦu:asc++/f6b,nә)={m^2-{nXiGa罖M3Uh4m֤$'3̦($hfb%_>qkn͉p$"8H (fZ1񉍤8.H]HhezzN* +Q%mv-[/(p秆tpAj'spa"I8m՘@6 ZsrE<_1p3Oĭm)9Zrr`i8އ0 f-Z0ODL'ŋ##l&lOZW:e%G< IѸyذR0f--]vhuZx,6!? hHyHJ8REV[}"H"H;'8/>2"y?DN6CbQONS)U4[3DJKXU*zaa@^PԔiX:ri +:xOMtddAX,\|iG#'/DM z7=*>qkQmT_5T3}xAeH依ڧQD?2f(!*pcTr/X2+TӜwvD?ǬWz/ wI+$?ծ˧H̗Y}Jr1PGCR},ieMpU>~@mhPcZTchtZS_, Э, ovdzyA3hf yQ7ɥF3HUZR4߸7^}t %Y t.Mh €RVO):+Ɯ ´ (y7r W|Tرw&8)}*AtTN L%VU]m0Fu75 =׹11BShנ|YdNxu ;Gw;h9 ܢvjjͩCR}04zAoO UGqRZSb.@&4]+j真ՍmOTPIĸ Լ t* +&]R,W>}E6Pg T!Q/&_#ς +KLOfeY|_7b! 4ғq,e)Mf|{5`)NjܢeNs}5PT5 QIJyWtz4t 2!6pnvgkKw[.ʍV/| +bqӛ˴.>@6p^ax.YC Q`7% ŧΆLˈݐQy#ͷ[]D*{oS=o w<&>WDd h3]HQvڱt&9XFR Ji"ܴ7I2/‹KuM dwzd>崲x&1H]{ozo3믛 7_jMGT]BIN۫r8{$#ʿA[^8^iϝPyXxʔ%A(|A8W'xUtDڹ Zvԯ.$*(ۃRZܬXreFD}‹tuҷt Ke57kmqy}R!o$WKOtK.pScn-xnpta UetL. 4A}r[ _Ljt>v>bK S!iXo;ܸ7ruA):2h(;l$/AԹ0~Ix-b3mSKi1G~X_.u/lzT,T&qhW8u^ $)@Hh>AzNYI0<'xX9$~JM&Qi^l!*#v3:V;z޳o17cҀi=0mI9 Txa%ӣuʄpږ2ՠjF>h\2e{O]Aӧ1tI2_6qvC**%&(}1dll3e;M!3}{ @uvRiYҾ Qx2eUqFNi&߷|k\ 2hf!YsE=JO%"7Rp%t|( %u 7oGz0n dvi[!dMVkD 3~G$eZ[S`})%ûV~/7"Z4.MqAV:eTzRB=J(R+͋t⚥J 8In1.c7G܁3-!ѻ b '18@;W~_5>Z;ie/ #iHz]Mpym YjQlɁw ע{uc\;9pm=89sLNcʌGKz2"y?6{Խšc=B hz,/Tqr&+ 6L9ሱs|vϹS%uӁV`yԍBITKmσy3_"(R$R:S,iamuۛL;QپVoքN㺨,/5V٬w7fweLIE,I +/WT_^?>Tե⃺*z˧=I^9\G-iB}! ¶.Փf^+cC8Rj $S~_Y +g`p'prCDYԋ6ni}dm_綴sѬG@.Wٲk,zNj.RO᩷Qݱ_yV[ `y{kaF[O5,|P? #΅ 3A}mQ7Wn,b[.Vh-brsZVNfѬ #UC T/g/.Z<_.|=v>.|5~]zr /"xe3}=I^t\dY73ɲ+=$n'+fe#;GwX7|{~z*d׎xIgX2/dsBe6 bK҈/Jqᐴ [w/ H~m?6V ŁNkryu`W^V7^V6xP|.Wn>l_*_0CѨ~N~㹗f-_Z9FoMfV5fov}=nt?hy5:UʮFI+uݨigWw-;F:K2ƪ/h+O:ыk~R>i=ٷm[.a͌i<0?fuyah rͪt6>HkFo7gGVL]ȧEFo'{Fqʻx&ktZ/TװE̾n+G&]yWj* &oxUpF k˩gCjAb>^x֮'2fwifS]Q(pލE>* +ލJeyz7Zi4tud6S1rǭ?FcAbGmqr'[[Fw;VUIk+?YZlvml,x5 +eojM_l2wrl-q*Fc^+M.rr/m(dl~fzލOD{xh'|3M՗j"m6\i'V8l47ZބFV +6]c}ח\&T ~U͏Խ—rq2tV{+F7ҵO+;NFˮi{WhjZ1Ufݎ Âkokwi$/,ᷗoa@uP?qao1.>~x?2iv_8j5tL\Z@;ٕ\hCzOK\qGa=ps?lx+Cӫw|6g=-p'i멋bW2w-xz5t=6}fmsg ŝ/%=\UXOyƤ7}xzr7oO9S=].]or3~;aIyx[g9Ll3>|{+cxYdQL:YY^z?Tf{<Ri)^hnӧUiz䗎X$[QC3)w< W&g]o.Ov>o`aSɆzQ_T/k(rR)w~3 FZS$\+>VվR\q{ +R/g`%jp !vBFD_nThMFcUim>..l5KQ6>MJ V`>?QekF+WQ3EhXc)}f7:StFa,ffu~9g4O>|9{+=kޔ[j2=-byLKܶu`k*pv&;s?WvcDqw/{[?X6~i&L?8vh`[BhK.Ӻ8=IOmӘ q*_4l뵤'MCvF+ ._z$m٭$N^uޥ\-G܁1Gyę%G#$3Hݠ-]6a,1$3zV=bY$Oe9,wc7.~",k]%2YYNy/[0S HcLb8XO{\~ F?z O/k6j8Q'HV7.rC׮A;],b۬]IMm;CI1\~>Aa&xҸqMYk~ʛָ<Ҁ<8 ycgѥ;ZbaKi7<-+ǶY leU8}wؾ~;]WDZ[>sKq4cYt_yk:cI=a|NQXr蒽_YֹJ1C/-kJFߝ;6%Zߟ׆e=06X,BgNDװ ftc bݧCtI(_,Y9O]gvɚX2 /*gɍ .qnԪ)*{띅Z!*s +2NxieO(ꦤrrfsqhrGN?pe +`B~ynz +nJӗlO]Ѯl)NC9Ø禸ӲhBR'w4-BXcq1f:a#t%u% -'IwXF^Q%BYP 20y)ˡ y.Эon_q>Xm_Ep~BۖB $v\B?cL7}}_*g^gc< MO7'V>Ċřfd V-  ƾVwwI\XN$xH|} >v^K!+7x(dahm#=VGčݰXһ+/7gZ99DrT'd{6?'Gd|}nVlk+VY2mqc`Rō$ۙHQ?;ȼIh£wbЦ)E?;NMxq'u:ٱ)_{A%;{@t%{tX;Ҵ `H"Ky%u ]trȡX.mϧlGei; k '^y*_^VbYPYRqxZYˤkgi3qROv&yb(=oUYa +!<d> Tq Cϡ댏D bD8Zl,ht3.e9}: v6vZMwWb6ξh ũ>{r{7n'  yLzJ)zwv\C߱6`Bm?:,z(ninyܠ.( 3a0WxfC4|46{3Y+V6/~-m'QPp֜&& 'jϬBAkaΓzq |4V6_5D#K]vi"=dXaY̔PYM? yR؝z(Q7^JCYO䧖vYιd!hE0HkGӽOY0 .rPN}OXWXٴZPL4$"< o2shlU8K_r &ܾȻr"؟L~Frއ0Q7W +myD9ʢ-b_]$Yl|~5VJON]3UE%}[0r6D˭4>κ_/lOj^txs,b#Ce}#'"ѨANJCAgE NClDٴb#тGD F3SG"gC7qte1m M=A+90 H {cA]xv$o.yyzSAPRɊM {Uuj΁ރT$,9lLN'W3Vlx  +8,n|~ =>Ҵ&% ϕO/bHq|.f`Gce6V֙bmQ}z1x))NG1^:=7]>Jmڷ:to/»|$ƞi{Ímά +nn b}\B*B&]F Lb*<{eOsI+?(wG !HAtFr[xJDS + +ssvDCňmiqj:0;hr:w\K-S#d_zd\MṘN=2~0Aq>]rݱ6tIH,<2#3JM\XN/3>a{jenO푁Ii6#|dW CsÃ#R"zd*8hC6\J(+?;čQw¢}cgd%ōS559;ȡ2le氨 e.xE E͎!T1 9WgqH`ױ/^KLaP,AG&(vT:xM7ƈYMPPa<܌P72L*|ù5"fqf %`Fp1ψùm1ֱN{(F UC >F{܆ +f +g +5/oX@QxrP8Dm_I;U(ܘW 􏅃݁aLH 7@"}lj/Tê~xC8aps]2pF G8~"+/zQ+@%,LnhϞ=}b8Kx^wK;+|oAFŽ}D3Kmq ԒC ;Q4$~t^v2.0SFy]et^tF>Dy=SE2ڳ^MMU !EM&Fyrt^?h:XP؞Ht^v#;cMM5$L鼔vtFt^t޷OM3RN\ ](o,a_DQC2F :=蚟4ˎJh( + Eb^c@(7@=~ׁYOܮ^X.gHkde o`[/=X 8Kr|nBB\coP&<"e@W_ .y ,qz 92Yd22 Cؽ)Q5;1;:AjEuFg[h=fI\y#&qm@('{oC( dた>d縋 =3M:b;i(0g2u=!eʛ6̔76pK +2Q;|Xh2f31O SeI"{o|d\+R$,3 =wضXp={ALcǷk"!FaL :`aZaØCr^AL }ΪʘvSj%\0l7v%TbWH'+;HALx;GFS IDj0@~0H,b\?n1#]hEJ>v?THŸWSEa*{d섿;?/, +] +X/R/9h }a`mwq|/oCa*$ -g|r|oߟ40 aYg$K,2wv^vUx>tdW6vv=/l~i1Ve~<}V>v.qݱ 2 X9g9w5҅Og 73"n mΘziūQ/RF8MĎf{ɘL1n>YmXb;CLbuɥt'N]fH#A6i; g1  P Uw<$>Yb63RKb$]UU̩sgfFV-)B&ba֓+̘a &=l8J˹_=myv'%'kџql]y\y[sLE_lXt,ֵ\ِ,@Ƒu{IdM;v. FԢċY-5_V(4 A<ge#ߋp&vٗ]!#8}XN?b.ʻN+v0G<-6E $s糘"-y1VQ9w)_u=!qGNzZ=y(߳B9m(5PA7:y:C?Df,VBXt\NG|:Q(6.RM60=$p'& +0l ۟- +_ Lh[*5 +0l Qacca#Oݥ@yf/lFYc' +LR>lJʇ1# + ŒZpLR>f~& r|vvܿDA>Y7m$W~a>5  4q^?לn(~^!OK|~^37$yW,#CLմy|#A>VX2Chx@h:Y^ig<2d]',@BAOo,Ño||[8 _~Yf/_K,l=S&x"R'7jڳٲ3L?ή)'!Y2f]S7Z&z¼~k+"u~-1;﹚ f>/ӱg:_([:~REN G|J3gJyg6&ZS47mk~M?_||F:X^)YFLo<ɞՏuYԼ~.ccYؤyo|ڼ~(6m^?k&pѵ (;i$el͐ c׽ROEuew-:VӏƬ.]B0QT7U1iVeӫ`fq]c!0=9bAm%^X{+eWEފ\-w\5<i}>=sxWԹ3tĝqv;ϟiOs's$;vӇ~VWY)u!Eyvs_ZLrัL$^z!%oiH{wdJh[~rzPvM81ėNڊ-Gp ֲVo38|9VhlgW&W/6*7[e״+X1&񐫝^εgѱҟ64K0\gVX2/0_jx.eabnF<_v3;#jƚ!7 +RyyUgsr] |:s엘\=Q !ǥ Eb[_434]S7_t-ɨsEy+}~yծw2W;|# +v\nnmJ~ GĒƣSq`zF?e0 L|{LͲ[).yCYHbcC?pҮ8%rCݨ?|ʏ|(P9hK@{_8fpßGڦՊ'_tB!cVf_0Z˚n3O_5 9G.T{T$պ*%UNז+ŕʋS:)}iQZ%F<_%p"fkg&Н}[ua>쨀aM~&cFDÚ-ɘg_$?` +$OKPw)M?u*kFo޻¨78 ѳdKy4{q㴎:+-O,dY$eB"[sFlZ}JN6W7Ri͇f"ѳ_K+pDή+_kC+M㨽|w˙HiYqz}]j*{jq(fpH7X5q8bA @*eȑPq.gy+6s9_q[2q[@LȈkrD;ix)Hi)_z֬ܽ ''D6(*/QNse|"[.z+$|3_ +{͍#r蹘s\kGW }Bu !' +gM\\ZUp3j=O,O6{ooLrC@YjbET[kN5Y54XQW_{ph;Ԃ&/ {Ifx5+Kr +Ci4⥰mSHY|У \{w݁%֕U1°&dQAX滑gYEU+ kí1ʺKF{"Kr@[ѦX8꿻e\T]؋:&8yIo\}zf BOXi+3 ՘+SYƯa?H rl>H-5. M4IL"!A,I\ߙD\a֔ؑ}D D7iB_wcA"65'we06큱˙:ho!"Owo'.k3^ (_9 =Z1B+}1U@$*ma(bF>kJsU۪͆L[$@y ccˬb)¢OU1Z\z|?QS>'Cz[cם|H(L,1b1;%"^"%*1%U-Sv Gʱ56ld@)v׫˰v|XZRbzU@5،}B'5^;`1}%Q0uVbDŒ.'Y#n9 %r2n\!В*QOd/ ~fm}+;Ƞ+y |Iz-IOTJ ?r cV} -5zI=L?g%2T~kwcgq[(G 2E-˝O9lDb,?.V/'Y]˃MH VoF׊hsLpY\ }z8CLKzhxl^#4/R-_KOHn/v^d躣n΅]%+vala/U}5 ) dZ[}Hl0#F濭)`GW]#'ix.2 '$.Ȯ$[tr=b#dx1(".v5WS,yzLy970K;%<w{z,)tWp!+ܝߵFUK7=}Xm{cjDo[>oxU]cq?ʯR7*"A؝tqat7ᡖE.>Pa b~L쫒0R|xdX|_%&Fc|i/3rF+Q5\ɫTBW}t`ɓu(?.#J8A$sw$!ȧW2›F=.!Ĥdh>ʹu +uQO%AO6MIB$Z:㳎ȹpS3n϶0#5UhSky!y^ky /QdaDJ@- g'k>zjojF\Xy.Y*cL 19Yz{3x58Wcl.*@i{w jg5-TzSx g\w<;A^:OhY;`c,Y;bA*&p՚DCŒTmz'խǵKk μ!/ cS(aMܟGŒ@+P,ou}KYGTaLQe +_&t3?5vFkD<qCoIC$$_LL-¨74O]h!z l&:?𬾔Y_QnҒK1hvAw#,ђ-@2*@E!a‰G4\EwZ0Ce]|M)%67ȝrGpO5%60ڶW!\%ZQa㮫 gmo z,rNA#YK( S4 ʩl쑂71U9x__rX_~wa5[++[[\=|?rY g,Bc,h-xouOźG9Em3Dk0uizO79zAO۩uکN|/ղs@EYG#2O9gz)X2rdy ev=w7nԞny gDV\aKe]FfneԂh5S1X,SI~aŔ n/h,2rsv!Lj1kA 1hº't J1H2w N#'CNtA h  X"'<!уAku>D?p0ޞӴ6Ӄ`[<ߩ}=b$?)_Zc +<nN},M^2s- NXn斱:ݪ-w;\:umx?W,\?9Z\8G> Jo?`Laçѷg / Ĺ㹹ݹnk:)7Uy3f|hA#}|k)iNHncT#P]o:oQ+p:C'lH΅!yA#d9J=r?G/yDvIx|ƟJR h +MIHvd +5 U y~ҙyn1 +hO"L$bAE X@e<'IXCX2%X!1Yu,x^6JxMTd ˴D("x(TTdYM(H%2*%$+< ʸGJyn|xC%}3).=~*ݏ~a¤1aƩɢR%.]WZrUq$XIGZFN*+5E_y풹1D89ЏmM,(t)h-U@Y!5&$y Jh`WOLjUK%Q)`vSV7`|%טD]S[RI;` J"PuCM̫i +)L@S7xIy2]h3):귢*ËT 祢3, +ԎD`Ii`&p;A4R(*ǃ)9&*NJMQ= +\x|Q҈totA6.#@J9y:$2@^@w)Yה9dbumN(2gx\l 꽲xq߼*!J;N9h8UԏT\,x$6r1Xւ R +k_>c@E88Rv)"+9ҜއpU$0UWP jDP<> +*uITzU.@*7Dϵu]R釒ђL, D_%ϋAZ2%H` +aTD%%"/9N&A`Š$kSBjD^TxKD*ѷ>yV+ $,ke甓AI0S + KЅk_:@mo/t +Fq ASyUٜY?14:4</e,Xx8 \(& +"LWD3bE >"R1 !Z LGGxظz)0MC% 9֡LjCKy<mRA}+I_"gu>stream +%AI12_CompressedDataxn]ّ&x`7ZyHV.4l۾F!AK̴ʤ짿1|{)j )1ců^\z#-i7/퇷/^ëm.Z}@t˛wӘ?>62L4>W>2i >~WBG7JO^LJw_y{(L݌}x/{ O\ ~}o?~6mw|Yۇ7~TyYL9d"Alи_枸Ng :/޽iqӻׯldcߴt´?[aE8ٯhԛ7o"\xCBwQ~ſ}|=p67pӸ|;ë׏7/?~xB凋/K^Ko/_#/6t:77vZۼ^ymH}j۾թ|Ԧǥ⣷}u7.^.^~_W%c>>>>|7߼#;۫o ^|7o?zqзD^4{xsq9hg ztGLJWo_>?? ^"~s8o>><%v' "ů啿ť% \eyt$ "K)?-pz׌ i}^O㻷2S)>oI\| /q޾b^?jo?'\\PfKŌ܍nO5T}XgB[|-\wzO/1ɗf/B7ܿxC +xyOm~}#tW~Oca+!S7o^e vb;-tNZg~}}l,|Aovt->|lҀh% 7&w^Iŷ޾(k6~̋/?Y/9_K/;f1#I)) -]曇T7~$4W=WʫnWaα~~O~o~ +s=/Ioo_?\Л7~x|[w~׿xsLkbZ-}/OLl_}@&^VB9LIj%:;wAa?_dAջxo_y ›/#_nj}z޷EzG~#>~ + /~^OƻAD!>ӷt᏷Wae&&/^)nnt4=:Alk+:LMB%-!TUb BNhR ] +!M"!.K}UW]v'FBƐo -i AQ/ ]m'䭄'JӕIt.WoM.CKjD"!eCksEN/5JMs꯹S._s6]NmT͝ڬ/܏ۄ'|ɧ>xg6y<\z6ۓs]Mu$Bԉ UY.B4 -K"bcۉUl(\XJZ)JqBdJ((P'MJ.)URr( -RJtȨ @J(dg:Js(QJt u1"tE'(BN@LL"a%cX7q0b*&L>iT4]o8hIG}|s>=n<{N{@6+#gi"  q'Ÿ]An_vŹu{@ƚD=KLS!/oT#R*ɔ|k:T !VLT +dh1R HdC]L~ѵW1&cFȘ1kBИQcfV7pWNP:.;&wL +=&|Q?&\o@B 4:E""#GGUdD$D[IrՇW}n\sϥ?\<}UG$ϒ7+x_38`Ll>E 9!œE,}\$ O4{nYqĹf\=i!O{ӎ<}?'#!w{qq'Wͷ_Hɳ߼Çzxw4ZF8yю瑕<4j?go*۷՘J}磅|ytǧ8GNFs_ys"D7؊p+~靄niZlI3A׳ݏ[ZEaٓvS٬4Ҩ;y.Wϕ=Q֊Z!sʁ匞ji;O^=e;O[=͎.ѭ};cճg= ?|+?t᮫`-/R0`U^ T"Vx1:sՕuH!pڙ.qS:*bRg;l.\imynt '9Q9rlv۟;˔m]K:7tiNKrIoE$,EPq11L<]^AMt=S]Mp;§* ܧtcQapsc>1xło:Ov?pìmf\=gsyf^yhy6Xl擢?[;<ܜ+:ôXZ +AE|uN>o~*ے4|N'8a\{ꈟ2ϔ|&k=& .ډvy }rC.=w[Xrh:jN9*>oId_RٗdvuJvFID]x.2DH>Mr߽͊׮D3i;yD%Utq,ƚi'Yt+tÄуQS sdg)2qڥ}wt1NkSIdiU|R) sý=A)(q,CfUVb),a <~egzw=Dvt6nG/yٛݻeoMWo\+m&F b@Jl:e'o`غaZ0m*pbߥ.nwPtujc QܔyLc8VȼB=r# {.OC沇ٜb9[9ޕO?|:(}dV58t BB _zs]jX1oI>?rtN_F9eH(SXoY9%o)'A{:v;ᕻ|I4Ķp3G<˴6DK:'>&)Џ%tjI iVY +5:y +gcn靯WsܙK ;%fYϥ#/_ϥsARin6p`Si4`٦i`wyrN'ib%m>rC~z5G=L?2sɏo@xH~=[C&l!ڔ1!ڔe=%;KSZ3Zs‘|H]tUހO1 M@6%D=ɯyKt@E%b?;pZ8 s>0սżĢ 3I;kO{Y9Ŗlx^v|xgti jbJ{>X 1v`6JXDb3psBA*/sҽq `}ϫq*1s9RYl ֗<}#0yLo%X203_bO׈i ڷpW`vs Y6Bo!< Lba-fg揋K\pcE`3_4W1Ieu|1\ խpna7Y>y50_%溿uo`yy.p|)z,axjl7;r0ILeHz(aBbG!L;”" l[O2,<%(+[W6AfP-e5[ hes q(|Sŕ/Tq&y $kZ͢C=*M,H* \+e̲<-fG$pu>NNhOwyuB'Dw+:Fקe3ӲN&d/֮gde3}ƦdggSZNo_]NdwJrs_2WC#_~~|I~͎{\ Z1~ ^Ree Qe< x͆_4i#c= ;X8 w=mvj:luS`wУ0+O=~gBYN}0(1Ėf19F'w>TY$p0amt_K@%~'d{?(1qڇAó;EC:g>Rk]mNɲ/πRtR\ I G ρytrl51պzG6j^g w5~1HZAy-twtrRVgl +3ཕAI˙p xAI J` ޠDF>^#ۻwz_:9rq+NK''vr9`fPH:t\ᥓAIծ'K-.ޗNNhl!mL' ǥՠ͗*X#}6э)( m'xn?Ks$Bu +ԚfD!bk*\>:ԧb+Ȭ 3L"Ϛ&u0֯g 55t]; 1~ +zL$")$=7Yb {Թ6 &`GiK +w``^.<kڻ(A=V#2#R, +%u@;W>VgHuf|-e,i`3,n&Db~K0K+H<=:ޞuF鼞]K&Jk֝o3QKQpt)&?PR!AC?dP;FJ!!yÖ́U2CWƄq -W36L!p3z= [kiBS2shSP{DEPV\ X,ev&;R9 ^G[Q4p̺::YRs| TQEoT: :3J0JΞ[V &  +4kYs<+mkɹX c2u! Ieً-7c*xA(%8[ tzdmtk/`(`!n(TqD +-gv4X֌NyvpS%Z՜f~P搢.CkʔJ)kfU= `X۔Z>m1\B^$fd8RɵuqW NDH|hNPNI-0#4C @^,V2BOi°3s!ƸWi#ԃ.id,qw G ̯[RKm:c̮䇆9&uMEvjC,=rZq9,ކ#@ד7}bI Q,iDp$T +AZ bJwb+IGT( |`aQ X$P::qv +~ %LBjw YTwwIE6 Xb$ݡVm܂Tyfws#+ `Œ 9uTT|v|`MD9tQP Ig JU XT &` Ap}'-, J<5[ō}PIְ"-xJK a;UrRKg"M֟ +KJCdnElJJQO"1@:ݺ"YS"#R ͛dc:-nℒKb/Y6&"i$@ˤsW*Plͱz5ВDL,– 'a/'T=2%2% mb8MV)؆u܎1y:ej'[AH+Dr1u1Bb[ժK51?Y 2$Nb RWgAE +mrl76@ +dfn^(bXڶEkK=AFbBJaE:A3@_D)QiB]~UsԈ'vf۲O;46Շzu1T`mcs@R +&b#hq9'PT yאz\S\ tb +J"f$ i8ݩ91@HlŊkJ\ZG;ݦЉoO7 NkLcjlÖE :<$mE[bl ")F1P"kݤnj+FH$,Ff +# IŀݴѮ=,a:kví1rl-a~f<<_b{!i "g A^@R .lRuۀ cfBVA1+,B hXuVXHRߠ-f6MtWذ{U |vu*qǘ 0O L&9%Η(4Rl'F/xE%r^Laou"0lʠ̖&9Pm w٦;b9Ds1}@Ag)90E w~jYu8d*,T1 {u)g2_S>Bl NzQGs%y3i-Wbrc`1rYۙu]tr}b.5:yA\=X~XJpY۪092P ܈N5j(X[~(A-Aw%,pfX f.#{mOlZa'3s fGŶnmdYcp+pW_YcHłHm名 *Vќ)J Gm`~zf}$`IST{ $M&nd@&bb^<$Yޫs)p؆ c=jKWt50vꇒA疰Ru[3 +.F.viZS0/::u}jveM6`œzImvY0T +;mca9V#F/bZYظכ2!@MٽIGb۹qj6(!Kx$ +Y]a $dVYIPmeÓ(*Yr)AK ̫l-3.ݻ +VHKZķ dM\϶C͜1 Yp#ZWRAB`3{e=HtB/į]7`O@&}!ec00 +[ M>;9qИGAXd vf#&gɒTZxDVbzR#+)|4/dfg_Pܨ}V- @cpj1ZI:wEm!4+MReOkDnf)!ld +A꠹E |:ba$+?YY) 8^ %d(X2 #EHBLGK"Zi aG#b̲ڛ*ΦϝCádͼ+bңa?H2 iVыe7, +\ъ P9mCEyXj@Z$&G7Y)5q5,U}z%D{$O 2sCrzKAXř88zUme\mZ;k^UpldOҐ 4t H:І: s>,N3 a`p 02L,YѪ[*QXlFT͡Dn] 27`t`\44$ìD*"2K9=vtg0}kWA[KcØ"– +|JP}/15Mc9sޒfl/5[(z3$J?FNNuA;GM9|#(ANO^Lv.`5pkӋF"f;MSW`VvCr1TJRx5`)$EKV+D0p : _xFx yZH˖aBXƀYD^FqF ;}8h')uYնv"hSæ_ș# њE[WPJwl* ܧ'V?'Ox@ -HPO +d@dK^]CMVq)T18Ej;]ҬZ4pDCI 0Jpz4Seb70Ld|UAS~ .JަqIl qc܎Fѝ5Ru?5̊|.Z@.>X<6$z8*gZfvy5`kc#1]p媉 *!q{(I? g150TxY{-XYxoaXwQk\;ᆳqlfd.g,yڢ)K!Dy)Z5z'$l ,>3٩sYV `]Y%#yj k`p(,Zs1XAɊ~~GfN-2T&V&1x>^&wlbwVy##;{(:PSV#^ t^#tUHsڀZѾl hQ +qrCHϪ)1i Ϫ T{bG=]0?kyy| +Lъ* 3`W (]2*dSDxa}U|^W! EP[n?8K]))Wl`s(#9󺗝pp`:M8ɜ2} (aX'ޕ%qHss[!4/(楒N$"+f9ʪ%[$Z+ EFazu5sTT(b*++1R`CybG4Wײz|E*R+|xV<t\ AxAb%dPIN3"Ն-L,iY.%zaߙaNhhGl%}l_FGjn{N@5µ11P%n[;1Y}kqeTYP@]]rRd-[-Zj +ʄm-Cq7b.P4d%pV.6R岐9מ=(2,>;e{?W\TO$i  q8_,D؁K=Lm!涪p*\+h c'BB_Z6syN~\>Gbı:IOZrt- IF qqxϫ{ `nnN):xPwXYUO}eYA?hIO-al(hnu z{0 ·۟^~ ";`\ +D!1v@ ?=nzYE{auQڄAq9Xx̃.8$v%JK)I`5x6bj΍dFz{Cٗr3jITtP?I5?8 g wD]sbϖD,êҡmj {R2lؓ K0ךX7;$VOPF XREH>|gF2@,Fnaɀo} 5(xٚ/_Pp6򩄹X?Z;!M4gv esZ#bSy4308hW%Ic¥}G> B,3y +㖪UĬ8 d-:ۦ0qEy3iAH ztNW7|ǽ"]ɣ1!Y7̪u-[5c}-Gb_[sT3v-nu%ڙvw|*L5S'LJ,lh PzIi\[}2Lͳ#nw"۾P-a{ kƸŷ=8e;h?mO^=)x>cN1B`qu\ԕ #O{χ-^,eIFCEN/:ījbg5 um{99<"7V +9":jFIz?J|xǪ,RhݰFpG[-EYh#Iw33[1jIO#u æi.$%'Ic3s`= XT`F4|C܍aٜZڊDr6#WI&8kp,ufA5x.~9; +p6ES|p䊗K\+9?,%bFG_ y5̩YbiD xw,Nw qZԿR"i1AGk-C[tPU=b|͜ pb6cJ}{IR0<ÎG rE;վ Y+U?E>KZ; +,IJB UpO>`-0 Y%DT.^8m@a ciKx8FavI3l#Jgb:$'P$<x5ѳ}1?>ir +CN1 #վV<._nZۢ)WI =^%cz`M/kՔ=fd5/ﱨΠŌ.C*Mє,!EjMo_n㫛7}|_yf/߼zxu go"p%_~/Ii_Y!#R8I̡wRc0 &F'=&0#Y/̦çU\%^Sb I CM[t˳iGMP9i!KK  m K4h|GZIR+U{&c +8ι d%&Gr +XmOA͚H-`ȵu؆Pcߣ{ÕS sevP5^SDK%8u>`7eÖLDi7l;SXs m=]_~1L!OQSN{Z9ÏMJt2!|vގa)0{um>V`bGU6.9+m=t`n~ 2lа7tt@-uM||^?et Y-'Y޳ၘ.ɜ@`u{S i4V&(&jd +Υ FrC=\dj\68(0i){bbPu*rt9 Gh&Ł{d(S!6e¡uPaaO>G9Kc' 33J [.81ۓG5?O )o;LO1u9CTJg(QS936%+:;}v@/UKY]bJWE_KfDaIl}qzrlZϨ_MWrlu05NgP )|ub0'䨐 AenV>&@͕O鮠,Yq-ҖN:jfF ?b +`TbLKT=- Cn5N5p4m`yvO)$r߅ƶh`b@"0+À&9¾ib"I+}a,"Wv1 k%0UNff3 vtb`UeXoΟ@/G%Myhu!B72Yo0S;(o;cE5U-ug]:a``6}J i I~'X6m00v߅ dml<\VN8"uVG?F@؀W5.@l76z 6Ě):1ʦ[l[+{g&ss5g 4 +-B5To (M`+mr_B5\:짆2Ppx_diEiۯ\.eckY9fp]Hخ+FXmy[tЫ5b^ `|3͑'=̔;p^wzВco = 9ֲG+;q;mk66;}[@cm?43ԓjЍļʀ#("{#3 Z]>Ph NN܄ f2 +7ڭY":-V}eDj/E CБxS3|v d:,p ə[YX4f7i=~CUݱ'Nݶ$soWW+LG4 qQi6闢R$fX!z݈M`Y5 R6{h 8GSU:MO(-@``,d}].XlBHdb£ 1}Ŷʘո4.0XBe'dcT𬔅H#YZ(uu8?гwRNAjc)Ό[e,E + dRńmS2)s1EٻxwNoҫg@TM,aiL]@xw:e0/uӑD[yxLE*H,XЁ~X 5WMжjb5jLrY(ZLE TR;CԞ`e561TQjDOQ`U7/ 7uqY)5W)0bc&u cvZ,RJ6@)T*x`# +|D 4L<b4M%uc16ZVxW,?@(0dTjΘ!WE ;nul\5Aŧ$R n&Lfd6.AѨ/,nQѠhŮ1R-ƥ͊FDԃDk%&>=o)Mrv: zʺ)XKv5D[$# . + ЄjT 6 +[N\D0!'Ъݎ"fY! V!2'ecSkh\5Ut^DR!"T&_ A[֗G֊`Ixꈤ;%sqLрŗVwi׊5qcu+Pu?gSlD 72BpbX,=/?{Z;<97I`1MrS͙ n}#;0H@`)#}Fܹi`p=vp˽-tۓ#5w iZI1vp81|2p ԚB&3X$"e מl t!AP>~t[K8eeK]²+/NiN0RCpimڶ%6Q-6G5t=AIKL)'@@QE/`nۚWP9j֘`"cbz3ńJί)T@Nv,7@Oe9t#R4Pw+X1Y4Xf52%XBòCn)SGY@)`EgS)Ca)D nxMe+D9?S=GydUP9|-6=_lʂ݇%& }0ʳb0!^8lˌ[ +J +yUB.+, +\;ua*r l,ফۯ 'c`3ao铃(&@S[v36Ydt;ݙL>!1SpZ` "!$9\s=͓*2d =g43,"8E_EZɱ%jAIݶÛbf8Mάߠm蓝elKD qaJ@0ag L'?y_`_@ )ߎ|@|'6dp࡜ExX'_IΓ刣XΕq8H0pdWN( Q.T);zj.9zt FAOKJՓ*{@J7uh ZtT0FN 78P؄!/@(;õ!20+F3,w +%B.Ѱh,6&7LܮZ 8˪K b{[C\42Rvvqc\Z + gYw5+ppk4n5fl>8[W=k`1<+.v*e9k=%$TX T`=7#AϾ/`Ihl5[926G7ۈA7 ϧ%_`lJ譸$U!p0[P<<'?p[<<`z`(\_Ska`Հĉkmid JߣeCɄa.R+qnm +[oPelͭ<)Kv>W%`w'X:8<)/ / SD0=\-s(A!SWpIP|n^s8=}iݤ%dxDtW8ȇC9wgZ߶/Ef?g)^@\ `ba0}RXZuq֜VA3 s>|͚Z@ +!/%-n $%5XT[̤υ8s%a&F{<ʑ M&15ul}zųC@S鉮ÓޙQ?䪦"|yJ"xnFbJM1~ 3дy%%rv F]7,Qqe&a0E;1@XE[eLz.M\qQ\0S4@]* Ƨ؂⮂Q",/,5ۭfq͜Hu XDg5lo Τ`*#WZkK'k :.p]se ,Kڐ ,hnFj=ZyY?=76ɋֱXBҀ0#U\KOJ+ ƺ[Q8U&`Teƕ=0bHI4BhLf LڏZ-Beݲ89qpC`|XPq \L EfNլ +`}.̞A(A *Мga#nL\@X h2$ 0h_ߣGԁ kԋDkժ<=cZ1%|%| ]iP{l l߁@RJRjDiְOs30Ehp]niV!Ф"kF}`e]Gx+AjGA7 +^af +΍ʪZ@7:Zx`'^bt +Р DzX1n)>%Sv$=CSHo b=e-PI"vѶ"xZԁ^NBK+ѨZx +7.V-w jWfejT%=g2H(/@e[JQ r.eȦ8`w.1)h ;r7ð zhYb]f]C0ZxBd1C-P|ȡZ+]I7d OjhVb%,l6'u#?WDעu|X9j$l'/ EZBۻ4,mZ{uF+j[UIB d1W-b +92|:҆M _U&Ђ0iJ /> ս0{:ϭ +dAcF5;B͂meY%`2`y;sI"b:4BpϨ;s*I+;kPC8ߞNzhQKm5Yz+}^Pi ]d yƒ5abQ.Ry谽uѯwTf~BZ_s7'_ . K1P,1Q +LpoII5v qoսylIعX{kK&iX2C[rW˕-wɥhsi۲iBSP2^#{e}+[5ʜX2|Q& UOeL0EpʈVn8ihc)([5O[T [M=D^UGb/ėdU,s11U~^Uqv}Rju<{=Wj߿XTC\>7v^wD܍)79^HR\p$k-%xu`qy1n΍#lRQvļdv_(uz/!{ctVa^QoE%@n ,VϨFD&UtijiXEߴʋx{cg|] 4|hζr $`bwQ|`iuoz e*APfouRnXNv(n*On;91}4-Ul杵mR*V")jz2p.E+lz9;78օH^LHpeIN.. ms(o?5"E$mIkP]]S-fs%9kYIbha6u~XxK #PTeE@!U F5pX$gzف +4Tz8MR w:^/yf^OV<)<٨yҚNqZJI\2z]} ؝*\JM΅)yddaˀ㨧)X6ɿc=j4O( by`"AXOA8QQ9~VWM$t- 3NV{2UVgCRhm?ϋ %=Xᢌ!w0 +(JEl1Q"W*Ε!i iy ~ zRcH3&%5&ƿOf5@NȪK, v,*/cJ愤سH4Bc6Q_!Qz% kȍ'!(B +SuMXVԼ.c7( +Ħ jY07zJT+4/U7wɩ&k4{B}NYYȒI<Ȓ ˜{W1~ _ȫjiExMkT!8]/ Me^Jh75# JeunfYTNZO 2( rKrU_ ?p$&v-:Dv +*54zMsybN8MX8КsQg,v+Atfg)mihhY+B=KeRIF7نieUO'rVUUL(7'MLPkbCkׁU>4v,3_#N]kf JG=W +8uV|zQ!MNMT^VANc+;-q"@,iHei &*?҄Z-J@D&-j?9',.ܐ N?g2Z@ZHQUU%Dؔ?CpxrX,jLU2hb!)YYzT9 ֬{G?/ZNQ]ŨR~[Xȉ:@0)RV4E-ӳR O0[PA,YDIDD#`&f wGՠ-wJ z 1Q2d3L!~_Ht=Z~HnZӾUIs7 ,҂sP -uu󵔧/JXM0Ez4>WVli|@0k4;d-NiĘze Ѡ #ās1Flpda0Y{SE+i/Ѽ-qV Cl@ bAʼ#q9B{,.b%.:M  *q\WҺhyv$!w#O#TazhU.V +Rfa +W t&՘l +ɡ8:%h4OydM%TtMX#cz"ą_d 5i)t&j%E)H'W2ko*%ǽhYЀlzB(YW؀[S᩹&0s7.Ƥ`f(b73 ZߤR}A%mfoÆ:01E (G"﫵\#"J?;շ8FWv7F%Y- ]S(ɗpPnFXH_%k^y{'4O3h%vae@dkB +N/P3<,CdfGκͶ,gn\؆ cZ\M>%D1%N ZFp!eE9I5UPA 'AXsMkq[b?f8o"MO;˿ 9y\SUq(HU'qhY@4ӏ(3HLLP8lA"(Ĝy +͔sK9Ve,cJCAƒ-zYT'a#^du &tbr̭dZ eRd&kdt4e$qS[oz-͗3mb˺V1LjU6'5iLd^7ҙ݁4%hlggJT{pHbb!4V2G `sQU:_WAL,4Vg(nAABB#26k+i𩜩IRI褾uwmrR5hh.}@WF0o*0RYf7݆5,V.!.Z[^·N T}R5O썄/0.OBs¶Sr@&ۧ-9SLǔ,GD#q`m˸^7]T=c ,u +gVa0Z'|!z1khL(ly)+Z +XӲJ E"X3\;͐_hK#4Ef +Brv_nJ΢ne'oޘ /9+*Hhc"bhn! gy4bRB:7崈2)IդzL'Sl dr3p'elK,V&bJsRAӲl1[MX^x6,FV[oc=%}D^41GN4/1-$c\>krk4< 1XI8<'kDSn `1b\t r-֌"봯V-1Ӿ(ë om*"%(yŲ#堨0(7m Xbghy0Os {upA+ƜJ>.9Q5{ F ]FZ6D#atV3c(od0'=Ðzej]VL(LZ | ig{/Oif= +W(6~mVXt~q o6Rkn,4jB7;iLq +&ݒW>H)˞^Bg:˧C~z59@2- +Mȉ$ob vAk& ؇fi̅c֞Ag']8qJt8&kꢘX{ O%D +0V+Ĭڀ;E"V]ҡXr1P$D1N8~_5%DAP*1 =0$y[&SZTgCU*jUb2B%!z[F pDf9H,}BnV}oe^]A:I(ġ eR WU lZr]wTg r+V㷾<Ւ Xa)6fMGUyб͂ELc҂o"˼<:R9/$ufF+!=){i}֑6+' (p9%t2(a!J-F%n I* cP-/E A3pW&%xyF f,ZEOԺr\?P#$IU6g-S27g톫uB41u0 ZE{@f \de%NceZ6QH: ,7 pNr+5]--BO&i<[,hEE+viLrke!!bb+U-!mmEEJ+u1$vf-R8;)%@F gجEz`%6dP[v)O)] ;R]A4=^ŀYÄ;ż TW6 +ZQڝ6=v=36G%9_LiK֠-~)*$.zfq!uBi~JZAӞ`3q656rlYȽL, +ZH.M|Hiљ7OZj%]s|4%dFvtM@5_\n>̷vk!+k/!nb[2aIHEnR۰ruØ%jC w}-cmKQrgz _n?Ô͊kܵe/e.Y +i#>)aʜAe>/J@v[n ZkJ%kmNrv|$e-~ZTߗFK݋I['x~JIϋȜ +ButZK?y r"'RNi0[_!jxT4lp,'m!f#f4c\ JR.CXD+H@]YHUmC_/xeȆuS|5L?3Ji@` 4uU%6 cVEVӳٲ$*7W$/k,;MP6-j1$q,-*5"\͠cnd4훆-u~xRJs 嵿6mJ7ڤM(3+̊6;8/ iَU )6B6(Yf+5׍o]pi;Z/hQײ7[yORHT zpX&5g&ĨI~bsݞL?"AU^}hDE\ڐTMd +<-3tX=vml{T\Aú鈝j,;|!du Nf Cص)lMٖHԀiVX vqivIqv:22MNb'Nd^Yf+ DYs21Q)~X L z +fj_d/((/`풽u;FM? |dkyλ(^.1V?śfYNB+u#y\"p<j81:vq3Ql"̀uj![t9};˥xk6Wvq{'gVuBƊTp "D[`6Z x׼M-*TEOe%¿쭁,`PCW m|֔MUQ̈́Qo(nrzH%LTo?]&J3޺jgA]%\級i [7{gГnU ,ې-v +DiI~qǾ"nua *(a얍並MR6BmMvΨ BPD(CE~,Q/\ +P>%^1}445HBXdlH1,+La,BAeB9 Yc. *I++00-"ғZv^ gm5.mGy9r4CA1Zιnѓ/~/\ZE㺞 SնfXd"NWfY/-f' v%Y%ֲu`"V4-J3:pxJzfd_휍D336/Qe~0vφCA! ln8{`Yɤ"Cmlx/]c⛊b[. Jn/0ϸyʐfۊsx%}ar2Gv0`dB%LjaN̈́:~YWieU4܊-)CbzĝE +jJlg%"bZIxRlx{agE1|linl-^]=40hY2ԗ]|B6r2+LcNbx,.[-?cwU-hj^إ1S/H3r/ sw{';أꨴN-ʹr bcZh!LDBb”4[V-;轭&-&XZ^);];g +G(жY_&vz{QPRԻiNUwUh-AC"}4'FBZq%ZfU5$|=2Z?GJ {H_̛ACҜDkNOom_f0O}EheU (X9>6 0dV:wI5ﵰYY:%n& :ɰL@tbG#X3dX27KS20ZQ; ̂34`E~7%ug\Mo`w[n Ssn|Mk @1Bm-5+ЖI7j!Gqp#K,IM*JT= * +ª3%[D 4,~gC艘8$մf{@ONNkp߃Xy˳Ҭo^1&fꌥDE n_* +Ш8ݚbYq76t.&QIU9`sSr +<}ڢd+ GDTeL ,yjd4G`*Qդ&B:EV!!(86F#]z&k +֦ 0S+@9l&;l&+$;5uB'iӧD^UHI5 Tϵ l= EYMhzCkl/p\[DhSnPe.8.kT^^ @Ȱ5mx)%kaUOC?+C~y(ZMmiIj%p#ؼ$t`ӋW-M& r%luZ l]Tdf7bJeM 6U1wǹ wzo<]23`)݂4ᗽtܭb3rה|X%A_T޴YV_0ZZ.Ȏo%gY>n[J6EE*P~kZ:AKtlj ;oztvܴtEрY|CÜ_C?bk%SjtiIXÉ<5@NfCH<֗'WCmth0(hS]M4Edo~!HPhO˄= ,*$ tv>t";5l֬(bEk%;9}$dmE-ZFhr}fniY 7fwd=MҢviIKUͪDhI뢜2Q"{ L+NZچ8-jŅ!KSWNY+Ȧ.ۓr:1P=so:@ )Rmo͒IljEۢ%]"8ŞZr!biX30@@Gn]H9PfPl-ty}8ɨ.baX/]+'K3~QV4U :RhejC\oDkV@(}E3p^Г 4.z&'<ޚtAH`~hI=p'Q5ܣJ*Aêm(HBxuE}=ZupebUݛ} ¿GҊMMpEIZD1 vT?j7@nnc\v*"\up-CdkF1#eѨ^1Qji*$[+aj1Ȓ?KBשiWXal +u+ZVo_BAhDMUgH:{oDۼ /TbfE+ J֢Ǝ3Ֆ|7Boˏ.B֓1)BƜ^~ݓ [^+3VBMx%̿歑&¡q p #*Xvh=9m6ǫz_Pf\,{FSt{$@pC lvbɍye+o/n rD&-33~Y\n,{uۡz jg-K73ԥdrVld1D.]W?MOaGa'nĨ&?6<͸R|*M +@mpG29t8:i SL0ôtwJWJZ?:֌aIOjkdy~A#&QC=B=ҰyQ9odp $r"dkznWP! $B ?D(D}<` ҉BZ .V~)F#=2x8YaiNHm ՈZ䠝46; Jp0] .WOd˾~!J fWظ}%})7߭{/-4#YZ+4)tZm^[ǂuC#P e.(¡eDK^~S%D)T.mfbv8w3 ^z,J:F*hdZ*P<>I+“NQWzw Fu+&V)Ems7FC +ًrQ=j:?gBE?KM^•Ilu|݇imȢ k'l9`{^tTm$SzC[#b.l=Ѣ(.lTRFQ,Žsy>-o:mm +^LJlp2xi\h9rHKCBEH9^ߛM!Q 'נ (^Ҙ(Aklb9r^J[p2v:2mm·cC0+r?*7Ly$PO*Lww1u3⋽_j_?>gׯ^~㛛K&>;<8}OA՞￾{5;Ͽ~_3H?_ɿԱH?uf뱼5`|t<'&ϗx_xp~=PXGs "Sθ +g̓c,G)Lj# 2 áȳD~*1QI8=xa bAQ5!c4cSzb#"ž P⅜m;ZFDgҙn_w.DhCԓq#D,sjv PXM>py4PSPNZSbcy̿ b|""w%I)i:T~0LBi?ғT3Q"tT)I\LO:}ǡ٧AD9oBNJx{AUn~<σ踠7; <=V<;.(Lظ3ěJ pnYPxw+`PSrvMt= ǢOҙ &2ꭄ=#[)LP}I% ON~ABKso*^a[iX-\h/\~<:aK +\QF0!-_ q "3n F9O6D \Mq.}A`X V4,3l製Y&ϻve b)Ey24A &H(eX +p 9x]w&ʑ9R\@Ĝj:,qEC*, 6IЂDƇ*MBn W hPSUtH`beaHrcrhwCHxdcg+@LI&9h,g "HYfI @2GAH@|DT7!W017֫_ XDN%bA^@A'$v͎ +ʚpFg: V$3cqYebӋ,D5{=x8:l2Mʶ6^<ܤO ܽM *cGU6!Lߛɍ>/Qc JDOZNܺCAE% 3e9A*LRK_0<9Yf BV%/&7rx;=˺)Y=/h)"±N@2]KQN&V9%>5UkwQqV%T ^r%4z7g)ЖĖ mCrOҝ#^:H-NM->"W.롭s3!kBVH IZO5`\mV*XĻufQm@6@lTވ$&VˊdgcA<$1(Р?6HSh4pS">KVBAA^@ݴ^Ү?Y|Y4eB@;979ҝ#P'!#>z58 +?By54TY#MXf"2L7ubN j #a.B +YlNJn6^XQNv  F%2H t@ia$#JAA}a0bf"Dҕ D +.Id2HYՑƩ*țHH @P e.J|n# Y.|p3CjDڏ]1z&vTm`SF)YoYNEGE1I4y^"GtZ +Dǽ[i2ZD"M lhbRkO.V L'2j:.4p3kc* +r+^ycayo41d +iÐ@|*IhKwy\Xc=(@(İ\P}YaL9D_SJDDt8eSCV&i}4m*qOhS4$%bf?s) Q`䰫z=VLӊ-EF~1Ix푄$P.VOs/|Zl tR Z]\]Z > s씢0kQ`rJRYe0JkR|uX^e(LYu2QN6t# .Y*aH}"TOC9!ZlN"YgL&Fe 5Di=M#:Ǝ},IP#9UQYu@CT":P 5uU5#vdGz ZTm,3FDVI/OF@թ+D6%Iw@H8 QYt'CqVL#bfE/zyzQ70~/^.L=_, FơJ5Vh1.-{d)vEQ6 5l(J"GaCS$e@J#(Ck.LmW F#=82 CzVdvLfz7A&r /bc%5(~aB*ZL4$ߟH钎T$椒%rhbɟ؏dc HYvЕצ8BkЊw5,dMGT*p뎦Wgr%6!VA䱂8 `qyv.Z9<`}d sKήmĿȴLr 3'8yۢ~-fs3F|5A-x5:A _qYNq.SbltƩKWwSږVgR]~9s.bMUu.hd&vQI q!jQN׸_DUEidbcW0:dr+?*FDԘޅسƁ-ZXSmgZ-Αfrw3K/^zh#<3c5Yr4xfyUCMѳq +v8&vr]m4]Du +z%d0aWLp 5 Dd&"s11|NrQEyv}JL;Hݳ*s%rBƟpQy%pE3a%8wH@DQ"xADR4Cc$rrEM)ɳ r*NHM‹<(GЖd"0k8BIM&H2 M" eM騄7pT*"gaGy(r/H AT60e=ؓ1C]dE!y .AѧY|vB($v &9Ik[gɖy]N?_]˃&S ;O?{ן|t_Wf_~q~9\_zo~{|?/onп?_]''O:;q}zI7g'cr"?qx/r}ӗxlq17g7'_OkrWoV5[Ӹ=ӗos._]{oZXդÿ=Ϗ_{ Ȫwg}G>*E=ӫW'>櫳U];|Xpߞ77Wқv'̓Yӳ/-ŪEG{;{qkxSz9ysߋ9=yvxܞ:oumwq[z]ax~{WǟUQiߝ~{WC=˝VaUMu 3vۙ{;sogs1֥K_|yv|Owk16TYBg>-7/~w1^B' c/_|>o`k]YU'}7WuIYܵ}~ޝppru~u}1M'FK('YC|G' >櫋ӛmԓ󳛿IsZ}p] +8i뚈ߘlkHژH|?Y+>?Ž{}ch҇;ωJ+xMikNԽaeyfvBN==W*DF_櫫/Xu}}*uw HObޯk$e߿ɼQn(;R2 ZWU#ٺ&`a!䤮kƽ.㱇c]V)+KE}hZ]oɶj˰ !_+ӛu`] O:-@x v]zߜ^^5M/qO-춥~OOOOomU3ۜĝM򷫚$>Tikw9iS#%0kk6#Oxʹ}?jt~[Bo=sza3Hֺ(w̓O :S_89 UqœY9wp'p{^''.^9XM]l3=aÝ}gv~vyz9;”{x{2wUr_m]'N~'jQ\lhw뫋h~GQz/=]9;?w@<bez#mucmuf3"m뒋9@۪Gd]ȣ<&j&d+fme ZWPaV.\|+v]ìKMإa 0kwL9YW޺fKy}.}1 WvZn]Y{:̻m#yHe>k6V߅?]X#sQ6G3+Ү=y]k;Torw?;ٺ|EO~4pΞV﹗LgbD%ZYC$N=PwghvuS;zS %~ih;yv샑gbU=-bJ)yPݜ*X۱Y꼟f.ycCzPR_?O?jwaWjnO ƒoofؓ둘a~evxӋ7]?< {._~qvy(bga `kkXI +Ae=7W/iVݿ`uLR5"6xӎ/#Wo&?:=y`XXp|}vݓuՏn쾾/;k2_oot*k"~c"ou"ic"oH"Z+kޡ꧹.۞n?K$.fŝ_Ͼ?=`O+,w;L >Yڅ0. !tv!-څikסEmڅW3]6_zyz1gCۙqw|y}zzR˫O=:?'WǗ_kOwmߝ>83yAsᝑay;͑`OūcuXm| 6DY׬(!esU3;;ϯ.Is}5[Iis;{8-nW_>{RP>dX{;q~'qBiwvn;ﴞN;Ϯ\N;wMkK9D`^9~C;x{Ư?m7$l*Ϗ_2 ߚ@`\_]7p]<ӹdՓPwhG7у㓛?_677/onN/>߬jbɺ,Wg{oʠg=(Pa=d{ z}kۅVjUZ>69l9^[.̈Dی꽱s)ʎyjۭ\TQ+˭q+KDyܚMi[sϻm]֙5+L7 {F;oݺ|Ujo]Y|;E;og,Lig񽗖o]. "[D;iu҄2vڎJn=3ڔ;dşy"՛ʟE=,|u}y7mnn،{'_ϤoOn~9FerCtu1S%\<_1{h︡摴2}2;G0_=ū;uU-춲ʦ7܏ڋp.뻯Vj~ww,Vϯ.I*WjsئD|zr|oc]ӻ5GGkdHhSb!K}*}`wNԽUi km6 +2ZݜIlwp]w,>hZE.Kz>`Z9p^^Pxr/VxH8>tmP?O"nz|&bJu@_ooгWcw&򆄓Hژj:QޝY6ת yuysezwuzu4dďI*ﯟ?G"nMDB޵x>,T?_|ߛg۟ m ݻQJ#+8ͩC*yTj $c >CZn{)˺2ҽ1֥>`]Fqc+?Lmsa–}mmy׺굟L+enZ?^]m'Wvo6(a_ 6;.[%}y=Ϟl|cq3Sk38^׼>YlgB޳ձ[]Jyr|UryX^5OimSugϯl޺fvŗ+ӜO> kR?_]uL˳?zGϯ~_ߎ뻽W=$#"뽙_ wiOah>rrubR+1kAC/{w=ށ;̵a!1~u_#~lֲ|x(:?%?a/u~{0T~cXT~^=̱a>Zkc 5}kO1.?>{؏!65: 0GwwJ+0H=cJ6 +1_Z?b μ|l౜8%Ϟ߮n,6}>vecu9ƎtklpSJ#k^gs#'ᇃ J+BN=8}/ 籏萤C؂6F 򎷍\-b C0;NҸV +5YLrCg]~$tzAD+8o:Z±fp+<4aj:6el6=.Nr=cm,sOt`&5?ka^B4i['AB[,eh['->@G!715HѺ(QtfKЬYx֞ntqc'@ 2) 7a"6 I$9g@[0IdSJыa|C` zK gV&ed`{VQJPsw6+:.Eߖht߄j|&xMeѰT< :l$tQCV/!d@cc!D'=|Jt0"ݹ*#ez3`?}[luUE:ռp)GJX$]!W0oe- l(q1<:E26.ϽΆܹ&H-.R +FķK[Ն@yb!ᵆc|| Kr/ފϱXĢ;+j]u2Ye8"x[]T8Xn[\읇f{w1@6EuSxOnCGD$U$YVGCp|` +,oISsc{Tevy@X*RVGx}-i1B7‘jұ8Ĥ=ΧZaZ<rB kll4 oqIg`b#%x'<8Br-"|r? ۙ 8ŝAH,SjI"{[we;?@c6A1=J-2" Q:5t+6v MAK?6"y'WmݱV3bi߼{XqA$ hslU;F,EX.?cƯ\eM^=dG;tG㒗8 {lP䕗>O瑆8,a,`Cf kdahz7nC)!C&(8(te8,n<AP|$J:NBQ +.(rθ$G h/|2T7AQ$Zt]Sons˃/F;/{wu2{Uʯнu%s3s> +$Gm [oݯY3$щI*G#-bú IYM^;@d K/Nd4aԾ1LST)7hw6h\Kg +Ƿx˻y`\9:ԀҒozgc;L:]tm"*{-x&('9g W;HD)CO!q{m2>J~'v!qA{AkzE3E20q0ltxfJs>UI_xc/ + f;ew8H[ V+.p %z4|>3|须/zg#{#xt˱ȣ˃1!*sAwCk![xʩ)r:>=Lߦ7s)ZĥBtW|q]l+VK7G$@ "ۖoHa61Ս׽vk_"ӱ:ʡ( {t^lʝPrq:˹IbqF yم83 +0JݨT9sBW%ŚC3;Yt 6a1(ʀn4}вgXJ1*;' בKX%Nv96eo5\ iGV+6wǏPFd`!/zxŀEg$-Qy)Gc ;MRm-@u~J@b=~pw$ ?"a"ค$hxcUØp*Rѱm t޽+tȔchE֐@o88.5dT +A.PE+ E9qy"0 +d +%HٴeEٱ +6jTJ =\Xw3 4k*x +17X)cG.TAA"^6T3v(D"X* +Ds)"XoJLJ(C Դ 9@[Dp -{D\0̰ƳDžا@*MiBx-esGY*9<FH18$TP}\Iȫ.}s5ۉi5X'fMH1\H'3/ Q:.ؿ"'cn(ⱦFѽ*1G=M +Ę}c@5c)IooA;'_ RʀNrKeGF,T9 7n<$h!2,s04Kzah +ʳ$xAQ&U;IلP2Lp2J*v0/9Zd'TEP/0U +Q덪@C56]D"n +"U.q\hCG֞ +!#Dk+ UD>D Qs[y0 C@9BOFAAp5@'Q*_&I,yG}+ |H?Ӧ+h,4BYH NV 1 93Nt~nB2nSR= E'8H'ne4P wٵXu d ;n +$U")*ΦZ=s^2_ƥ.Rݨaxn_Ӽ`w[ͶYr~NWRݥT LM-Ą'=8zd %\ 9 ";@G/5gb9MYĊSRpo7D’:P̣p[#iE9sO`%5\͟{YghHgN#7,Ej$iK?Si1 P+Hs^_Md yv>A3 W,L+%o$pO^Fkp:℗RX0,z@xҼ^Fȉ{=1Y"SLҋ)0DDlٮA^pv%5wN +#8ѽ,?ۑ +$@aw~QSu =c;}g~> FF0'̖I~6;GL{^ɮIw'2r ([Ufc_ۿ>eRh6<7D-3+ vz>{ɞoge+w\m\RxVrtfCe2'tJUn3o76G4pܧ ͮ5$piKa3~f!עMZ4R@ yN*  s'b_RxײΈiJN$5&F PUީ<%oF) R_r"3[^#hb|[ӳD5?IOY빧 SyvaLĶP&KY9+fs7:zMvtPQlW +n13p-`8J!xF+lg?#㞳gv02?.=J)^O,}ugg BO|TÂ]#y}wJ#!f*N&>Y&TLSx&15I ٹ֐Bw r'q=&rIWfՑ$"3j.? /=#Ns#vV0'Xlﵞ'45n0j5Ͼs[9Sيkd!wpq;i۴b#kIP>K脟L-WOUwQCB'ͷY|ʁBe"}1NHToEN)ݓrʳGEU~A{gs>IrC6A@mJT[΅ϚGdG7usZvsknҷ7s 3R՚#Dv"&7~8*u;L"AN""l:Rx8Kb3:;y˦ɑ}VͤߐlϷ;KdųfPYaDts8wJ0,cE+&n?m9]olA_0,^Ǟ_$ ߍ!N#{faZ +>2#5d[vJ])`Mdi(<춨 +w\wһ}VHd%xꁖҳkN:ctckoo1u5/nݧl½"oGԺ9e:Dm2v vkjSJz,,GpEs0'+"8 +lj 8>x$0P{Fb6+&OU,@wJTo*|OR_0G] 9_<<\ &hۋʤ1%c%p|G"EtV.v+1yQK@J5,]Ee7WCgjo \^zY#xCjUmuc7ę3N5Kʯk.ao6N[bɍ;z@(MP{Xr,5)`w$D Uo5k#%m#Kkb%8`(hנIG4s_}Thh,i0;pPGfXC vŕVMaSi.49:1XQ|?BvBZ|IIhQMه߂ҾOU덆X`bLp4ϺFO;c9.<8mOx|V"3ƘiӰ{"*¶WeOJ  qG)edE9oXe[%?3JSÐd1ir;g2{GN^>ߋ0h#ϯaQ>V*r݀ii0S$n ~ƯBrT/N΍l!wbǧ-þAn0U-󲚤F r݉ru2ak5s(ۉ +$G /0Y$ngS۹SJ oi(3bKU]W7Be6kۀs6NS&(PZ=MaSx&%?A<ҪF#,dz^e+Sߕ1FgdY] K7j/<;%*6vA@)7@ YOBsl!?}X E֬adkELYF=G|SP1 L-6w&2dh11€7wrg5V3kP$]gJ- vϿ3@X.g9yhG^ЩgIqhP." ."[>x)qqX"3zHG #ArsוgЀqw*t&UҼT ~40#%ւ R !fWl7T}0`"6h1b4nD?`*ΑS_ݽP=EA2,Xv il=N+ +{NN'ᢙMU̓6SB&h 2U 2#1][]4!g !uQ1_w`S;FKYiSܦE'kD1{ֈ*QƤT;A3=߭ k[vxGoIhϖ|L/%lʼn'ηϾܮ@VOB&[#1-fw{BmU9b㹗9j:9Pz9S]39@ळ XcsƅxlsRܒQq'aS]Zu,3i9d`{ER B-$OT&Ϻ7(nlwh\|/SNܓpyvD$Q%LYHVDXN4g)5UH@3 Z0Û^uԝ8+֣qW[==iݛfhNIFv2Sk–-aJ)i_S 93"9i8 Au$56hΟ$}AcvIĤ (ʑ\Iސe,P= g>曨lHfKԔ'K>F\H7Jg4^:tId˯L|J3Dw h y~. ,z'g @ĝ ucb±#mm E +,L*C"ĩeyxy vBvV1mE1KXUIHIy$(ei뉬w1*ԗV@TkJ$a+ÏrP.AU>vnA0{@m'R"?͓3s"Tw U$Զ&sv fW~#roŎO27S;^ khuGrSu֑gfsWU6\Hms-,^DmyWiߐpڏpdw,<#UZw. eK&6߭P2A\O%U 7ʘTrh%VA) %ڸ]r[Z+IU</VQwhف`(>b(!6U%f Q!=(Fmn|~GtwX6V;r?vub6a7 +5(Ż:Αب(|a}+w˗T8:>1,Uozq7lJsVeXwD y3?=r2G5e{ stsyLg ^3S)ʈ:@]R0ɯHۇ&pUЎ0}l +B`=>^W{Ϝ:W9ءI>m8+X'iL᪝d +* Omh"z fWԌXVukZ悙Gq?QY[#9W;bNJRiwKX /\0U6C c +ƈ׮)oH)(GbPҙ"TGȿ b{YExIJICiʚ} 陞[MVv$g:G[jp|xCU QY(U Z!!q!?t2*'R?[>Y%Kdit7wm>a۸_;p?COwsl`!a9*7ϨԺ a>L@z2W 6EqPM9 )E=Umc::9c +?g^g;?77*{#/~\ĩ1=HF:\(p $ T +1S2Tc}ϗ/a@rA%@(?9JeZ5](7tWu*e rND{!|Jd»UTy"\iRedҁ§t)p7`JGZi8i*Q\=/vQ2rQOCyb>Aٕzſ[g"qF{+Sǜ&-ZRȢґJ,uzhA2,@md '";<6`#,7M.b+pA7&f zT0'gX?SGeˬl;Ӵ;]P8igj&axPdz+;%E]X/ͺxSFA%8R:tn @5=Tiq%x ;! W; KBg1,ߺ|i\\'(X3I] 2V'O@}? CeeO~~CӾCW&\<wip$űU]q0P׹^_`2TD|wi7,|Q奈tN+0ڂVUȠMC.q(P$Dےpj0\ۿ_5@Ε弜R80#we<H)D_3~QQA3UB_cg8C`.G6Zn0Ml'Z \iaC~<x!13&h&Tr dKL$+[j=TP{"YWH)* Jq1FdfWz!~ˆ Q]!DfVhI`I\ͅ=KE,>HC*_ޤ׬UT;M.#ϥnGpY9jų >$0|N\a˛-5zPF*4꺹hY`$~Ɋ~$wF~: &N!(C13g/vEj-xY7Qֱ[zqN(Ajy',oN4zO,vS(` `UpJ*P#3i4V+ -GX4~:DlS$Fl,?F_%Έb+Y"뉿+ kvM +,rI!0< 'Bb=Ѭ"F\hS{;Gϕ:m !1J=ALRb/aR~#5v%*!OH*5u^98<,F!>B ]q KA$@ɖu(4it,zaѫ]`o/:$03X*'^<@)lEe=P8#A޽{ͨ#~=CpMzf#WG3)E௣md]4En77->k?*N岿T~ Q~S(luG?L+4+(&_3Yg +uǞXVUm+/~]ū|J4s(ȷ\j'MG&o^VX*>e{`DtO*ӗ1{>.A}vRwO8m3=XxʊksWD|RWv4O!.m-Zε,&Ff/3l ﬠti 6M1Ej41vaÚ&H5 +3pۑ!n9&6wbZ +3LXIeՎ<f .p#]2`@)]] f'G ٳ8)*r'ˑͦcuj*VG*)5t>h=Al\=U6:M'`o+qilnűP o["U;;d8yWc{Xw_`V]YFB84"&z4,Yr,  nSgs'r4ӳ'ɇ92*Pvs0q)-ؽ S6l\luQ\.)cIO@ml5GYxYB)C E :ʂnO P#z&[֐ݔy:z|24cHdP~r6&/85u,hP:|_6ZMkӫ(32̗E;f!z0hO˱;>b~8#UWf=ݿEV* +RWC{ /yqWyE7?T +ӿ?Jr.?oǿtm~o?c +:e[C/tmza +XZv'g^eKc;r~!3tct>W#4LZTIzDVv@CP]5] MmԳtp㑊_ Vw ~oz4c\L AzԩZL.J\zbW,/jU5SySJZZ(g<7ls]%׮zw}QeZVwFέȁTkJEa]x,SInɲKLSpcX7Pojo39`B+s`&LBVzvzV8sI(a9o>7k_uaY0jf !v1iT?[ֽ7B4)"Pb7MYڥ;Lk7H)@2-]p{NcfD-We#7;3]ݬY{x(v{E|kPD -Ih2ilUJ[#Gr4:I$u9Sܹ.B=~5_z(~kȩmD(vfg?fr<&VOI'4EçTΛuQV)D:ހ.][#h3LѽdL'[!:015 R|MLyħq˺pKvJ`_MRJA g0M|q'>3Bny)aQב.k)?BrDe\A Bŝ!imGIDK/%zZpw*l0$tDJ~C0``pS.i;r\+}N 6N +kBC.j)亣D5hcĜOք*p_ ;J`J+r*2#w V@|q4sԏ6rA$>94 n#֠o{>5ER,-!^,@ +˘;2|2QT{&a N'Ejxo_"T0E]鿟[5>stream +^{EEeў +PٛE +ݻl248ʱl|Mяx{\ +_BT;J.xы@cMC1zFr<k AQ{ElFq,VQ!r +` IV gSR-K$G;JXpD+Gtfl +G@/Lty}#O "_(D+luLS]|ŭfq}s¹Ab2T6)\̑{:jLn;)}HPFFܴ-ϱ$ :G;?d8!\[u{>Rn|Yˆ vp Ca? e) }h-5!`Su+ +}HLd۰,,{}*N)S!D s +io쩽]vюB]?=WcL,6e]h'魏>s ΰ_t.08wBlԤ +UyoO=bUykRr5`WPˮ7W`!uFu@Tsgijѫl @Vm]$%8ף^DatCl3&GBJvڇ^@JZtsl@}Ce[T.sыb' t*𧎦5 ?U/HbTmmwQѮwRI[)zܦg96MV$=螹FpLmxG-_n74`Q1&?th#HwOedtUflPR,E=[!/rDmKL3E`~ V@t0EX^8JA1*(ͻpeL0,3RQ> +V:QO:0UJa>rdt( ;E#~DuD1j^F)eE7"z-b)H*kĺ[BScNǫ]us)G& V~ѳI9(U2`<ֹ^#_jF,Zi[*۷]%ȳ*6f}0IV6|=2ADcČ#/UQ*#HaiF3 *2Oj{$Ta (_SZ?r_+OTHgE0 QDVlPWݿU#Qy#|MϲPG![W_%hUQψ_ѻTvFdťφ:w/Jh! ^ȯ3&Ffz|6 ]Më?'л!ENbd!g1rJ];uC"swÖP`nav}`Jpl:K!輙 +,6QXgs${1< +f.U4|; b'屍Ża]BX O{!&i*EYکTN)*NųcWFCx#Zv7 7#9Ik#fzBϤ<ɤGٌ1ɍP43.3rzj8bHMYЄj^*aii5ԐSJ);#ylzA]QL +^w Fff% +UT%2478CyxuxTVV+RTV]7rk2Z}ikE9mSzCH~-%EgqhrﲑbC0kt RM-ms:πNt8U8Zщ +LwUxZ)Ytb0s}8?jǻ E.,Zd2Tpd_*눗ګM,7.Emuc؛:Voӗi13*đuIe4/xhZfejvL#`΢]W6k>Bb +/]$bE Bq_PZtxO}y+eR*ym]?ޟ_Qm [-]SM%6/gl9S_Gmo_g65~ q/ xI"3縄oPkiSj vG,Lʷׂ(oBI E@UgÂij~$bճY_WQx/'EtFiL .ͷq߽Z0p˞ܳS⢊ e>>IYU{0a)19-QxxjhTqk߿"-j6Flޗ\uE1]GVNkB$! 2큏2G-59q)ԕ=qAV)$P*1zgdUw@ WB)H EρX|3](.X'bF1^c:6'Eo,zjn2"qZYCp/b{jF#b}tx+ +Z7n'*8`؃ 0a.rQ +IPu^ +Q3A(Hje`fGN~(wjv+'p -f#:9kZ8iED#'&~ +l%7[h{EJ%+lY\l? O5Zw)DB _\Vm`(@T v"~D}_e|f8 +T"U8}5:VBD=>j5%GL j +Jt=c$w ! Sk +7: Q 0];Fea"CW>AJ VB"x>9yxF 8omzĉLkHi|ǚj31$ˊ~%Ί8dݜn,);K(n%f?gl_շPt45<|p605Mf%r_B~kKi /3vUڑ]M(XQ}UӒRt 2tG!*uq *^b$5|mYGF3r<$Aj"@99:*XF":9"~p6.X"p]4LGtxYehk9e9-7DIv AO-+W +$w$z{6~V|5W<8b$='#׽BnGF1MmW)\OuEFpH#Gɹ&xꍋUMOu!\ZP4ج), Gis+-Xl¹Ryw$I=?u)qd+`mKo׫Mdӎ@̱ʇw hQSsQH~pjw+l 4®'9[:SmvJOtvWV~N}5r;dd#~But"#Jk2'bg`M{\3KiL!$aFq7U&"ĆRlWF!M*[ێAMʎ7 m}aY wheBH'ݬTWo;qze~ ) C__?}*2|غȐ=:Jx¿btU=|q30-Y +rEm<ԽomQmxl!ϗOHmp-BQIœPԔzԮ~fee)J +`t]fm3[һe\Eis>_g=|E -$NDz dژf)Ύgu0q +-aoP1/" +e=ɯ\%|NU/߽Ы\qz{#uZY3WHEuzaȮ[޹7_%-GP@l:`.w" +7cHRQ8ҐHřtw:plx#]a[Xœ8(!LYN®h[a;U-eE8 W'9[bWRRJ>H'3{~~$p v QPAG9wܷ!i[9L3Il]l B% Ժ hDx)NDL[P#"JL9j` +DPQ4m0or +N/Ա B:M\\D %$ӉbfX]wE8z4m%*P7k!]x(0~b03~61EjvB /E7ηt, :Scvk#\"Rzn*5#ӝR[,1ptݾxC*l o"N8KO.]xTJ2';(T-<ÉӜsHx69>'tO ;04݃:m(p5ǀe 7=a^WJr(d9~H*#$LsKIz̧v9zaaos~3d@U!h +JZ9`E nsm/#/Ɓ~28R3جntEceG^G%2WeK.;2+̽&7ȭu;v'u7.1?wٓY.DP)vkGWDPplEW(/ϭN*$_vWw=g[M:&n Q:g Ƕ\?#ǝlKz~"_3O_"d0q Z]ʏLȝ +Ҩzw=2I^ϓi+:9Ѫ`'].r̽sOrQo8_{} /GUTQ;,|>-Zraԅgo#ܨ܄{N^ܯ Z-Љ7˩拮^wo%s D Ƌ%2؟fqNDz9rJ~:;R&35ksXΉ+I>+T$UH5RoI%?kp5-h>+Tι?&zz=Б+q%"+"&CZwbs@qY, jy kƜQ8|8Tqs + }P'Am񁼠/Va8M8(HqDSsu!wMgvƋzRu;1y6?9b^ ,ro g,V*2ePܶ|}n s Z:Z[F + 2pvdm<ijN1uxEp^:G8krݥp c8~r,ls Ywu#{F%'auϧuoUtG^GÍl EEoaޭ;wb#JhxZ2t2r2stNJ:La׀:olU0iatQL0J k1b͊Ue;C鐩O<n#n~o×U[w,tuӐĦ&ql֫-̫\,o5r_]gS:NS;(fVзچV欔A\g(P-()z;p֚}֌8m&r菴+Yw0Zg[Edk{fWD`V;rY VS*i >pdsL;a忰Äi"ȃPovQe$Cl:RxYOH)9O- hDؕaIѠC/hbM`as)VWڊKgyF +g$"my:÷ |?"]QKUY;:#`*N2JByx;8 +~;%'118 +tN' +M&]XiKI-_@1+ +U:Qk%{P:^1b&/eHE%:/ Fۢՙ7sQbv߭oاokJ֙B=\ݹikDxrQ3_9]y(=NE(!z)co}ڐg*GSdҠóhJsi1)`\bmmIfI)7BjM-xja6}c-4dv]$ +t"?D5ǩ!=F|GrY׋c,I2/՟D\]Q +b&gdȯ%6mR$%>x +يw OՏkd (pٔ;JpF :J'W}JM}>QMۅG:Ac|2/O +~Wo{$y^i)Jg";jW,5Bnu]=+ˮWPEtb;&+Oi^Z2SyОF YJJ+*L;ú3ޢ69 +T8%M +=_M,eboxv!Xe!Aht2b$eClF򇹭v{= !fn-P1bmż)+Z7_IfYt>?bs-utw#+/ar~GU6 +&4~N Yhg!Q&mON>Sf]V.],wp_}Pold{%Fk,"HIQ!KUrOWTei*BH3vBB J+4q0KNوF| yY' +/ʋ]1 +Doh zZ*qfELGi:+R4neY|(+ n7Q:7Ojg#&fXA]ILϝE G*j\|Z`-)jII8 ~ēɧRz=h He%t] +2W+^NORub:h܎{[Βd%8d\1$=iHȶ2y`^6f,WG>N9\/[߭o{/j ~u&YxK:u&Uj'ljOlk(%B?p ĚlhwI ڊ,AO +OK1*Udpϒg7u@?)ӠO4|ZUYG9T,Ks4Al5WCcjঢ়*]l +- Lh=[.й kj:"zl8Isl9BEiC= +!n%pU2;h4F*0swTc,Tw9hXyM* Cc lG(Pƛ"󎲖:jTL}~skn5YӅj>(dP>2{7vVcF͝cr>#dz6>j5S9i3ݡ[XtmTVZmU屡>cCE$ +']*C=,s~4Y'P:Y(f p|קņN/Sk #JUM.+ʯ4?U >7b`-/A\l:MBȞHHUoiۋx@(?hy\BUW4i gX\z +HX4R^G)BX{5˴8`eu;d+kH׷EJTwD+~=~D~ԎG5vHujV1,fT~{'U҇>T'{M QD*"Vt d|8r<?GfnLnPON"$Xabj ^ɧ'J'^meã\l5S;CGRJEO6x~CKh+AtLn|5w4\{:rPzTShW\\ +9;x";"^ߢ gHʀb,F"||:O`hwWK/A8?`R:x6ZF's3A9/=ʠ3#-Nγtr]x `@`#2h" ],ß\tO"F': V sJLON^gK9Q~yL7(\ %gŏlzJl" G~ (Ηw zETFTzf;t_=o.G9OYޢK8=5hoq^I5aJs[sP|m8"ݘ0+}5̪Ǩ*N(NyJgUqzɀiޓ Lm&W޾|kBŬ}33BXL7/2O=9 #=AxJ=)2'5gb\!Cji=[$H  +i3MBRzT3j?o_MoHVI49Q0%~V9Ne^"ଘ%G,  iϩTv))ԥ:.)8הT@&UP@P\,dCK:xͨ z іC,K!ȟpՁ;dy?9! v.-O覑;4reh3Y@ON C{/-i1Ľʤ_ f3<"w+g]A|񂫞Tn\׿WO.>b5NJ+C- F#VE[3w?; 3"Vy@k Zalk6ͳd<AK}}7㬋l+n1ޑƑ_(}7LKҡ+C'[戔R~%M3RZ/ġ}a 秽̓"׫Rgݜdsgʡ!$ ޱ-o+$ ^ PFgx{>3rox ם5B#~Lf/4vdy- r?b)IgCc}:J +) +jchQ< +J">h7HX䨨/bI̽d.ɑveDuKܪJޘT*5JTp1O9'0 Ж ,~ +rfݣ]v)&:tŊ\*u;-S;|֙]rj"4Nk߆No5v*?k# 3#n&ގ|Ok% ^V#i`+!pҌRO?o ?[]jj#f0X# 7掙&pHhhclaLxoBm2SϠ0CN8o6a -75wnA|"΂gbdh[(6lɻ_^ zY\4md qrx>60y[ً&/Ī] 8CtKyAyI[HkL5(=r+ox~/v_g ]WW]c]YVN2n%/l){_i'ygFg )i@;Ϻ +t8s7q0ynDQvؼe"{#7g5ӄEso.@0OT}Η_>ژ!E*~}Vz +0J~ +IQ%kŲmhHC˩m+dE!˨+}Rɹ6Q3]A"|8jYZ.2:Wl"XXʽZWt J`Dȅ\%*y?hۃ6 KȀ˓0Q^/GvtgRB] @_ M7 ,/{u{G=9*_kMck8=ˌ(' gk*e#>]w4E J8h_&}]NVC_yǡ,r(y00^fJCP3HQF3_#δQfרwc5rbSǽ5{Òٹ0@́RUyS2}/[Neaou_eb᝛oYjF[?Z\#ا|~vHb qӆ:ֻjz^WȭdJ+_W 3VO9.~?`A2(O@Cb9VGԃ*k0wiPSTaiU߁\*BMU1{܅語v_|Eɴ1dV4;\5m̶_WuW? ~3\o/3>$>kgU FyI7<q+J[8?dϒ8$?\a<B˙6 W_Togxq4#>L8s]**q;GDd *R +)/לQ˦U.Y}fXg( -2M`S#}m0#șΙA +bC6bpITa`[`@.vNг.lς/uzϴ~~̯nó[;4JFy]2߿ߔx>oۼGW?Vw`zK-W_h:tvq tzƝΝC?O ФΘ3Cge ]b,?Wog$]9WL3u39#Q vĈq#-+Ʊf14Iy]6Q|s +hHu vG:oRdGT8N1HyF{E.EsWkpu;pQo(A f̷F5ޏ4A`< }Tf?(@RgiLС +Fd:1h%3*@Ռ[G.Dy?ϖ!2d(|tۣ׮+ 1-Ь/"0Uyy0;z#_C=o&%C +QB +24aȟЩў$w+R4O4V|ڤ*u95a,{ЌR%Ef" nQrٚp%fS~N2,Wo[ xpalonކ7Azx 7%ZW=wEN'>|W3І8]oY"c<E=oIqxezT'?~(/6Lm~߫z󇬀2.7_"yr s ':3=@xPT>/Ëf0k[RF}#AMގ;EI.HLCbCR\/ir5F]_ZLV6򌔛w ^Ua+p:ʭCݳ0,ϷC7v?3i{4)M!&7)YL͛dL JK\[_VV-)u$wᶣP-7ȷZ:)""%\/e13r\]#!r36U˝J4Gdy +UG`Z**HjBM{t5S]jȧ5*1깨]oJPی{iɈ +(JtjYV&Q|{lRUy(ߵ#ak8el׃]A; +|@ˁQ{MPNϭ@c5Ս5r`',3h\=Z K4$ͬ^Z`WTWE&䁧^݌>5Zf-xFAMoJY+.{/^T,xP?Ya _B=rȭgԷ$AWw̶ +ꁙ㈨O qMNJ^& ?`TPcF6NՎ(R.3Qd󼑠Oa.rC=ca aߩ~7 +.jK,)N9ylA*QGfIw%rwQH׼_Ld(&1T-T4c0b!~c>5ZP.gi ΁Ёus$Ztɐ+8 xgjuvyQO1]jTvPyk +8ulq @-Uz 8-Ŝ#z?}N*pe)(įvT'IEXEP59Fk⻋Һg:閭Pk~rQ^G0'0n48aQ.ߑה +Hpb_=+λhb5YԵI}b5#~)y4^(K.A:FS6++Nx[c_rJ}W7;%R +7]O4 @esĎqU^;߄ª7oh62dh78ץ䑰Z{.P;ww;ǖd 𴲜ݎNJ/EUq PGh#vh2dZ=Ʀ=b;SSmZnڏtwY2#w k{^4Pq!&W*Q,ze/*ET p\K+D >0fkT>bpJ6>YLxlEUXĦJ^)mrf緧z.l@Ilnܰ*IƷSkd7k3/#E/p5qAGynpF -7)/ /\g༎sR6ܐUw8C6<+2,2?_n|xOKlrg[ IJnl7S4'E\L9A*JB6c'z﷦0n7Zn5Uf։$y {RGa2M޾i4/@KNZ(8#).#P}JgD-=:<1ݒ<"pEMR=ԳYbF>Ψ6%dKFm0iA=3B%c ."0f#% +VM["]RwM a{%bW^P'{<.1³_E02èhoxۃ"|~"[j%r@$eYg>r (Xaa eΤ7nWmzh!s "2ŋN䰿pEV8ن YxBqywr\^]&@p6y$!L05H[ҋ ܾi;3,ԃxF21Zp[o3#Qkk鏪\AԓNU2#xv +GCwf g i`K4sf{;VPE%W e$}-pTXҮ?hJv1A/"ʭ wYUjЇrD?f$`ߑ?kjQDlUvor1K$nbH!Z{]]a -^^$]eXw>b{1lJEӡxs]S'ث>b`$3ߞ(,!(MaNnlƬZá΢TR< [ +dweժݢz~لkQfRv2->^W;vKp;WiX<lk1NE81,`Xvo$ir#K\ P64o>%s s=pJfʓd 6_C!~ɞ:cKpvcr×cb:\;*JSQ sLV FV'K[MRf}0qiC:JQk%q87\{1J'YN&g<7﫮6 %jn "r;ľE]zѼpx H"9H1\e˜*T&{E2"Ynw5}BqFkOꏾ GGt) +=G=j{mfs?dJQ!MT oDexa;cG<% +8>a;]u"N$oR>V +ӫy /RzYdJ(3{X _(,+ $OT{P^^PnֻP!I~\2tދNVKnoe8QT=skʧ*dJiT+H TD;٪A OE>OHux:TiYEe7iaOZEJFEfg +Fs p#@f5EYw4ώl)H?ps遗!DχFP=:+/ڃ(GٮsN3C`hވ6\JޮQGv\zM'Gp*Cb9inɬp˜B\{?38pNriE{gt5SKomR$DUϷLW3[>-_cS&vVciJ_#vK'ʊ=LTy|!?*dAf/XLѦ`};8EWC'$(<^wHȥV_nuVNtnEKý5/}O?0<^sKqEFN^-ֺs=bul+&oM-6" ?9nxSӞg4|H#11a&|aNl(YV/zc G+u:0vKG@J`ivawKmt\w dCudBW/3!]s gF֩r4+΄b!R2cno&ȧ` 杹SςJ"1tw@o|߯٥Wd=Hn/}Cgp*X1 Gvw٤ԝt;Ʌ.~e#ueX.B[j+y+~;xI?xjfX۔F,bLj)-:*+3=z&-$P9qM%V b~5%XkY3xRUj:<>CMXO2.ӌ_g~Y^i]gP̿3\RKزkGV1C1vc`g#<; +ް9KK5cwas<{>5YȾzFRc6aV)Ekk_;\G3#^g +ERej46>8ґȢd+2'@n0XB6ut ˯Y6?b԰N+-)]ceşa2W.psw$@&z8}{)zf\f6W.Q6߂mя5?SC3“.AN8B-3jǪZo8B%ӫzN3|:DM >%?~ 7CsEZrbl+qjHO=P' 1K5}do_-n|<5'aooُ)dHq{*F-`@6~.s:-B3c< t,{:0?F + !;JqJQ|aFT#;>?sVjCG\#Zͨj7M~ϥ#@( ~O +uNCQTDCW=mi>9<#>?;-H~> S]D89/Qgةv6.X]d!68 %Dszcf G +JsaQ-"qJc^e3*w+vf&g|^Ve@ ~XVƅ*bw>n[ A3#[t2^9zNT"JIYeT+TR.ѳļueҧT"sHs#2J ]e7S Z3T 4 +4BZOŹhE| = fNA+wm}f(Y#];u=20 GJk-?#g1̐ıJπĀ`˱|"w BwǙ>8bhC̀8_HQ~5`l 1q?vfW6QF ^N*[sPvy4;;Iw~ Qah2O?ziqyiړ1a}1h@M 3m tTQdq& ^!;\XLu%c[`U &߿'k=KL6,>T'ݦxzY下[kK\[W5@zA;$DF>螰L|~7#΀GPS~~0'Y6䰛$'$L,y%\ 7 TP8cyVEeھJro<65Hڨn2,G_V}ًzF4(~ ͹Y+޴8s3Sd(>IīDXyY-;'KsG88!qnso[hn2#պPW59pa" ƁjRFNJeve瓼Z3/Skay9_^ S+;yA9s>?479->lqL^~@i9jHA#3>`,`-J͒h'f#o@Jhy8B {dĐxB $@hCƓV#M4}2 ʁb"Bp*g;s+K] +8z?a {GM MvXC×0($F HNjYgsg⧎8۝zAّGmv+0 Yϲ\T ̠sY`DkZBo$QD-y>(`=RO|w^&U-/Xhƴ`Ջ IU;5oIJqE Qm#L).mȣYϠAHb7@Eʌ_N6M,xk\n' #xсWfWeNd">s.W/bT _Gn8 6gӞXvͽl=}UWDk's%)g,K;%]vB+e@Dc؀d^M}uXIDx|@-(@0os6Ǹqqr1a#0 oƅJD:C!y_3ΓfUMޭ4U 04 U-@hZQ}L݈VcD[d65Sk.N V}@.j/| _Z{;]t^!iv>(qk"P9״ox|ǀha͎`mХ)vP'{L:Rgi U88?K>]s5 c9>wiQ_co@@ߵju)+}n *~j]GNV`Dy'P91)w^,yxY"))˙@ W  BlꫧL> + 9:4%j9r=zua:"tw*v"/g2Q]ypߢ|S_ W9pLbkfK]Z˫;T Ԏ LT7ikD;&wI#rCWc%;(. #M-;2q)L1wyE> Xב}~oibp\zFf'j?cul^ky$Zda_BrieF:AՓO6uLO= R{WiT) {]5y|O7z2"fS{*EͬߑZY(mfϬY VD68xߦG6{<ٵlr*?~QTE(08^wu=ذX}1C(𨽯~+R2.m3<]%kJ=w0p+XϮ5)ivѢm;gW[u^]g -ؓF.&tHٌvGdN!rZpb0(JYO-]FocOi47zm0v(vMW<T}FdΑHafl!be +zrd0TV9w/oХcd5{G";^$EIJ-H;l 4{޶ɒdSjkLl@+R0R0FN>ڙҚVa+Qa#jߣ`n)Ͻ7]";{!0`ʠYXlJ[>+P] kqhQk7,3+ g̝+?T_ v?B;@8F"G_pPa]u +ŪZ*'8s/uf? r#Dk/zctc)uvNḧmB`ic]l;֧SZKբejۥӫUk-u;=s2qp' `9QRYQ@f\uafuʧ@> JH)hRz e h~:Jx<6|CZ<|mg"H~Y 7[9$IŧR{ =sQh(N@kw5g Xx>u@ldz2 +VAWDgjfّܴKx.aJnF8--/f뻪昻˩=l +_ Gu|$'i֤SpP! ߪpFp=W!wqԶ*Rٜ =#FN+_4;l6e"xȅiMHDGr@M{|J'ѨBVF*QΡ<\5}1*+YǨcp\VF.(P;Ԍ]̽9E,3;GV +`}ܧΑO1[GJ=uU5z5b3(n{dP*=; BJ7)NF=׳A ( |9C"V#}5/4 exEvߏ*ab@4fAC{lYg]0G|Gy]*Vrۨ2)\g?~cVB.rF@FV?5PpsivѫMcœdxp/`)ѻ$n?r`wbDsjv];]VfE/8-DδVRg(5>}J߻:j $'¹EbW--֭Sh0_Ր!b\D6eE)Q KUn&R&ZoڠU NH6;KK!gY3 ȀG&E %:rm E%9K5ŭT#p6X킀%D4*4Ҵi$6-E>Ccgi}l[],K$ދwTP+5wT>AVct@_B1( %ذ_-wa+"3xsp+h9]3'ZB7 'J|J{szw~xKA/u>WsΑ^v,T958øaDr}#l!*ŝ +{Ɵ'(3+Mka%c xv$,l,Q tQ2={nC.dUäBGra*Y^ٍ0FW|QZ@fUy;vVQUNBU>u{f:)RgJt#c2G|STP)Zd7ή@g*4n9_ eNQ!N!*v=PU_0nceII1:fT*\8!%A.'PaU>VzO6,Arߥ)&u8J h-Uإ/?srHhr1 ݏHjiFcް@D37z? xT\H:jx[́'gG_e/ 5[BT$H$48t6҈}( iI]wV8#@< zzgQ?l6e&e#-d]LB½yAyP}߾EsОDhuKb)صUoy}f|QFr,Tj%wnwC8,p['Y + 2p}V#XYg]f?Z>]EYyƣ9`ZNBܤμj롔7j +r iX"LbLʸݕWٮluqTѢ%wX-䳅[|KtYl;%QD\'N=*D16L< !ebonvy%?=#uX臅o3x{ YJmlH4e %wnL:-Şk+#y'R2&(lT:#GB5"jby/:!fFCx0]8ôxr)= +e~Z# NM `Xژ6]OW_'?״Y@D췁[/ $ +4ZNq,f3҅2!.&5ңb筞2%GPs`^P+Cvdj[՗҃`U<6hё2خRH+"[RZEsXtߩ܋*4G"b* &{ )F=Ɓ(ϴT˿}SFZbzyOP^]HYKëk36B-'&ډuCVMر c-f2Kx%< yy<Lm\Ȳ$+^}" kЦ95MFM]hS|t+LJ/SXj&՜٥.mPdzu%Y&w? n Y~?)R(J @E-P7M|Vv;' +gh9DJFK/īUK: c/m j Q志2˝r'MƬ<|[,<.Q;hG+rIY>Y yq_ʼ3"W`ȼ whyk>Gz 9oJ0٬e9fLy̙^yX<2C&hVJ1V$r,^^ NaACTH~̌X{C%9M ts`;Å/RzX#q=S}0zN:Ȁ8@-?XYg=(ɑnׇ8nnwQD-~K2#y]%Y[qGgaW̖tRC 1Nh_wkk?"wK%ʪlİIzW_S཮)φv;\%4*dȭK"-TŌ# ()Yn_gŏxN=,+h @Mž1 G4+H3(uϚ|W , {f_N5dZϻfE F@UNgbrLyߴo*܉0Bu:Arg`0{ +\H=Z7ލ +̊!)ehclRj={n yTG",OoPK_v+=Rx-M1&ժO۩N3Y³\ݕ)LXLVYM`r\gjW]9E +T/۩K[&~##3ؖTVkr(B!둾o?hጪTKWHsD3MX¤sW`x.䷔*dq[fCc55-~_Gi̥wYUAQQ| +bj)yoKɮ8@`^>*&EPdV_KF FOn4/nΧ|z_W&~ģvE%׼t}=)G +<^U,$QʣviSSk(1P%_'Q?QS1 +~H`kpKuWH];<Pp.Ic7E˦K`u(SR+m薂<}1|6"86jbpICL)Hd*WU$۴ y8 ;}C}415.`@2b6USǨ AC؎D 1 +CyKc@TĝV3 :]B-~'K&cHGVit60h3J])[ӝ +-Mj74*u`efFȽ|X?2ؗck($yz/EW`fJkh}+:4|GO]I/-> +UǻϺrGJ#tE*,w.eH}x<e,HPL=5X{YLȆZL!23': l=ֿIjYd6}nYS/ +5GXdSi/VB~i/R d}*_OE͏YϊY2 `ٱYQ7١z_K} 4Pa +U~'&װq}| uTNt @eE:J:nm𪩙r6=,,.pz xC9*4RmNY#zOsQ#G?m\NK_Ѐ$N6 Pnv/!b+(_74oͱ,)DOWrߘ_VhH+=Cpt3Yo+Mge"C~Pܹkr{"|?#V +XcQW9Z0uvPv{JZm@^zP79J)4ޏ +nd@K& +W4pD5jtǮ&g?0_Vl%g5"Q}Z%qi1s>+9(O͊V5|&O2_6P/n3{>xaVL˴p 'd||y2OF +j}<=b \hNMr{4ӓ# CX{ ~xOsw+hG;{bv?%KˁA[R" +=^+E[z%ˍs29 mP#x@Ze/`|G!vV~W JTQq€O?:?ztֵ۟łL'v4MIa؈F^-fiHdz+[Tk#?pg5)Yn[Y?O=}k*[d-ʤ@Ex22LO)5) &=yz.тp;ګsaGeav~fդR@z4,MupՔg*MOC=i"P9Fi'5"Ya\+S"u(2Fch$D>,q̚uGUJ&Nh3놅Rp`)7-$tTr« &v pZMD3v5[utKGK}mnpZ"C +0e_bO I<|ӫp_]jP:+?w#4qu^K{98D.C@ڦN/ɵ!<#MT/c<(jo\jD6 _1)QđAteQtA,jx $X]E[o]O9UN ~f(?oJ_$-h@mjCFk;B{PרD3&{7pBI}F@BN\"ꙅ>cǀ\5WA f]'jP~~i<귲M}%LȔRhUP۬~Rxr9Q(Ⱦw>2.QK21x0Sy nM׎K<X^,1k` +lZGμrz*^3S!;/*H݁+kN+];c%KZRaiV)GKH ;M ۺ'zx>8NHg:-F^,b@t(bbiǿ#dPD,EVEz*DՈ(LLܱN R]~Q +ZǛPPQzk8Z@Q¤]#] ܈tBpU:kOw⨦ XԄ-*#*тGU*Gi}v sT5D 9ӄ"G-mO:6Wt>,#mҜ0毼<'l Pamu7bh=iV@f րUjtcz˵P'v9 ADq)y;V:yq#eJ(ڵZn Fj +e !%h؏T*7eYLF]G/ۏظudV(Y!9gN4C6{*n ^Ԟӄt4g_4+bB^V}MD ~L5"t|@־sW*P)Q=qסW*b|NHALٱ:*2Iڨ!>1ceRM4@FtBp V%Wjx }ςJJT.8q^W~VrpeeӮ"ŬW^SX&(4tfN]լ]$)L.1"gaPζS~ޥJu/NJ;Lp,O\V% s?f5w.YO[yT(`YVȻ5kEGkH%6\3%DŽHjjC66ULGmrkwahK +!kx]* +iZ]+=qi=pe™!EygA&*2[*0OMV8 #8a*ujcWyh7A0oo+gWYSߥ νj}S)>;a pFzEElkda!^ c:aͮB7gH4w1.;wrTH$ɲW<>3y +ALG{-t' rrZufiu>mtG^CeGiU i&݄)`1$7.4ZKAp,H=e15&h ϧOYX+aꌬu㹎PM#iJYLr>(- l8JUgv=w)#@ ydS3VM~qakH~Y#|y͆ݪ~Rw)L!v/g0m?[{؇^\Tugj.).Z 7Bzt6gq9h˝MLG[/mgd+E,l', +5Lz2JL!y6:v06)m>U4 B2WWӥ\R3mvL2Dr'EG֢~[.18,"E;Yy;d}yWQMh)(PjQؽE7Wd^;1K"@뚓(ؼZ50M#uJ_-1UAap}j2=tczJ_+^>= =W8@z(I)Ԁ"Tq\Nh1(ȩֈl`R^EJ&9iy]a Lk <5-zy΋C`=C7J6TowF22T{DMtHR`JntË|jY@=w 3bYr=W?X5KXw_BQCStt]?p qzi.>kZ*̽X60c4@a@BD~RY)홭ykV;57g.י-ȋ98H +$YՀN(]WJꬍ.9Ncq5uF#Iwp &cHӭ*MqBo@=Q==*а&ߞZ])#@q*;1#Z~iA  ]4S̠5]¾Y[ t-q#q_P@/PCx$݈o–Xl3 8Ns3-XԅBdܗϒi"3o+R_g8|6E]%lkY B=H|'c&-ne)hxєc3|$%i3P`TL z8lG: +FA)Cl(\=3 Hz @>fW{"H"oB$3Hq3>yXGd~p%UX~E5*xf0K`Hc47#~a.UWh̺҅p; l= UgBL췐/aj5ְOd8i} dl!+Ԗ(cSIY#B/%)%+229tQƼv |&Г:Yѿmy7 u"6a͚@|ǒCIb(|Z|rY]vy-S=儀bʉSh+Ab؅e%zlq%'QQwO鎈lCKzƽݻ8" +)aq'QA:,mi>f;_n(= Jwv- f3V ٷdj~E7md_ {6κ}uEU}=wAO|YiGBW:=А{G! ;gE'jʔ}ץ GUdC@=wѾD.4x:\DT*?lnN,,ɃKTOX\%>t% B'Jw,0 B:)<;jvYw(ȫ?4.b_L_MNō@C{ݡ.efjg3ﹹQ__Hvn`[ήK;?A=gy@b=I89@i!wEDbG2}tu"Ú5a>zwz1^pߞ81׏rp-y⪤Iӥ}@8w( +QS(v)SYL4MMBZ74m=eNW|hǶyYO p+Jʂ5W9`nܢ^bˆH2"د֧ +C>h"Ba[qd;Hn fض> T%քiHPYo=1ey"S%È/0h*M'L?=`5)>׭/|N Fզ4W];=ʧ{>C#VW| v>JSkL1%}#uVe;P%~ϖ-Sst6C#pMʢFj|v DŽ[iATy%SpY#5Spֳx 1rZ982f$F䇗vK/+H"aKTB Q<& >cfq);D{-]6$`%AB +IoZh5j5eHz\P)kSι '頊zcG>,3퓮FJjpƝ@+-ҧA9b?5Bư"MPar+ݐ#_Uz#㷃{Uw,yvŬEt| ݚRᄞh8M!iEil/lKX-#Io +E^q_lm= +:cx -N(xbሚJ[Q2ЇQH`(<)CGJiI`@$c;`Ħ_ndZR|P  .878E>L`< q(g*EbpHNeE,N@>aJ\Ooy9Y%g0J̮1kx9:WT?krF_Ðv޻=~+7N3ԫ,QT&A r;_F++k|K2%e׀Lw]دJ`aYۡo)]fW:t ,UGդR4ҙ((vkR7 0nWX}KLCG磦w b % b؛Vp,քyaz+4FOZIRs~x!03x{Ҕ+%;9'M)Vo/S4=ӹJ~K 0Uفo':&N:E>֬FB]Cf+-:ɒq戆%ElJY7w&ˢBָzm@8i>5q zX)_ŴX? ꅁ뚿nn_S4,GL |d֢6OmGJ#G L?3kr 8_pt.kO>xXoez(}7h3P߬_"T1Q}Z> X􋔯i[wt<KJ"P3:ʝTEbvbj+Fhj {0<WѤg~xEH^>s{w$H\}v{?3PfNѝ<,-JAN3 W;3(m7سm<쐟hez|+pU|JŸEL>T TJÈ:(xU^.6L:;xfG8T@31ɸ~QiՁVn\4ә/JG.HT—DEv|=K=}rʔ~TF#GGJKM^El['5KF:s>ʤi=If)ܰ&ܙ 㿟?⻨z{A#cdCQ앞߰f40!KBEJ4S~q]YLtp Z|cy1`N1OW:)kn;ym2d\n9~GW]~ye^,J[mةL%|bpm-Uwoȝ'yUF{%jf)kI慶ǂ/=Jdլx%[L X~ +OyByKȧ+5Lؾ)o H!O^̪BS&F)\`PďLCa mpBX +O]cz\-y:(CwogJW,Z#*3XIsoNL*;jh];f'juk]̮x7Љ%lȚ96F>KF̉'?57Rnc3uyECE?m|aJ+Kh@/MKٻX5B>q% -A{2K% 4y%S @D=2%-\e4PƦ G,$nx)Q-EFTLڥ%pQTG]Lݞ\8%?k5Sqoukuy;?#FsM=mvME>bw0Lz7+#F;[="+s"*3rs;Yuz؛P;1Z".}j@oƈ#]U_x};HCʙM/c^]~'1(LM?|F7AKkG4yU{y"+zXzZ͎ J<URh# +Uv>dܽ?k#jc, ĥX׊]v6k+2s8b?6a;֮g8rY9_kMkQzU]*XˀYH!tꙸ߬cwSĨsTF.9v쐎Q9JӑV oє{>R(kx֔3D~SH$DYRH@\1LGGP}t<&B挿õ &z'QW=D@pTJ#)s;\S|Mg8zﱸ]W + +3_#^{Fz8ѵnBVz kRȦ*R!@w +a ̶c6@eS #3)-XS!W;';cwngBmpS 0'pT#v0ˀ Ne<=4-_~ChiF 5X8:?bAU>w]먲ߎ q,413><1s5_|oWFeTF]Nuݡ(z hDc3nٮܨ +Q;%AFl8*/ȶα~+Lʘr+c?p|޷7FQdo_0ʢJEW]"L~sgB ;TwԹ>"ճ\.>z AE'VLn`R'96-4nMxf;i" L|IqKr0svG'WAIqWu| ԂYLt5}v(Uǭ'n"QXG,O2FUh,pG$| 0[A* 2JgY\\1LxQC |mrar)k)? efH#ff0hkH !6W0MBH I ,N&&ۚ9|h+pFplIDA_< U49/7JKX@lBJ +!uw'P[[vݒt+p)pjd1p W\FꈓĐK!:ܘ k,f^'>p?RL}RVĦֻV$Wm ;V C@*%d|(9PJCωFawVʒLӂ`R9E%lsR>ڥ011$N۠p׳p9 @=C/J~/?'K鐫BgJ%oREG:ӗkJv(ǪPDr"  A@ {@۷ +~l=zLe:p6l' -nYIVjKl:@h%ҪS xZ ZϯӰ@')mJki .pJ1oȇXVI$895,@aV+q[ <cż` &!&Bm%gQƺDrR?V盱䘩(yBiip :VF@c&&LM$lUI -Y$Dr+{dߝhֱ>VZTV k_\v7Aǰ93W٥4'RnH!D#CbAEZcܪPJ-H`"k:R0ZBX[AF&d + )\: +eWa/pn&Y\FԆ MVFRpXh:mw}~њCZ[Wi1b%^k {AJgK-)~ e(1~ ʠ X!%_BfEE߭IqZ:). dmJ@ _@y@h40sݪN + +f" 2Ѻi +EPT+,Hݴ(Y& :RbC + h +!pN ٺQ%Z0@jS\@C!*q@MG_;Vղԁ6Gi̿ "T M"l3ԦmDzs`ƀ&*=xs EP+9(D`A"H>tӊ5]*]0lY@CDJRw, +֚TAIѭHg ҽhFP| +t!ĺ RzckRAE(@BpbXCNϸ5)^&'0gJj)KxwF;Y _1+! +ŠolJ&N)sy +1:5jNINzNXhB,#ӲR U?#ÓM6GsK As\L{22 8u.uFn8BlRzQGvz\v:m!JIJ:&<539xFI+;1GNVUT`"I 2!% +qv@bwj + -7!<5)CuLn0hG)mwɂ}aB`!Y +`A iG&=])@d*2f ̚ܥDH W +0wĜ-$"jlg@F`jk_!4#YːDM6wEv\meL J([!5ZPƉ߈f0; +0b87JF!Qe))~! +IɚuRDP[LRlW|AZ( +f`4-LOCcA+{[Npa%ˉҦj`[ X)RH *-I nCD+ 1B{@%[c@vjj`T( d7`)bm9bu_Zkb`1S-8~m[7R 'PB+$N3V5v A>0Z_(7Ui;oO {z-:tQפ 5K-N!pV!z|94 ~)4i!FI=C@6[)@%S/,\l~N "VmX_H-Ql3-Py'uZ0VbY;Y~W)< Q$n8L +H-5i=pݢt%J:1zZJ@B~F\Bd,e7, +^6(YZT)ըX&!2*LI=ō^Ixf(#6KU'M +)*AXa r Ò*`Ζ 2Zݮ$#Fanx}W6yIDM5),*0T0k3ZAq #+n7 .Lf\L ,HxGAP9%f8p`<SHW\w +//]KcC*<*FN,YfSaT!>1}L%Qި=^B-ej#bnom5bZPI 1-QZ c3MS^p[&%Ejj㖴17Ö~V턈^!,J ]kD )V _(tݍS^mC) qK)|7rZiDpFG +wТDZ{8>֢767^ؤ w%At*Fv!nqf*hg8!GXyS>?+ ,Om5k*7/jNn)x9|s`GsKIP=o 䏝)P7[:ˆ̉Dy2H AV.)."4uO&ˣI} +;D6R < R- +{S3p! '8ݯL~c.~ǝ_ G0XrRci鏃@CM ؒ8 ݩK>/aMLM8;xwgZA)*` H:U h@[p<1:Q >dm^lB:Q`N⊆ 뾕^ժ(0$- 8O$Z꾐4tPY# +OL1, Cl~j dDRMdRA& + %btjCLT+רa-Gs?ֲo*+c K}Wu/祏e+=-L*)8!6kE<X2PQ-Rufi&[ nV,x:4vez a^R3+p_ŽIIi#RQUmĪ1ޚDrbkRP ӧRsE8Z-_ \kAT+UtDa77Nt#|ejlb JcCJM%2k% ~-I tj1["g"S`H;}g&p)4WwQs5u*Պѝk;{ 6U1ejm@X"PdJ]RT~l0 8%~X-ؔD-+Ýp> +f5y(ķcFĠ%X!F]įyh$HبOpJ"O[I J1荞0i5#E-Fhxw2ڞmo{@03R&F%W l{3=9{?l{o\6KϗvvH lqjclCs>6# N 4Wu|qx.$?b3A^ɏǿŊI0x/v|qisJx=_l+Kf_\ɮ5%/k/[|O8 ^hb7rט:7xjb76IY\[>jT ɏ}a]GV?}D 0Kö- "$A 1$!fCeUx*F|P|KP#%R4 oǤFѝMO21Mi:),bX:% uU좈 2^CHHm?-=QrMm'ߤ=S@L(=Uwy gnr Xc4?Ao,w}QqQIT! 0by$wx&K!$nСa(SX[0aR>5%kƕN3ЋR*Z(5 A6֓h$J >V ӸYyVV "8H;~Q&naLg=6B Hb"DN"rH|UD0)PI*Y:Hq;;lWHytԭNZ6R:NR$Z:keazm7mz6X3:yD&`A*}쯤E-S^ +ήĂ4 k4+?, RHnrZ賡j,jW|MHtJ␔#"u𶱻}8B!33@J<3˚}GȷB=/"|W>Xa=n +H9ƏZ  d +N + `* ƛG@ypLɶ=!+х#N^H-۞] E0YRy\L|7]@0P|Hp HK1HtHWHk˸6 +Na #It-H>B(a!Nm#QU ZЄˢ$ l@:T"'ɢ DR!)l' +,Q /Kf(\$'c7VWq%v1[=k1)ɤ+'GNX1#׃i UArUznJr1k5 +')it$쒶f.g2; +kvT::@@3fs4mH,*[ '`Y3S=\ErJrӠόdy2ösjO6'>j`<.ODgIs~\k1_T#z!u@FIGiNgIx:B[Uf)'ŕ&9ȥ#2+!k#a!5"\p=ě$Nyݤx+D{7&tܘ +\N;9NvZ<{XNim E8Q SYi`r#i"! U5xy!? +ǰT($d+ %$ 2^L2S)%9{De9 Rco9Rem<\ ͦ-ĐDw;U?q%$X'\:qeS,=]VbeOJ@4"T?8C`*Q9E>+B]܆dp kAvifNꉪ + =ì$㳔+i2),&!gSB^* %107`2ls h rOJ&'#4a>ŢC>tDU*Rd6141 ["6 W +HP>hUWLIJJHmd!^/U }kMF")*h i"-< V=&S_)(3'N)).t!brI K$dn\'OȜŦ׷Xޣ2JM~X*ܸ6cBV䂲 @; !..m8MIp 8oWI[ k0ݵA LH6m=)zeI#2Sp]3fc3E7S='k6f0P5dVdkiHQ@ uiAJ'7xf0qy>r +Ԋ%3Yq!!XכP%p(AhÔKpQ~B<'3^3j\=^k1HtHjLB 5{7%QIsBGR'ۼӼ.$%FrdaLȘuMt5k&-C hP' +Hx(ʻ7$]!ƯA;Q6oN[̸M@Ys2!e9G<3Ns2 e|"sv!ڮԡB$y(l&8esM̸EDόjI<382t̴'M)zE #Cimj +4ZN]38kk&!HlkFx5U^mcŊb&>;:7c2*z ȼpj\x[TBULw'bu a`XGC*=QK/AJ4&l%<-5LX_H|*a Nhjph5ə= +lW.=6duP$2\ _K"~F9xjY +e0hO*sl$f7.?$K5\2c_*c+ +C L< 14d +ȹ El +SHT+UT.&iN ɥM-58@H0|&jDR0\44:dgnA@yk? [SzToTFc eޭJۙf$wI!DFPd)Pz>x`ejbIPO6AJ'Er'9lCb>₨|ڤ6pFF))B bX؟&Oe8 +qg'ʩ"XIQ &#g۩j㸂g#PRFNք/K%Q'jSs-Sā^Kٙw' w%WJ6lԴцf{6 +nG-0[hJWY1ӇK-K]u]9 |ʅI?cn'ktF +hH~t+F^/g5UւX։AF׊ +u9Xs3W3EAρwD%7%>Cha1'VhtoJy.v9aNIɉHDHx1h!,b<,p E0zꀀ*|8a"rf#M(DVӊe Kl监r@ ҚJ!C*kJ)[zԸ@ +ۋV@`1.'bN( +NDDR7nPJ|МC%)KOszulb@^sRH*, mtyS+yD^@򚗂ӱ6(1TlOH(Sĺ*O{d;1p A aEe6+6iy9"WVQ`UVzB%6 $1l>/Wf&&[+2Lr0l + 5u?!(G+ X[ZUR:=YV¡bd Z>6`PT}nk +;2GRw/-HB8œ"1N;˯E k5$dFd7t<= 5<{X.$BW^j$?enf)cNHV( )0P4Xb`~hzS]RF$7E2>`Z*a拒puQn.D +|e/ՐHڲWdʠ-{-/FF$㰲v6eЖ +AvNeƔQ[NIQ[N'7.h˪ıMԖj !SU[A[aD[)H^(RjLj2j^c+0-(Oe93ʨ,PnLeQYn0SFek,ATfHμ0A BRi(; ~BXo%w +uPHUdƯʑd]9!]]AY$ QWAĠ+ߨWll浔;I;/0^&ʾ?쥲.}(uMB(^um32>5ߖMoOZ~$hp_:j\ ō/QI `&8emT De9!eU]k n?*V_Fg^R({-NrUJWR'z2Y8OpNJaRSP6N 5 ד# zrofV7NpG}9=AOrQMC'{HO!A Ue * "zWF=kH)IaTK"BQ&aa`S(HrI1u")!N$c(:w663QtE(0c3G([VbDmAt.Il-4)kXCHi!sMzҮe&(&GsBL;j)DepNMY3@v*hN)r8_'^*lPIɖ~=7٠gYe9 fg*Ȳ:u!:ӆЅMعERBp: 3z}f(˧G +^2?RLZW{ c_o 3r׀|ZBUⴗI]OJ"1_Bň-c]!Jj©H!$/y8M5sifL&UJ[ (d1tG2 V[ca*ہV+4$H=eG ~7' zɉ$9Ȏsd׫Q̑# 5ͲM< !z")zb$ziq&J J^$6ppi愘EG>1ݺQ.21"GIb.O}oջLl\p{RbMLuĩs R_6 h YI͵m0dDfވ+rA7LO>S6Xq{RbIdR9]2~dasɮg T56 6Q"tkf,wz.\Lq6MIOJ'F~$p=\&-p)16_~6!1*F-LFJFfJIqFR\~z7e;".V/%5b.3@y;bɲ-2D]ěѠ^z;~W3|l0p-`jFbL +žx"ga"P$BԸ-(EmUvR{||]QŐ416rPFIC9lk[՘WHYeoJ?dME.V]pZ71J! oUч߰PZNR,_O܌0 -  "4}|H/b`Ʃ'Nc#Z̗` (ͅx.?n,!Dd)4n7!7 *fD%Y+QV8k((|a")~$mȍCؤɍ p2)6R3Xvs'mZjҐuk3b[U#s&w`{&4uRR:(>6]]M~% +ӭxZ%S:MTNg՟o2xD !W "JOzI[e;P9],]g إ^IJeBPڄ9ŵT8cVSm~FYeQ 7k؞3̰@9o,b9工'_!jzi )@۸[w8EВ"-9zjaB{HMyJz&_jxn?.|XoF p_cD~< 4Eqp"jK:~YoMh-xʞT_ Lؖn\">0(F[\Z*Wٯ iqT9s'm-Nj?#7yJ#jUPjmH$)Fr%)-R\_;%=`sײ jKǴ endstream endobj 811 0 obj <>stream +ήWJiF絊au]κ6_|HDlTw+yތcQXU &+XytU|FC\GL##B򫎔?ORj}GGznM,⋫}|e_NN\O\gry4|5JvI҅wA?o7Ѫa3LInd'˝o|IEtL:}{];|#0d8OqŬD_-wU#J/)p9շ+OD%Ev%eI3nDy{`L+H1ʿLӿ|2\!riw۾qCzdAD]^x{}^MܨsklnmMNl|l[Ad vQvaI(MB+l6Ei6Uҥ (vȷvv[ߗ+WE6xId8TF~1dߜ:¥[xxɌ.\9tݔw+;97k盤}vZͦvƏk[}mbDze7`Skͼpw2m5ԮO6&Γk{[_M~7~T;:{nSgGWv6~4w_ޚ9>^ȫ0v?4;o?yqp٣hupxgd79;ktxֆMօn:~oznt{E?|%ߝlmG=0Vbݦ-kOgGZyt7&ݛ؊@ӭ^b yy1>[VȊnSe;OiîO~*FnR;2/{N썭Ga5lb<\4:y]9bWtIw~aPy}g.~֜g0?2̶~41>jU[e |LrgE,אqS^}3ޞl O8F +lF!hW#:0AY}WѣȸB@~]Kp4u& ̅& 5?:t^l/:>쟺?;^ڙ]-^':]!^XmtL7@HlBmQ'^m]p g/FO97W[eG&: g_5uX~z{o`o=L%n*gwy6Q錎 هTeIz,F]=4y|ju޾f}yt}vpioo btMmپ:+wYMox^m\oN k"99;+;0cl"/]2%c;!06W~1cEZyckm3HO/|mN@'.|ͶfaÔ9{u@-⓶mN.WZLLMڽ4csmUeJKdk'%[{lr UGxOMQw*UUp(Fr}CL/x#Fե +-2g"im,ے ckZL[eҥfO8g2 }2qY$P!?kٔx%;1Ltx#+SuG@_~a\ؖLkɴNi-^? +\<*%Z=Z !ui^ImYJ|.I1eOWL82LfrkKք隕miUKvR|m~FJNZGZd9o b2jN-_KӪ$RֳzaRb]U҆d]'źo&Ϫ[-mN<7֧Ho31K)MhkUkKvB|m &ZS4ZHhmUE%ǒuZ ֵ8!Ҿ=F%ZU\7lۘ#L^~ue}6n|C@K\%[;1x#~µ5΅˛& hU)k[c,e&M5oMfr٪АKtm6Ij6Y +iKdi/ҖoK4?RSe֖l]Nvwt_#d6NwnmVu7W[ܙ>by+1gp/rt5(mWnT#W_5]Oro un::|o@<mN<}1쾾ONǿ˯=_NuG,]l_ËC~nB?e;nnItC ]'X+|G塅Nx_ ~Zk*SUsբ=!nw94M7>w앑=w΃tk3pIEb;/LOkGCi]rWfsr?r{ZGݹ8N6GonuJVҧ-+>^]%rMRO8 ݂ǿ~'%ƟJ#}z,DA@4hiLSy+3KO&6,4)){V^:ӞܙxgloMfsڮ;T +1Nxxu}==9i S,fûݽ0_˓'{~l{뿜zSݙmt XNsg%|{;^s?}i|9^nI7lzc̚:hm3vNc/spŕ j]??.!7򞨟VBKkׯ7Ogn]ۺXůW.w]99>]V փk3^q-Cn{#.]ۛLv>XՏF;O&='{GN򀽱(jyCu|8=1BַwQ wyDd٢ t ͙KۇWv6/{xPޚIyrW'Q3N&ŝG|39<{݀lҥ-׊N":moSJf#Tа^Hcbceu8鮋MjtJclFЅ&od _sCÑ.ƵW߰OON6w{3VTǫN9#5Z[ aw뇻>{| F9G?w#Z;{M>b³7Ow8ڍM[tNW'O+M.6Na]o*oV,֓rŞQ.  ܳz +~(k"wߺe_zQ /J0T  [f*++Dxѥ8vc.naC0''NJ :o +ۏfSurc ݙƿNg{[PvV9GramwF֝HlCNO6&?;麕~l^mnwNl<ݚnm:IAGb}!=3zlGϾ[Ohپe0 Ӌ np`/`:x6<~vf;oB^w oqǍfw/I8,o3'xIǾ?o܇V/; B~+ǔw +ٱ4>V%[=t|~cGToۈ .csJoh~[4ߏIYWoX~_4GN^w{o?Cj~povKVwIC~sxwέk]m_Vv]O۶-M/ oҮ1a&fS$w~~p/>?o~=Iib. }nf{_duM߹-P;/翁~~G&S\nddtot@wSMHt=8g;C`Lxdtg{;/ rxosdn%|,ʻ]!杽3‹Wt~l2я\;5<fLyX75TI?^D4k{K{ſIW&TN[^3}O;;h˘V;܌ѥÃxPV2q+q + h \ ™qpt\5}x{xÆ왛mv0xiVi1{9ԭZ_G~=]ɔ)Ǒyu y3tK_!K5c?w._EP!S鬩[n~ozy$RRצGt?>~,$1k˸𩣙)DE.̬brfnI` <ҶM}T_Nonm<7N*]gZ2:peds؁Wϖqr7[ݏș:IU{1!{b2_'u{g.,T{otcds݉A9:ׁk|W{ӐaIs₞5nX)4wZtٯ]D/R[i%lqߎ;;ݛ׏YdfA7P눶aD~9mEndx7}0/ݼ1 +v78 mxmp ']fTi~}{drs9>H=ޝo݃߱GT<>OŽlL71tlHw6';+ gmhu *cm} /uts݃M|Aov6guo w\覠ި}`Li7LќC_fGrk1if\@eŌK=V'^ZK=tZڗz\tB{Hmb/n/0ȇW>JOU}{L:s?]c+nKg?c[GpݎG;*l +mb?͏C"&O!V'z>}i{'FT^9NZ8J&Sum?EcM1%i06n ^r!ɮ0?лP.<{lkQ'7?;fcpUuˡ~p&Zb烙?x;}Yy>կO߸rwN?z;g>o~?^_>?s/=u&E/?>v?}}t?޸2lG?t?w&kլ=t՟?v{==ufw=={5Kg>\O~7W&{`>o2_>^1: WxտݧW+޽镋ŗW7GO>\nV [g>v/?}+D+]gӫ}]3RN_n>t}ڻ~/]fv~{fgؾZT??w6㫻҇On}zW߫vVNoZ/\/=u0obV롹?Qwǝr~|T>ꛫZͳ?4<<>k[y['|ӪY9=wԙ>'W?|~*/ƽ_⮯X=WŽϯﮝ9}m?/\G|O/=K:uno|ޕ{;_gn{[ot;xgv΃_m}]KϏ/=9~⇷8/>~oo|>ԙx͝_vW>{'_ʵɣ_}ʞm:{?.]⟫ӎ<קδ6slŸԗ^?Qoߣ[>c]oWVvV'󄤇$oY#~m[I.i:fgѭ/2^co{(vaz*4NX{N,ooEf8in-y܎ߕ8?Ь=NTQijOa(^T{ItV&J3V;M%$8zm;)wrXЪ+\MŸnpcu`8rmDp#^+9\ZIY z)} j?8$hD7grBBތp^̐QS$ HOaG42IA'j_?f-ߢ5W=gq :MF'Jk7N*ku!F8R(-1%\{('T/Ԑ`R[7t%Q|Ӹsf'-Mw7\}wSw'"=oߵn =l)UxRoV;84֊NZzarMYJE5:#^f|2ܝ.Y.n]^{uM6Tٜnfk?zz?y%*uT;SBԥ?ke$r􁵱=W +1@ym |BY]R=fLXSו,m5臌wr yRV$:_X \E? tzoQ{å)6K ʃQOYaչ槅j֪D?PKHS_~!T/Y]t0EWƼDn鲛Kѣ{YydppG(7eOe6_quwKբDIIbnT ~ZmnF*gsf_]}w؛D68 ռ&ȤP˽*'mty]tkez{m|w4j>T" =3y_*+sXbT,VO'*A,B]m(4]+t5S{9vOãDb br\zrf;ۙM~1Bnu;w ^P_qO?Z#m P;'ӵ1Ni4JPII#\ ;zjM7xTBE@Xs3uŬp~կ@DlLm|QarOlY`BB)7`@/gSPfߵl%7I%/y ,l$GW!ƾsaQ8c'"jT?-5O@8FIL0FF>u |1wDxޝ;#zkS[]f+V(T0&Fp)` +(n)tڸC]SCdG2^ eufbBU40Z=njG|K| 0V_NvӎM{f#ZG ijbwq:qnX&%Un]73W+UfS\N^U݈,zE^wث2%y,h%L*lo؇ճP]}榒hkhʽQdT_!2hܚx,)yQ%®S{&cn\|FEmDe+؀7V{:btdRU^d(qsOz"qF[#m;ꨔX-)*9uٚ<Ή6"rŕd="W)9b |FS!-|FGСR Ad6_}ڒ̗@&Zװ3}Bf5J;o ׍]89.++(?KUٜ]#z~@ yC4Mm@\utJ>[II +OjWnQcu%9;v8 +IgsQɗ’j-Km/TIC9:"Mfj'_R}T>d~ʜ仹4w1e*+wĊjAUU7U'+3ͧzкj!@)jqt웄KNh\j'[E wT6QQ"ϚU +߅HL) ¹j }Zu%kuUf `vj@6+&vgW̮SC*ش Ʃl#n6>^ +ȏQ'2ogRTqӆ?4h`r@rKe(}Sx mn_Yw8j>|M_[/s$¯$y~g_z,KKŗJTʑ,>V"`(X6XjjgʕE)ʁQ6fr䶗UjrhM0w/팡EL05YE[IbwA.YMg [k+w]n̩7ko\VڪO,(<:MT (j2X>.ZmGeI $h7kzG]Ga"[4'(:ϬgW2){s:k3sug»*}2Vv~͔[?$L bh+P#[1 sѬ&{9K᧹^fP@şq'}E*K/iw|6|/"7 X~JhnXԘ:J'smYi3pvl1HIF/ȁdrad5)R<䋷,!17G}RLtf"(GU횏tHT_Qv>:vüb[z&ZPCs55Gcbrn]>2?fo{G)ZWɪ[~ֽZI>V{k^?uKfNe_%H3$A}J͔@QV6xuVz]\I ֜>{3,3zDMY2f]Jpԝn6pr3 źI +1*wb*Xmē\vY߁jZ{+\۲b"_!4ǖaK!^3 h;@A*> }1=#5!ev7T}H86Swտ[ .^+i-bhOK񯶬i`8/Tjј6حj Ѿkk Ԃw +l1zV'X}w% hMD%! S6v}s!ʾ<#0JKj H?)#_CsGkڈNxS&ۤ9.EWe$viMLou{ +W1+ّݱ*$խ}/5sVͽ_{L:|\6'p}PZL>dՍGұ NcJޥGBOr`2]rK[sd}ẁ< vКvb:z Tq +PD9OGtFpZp */,6AFq$Vs-Y'\SZİmϐūXSI3+Ks9AAF+!5wW @%/QPE^-P+'6Dޣnނ,B &#xp,* oDMZjn^T¨,oc"Zx#]~` 6a{cS iT=eЩCO^A?5K"mwir-j_8#mjA x>\ + lqK;.QO }#tY6hI +`[T;nY5Nt HB͓:7s%N#vhRc|[hf|Ҩ&EaWp,׺!{*Βxvh촳jo_ET+QRU3C1i]~Ή X<0* ~/J/hw)eK23$9^jN%,fBdآZo{v$vhK_͢&`r +Vh_ L7b"{yBȉtj:j ,KgVCvIÃ5%^οI.:| LA +efDE+=]߶W@pk !頺kGpteKSބLʒ3'=7a+ ݟ5 +ϰ@ KRSx܏#tiY8PwX9>Se! ui4`z) 'ekv7b70PK]gg=φVcNHx$wTAf+W"L8?$mcC;SEzxwGM_w97~WCs%zrZƢ98GEF5rbFKc ^ }*h<=0I *ZBd_vl0@.RuUze3/5-rˆZOͨax` Gu[7߃\0k$2 %/>3eEwMVA 墏VZ9^q{=b 1]Z}iYZo%ZzDQ Ie&JB?=ȏ?[U.3H`869hLNu)j\>ڕՄXk}ف@;ƅYj9O{+ "gY^x*@0YoL.0ꁓ+{ǫ3\+[tjߴ n\^pBU͑E_ۜo5qsi;φ7ArJ=y[wgumH@~S䗗/snc!U60LンKݨHyu>"a8bE'oh~K̕[,M25/ "S95D1+PM662v]D- =.*+aӗn&PֶI_u~`Y/\H;P+v*%rd<\bNQA)ˣ=uFK:$G "1`ѭ7S&.DsU/bȽY~} 1P˗zGIw84bۚF~YO5Xi- ۅ: ۔PG̼Rq^.Ub_YϢ@TĎXq sBb}T!, +`s*> ]O_z AG'ݶ8~L7іp="wT!pM<2 gkXR5&$]U=yk56Ʒ-Tp3qZ( GjǶIHUuz/7z쥗%\͕8`BN*6J0ەC6T+ T|!erCQ ((2t=ូ*QuG2ŎJcEJ5+Vɇ b3UXŅVhc'c|)H*&+I8^)ԄgWkĽSÔ6nid֭,7c͜^%&G3Ļ9}~*G, +DZ*"P3khU~~QZ4W4r;#5BtV̓bL0p!g]y뛶ږuۉ+~$+l?'>&rW07J@ώƦJ1]lLߋ)$JxX׬捻55(ϥwNŵ C~at N) ~‚ؕ,]ֶu^YMŝ?;B}T{hrHZࠔ;BBy+$ yWN!z8*Sxo.Bsnp3z|C,-ɯpw-2-}UOLk~A+犌G1h@<]ʂh6yN˩PKu^UT1nR%+iwgKNqLkC7ϷQRT[]jeD\h#<.fnc½gd|l%%e̒J.A)k^fc|pQb;8EWYxo&Ӷ"[l,7k߻״#%^ $Y0$n2to +)9"[`7*=,re_NfX~ +C[ՒbIahJGؖ +`)1SoxF:V-:Zqqlna7a|݅'&ʗ?p!yk>AIwюwe ?vj]_)$O5: oɿ˲@U{Gfb2Hk~!7햡QbS=V$P)|V'|Ŭۧ<@r=I&̆ycX-0% G kuN{NP$>`=uٓAʭg:IJV<%Snihet}UV~ovzk8+^ y2X̯uOWG$7끄?^olK/ɫW|Hf0] =t6jêq_ SaBr~q^"CɻQ7AƖqg<ۣn ɽ@9Ǝr{:]i4Ii>qY{I2ЎF:k%S2d/R6B[Fs "C>3KEmbv X6mu&dDžM&QAC:pL2;Ұcnڵӽb>۪ܠ=o},>쒻HiH^N%C3)76/ +<7Cert3 CAb+ WoʟU}63iI[CRkk8=ȝN(ѻL޴-!\)N(@C2V!:9#5ui= +GD+?.g<*V» 5L=@ȳ/ а=~>T8cK;m4%3NB( D׎|sA%2##;U_3UfD,BǮ<475F ⍲C˰q4 '֊&ug$7 <|F?)bb?oçF)޸Y|އ4PnTx~n&-s)j͍޳LȊsÑ]k݀*EAS<*zG[k2>)~4ϣ[ 4Ffu +`&KDXy9:FL?NjQZk)_Lo7 U;y`:(uE͏.EKmJ\g-@_qa{r-fF +/䧈6Μ#wCnyiUpzQEZFBwK޼o8)VoNGOl+jaV z-=ȵ׈7zHpz? j>R7#mIyRG +bUxK鰸ŵ+o ؕx`j‚k";N|9윕8b`)DrVE'V,e +p|Em#1[X} X=)xko,D=v~)ᡙ7^YXrF0j.Ѫ5 _rzR? W=& TFy7n*+K>mt+s|YNˆ +f* x?b$ 4s[QEuq֝JWFť~ACPCh xmkㄠޗE)(_ډYk0!Vz=9Ep1twbh)o[ ̿:F#|cz: )Q߷Jy&b^\6Asf5=APR +%v?srQc!,WNAj8|i"5*3S4$U!laMɨŝE轋R܄iVhE{Pn]׫D_IϺ'~^xiڑ-?Ik):n"I&+GkYj68n{Yj_ve/5:>X!O'ʢq?w#>V)x^֜Vn{79`hIKso5v ˄Ļl0e|;HCvZH{6yz?-Rޤü#hqsXy!a7窗5VDQν&cL Y +rTxWse2Գlƈ5GUu&2{$X#6Ub4}cNo *mqLysj˫G!\ҹ􀴵8D걶oEt4Z=i1 WB;Ȁe/,t6"kwHK^%T/NGC]d>A`+JOI"$"A@}ԚL]:_i0)zV['+m-'C}GKg8j;tbLGO;AZ2Pсt>?Y+1Ui#-y9* +̏KީPơd秔;PRnqSZVAlY`D&/oQݍwR_|L_~.Io=m5VQfby>wwNY.bZ/BDnNpyEB8zqeO-:6dI;3| Oh;XʆY8D ݧW  N{f[;=93jKP5w՛y|$M8{xJ}ԯijV$q bVg:_k> ۧԼc$[9jjdF4۳Н(hվQGt'?VWk!b1ltB s7EFlڠ'a)Oe9jDsOxѺ:C>,>+R֌j9MPŬn>;}ڙ "h-JVZmTYWG\Vw[ܫKV0E1:v7E²J]N[E !UX:8! D:&.3ђU}Kp~qvv?]$-V[+ݲKRd׮KK}s.'-r(hbby{BC + +~W۩mW,sޢ1k~vNxqT,ՠO ?J{--}9fx MbO/Y3gE ]^)*?%hO%J|Z\BOp}Dzʒ)/TOSYs0_)Bn<F;DՄˌ'(l.mε`rkXJcVV +;8sM]gǿCރM9Q{6: *M2 h+NnJx6ᒻI3' gaZ6f;-} B6vdK7:}_,XU (2(V"Bwj6WuVcՂ>g8PǰEcL"DώQh[t`\s"'L{^""o0_[<VU38Clę!Z }8bPfhܲ6//Z2RsraI#C.D hm7LH/אA%ǨvƤi냀?Sl9_Shպ#?鼏Bvu\)<;7d3+rZaw[sK|DL-'WD9H[ bk㺳,W7:a5GKuD4dj^&mʿp%V4MR w%KjU]ӹSlSUOTiWo?pa7L疪\Ӯ`**b@ErsVozw1IjawJi ,\谺4Al7i^%TD +Mv۬ȏ2%bt<|EhEQk!YV&P& {1X}06.\hծVHtJV)g0j >ϽQGejX@}ZqJCy+LTdJf^IN_vvhMսѲv߻=ctM$:zW%E-|i~va}=cwGO'(3rEVD"vPm\qiU-|U"z.c7 +I6k{^Zxg R8O?U^ץm>毑UP.`?r[\oNGP N8oMF} (Oȡ)t9R sᄌm WY ŬIBDBMEi#: 5j(V ִQ "\j}uaqdL@+>yowBS?y$ţW5^\'XfQZ6>/&N)59Mo0Q7(L+7|/fusN6.լ{89@|+fLXdLhܚ J|0|y ʻLIԷJ =&m n2KeWdF\Xhm+]u%a47 +Kއ_`\̬B[Nhua;bDݤ^WVgy.>"v=@f6p1̲w5n1P69Ɛ4GUǕ`}Je1FVKwh ܞ^]P/1 +yXbU`RpXS5ABMQz3ۯͩ>a$.կo$&ƷjU%@nx[PN/x5/}qtG_R8ѭ66l #!*S~דd,z0͚1)HK'?~EB^s +=# "~%\ʣ,Hogb٫~heBӺj}XYs l^kQRܤT+x,{(sZ;3*B5 \7ŋ5`DrE6W&r75?ן4Ex9teԶB cZ555t~ui01њ]wn[d~M_QCգNmW^ -ڿT,I8|bW?לP,{Ӊ5s (*yj22&n.Aߛ6~>N}lC'pr1C+QJU.KK۔bu,%9,ΦG2p#A.UZ2|\Bi0ؔ*9ũ!4 +qM'4CI9:uV#r,ܑVZcR"~]..E&=^ftGɥ2jU/~`ev +U\U(LR, n +޴\ՀڡSItl m/Z[jUg8t\QlI3PZ.@DQ9@ C45:6C6<:<Y1C;D:MD5>{\5nڣuNp +y + ~SLŝJgN-FI#'dZX ӭZ]rZa֛٫Py˙LD>5yTËG $%"E}hGB +~OJ'5; jfx>\EZ$><62.|s`k`tϯ"ϫwEA'J>0!{4bLJB^M>-3` zkYu[t.&ն|/GbkU(1HxLJﯣ-N@.&p›ܙ}_?`qC3/_(ֈ* &[jj%hұsƔbu̸M_Tԙ ^T͌#w>mZIJ:،.ɣSf*J~*%]@GxZ 2F\΄ >0ovnD rc~p;/ +< Gxn;y9~+y~w6'<*m_z'A +/lƙ!Wx~PqQkh;^u6`bdЭ<X0n$]Ok꠸6nO{>qE +iH:)ḥZ'ª6!B66/Y1f7 ? c$eH7AD<?&X;8}6Ju ]G ~RȦ滎 }~Avt6hYŬZu!neBaۭ`gX=/FXw~gPml;6=M$[V +~>hƙ$yk1 #aÍq朥4J5yqr(r h̪7&>,vVދ34?SHL4oS`r&~ +21u7^@>XVL VJE^ 7zU~}ے[N>.H •a~ ~vQaZM)=8G `6g5.jEFћ* B4XPO @A}W+C⋨㭻pua^ZJ͞Q,I}ZWaev=LX2i󀏂(tG/ȨӞ|ApHdYtj],6fଈ)D/kdx@st68ܝI8*a@݉2'\iV>+<[!:]&eˉ>{/h2Q2EWBY=䑨mlt8'0E;;yӞNޅzؘ3r7$MIW%䷍K8i\jckͿ0Loejc':Boxap}btek"#U_ay2>w \[؛+?Ԭ_[†oox 5ZV3*DB%X86O@cgJp5V4%ۘT_&Wu‰\9u2h}E3fY(ʉф)ej|bV$PC]Yrba8ГPRa ">XqcHͶ%ٚq4CTH|g8n1¨)kP[X$Mx,r7m,.Qaoy׳Z Ym"ٮ|Un"l3=mu' ]'|F,?Q 챷}&zۧ^8o] +70/eQ'$̕[,p! n:AcXSTKE+3pJ~dhJet͑Z)\ _ʿ`&vп%|Qy.v/d^ 5J͏'a*]ݲ+"OM'c3C-!.#./+###(O׳p|RhT1?_E}LJxnGj@}{\O-L^ Bȕ(s^_?9=Q/y4T}Ǿy5T,VAgdox\}g"v :mV̋/~~``pjIfnԓV^:ca,]*i إcõϞx#[CR9<&spؓlD@$]_Sq =)Ctl.iWssn쪯dO!_08g@#Zw7$ľE/W|!b,6qH~}EHwsΟ"fz%1Gᾈ&A}6c\u +RWT?@1X*.eK@ 2Rׂ2uT psɴ1GZ+l>~,tݚm' :Gߔtb»^լŝx!9zL+dq>K}eUS1VMV +ɢ*waQmCڑqZPg4c꣑㰧BPbSEEyv|8][g6Cgug/g:ֳCsnXS wD9;WkDWgZrVN8Y{1F̏Fiޅ, 7׃%deD5ZTL$בu7S. KiӍZcwTå_9}jֽ9`4Y=]A:A +.fK]ZMTDFJv\PO5ٚ߮w֐eVʨ HH}Aǘ"]+:.kS׃I{`Kx@՞TKG!h Qd*˺5iGFsij@VU2я%I6$)vf<ʳL_Y]9)?cbJl WfƄf\=^8e+`ѦCٞh畅zOȪ."8gNs0\Fa'a |Fr{5EQ "`]./? JWOh4TEl\k;CJSQ 6Hh tCeFX(`B^iO] q,k\R!g5YZ&9v,F}p"ĥ uj5Ј-Ϩot]Aux]YvrvNߞƟ0136F:m9Sv۱ԛ9X֞!}\[\ +lA~Q>Xi@=x1ŵhfߪoKE1aTUk?8*X)J~]? y{Mh;8m6=fh&?4-:iof5d 9isi5װ vvHֲn 7CˣU;]~7&`AɆ\mŊ^gws[ކWBѯzw"?Exnc@ٱwƞ6@Ac%ApjOg+srv/>8ȃ#FdMsxv;kKϻßӁr{> _'ݯuA&kr\Vs%i #)dkm[r$9CjTaF_SaOn5:g^Hos(<8CZ}p<ʽRy<{c+lU}y#HwrNRAQxx4ZH/n}6l Y~3/uo/ R1)6Y5̸ 3]֧+!clp2X\Am[ =ty舵y:R輯s9ָn* 7&L_9']=*ng uMp459sЋ6[4WS? ]nAB|G1"&jk*hnbS"sYPtASi! Ry.wx%Q];#&{^dPDY}*tCsM QA-gx-"ս\U- +Z\webQʂ>.ȺB`<}EN*Y\cMJᶰʾ`::Ql`y\ZG` +RW} +4ݰZ5{k;e=_ʬv>&YnPɋʵv!Hj|J 6XA;dT[dr &6K <Pl"z㚐0'NwvqKaj86cN[ԿZವe]j8ʲFKJ!lZV;l1]8ݥwwy"@ +,{;q U+qӕi xm' =rBhݸMkT3}Rg?"~:0f+9hAvwY.$dӂmk:gIV<~W uВh +)iߟѽEy(U,q="+%('S={n'^(Pq*VeWW+.\_ +j0gf&Q( +*v.|R=eB|a2ewz˝^%w/\9G19 u)fݖձG뛚/sM6/C~Ak z\x Ohuߦi|d)|xTu!^ qhe݇S.]n]лī/#>wyxI +j+TNPv~N96pOu*siʠCe ͝چ^/ Q%Xn6TjXqJ}.syljnޙ&Pg> Cq)ykz?fM6sѹwG.7Joֺ Lv*BrCDŽeWLdp}ݕђ%=h InÌOl[U8P&%I4D|'FK"h(}p,kW2 +TE.;]bp 2Sۚz9t* ?&x<P~ޮK\7A?F?>LpH6_Y*X &ɏSe+~YAXz+.Ţ` +Ox"^#rSrR@xyמ#sn\/َVjߏ/_զ_Ɂ<5X2Nڰ`.s# z_UR[>#^9@jÞclrS |wo5P/ߦTTl?߰;7}@u}>_/"{" YOYkZ?N5vJnMg9IȖt^sHcI^Im]?EZ5lViؚy?U!O' =}&x l&;M'/I..f?|$B.U7\V)A*n!/Ws>,}ҢV1N[)8qcfgItGG=M +TڪħSn7U1;mWmx>լ@Ϥޠ &4-Z'ZvxuMC X1Sbj؇rRʹ6UgVb]TKFQ1b@|.7V"3#E?ql3Gĩ􄑁/m\ry:V}*&<G4u1]h]I{ϙeP(C'sԛ#h(k i^۰@Ie;1QA8lZspq].K/<3(|Do:o)D5*krp.JQB&F (zoE/aRz9):kP2׌;"0 _KW*?tᵎUYhj{u`;aJoo"wl^u7=g +vT(ys_z}-3F|e5eޞn4h%y;'XnБ^pn&G}@s˿|$&<6v]&H U~Ddq)׃v]_#QAq}w'& -g|oa #WRh_ˠZrջ[s&ӡ.翝|B50Y vN?]BC>#^[ͪ&ZK:V_E\U_ڼ8H>0U4ߥו 16LM"`a}evWo>Ѻk$(k*[+טL+*FX`KU^PPFKAi9蛍aجeb +V/Ĭw,_0+H2+˧;랳.AR3;pOúʖf{>|~AO<*nLφ{֬؏dx{h3lsoq&A'V->|Pu{ݓbfwTbԏ~]p1bcߞ^yƬI'{LCOs -sBl[zuM!~ڈrh4^IzAc2Ž3흰o^#T\Y>Lz }5r<}qf,ȵ +~qwՊݶ$cSKY cLc.Ly:{$@7W*jyW8 ݑoiҢ-:|k]gϙh/'#~g&Vz: u_R런:a<'gj4u9(v+.\ߒ]3_~Ưd@̽ґWFϾ,y49?-b8Dl:vi\Lxhԟ)PChA_a*4iP]#)C鐼E~LQ1E U-t_S?[CǮѧg1B*g+sد[8'jJ?ꃽq#Rm݁ڍ :X6 wR+YdUu q*(M}Y +r6rj\:yح +5%1%Owe1\Q`+̮(MǕ,$[ <EIwc +&Ir~L5zH$:I `p#v˓V5l}>_|laf |fXO-S5GFѥlgeTLA58Z=M܄3y{:tC"ͻ$,\ +929p\NӠ>Y c82`*"}D&͡O)_LГ| +ߙ9bx=JY޹V\ג\IoZ c'Z4Fh8ޅK_eQl_=ח3>Iv,Pe,NmEbK=wR⋣2K?l/̼>rjfD4dRZ;X'ņ8؜'\adTz͵xQNJ7]+~=áBn׈zVCLLi&P:6|nVP4TZ@wi,eΰ`|;/e CSkQImuto)g . +״cz۹1-ЅeWg_PmLn, r%9BW#>{g@m6ʼhH:/: +):.o 'N\_բ,ށIy$!Wjs&!j?|w4ߒ8-[,o.hæb#NͿZO'n\{1z-Tc4dۊ>##lXkT[,9 +I֙E,W2 mWjme8ֆnӲJֱh1+Ix)ˏ]#Z]o̓j4BEV'-Dhv *k昚!Օb1.vKcm7-jN[ȸJ<0'uݳ^ʇ"/# DBn`2Uf a6BzӲt+[ +"iϞW:?ʡ/jb:LTDFKpZ۝|XdƤ4Wh7ـ;RJniOj4xV{t }ݻ,â_aU/ڲZBѮ?}N˽H^aIqԍ%p9eޕ/dz*o vnA;RmT~G)x>{`yݡv˲4+KژNoો[**7d?gLsg _z%#:4S+pE,-rڦhO[jYQ)Y|sWo9JǗ‡h] +ؚ+iҼE4'ePA^ӛgyHZ/[0ӉCj!;[T~Ե3Tיl{0m͝ŬUҀᶯUKLYzCK/_?H'o +:f2 +y$R/ 㽆:|i4Rt}7 Z-AI`ʻ1 Cdij"k=V=-Sr" j]巤i#Uf *^#2ˇ~`M ijdmi1Y[q_!+;{=c#RK؆Z0K.M^y{[݀:C>5vȣ޿jD f򰂰ciZnHX#"tZfXA6(LQ-.?&lDFl, Rw>݂7ah93џ' kp6tN1;lu =+ jc|ygld fѳ{QU{c#t_nڅ²-*&;}^qz&OjC!,7f Ň v$WPyj!i ջ:p;b91+qot*İ+5r0<[{n8(0g +9šIqב&|i?%EeUg|l? +$;WϛMȄƀH^E~雅tjaW)zl?M6 +ҢtNh6&9덾t;v xc]gETU)%bJe>bE,qvuM^7xm+P>ᗻ  _g`7\hkgfԎZ}spg~~̭?Fg/^KlH)o:CW2ZwX6tn= ;Jǜp$\`Y|v6okY㲯Csq4”rgDDyMį[Kwsz%C.^SPM+G%[/]6׵N +"_PA{\mB\sGfO7d݅vTNP=eN|3yC}6s~f^y M5*sc1l-I$cz Vr1QBCRy2 ;{)١XJqg0d\ V (T x/p,Q]|I/SMXڟ]I^UǼẅ}#E`Hɉy WMn>@qGh^]/5|97wL_sǢe0^ˮ ` ǿ`y.?eyg֔n< >=5|*PdtRGWɦLE*118Wv mWKqU$ `yzKZyYr?&͞ҴARNxZ+뗡ilKt˸»7`"²^wKq ( :ez߽X?,OVi*|Ȑ_IcKG50ZK̥S+\9|V_O/O>lmv5q-9PgoUBzf X$byQlL_ټ':Uȝ*íMsӘ]e2%%,-nzZ/fTq.([5d'*rU7xN9i35rG:cϝko=+"$꾂mUL2<}Hn_%iڔcȁF~(9MY W[j@D"Bf:fɼx5|[L:(zF"32Z[d,7iJhqk)*Uk$JNVغCs_|}^Z 2,kcVH+ 0]v^>t\~n0lq-icYih: Ux]lCJVN;y\s?aO< {-,_0?je{"eDZӥdy6hgCŅv5+co^\fO}yXC%"C,uȏ"SrzS}I? +-.: 䌆Ttȫs(t p0js&5 &vdsI7Rd띖"fr0.EۡIsfta9UXʑn&oFis^O JgNP^50R'E$.!\n (@ +rKy>lsRٯkчTtR2Lvsn%weǥJڭnT]PM\e4-ʻ#mWR,(tKҿITOmnK*>ITkbG㳕SW[Bw1k`ަO2C7k:8MkVo𠡲I +GưP y7=R4 @Τ~X<=w+,p77vo'hwiHOp RrInT}*KshpcZ}KЭ>VCe9)]0zAeRyԞokkڛx-Xp୶#@j\yXw=hewџ/o+ؙLLCڎ;<>*tUU=@kݳ1 ?8;C*ɻa-ȱ[W<'.K5O7ʇF込Y<}|W関Z\: 9#mrv<l(N4r*̆|J*tjƅ>!2ɉU&7("[*X泮aɉ^ݏ^*HZwtN{:KL;x3Ζe=, t\./XԨʷW!PcycM %qаR|WkW|+~dm%@&Wo\%҂)/jRbZkQ]94~;('F[bh‰eJSXvvG_eNw~54}SeW]ktxn_39y{Ԝj{38\}s12"?ɏ!@Gk#I#ASRxC۽C]4 vy+=|͏Xk6Nn=[+|2z89;*D_+8khCi3j }jûmnGbI|܋lJFۢь{gy#7ea=QLy"x{/{4 +h3¤ K\`|Hkhu [4+kq/eC5Jjf;3,XkxDPzEW*q#]>)z)LT# hکaĈ1 pp?^ 6RnP=}C?X?lZA.#-UٮnƮ@.F̟5[Bҁ̙^c_Mj਱Z<[xX@lU^S 2O?$ԷxOlj4)u=H5UC}}ח;tVֿzz(V' ԗ(hFc˹)taJ +;j^"EnDb9\xU c{ear޳{m$ݯhЈ[xyv\`^"CB?Z ?wB*X9rS fOE]&NkTtUC1tr̍:M6qS͹VB9͍cm?Jv,jRJ>35=S2cݕR..ibdјv5XR ٴchѣW™T]F~h1rnv!f`m[Bž2 -#SBSTQ{qǹ}Rkr(tw)SNV^k* xqUOW/M0.?@hFWJX̿ab[Wb3j8i)ː-5 U{\[6_0b$jiw{RO~ :S_eJm3_'O'8=Fنzy#א M6yt_9-OiA |e8fswd0y x&)$?-1yݴzF +%U挾C6P-RF +ͣQuTfaiMW>G`m~;mNP^ 7>XZ>ۧ,[,Y>'# 0-Fry)foX>|!TDܻ +GsuJ #wK+~-{~% -z@roDΕɉU[/X e%꧞Ԟ'qK*h #鲕 c{?ggםWTŸcZʰxgS «ݿͧ~<pW3}WoUn\%\yu *t&~9<ּۖdL/ux儳!W輇 ΌݵK0.űfC/uD/NvыT՝QzZ}i_fjћZFP`?%_AvNq[D7mm`tpmH/f VM7e7\mtWe{^m#'׸:Q*2W\gt^GZw57˧ {?k +2J>jF y-*H - +KR?jׂtk~;wG!̵TʖraLBԔV[ *JPk=s6m00Y&Yt +O]` bM(f*P0ZCVN0CK9။/,㛂u)<\1KqQ>J_VۖSId)aٻ3agҟXX Xg=Nͧ? TbWXg+.[Sl3gU˄\vl]/'.t9FLfqs ]icb099bKF=shU{(p~7 VIՈ.qD"E\CeWyN>K_c̩*Z:-lbZly[6l^0.X/q>suI|^u-N[܉;R !34HԩV#oݷdyHk*%540J)@XuhrKOpE 4kTT!fUٯl "=rL +YֻucRq՗$7@ +P|s85Hj-3Zd Or2 +\a j<(7%ˇE\t)m$8?RH|]15B7߽k[jk ۭ= +Jʹ1X 'P8]~*'E:TeCL?]¸;Ne 9~]f&C5m0ٺS2S^\Th.nC׈)=1Cڞs=+Fٳ;zKSm1ge,90׶]fzo< "t#FJܒzRݖCZoyI:?bBDD ?cfo%{P.>4K V3K@Π\nѹ#| %UV{ZB|.꼔L{Wd)sEެg!%MCoZ枢zviM̕$T*`e6KD6.11}k$Bd_CG5HUBǭ6!/Pf97x}.Y-"R ~ly ՞6x-bdΗ,-ќP8y4 NZ: ם<;&%$^|/ӨqA]kj[rms巏Is-y;賭gTִ=oL$c4ӮL>`Qbt~D pw߸D J.R \:HҚb8%خ0_E ++v^5Cj8eU;:~2?Lh?UgU"e-XPKsMWԜ< 6߽fׯ̋ső t^^/\yE@:T2Octjn#tA}bFY~L >eKfζ澺d{H{,\/{h/z+VhTJ$zS LyeiɅMZ{ܾb~.|͖Q [9ֈze +y˄Ҍ͊~zHV$!\WvN{c`Er+#'ju:5̐7'MZо!VɽM>H(/; GgG5hwwy~dY9 +s n`Noˢs:UC@<[Қ I hkWjD“ LՂ):#R."on`-C?[{c +9rYi؞FʊDFʥ /W p@^^;"?ܻ&j+|:cJ!nuDfwVe}ӑ:Յ`J VxMc칮 B%<\øIzMs +_NHDB( +SU4ia5r;]UȲ>tD*sXvRؾ$W֌!tͻPo ԰yK S]뾗>ಣ:7*W$*.}c^=~*{= L=UpVr\֞GL>}ş#+'CǮ n^g67V^ʺ)t:M'en{["I~ƭEx;^|MBHS:TŜ|KCX/ ]o)~@d,ӲXs`K"oK&u7K6_| Fkf?A[م]URmn 9k{4qyd `S`@cO MqTMrpZivJi-9(NXsјrV*s׌5u3bMuTşja0/a' +Z]2I  +x%np;7 UK`X.M'%ʇבn5;"Is ? @^;ifObzP2hEm..3%cpÞ\Er Vi i8woM2%O<~9yh Wkdt<`G;4Sx}w?u[dF ,pPfU%௳{h|44|O]g0w וl.; +?4~&٬;zj( nRoaAq٤_^{@K=ؕAPBu ;PBd<{u_Z~jyt/v@?X`8!I^ֳm>S4Qs +qRc ѸEZ߱<x$-2T9y*VկFkzZ ~º?WW+z h\#lv X j.Pm>]# WLff>ʥ8e3nӓYf%u+VT6Γs_'թv,彶-> cc+ifjZҖYi@4t~#ri橹OQR޹KnR"!j>_ptJJ a~2FGΥ]kz(>F4owfFAq#7lur$/͑hq~lsPe ~j7 ,ų iZKs.{p"΍jSzk)Ԓm`Ù[^\ߵ;6;&vfr >ė +|,8QD5i33aN/-畀<3o~q^>G],SO/?y*@V><ʊ!h<#st8cy;< X)B^A{\l=b'vr&Yƶt$cTBWp]xy#ߛ +Lydo,n9I2YQeِqլsZU:+ݿ !cywL$c^5$cPV3h܁9-;ukc?C*w1| Cx|rJ5+4n>//w\X_#ܪq[;'}~<.: Bm"cA}ZcNR*ߨulރflEkp(*GU +DEؔX *v`ws2gVڏCuDs 5K0>Ϋk^c_дD07CۓnӌJ1NH݋$RҮk{y1.;/x$<{p̦NjJmCq? +.̿vf *İ:jT9yz}6%`J~O"gO{azLt·Pԏo"Knu;I|g- #Y'dmZ^jTy(3u쩹yZxӰ-RgnА)aydY궚ڡ͓H ;&\ӡ;[[yIEh?BXnuXEua;W\fE*^ Kw1eJRWmIүǖjc'oZ|y2 LgFq쫽u?`ޑU7SiOyͧu%*{͢u[?__jz|3,;k~.;-{>+5]ܖ幼nt-K7M{@X W:i## t T#r(eQRqfb-aѽ!ţ&SS3o-ujwlF.%8\А +dM챪re5 Tk~+Ť@Yc.Ico q,7&:(S]ZZ, f4 "%K8d_ +& N͖]]:<`;\g_X*۩G]ol IZ=M.WYMFC[|Au.]>orpu#<ĥДj\j]Ε^M~YKdնu37jy;Rm@C%"%DD}>sS$[ny}R6%i1eǢ9T-j~*n?K6~Z7%|0Γ7rEvF CQSwUX[}p5r'bpR^h>5yWZv0O\\=K]0>,݇3ַi/ǍR +l }%)U8@7S՛ժ8-R}g“ޏd q^Xbe[h}4~R:+0%!Lڿ};%3&DPKazUhiŐS +Zo93л_R%` k!^<{V8 W =;L|*Ck_V NӿYH(ة`p {mɭ3Lݑg_a ڧףS7`riN /@Ʒci\~xvK?FG@\N&KrPΓUQzëփڼV59OavA,lQe?1PaBwo?AcpN͗˓\\4Z4TzαV9rY(xaxWӳ•ҭ)6Y6S1]!6e<[CYmz/>3 F9pq'ENwU nc Ytv5B r-pn++Y}Cqwm8XÛRLL?L!>x3LMuK+QŸUTfrnt-%.{\s3N>L" 1|ڃ U~um+ \˻_aC8ǟ6Ml%%,H٠e'#jm;{M{`_ 獤Ʀv"؇{ތUP# @ +/x +-;`&Y֪gbv+ű(JE?RĔI ^R8ϱtuIIݫHOqVQUdKwn }e>h% k[R Zӫk&~VnLHHŔQ^תaq=9d؟I WQEݬS ti:Σq>CSjw9MiӍI@G1/QiWඕR)~! 11y-'HBU(;E@0GOq7vLji?A +"]vN#J˟\ΛjP5&ofts)gcTɖ?2?j?;n3:j*SvBK*Vʟ!΢1Zm8׏?ȹrl[fQPlBE}OxeĔ|*N s` ZjɺumvD7BG.E3ƺJʜն.!Z0oЩĿ$bưgUətr6 uWTAAbWLC=ltyzpkʑ[rvR!p |FfWYB=OCf}qVak&1QҤP|] b6etv0wa(&2Tk5׊>n^lQ6]5 s@$]}pӸ7c+P4ܴ走~@+ɋԩM.wc@B7 gYO<]ftQsP;ڒzN,'v "m7[XjLJ#|9K3jneWwMAzBRob[Uv^lTܴcs])xz/*igD]Cn%@`1h)q [ڰ ;!X(* {BE|lV@aj&R3w>mM$nus͏-jcUgs>%<8iƔ:w^UE3zB25O)bpAʧt} +uہۇqkԪY !h~V;fZv\ޤo)`\j/ady9XuOv;Yss7v_ +\Z#9VGq>m_,ƣW;b埻V8)@ r}+Elie2v,5qGm`{DOeF '"NBouW;l7hW_Xo}4s@y}K»U;l^0ЊVV.m>kXTԂ|ȯ WGVȩR?`hX2oe@83sC7Io#6+o˱{ [;ʏ1A!yV~F;ec*`͕WC;QRZ_9hII$RC|7N%ЁEԖݢGGpmdWL^e w1Xm-.aWA4pm99/k+ߙcw)S.G:>m*^bmHz5ԍ$Yzċw}Ez'!r9̕y; I+7 +RdLX]v \kO#, >vw;r͓ݑx[7J˕ꣂv \*qp33'S3r/:0ӭ.{gW]O9޳7.ol +1ގ;ϼGs}Kq7܋(1h`nJLJVMUrc=V!ŗo]!33x); nе7GHJpRf=Ұ뻢|s \r2rYYeGm>ٍF.TRܘP0 +$/-)3bI̸4*t>㥩munq=9cK3ֵ@SFguo:.|t}Jٴu-]6s `5oBQN +N\ʭ_, |$K_3ǣ ōOVs-gi Ԧ3YC{Szr2[HynѠf9Ӭ< AA/?X'F;i6IE癩6Z&T +^`&>+{I[盧u#&#BC 'u즧K,jTW %YzpU1ߛ{pnPiӝy[r@_`M~PtW<|+Uܣ_ ˨ت#s_qE=ROGR0p%KHGAeꐘ?$?t\[&NZ[ %Pv"/xxӸɂDܐ^Ǘ#7\r?m%:Ieq 3S&^3N]P-ZntXyd^h|笂q~ԁH6G'SJa%wdy`fٱ a[|LdN{ @SF|:yg#ڥV E^-FZB;w $>+ibap6vsaZjzC4zqKSWK"ǜCur)af04c%SekO6Rp$/I|ߥĺ"ReDh&JVx;6[*KMLra X.&:_?i:I_#Kb_eop*MWz*VC9(ٮĝmQk3 wʨL8Xjvr%/B珛 <|P]p T% 8/W[fQ| ̩:*~@IZӉB1`>?ҒE +7Xn=+ N*O=F薾xR0[_ݛ.\ѐ#i;K._8L܊>u.ϕoI[YFv"gOzx䍭a:>u$RxV'LJ"lA^O'kVoJz9̊Je15iY~BO2%,8Q%cMź'c F-ay;uR9ڦNjdc[s|\(Kwh/ϸex`]nWd]OfĸTi @u+iE3S0m| `5A 'O`TشgXmX뫄NGjK4Y +܅:~bxwir/rMؙB,8cTއ _1h[Pe 䦰E&s+ʢv籮YE ΘYLj07JE +dźʼnj,,*G0Yi>/$FES cO…9:1Lup~kж-0tkgꠅT/V[:cځ[PqW˫^|͈ SiAmF|k1o@8TC;s)xE,:V@UXywQuҖz.>_ Qx`^թZu/"2Ϸ(t"Q UVW\Id/ V =P[U hV֨]smmioR5=3Ѝ_GV3~=zRA.reBͭz4g'Z1Yc_̊܏[i6]CN'VGyߣ>$HQ,e}_:Wp#8?+(D;5_j4Akf^JjPR*PADX?+iwשmR('Z7׿α1*/-ܗ1SƵU[w)L)w."W6~OaZd? <~ǘUz^W6sڂ=mQyWbUTpQAu Gj*7_e&9}w7Ϗ3 ++?90YZxz1}N!^r445^m^SOJVNrn$'Nb ae:GG{ܴ_N_tW΃8ڄJ2VIiO~h8>jo,{9vqL{գ!V `'ɖJAn.{Aѯ89OV2H'?΃L>=/-wg+=Ks)7釫}9f +ks譇4 + xjlgZɌ./|jl(%m fWS'B`$~xIdN9dyOI)W YPvp$:; ♃ Vk.Օ] iz`&NˠxG2S ZiOַB)hПRgљ;UwK/z1IӾm>>kJzgPmQ[@`JbX,ŻLxAMgZ\u|eIzʫJLRB޵EiNk`h$\*Ǥ+ԩ-9-A[k#r`ئG{}׊Ir|\03}gK_lLMGQT X Ǣ/- Jpl o>XO(ˆ9_Z䫠H݉|lpע&|Pq^oI1&f6h~V si8wR}y9gfIʠªhɑqv`ضʶL0a=~; Cg}Cg-hWE6.x&ϝjxE+hak:}X}iسڪIRkVѼz`o){nn\6pv0wqcTeRw m@dMH[[+u=7_;Ee՘^Sϻ>9}!fvOJj?EO\{N7[8_tٕ5_: ɉIW ƾYoN*0"]TL^إR~:s7S1Et珁 +*YO t6 Jn#qw 9vFX\^xK. +H|*j-ƳJЊƴ|`?$t.K1<6,. l ?f_A_M= +{@FNҳbG-az@.sOf9iukwo~yg%nOo'֬sa.тV+*x!g2Rc }<89e0j#s%GVX[azyV/>ajA 2Fo~UG[;}ثkŌvvn/4:cq_a`pNvZm4 fqmT3Z4)SoCo .QZ>$pœ{eɸ>d5)$MoLGn҄mNKMFjј(5}hrټ/_SLo֨7.JL5򜌟鞠ۚ~qb:Oetp4"4d$}?)v&0}3cWY۹->Džy% %A8`֎ؙ+Og70R')MM]F\}ȅҔ&nʎ<8Mgpn* @%wPHAIpDZ-crVmepr_F]ɱC4/%b<+ђܞS^Әk/ zHXlZAPsD~#rwv]H^LM~ܢ8=_`Ɯ1+?Im eW?dŠ-\U%V̆u<¶w-;9k ._ɮ<[ZöqӤh͐NA`ZQq u4>?,!ŋ7uDm Sb!'6⹭8[c M&uci=靌Uޚ(Buo^#\%acSE ƫƔKV!|eܳ +Yݷwi0^+"iuͲ;3jƳ~˅ɧ sl_.mZ91_$ڷh"P~C5'.HV^`?!?tC5Z&M!+8h.fr2fwmY =)dIq p|ptJ@[jsF'NiH4 62ƍuqM4mQx{*ovu7h/ܦ55#yKC_WC՛}s PϊCU2iVo-46 +Qe j-TN;HY0RV}jy|M.u:,]i*xBU)o:R,_el7*<缢/ț ݛ%lhA^b.m2{o̻t,b T5dں+/H؍}滪9SM"# +Fk%8"jkyMRѥǘëKi#چ7fb/:szҘ-!`C*HSB&2e,F+^Jr +TiIFr c})l /;"y6x}Ur ӷ 2*%v-|} [}!7soDơ4ekC3e8/!R5 e[EN3c]LV[Uv HVZӕu6J*Y8:(˪(=PRBm2f[}J=9Z -"Y*AG|1wZnߚ v\QhK +םDžk9J1:K8bgQ<*o6<58*+mvB1?:/U˳VͫtS~܀qGS7?![e7خ:LiWV5ZՆoU*9;P-wh>+^4Q6v2jLSumZ;dU ^ɴIQ 'u4_{UTl0bc2K?VUbM-8$ ϲJXW*Nyd\CSĜKwoc}ω@cvۃw4\~&^o뷶:'CEڧhʑ w +fMc_ؖV-b>z~#hi_xMn]GF^V{[ v'L{z}"&76~&6b9Vt]c[5;8$g;b-jgCGjk+xN>S/.o_ҩ9@MzjZ=g/i}gL8м9%\}^[=ClB5oLK+A :wʫAʧLrje1mdc7m9P R3CduѮ _%2j)T +GBNA~v2cM, D|sq^jhsP?6!.Tlx>C2.vOK.)W8q&Fo݇>3]z>ǏUy&]SuZi wsMQds5uxeaqlaBkr"kWC,V#0t1) ^L[o-:QVcŜGrf`{$\C(3ce[[w w% cj>%\˒ԉΦ zkt2X`gi௫\&Y02÷Ja /p5TʲRTĨpHEҁ qo:g| e©*iʖ8oli筤6 xb<_5'cZ0-/gzpZ< (*R@mQ@BߨX'f vEͲd*R;|TA h$a.4fۍnrE E̮iVz$Vzqxչd02GJoY.u +x29t9 +@y1')t(JҎm3 1Tn)jpٞ!q[-q8ZmsKaf6v(h:,J-b.{8 +)1}-rRcovGw. Axbμ) +ՍDdI+^ +Eh=u( gQ4qU;'=9a2D=ݣfeꉔd3q D=3*R";=zR4b%1 vېсpur׬,!nƉ1"Sp "X^8W8"l}'A_3u(R"@C/ZCV0S}}PPT[lx8VZ'~S77q0Ǫ^,ngʐʈ~{a_!R 7Ӟ*_{Vɸ5(|ŕ 5H#,wu"/f3 A?.mm C^ wq*,1,Q+in&I V.!]3~a.ևBhLS BX~&5o<᭸ZMp*F;ia25h { +{TVe!Tۋb0~=svD ^ھlN;ze!k"*v3.Vۯ\RNz*z-3"M?v+Hyݵ67)՚%IÛOIbKP7IH8ڼ zf$1\wy&>IU;o)Y/gI u Цz.UfkSlf;3[RjnL\O`P)˲f?g$af{#E~Buv }wKGLi+,'ڋmš=/#L KWM}9OZEɠTSdYƁ-P&CW9tPa:[9y[0WyoH֍ +^@k8\[{O:-J?dTa+~BH_3/5ڔ_n>1 ׈zZК*T; UHߍ/v6zq!(춞'73vb| + Y"'sy#5. r/Aߝէ61k}" +g%WM8NO'^B5nKtp|]l q}x$sxw`G@2̅*Msb*=ks4ľ^m9BW )6t`V,_Tb;ǩ3ڪ}٦G HAlg^C ⇧jWj--,>Ո`*dl[|U;8ܳVԩ덇id +$j(Zc6ƥ\T:ܞYcmꥻ#]%zy<.mJ|`f +'I-41c;F6AzLv˔'ݏU>zwaEjښ4e%,9-|UJYMwpƻ h| endstream endobj 812 0 obj <>stream +"!g7{ig`CӺqx3M Tޛ%*{Yī`V1ɤcnp){{x+Қk]fg-#u#K "OEHBtF+ )5Mf,1KOT<ڭk:q!t$ꔑK5{ 97o[yYXS_{]#RC6VDΠq}QYBhi;\'psoU +Vv+ RB9 I e1QGc $nZ S=jvWNȖex]pֈPn_9sMzKtg"! 1Vr߆Ix[psbx*m ] պ毡\rw4LV>`%VO> ;֤BN*[ Je_hj8cR?c/#]5dgOo4S+6ư{$‡08+$O;4(rۚ[[|bԑg9'tjZ˧xfiUÀۘ>9~+g_V*[T't{n!y<V'םO\m~$^꾧zʶ<~黼U?i qcࠧJvj֌ܶ;< 4='"] +7+OWb:m&U 3𝃞Fhye.&<(ky +X8W~;@o!ĭSA 1 ϻ;΁|֜T/n-:eqqf./~!鞽Zsl)X/1gػyZ|Q_3JhkZnHUT&z6;e6zz#{R\QTm?H@qb)ET_2[wSA1܈4VդU!t\>GZOV6秢 G\\$F.h5Αҫz}:ލCL \1J1-tyz˧{ς+!I o9=bWij.! L?@'sUbь/}F#qn,|wN A7n +6o7^igDžIVA" 2z*< ξe&0bD{~Skϴuǀr 0?e̞a|BbV;g ۇqr4RSRofW4EC瘟]sg?N ƴc?F%cT6:&\3o5ΗPDR/2[}璘vwTLxxOyՉez-*g vam:*y i7x4ȚclcG\$R"jĹs7 >GHXӏ5Nf?#:7whmpqI>AFgsańxCq),4Dc޴U4L)~-)Nz¤Һ}p/YeDPz|t|M?D-eKZvWhg, 뻿,T7*=um>&zqnxw8QUsBe۬/_{ӮͶ),,7yﱝ1"=L{m)ݚxq:e`?Z=LG.N^0\}[#ƜνW}I 2BoώC-\Rt90}/xsg@i~W |ڈ8OdvU\+EPgU8SN>߸/J(h:NUGW[h #^CYMɋؕ';]%2Ȝ95}<YReҢK%zQ@-Q~_m|H:xFއXM%?)trE*1 ]v[[f8 I_ڮ7y7M7ʋ9}wd*"s¶^_o֠Ѝ֘vtBWbE#]u9"~ :@XICJ{$< cqf;Z9ۉ~hBi q ¹˲pnCũVՈ}3(6}" 7BԘ͊RqGN;Z2 +E}ܾfn7q-b`{|v/, !. +u@ŃRoWR^/omUqy]g[Yv(r4?Q}[$u/,(^3}GĨMtlG`z[%'GJ9eȋjaYG- +-^nVZ$_2M<#P&=,P5L9dM\X~< rByɳa;o!D/vP<4Բl8$w^n-R៳2XG*_Ix%bo=4Cfsx3 Y,Unt-!`eqӋenҡǎ'mUɽq<еǗLCb]j!OϋJv91 uaK.RP93#^(B6N?WDu[oWyEс^_92U-`E%ʘ'\,7v(#/ VVo?$C +{:; Bz=.2כ3;]>ksgi>'ڧb\;WRd>+}}s?|3v_ 2&WU7t$i̚yNww viM+.kpuFW~zPuNs(y~,k---M, y[,A!7~0r:tlǩKqt([xJ?g׹";`唁wplۊ4Ћ;N\g;?E?iYJ(e,9yM;'~C нͰ2Pޭy45w?v< Y|] +*zeZ9g+*pFМQ/7â3oE`ِ9}_MI`v!fuΠ ^IҷU{̼_?ę#wskO' t(*s;(DIڑ-5.672l/^VaHռ )^!œ>.K/L>Gv[qzY3,= sq]if00>Vt ] 5˟[$:@ ΋tJ_5oC(yc!CEqQ[ygmn ዓ g&XQ%Irh7bkQk­]{ϝ^_8Rcw Lqa-,M numlzA+yfX&J#BoYϽ*w~đ~p]KF/i|08]tS˭T!՜OS5 +4b.F\0nOv2 Ѷ)MW3 Gl*C.1e B3hC1e)d|4; aT܆mq6i_Հ|_.Z*lpIhDO!rr*&>o18-Fnʕjβa%+B 31[@cl_شdz6|{s?F}\ZRk-+zO]YI]Ajt!mWK. +qPvNn{x/5xM| ).-Gsdf[Vv䎽}dKu4l`?^Sg{ݥsbѱ$lNw$pxnv(L9Jns9#wbc>R48>Ka>jT3m&BAusv kKBxTQP*\}AcFc.oSuBUQ#U.Sl%v8$d/pj9ʐt[t7ݧfqKTT;pȷAAR,'^k-LrYezym~xLOq c!*m7O'-1s]jт*LN?EmE%-N +9+[fO__e.YU?6~Hz5txH-}7#cʹJD6@2 \޾$t#;փ+ʱk}C<99 ae"c1H[ix^8[QśoSaG2r8_3\|*ñZo.èF73zVvjooѸŽ`l:ëȐ9U&}9wߛȠ_y^W?̑CL8EĘ},,LBy?!Ơ-P&DU!RCyK) RRh8UHݭ f CGC4c2# ӈ<'@}gNߠ{:v鼙YnuW9hƫfyEzD #nYI9sW,ZRdFUkyk|~,3xpճ6~Z+"7XnΥ9sh3|F.>FDśOiT$c4Mkp^YLMt͎sO|vOB`s*>mEU]^{ Sq'DvO{Q #U|LpvߓFZr#YWZR)?<\J +qy=kTk':GO֗Q va]]FHF(ږcuB7R؉H;BYWȦtg~l/KǓad7dwtgS+O*oJ$l׮G77Z]ȢAƌnQXenYgz0 +c iUk_5/ ,Vù|lZDUwi<$g7 5 +ՔqeuGXUOnFVNFju֐ Eن)>r=9'V+3%ۓ<ίR( VA1ۺLSqjhj"ŗpfXٟ.yAk{RUv4wd p`_L.7u~Hd7kVUYHpп p\- ] K??DJfK\? +J;-]vǾuQ9OP5kbnJ-7|c#seYVz,՟z\9q.Яun|~ONG2-XVm~'%drK>.hR=T86Ή_R0[(I6/nsd_ -p|xX* +߁bKIpn+, s^b龱O=?EsF!"dǭ~]^xKa\ 3f7ӯx@7κΘ<ӘK.C'o곿-0?4zW_tٛ2'yRVcH'T:_l mts5`;nhb^O<6qJT-o%.~;e.Kh7gz-h1vû [-r}m)W[(=Uϣw#m'kd_qjz/~Σc'ܓњwiKA'Ʃ9FShALn\'pKǴI]\<ՇWl:h#LHSAH)/M!7{z*߶*K$¡gboÑaXcѰ:7nIb,?h3iGi䋄SM:.;EGﶠbjWj.>Kre(4>i^ASNVHPrM 6F.`ffطٚ]d*D%VU9b2?:w,g_o˳GErՋcF#_O8z2Q5vvm\,u79"Rǒ?af<||\qXAo 2e&$(NjOi#˹R5|N\ oǐkG= aֆWSvbXT3ӝW _Q1SyUX' eJ\W')y"e'v +DIgP3ƒS,pSݵm Ƴ/;&e35QaebzybKja$ +apWܨIqhE=ZL͡sHßgQh;W`5b#h\0p[#Ks6j*eۥ`0|ܯP8yeϢ E踹GķkCg[,B[by\;flgX#*ipk93mH[ NWD_Ⱥc,[}{'"z +h}a' i;7c[VBWMke= 0lR'H:_g5rG}õ6YQIXr1fd3)J"j3fķNq;2xTx &61]eרyDmW<.vyo,?w#0ēBΝbS^tox q&lfcQYE.4n\ 6x_9xWnPRDs6^E#ޟ;FGfY1@iͩWy~Ӏ gvc[X']Lj&+_G&8F[~9#f`1F¨g؏F7z1>׺Kзq9+]nΛu4:pSbS +cؠK6;4q% PѾͬdQn%c˓Zs-wWaw"yi#xp133ffpus^JU{;RiNX{%/ Vey60^>; >}ہD _c̬v/޹(?9-if;i(UUivD5cy!ݼR3fŒtbn_F0mk:.@.̶aGOV>3_+o(Q&͡I3lM~ XrwgeeVD|r>S +;t <\(N\VU٦7ːѧ:i5rV&8Κ՗V U د4?BnDЛ۹;N==͌ws_gw;@}v&QC+ݥƙ wSy\6oTqm8j }'y|"  ]cy^nT,CSfog*'/X/j}MAʐ{rl(E +x%ucFto+/eME%0e{{ƃb/\aVlu_=V;~b𹄌kd s{.t1İ:\fT;c-PG!! ȉ[-852Wx0PwXڋ{ =| wanhѻɧUG423jWi2g 1gm7l߿؆!bՇ#u{7sxZŽ5R7J?A'MԵW DRIEqլ; x؄U88>^ +(6/b ݸOL DS_*=]dNpT jgݍ' ì2m Cf7KUz$ FoQJ3^.2L}s f\n/፰)7nXؼ{yzJd'WuHsشրUse/Fy87U Ȗv-dqlW6u}eQOյ*f<^;40yrGgZe+x&'GVOHZXCoN 46FkϝL4}hnGvTm+{Eu-_ a{8JyL-/gX;TR{Q3g>2 PŨ3[YHNn01P0)[bQ߿3 h'T(JaXdEJio#M攘ݠ|i6T`?~vɻRy^0$7C2a@ jM9v-s՟j޾yv;2XN+*L{4oaVuz{_=Q,汛XҘg@%j~O? )}d__&(V6ڌ_;@ᚳ(z&)L}OMuөrU,[={_п?`oFcX)c5[z{f0 eXmulZ"hhJѩcMrخSF koi~16x}/;G 9+lXk¤-]`c̽e]fC̍iCv\ ׭Ygr̲iI@ޣ݃wҥ$GԪ0ظ@L.n{e/wrlvUƒR?\п^;*A\6^b{nnvblvֲGa>]cs0 ֬W}Di|7k؛лt)ҹE,-yr_fϓ^`!~]t5<<ٵuM=$Ɍf yGe[l?ݥθp@68Q=/cW[PP'9Z!L'N _fgtm⮍r\=S.+U#ψ\ef'yCvsw𽩿+Jt֞n}7nltՂ<΍ۻ7b` DY9EC_|-GI]!?nkczL>3>Ykުc>Xݴg-LߏMalg&Y\ۗ蕂 Y62s,|[lWH)5 /Nζc2Nn4sC[U4:C:Ow0?@ڦ>uK uoymek۱u+hawaÐwq-~@/%R!j{Ƴ]#f.9qH&h}GL=kk_9,U5ޙuV {*f3/l>I/KM7@,m} /*cQ4lO_J{J+"ji}~f^kQqƘ߯_\/ xZ_"Ocv{B exS'V󨩡%|;g8e0Zo2u{nb)(n`W*o7d&\8x3eTy}>37q#isDfcμa+#g\w_`i-B?6j{Kf? +ɻ]Fv3z7ԡ7=p5=ytt(UQW2Q jܚAp77B i[/_ԖnNtJT1 jq +؛#PKRlb'x ʺR$Z杸ҽtt?3Y7t@C+Q mRp*LB 3L[lzG&?nq)X0N>PAIwe4C,yfٛeS+OfgJɛ*U[vRjg@"[LIG8'w?/iۈ+YnDDV'kuQEDJFlTJyWcQ7S5 : eٱj?hHɊn$6QИCS kO Doj!,xޑ\y_Bn57 [4W188E%%ײ//BJw6&u.ߋdjVOșsWG^* 7-*wg ʣzCY߈xރۇֽD_#kJBxmmM] l"4]b SY^vv} U>asȍʄY@@%R5mW);94 NGZ>6zX`2:s-;h*R=3AмyvIXR3־RI +caBn>/5S%/pk][myp8|UIuP<:J4.>͝YLA6g`דn0:t퍷 +|Bw5k 7«z_Iĵ V;kyJFly)x >+uڣԹo!ϊ+A[Z kٓwTL +vgZYٗbPH/nmqS7.UA7g,S)`xhr߇cׯ6%ђ5$-0WNpw}>1 = wX c 4QyOuUr9\麸jbYxiDml+?.xv-jpmhV: +X/u]*@:Vvyqo 4gNpEf-IR?\!裵2?Mu{iS8ng9x5<76sz:Q"l\PUF(c;:7gBٝd=lMn'֭3J8z-2Y)&幆eqhÍy 7*%~K^)aUN&(ӟ]TnpNe:kH1fb:cn' +{޶nbEûHpt7d#0t*f?(G_ˍwDǫ~{Prs1.|k;^APX S沯7Ŭ\"IiGr :#C^ѽ6Ŵ|j_ GH[ө>ndEʮvsEtߠ<_'1/ݶ1Q,t=k][W"ևߠ%LOG5Gk {cCRŋ:ҙ ^]LGS]8w)dLx`>)~*1TAJh+ly#;9q9]Ѡ\X9Iszs[TKehf2D8%:ly'0׬~uj}O^. +wv9 TAo';Hjőa=`RZa%e ${Y>03&!4D?_5jy}r +sT9P{Qq9Vk-_߻`BN<MJwQ7ϩ2{7}liӶ);_V^{6/LGPsZGg׎PUpgn镼cU1exQ;I~f6-iM8fndke0 Kx7pRLMa |P=6qoYr}+?oߺͽ$ְ2%m]l<|@QE,.%"Bz]_|YMKw k5rqS3J[wEhOF.~:]~'5otw Nҫ~:y9k$ѓf=]Ewݬ]X\ܪo5͖R7^]s'|+4`Ss5Jͥ4 +.*idݚm "Ou +m)re+hRt}}lGu98Y> JZK-ᝈIgJV)p_~%܉e y 6˜@Ns(q[I9FiGB[u4C93VFY⳾ {^TFn>PM ca}/ls[-kf֩?"K;yp괞k՜7Xd?foo4u[s^/YrBb ӡ%WUaKug}:Au;ز+tM!wf[vl<1?F$7xY=?XJx5m4J瞦i7j~kyZx[߉yT ܍]>WZ\~iĦ4}m{nVAՓ/+ ۥC$!=kwyO3aZV{u#{M`wCq\K %&KZu}H? +wY(+ +H1ƅcEkۙÖ[ڹ=ugC}(/޸9.R $`5<-P&~eN}*J&;SL#M_DSK +/Nbv9z X|Z|p@ph87Ǡ1]nIBs<»5xd6RA/P`^}y>-9i10ך5#7$vvH2s!LF5ɮ >?34Dz#t1a3F wX~¿˩!D/W;}^nx]_;TL1< +s{zlRS_i/dUkNR@{;qvOћ"1ޤ |} Rʡ&\Dq0V2rյF99.hiw\bIuzUI>Źý4^& Oَ[wi %*UU$Yk 5H#L'ڴmώXL?swfc!8 Q5gocVZ tY6yqlZjJWнFS*2}-IZ$ J :f5㕺 8lhۋC֏"  n PuU>m0 >)4r('ޛ_'cf6oV4mGD}Ry?'N1KGݟ{fX؋n4WmaHˮˇ*U8"m b}3zqx'}/q>TyBA:Yh<pb;DBa"skBg;a6$PJ*)x#O7ӫ=9Odڑ2ŒtV>r4RzH⧃ی6LU~dbAq塱1(|{;= ׅG@|%_)2y3gH-lmw#k6H;\ yeǪkEӰ&l\AJ_3lW ~ _4=a ibUe'gzuFUqǵUkJl4c{| ]ҎڱDp'Ҫj8xw}="&X1y^w.q>Q Oծֳ|m&) ARKv[_ ~3?,j뷬vK}=0BML+yko~^^F+#3*X_}^Ȟ"Φ-Q]ΣoFɛc|YA}&54&)e57@<_x}|8,b=Vsul6o[о)Dpi7ytI ۢ_#1Dn1>z^퐻ڸOw+<38A5uiO1{,[0ZOgEarhwޯc4ƀ_$ _qoR[ ޝ WOC{B DPnr^/yvAñb}4grڶ W$6"]}=Әɪ7W.)u|u gKs[o t\4$g͎G hY웽CL\K[{ї@R clo`Mțb{-]%6;gwyt3^ѿ5vس}Ajwv:st%'|s4N0ܮyܼk%1*06f$'hg3H7QK뫵NJ_+&Mu^fԸl-;3OrA} 'jN(4U2>oixMjHF ;7%WK:Z}vo?4s%(b^ +ywiV{Q~;VMlC{Jvo;  NK}2đWz[ WOn~>=|E+Wh27pQ ߣ#x{遟bhuLL8x0?GJ|1'_l5|U߃;1-.ݕ-..JD<5=v +&Vy,-czFBicDe?a"#+qG*n?8|#oTi%{"XJ93:C~⇆z[>~fWz>׳}iJ95?{Q Hs]_vB + Hm2j~֏!k+I +۝4׮dvQ8D5M +J#ukM W4 +-쵽ri۩%uj6[LV=n_vy!o-#\>e.[Vd]w;;ߓE2usA}jٻ6 +sdT J|˺O_1^xѣBmcuXP"{s5' ogƪ?R; e)="9}uA Ь1};6uX_lƾW!NZVKi9@cUT:Eq`>[&rMF;S(5ۣ9q2*30ZS㡵‘]L>XHicc=Ӈ 4A!Cb7w͗F@TiHc..w[ۧ ue7Ev"'k59WӖ.nZ{R  LT vRyY& .'%I#gr +B=ln.=[;Q ɦtN o<9`a`VN5`}}Nh{~Vr2vS1LHԢovɞ[~?mҠx%ju%)BTB%" ĕ ZFt}n{vQsYd`Z;j`?@&U`DvǓQJ'l{]Bj{eW_,-Nѧe6P-Ô~uS{ /o`SMv{EFi uqM (APwYn:ۻeyDAV\Xot5l )c>ߔ =w:<:V2BC4/sw"O@6EVuӡcjm&vbfs9vpeO/JsbjMw:5{]25O}1-ϠX /5-:=dw99zښ`jGީBh>Sl9i[]p lS} bUvZ]DGZ8̳.Dți[k^͖SheVkQaRgo p.zwPج|7 |ױG)ywnNERaHoκMIC[|yl=::4vKj>p;&.3D+{*U`=Vpz0mF Xy9ys(zxi|l; :j\{ )yڡyN4&U9WJY<\؊cjskZ8= ,OPs.ZM}# i^%EݏM-VrM o.R-xˢ@߱U!sU9y٭8eXhۄ/rAlyI gnnea!)TݥNZ 򎝮Y̿ncߩ=ovpDo3XYM,f^`ƙt wgf+|hhI"kT?ݼ|""ھrU_4''m;I  `6QC(CNjp"kClEƳK|J+F~-7i'^+la "LD5 ;Խ.U?}UjkuLYVUΰ +6Bg{s;"@qkU!2T) DP +eNF㓣QQ;D% +&eJVjtA̅},̸6U;Xܳ| sy[^{߱#8Wj>x|LcзT߈㯎b V?Ũ]Qr?8sbV6ԓ;?U#2iT֒t::$>uPaIxK>Mf iOhƠ"YOhƠߜ/L濎ؗ 7:_g ͉xƠߜ/217'$g17'3}_~_i~s?/?Ǿ̻gJ^2,P$5"U_'E [B1*+X<@TGe-z]3kq\VJIqSG/4.݌˓ +cF@wKCV̊.֯FT) ?Do+|^7P9kV|44N'E+ynFi5{vLac |[bw7}QY^A}@՟We6.)Az9j(é`_ +D&#QRD & z!/\ 2kf&˱;3Be=QRvYM,ZLo݇B&=fUp +vQstl|p䭜S!Q:SBPYh=ai:nl ':-exk⾋ş >=vq"hD{v`q( {wA} {`I_*U}>+{gy7\G5U*6G.M6ܛ S09n\50׍ƠxAPA|Lm:fYڒ>/y.2BQ{V_Bbg8+o8^T^@WM4@V.㗱ԍVՃM)qPF:¹X|9GVC:sk OcFM$+`O,IV剰c{DYCqDT+pۄ%ZzVIy@GGҸ֭w9ww7'W6gu +N{yaycӈʡw +w:^ђމkb~KfjwkH=_?mpá{aM%Q{1`Wbʢt }ַ{4y$/]ѻ3r:}r2)ϖ#`ZOZQJAl +Zkt.J;KF44_RȃV*M9/ ۬-_xxn2W":bQR0L&Gi,@/R $xQAZ`ih%Cego/!LLTa )mLCF3:T:=s7f>%N\25 V*3gфQi7Yki(T~%Ġn*lA<+M8XϡL#(a Gw `;<LkC1Fg-m +UηÍ8[6.RU,8?4-Fǎ( m+%) +Fm˛+Z+lTY;Ɲsm]_I{ DU2sV2*&zbJʦ  !t-hvc0sx-)|!1;h7[Ou*ax|?c&1뭒kf7)E7VdBzb" {R%94Xy35 ΧRQ"Ae^!rA 9-LVz`QfHzƀ8e +huZ7lo!}wwaTzQd\4T"ny6NݜqOjdUVj`DU0:2;Uv@R( /KAh'4cO~B3'4'b_&MoIf ͉ЌA9_3}_~_?4hMA9D9~Du>*7@|3wް19KT OCӬ\A֪62 ԭkogޖđwXÓ{Fx4Qɻa n C%^'Z\<,TRV=4/jc~s֖+E]PX?F ?EYϗ DW;ap| j@uUX/,bN€xgaJ ݏqđlܓ!`sǷ @2QV%QZ\6u`† +ӥaI2{JC_%1gqkiQcܤu)},%>Dr]܀lj +H6,́VߜQT+~"t.MP\ނpoƱVs6d'Fp'D\TjfHO jWNT H3rЈpT/ 0>^pWuox6Lz64j+?>u:<Ckybl'zh"oʸov&/&t:riKib___ +٨\BQ{^:VBḸ0kO'@Jox{w;v"L~1[6oSot16?FӡvVV*K%Ko!c­kdy@kp1tV2s ?Iet~Ե㾷Y?s;tc(3Mƺ*Rٹ ѹa~ZIqd5;۝lB G'D qNGH]qzW^ɖWlVn+|"ЩyLWX٧ݮRݗb4qo [?cq7k| jpnG/37;fy8y0D)\9聥NK⧌Dr5c#M{L)0H!im_~QYEh>TTǢ*aK|7f;\\TEjJJFSqbrcaO hL_,k(tR$MͪH@ VwD Ky,UpŔĵzV2Yb&gl\_D@$P`Hk>&2n@GYH@}_s=*U :+oZŽ|6A%IEBC1w%fbL`hC-aQoN??4UU.}$F>I1av2*P,-\K4w"m 6Uu{YME0lƭM f>m,[ަ @d`h uɢ(**M{q4I UU1616HW}SzutSg0B i/>QQ9* ͂m1RG@uK'j6O70mZ'6M.7d]J?k>9`?2A%kBF4:v(!ѱD)y@M}RqMtXߕV-,9`d~QEz^R%d@'=3N9"::7qZ zVLX-{g& $">W>[j~ABz^r?3Edٔ(`Dg=KiK6iOCΙC֝u0&,;ZlW$[3&5rAdO"Keb_%䁳%RO)ҋv$?Oaj,9iiQ&dG0O4X'g1}<׹~pDV He,.#>Љśؤ:1h9&4=nX`ˎŜ19gJ8_2a`<3fS"g'q\Y;} d]G˳ZMH;|\+9_;5ϊ~YOhƠ;5W~M?4coN&Cd&Cz0T˺n/g^̷ +|IHVk,oy| kCTJ%vf5DSt*M]l틊 lTHܴKsdIJj1Y$ރQ#irT&:rI_kPne95m=O P+IN\U7 JBA/ޱm)p6y_{tu`V=DFP;~[M`ڶ81x9KOpڨI +Z'qKi8ʁl)p,XE=.kz24$nmtC{M/K3cNgk[cD]>IWMPTS["{5u댒=:E_=?PܔcgҟZM^D*|A 놡auThq38nYG/鍻e:g##},h +zKEP/(-୚[fv;./M3{|oIӐtN?m]Di(X}9LH5?K W!~JetA=͝tܭlr&h>mhNY9R8@`PICr-Ġn QyP3gXk}T"Np>ߋ~fufڊx^5<-}LNpY,"O6:{"sؿndq D{"#UP~l%_jpf+'lR9 S!Hʎ:u{rce/i'FN4¿5=hhTx2LJWtтş[EԚ(O/۱{f"KSzܤ 8H Xװ6HX{1ہ^:'Zy^|D"d(؊0)o[n^nľIz-Un8 + +FNrM㻤(nn UN"3۰S# 15h{$U,8Y-$QN1>L;nT=I_CMޞ9b2$Վ3{{|"%'hMyV`,D(iu@wdǪ2OlS.am UcĠn5:D<U@ pX([,űv[Vy_ jWoCL\{:؎oPiр <`p A+. ͏7TӨZ IFm&,1FʝzӵUL.c<\\ +;LjyDVXs ՗&nj$-2LVS0i #uMNnb2ƯmKA_fa:8u;'%QP7uXBMY-Zg(<=ri 6а{cMF@0#[o msq{Z{FYR +$igV/j~ 1⛺-ݠH݉SGr8nսɈn~9znփOjj;?-D1EVAk6" +R=Ws\C~H"YCR2 IIsYP)wCSZ/!},~F1E? ?+ ?"3ЌA9oN;517'Sh)5)z3-e 'hu364ϻ݇f &tʰiEjZoQ7` +o_LJ;+*cRQ{Kc;OBz8ղ 2y? hOV.kЌh6]]zq?4'KOC%WAgI#.A].Vd٠7 u*qx<{G3]\ƖVB1MRԚ\ͷMQby\GaWG\[ᗯ'q8h?^:'HUu!VSʟ4V[uWx={;+)¾uIW(8^: + +4 nRoױyR- a@=fj]S>*WjE2w܀d +y ނmJ]ƈrYa JB7q;){kvsƢf/>iIOSкyi͑w?Ljౖ9.1[_4 D{#՚JTI۫ȕ=W*ac\&/k*+,S+U!(.MzTwG6ůC+!1}ϷAL!Y_j4w; pgInY-^[0+Ao=&T6\g>r!41c%D%]>({Uf;/VtݪPX_y\]O #4Dv@ GE_l=?QVzURZ,a04uFh8>bEj .uK\P+$ԲS٠͓}j֓'ف{;|}8l!|;)[c1}c}< [7| !lT$a6Pzw*@~  DtSzO_ĉDju J!U +zǡq&i>K{ڊΘ% &w^!0|.gXE|HGfL/MU6-뵖<*/hu.TlfޚR)1'jh>BuH4"vm -gدOV+q Vӂ_.ŬK`jۊӓSNb%?(:̈#+P1_!s ۨvFg_7|Qy=![kWQ gš6 v}> }zP1hm(}+Qúf4@hs=5j8BYpP 6k oɔvI{ ݲmeU:Xwwap0 %k=^6"ϽM~y?Š!%mў +k0⿎?5 ^ϷFS@ݟ [z[M.gnFcOPuҩwXx7PH5KWhkL"L>׋Lͣ'"-TbзZ\{J`'JZ2o WЂt: +#ZUeqR 6HnjʹJ7ˎי-R[;f>I. A\o`-FUa׿LAKnd]f p3bL;KPr;gYd59a7K{ޢ:m/W\vg2f.﯋3B_ͫXN{jip}Ou(Ze'o6* $oxqSkKeV[rSכk",5;9ŷ࢞PALу-lY]\6?R1`DCUrgm.1/1oi>/"5?x2Y/' _GTq+*Q1}ϵ.yT*vm[B~B<ӺE~tgN-n#Vc"L8/]u;?MMF=5σ%~B?+ ٗ~B3'4#$5ߎدNf ͉}Ct^W> %pAA:ѝڙ<5/]\2[v)NPF% 7Evl +G*3L[V\Η4*n0'>nIy5lꥷaυQN"d*qs~y*k=bЌ15]5{b_?FTd[-(G}h"Br Kٮ mﴷjkv*uW2c|#9F_WP!iJD,bQn ">}?'OG|D/rЈ(l8|qcQ=q y$=1iFcf MZÑ۶~HeK#*@@MA-r%Xadn[xJ}r ;m[N/ϦZK('pjݳ.}T&dq:"q'P} kK}|r^ MTMX~/rztfC㗊ꏪ5y5V&Qu\"KT|{װ3r'KJ4-lT6Me otu, iSQ/*}\]/KxMg"WƐRP-p oZح8dd'^̓bڻ1+V'oN4+ iʸ33}fCf_[0][P׫!.s!6ҸG%ض1D-Qu}Z}sڹRSp;5=$CAɭ$r $[fPZO8؈i TTXdXvCrUH.33O/VPzLj7;apX|QI\a]AΏz"saUXZ^ТMKojQRDN 4'Xs>9R9M5=Q担03'k Ġ֣ҕ3X L3lhIMr~܃23O52_0.UǬX ?L*6=-4/&$ '%[xKY*ze v]p )r>psF(`P\uE\]̏AS'l>Aklݞqȍ\Pd/hhE.Ԟ>w`l(!-:,& +?OKa6LIs8Ub5QL4jF&tE X`r%m閴_H[IA'n.:Wl?6v*ODy%Gɶ9smwul?O/3}hz?8 +[^>MK +=7[|YT9XNk=v_͸٦#[NvNw6;'{Aĵ;n4- |jk4_ZOaGr;R18h͵eRB3[ӊw&uGekm2wl8ˁWqq ɶ/D >Dڜ_8^Z(Cisp n=px]SmV4hB4+q+!7aAI}xӶaoUcP/wNznu(/APw>QZ0վ[wsmJ(~zumRr yyzj{9v nR[TdtgJ(/@1[!*ԅ|Th7Q!D WXx%Xq(-/Tź7A[<ܥEOc?KSq2R6UwvlzZvbchK_ vr>Mpw?+ ӢЌA?- Mߛ0"M3*@mo@T͇euB^+RV~ycw:,#be7Ee![v$[إqxyp!lgɑYDRxQa,E$%~X</ѹDq^c숹S[-9 /E&g4mXpzZVO8[~5*,ŨomQi"9uw;L%{?-mno6-(xXIAa,rKEX?^gp fyȩ\q[ZUJS( +9tJ/ҵ&FvXN7­̘f3<ҷ!t^sT P`C! tͱ X?o$!wn/ _|@DO*%rV[ "*iRglRAtzˑz485 E GCT?EpD v^WSTw=JK%l];:qeWjz3qa^HDף>k%,ՌEimHxaU_pEK4G{2?FHIT<ɨjXn*^WkA"9:ƄW'lm4U39)ݏ}QJ6#7+Y!쁨^/(Ob]{AGcx}ВCOe 4 ڭdxa4d5onfdG8*uY?|YQ$|о/eS\q T@E@Rg:jN|"s\FXYO^1Hdr'uTJvbWbI_  +hX,rz Ps¾-pH x?FX^[\qS13@+pǢXs` ǿ@-mP/@VxڝU[?QK +߸Dsv^:Ť'ud&WKش椊%0G#qXS5˰O,A& ˼Jb.Q{3)9xͦc;w7[T(XyP*n;5^^vWdeJԛ{iw&_F)`( + 6 +ԼvjqE]w:L &m|ݝnWEuQ?tY)NßUop?QGM9'^2%r3V5Pc& Ra{*<2˯zVaU:Hmqt\͵:=U͌7^>[S-, ĻE- ӄR{._$Vv5zAQԋ[i_ZSoQQ;^kq~TvwrT!+TīUnɞQ($Nb/Zڵ? B +ykzޭDYJ7C祍nH(Ze+oo|`OU߯vH`eT^y4ljwOt{Fѩ!{+֟xx9qT1ELxuPhөn{"zR%0o lRKny1}9uttcXB9sڮenNs}IJ]J+W@ا'3 +O W#r6k=kD٭ ʆصzşp”шwn-bZe3\*\&@!PJ6*3Փ_OA^0kDwch<w>im!HρT춦<:07n=&EG\ ?8<}rcfcUZ0k`fI)`0'@.R=8TBuQER)Q`sb2RgT'|ji Z{k6"OL V+'`AiQSKS (3=fΆlͬF|BYeVkxoZ7:㼁/ZSy'iμӼƴ5t]CTE_v7{q/-ȿDPk]uŘ"WYwvOЮ!Ѹ`R/t۾WjOXvup$,Z"?mEZiVki=!8m}a&M[ߕrYRݓ2Iϒ|&0˳3)^$sȰo`ٟI(z$_m&l)yqV|C"ye[ש$:e˟b^og;QtnQ5NdCp.H3sN-w;_*C?[xtocOڟeso[=>ĸ*9̵^]ߊ@3E`?&OE >4lWNG2 *7G jg[yIؙ Eah-[ڏ9͇}?3UԶ^f189}j\~>Oo@OOU/q$rO%jiu_wv5W%$W2h(c؏= fxN62YqrmC̽G!./r8ڠ`p-z@Q;Sp2=eЖbSsBG iA>cqX?Y9,d=]3n3nneCz8jTyroݡ&-VadR.ڽL/HtDžqGJ "A(7th*V= +2X]i_Z{vj:1tsc&7uYd@~}a]Aj߳mDt fž}ge=4&)ujvSy3YNV{<:4BAͲMY7XrƤ$=1i7u^yƅ].zn`\g;2,?AnK]Xۃ=iGl{i?"%Ar:/آ/&hEO淽4>+aD?L={uAWһ{YNN$b'/!gW$iuikP4-LwPV cm15?tc '4*}j[DL^Nљ/[>sϽ +a+mE%e:bfl}<V7mYQ1PRCm4ia.<we꯯BqhIUvv\!c |Z'0-uxV1*Ӻ87 +jT84Ԧf/,j-2ٟۭEK$؆_! w^>^6X^:$ogjwqFs7 +p`ZŪ>*m,-:\yny~1"]@?, + Xmb(\" I^^ZgrږyxlN?"mf98fQ,7sсm2 +Qr[rYЙMOH z𷨜g@6 @塀RFGi[jg0!fJ-F-xY}oU\%=g)lZ}j`'rنпXj6߀80C{i]!)s3WCV4}8:s1"Z95R2ژF-kfּ[כ4"}Z^iTѧbȘtXO" C~a5ETSּq>lZ^ Z ++e+u#%[$%) z(sg*eEgt*3ԼqEݻ ML1E(F,4|Ti%?1]xul^8EsDY]W-QZ?Z? bEPbL Zz|0n[ՋCmn.FK˛@tL*4-f뮤J:.Aez/V/(M+ \j`FP:rhxk% +:w:}ަii58s{W1.MgǦ%UqR"cVc˙FQ.=&9kVyH .()Op\րz]N#l.ZDkYH +@Kkq*Nye>Xlcv3fWTd*6;فe^ba\ZnEv );e"hR>쟎݉Yҹ ř"6E.ކ? Gnc'3fHxIh+?'xܳ cj$.jI5WW{`Kch%uyӊZvsن?xQI"v9qKj݄պtjW:'R,-JL^$v #ߙR7:E|9 S>ڿwA9Ul7*%0e҅)UFd;Ny ΐgC,۞zX=~(ɐazj듓GwU3 _a^g{;h7v6}n\Ȋ|+dF {J) +QZ6HNI (6L[M;;M6{ ̵F37fK/Ợ@!^kʩ(`o#l-_=rCG)O +/CZJN |iun^+T ٛ\sBu?Ma5Di)XX4*'dˇRnzJtNJHFJo3ɍI,s?0 p{є.&՘^/\pKC,V̬6SsmQ>gl=N*ߙcNO@>(D^W$Ř^D+{MHӍB3 2;I)Ҏќr_KoUG wO_=>nMP4s.ʎϝh(h7>-}x4cݡhφTY귥S/sN^U _X`!kX98U9ιh*2$Jf6^1ܢ,^t7zi,gm.Tt_r븡]VwZz=R1D]aWxٜ `ϨBQhz!LuDȇ`ԛ~[F3ƻ= uaRO't͈z zZ7Tã_1oX\92_*/}"/$z +`mTz5E#%'D2 ۊ_yl+bѽy{%7B'8Cy|퇕l0 +ˀXo=Ckz>OPx/MOE ?0AR04Ux 52ԼD99<42sURqbǯB^GӜEEEeS ]j +:#xcu2&?wMIwB0 `B0DQ@,&-"x6A&߮DTtWm谢lea{4?qEVM=e•p@MLI U@rHL`D J e^ְ,!=ǓfpqwlvL:u#@lH ,:>O[`e( +jO@ ‡n8AQ˴a\ zL6dXg`96O|\[c.?e@g UKRCyyJ3rS)maj @6(c, 1 ]~}5M@O_򰬆-o<7õMyL[x +Ĩq8z26fcRt +Paa7c_M=[l\Ruci7mV]9Npog}x`7pπ=E]tW .%Km&k=7*H\]D_^7P2lA,CC9L|wA5%?wsO{^^_8 l aζo;:'x JdQHՎAT;V;VN'ؑ yr=DHDrݎiɋiw[[.Le7L<"\ݺW:rk jUx_K0u @Rr乍 +Xz^szSF6ӣ93-^30ui~5jG"0wCYB..Ȕv̼Y9noE=(#xjϩg m&a{ڽ p%72l}a{|+n i%egn<'1Eٖؖ| 9?lCoIN]佷 <E@/7q˓iFu\hϏ\}(mپ6s;w(fNJgJQ**TF\Zl_-ui P5'FajUu8R(]hЙk,;Awߍ\2ҔccA񺑲8Č@D`Y*CL=x~yg@.-yVuP&[w;^4wW>imeygzU[*7-'ёԛ٣0ncd7uww0I `* Ʀ$T/$z +FaEXM\~mACmw&OsWGP ƪ;{5eF/1WPzR?|: $?_ً>K%Y +2,\^qP@7_#=CW^EXEK,Eg6 E:}Z/+XM󕈑0ʉb'bS3s۟H'[Q~X_pn{$@j\k:| 'm%:jGN.y1ϸ_H z{yB+2G][8;ԷI }H3",fga'i\"_KQ8Ή /)W藵4<^,ϺjOU=ϫlENPB?޵ {K͔ IJ̓zIp<ޒ!/yr!%J.a˓Ӡ,)O- 7v4 )8ci Vx")PKmcey'זߔrh/J 4tbr =d,vݚVdFtֻ[m2nFb+Օ"sg*?nU~^W߁Auu^(x+ʆ\k&>؃r/w챹S3Ozͬ4y05?6n+[1"FiS(˭&X$Т^ag4R_* H{qE=I6Z;v8~ԝe*Хcc\hQaޮ;7a@u'yΠt|C/^`rqb.7^lL?DZ;&7Wl L>*]~E]6|^X# H .gavo-ZCOQIRBI)%d5ܳ2{ ^x۶ mcN а~[jY)w ֜Zݪ6Q_ϙIŐ*j`7Tos^loq}Cq{x  b#^tn-kp7I'cהR%ON˭˦රj۞Q1D;D,7ZUNZi(gD3n+4#3Ӝ;j2Xw|xϪ;r6Z 1{yyTC*O+=QoJh3BŽAO-_òt+bOW38WRTKF 雷E6RW\-JZ[KܐJv4ŭ-uK!@s|>X)a~:k棟NB1ή@nI P;۾]?`BR*Ggq]Q<@3)ddOn&Yȁ,_σ,ݯl~ي݋1ԝNfe]O:jf.)zyCQՄ`SES'*աf^AVTomC/w~˚)((жMAQ-GK6L}(ɯ!_4#uFmV`: ͔\fC(j{acy0E}FȞt]}Ԏ=| ew|0{/ ņrlנf<-^h^L>U>6mԇm M# j9ƦvH> ?Æ~:a;BmnޜMz V r0 +𑝄v`m .*pTaMua<9&&XQ2ܪ^C{C}wgսsX{[L {20^< 9e-0Y35gh*pSU  (qGFML?tƯ.; +`o g3q7"o΀N.6ў{g4A7  # X8WU^k,Gc3QޢR +e6Om.+2|Z7t{AUޏ.FphH z kh:LP(*+@!j.:qcJ8QCm픊770G8&Kޮ0ɒG7rX];)ٞtCa[ޟxPt%~5"׀͞m( 1St0z&+`!݂w%\"M͞2ϟ:>;/ON ;^m_90Fg@5(Wa (=Ԍ0,ҵfLq3sMsy/;յo?YG-wQ_.skxdcgS Nm_sߢ0t.wyĭ<;GI; p +cKgCfa8j?[Xfq7'ػfvlwg[6S2_­:Ư9PaX5? +kD@N)ͅz -8&4|Jߢ;=ieGD.;陻XW +|TOn1devKn}4S=CPwFlp?lw8-_{5vrYzBQssldHfw"G$Q_ ( q ez9H7f7|d{x>"gmy4-AkZ%z%\ʳ`jL]i}*|<.!/Gug?IU + ?BYˌTm?-?;')5R;m5tsTH8SZP[t͖ry~efaxS˱~*ƭ:N~η 1nu[ds+5<Zk;u}"TVE)g.2vǫ~8ڴ7du p 9!yx:PT{(0~;z{ջʛHWOg%[| 7j^Xf.Zž"yL6$|c&ҎCm".ܐYQjN$'LOx|g˂gdAI9%?{jcx|Ĝz|nem g2ZuR.1Dk~%&zNGUʵxvp&R, YvRAcG`el?v) LjSRw݇D8=|zeT-R|S3#ሏr T6pal9JԮz.XqhO{us}]~ ݪ;+ OW2T.N?fƧ+2[#ʺy{C9Z ^la:ohW9}EG5,,V}ҋ^)?&Z9?IN`rRx;ө>|:J@78کM}]KJVi3F/VJpsl?kxRg7h: ;)G޲MsC#x4?mi59r{_3meJ&3?F+m%jjۊSjqswk?vΡDx׃Mhߏ <̳j2{ugf^`oLB_D+:|Eϊ7m,֡K] 3-n_: ok.,QDut0ݰF=;?;zcƭZVZ}JTk%0^? rF*ܛ}&ڵݡveWD0V4k.b0QN%iJ K;ѵBܛvJZ`[t_4;%ongR3MY͌&=~>1QuO ܱM;?Ovo6l[&Rq'͆,&T[楇~99N,ՙQ_]%]62^e>XLҰ˃urx[N!o6~[2@&iV2śǴk>/"}gt69%6k5+Wɋd$nK {&jVn6[OQ[Ͱ[J|T*ese|1i,/|WGobuN״taeI{֜?0&a}wZ<}@ Z{<[bюtkFXNfT *UN;⥔}a~)GTRX|QKEEiԤkm#ċwΤ`Y<,>Y1O`FѩRmf! ɲ9brѨzeYGuFwwZ(j;;˽%_yΟq%T\#&@B)h{d4PT[Ny y6+t `"Aі\;`2S-F3 m/>@kVr-z[Pu}'t%ov/ӳ׉fbA-{x;Nϓd z[r|fZ^t{O`\P!@ήж {.оC(R5UJc}_n|f6nSPF]-bI +G %]trеU(-v@L#:|kY//Me_C1,0hj%uctgpC+{˖ŷE;9({=l)4~ ;f U1aۯ RSVՃc{ww#yiϬiDҚ_wq#'s:Y.Nor˼1ux'ЗdwSpſ}=c 3bz +'%9kWNN 4m/E̦铻4ktN~S6F > Rk-qPO~ RɲLەnMw00ȣ07..0=9YoT+qؓhг6th@oL{ Z;wy@dEyx(xjǤo\WN5,3;O}5I>m=f}ۢÃ-5]/Fz9>Tl߃/@Rgqu<)n<'s'<0~<8#w#KXA©Gjs~ڏMΞ3]u{YRg0׶7Sht$%FaՊ>˾KڼrsSH .>j3@r~?N4_GOq :ԋo >wnQl>)2WM +-3+&ǽ{n1ZRbX]eUfixe5΋׃/L.-IJLadz#kwr{czPTL@d43hPZ&1 `6>{lK|Uuڠr?Mέϳ=-@nf ˜-|_6W{⩲yx[:|b45{bMK#Wm\+VSCe.\nHj޽0,,͜L^_H ة%lCw2+DOUߜcW >0.<-g9fPϿmgF$b 8vK',YEOYbtev&M͊8r^|-7_﹥mAQD$IP D QDr==?W1zt7U, +dҷ~.L(40,U,Ú4=yem݊gw;jӉN엠'k{K96*ΰQ1}cf5bOvBX? tІ(wpp+m ?Mr-b~F zX!@Fz5c븤7H>mi-݇wvT3$C Su+p]+\X~4puCꨳJ_+nvG=_,&G g0߯cT{J_;aZ-L$yprFm yp| #+4\oA_8Nj?3L$|=S5}Yuywg.7b~ oɮX Gع둗zi,=tAW8)쉔 +hȊP6K~0\wSLq佥|x ̠`~ >f |9#*`Ūc-Ⱦ]~13Iϙ +x:ݷ"DR:~^,G5̀~zy/4 7黠0_TǏOi8rfJvVߡ ф{Nm8KBl=@K;S.>w)v3Jz8'UƝc!L _]@1ζu}'>`1+"Zz5ՙ\Cek;ܔ.ljԆ ֯cOnoL/*pѰ0j1~_< ucaSߎ W磊RukѰ-nVPi/Vp7Kʵ%A|[2Ą#Uu"4ŮggTCٱͷ^iQL &V +Z{BW)o [w}UcX}[eOKra٪39v;8aDqֽyc Cg"W>V[-a0[:(|P$5FWV +fut;kQP< #Fmcv[=SV^j*` -N4.ʠ{'**Q3۶|^Z)U*Tn*ΚyF^K_TO.\=43%~r19e+"s>"mf2;+ٻ{y_$VkY/u>?۬T+gtq9K'/_*ic6_:-Nb:u3(D;(yw_am3[LJ,Ŏ +$Il m&M׫'_kKJ6R%ab赧:^L Yx/vQrs}~ne])@\cNāYd!'ڜ<'TǩM/yrN]w:8H@ 9vрBM`\,h kuߡ g(s_AQ~NGa2BYF +37)R\ӧBz]2AjW$ 04Lo vgUSOeh,^%ip?xݍ"zSR9FTxr(M pYhqi dz4}^({Vn7ǂtzIۗ4 ]ƜԡF^ ؖ?OW얓>aWs-7Jg16@y Y-KUS=#lae|mh|PzzdWdz<Y#l ~J vv*UhM9Qg[ezJ+-PX˗'ci f1h`^1+m39YQ9̂\8~YIRwzdԣY ug/_z\YӨXM;;lKo"]k9yx e*:Vr^SOq ٨{q;EȀLyʞϟj4oNoX5!Xn +_@[vEA5t5R0oFu++u\+ЦY&ʷLw֥[DM9GH{jlCŎp[0ٿWY4>~n7СszursЊܺb>'yoޓ +%9ףxy!g% 06pr*C8e~;3C˞bXoy{hccv*j8&EVyt݂B{'=UŠR/naZe^Y1\u1NM9(ӧ} a9-">'veV8={ngݶ3=irrŧe40#z .Wi͆OzH}Zf3>4vLk%a&nbODWAf.[p̥׷Z~< +WKòT1 qKߒpC,=]ܯ> +s&vնJz9``nO)D&\{ovX_}2EC=zyc|ˡѺ=mf@=68+۲uztSk9avNt$tyJt=cHjLҴ76hG|rj +@,# d.9YC,HnxPkrt>uvEG֦0ѼOwi.yͪ9{Xn;JğWG{!]6N,6뾬^^-#k&? +@D Pzp$2{EZZe +٠U +HmF-ex!?cczo 1O]GihG̱ZWST'EW@Sw׷*_Q6Ȑ.:3;lcy\tsLQız> [X7RszүAY`y+`O0P[3nnIKGC+Qu>Sx] Uے/V%0j7WkOo_F֠Lz-H\W<1N4],v'2گLO:EKGٴ3O#Q>{0 n;S~_2hE-i6#|FջVPYjgKh}iünQg̭;q?ӯz9i)6^BݮvwLN_2 +(Rgw3=?yɻ5ҞO=3MÁ뜌I%p([hV|H~~o ]TL;k +z];>5i\vmX^Ʒ #B~ȥǕ[PXLf5 )lU -*l^|p` +){ $N9RS8:q.drf:ز)6@.i2]|6qY>YyT+/Z ^pbPFmPEh>3hA,E/<,m ?hv_[_ۏuV P؃B'9ӟgƣ +p܇Z9(ӳWPkpZ_a9ЭPܦ_ +@b0܀'Y1PmB@2YwwX{%Yʪ٤۞3Յe~:0OŋVdO<Ƿ?sLԯ^CI{&C>(+􌫇uSp7!^ [{6ź:U\_}.l\&2YY#3Gu$zzhZ9\?N5Ml*Z=?vބB?d[ȑiyPȽW mI +n9}eGu| ˵V{gepT$?S}dk՝Fٖ.;>Y4341dxa!9ȹwIyA{=Zkrۖ%Զcz@(kےwy6l52To>S |55zaL*~hyap+m`d;l˻a)Лn#p99GɅI(8%jMy?u*Bqnv;ɞPRKcWK]2Kq%N>ѡ吾2[L{ޓPKñoV, >Q70 D Y5" hѠ4\NZxu +&<}H,]ʹlԖ\j-Eܛbg[vNa1]2a-}0N]^JI69eXts*G10/MY\VKOO0Wp4r_e%!!vTcvg7?M42/Sccqa =\dna2dz9cC&C24P>D_@B)NvxW_y:w4rRbNsnHiJ,;RO2' +54*=j>?XAsL yƔz O} (XBI<ǩ|s[6cfK_CB,bAɞSH5枽Zx6H˚ui*-6ԫkI;IeUR +ڋCeؠ:[e^;vM+'Y 7Wr2iԙgգDl# :zTZCwSˎ tR^;mK? UwLi0u6Gt0~P  -ׯ~xZBJ{!ɻ2?Izx=,J>ޥNuN~ѹ#QjrᒳyʒD:s[5FYVyr35xL͹9Zo~Pdǯk_x +zϣʠM~w` +X4%_ + rƛuzRBxrS'? I1~YsȰ>~WBv^k@ܑAu.aij 7c #y2 #IGx||٨Z'(7*K[)_8-'!?w-މ)˿*۞5oƻJt=5E;zzhCzrXVzs;dk宊JPӚ9QM0510raZ|KqA^^ ST{On\퐩N=s0΍!έ>*s3zo,Tcv7¨?{TղؚJO!Q9j I⤁uM§9͊e! +EDJkB;+38[$}wN۞n _[trW}wwjV5y-/*gyUG]葏pDj0e0zq hkEp^)3;.XfWMFvjOZo;ibؗ=vʛ T>stream +wF$ jh y??wq),M%ee=D]D %/Nm65]Z|M<,i:ݵڵFr*\N {\s ޵hZ0Fxak_&]}ḧ́x;cZ^Ff-yd36v֙8l]YPo"wjtZ<߳Vq:(H/ =ç,?柣[~{xN;%Fh]5SَY\HwO/SWW`"j2(.7ksslݵ:gIHFaB!C?T a5ۜOc¦Ug戒 qJjqlGRP (!u)1w$Kj)ۍ,[Wo D3Sdei3!v4Q&@6@[}@'u>@} Pf) A}1@֎ܧ >@Jm{=ь @*LoXKؿ?#40PS,mxt:K|,D0GA YN >lXp1G#桲=ğ2ij0` Ƒ]Y2c``2|}0%.iFhG4k_#( G \ ޅȪBϣVϽZ|? IS"ǡyt87(Ԧ;PSvf"/|0`a[}Fp~6#G%XqzyQku3avC}\Sey@9.G}vg'$t5n$JŊlGˉf5z|¹ƾ;v'Q^c>UtlV9Ljjɤݼl—?y6~~?̊~Z)IGK遌X@u ?GΜULZc߇Cn=oXߔEۿʚb7.rr-˩ s?ltҳb5,O!:W4vfY{cM7a*?{Ų>6b?7m ۋ`{--* +{/W^m||hCOf|>\͵S?jG*/SVȷE]Bn wע h} T_߻ vy|W/a;ȱ/`Ē%blic*.8ڔ4-Zxk8A?g<`8SbG3p$h l;^<NjRcH]sܭ'H)D7BfvZ.KQi8$fz&ؚǙI3~_ǜn Wu bnp:h_@+]' J6ӫc'UiqUVƇvQ7s I9ItD g< +m" Z p5ovAV63čRAn57c!K`I\Gv Yƶr*'>:Q#fK=B)So-IN/"TqEy--Vфx94vC;ZY mUWozՈ[ 7:_%^t.+jqqF=zhN ?\U6'gbY{\WvJ;ݞN5:u mGJGG-ƄY v't늺rW+0]tˉ +%xURX'EGl=+դvclҡ^~OvT (àrhBRy6!h+V!.gx|q7S#i䶁`~4yNs}qQqd봙ޙfG6s8h7`o {GVMLV:IVr zqcDum+ +Rp/{9{'5Wgy]GIWw u=v:=ژe[|4UԁO^޸M^cx@H7v})^uV"(#dXB,1r4xj ZUv ^*:\̢rR-3op=q5s^F4 +O2w՝j>CWwۓ34F.(j8ouaFd(( C/5e{)_~*ʁmY(.TnrLhNOì +[Ժuc<,vjq":C$rAu@e֖&Av94!V"i 4:n`*qzmJl/N(Try"ȕo@ +mx3Gh :{^g W =jy¥Pzq=?-+C84Hzel?0S(l^J &!wU"S8XsQ8@^c A Zy ,&x.?| :p_96s\톝~t関('@ EQQ@DDq}}=}WP]]M N*J `U5S65LKK :SN 3I mg߉M-cyӸ&S'搼1¸*˭7}q <[MVbuc:zcx͑*s?|v?]yYemY4OwaB3U>J! +=,a%y68n,,ޟVѺou7LJv:{@V}V^O{aKr +uEs܀}ب~'nb/XbcdEP&;z6B>n~E$|Xt CJq⟪l:,W`U]m\PRѳkCݐ,PC>ź~PIO*W$x7Z@S6r, )ŌߏmᨵL{OA9T+yۇ6~,muͣfEV8v;r7qZ4olZPjUX?{~]}}y*-oKġ u2wEs3Qlp~朗YW,fQIEwTI2Ptr0 sju"]e씹hy=hh|FL8&]'vg8[:G};Nw)SKmJ%Y0^>I'\u@Qh5pzJz@_;nŻIlœB Y@u"`=uh\as(>1TZ;RfwzS@)ǟIVVyAnNRRK)}욳,3d½x`zkq˦`tY;Ckit 4ϘiqK[u +j<.%^o |*"u&R^N, +6pv;hZ^F 0燸 I9L. XGf~~=ꇫn|5 )QW^w]%R"J9FOJkhuc ٧]^=)@aZ獉b%">8๑L\-ڙ]~ ,nC%J/rkcA1uV^b&4:\ʆI.wi㢪KsQ|Y_s/GijRw[.bkR? |;:Ňv_{R ;6Y=5]euq1[y.\Nrsyȇ}E +)^yE(3"-4bO2ǮyR9 ґn5ղ=`dܘ%v yǺ28ڼ4WwyJu}!K׫N (/Pfp5IZD,Pu ۴5J˻auLr9қP&PUH4p#]_M&W$ :csmk"t ;}Ιk :gtc&p4lUhNVɇhe4Є4Uɇ'UFfvg;|2Yl2x6-ʣFW:n3eBԃvbيsbtv;k  AE1X"?y?c[+>\w[v7nymz?q!juЎd7(˷޽Ŵ9Yem2;qN>gܔgrSV3!'Y-//6<[;f}Uͷ=^ +G)Dª,OC}דM[PBWwꝺbd4*wEwD\֡P$r9"1'Y:AC HVS'#7e 2*,DɩF!N_! ?kc놙”(u|J !:Os08x.ERt& MJGP/Ғ]y5?OrNsp'@ n>T&<JwWyq?gf!>>-=;Ujk>-FIywLıc~5}kn{q8OG'xcg +KUF/C2Zb]>; d]p+*lCʬFv^_ +1[%tm>6;!Exgqמ9E0/:BpYp4 M?CMǔOLړa{qޣm$M)dpӤ|! ҧjzŮz *kcRJp0 + :oԨm/.-TWY &U0/a*g ![4Oo\٦@Nvr^sy-O0[a|JyQ}{jaۇ$CsQi'=xή/~LYoA#P$1]]> `ǖCcyOJhjG-j(5cb&=nS%epg=s8\txZPn3nXU+>TCXvzk w9 KIȏd}ԟ:Cu5.(@gρ5֠a𴝍n: + ? cطrPa0೜A3fl&[D'rF7E}t\'-V:)v HޢA&_i9klH^ehSW~Iiѓp1qڻq')Y1 A<qx@!_Nɾ+lW1WO:ݮșwV(<y..𰽫S/B:{lg~IMi4.g +%ORPsQ01(kJDž"-{bTqQ +'G6Pjnl Jc[M9F3f_lz5P&Ilˏg{~;z B8z9uU[EX_]w5AE˟Kin)9VKsI;ͭ^cD#J4ט)pg +lXml|ICk)e|X ,{̤S.Ahf{*__|Wz[1 Aihg4fiҜ[iM/iiZfH+هS:qT2>f +yТx| +fb1@隠JNC7ӝ4'%,.)]-H\򝇝sk;14糙dzJ]yЂz{τ0ס7^ISMGT[>NybB)4w@QUi./:!Li7k ׳0S[zQ]s*EG)wjڼMfN-G0 +MWRQG^ &ugLzg%]_}pUBPO  .¹u奅H rvƫ|{51yA-G+#X.nRv=~&A)s-KeqKs)pu6.EeaZZ +Y4w2JAI5R9Mg=QvcTmܟR>XV+MC _bn|Pn>4nq:l\@vܧQRyr~@T_,F30-*k1;O" k&rGmCWwU^+~m^~ߟIY1o|>lEZHvisrGvۗO!S~>Z)F)w +=ⓟb#,B_uF/-+r>t "Np*,޻ٗˣׅ%o|)s3s8;璿H ! T,UˡX"Ɯ{e֋8s,F}ַ.k;n.h'T +"Szð(R\'W_.+g|f㜮#ص66\R; 0y<*jү/ff9ZGOjTX$k| (N%O˖Kw`y1'""Z,LҌܸv=9xRK9o% io;^؄ك>+E<ث$B|qM(Orz]働;3$\˱b76/v>Vk ־wح |잧LVyj2%(=xEB s,NJ9 Ukw3d40d.o._XO/d3Jh( X9˽;O:t34_/jK} +}e^Dau)l>&/Iw71?^Y6c b(=z)U7^soQfPܓ?uG햲~M͑=6FbXoOe܈Ơl#8}MW"B/Td|ǘ9%pu]n KZy STSM\fK_dm-g}>wN[EOvYw85>XǖK3fpu#\HXnt)L!2PRtk4 +>u)M!"+qK?uHP9'@zދh:ö #W5zCNt4q/[ɦof,~/֚9s@a>8 )v\Vl~ih<_fUyzn)k_ű[j4`!kj1 0H]>f\dkGi!@P}Nz#5^;RE@r W }oN]]7Vd0x<>jz-*J5؏\dl1‚rdy&V7dPhqø:?czөe f`zBfl7ݶ@RVG]OoNY`H)0ͨ`Ma'IMUmɹI}^Ƌmq2 /;755|2@9^REPv#No?[FX= 6=6{JQ_nѓ]~!kݺoTFMmP;P#SӟR}mŶ2sU qhx!7jFӁj퍁priyN::إ 9_[2nu/Ke^s*2Y| &zί:J$ǟJ/I,5>,vףY5Q ^`)De$ +/o]MQZ=}.Mو|hk2R\5k:4AZv%|̂Qn>'{qlPD* 1-?jxyou&5o37m]z J/eWhO;>#~ON&up]?,мڹ%op1h,x>"t~hL,ǥ%XM9p!%,5"73Y)~e`v>]l[빭buk:q#`(\Q5~^ R51k`H1Heضrj^Tn!Y}bMr|z`ͽIH:{-v^U]7D/j_ _>޳qQR5bv,A)˓0)˿ܸZ -ި~!6ogMf[}i^?AdaH um i{v}y-{zڪ;e: +Ve}ߕlV,b&7x;Of暃BSTk>sqMrUr꺊Y6S:8i-~@)"qD^Yn7+ɺ8.|JlABˉlÁgK@г~vبq.7h/l]^2 KEF0tq_6gHxˎw2S`pS'cwUϺO> }VfƦqɇle?ANWMFl'(1&%bI^Z/H]dRt,6Isy!1sif/j +<^ +2'>F%-ʄ|>V=I>a9Cng\'**cglw=İ!I>^ܧ^\ְ?lGyqNs Hsj"4Yjx\JwS` D)")@FibUL$N_tYQ `#`mѹ&w{>$ԱߤyY}@4?k+m:=u]wX7L\XtI ɳZg1QZP1}z|uSJ0/; ++v>xxv!@n$D6o}%z ƽǧ]Q;P}u#)7"Ug wAO\g88 Зwz O\i'3J'Ź/?0EY~9&{l$ O%])o!Wle +&~sB; M%fL;qk}Ǯ==_7F,UݽLΆ?]Edn:^'8yZ)ǿ,uգZ-/{V'[xם(R˝l^iv:wEU@';a󲙂}y'}Ip]tr;nSXH~k!fم7'(,_NQ倃;JLdtK-vAuֶz.2vЛöJM݂ _|wtì2ZV +A?Q'4֭,l:@O^֭,OMͲۄp݉Y=47u4p t :1۽ +4jklX oH/={ R֫[*^ z]LrC5#l!;YYVLM-׎sg̭'jǦ95ΆzjJeY(/)"1J'g8ķ]Lu?۩Tiқ]f \:ltvl\ FM}Uz ]AVS} +&h?ti2d @\9 (We.' Ľ +5 ,C_\Nl@^.n7oڎD*>2v:rVMkt#EFNik=-BgSvtXͩ,;Ce=78;ґ[ rFwu4+]s+IjV#?QvDr+ l"At +\E{B|ɝV5nIĶU3 'ј'qMe$/O6³TŽnYkX:ඦ%^ausy콗anW'2r!\9Y=|iAkչuajz'NT(riKB^t&;I;pbEX!7|Yxg#xV5)}VHlklw), Ƶ_&ؚFKڐx7U(Ar=)~HkL oNVMU&trݩ \rh,^/Yз+]s1u#`&K)ʟjY1`bB +(Nb>#zQzc$0\(ϡTeWvm(&KE"g +64!UtAG ۘ 9b8UOTG'\O9gݏWМ1LaF, mX g-FOe=1X ޡe6$Xz:?8BOYk.h8@ML~╰A]3qOҘS5lI(8LÇTBTP'>Q Gao߳=X94W,=,O_{pmk9~(|4(%d2o?vY 2Asgtݣ h/D={Zj4|)ر&a˖NqM)QZ*9a-I1}@;nO7͸5Xd/F<b0 +Q8=+:UjL.O+fvO; tJO#|gx]{@(;a3zo.YtH71ń!:Ghkx~Np;JhK)E^}2^޽^'lN^|iW+7R)g$ 7έ//dyZGdKlWR>ޖ?i>ꏢyBAw,Nkȹdy2ň4m鮊ڥsQ9>ڼa4(hy NM7&tZ β6yߠ(/K,o)ˆV_* ]^oaHBPj <Ûh=x8tؖ%;V ~so!fAFut'׮MЪWlX r5ӪxUNB"qu}wi~^e7Q{yYeFCp[ l Z0`2RqR i5 d,J:9sS-w5n;L\L%)*&gD^v 68ds{Tmf G.1!E8X9RZLzRdaSşH>i9M>.^L>⶝|8ԐE9)yOf4 g}m2vPjɤ3W_Ojt <N{HYp6r]w)0#)P'T>UI>Li]dÂlI^v~!I]hY^n8|qͬQsCuփDkvLWoQE +0 yKsɹp +$cT[KpsxxM7 ᳂ >?߼TE~h?{vљm܄q1*t:jEx\*̮,.$Pe`so/IsYzJWI76j7!%oFppX>AzWq=nBn\ +pC/4:e;y)x UYxd蛺y |'d=zcE(gzPcU`MVa mJ׋7v9ϝ ږ_%0J|\c '*Jه=) "4_4?>0B]^Ϊ@κbMZ'X%1Qyv^2=o$.?Ać;QR!Cp<ȍⒷ5bhݻ(oSy]_djY- J -m \KͼS +Miy_6 +3H8PP!ȃ}>*Sf +]̮X1UF1#[^BaNgd[,^K)L ;̂cļR,GQ Na=swr)uέW3~ 6szHgb\27-L3Rz`zu9}eNG]s6W6ZՖ=`NƊXA#EL{z8^wtϼK:*k +v(G/F~N9ĶWՊ%i\:P=<]dFF#v ъU9E;*+M5:3e5KG@XT/҂uyݧcoz9+ TLf $3px:1fHU6D/#2*'õv S҄ݔ[r Y3Z9q^/h=/W^fpxw'MUFuQ֖nBc4RټV>uS] yG .,zOswqb]0 /L̝0wrEvaox{֌amQ+R?QAprK[v4]asXQr{ŊP_e jZ6Z;(esm=8,V6b.|>/_ۣK;[b%=$D|hÓqv&δZc(2߹-wvpmܦ.P̙y>y%K(VU ?d9̢Q +oscu&T* 6NP7N5Bls+3%%Aێbm\m}*Œg2(WxVc+Qnvٲkgx؟4knNE Z;X+)PB /ͦ"%p.Sj) E> B}μJS Ijtq9љ٧/=&񾸿o;Utg$ےe/Mz'6ȉ~LQ|ϩY{j)]ZPԚ ds0ڔd'/jKhrW}jʘ; !4svНjF>/WN[d܏[CU%GKe_fǸ'kkz(7Z+ w[X zWYqڡloW>֒Yc!:g34N,g/h+X`QߜT1Y7lb +ju%WknMJߟWTKc2ndܾd S%T:p0*_<;[ґfJ/;^pGwZr]c7.!@X1W`ӎ[`^z`֨aʆZUI7ڲkhH܋%G+ &V_ltoq[{/ãC˪]̋aY϶eP:ߔ8BR|'g~YqfÄ၁lޫn*Dp"K8Dq޺ƒOrCXi#6Ɣަ"X]xjg/ƋWC1kn̉-UG.< Sby`иȳsޮ3#*ce1[ԓDu8GLb(-C +]CΟv0JJCwnJ5sՕkW&4臨<ZuxAu6xwCm-o^̐6>̄2y'x1ltnxm1/ hnSo vE%бlncnuIfk/N@ݓEf](Cvb#'BK)淊[4Dgrr3FwN6ul?fv^ޣ$vbhgmƑ`n1o̙S۪,]Q-o`ZriFV a.SaP)!VWQZ6;Kf'i}UJ)E[fZ󠷀5j˭Uf&{״faMjId2!&vimCD?ƣ[A&1ų F-+Fr>mƕ3%ziz?iŐҾ{oM~6ľ7mOXrm0ڀƵ-^zqaGm#g =F)rT+X94rZK{MiR)o ױW;ZM{v5.1ofužYvYzW"PΪ|9NrJE8/3a9b/0<71K][Ky4*CZ5 "}Yлr9o;%%?`qROrS GQ\KEtp+֠Z]'``CgikêGOHQ'lB&A~ +T#*\Ro@^65ݸS1עEpWU!P/[`9c(VXy_n~n #N0U0NȂdd͸I4? R~ SY3~@7:OWlz[?ov5:`i|fmB7cNg$@5@%@CP$HE.@I%#)`w|7jx[H&U,s5 t.d0 y]ɻYj$D$y|f쭿%~Ҿe '׺qiVHy`vE8.$W+B^WDJ˽`&CZ'3d!Y9k+Tg['uQ3O:ɗȿu)[,TkŇV];{cnm.w ?k|ǾOa[UAѽ>; '' }"z#[?Cv'# ɟ(mSHskՏ'Rwи- {<w*8X9aCX{ŦxJ.w\o by +F6Ei4D|F3j FϽw`C\97 |ڥy:y\ّ|w3t,h?lwl^!E.ZFA 3ٺ.G9{ֺBWD鵯kqr%[֕ۿa!ldmW ~C.̞ 3K $F ·YR+P%?+7 eumՍJ,^Z/踠F˧A +%qt|GLw3hS%鬧9Co7i~߻m=%eVx!nG[bΣ8 юcWzy̭}|ۍE +U j.K!ܷۃy©6pvc|&ztے2>؞N1Jx ?yeZ6g+n\!if+>?npgˡ<0,RwSccKOwb87TǀzkOJ%l2km-˩,SRqUYt17[aGTTU#ʦM`vL*+HLt-mi} lD}]dur`< +7*0عR{^ AU~? >_٩zύ~,>aP~i~aϡl!=Djốӥ16~BLO tHEauv{ @=7 >VUhw5p\RgeGZP7KN&+d?CR{wxuzLMb]dzgZykt2}A2  ;XX6ݯ=UQVgU* ) + +3(JY~%8&G(M˃MMCCɈ/ٿS돘WRw;?*xլ]lL pШVpi3.ggPhheIՐƪ/(ύ%njz^.!?,p32&rha/]ÿ`d+5~^nTOy-#xWl&ms)5?? ʇrx|!e|%{+{lvgz2^^y_F3fQ׽ |3!4! L(~LS-%bzͤ6w}>\l}n^ w첵@6//_LwH)*5SITԨ&q` bGx/^l[] ):Jh`*;攒TGcG/؟ǀ<73vBˎz@Ъ$a7S-0ɑT6wZ [X&^:qV?sf|dOy^IҔ>L?*]em_{Uv,9L.z)&db'.oSJ.uzjN:Qs(իnRXa}f#\[Ob`7l] +Dy 6yfR:8R +R7?605fm'F5*}\B?W&zЭ=̦Q#o%>AE:lS +]VFh uY.hx3ZfSX޾qn \aE[w^7Nć%+$Wa9q\!y<=/< |:ybekst5"pf~Bv.vJvj֚)u>f6k +i.:3Nh,ĞZN:} +TFY~($Y1nm(ೋ7lpuuA[e)z6OZinh>7,Tb߻H0M<%bա`1;]2 s?)T<ʦzNdCPg\QG*%;7643n)KGQwശov2N0TҨSYA󶂸ZQt;2t{?&xZV!z]#Z>ILjy`soɺGaq;S!EhR~ױrly?2]ǥO?`i%;K'`J+Wz5(TE(䆃?15q4O=Ҩyzw{^l=3{H:x FflkzkŊWZ#'w0GPV V&q +h3])4īShHL?U|ۡ ~grfY9dN-/STh  ݔS;Xjw0ƀv"F8qiJ`=Z\i!gE]s&~ 4zfo!L 0ÌӌsEC&v0 w=n=I2\\Hs()X!,ʻu:}UW![0  6@\2@6@B(V3֓=@FN 7W@ȏ@r-TAPY-|3{JJ=@n}Tr'.yr̟7 0 R3H/F!)yVpE,kqnwSqO^/eW];I $%$y$Y$anI=(#@+143$~ɰ6[BxW^ OtQ57xʵsdďf?˧?$*uO8M[oj5sAi>IgUp˰_BߖkmWa:Ou=*dWv^@2)HLDvJc% 3y24_'bxxzqg|INùpw@]ߍ Y:* h]8rwCõORa or&xzFx[xy:ؿ,2: o߲b\o륹6x4e&;|y%JIY\ͭmK + +*#k8[xR0WSL^pyY::>Dus՚=紇5'ɒ"~b!&ّńC죶!7;'􈝷.{&oVO}Z+ +d.x't1kixwQfmsν\ۙX(%ӍC~.''1rN:r 1n6}@O6z(;Swge.|,S6Z{d{?3q~O3U<M~Ҕp9Wcٸ}ƽvϚ5͢Άn~F?|&Dɳ6ocVIa[bmҿ7~[X_jGXmpdur&9P8Unr/V=y8#q`mRV6AZF*fRNMFb +1<^<4zWno,YSh<yzfGYvܕ9\Vpb1YI· zgl-n&+f:<`V;Pҏ4p~ f pQpK-(;"p;łfn$-肽BuV!0%C݋V+0zac\MFuz2PﱫNJiCy7F|-;Om?ؼ4{ם+ŧm.x>|:㌆[[sl8܌j̍5҇w47ͩo%@P%nKYTER f̝c4坴f$o$о$iKه+?/FɎjBMg5~8WM+s~wM olrnkͱGIjԙ'ʧ[3~@3X +d8S>Z*lpn{Bz +x 9.&~p n717LUh"j|c g=@""--|EĹ!Im`4e;댽.2@{0MڒM6M{MnArsm>q{J/{uw^X?6E#sFyuTFuV>l_ܡ?߲Z0z+B7/N*]sF)jl#id9+^ )`&柸`n >wG΃[{eWUPOS +~QD!3{x?v+K7mSsެ@D/U\ +{(O ᚏZ=]\siWЦx+`DjPipK&~,qeE-O bDَi<'7YSePӹG5|pU1m=Q*L8dzs̲E`|B=h hӳw3[Uǝ Iḵ3B,2XFqIaN\Z~[2F2c#²?w>̭\ڌo,+p:`!ҧm[%:bpdT~@tqZ(>Rq,'ѥT֍*?^q£&]oFSK`d+휵Xt&*u)ݤN %/P" '2h$1oЕء`Y[JA {} z"/?  y4X=:F, 67owU[0kګ_>uZܷT޾d\T gI~pbEtz./.klZ)Mt| +%3$ΰ=ow+1ZW滜!m\c%dqg)yã͌9D _ +"V( TdW,xd{G>:sn݁aҶVwA&"E EG8-ſ~"~vSǹliKcEAjV;?{:פ\l'cnGYvi4)||mK14;혫.A8Ql׃A-R{M;4{CX]7q {:|׃,7swԜ׸!YPӝCR [,"d{[wު(M8C/[I~ikJRB7̤liGla]܈:l5X~jS>eڴSOsTN([ٞ'S$q_KLklhq [5tB]5歹7JnR5eM=.@<dUbnUg[tI"4^9q,RYXrVnaWK%%z R3Uigٓw!f5b!2V;!-۴vY§S5N}_V|*ضMK.-dXr\o$(kTؼĤ ƳNI?v%,NԌ1_%`QF^[/İsuF`N#gϲY{4='Y^_-VwbW z a@kOP478#24塬ل,^1Me77-;+ᾮˠb7n(pbI~93s1lO2ͼ5;xyoN>>/w}]yzM|k#> }[^('&12>s;ŵ@OK\]e` +o{#\  +6b[k 3 {N Hdf,C: q"51`'{^ ?#g_hrQ; "q)*gP_\?us.@ D_Dߖz+CTh|uxH(Ǜԁ;,t!l [P> [L#h$QD +IS,I&c`Y1mg<$~HO~}W^ _?DO8<'~E]y.;U˾5z:ZxmCf9+y׫z'%IR%۽k}݌u{ɂ+2zK{1Xx[G|ӺosW^ -oM{.NnTƓ.l8ϛř:_H67b-zc/'ȍZt D>/KYx:-|AolOޚ{~NkgR/v_?$Ʒ9QxlS:#!9"2j7k7;s}Ye9ywOBFA5k^yW7Gwu$FU.+Tb'&H;ujM@Tmb~YYytZshiil7?Ky X&=%%_;3qP"/i93=[B STY<:Ty5+u32#^ ;/ڎK+dnǝYtرӊb~d~sΘ؝ҝSc+NA_~Y_z_.oq7 }?V:I^q{*8wM@lMpoњޚ9d3owTp(NK?,냑p,ieN5$UɚTBp6UTܦ@j|Tp$e.T}hWǬro9V͕(bezR Z7@zg3GyS bIRXʊ[ +}VB^'KfY.\MB.nePFnMzfeNCٿfGL7-= Vc_WRIj;S\{)9*%!Fe*\w}9V_z/?&^vpE6q|iQ؂>D%XsଯfJ+aSzWXzKA@!\qB~L+@1oa\?K+K^)sz& +LY>Qzrau`oY%uMeob>$Qxq?:)|NE9#xsXX48֌^!4mN䭏;#W@{pAwDX%h"b$NRBgD*uFf6lB7W3 ~r .gL^ V3_ja-j2rnCSyX,wrDpJ;F?X.TɗbBVFܫ_oG+9>,`idfغ PAu DfWUWNO:O_l>9G +-VߞzVNU}咏MĝX  &NKI )eU 8k[d/PltpdZny&3/ ~ȣνVت D1bkݡKQCs5ә X\v5 }an p3^-o+t z ަ75 +:ӣ铧b|kgJ:$z{c Z{GG|ƨcZ3KfE$olr#܈w( 9E}߫`{ٌ;e.ΆI*} +!j(6f C˾fWc`3uEa.2ULAQ&VJT -s6Pf +=`ظοoImUn-l̏za3An@%HdA5ObLv:aǓ<ᢂ~ e^;SsH)m$ī"" [d.A"٪{]sߧDa\_J +$n!6G];*#|:'WKv[N: VF5mm }4귽nP7#,]}p9BFƝ8ssaVߛ+ 9762:`ˍ1?!{j6&P (L1:_c=|D=0@5 (@6uA㒆e_YGh޾mI^ZǴƧ`Rƣq,RTe$3=o/ӪZZ̓oK@W-uLt{MB6 RSP;$? oι]tվvim=F\AZ w<ߍ5E56m0zk0ܪ`| 4j#W,#N,W>a`tEgEf㺐qҸ!`wXQm"{ ހ*+g-u`.z ewԵȦSdT 얏h޽S nG ycG)xr!|*O{5ۥE3n] Whi@'`aDcKJ^7pYS_SVOCx5\Uήy8򗷥?+=vP.O@(@7av 5.n1e< c + fzCvV.jJ!MP#CneFi*Y2ѩ MR+BI%$﹨çzjNHǞ=xo_w뱻ߎ|9 +d +HGˌE>^bjʚY i=wѬy }RqY-mTe( ۑݛ$ڣ(:g؜.ӶPEYd ghhlsGοi~3MPVO;m8N+J^Nwޜ$uG+$_$n˩qqf,U ٔ 6^.uUJ֎_m0UjuBXϲOM#"\|wp]Vyᓚ`4$.~&W,6mKe(*Mb%}~mr:+Yl#dLYWz0ڏ.nqV1xx҄ax-ilv=Ȭo<3ZaV#l jsv],bm m?+<;M /{E~Vx^ܘ=7Wo%0Pؐpk?Jr9uK]]hG0_bd@YZz;o×>[ r ̵"/xKz!$} ;Ww;7Rs}_IYXe5w8;;pF;)~eduzu )P n3j1`avڗ_^88^-z v޶EwN+JDţ]˗ܸ{Zku,:E6E^ۉ$W 3`?׸Ҏ^Oy~/|ͺ{lXP\u.圽t}]J6/ }Q#K>YIqY!wc(d5lXizSޗvQZ/{0:7໨7;׳4\g919G.ݶ6أRq]@4,qڒg +/DA{6\O6ao~mxAq-ZzӸ5[c+nC/Yo͠@};§Bǒ^eI's^&Tz; ӮF;%v +k/E؆P_Vk<\lmGjw {ڼvKfeX2v."lߚ,h3Ft’ +Ӛo銙uĖYpža@S`]k'n7 &ԋߪ^v!mO6$TRwf0^Acov*p\,5csKjr\Ks1u\}?9 z[iiVlk8L [9+vWo>ӊ|UsY=3h5qy~yQL36U?"yqӗJ][Ỻh;,h H?TՂ^ٸuWŨs"+waR|1iSXG?rcW2k/frnd3@9Ͽ\[:I%;2v&&gS2.Κ-W[=mw2I>ωu/:}Tz HK1+Dsb?C̍|N 5O_Mw>o_P4l>oo"G )CsX&1imגhWSbb jk8"qxwXZ.hswHBgfDk^CM=C=isѨ E$7{ɶFޤu}Tϋ{ Ŋ;19.Fߋ.w)7XÎcLb>>Ĥ#//_VS*cw^>vzq\EUwǁun&pꖜ* [Jst8+I +a{bƓ rCT8pY;찹2 X$"eO&;,bVi%КBǨ Eb< =-_Fu5=ɏĪ!ͅN +=yyr>.}XG Lcj2Fv4,tSjEj]mjyۯ坿pY{|ܩpVcvh~Rz6lXJ*G-Aڊ_-/KW K=;cVGSSCU*4'}dQ(U^+ VԷ< n3˯3>gy[+e%Wn:tyDHQP<\yH1H'*4oKbawX.9,r50W}(o GBSU*ۆ 1þG]Q1tYkPYA鍄 Y0 4Dp*@hrvy ]FzQ3wk"2N~ku򿻝ܣYH5l)UC~=ȝj.[,#h3΍%#f͌wF.,f.B{@N6Z-: nh B 3"Āfg?Pؓf}lٌ{Ks妉~ +QX-QkuMxݩy i2`]-V3{VkD6ʲus௒}mZAAFl" + 0}^g`_Xv6`{.1 {/W+!=:8+%Lv-n_;g|> ~[K\tEdNhM*JW%| + +"]h}CI?.s#|)V/qy3u..u2?Яo>MG//:Qom1߮規>=U<V%QQ]ikքZi£M+Z&8c5F_q^YurϰWbi_œE'9ciSW=FfJjD@ZRk>n_sT'צ90fPuOgHR@snUjScMdL/Yu\ϘM|W|9UA_NKHvt[9CM"KVdlO?p S_&r "na8xO{e٤ +Cw+/?Q<>OCuO{^O۷ݟN6S}40Z) sLl݇>TM>f|KaPPɖ)Ƈ&&}9Vt2petNVcFسbe1|eDIț-^g?t‹dUZn ildZW6X32*&'{\>yj +Yk/}b65򱳐'F(!%ab>_6Svy7w͂/kS7uez^5;*0`&x9[GaW9G,ލYr0 0ib(:bkOτC5GڗDh_ w\.},iS3\l61:UḡٜoCqz9 x6Ҋ$#=rbXg^RjՓϝ$仢z⮳]C' rͪLˑ(~|y5vIi`IƬRɞ’͉trٶuؗP(e-ZpMpG-:O7OG˃1 {vt}`QgQ;Z_6(,ΪQB4~4v;m'5”Q)_}kHƶl;rEW‘YBoǍَW.qA x/*S!r| xiȈݖNF(Egx;~_b9" mîe/,G$T$'D򂫮l=19p D3OO]z b~`:7 +}jq(G^1AiCҺʂZn~>oxTZͽe%.G3(`"!f5Vwߋ9IVc}?_;(NPVLGz:X8)T&M[oKb~A{{60YY4N†,E, HߛH/Z+g0yZK|7ߤK_+{X"X9֙O)1.ҳDheps;U>UqG Bvʋ,hu%x.ATk.yZk0 )6|6k?,,MgmAyofLnlixkW(h8J} +bqCwCFWq?qQ~\?WjRk)ʟݻX̾d u/AaY_2L\Y +^4 } |*A#wt)P(W=Jp2YuѪ3Hܩ=._=nV)k[Mk5>UJ(33BcC0M\Frk4]_dIqUEv5U3K]ō*I\Џ/[{{Īx!REuTV%,nb873Qn);\djpv\ +!DOoyp>۹=35駫BVuJU6L R{e2'V<5в%(rQ%G v hSPׂR(TV8~N:ٸ,/3B=c|N +k=f1SiVCڰNe6 NSvmϢwBrSA>G +\1\mׯV3$ W;> *ÿPg$ gh%@ + + I0NFWjɹ\r1]0,(*3A kW{{zU*2(dZjZZ(Tj+*ٌo{<ѫ Ju_QAz<ޭ[-;"VIïIYй/jZU}w/I5w8v ?#rrmp]*Z?k2dB+ͧ_HwNo5&puvY>G B xKөrz+x6i-}XZvS\{Y}fu/iؿ%,>SȰ+/ݺ I7d_ތSCi9W|phlڃmbW[z7nN:Wx=V Qf[]e^ Nۅ3;Zf(v_Hw"Mo ` +I̶?gѡ]עπ&z<때4RMXK[0B0|v4YmG^DN|M%䞀 'Zdx5Wh'?;XCvms?U,nzVDi}XEDT8܆lz,:"?~RqW }km;kO"Mkp1MtTE~d+ٛ1]_zI|opڑqãJ^gymza:? H4Ҥ> v u7k/5ߏdbpmg='uC^O"ˣ|/x8|N&M'rEwkԞ`xFfȰޗWRx7ݿo@^R}8V9*0Ag$D;6d.V?97B~u~6o:.*,O +[ +d&4}jj30Dzo(t{ dll+wNFC8V6)95(ۆm YZ!/Z\Z"nf~ +RWCs!n71Ξ,}0|qOT/~ΆB4LzoF&_f77Ki+ԣ\'95Saj\뫎~5h2HZ4Z]g2d\:.82&c*jzr~vñiܪ[6{խs,a.lT6Ǎ ғK*Koɜ^5Tsr=\IQK/H7kBW(y?Q׌2l_Z zb.&^ǓoT3{PZ`K {%/roX@sn!\szF*.R?C +m*ўg\CxLg5Ʒ͛"lnDRؐO +9țZnw"/Nwn-RmzU)[dO)* l0:VʭS~54C)6f-h(a mp*|S\f]r.ΛfWTfH#+̫r3j9`6d]ƳC?F›SWwH-)PۻC@ZTdXwЎbV*wΘ]ᮄ54ٻQUy1na&ĝ`[C?}rCEA7>=>=_{}}1Qٰ3ZSU#7j̑MoV*WZNpPw+v}:lw{UvdC6Uj=udrD[5)ˈV;M KXo'1"v?=<êK= 'VlF:&OPyMD__}|_#7 M-BIS\&c4]$$Kun +5O)j{S%RRt7<.@Phv% E? n"'Uʁu2y{F-MDq, 78WOJ~2.!ed>j`W9>#:֊}W➨^:&AكFէ.?VkMTHPM +Rb:s&7vWWU_߿ԽGթFݙVJ; jUaT>m(LTQd G +S~?,lsV +%r {ٓr^8˥ xG7rTbl/u88:|U'TEVb2ݲLE lt0u\1DײR6Z駴ՒuJ%c)EARhW°fhgiֲ|h4C2$-gڛ2*Y\.35{y=_eӱRmT*UdTiT)h|u{ҮHzpޥM]Y+Lڢ7;-Uqވ"kR_LbV@/2T׆4_ϜM8o(b >oB[zmyɸ16 k;) jɪUb{kIQ~c\NF6.Vmf7XaB (<HUy۹/ +$C#HL9T@B{ogBA> +ܕ!!LApX5>' PWPAuP~J t]@/o@ +ϟ&o YxHv*x1vhؤЭI0GޥSEfe[j!d U%|ɾ:nsO 0h.Ȁ~wLw3=zf4 K]/"pUleY-v>H{)$M棞EΪ+|B˂ 废J?H?yۿuz\uwvvp7/w΀oSow7`AL@&k /veC0{&>L"ϛvsO^QSx.DW֘}ߑ/n՛[-I݄ n/.>:>ĩ}yY(vH6?п$_:/"X4 7"d=a;6$xJ\9"@/~6@ikPrDN%S֯4O02knwtiGtU~KHQg?yЯbOus?}כ#IxWz^_u}v3yNHr<` _!SMY^]ZEl\AeKd6/_/$h =ݭKJ +pK|08?#Qٻ5vammK렾K"n\pvqauSF*dYmoQ5INv>F;ÁCS󿳵btܜ{S9MvP7ܡ]qoxuYز؜EXb+gF=L؝>/t9b:N&Ly4֐lxA6nE,׌o/%|"V5={+jdepnES}OjP%Z!O6ȟ;^=qrEohJG#Άn bϹ?ӟ,c{L;\r?LNK^oY50R1s7yX#|nP'qx!gv;&|q-f0tEdwAkd}rlx|q0~̦-n^\PU麶TTrD0bsY]k?{.V/9GOFէԧWwuT/6wu{7)/iep_*tEe^ +34:Hp^&nQI7pbڼUS8ѻF %ߣ#Q +7~ YBPҮVڻy[eڟI AfANVV1JK,[Mpԯjc4G2 :cZw$]]I*{s[B^ +maX%MʽRe_VYOq=ZS?ȒAk7Y&l+/M'.rYLgS@ +X=ìVpV^J*q\ ^$ԿQ/5V]j>\G&D-ٷΝRڅOJTrQ +D!b͎zev==}M/1yux|jЂ*A LWer]KFgIi2/LJG-ݹ^+9G+,`v vQ<4FޞY"2/b^x#eԄRTcigRW%uz%_,&K3o4Z# ЩVlnNSMKa-f.BHwi85-Nb>()_mȸ U;3hIc9Y9אpgU/)%MQ6k|- ܐ"K,]Z$ 3;[˼79BV<`1AnLAnJji˻`iN~Ink]=0ۘ3_{gΗQE]#LqkLFx)POq]뇮SAUۤw%?y3 q#s=F֮ȍXFNʃN@}mZH{eyΫѓ=<Z\k\mzKav;b/,52CT"peGƿBɨŃZ~ *ly2yz>u|TF(TXVEVZG_iO;oCsABLBʐ7qs2=/g'ևYN6M3,ui +OM1n<1Oqs_D,!]\=ٮ\ i[ irwNOgK}/xmhkQ +ő)od6קޟ + Mu`뜮q udTOP3d\Iңt:= 8 qg8o,$f 1| ˱#P3 3E KG/V!#z<gfo:aHCq{Gcz&:k^b۽ qEz[Z^x}3AG3 ,>9hPWsD5!hVu:׽1#ZGyŲi>]0~C:7WGdrk6 ޅew:A1 %:=Z7d)>H#hÛUjX.w\ }Rs)B=_$RKx/V>+t6k75*Sl''n*6L,/23%yimլx"3x +g RD?lV-9yg1#}\(&0`w%|VWΉT$CMH<}}M%RbW@8N~ז%2݂M<*\{b5qAjRUri@. f^sQSJe4mt{Q`'BjKWbjdIv d~lOu9dL`[qVk# ; ]PTHWR\{@1H*y*y)QJeB[<$.$\P e>ԯE>|ZrE{E5.p4 +R0O@s^zRtCJ)4JzSL;2'X~YL;E@GGeGdmI%?EdBY[HlEPW^#OLSPS0Nqf$|`6 ]|6`%yX|u1#)Q)@M3[NMtͣŗBU'rDŦRG>,]8E~ 8Mo\-_ {-DצCl+TYIݬj:}ɛ؀!e?=t7/R'-xE%=j?|\n!1@\O@d D?b-ILqjSWZ-wHg3zFf~ԋÿU_K_~['G ́t-̽WMK4lȗ(tlG@?:}Ǿ +ߗ1_oGRMGU_kK5᧭f:ŹwQZ΢CteA}B}Z"^/ ^G Jx30nV+Bv‡?^v?{\2{c;΅;Sv5UTxgo,m0^th쵐Nsz1co(_>)^ЫlVя7pvΣ|5fbf2hq fE*XoYA'sCR&$+c} dTu?: o?׃]w~m[ )N/n~N?k@}93.ww:4߻T'1={wuQ .̒CfǞ1=ftvY'S>W;Yic|Z=^z?Pm^-6kTvwbSnSvjqjYꔣӢ"y}!su!>؂LJ*56n-ViH~hUPM!߫;JgXϿ'Ӛ~ՠvK/TjCX>Dۃ_2w[]+freU^=4晧^/ك^&| W՚?¬9#֧F-j]V**uިT4Aq[mv鋒/w[YYo~^dJlLs&,5z˻:U,;pE}ֹqq-[2JcIW$ꭕ)+{CgebSsM[sTerw|ۛnH3Y 0>Ϭp)ZT3wkaU;xU/nOk%]pfO{_j<>< ݔ8wvSe)ΪPu- fֲih<Ǹё-Ő NJ\z#{Y]`1E?д\Ẽpڎ}98_{SEYiYr +Pڥ=]b:Uyo53o)y4R2dKm}ukrt̑_rNIS端ZXN8"H`k\o Fr┛J<h 5zE\ɄȄߥ}ASLpI {PƮWCPY:®u}S[$uh3f9ݼ:] Pmeq= +J4qG\YtZҞ;}/$%6)r.yD>#SFNZ a c{̡ܼ0^]}X8&]O5z\~T+ r5oasi)DD_xjRlBCx(Zt?3sbG[^ ;Z +?:T8u~2K{Tsgvf|cAzO->+#LV[i%1;1um|<˪9]Nd+re{kVK\6ң8E^ +40`ll06ka7q؂͇"i.ū7˖RLW[<3Qv + Qmԑ>Z(x3dhʓ!98h1_ܾf#zL)ؒ(/=_s5IZL9SZ/+Qfr>5iyGfo񞝟K +݌qW]옭 ?놹<3 +v~)5 3 r'SvO:'"^ Qp)?^K!U'9?n'rj]^]M?iz:)0,  TWOV팟qSfsk@2jғ2us HK )~oPAz{v˯iƨ`UᯄŕՃfZDhCu Ӱ1?28;{:#5_@^C@4eπ<zrj!8@ OY0F)-PO3;:.LVbYӵj r %m?ī,T0~'~Esڟu04;_;o=wG@/Om0Cg(* wz ڀһ(,t=L2i'ESM $dw!{J`6}z3}r;}SlYvqʀC*6{3pNp$nIOhܸDN:2j'q[%vUMgw, 8ePAr&Ùz +A1eӯCu7tr.fت !ހ0j@؈FW ~PӶ)SIkB8 ktrIk|A].(@_۩߮x*8+k랫@ )i4Zw +?rz8ASjnmOnv+>:Eϧ> |d6'y>R}۹6+<7Y2d_?D,cPH/4}ff@qt;ddaSEsXBǛCbcOYbʒ_WC{ާn٧qNff%O'z2N:Gj%0w𧂕?A#j}}[\wbsL)y?}5\Mu|u2qQ : CH5e 3F@_rDzA{!EvYxYkʦMPimV<`1s>Zk܆V-XN}{~D+ֺ[UIhpq"w>h3'<7+&fNؐ^C"zNBe3F8F>)fVuJjkmӭ fV>q$'CepllOF!n*UQzO ):\Db\=^~Ґg qF_YYm|!-O?1R3"X8K&9hҹsB8G̦Ƶ+F[qJcj{~FîֲmN$V}I͋5PL +"(e1JAZ;w_ne6^g&k:h؛ko$=/|YkgܲlKRbVdfG:/ >o Do>{yUkKJۡaI7jbD@fHh_J3(hg+FNV6VK Jw]!Bye׭:i_j(5Opy&X9(-GUxDj+1|0 U{-2B n=6KME5B8i{.pV'1/{VkqS1:ɦ,r׹fНŋćT2 1NDvK\ԅ`[n\La+brzjPLE{,N0U9)7&ߊ_faq=ghto붮D:ep. +3r6\L Dgñx "WnbsZ߲a`^q|{S3.1vgڭ ,3%feCfO,4,4,R?wӮ/V^d-Puxa<jVKAe2:R} W +W b#96vi e[s0[`ff5Δƈ)^.yƈ́B=I/mfݗVjns+ һ2bgUb%Xµ=/~«rCk2I턅η%3kLR 2 LPzyȳ/4*6=Tu3@A^sd2TAQzdkxو^o]L7YWa[eRVf +Y9gTL{r5=/yk2$ҫ\0igFc3U0Q"W[jJ+|s#SaʄR"9+`JGisŪ dQ +yrvP`!b'5߬Ӭ-0y*_% \u;V2kl'K6nk 4\3ȌV{^nqKobtj+w}\`u}Rf+ NtȢRo YM×i[@3 H()a%FvP +1NJmJ3@qWE7w@aKP9O E-66 ٳBsCC3QlQQZP#gWoM/<K \OۖY  \n`POL SӶ, %Ծ_lEKd|dHe 8@ƛYgi<OߊZ{6 X@qt8 ][mђqp9UvR΀}vLm]n4?Inה΁bU42,j]vvzV~-j_4_/mרk Lqzh@ 22JLP2J)680 ;䷥_oՈY1S_|\?k9ms,r>^\֯^krY;fdTyrm\fH :l 6~9{[͟?,C}/x=F['0ma[tt gQc>=3>d;1fɅ/;q}>mlV[kXsE|o:.Y̲>@AO]ypgc\Kd0N{ynS핗{mk!cqs\Q0-5nKؐ> :Ҡ\&>fx84ao;{϶ұJz w'x- +[-ߴV JTcD͘ۍ[5:D>??#i&}B +oI;P71 +R;/ʶ%.*5.VN//v _=yDNig뜛4UO3[]F+SWEì]o~uUժhTѴU~A$e<٣k| +ugr^~ %p}Bɱ:'`L˪-UU+UH>)[ (yT(ʴ<}jwTE[fJ!RJ`Sl3:9d%OTKY[ltӖf5K%VD]Y4qWHpTb(`4d®N!hR3l#f;Wj(E(HI5qLDY8)}C,n,,jBHRݖZ-rN~[ ջbYNwE|Qb[Neg(gUJ + [^* O; ~&-qk2\̽jOc.%t%mn;^pIumU'Iq+]ڤj-r23.҃UC#MdL"uk*["眃bY9^m֖)BQs`T;V#Asv^`ǶZ5&<2ݹ1vnSjvF;= :EQZo}sgr LuɳHWev@.eS$ur B+ͱ]S{%wYX]{/Č=owyЩsP(SN6^Y^eYD?(Pk +d "F %Ս6[ЌbWgܑ&l.ϝ>^+>C'4=,'.7x#9dXiJFD4 h=-ZM( +˒ru BX{:2jFȳ0uI%M~"^ j{D|Mvamv̅g4\rء[c5;$XUXMmء!C:zv4ʤv4atLe} h|fJԤtɜzƷw/.F9Am5k56IvIp!w=B΃QtNf^w?i畦VTL&%5w쭹PWEeɤy;-b^[TL#L{FwK[#Nd!uY𠭧C9Z[q9 lXF1'Pu;jU\7a\3GL7Vi4%2_y|nX}V6֐+ᡴéӵ:܆Ԏ!lڂ\S#u$&% |=b ƲVy<6QbUAׂjS-ڗ: +0B՞8͞#g9*SN'H.&85UF Z@UzuP}TmTTҵm@5@uMә,[s{E&ץ/ +ͲC'Ko`ұVQs6P&43k f9@=t$L] rwZ +e`t:ɉM@SM;s8E޿d֍%c5i:ck| ބ^]Cdd#]3q<`B jeLP;'x!$ Y;H"1RrL\X- +Dw HDfH:`bF^};"d~xY!`J{c[`cqMaj8D~c f<`jp8tsXr'!'r\5{>f]vX0U&$)`FE#CA yq68WG+M- +_g0O怷?Do,<<i +W|\$x$/ƶ9~J0,Db}$6!f>: &;5z +:yo1|d-  F#.tݳ@.>Qzb)|h J:7N7oY8!j~YArΟj +Z'ZY?[?` @f$^O0\<]\js@.s@ ;`$53uBrվur82Sܒb @uo)WJ +_w|_m uƛ>P'm7j/Wj@,mzvL +o3 ?u}HE;wQo_ +ݾfEj8Cea͆U̲0¼%W ZnWу;fDx;]7-nԮRbInj ʲEk i΍Co;!.`__W2GP_RȐOGF?g,%إ6p3Sњe +~dҔ.$Ә_#=o|(}gӡ*p8NguhLcnaokˣۏ-AkQYWc¼&:vlĻUU=/pP䣎t($iau$֘@#~fUW@=~[QG+=ُݡbJ'|}.sWהoPh. :cwm#6>3Cf=h]-NGt;4z>k=Ѝi3qDm-sՊh3hnQhۍ|6KR?aްr]}⿩_|#G˽p-2>^ ]=S{S;Un{,&6=nTˬ!^m:֮mZ3hՁ|wՏ:r#.Ks_)׺|4g79)uS֣fڼҮ )TWkkd+5:U+VJh˫jU} aYxP@q 3 L; OQGZ5۲tq27 cƓܓ+u/)W]Hd[QthymLsf eV50n+4$ )\&K{Gث:/“!MƊ0rf5Uy+w#>}aC_*ǒw5vlCqNrf[&ú- P/Eg|:]ҥwբ'Z4۩WI1vۙ5ywN$EFĩeC(p/2manR'geX3cN ҏ@rNui}r1]Oif<Թ[rMu¬8S)LlMuaeS6aC׷nF/TŷTTSSYQgפom̌齪G\m;|:P4{t-MC+ҒbfdzAŤRXv(Ȿ6 nuJ^l5eT"Ka{RQ.˯q$b-#2XT+rșPx)oY4ʻj8[ ˜Gk-^aG.nW9X>4xQ[>stream +F^[z'WfDA[8IP_4 pI|ml~lKL?3+wM/]vEC:܃BkjAfC$Xdgb.ybUHbktltЦ4ASwܶܥdG0V^^G BX ++ 8eY=P:8$y޹x "CM@}ONkj*JzE,bJ"F0"c- zQ)Ŷ2כkolJN_[X[&eUB^X>v|1}aZ (y +I:I,A#e` +*^|T8۝"X^(X0icvxAц)L0idcaC^U:iUS>ͩcOMӛ 3JDҖ7%)k~*; JYZ1Yzw0Ygh:1ߒNgH{`n3u{dhCnתTt&W1c߰vUcRkCӁ@AI'yw qL[mmjKGnQTHl"Pļgp?a0 FJ JcBF#`N gd-y,#RYJ]eY< MW; 04qN4)X%Y[`HBhtt*v!O z Uә>8u@xdZvv54K2T),xf-lڜʝV-y$C{qL9vxO QkI8(7ݏG1 '`fK J@29 5$J^U@``U.v\P;kjoRhV/.#?vЊȀSW4 Xq+N-F4i} 0BwP8t N0up=@6=FK87T+0r_A]I pWVJj55%Zhgz2՛hUy%'>`[We/oJ77ǀ;>W'KxJ,Ӏa(yau\6fqz+5uG3/;2ȀD4e*;uB~%Sפ +-k[#~lOCt]Mf,aL0X n }#='8*c.pNR3cd"%]JrVrfx/p{ok= =6րGĜ%q@ZTj@:e@ZFSENLSڡC!_A ;Iv-鷐oW>6Up7w9#Y:4+ #Z3PmN +Ew\Y!ANfs–΁PMsh>;Wu6jnۿ9q~^ +гg6Az28}'O7Kg8GEWo<7a}Sxâk?3nw'73:3gW|!m,fXmu^9os;i֓.ԣiJILǕ&qCp!7m%} p衍1Y+!57 o諒&B]1ynl̬'8f\Ć\o`2&>ZACisɈXfqҿwxwyIo,+p*>/װ6nfIeqãM#~P*M~W1az8cVڳF;JV:N۳,tl,JZ1p}^…h4Y,,7i{f9+%8eQ6¥+Eޖfe嶖5rt8׹ sO; HUJImoUZIRSH1ŁA Hrr?u~7kR2^MWdtwvX74eҙ;j6A1 +̅ӷ ꐭɗWJ=\VmJ[QnZ[FCRs#{ gҋA„uDP3NLPB$B=<-O6od?XeO'5M+;ec}0@|4^\TżtEUuS~Ƀ6 iRzu$4tb\[Ds{ &JsW~{u.u m'%έ! Wt{z*mcq0Aғ15RSS~u7< 564֮N޲8͒%Ky6[Ư;_3n\1<{w<>̕!̕ƅʞ^fGb jL|i,J+y-]8@$ y&db)x9sJpR)'&dU'Жieァ ݡ{ڪBwoJ'cm?5~H]IcS'}oc Qv& {|F.$䟟x|*I'6f5+2ע3m1#яٻFrjv֒0tq?gY&Ac "b>ț`r1o͙SZya]95ļkɾ૑ gmtϪvcZm5YѣmWnIZ^l`cۯ:.UQNYBX56_''_N|4s%hJԅ Iȓo9ȕ- ^} / .}<\;6cmZbG9}b@ DyP*n|1df+o~[[,.1+p#玙!Iz$%oۛCj+r]w^c?^uGŽ PBijC45N>H +pZT`ϨH-)Y^6#2nQEeJ$8"L-iԻ۫z:LNȍ>yB#fk'k)2ܒB$ERu>$O:kA&6HvfΖD,u;a5䬤SsM+v@ z6gV^~qaNyBCH>&(Q NBp4x'ֲk /0 ?wPtx/Ī#(!ҵ7R'>&w@VWo@!s!lY5@ (+CYq P63JPA߀[+ (J`w@!=qy T|XRYsWi`IڭR8s}cPPd+&*Гڵ +Ox@mn +nhq5@G FS0}_G$l#@[G#вd撗ଟ hKu6LQ+Ay o*)F`'jrQ9u`7ΡAdez|= +@j;ݕ3O*HgnӧkDF;a>8$_3pU7~L@ӟVBqL+@(S d;*hǾ1""߂k?Gˠ.gOSҷoWE +_- 9|_ +W==7 Hedli*z@{ YHb$-wαRT:xmϷ+!i7[oǚkHyWǿnrQmӟEy@y:P^7PNZJJmYdIv1" +:z 7 r_gմO^Qtkz]5:K^?Jm#m Wf#v;,d9̞W9:gpM9ilBo3S:$?rL\$vnlקYOC 'lwe̲N5տ!~|g>Gu=|X]j&73yí-S4}u:I ͹qI^:3B4dʕ5Ҧ94=O?h߸p~v0hv=${“ZʡM5~*b7zKkvWJu:IvG=#VykZ}ļ{움wKuS/)? ZQYoZ͒@NZҐP?uVaMfɣf*S@ dq~5C32]r'ytzZxu}7q* pYqPkKxrjU{+5qx jfۮ^"bƕjߛ[h [CڕDiN׮sr^uZ~0uHUxlt~JܹT +g,>[HM %\EVt7gҋ5(tsmT͙>;%gn/5J~ljzaR@[Ʀa\q1byl¦|' :"n0oo>09vj΄13||*tp>Ⱦvh^&w`VAlj~d#__WOʫb +ѾFkI9yj V=9);z$Km X-W98 e܏̵ɧ7퉚+'Z5u{?vuQBvnvQ~un_ +jP>2Hbl?%gj4Sj[iyU{1n: /TûoRv&I?@^%ѵWF',@vv-치Y˺ZU+҉5^iؔ#k>^8tdզ ]+#+S ;_欅M܍eCftt;tBg2j6*6V蒣jUOAI˄d=ZqBXx-A+fI,XvҾY`^傾4+z)5j}4k2B;|R-˦ⲬRvMpnȏ9 seo a)YLʢ:Mڜ Ԥ)|mDq +2' úKV AfYCը\WŴ.B%;6^ˎlͥs<IŸP1G-1Ha1061+i^\ƣ!ekMnWi6[q&=}Q^n{jSٗbz$?A޶ANy(@)1$o{1Yqe1ضZBwUWKopjomk%}/T 3>WwlFwwGbgrd\~ø`<4~JI]#D*¼mB 6|F?(ϩRRʵ8`adk.* c.ڼ4ޒ{82z/[»\2Ғkc|V55#Jw Trƍ#BBV<{ ÃHóɤv >pq;@sSĖGqڣ2gXaZIm=%z5HYJ9MB{.ky9ojK&ҐTcG!{JE|cyyjs3vB+ ef.eZRbw_íAwH9@ *&S +1Fb|$c +1͛o"1]!MdCϬ?05 ~QprA>Drœ?|[shªlg\5c-}?/zQ MSib$ 5bƶY]BΌZ1lcur_wzZ]dmڳ)&e !q6?8qey˞2cr5cH9VzBۃ֊eCsqOb-A3H! +IFey`r"+{J(,F*_o,X2%D.eAv9ay|v:q2ldLv4S ɸMHI,y +Bw?(sg<*_8WPlXXRd|f zs5}y7 :%9gfļMBN*Mc-ȥ^#i mq^  +Aˤ)Gy(%?C;t zH +Ev+KIQ4W5ˣs!}r͞+өt)쨴5_kbKj,@o`1 XuO1t!I~+F'`,j̶sRg5cyZD6Ǐcӯ4YLخ͓x~P5}#`Le c~؛9;IЯ& f3 p\z}? + vp"v#US-(2{c_-;K_i>oq,1fPuM/GBnNw .Y/ w-*N^4s?f GE|e%H|?ަ75se9i8{_.q>1!7(Fet~G_@* S &h< NN/@tI1%Du4D.|"H³d9MQ_y0LE ,rxONpU>BL>[ۤ.4_0 ]dNd/H,@.LR5uaj +rRrK,K@7}l +ݯ[m'" 7ޥ' Wv+Vsg@ʹ M 4 +(؃kѓ'[N0uZ S@.'@8愙\EwFT!-U2v{b_Sq|{&}% '0d4"?Ei P2k43x#A0}Ӏ!9z0.Jy&pu-΀~[^>9iv= :E*S:.ј$boW8r蟒ը+揞|?#{uI"`[Bo_/C`@vvν逭ϫz;%=>f4m>Ոb!bPOQ䏔/+ #WM}.a `I6t׀_rWb"Vo~ ,L0:V:ہ7ѓRU|X7ʦ ^IRT^8@e eoWr Ѧ$/qqBe7+3-G+.. VDw%}ѿ.IoQy^Pze(PHPe}J< :М\fs$zV@'VEOן_7A?ݯtF&oTm{m Н<tրN@6@x(?taQ[GA 2)# 3,;鼝NǭA.*~S-CHe ޭF+/g1l4?nS4&= S9ݤ5yۤ+%6\-8K3G>-p;Zc:3O)l.cvmοsBȇaKΐWӲN;y}k)&&e-#t6coj8W19g+d +ב4re_/ޖ+y ;].هpi߆ϟ|'e>hl>iUܤKD4(RS8ol@j;xikmՏR?w;s{(nRH7vLfle#$unzniElc֜Nb–cgfgdaOӽQS?#PPEYx+RLK:>㣯 +Voŧ7|~c!_鐇I,`'>>^j28Awd5|T[&gOy]f6.+íPyY]ztC\N]r^#x, <)Nҳ5 + }<3psgaz dʨne? r%/4G^ Nbi2H볾TP fCOᮗ~;t v(n%d?frn:_nn9K}ƸºuA vl3̩PwЫǃq?] iZV5z-9:՛ljĢ1.f /'q \^π_ZjnjX[sČ|N]1Vg3LbyAh~ +orK-C<UIO$SOlM3W2,nS|=mNV.2gLj܆Ǵ9;b9FC=-)>嘵LʱRpQ~3T~N_2\@~gnKNz\>9f*}-1/<&\,åTڜrt=ׅ4)GѸTigt,٭$fQ1vSȋ3$E Qo^}ly TqpyL,L9f..mth4H9rjs.7DcvX8(&nwDfYF xS<0KV`؞,]0nL&L>]c2}֏LʞӍfjZ:wJXIRmc}811^,d{Sp+\ <1 s2 +L4ǡˀR/!(+AO(5q)-wE~=e+&Jw,'wG4^k`&ԅ\E(2OypbfnFaj#S`7|lrNR7uDUzQ]l̯bp(ѶA4 h%0(3uЭ>"\~YB:ó|M\8dGMj+ '~zf<{H錜" M0Itytw7R>QU={ƛSlv b>D\hu 5c~|kQJ)tq'6%1|DnsV(1I<Xx2$S ^}$ڌzN!x_&\nFb7fFt +<X1L/ݦGI[@p5S4*XZ(赊nQ)*}МFwNEOG%QjjJ;e+H$ڟ[1g%u +i +s9X۠4ƴ2>Z8; 8 טvXz1} E<G +_Dsc)%e?~j6R|v >)]oFԩl^t1T7|ɨvK]j˔U5 +ѹ0~ֵ=7g׽gYGw(W*3(7i֢|S@<\-R5(@6ܖʑ#b#Jg`&dz޴6.(sHgW+y+1qۛaqRsм7ZWouX%6 +PLtCn +& [+PkUaJr4^+& L.Z(x+0CffpMJC2=""XrW?a73ϔme1cۮmY_Ǣe;ihQt`Q8}]FnޯL=({ _>[ ۹o7̹YdPHVn1;ۻLq',[r1:u#XZAḚqdEbD?(_Wg .-7(wi (RLe;l} b9b&b4cX{pq.]h< g15[:r#;jh%? b +||}2>> }MAy6PV@$* bD[[b1$1UGy::.$>bVo{͗U>*@ by nv0ˠǛd6BdqL@s'@'q.ga6aTLޡb:X:<":؃`Aˎo2q< iɉ@vc؄T$YTۃrR\BЀ&b(3eI!CjRoч!Ցx,zʂ QͿOi@#"M Pc{@Dʹ艶tg4Wir=)&G1T1Nlg}\ 賜y!DO'YaEpX|9n0Yq9Rq'Cĕ |Gqnlqn{iXT7Lͽ^oL.Q]`QVE)D +&0?94o2c*ߵ2o3k[x=Q8`]) X6[4`1jT?On2T7Ab&UH]xuV96'/ -Ҡ[kE{ ޠ64oǨ}y5(w@PN Mg b{ڮp ƻ9HDwaArH1d\?wMǤնAۯB + rB'董u}KXH [zMe==g}Cya3vKQ+32d1^uެmYiF|cOIcrO#h3[#\_yp }:;y>Yj~?Dçx +B1CêƱ]c{4Pu.8u N+:H{Xxt?&zծoJ]E:ʨ6\ 8mL_Z,H.Ff*Ak2-~~Zd? ) s~eաE1ۅ!6e.C9d}^|%|lǵGs{6ƥD/z&:jRЫcyMĤ?98p*n `[S*f.dC;>i.BY)CqkPN]dTjyVvNiю\1Ǫx= ,;Z{ji[%ӈ76(nl{r %OV'j-e‚ժg8Y(,Z1%ASP + (4y-J2~]K헺D>bq8Pzqt˟h^|t8I.pGGx.9i_fW!cIHTQ[q#/E_߾н|Ul J)$ddAjsZgpv#vۮYex%V3h2wsiSAzIS2K+F-T(/ۻݢkz&E1KYK^uq]z>OߜP-řR4MXKqdsitJsB.xf%(fU "X +礤kV[ZfqϰΤ%}v]Sh4?ǽF j/Aa¾ܬP;e^Sw"mQ+]Ϝ)gXBRb=jrO=X"ƱC.wwDi{x2gr^ +.\ su Lwֻ^B2ca+j + (ȯHg( ůP/bzxk\v)I qԑb;:ky82 5 7 Qryqr 2 U$5:qpZװ ~vo8;C7?KU㱠ov=#@G&S T<S@]A`3:=mo0^_=NXv~Fb}/кuo4ACP|%K'dhު`Jě)0K-'o>& |b \O`,̨Lj/w;D +Ѱnچ! ^[_m\64KCM}=,{z @v5Av + Ek5Y* EG_9P33IB^+~hT~!mlA%= +meAǃ~SPĎpgP 2;I ǚom{!&RCpA) cIITRFiikP;HӴƗ٪lO%surp>e[97Rq!1ɥVO{b=5ϺR<\eΊmS:EѥWBElz]Ͼe>`RN]N'AO{u-]m]2u?j _Pq;Ę4":w$AF+fPN@1hs[lI%eZ*k3>Ba!;)#NW˥Z@~]jMZc/aR;3|~XuFp||_7|zq2戛wxC%(@yڜ,\ h ~wϙǣo-DkQt)i:HImz5ι}u E;ֿG9qq0B<fɿ:r;<0= Ki7O|nDg$d){׃i&st,ʉy*^ô+,3N99Ń!]Q6hsnYYONV1yOm!,/!\PsF;WK 8Xjr/lթ W,~N3E8I:%Cda`u۶콗T="=E zg-v[KD׽/F޻$v'q,6/c$R)loţ9\GKw@.DƵ%$ճjfی;?%fiп06?_53t<&۱[Cf&>Č`8B4':D{1&~q˱Wuke/HkxΣ`Za>0F?ILOS1m"_p|2bjtH1 h,z.vܭax ;h| Od# ọkGL$*f_Q8w;nwY5"(ŭm =X20s N?2Q5_2Wx,?PBë=3r XG,f::]/>:_ J*6df_|qyʺ?f ;׫bJ\UȽGYb9G'yoe](n +߹< C~.AP"?-{4`谲k5+Q .xzc9i03[͞缰-xJyqZ,-|0ͤJoZ[voU`Btl[{mdΖz٣\0/JՋ|acf7]SF.KQ"Xkʕ=?{Bgvqltea0 }9)0u0k"Dh+t1M-KÆ(-j^rA]8ࢎLRWFyC>?EN<'vV$qwڧX-=`?J}~f=EySۨ]rNk_W2keXoS\18jt>뭴["ؖbm(.7 qev̋[39NINwG$6ӾL3^TIq^ +&/?qw/x._Rix]ρ0b*]R#r#MX[$1צzPG ]wԪ+v;^hNv5$p_)&+LJ$uŏ20`oC-Tsfس0O=6y\o37rZ!EA_ >.w6P?U7,27_.K.FG /{Zzʁ?H? A34ȟL8Yk_O_??;!&˯M| WI6$0pk$>W˿OxxF_˯K?ZEAȺ' S>,h/8m5lOcU>nXO/;?/JBiqW* $GNZʹe˒_j7{roY won۽ip7p!WI]ހh8ڧq0E]F\+w3̫k[4ef>Kgc_As7uBpm~,g~dR[OЄViw?/%\+ɭtH 2篕<٤ceI)0b?i|ݔC{N7L{+_kb<>?rJ`*O(S3U4;AF~,+7(X`5ަy!c>}>- R3M{]t'32vwe<H$>O2(IJ}Y_f-&!A{f:f]wE>"L>'LjKȊ/4IruI` ju|4\0/?-9(5;D?-^w:_)`^&dv=S1+mM{i&t=]eziNv`^n|w:D+鯤WE_I{(8t@m7EKqmCȿwG7ve3>F0-c;YhE{ٴŴvsl4ϟӠ? W|? p?L_3/ME߉'\#_/H06!f_ߊ'M9 + ++{zCPV AS4^yvS5o."~dl657+N||7#·+ +)x +J0әoI/.T9ջY4XȜM}u6x1hՇ>?1e\D?l_&gNo Л쑸9ݪKt&K*{6GןW=@db hѺeVqmӲ:\Ļ# GײaUҟU[d_@}Z>JӴSm}41y?-<_7iӠSRy?e?\J?}`%R$}{JM7վ@ ~\[nj=/Z/}-Iup/򜙔wլg?~jxJ +<"/Wl(Ƴom"o5V зFI%̶PJ :,0g?/j`<Ta<2! f>kkr0GR]`V0Ll;"˾ӽNrWK* +E3ڟ XaW­agXO`#FHIW3?#yψ<BQkWZ={W?C=xz۬Ą |brom}}޺Emu'^'ǘ +PwN* gxFޅ3%C'(WCI8MdWתn{yfĻJIyU`;$s8n L-k6VW3yd6*,|r#8罏ݣn屡C©e#~te&]K縝AFe [H]859toNsȌQn=zH:jN3:s'ò_pV/c4/MNlZZr=xCLF~rslԓӱqGfUGPuӒvsHrI/Z(M +Jod+3e14g-L7ZzSG\Ļvʼn"űHc Y5 F??m|[ޚ7ʋ(5if/7*vf֎[Ҫ!hS<$UU8g+2K7jV8~˜$C^:k֭`k6:-Uc\Sc݃/?x2d?m1Wѥ,dpD<:iXy 08( +A%?$:lk3pv!lν8Mc]vRO|Qi&*p#lޭ|޾:zGm@_m~ ? MjTC;ckHe6ǐ\bh?Y=AAc@tx֌()>ϗPߒ n~$?lVGQA5*Ic&5G]P맥+UGm1yvth[*[sqͶT+&O>ڱ73JfC(ӋL߸a&bǻ\nYׅE^99;8Ŋs`hfoɣ]nNv9^-8- o_.A@~,0zgA3L<#/N%>Ą{1&dzv,1x%C +sl3aV*޶! Avyn 鼼8ޮxrGh ]>ďֻ N:-]<\*}"i5Ѧ(mdfČeCJs7iK1}"Z^eW;Gx2JU]V4k]htᙖ-uө琱 =^Ir6,-7y 0C{)ٵ׳_CdEχigِW1= >rQ'SAQ(AД{n2{.E e<^S=WtFϦ.&fƒm{?Z +$_IMxY 1'M.jg۾v :׻UwS/Fظ[} [ͳNVKˏ &^8xf7PztY7{i;5Ema_A^Ί<̂ *22#YUS_d+0X6Y88OSzMJ61])suu߯Bmm{1 (K\Jطt(ΟmU"(o q5xy7p/ЭIј߶2ac?wQ +AS 5fQ]GPNdp~A㧁)ƾUۦ!;K,ǪIXsھsXಧa'q\7WM4߆Q_xZhS]EPV*gܫ޹"R;K[АhӒnhH\V:ѰCvKBJ(UWEg)GuLw۾Kl+IfY>c Y7O| ?Ͽ=-k^/TΥiQcdnԨ8 LQ:4w}ɟ%wu%JWuo^L1`}n,PWr_Ez>Z0bOаPT~rMD{$dth] հ?F.ʄ.(y<{RLx H҂~_au)DyƑ[\rg|kЅ--ad=I2M52FΦe'>_.=~پv`~I>w5?[\nI*c޾}Aoɐa]K%M!&2=3TbwhntQv9t䖠&(M؍v`~M>#0ӄc o&G?.yO`@=ZnPgA[23?l"> +>h(,A%^ j.J5Y`1yYTxfPzO |nr\j)0U 6G˯Y]8|Òs&#wWPIh9v(_*d8Wvvn݄4:r wsxxE{VecA/zPt1XLFg?,Y/==Ъ.OX:]?Duo +eSҖ/a_"E9}[O%D2( &KK?DxJ ۏIm,,>'ܟ{}q޷K(ͶIYtߊ.[ًv4!*E-)<?3t"0bpBL^N]JUkFU]„~ԹS`ϊ:bs(DEƖbM{RϢK 09S +^aEe r x{;SE7]zͣKjM5)h ocM +\"+|\i0e^`?9ǭhK VILW(ܯn=FthI'u{q {ibnxʰJ")׫W.ln*+tr,-)Q+LcͿDTow7bſ~YyMxn Ji9]̶n{+RKfӻ-h>o 55\3!nzѺg>dr5: Dy=+dT\xQrxO~9b)s6108>tH4}]2=7Xhd٪^Tx#"z983qTU~!p_;O缬}Ԟʟ&vf`<٥7N]Ͻ_sQwGyzyTG˗fy2s*@`n=ooc۽Xw(_g cf +)@QƳKYj糏F +FY G%G~J}{GnmDC,}3̽$M熈9qsD#k釨w_iT|5ќ '%dPT}rSlp,^>g6](՘?4Ix&0L ^D_y(:zQVJtmy'iX%%Ey[!/~3a˽Aj(WknlŲ̬;| O@c\t <`<{fW_'PG%}5GBH:[oibr 5Qu +an$qg3ZTY)&m)3m E&*ӟVۄo!$ݷ&(?U^m$K~$̡0N#*YJ& !(Oؔ7+ޒ@h*9a 3'@ s ۊl>'r@D{Ҽ}rˢuJV2Xc"\vhAY!ݲCn+#9LrqOKDѿt#^}xyګk0uӆ&KuxgߨmO(ݣSMvH>hEpJ-EqfDe'7L[DPv ?4x-[Mk4頺iLGS=^Ҹ]+gqA-Ѣs->t<h_ xz?tCѾ|jJu_?bi~ ]Lr*t:ϢKmcLzRK6% X&XJt,_QF_-(Ph=YavO/31OU^!eyI|,gfe7v-IY|Ź 6y6XJ"GYs@.Ԥ#(/l, {El,]~;o&SF\!2[vMTT"Ia򖣱ԓܬ5׹t@>PgPT@}>̀%'BlM4~%eaߊ.GleTeY^'_(lKZsz!/~.E|2=hsFRX >;U2MrPuѨbȎqv Yj9sqYQo%|T{Kv_/Js! /%b[&06Lv;=$?5!6k^uO +ӔɪKRb@~cn7fZWt*7%\v=ƕ"LuHnqä kju13ͭa-tXaYu"X(E•1ydYwlnտ5D8hp0;iEK-Zc2Kxcx0+x]^,Ԟ ϧ;{ 6`Gp:O8y|Y &i;Rq2QL΀pӂؓ2Gģ>$2'-ו^6ͼ6dMnqauؘqH#9FG(ٹ LR3O| \K~ˣeߑ;Jt?y_'꟫LLɔx\d=, +cؕGt~6v`N^Ŭ7l,5ZwOÔAE#G?(ͪUP!(WqP|f6{ 5qDPך4mF㗡vt as?khpQaTST+hRτշxxUrЗ'//~QF~AǢ_@ 'lnÃٮEf"y PTUK^Auvu`vI^f53vtKuE=h8F KvxS3PZ~. k1x:) +5U 9(0,K/TO2=^g+Z/KuR;ttn GaԎU;4"~(Ŧ1wmW$ d"F /w*r;3Mzi\xTتųZEBaTʰ5צBG#~oRlr+i@I7>5?&0S$@[1(xJ) ]ƜFV.f,.Z]⟪RY|}|=@fĿhю5/GDa<yƳÆ7`}uY؄'<**=%O%p}˭ȕ"c=UhCT~QkBW%~K׷gޑ 0 i2vp 9=@iB<oS]tiǏ'ӈK@42ث^\n}Gi.>=iPoYun*ꝞƷ)y+\@@KQ 6{*RIdrc\#qQ\| ߗh8]~;g.ply[,UȽ ϝV2$nʇ?烁9Z2aw" V*jf?;VJXL]]2X(byNbdQxbO=Ȏ^WEa×z/V+r]".ELJazθ1է㫼 S-Ahů<s?D@S%p|&m6Ses[*#F8LJNeYj?X1_r_E#Y&T9yGxPf"=k:|";X%:y +-sz^.!J5ުG36s@ޚ1n,6Ѱ#6q鳊/O~H^k΢5*"(3w-3k5Tkq5v{sŃ핋vk_d.]ȟ?0$,%(xXg_.g J +6p?B.iC r~?uNS8h:U_$bnn1mqSj%i\hlf& +gFQ9E[Kg8m?@YjJ)Ps A1ٺNݝKGG7?denvm J_[vԵ`?r10fSKt&3L2f8^ +8_I>G?-WІ#؏X9>9 |<~ӄ=?&S/h~ X rY+ a_P&Pb2?[<['d)Hkjx"cvkw cG]LYNUMOy;-YV7<*QJ IE x 7Fު\~ejihƖj~*X=eSgv@1t ^  qpVSEºeX앓KDUz&a24q]'> x^SZ( ޚ(wo o݆sdzYeھhrb1)a}d#R?kŰmj[UBTF~lwQv_()(q'CG5cacb6X|.C T9} gEZi01TrRT2u2 +r})F?J)_<~_! 2>`'PtE_;K\_fá|}=^; %ocN}K;Th)6a3 +#vilyvX_WM5`bUvC/ YuvҬ&^)"lhJ9-mqW) +Jja<[%@i9?+R/@:(=ޱC]$$fFD*I>=#W2-x\rVUrEn3D.ޓ_'@L'V+0F*jBQ1>Zq5F` e"ԖNUSeMK2zZ)W:db~|BSշ=q|sqϞ",!lbU|h +(m@y}[PJP|Ex=m~UiBo)1Y@[HiOo!rwiE+0o$*'2EU5m-EU"&Air?[E@(m m*WOPl $q"q{O$>s_(e('8mh|ہ8Éd} ΎF*}{M_4;Z[ ؕ]q2&]> {|_c9,8/rF(Ղ])*@>냫~KtaӮ(U)1>)h+.)T60ZFze\rZ0x<͸⻦9-?@x bO͎U aP)vB,i5l2d5$5M+vi.Dž#j>ۯ3Y+U%;VQe-ڏI΃b_CVex[IEѿ $k"CHnOc%f8Rˉ\a}Xڒ]xa5^cU!;=>Dt@QgDIPIsT0hB> }#ğb{gjT)ESm|k}UJ4@ ,Y/ԙXEui&Tf9Kvw_lB%ޟCu~KVCq3% 8yb[9"$^Fϵ܋ &43nAw0ۭY'K<|0"lnv=}`y]Bqts,K(;nK#p϶+ |"^6E&8W ҚL^>9tgyi| 6qX~UXYY 6%"w=lnjCH%o3FsT6΢+v fq}0%Kp<6>wdc^ѥ/ַzsTá/ +e^*[pX-UU~_R4V58YԌQU9eMYG~H hyvm8ߩy6zbq3 )"ƪ;+Sk q ގ:6nĚ.eVlٛ 7ƙpDM +Nۢ?f4^{5Lo@4|/w]?vǃQN}3k2slM CgUu:f{T mdϣVezW^[iutؙѤm *C,tʵpm @~-I|%5*SĦ@Ffngycy(`u!Nn;{]xKQUӼl| J[zu,nqo>DafM+7ؑԬߔ}8dH9eZΑnb^b.TlR&%7mveؤ-=-.M5ءpdNSAwҒԞsP[m +\d 8o(Ky#zsy{zᮆ͵5)ǜ8mҲyx_=˃$N ?DowB756|YKt<5Ʈ]ªr[plGMif+luM>f (L(q&J/Cuo {}g5_]z^Fg9W6(0Zr.; awЌ+ԣ`n.|Ů/oCdlt;&((7 ?-EHfl쫞wHBuӔ)ĸD/F` / +i$*ÛRU}[9 ik/rPNˁ%A< A1YmEY[ +i'}povr둚9녅 2aqV:J$wJ;c%]g}rvޭ +*x]U=K,Ai/GmBiB"o𖜮nqE㡁%\b +c%5>lD +v,A%_\ .~{ENQ7ŕWyY"i\.u+(`+|Ps}Ӡo&;oE@A)W US 4]ˤv~3.3r<;휋SVxn}0xVpSy>`C @ANoM}(MPFI>rE.2z˦Wp cf>7w_>ۼsnO=#E0Lg{AoUamgy<ۿy1} +P,(Xy4KGPri[/ڲ[FӦ0CZ%AE=sDNZ1Q}dߎ,2=[aq/-pUc@fQyPRJgv-bܞlzD_UBY}!)[%7xILl +O{=p{'q#ϱȚ6jlf@>PDel* >%(V["tx|LJtj{ۙ$]X\|\J&$Tx"Z̓&8Fu6*S!j_F[rG(((&9KOPey(zbPѤW8rNgǗYΟi09N8:-9݂듴U)4:4Z 6by@h! .[swJ)J')[WL_3yʣI:f_ 'RՓBͭNW۶n'ãy:w]9r7d&`1 +:{+鰒MNa7Y~Ư2TE,Kdws@1Jƭ~IE9  n/xLb2U:(]>ޫÚ/'v M`eWE3zAKɴ)zoKHHcxP'G\wWAqAU\Lv?Qik!N9[(ϸ}x\WfG%5!&q//ܜwm2+_OD<;L_7Lm-Oy žkT;0KR3ˌ6rf\e"LFƈh^Ď&ͭ[}?myzXd^%q^&Vxr3A}9kee S&A _(%ee;ox'ܞOw!jm_!2zM9rʍTXt;QY@ƨW->hT(CT¨шQF:ߙo>BtkԤ.ެbG/N +dg9% .m O.qy'|a^!NT«9idҽ*ӫ˵#mGR jqO׹4ڦ4Z OEhKYYr EJ{ڱ.ȥ$Ȋ#.t;0ӷMzS@°Iu?k7@*̃}Roչwu]V]v˥[M~\@V u.in67v*?4xN)v66h2{D;+{)1 2)o—zY8KjKٝ鞻s&O"P>.O:Rr:Դf p+~d',&B[V{"q}N%~ +f.2sTNuC,1EwKǕ*? h]xKxv%T4=8hK 5P4@.Yw o|6v zsu[RaYU6@aOEmy)HxfvJws>ꛜ4uxCϙev+Q! rñE Ah / sS"芷;h%,^َ:ZCQę7󉵗{h]Ne]vb1"!kz͗>O!m I0K %IQzYDAZBr~y'A $~ABLtT8]zƹְɭ]05 +kOeޠ_r ަCk( +(5((ȝD׽Α[Kؒjx;?%m:K䋔S'/6y}EڞӾTYлLsR= 5W> ߏ:UEkؤ֠'zp'F΄c $f5C̱MAMӆْ9|?Ey# #n?0F\'XPJ0 "ςu}/e sIM2a7@SZo3VYPAPTzDTlA^;laڣΩQP4:B<⌨9v3wZ'^}q<ב΋q6`u~Po[CeC-|5fd^AhT݇}w 4@lCͨ=#GzZ\ar{gK3V)-4ӱfamgt<[}oqy *ȼ_\Ml70 K 6N~OvߍipRK{e7u`(Уr]KU@Ym.!{xŭRQgPz=h Zmwݫ7S(m4ɯXrݏe6?Wۓqm|Bk6Hm<,ȃNN&T,n_ގ0Z=k]} (exayV8A}j-괟) n4YGW _H~zTfL +Yj Xߚik56!5;WkA } YXQlMկ3ȥJvt&}jt zA[8g%̖T얏֬KtjmBTzfNgo-3$}&}1.K}]|ch34_>ˊAЋF~wg[O#fIT-o:OycGt7%jKNߟJ'"W7ZZ45]ۍ:-vNoq!YZs:wi4:Jl=dej}/?* {6]nVA?'xm5(zhn=ܴ~ +,rc>t(5m_Ov $G_SU)^okRp {_LJkZEoY4A7g 57Mx,F2rK z_y[PtgcSB2C nˤ*nUVm~YMQ&vjZK9t2J@vǩ>,JdXY$1=Bͯ3ݡ>o-[ɤQ0"YZWگom%v.c*n1(01V,/&ZiU5ՕaWdI͕aeՇ,w\ؔύU/^TMODkbZov# +vh`D6 =Snʁ5\lYσ1qͲ] V-߰R6m'm^r=sD}:BRv0R0ԄѮw;abۣ:q\ Սi҉7@KC~1a֤Pݷ*vJmw7(ۋ4Nc\X۞3كDzbQ\򞮆:2էӳ hVi\v\]{^8OvՌooܔ}]3wύVa|'hC5RP^*z(QKȡRNt;jyv0WϝL>)y }vv7ZFNa@QK)h>Rխ(U!o+m,50{#It!Y/g)(Nm-V!5tYӞQ(;tV7nZ8VFQ9qG ujfQ +vr2y ȕŶ$ׅ\W']J */>gWvo~uqA7=~n,۾VXpѬ].%R_2ٮrjoЭP\b$QRQ!ϵ/Pk0?"8qaMp 9[~VhLnw{Y2 $5P/ɁsW&0D.vjɄ\UWM:G_|p%O Aqf4HwB{+'g\U`30\khfy+,rMpaRTqdoA yk$h Rk*{l \&z˵2';[Lwf;U]z]Dee!Ji5EFjm#цkJǐ=mk{6Z^zO3߅({Aej@4?DܱW^(KeDcqDAaej_cz pr'Ebeҋ*Jvm'a4d֛Kqȣ5~\BQ +me0@@̜ v (CQӂ ǝ}];I]΢\4 ZH׼1ux}paW]Om> + ɋq@5@ @H [ ڎv;rx_\e3/&pf.&fW4cĭgorQZwς `v?}L +ޟ֝|"z`%_Z砫C)4_4 P$z&̃LG.gi-nj3:c8Nw__fs:rq$LU׃9  }XIAR5Im<6 Ej $M?]j?]=n=}~I5wl_cUT{=Kg"jAWw";b;c %;@Uixv/Wmd +pj8;e6Mŧ{gUh| w.uHG;84ضMxu?3ܕO֖ZC@cPPBErt|2= F Q-!VS}NoM"aD^Kmy Rgoc7ON9Hu]0 hzN}H8"Izc*yD# n}?DvL7d2\NXw3qrjg@!JД 53K +pkxBGhyf= ')7p'TڷW#<\=mߡ>߰V[zx؝=͙-TZ١gn:/`#@5;@`d ё̘o|?wC] uQ{Wd'vc}R<!t3_FVg|q6N +ۺ,]@60 +4=2\'$χ(\sK yBr)_[cL۽֎1TG[FryZwfyBQYFwY{9nc+ϑ;&RCy䵎̪ӋIP+gu}j͝>ꣁԯy2U2M \>{AUt(fKaa6P֖O[x>߬EPl{T>gou g6s3=/ËE9=C|Fo[w_-ȮgE7_A>k@͑'l7؉؋'}1YUNpTo :q<\dc~+FN_q^S5QZrK|!y*:g򙆚WeO!a%O=OCSO- nGM;hnYK%@U~*7z^ϬzUa=;Km1KmΒa*=t*Xg*C*]A)UC2P++[`?%W͇Smk饛*쌇aV0s ߮-N֫4w2+:(:"8RrsRn~vև]k' T.# O'm?[jj!9%nɀ6¶3n1[S^6q}ԛf%-yIFOX(6]h.yK>^r+UhqY=cesr,;lbr㍸bl2/#MU\ވӚ9N=4j ykC/XKn{B=>a=d/*}h[#߀wNǪ>/LաH]2R!;k*$QDv[v{Tlkmn|DZWԜceDA[bUYtK5B0-7rv p@gꏷYf>oyGyI_Gs1گnZPV y]G(gUonYþɯeDİOҮ|Gr3#>[l񰛯 >g@ %٢\ +Wao)БBNW,-\O{#-%?QU+E'0Hލ(6U][iאh +kaùGK# Ŋ7f2?PЛ  Iߟ{M}v.^6,ɑ>i<[tp[h7Q)Usl#>K$s y`{Gǚ0)U9! +MLz,a~п/ "^i*!XXd??hA[ߺaK'3R[7ܜņT}åNJF`J($4fj^CzgZ.gz6 kB d&`#P/;-N-z6 +Aci礑y}HPpNيqrD/q(=b yaTLBQ3P0QVÍ8{Kpfmn=I7ܬG{Y_\O{4hѡyljקlo#.!6BIAAΐ\Kl0@GGLz,tQ›ekz+?xoo6Üҿ+h5_CΉ=i=,wLx+p=k +M֏0jy?V3BJ)18k^/  ,)i^/zVtpڟq#'pGzuQXetxi_>ڶSbe"lmhEH}*=Kkb[,PLp-~ >sǔo/?c{,ZȈ~k +E_JLαf]O̜E&Qj٨f9>{׾ C+VE/ ]V%̯=g\0|s9[Zs$pMpl4^%Sa\[;7=㙡}.o.u v NP.w{,`.>V<&g\!W +q1'fʺI6Z_6tvo3sr \8<ؒ=NZ6ҫ1ZN?w-3{#s/HwUH@=>lvvc%ܬ .biF'6@tGe +Еt4= Zh| 'S]C?߷=]  aRx>}.]`}]+eߵps\ s\CPKB̧I=n.]ߒ3f{:ҙopÇ$b؆H@;L,myQ`b;Y=Ey*еSE ڋ4fskFya<8Q{ls$g=4,SVF +5qx@[ՙl6 ߠmX%T`Q XgyLJ~Zs_ZŎ ? v  ȼbRYO"Dl*Utt<6ob`BGxm EA/aak̅GM3~ބCIlCƻX%}ⱾEdl9dr* sa$jAqf`s@PBF +NHGNZYd!%b3y䑇`g>b,O8EvuY{{#st)W rBVqJSGn20?9<07Q>Uzz 7ۛ+pJGgYg/rni[Twy4+?tl5~IV&/[@=EP=i7ET_|sU)0\Ҽ!ٹi㵹?쓒r S/|[+.^{6jΖTj=}> icWaT<{ܽ?}wJ=D}Y>-H _L FngM 2+~_.KX*}*@[`M_gR;ݬ +G0}vcv=ŕM:z >>l|Wۻ%Wy9rets8~ t[c@1v8dM|d832\Z0Cj5i\mK5e:zRŹ:=vv +mbϴ-wkMBl@,Ϡ?} hg[%S:1K "X$X/ӽ&RR|fM{tm?y5釖2DδNFB8:[|/A ;[T@ +ֹ$ε~g\<s|rEܠ:=+TZ̹}X/Mu6hlzoYyTr%` '<[@MH0fv#`w^m`/qSjcwgOu^~2$!jKȹ +-qVբY7 \nҊRnfT1T}wx І~c " H/a[hIi5*kWG+gIT$C\,;a#rW'->l &EfVlUffZC\E-Šnf^;>D䷀5nuϒ(,ѳ|^gHD u sU+ת͏*Fr6ǸOOAmi I}> 5O8*滿WsVЙ#IS$n.b{$re*B!q'Y+3 +A7XbНv}釃о=l v|GF.ǚF>M8ԏ#Zf&cX2U TLjBLߕÿ6N7z{t{(]b+gR9xMgJ_Rz~ wmeʰƭGS>}(_/}69ŔE%ʻDE*hdk38^"ΣčzmzXgή$W&~v}ǾK>͕tN"HJZi&UUi(~^:IJR:{c4azj᪢BܻVwc N}8$:0MHJ&J^_Ϻn}`(LF .?>(6_1e^*YH>(tb ++$iRre~ @1r֖].~y1GRݳ b6g։;nYtI2F.VR|*:*_v_PzUA)'%mϝt嫋R?5 RB{U#+"meKb==vX^i$JkR$Ι8.|1Ay.4j)4mʑa1tȶ %F~YԳ1g̩4Ό +?jK }A6֪Q',@AS*bR|.om~ޜ|#%5mU"<3G:=r-Z)ޙҊFi%F~?}>ylHG;FFҵ%;b*Ǧן%`$KNe8oаR%~ijjG1/fpP%zԸ(}yDjg`zRqkBcF'FW#5i7}?Ͱ I9''*W}{>o$[LF-&Erct*~wZD/D$cWqe؛:@ "=S^Deyydb~lD-7n]bg]Q>} ЏKPtomGC[S}'I o)UH0@ +t:_Ϋzr;qj>Tݺ[\f54BwrE*V>@@R ֒ +kcJST;,Р`C] x?6l7.hlchۋmXM) +3@L9'sXPyqȌHmIU!x E{ڹ-mdvj+X@)B`k=אn.[Ǯsm+t ~t 6FT&K#@U$kڟk-Q]G/: 3w=~I'۵[@ԼuU`wzt D 2.Wr1 [Fa?aE-T>W}D A /"W>wXsn -Y;_gWڀpNсx.#,5^J`)@,6idFNǵu_jzpj-Pݮ-.u\8g~?},})t$"@V.Uj +rzB@iǢF^\ӸzHB'oɣ#in^3 o\6P^3^^\POSouXOzs@=(#"s<rb^L⳾+={~x Ey}?~fy/\3|bW2}nb+~{yԬ1wS(ΐ:`΍&,Jrgˇ wSB|{tIrԗO[9WmW#S;;,1B.n-u0 9;r-¸aRl j߽4+hb@,x[&Hrq[,1ε^x0?;(ؑiUϕXzJfنi)?64eGϛ5d 20wٳQ3.ݣ|~ mXO?ˬeY:*b*0n8kEgs>"ѵJE:rLNS&# sAK e6)m@ZD 8ĴږV#`u*> ِY>l7qedfa3iI*#|5#rf{])vO$w.Hݾu{p[ ma0NbajY 1zF'i~˿]ғ¯wT3}nE^/]cjlp~wh8FTr &[8:{\޻\[eԮzqˌ϶'6?{ŠmJ g&6|F8ٜkodu6{샽}iw|e\@K,Vg|sa4~S&ϠJ9%]uOi?Xbt +tDov-$OD2VA1iH -%ȪkI%Ak7ԉ-VW<~ B(z8=vO <۩ޞe=Ȣ֪wv~!`Ņi;V:Ʈx׆k L,^FO^~_@/n8 e7o2) {[## Q4>$;Wd<ۉi2}f9JU0Gˍh`Oy{_ƺO*Ƙ}V>1{-`⚰i/\7 ]8AankuLa5;YpoyKVbt=]o-3dIU~m,k82泜 vz5u8AhU2}[; -ZcX[죶 wsTFXG,o0ۙ^ٰB6.FYF#vvZIANQXM~{YEt3o'ZJ?2iߖףuHt5D_i]Kל5s~,Һ|ϴ+b0 ɾWB M]9T|ݝ7 '_h)ϷLNFIMZ=O 'dYJN;D"++v*|vPKX[_on,7Ns&gqNJ)ZGFJ<~+gp{kovO&><:P%wh/(_L!cZxJFEW^۽g@"yt)R/kKI3U!W5 ebtjRjqm>R!Ȟ[6hmdfm2&}x3 +trҥڶ'tKy/Ǣ{\AU? K'~ּa HXa3b _phOT]ސf*ե#:3\rGy~V#b-mRGE,\Az`z)$2G҅W RlZ*n8HՂFu>s9yrts#85XQLP%s-r>$G!.dTo#y.iU]X_t>UsS]\StXla@"-ӉBi nbị>:ƩÚEe1BXA۬~пF̞v|Ax+JsV6*ٳ[<2#p4% zDUbV8\f +ڮ,m%@\xSG9LG<[ģ`23W\ i!W.8@A]2dl2dQ# SYͬ oS$a sH)H_ kǹ\ؘ%_їhCM/dTXddQ4~fẁ߃ш +^˾XaK-*: R /Pm_Ck$qٶm>_A>",EVX;PC PDn- dnd23 +2~>0$:/8SXqNLl">s<:K&̿ jJyJ߿ +>'cYah ՍBn>Ie`ݥ[eCd2g#1 _r/ICǥ11/*FBH"ҡCzEg6@m`7zsKa&@jJ6 % 6"Vߥ(NBwa7I6@VsG̟XU`?+Pu3:cK!ۯeGן) kmA"bt46`=97׮v'H21V\X5!?Wް(RQN^|r@jNŸ{yI?Nv$ fлys:&`xH-X#(MH 6Ghwqo8-@g|i @:&DL+n?~=b8#nlV[Ӽ6GpGd"vO 6Ē~UD#q #6kdؚG{M>{ O!.)cf;Ab3>\W4:Ϲۅ9 Yzߥʮ➏/*.eEH?U{l 2н!duڳ_m:k#3sM!r$E,sXcf6O{ZLo9}2X|m+ך?K:+d  Ϧ<>ô&$ Ou [sR^?K@$>HpӇ*iLcwBo}߄{MU +Kře]`rr -;r +< P W9cSppF|tԾ:Nsop x}7mgn}be?j~U\4>>/% }5܉WԾmݬȉ55kϿa5y! +dӯdVxtdHh8e;V|.$}+l+rDD[#}|I 1756_i*Kk< q\%~t~Y"sF'+쪓%b.&e MRni:,g]s XvᒿΟut_i}^IHJ^8ݸv98S=mCZ.3m +7yv|o19!21"N-1tJg#?GN̔k XڣrpZ;kq+[~Of<޽,N3jO1jƥ+mxZ/Ncwh1L|L =-iy8͞_fs$TnO6u)-!.jFNj5UBzԓŲcݽs_ËOr{eԬGͩ9ivd3혚o>'z%w57:.ޔLA\Ɓ/ PXr6;rv򎉎;݅6`Yp:%{͒͒7W0 湃@iZ5.LZע=`\ٜٝOx6>աx'"{3ny_u աРfE.gp&3yRUbgLV,$~mwId2Ս^V<}" DW:.H_DऽG>ghG =Y< F(CþNCVzF r2>;h8 \Ai& S9E'rO8Ԃ\kCo&K3ti^&S·?,_=Fi^QN3Fɷ^T)*J}޼z<>6| ^̹Iskwͮ^Gv{9 +9_~7A8CV6WX}cu+-j=\;;L/Ec|4ے>BDn+$Ze'Q ڹch~CG-s\ Œ[A51ZBKӍ,~u-hPO4ޢ!yǓ2} R**;R@$^&>ջ\.#i;fjh?D ʢIwN#vN{vnYS:! sU,W֐7X3ts0閍h",ϡdQw/_C1 {.ˋb[ΣFmѬE[=W heL/oEZKZ\}z|,{ec-,{Bzvf7n*7:JN[i@z!X^ Ȫ7h%q ܰM2<Ƶ^kLO<-  +K~̌ +k3}dda?ʅ&y˒C^5{i1Q̂N"D{U^tH,5jhh{WS^j^x5jVe)}\!L'b rv$kj Dosk_DY1n +{VSR${XRXtf3huDi)ף-q;:>[mKcev/╮U2 S[-</Zv1,`} mdgW|HhWv[9BNvVKX&ElDp<vn ]oyDngJ3TQod/,66}3ESY|np #枝Peim Z*ԘqU7VM6 i; Uٕp@O%tݿi]O7rYq=rh {r4&$nXN3鶐aȜa}׎22hZ k\ V7;[Be0p+ B$Ոݘ"9jj'0('+iOL#=HFR&bH{ēĹAH ~po]#G3BX: reݨ<Aac峓e".%2~ފQU;G*hHX6#4"!<.vK%oScJU .f 6Ƒ $ +[? +quwf5KpLpٙ[*iaܵ|#zd_QugIH.+&KiK3@J;0 >)iVv# OC(_U~:.L`Pkh/($ٵ#l=}14CXMb8,oG-D7+Uqz8 Q6GZS!jP*@O™l.y^~ 0:@n,]{Us+WS`U92+YJ%L6բ*XtJbXxx +ĄT4 fk&u.C__yWF/l; 592uҾqpiuU`J8X[A+oYR&>&xr*b'z^2H5uoq eJ{G~/h3oVF  @J?AJ`I^bLkM]ym/EFC۬AQy2v1qc4|"Q팎?@xȿh:@zj }@܃)4Aэdۋ$Ϗ7?S{3?Ea^vS[ί3# 8&ϻ߀b?X2l6Ok;DzKvDO&G==x菋s쎛=N+9۲klѪ,G/8_2``򑥮O9|#4Cj&: JQZݞnx.4Ѧ1N]?4,6 YY -v|~]_[r6TX/_h5yۥ gB;wOι_StiD@'4QmܾF|[=Kȯɓ.Vih5Uf{}D ?*w[fz^>.٩ -~mw(9>8fYOh?XwP5P [FmGǭ +e=\vqe4$lض6`L\9~趂ϺϞ_z2S9iLKjT7nĵ kh"57ve?|֯i(4)}ɇx}2^aNNMI(kXvww4یYݓ_eZSyWI->V;БM^ٍ4d/9Bɶ@FedkUn; 7w?.hSVd\%e*sҞŸġG-zL't7auwsMW?H>:Hotu$y  +U4l> U潽a'QjdZ{ȧnfݓMqvlbjbhllmwL}(/#]!k)bk u3rbK/_% MOC2M:t:"5vNSXSYb\ ވ{u=(m4uwBtqxhV;X=r'A"Ag)aWW?Nv.hWs\]#/@ PfҿӁzs8Sh@YiTz>K7k03ino;qFFΖ@o淊n"sZp>Sqk({A +?7FٜNuaЅ3V,4@$0iqTVdqT-ē/ޝIw%m;4PjAkˬcOnqq[:KzT繦ฆ9xRemq:_v^{6aǶԕ`ܑ?8:Bs Tfѯpopi?Rq/6@WG AmiMV.PE{z`:[z=MS)= hfzQDiПbR^Y +yr<۵{w\ +*)\md1\ +yn$kKaddFy`qX9~\"i"RK''KYjߐ\s +5n'TR[VjO|VDݶ׳]Gͳm8^8ՄLo: qƅff(rrM$×=-lOC,Ux|Zͽ0jA[/"ۧ-<3j3wu\Mf賮:pجxQ̿xmܞ}|)݊R̦Gv@mvj|.Yʍd4o"՝΢t#B73^8Z)1r;uh +[ n-|Mfۋu:FSH>X=Z77l)Dv3IfƵQ?XMCda,ÕRoY^[YWjm80n3MCs)"RR8bCU~<)&e&3飳U;/}ַ ]7Yu>'- +{2M2sK7ۭZeܧyi[wh(J{ICxP_r]ʫ9fjkU7V+r>^4x@{*(cԈ3>7| vl5Uw;3t~H?ѐPhI8liZNjɩfݤ,' +h[f:T\O)J8lʢ +"1QsԺFhtӟU+x f?x/8Q!M5k.!U'ҮۭUyŲFLf(ŃoT.?MpޗYl +WvX(?0;0ϟyj7Z3XpE?u:.gv o1}^l˕OhUÔڣB[p*27Hsf%!T3™'u/L[uQ{}dq^:l4^pj;B@Tm*ʠEꃦsjU|Fh^UBbP"0RCg 8$Ϩӂ GGuny\KϦi~a%W +|?hN4Aa0P\mDo"T@ҷ,} hJ` Ӄl"$K7m}fiNɲ8[%)w`Y @jPSXEt8t6@-@ .lC0Cq\d!+|bU ,^6`&IggP\=St $PfLe&)*6?3@R4@N( e̞ 'D+!F&mW3 ~ovw-7as;E*^ ʴ@7a4)"X$]6ۡSR@u s6RuOt\BW^bi>qzP{%&5v[˳x4CAI3R\x<߰A1ހAjTHT[T良$}o^>{z=q2\SսW;]w~0kC!EH}&VR `sYj۬Q +68n[Ue.^y Ze[1]u\wC J2tdCs7=k[Z؜n !Alx }ojC}iZw&/|VӟӍװ\8JTU +.WwrѰ:Z9l L{,P>zjͷXMutUǻZ/4G6Ajk}3&L)lFQYH],'3›Jq|wc;d!G}kM|h>x 6i_ ĒԷ7!H< |"ǍE?g}dny$dS-3qO/}ܜ$@O8zN9251khUGC1?H2ǁbGe +9eu!Cg7J/ +_~>r;g̓. d[zYckYg؍vqi'(~ptܐn8UIv%S&VR '- 'TB|}5]ƀM~`} amZO+хP(fû;vOcZҀP?Qy߇3qjF宍BG@O<&)!̪?^?b#,R~K؜ }p8*/aC 鶾&k?_:dݱ7$`pbՂͨ^.ʾM˲Kޏ6KN-vs +f6x#ݛʊ{Ά)`F"?C+#0-k漢o~+TftF^ڙ6[5;$R8_;NI]:. +bz/o /s9]9l6UkU|G0`E e6F"vx믝8zyg53 cZ^cj"fg\fQ㽜 j-A*{^"^|grMvDNW j?8L>R7Ʉ1rt_ĀBårOU<5zF~_;ωBKXo53V9eMWK\LoO=`7kG2dwk̉(:pt3>xt-1vXo* +94q?v(Fd+0ř1(ϻuG 1eV.TgraY/6"3w)NtJ{ȶž^=?trd˷`mWxn|+$g:w6]12.,5P~eJP^ƛM{`1/0)G~hrf\.:c/>&b/Q 3C#klfO{͕rw[KPߩnۏ`~'345ОT̔ endstream endobj 815 0 obj <>stream +b}fc=Nr<>*lL^py/n +Z|k)nՓǛFq,:_Wd^^z(L4_" 6ܗzdU*Wz.砀ȷh4)kU?ܲ^Z5~V7[jb^vqkM@e`}gD=߸݈GP7YW1MqHE)U%*r@SgYwv=j 3cb,y7>_6|x۱b#g x3H_~\x5!"::_iyyZf1=AWHgsd-g;2E%SʤN.܀Z!WhxTq3/=_tFR7C^Rܞ`$&s{(Jrk2~^ty^o7AΏ?x)U{778ABZe~\S^%̄ASbLC|C8fg9f1bIoFS՟u']8@3o[1爦e +ҀʴhH3Ə˛k*5f::rC`# +aY|uf]˺z;ǧ0ir[::O<"8XdљH. h׸;fȋ JZ,ԨDOԻߨ37jP+ тN3Cm__H q)hcM$O>9>q +].y1w'aY`2 nT--6[n=!|"y+$R;_ w>7nnYvQH>3|K>(`+/yB~@R+Bu qCnNbX*0L l~߲W3gBS˿(=(ce/ic(ӏQ4@"HbU$!]'7Bh&q|&gڢ VMQIbqp$>H1iOI?QC< +_e]Ilh;m @]& +3*@fy^uoԎ@$^  [OR"&/ucOF5ҵ/FS7U`-zPNLl 5o=!m sP8en,*C:Mx[%xGʔ<䙫cGQ谷k#ڐ6M1ѯ/G6JJXG 6u(KT1@UAKvv +`2sXwf{<}y*=8lf'+8߮xWl[QҤKo"[NJ/*ͲyeF +B\9 pԱ`#_ҡz|~PBk1AǢ•h!4]3Jҩ +"9j׸wCy+ƾa|yP{(di&F:aQOGK/-,% ;?j RP\3^.pxm(5RbҢa3=Kq}*y8Wj=|Ɵ]d`Tb]vIܟ[SUf$.ݨ7fM]o}n:7R&2#.L`Pз~ on(=S9Vbwؒe5E_jbe܋-N&}9k"*Nwv:,:Nc[D<HH?e@p019'E&m5.;µFu]k2q4'WQ>E!XfzùAn>9ӡ;,1VouJ `:fR[fgmL | +jm"a{\?XԷ"^.K[GkT^Y;Ye + IswFֹXS9-)t3S+ 3 w _F:cATT &0'/VLܦ\198);f8kXR֗ð@-l0hu9=Jyžz*k"%e+eqv{cPzAxңSiѾ>*˪լ/[ew!/I[;m 6,udD23P` j=M.}=ͮR&PFc4F")hZ5|7Z=5lm>rmȼhH`v`}95+Z}V:?–K=S_VRlҫ[#ǹ{׋] \fxpawma;TgAgvNZum\+_Tp('GXHgvmܬz5E7GL&[3U1幆lbvӱrqW:ųv/v }Ut.Ir?.ə@ə]3s k@%Hׯ{QﲸYGj% wɯ=Tܱd˶2}Cڽ4LxP;Y'<ٻ)~Z[dՐS+R[J^> iQP1~Y0E!ETio&Y.lg1_kSEi#G=[Uo-i&,TH7.riŬUxsYPa/\JMWXƊB$_5p~tqmhdw^7Loӛ p~6]ta{ мo*4e +!8!,]aaxƱ n<㎋ +<()>y-=~fzZ/z1T,s'n0BNijv<&[YD.zY[}n~m4 Meo(Tr~}V>GٵTP1 ?8$ǹ_HG(ib_Gv99ɴn%Om96~i'\(b[{vv *]9}ICm"اg݄\L7̐UfXj\a&e}bmЕ\;1_=뤛.;X?ߜfxphLvh`ùgJ' +zYfq 鮈 \ .Ldiwnޛ) +v625 ZP.V85oz̴wG3p UYm_Νl[1v-5#Wh=ڹz*"ǣIԍy2Q~'ěbgɾY[cL|CR;'Jgjϫt76NIXuI|$[퍌7l=1mvyy6- mϺӘ/vA_uwW|m+UC+t)1sd4 -tRoUި(\|w<.s BкhIb}aTMP7NoNTZUHm0p !빿ؒոR[o`rLૠu$*dO!8 v+ 5CT?45?y6>iXYHN>aJ-9գR+g"L\\4eY2a%R(.+Z[Zu3E>DLt ' +%O#wdii+.LZr/5?m~s_zvhRf6_n[HS+1}C &gv R_(]X79XAguܼ)zWwPԲS [[6ժ7v"absF] uר++|ٶXr]s!T?zSP搱=koFh !_!B|m:fWBM"J$IjF%S+\Z5| T؄HVG aB*p=sq픭q/&՞I)}0J"DwX;har %,ՠI^UдF3wyĊe3f9<< )ATke^M~X{!BD;>D}2`zwX;,x0(6(uA({`yGtEqΧztV;V|;t؝xXW7*buMj\B"@= oOvZD~F}ˉG VV'=:B5}`.(~#HhGI0!!4Fq:J3s׏_nNHp@ + 8+JI'k(LdaH5H;wKp_ſ"48bbJR]%J,'[(J,J)J+ +(6o:n^vA:`(K.!22o. p5]^wuw}I#q~a_=81>،CMbCCE(661Iwi+L>[^'o{ͯ@Ňku;>uv|h&v3Jl':߿a4`fp!gwu83v[3sczW19 䵎x[}# 2#DƒЪ|Jxopק[%hcqRlɚ^ +F8c88sr5F^uQȆŋ3KA«zrn\.;G_hxeE^8737*EӹPSk[1҉‘LÆLn?rwx"=$SC~J^ғЅ ^ˣVtK? _ w>XRIuSe0Ûge m Mqc7h{!(gv^ϱoĶn9{xOi7[Ks ӋV98{ 87n:tr KŨ}.i>\0TsH-YA+wtʽ5ȮolnxjQ9j0j $LB[U  p(W ~ G=V횧19))S@ m>mpBU50^9^= $"Z!HK"[;?^ssvg#3s_3ޟffeIK!U(E?l_oݞ>v+0.I)6U;[腀#vXur"k yS͗Y/h]0-'h0o'YyueO:HnZH&%#>W".S h)g=νşl/;cS*wڳrhc(mǐ&Ju[NڪɥŠM1(C1~٩:$}VEΨӜ~ 7A;D0><$99}9J?=4~hsy8iq/xp^7=3JKr}cUxJWŖƺwfSm#bIEuySm=Bdj<U@v|*'p-:@5O|u΅O2wrM7Mn54Q66j˔?bhJJb#1H UL3 b"W${ +&;uـ=#K%gy]h< |Ghpgm?kK;粵!mNէ*?Q#{3?yS]qS $[ ۑ7ߐOXVMƣ=>$=7|0T^bFj'D p哙 +i%{1Ζ̀/xm 2F$@`~] YY/{ұ/"vnG>:NZNmͯ,ѧ#ו2Y}+Zt1V@OݼY $U:yE]v'Ek.?D=p=|g3>a=D&{. SN#ɾ?ȤK$`R>}6#@7vs0KLk5arl׸XW28C}@"a“#$NXY(60 \Hl&7s.}TwUE~. h{}yᅣ!se0 >|>(q?r4lC31"Nϼ ?2FƏM6Zΐ,z@WOYgy.13j·7Hl0Z6 )R@^U Ͽx%/[ӆn,:rYӑzéfnbirW-o 4شMfxe=CT&1tbƒO{͓8(&~Qr?'nۻafZN3ŨjN%鬴F0:+ɉ*7g}e;!t9ClNdn$MGt7m{N|2Ew2U*肎꫻zemϸn]kjlD[ՔP۾f U$U9WrQr; GWo#[|Vb B G>%Uz&ʺ- {dsc{;n:rǪW-Zޫr*ʴ2o)ˤMr*)3ZRFY^t*.ϔF}7:g*b\V_:dm=1} qdW{[K3qT9ITj=>h!LAH߬~Riwal8ߏ[X>kzxq:EaBwGqCܢpAuU|16kQ +I͏snU OvGUمk{e[)>gw +ךAIdҰz# x r3}P]fL a*,PhݠSeL\?,ۺ)oj~8O_d[F$걽ʔ$.hF ,ܽ1OfYq&% D. -Bc 2"AdZq +/f~*;_:\/0y$4S.U.#v4+!|j=_99(D٧⢙ySL ]XpT! +k;:.};A$hC5q("S|6J- + Q?B X#nW7'|9W7 ZRzXWu" ~s/(y(:u5wbt"˼GQG3(|<80@jEx,ncH(abpĢh\b<`|C?NQJQGk|o{Q(R1`6FH P1HjlmF Sy ++ڀ%+60]^0<0b(L_lAߤ%@8%%U7DQ<n3 ˄NG " 8@YO7nz}d?_gqXK2`Z(Q2ěQ3(A| +% '#%L% %SiLBcc/sgWIϥ^vL3}/17GtgdJpqy?=Y7S}Hp|r9+ƙGLDp⌗Eq|)Q8#Aobn_rލ[n^,䇕&۠x s +vn(w7Kۅǻ7"sMs7=]?9'cqV]Z~: zg$OgIx=y9 [&Gi@aS@ܞ|r]7]O6oXQa-<,RfZ;YsAx}'U8ͼBҟɜYꟖ0>Kp^Ea wL/줱1ޭzʺܽ=ͺDVfzDckO>4okPidxr}G{8яx>xqM볒oqܽ[~:*d*#nw3vweRĂT{f2am@+gmHډuBnZˏ^\Z881D7,>UyzOMN]e79f(F02w3btlLT4eX7OF;C~}CouW6ܩ8sVtԶ"$F|AOlU߭|A;8&}9!~ 驅-V.UVh:Ϙqʍ]bcN{+;4CrZ+x ԖRՕ ,,bm]ٲ?gskhvdYɻɲ؝r5.MOQ/@\"}h18G>[,2VDs4횺lz~ QYHu{]Jȣ=r +|A%[؊4>CetviO˜_?9fmnyycwJޤm ;k&rUgulK%~6LAhS9 ͼԕ/gZU;K)Aɧ7Li@w|!m3Tk-ׇ})A}l)@ǎ>{hQjYI +zG)r[mKIMZL K@y-羓 i{+ƞ+r=1 >ۧwz^wڳxci^u{{TFeEt=^|KJ0DFکTL'P|p\޽Dw=pqCX"3+©Rk Z?{}leFelm͏O-ւ'am1 h$$ o ÖӜՐ+itmط0@ .?<<ɷG{Lac]c ´ +mCbJF3A1ŷ:L&7G%0rR=n"5z1a:):L5+LQdv@<pf57x:]m߳IZka.*Dq;~٧ 7>8OGc].ls.DE,3 +`>BL;i@vcJ܎vQbJ0oOtf|jr[_^{.XD݊ &i ^jM^hzEgT~a^dG%yy~To(.~w$}xo өLVʑY[\SVFUD$4 [ɱ9鵫 >4 7N4dry>]4US~iR/d35fois6}*Pff2*ꍞs `LxbXąCu1z9H!dՅ⫟`Pzd@D{;T{z1:HvbY{Xzq~}Ն˹qzN1nۛp5{~ at`c"SY䁺h;y_>SB!KH,b=ŇIR: ﳸ(:AAcdi3O]>-j;7xZd~iEI۬n s+̸a?јYjTdKk`{E9mtPǸP' nW:պֻ%Oˡ#۬+<斫J ?s3t)p3rU}t` ]]-gvWըNadi>Y2wwׅ_S^^Yʭ^[T m61xjdh2Sin{ƼnZ[\ 5䋬h +5Rƈ},$*(>{ELǝRǼ͕ńie޾:zdR4>\nG:_kt֨1uZujbo~`bQڊA%S)?sxdۊ +C=ƀ/MuNږ/7ө'nXMs]Я]mC?pA:OkQژDPlyz"r;YZ: ^Z< +z-VKT4G[I{F: mG=Cr(rQ-c'jDhQuI\Cw[.:袧:d<bdHjcq= OqOޙ;\Y(\ڏYs"r?ȉ冞;c_զ5h:"~S鿉@tc5lVؾWPBworޱ-CsJ3ˆR֡ +ᝥC_..*p;w8P7PMMJM{m͌Q'\PT*ţU+ '؃\:ރ_f_ !< "B1 &DU"G" E#@ +B#a^LHA#Fw'XWX7ƿmwZÿ?h1_S!(aN[mEIE1xOkQ(=pDC9XEѠ2H">9,oCn#P +uh>ײ#a_VG6ټ@T(ɍQ<@'uD `Mw+-0@x5[l[#(M߆kfe5_QZDwQZ0qDk{ %+(>6N@2 +Π5̥Ԃ }P@$L(H3[o]Pe}G-(B .}Q:o93J:JXOLAmoAyN}V77c{JpP+z=˾x圍!53O_{kiQ(7EDݹD@DID RoDЫ saik0,8GK("g~y?TaRh!ғHxͼK|ܝӍuӬ`ܶ) cSco>i vQjlQJ=)(7?_]|Gp&h?cl wK(L(kn78+.5~ t1l9shP{wA]6ήg[Zq-5T@0"]">Gvx0г:ҵo6ϗKw ܒGcqJ=^Mnj E!*d;UVa?wKɬ7q4Zř63bXIwwdKF"y8*t- }ثqUv4{yJٸ?78;F6O|1݊>ecuBVFcE7{[~0WWCLf˖y*"/҂zbwX7gϊZ>JꗥmI_MlE285/5V9Rt,֬^\bB~4?L+Y:\qܦ=a黉Y\$ι";fbΖOg{|{ZR~`g_/X"FES#vTڋ#SrШ:&"5sKhqژ24-_]A[UmS)O'>t~rũ[dK^Č|,Z,o ^;Ӱ=숇)#KN2e`+Z7o_J[էKuzx K#+hvYm/4$BIHNJ}˜ݝk+W*/ +JHxcyd5&VW$cR L nc_xjqƼZ.da5uecH гUj$=fbf.;_^<ϔI\%lyGJZ BUechI0Wa]\/}:S=C y;#TCΪ.ac0﬐Xe{E,ǟ1 +5G}W2^d!fK!u9k*i*=1US/t$mԑ$cN>H'C/+\%Ji^mJ^w~7a㉻ڕ8xvً w'2| v[&]L\ai7`R0dmޙ! B4Cv@>2Yσ ڌ֪b|gudwѢw9쵅#c0o^A ?bِ?WhdG-sHd{(gN':gpzk֓{ { q4o6ZuZ'͞Riȯ]٫>?ەc%v?iu;}'BdW٤W p +ynӑ(2M$3 4"Z8sO/KuߡL8=ccTĶ:q#,8ۺV5jќjf&rͦgY3Aϵ$!S8浪Й|x-=_ċl{q{sF҅bg;LcG.Fk=Yk>2qC5zQ:1j z4۪ތިfV\yۘ-g)Vk ,bس٭0^n7QܟzVÎbhNjv{#\ͅ.41l,XuoZJno* ?p-~ +{*.jT + v\'Q( G>_絅Z;Mmq^f|JWw g|>N;Zuw@”.Utr+rpoV)7 |O.WY +s~'E_44=-q[xk +K?;(,`2Tjydhe͚9A;{ L_ +mIVW=V tV?02Zpw}Z;sTJ~,.turFA̝Uptg8[_7W茒əQP U`sYG_P֝h-X2SLKŸ͐]lb&.F?Yxx*+D?I^uuтuC,e7I'POo +;A=CGŅz|怳/\ò-'\ l!2uia 3ֽtw|_Nvl!XtwOD b !S؀*CdUBpy>U!CW+ov޺EB&`DZ7l3A3WD +9ӑT i_VO-Cdg'Kn6!DA[Ѷ$Ok;vPѶF ̂XD,gWFQJfQd΄(Ep^EQ(b߄?2=?FѨ muq|q,hy5 +YH*UJ)QX>F}b!eB/`@~Ϯ0#-"+d7 JgW? ~?e9Ar F yp/1z= *gxo>^c4^<~m9υgs;DSS |_#3,G̓c'k؀du)KNs?̉# wwzq۴6- +(mjJ&5E vFI@m (&'ggYecїTWg>iϳ*fzeuI|6{fckrT 8/ni<z(O()"4}"{!F8LzZ uܓ?`,;-*?vKQUs z˚f^?ZǴ[ ]Tش dj@'t +d*3Ca/̚⍐E?gVFׅq:u#<-ߓeW=^5 BwwiOe&zja_)7^+ ȮĿxfD}Oabaup9 Yk蜙Զet磉._^7+E`lilЎ[E?P!yw>n)|qv6+ڇgN(>Fgfu7Uy |jZi|k֏:Wخ3NRѲc]ژxjZ@Bni[Ve:;ugylRVKK7. 33O2.9e;]P6״HZ~-k#u?CkElx;c]ErW-=:-t=9s]1 piN|5M03YYH?>?tdՂwȏrXKqBG Y}.,Wv{Q<ѸW,Lk3dFM"Jh6l>6|)[Aրo0C+}uj*2^^;|q\^_@:Υ> 3&~r^Q?\x.9fnNNm&~jojHC41rwrͲ'\^ċjMɆʹw>sQH*pJ{.2_hCcq Ac8/AdT7cwV-$K^q@'5UVLSWuStE-}>jE#Evoy) @]Vd0\,,v-Ń:~$8w,v4XTxŐm$9vnb)\L"F!ښbMuQ ^ûUNȗ:k h}$nɳ'"f%|AK`aF~}7G(_uRبOpfc{P-9݁uqsP?3/ yFm tg~?ǞBs1͓+oqZb~6`ZBi ͭ$nlM + 2qcjK^ûo'Sʺ=c/e=kQ渢5 S^ FKrJx"N띰5RinNd\kM~ 5րa>ݑ'ڳGg̢Dt qqfϞQZ'~q7NҳA64PCEMsU%Krhv񛩵⫯ޕòms/_eB2`º 1!kXLag )ub(c@\x2kzܲ XXZ+1T5cUU~OYYe`i qn8*BX6yRpC M3q[3ܪ'3tb՗*LV]hze1+ɗƘfezp8z$y# q+ml&nD][GJ/(?[J^r ϛhKNOze,\Dcɞ,S Oo;g,>RVrJ 9' ̱f[(@ءO1ʜ^ˣvj!frCnAFCBV@?O-8v;C:K1 }V& 1I +Dh]CTPvo_w+4,veE8z<s:rIaf @u xfԽSerE*?PeheVb>>SկnX#jv h^#eBj +9.(v텫23j?WTE +VP2Y)6./Nϲ KruJ{ٕZ Zڭ. +FD;7 +itE+|'LgUKYMbth\%%%dQ LHRM{|Hb \|ԙby oMr凌#S76pI{->,upw ~1R1#a6Л*towQ5%j*&4]Rx v*eqf7Y|&gzxf_TlU_?֠Ζg K/tFUݡ4["Sl6/mݑ\-+ @*@ 2 ;_h#julW-u1&Ʒ_2T_0Zo1hx攫mM!gfVWePjy\[mG- sL^Cg+kMlޠQtRܿp}?4#7Ke}!.(Ryi_-Jy)Q@Y䂥<0`R`0c +0!M`I&hZzAm8t@|tKV/,Z5@X<=W(hக >Ƀ;npt]c5`~?jet1Wv$Ϯ&$IM;KXQ.)CZq37~yq-ZϞP:cz +MDN[xt0ݏ4@϶NWRpn^kOZzPH&y#y39VI/2˧M>b&|ܴ=ܿl쾲S͞|q^:˻ ^BvNj$ <ĵAX+l&[x_0neܜO{rfƊ$sYK^O;c,\ڋT烈yN7&ɏn+fH" w 'z3CsPˇX:wk쾤Jn.t:k Y53 8Ѩφj=d ɀ_S&I.џH7*3vAC;xnxtR"y? 5yE[:7ȫZqfH&,l'+OƇ]YnE‰@7Ao~k=u wjخ߾/G?/r0,C_ +םGۭGa! t)w*Ĉf͇qpDP~ =bu:'tޚis/Lý×<(VZfM.8Ysl\BBj&Ú"m'98( a`3ϘW;1Ͷ̖|6=t,sc3s>CM;X0|6mL"a +@ )XiOXp/.Z:wc9M$ZQ67\.Q|_h菞׸gs-hT c?5װ:c6}mnȓz!>-[]+ܞj1VZٟ +A if͑9y^`58/,& +!jdc40Ol*uݯߪAq+:^w$קJD%M8fl?}z@t~YQ/^ ~9*BL9jP0(6#B[mkjAq E >?tcϨ?[/z?ԑ:?b1Ha`:n0¢2إ ;]wGɕOAH6HXp,M[v[!K~;)C  " @~# Bqb|Bؐx5w  rIl̽gT]y?paĝQ/3|vlꠗ̸G<\ VGM7kɲguHfѪx~.ZUeدc>Ksd^kօ~싥švFOa'``HcQ2UF[H(fj"rr6=ʈUlX4ă`9jyVy%ese{yMg,/bK}va:èA?NȢJDz6SQil`?k6\ZڈU˕q-vb7*3E"Q +]t,t\S;zd:m f x.PaUlE%5ps|.$ꉏ6r#ƹ!ͣq^4MR T-y6*RI;\_rds_FP!_C9vr0)0 )_*h"RmU $Jz;'lw>S^%#0/bIDŚ6㞘(;=˃n9p$>]'s{ +Bxh\ &p|(Ù!ԜDW-u~-`d|v,2D?j-F =_(=8A6 8s~$ ^nD̊)H5E$RfsW :#JNկM"*.~5?F(i7?J=IG~/.O*uo rzIO޴ ?o=;{Hj*>ipLٿ~Л/Qtܴ6:W'tp[1*p#k֩5[ѷ":{eLZev)U'rr?$vZ2ؿUŁ?BRd]W~bLVGV_N9k岥6ۂglx(z5nYCT~S#h>+j ț&,4KV]V:/RP ?'L$I$c*^۩\pl>E*I>:l/Krbx}d֯Aك+l~*.ҵY/b nhcXLs]y2WD?/s%Oe^NiF$Q>)K3߇jWV#s[! +?;x^mf]/f7Vn- cW%]k.3s,Q!~ +mEvk/grmtcU8sGe1,°_^iÝY:DռK:.4]U/Ud\<džXkk(Naa̻I5_gΌN̥nhFvm_d } S֬Gpbh!z%hz{7uU`߂ݱWbVԒ>YE{|]񖐱!M}Lz/ksr$i^{xoMG +gz efz/ ܶv_ _D/CzkEU=)ۓZ+]\d+dF 6F3F*meT6ZtSWBJY"VB&7Sӭ~~Ɨq8 +gNv74.ϡ{RGwK8Nظ6-w 35ebeěF[ ++ quŌZT!*Wюcƴ~ :?d2Q33#n!?H~aֺO2yS M64XQG͖8ie:P~1Vyhr%R!TMꝥxɜJeu#f%ULX;orGN_*Yʘ'Poӻ ݥ@dٜ̚6ԛtAiVw}EgW޼v!{.ˏA} fׄiHSqXE(-O'BaKs@Y6) oG޸o7bXjޮy-kY!;ScK3J5-Efur:G +iXg7nVzQQ*Ƈ )$ha/&M/s&ɫ3?E/Zatb><6qfC`ZiF $)#ҨĦ[g6Hjdw)^lLFN.⺉Ma nM4JڬWe,]J y4܂CN&:G}_,3Z%;H6Hm棾uk- 4xֻx#k-I$oI@uɺ9h%ۣ  _ӯÛY\&N%ظ2C~̯*͗!z]=j1%) /'R1 1۠F_z  Ju}[9m}4ms2r[Y)='"bPݴU,Ϊw5&21Y''N@yW'WkMs=E8rd*Zbd?U#êw$nQ&bsyolkyMoSC}u:Kvhj˄ +@ ϟ%_ V|CBݖڽָz>f:0*ҵRG cX358:p~myBدF|-pW\;|4673) AЂĂJkN﹪W+` +4vtxV`-Q3|idj"]\3(R4MlE?Q7\ѷn:[%';SCPbS(P%Uű=&/*c+7A5_< Jѓ,g|}j?P!h!6)代!+W\4cĜ9ZC A[i0/bm^XhhEY_Ch|$d䎹\\r/87t( +Y€{*31U-1};`G{zl5z@X|Ko^Sď2ڏ]7[M-8uDw@yTB=M,jsЅ"'jylJ~US<P.(-,(;A8r1MyiDOP@4( p +M,{fzTI!;霼T}Tvu"Vi^9-pvEV'1 bdW4䮶(0T)8t>޶+oqxDc2@ITps R3 V~5wMh?45O?f_ +.u:{a=-:/i5>uCi30,sbӽ4G?-qX v^jZ̽ge^ޅ cepS'r?UZ[eoǽAlmvp6As fpG pr K eK8Kq̬LH8 %Qڦg^k{g}=ߦW _R/]hbm=PyXNg)r +_7lGVX$h$d/cGie5ꠧ:KEW?h㍰pS~}X-glt!#2ܕǁ6Gvޮ+ +^{lyƼ|Cc>-XJV(:?:7|upkD1o2IySkʭmyӗ-/㥜K?cu:UǛV̪>uv^:݄h<.ׯ_lǵ8yv0@-`pkJvkGrƖ}'HqRMG+:㘦dsтYt,^8) xfG#[P587f̥&FIiDCj}KכqkMw΅MuC 9K_|Ej nWD ՞ٜhIdVhp&h_}y@)ǖ{eNuKH -v+σi٠ +|\/ٵ93>{ްXy&wcI>w YOu mVᏒ=of:.%J-:J$8V6 ]Z3ǂ |{Yۓh't(v!oʻU1nj6-חv-o~ ߨ/n= +Ơ(t1FɊ{ӬurYX7,ΤMnNvѹW~ˆΧ/q,aincwܐN7͝ Њ@mۙZɼ )B& `|mA[eV̚R3HB-Q60 ߘR!igbN>>D-gG+Xq39eCFTHoD+_ftW26P)^|>Z;ɾN7WW%`D”B~LNE}y\KN[[?_j._' kpߡZ]{7l|̐㢶(i@4//EN/mdƧ jn%Qs>UcY(` [˕YdډmkUE7jӘm)_XIovKz-k=`xcor~]Q&)Dnt疪ڵ}}%I$猂P朳Zst-k,0:fT&wbAHztB2hHzt1ʾ<s|VӨ/YLw֎ɯⴱvfC\t6D e>G; +CQCR ~ezдG`d"U*uba ܓp 1>nhJo="|%9QPz@R$'7,2S'3.S2;'+TcT/'iv;A: KN3s=>z6[{QX6(zA`jAjMe83ے ?Pl&x/ZOgp pr&bRT+G<>~>eTj_5YdL>48Ȃ|fB :y!!@(@hm@#Y$[dZBB/" ?࿨tU㔳ݎPcErdItJ{-2wbH~؏ <XHlּNf,L !HR,@@j nWkŜ1YH\ח&e<|9tX xA:8v_`9u3L돈k 7F ~JP|`1܁))@%r!P% +TylU>R8xD䐲6$=jq|f3$h$aҏok>zMe<Ⱥ@I$ڵw *_NF7@+@[1 +tTٝXIYz}K>*@[Q5ƪCLVp#=;젮8CXۤ.j+"_'}w~xeH/0FخSRf7L%ǔka'W_̤n7+q?JxY{<fJ=J)9ckԅSRe֛;0oqE#wiMW%:zs_ao(}V? xsqknicruMJ^:'찙əNpg(3ZfDGⰊMx_Z1:YXM>%a_^Ow/fAhqR4+f_͍_޵[z + KtSu勹 zCM?_k;kʮU4Ҵ>൪?$)V¸I=u0ֶZR +kl^vOZq>:Bpmr?H-vq4.V\Xi.en@IYJmꖔ_863 zF> HxxTSiRfvP?Hwj ک.ZJܥyR/, =QTj/ C֊F7ޅދ3*U*h)jT@{^6Ǘ6.I?kmer\`}?LUK'XTa6W8O2tKl\ټx>vEzb^^3AVr/y\*_4<⛻Z=ĥ Ԃpfr^#<^,ۚsf'ƝJpA1=53 &+m? iCZ.s/iuhTy⑥Kӕݳxr=Ue[hҠY_H(:-"/ +Ηyߒ< b//FCzP^SVkX;5RuTݴ2+|VKfwJ]G*#YKKvs3Y/:q kWDƖ_Oul',?)Yͳ|=i/a%wzI ;Jzw m)2H:hl[꼔8czn&$A 2~6gVx*j7Xbte3N& +Jt4'VJC8&:*e3Y+쒖 +ݬG0V\A3]\Fz ɺRd[[Nܖ[86V-ʬmY̹6/0-YcСoq0uxyH,'2^ sGΓX3ɘLfO/ͫ ㊴Uj:ʜc}VOIͭVKLSDLkL;F!F^⚡a6rE27o$Ҹ t{f:EgA/IJOSg |}|233)E]d`t5}(ji^Abַ`Vn"%_-;Kq3Fh\]sK3wf t4Jiocg%WZA=ھTJ-m:WV<(NȚ2gzzZlPgwkqəe1ih %ޤF=F7FENE19Dlm!][O>>~c2m@Hi#Hk}#Z,W_Goq4ݐ#k\#tsF1(]ԂZ4|N)W@wRLy`hotZ/tޖF +M6%ǫMFgB<Vɉg:-5 ƒx *ws t| ٻt%s O>y9gˀYS0OЏSk\ӕM]9TmԒm5IRY7Lʟ+ۣ&ㅺAR~*8ʦGIgʀZ r5pEkq p8L[/jV00Z. :Lr~<}ST{`j% *_7lW k~n۰`ݎ18cr9{ڿ/ +V7׭fGȯC=Okwa_GN;TRkw.K1]voVyfzionY7rh4u*2zگK}m׽lxcToctAnj0+^/\N|m_a&[5B,tpgN|o^=젚nfY +.>wI%?,!~ͯ4Wǣ;d}SXt(=XkfD.n"\*3_-yvC-;{73XU^2L٣`OО8;.[&?iżK BJFt,C}ڡze;YW;|G"UKC:Y%ؼXż^D;%1Kd!WjR;ؤẸgj%,H:BJi喴&DI֡1}EA䫑?/h%#}ܽɜXT֎+L˥T2r y{=مt0:qZ ]ktWg#tLn&W?/Z?fYԱ#oQ#sox5|yRUjR}JXSRDMŇ>x1I z' w9 JNK;qNpy6<M&[֭>v+[ ͡bfn&-Mn_ ߇ưC^Ju-hW->„&L36L9'[2)󈱳-(ط];Aغ0ZzlY53n"nژ\H>fzq@A:a_ m /V7 tֹ}4ˑ*<xHcgᖃٮawe/g ۝Gz7>,kZ^2swf"]mLJlӕ(#W٨V1$kDG/b]9OroؘTwf(R! yV>0ot?q<פ{lvW7k2>[6wKf1sij1Qs㼾8:ig>=8|AI9:rmdu(_dud* Ʈ{ALtƾVٞ/ZŤӺ;Z < N[m&xxu&hU4fcf}ZTm ʩ(Oɑ;zK#Hf7+oD(ƝQ̚@B6'ƞ3C>-|Z"!ymrU&G}6-h3m6}Du# +QNsR䢐o[J5~$}t# )L0:.V959 +Bð@;ot)v0qjukeթ1_itj5RUAiIѰX[lM4s%q 1Iy=tA ֹըYhLYq+r`seͭ=x.>ǝ]&_9kaKruղSjOu47ua"Y#Rsޒɩf +p9`Sƕ)b9 +LisqڷgMz*{ZnXbF_ ;H/Ilj,RrAȿ!=| fxbsuP +g8ٺ=YFL3)}o})Rz{P`GRbޢbFΤy'Uc86Y04F`d`(lh^nzJCS2$6eʳle2Lė8S⸋S}mx \|[qZ֝2i0q`1*w2T;~ķlPd!qLd+M +L1`qlN!vs}1h˓[h~ܴULX_N +뾇g#Ց l\ +һ5 8slݣo"۰A%l'Arg?H[.XK~8zi<\2r]#[D +*lV5z7xEJ:G/z |y/\VKJt^3nm0NGD^g0PǤ򼁪C1~] +LAcSV DBfC)Xz; G6 1#ٕIPڍUDfj +!wn{9gUxC|_\Je`.qL#-;8e[L&ۭB8{RseHj&n hMj_@?\@-e@P'ݔj*RrĢBYp ++֤Vz65x,4룷A,{k'|O` yN QhL-LS`HԒ7K !ʛ'q bq}2| yLN <#$nL]00,oKU:2JlHLA%߅ w1,`w6/Rv.;dg]Fr:u')ݬv1qI>z,Nuf+5pNp% +D>H׏ +|6\_i[KrLO,(zP%l쓾Ko_31KYIV5 ׎פ?zr}  +@:w w+"藀(Q䫉pd~[љg͒3.sk{Fjb)FABzN_E; +&)!RI;Kd\T UY a29rvtrIt6a&8-%:~yZ!ć2SeU]jw,$ +瓏7oC~S%ڟ_7~#)_ki^V6@K4--ǏV!cZGΦ8{EVhUڎ2j3YS#YS^iܶt/t _mǼ>`(4`:0 +["9vD901Np7~?7w~Sb#K@ D?9*76?i߅qn/g;_7g3_ }[~)?DW j| ~z+~_׺MF&rZ1w~ZY~\(^Jz(\yDJ'~Hԏ!"F~yQ]_X_S߄kuj?# |_|u IcT9+qhޣ^{/aj>\af罱w1={o|ڢ0I [֠ŭP_Y^g!mhьv6_?΢ .d#:3v5}P'Gyo,v.(!/)Z]HwcQ}tgOc=B( |4o Z 1X Scj_jggh'hR7vvL/gM'g_q(wO^#r2ܸ]q̻j]uOWSvc3BΫ):yrק׫g}kۿz;;~+gq{{ro!e +=F>g6&V(t~qSwC[ My~Q}@!ζxҔQ_jMϱnkuvj3NDʑtn]q3yɥkQЪv!5z݈Ů>.g^zD9b-WJ_}IT!nYTl4?K})]~D?[ }6O'ոO!xtZ`\=f:4;jn +jBhU=RV9lvV!\{ަ@ҩ瘟ױ-Fy=;{,xv hY¶W6)^_סQZCgPWtŧtySe4P}};RIz]kE &zcOj~ZB2ս ٬Bۡwl՝k;IjnfTa7t *#k颵sI5SX,BQH7=} -v=m^F +j!_??tjq%XqC[w2Wzs1=f0$"ši_Q3ִ5'd\W*oƃIR%Fދ^JDOɠ-SE'݅%1UgX=ݻ]sܙif-.\.1[I!Av)1!ғPV?ۮddGV.k閡7h c5@ %qT%_9>@'Y)U;=zyXf߄:. ^E^w 1ͷ0>+iFFN7-P~įo9WَܚX\@l=uAmMnZNYJ[f|I&,>uc|s5_cAgX[V[>O +9J!&"L@W¸ǝ+6ۂPQgBZ/y<5 ,Y} [k9!3\p/YL,i =EG_SkL]4x[dI# t!~1<ҭaDw20|Y:H.Ɍ-ܚ*jZ7rOEFܮMqY_tӪԍ%q=EV4_|[; ߇PXG[d2lvvMu4 +iZӨ٬(j/Q[{MzϺ6YaFݾ1}K:y0Ջ_Hɔ2y2+%MD.0$V87[i-qiugus+-ޒ +iڒMӗߧEoJݛ Օ3OrkiCL-*PK R#Sc|*/G2& -FƉ‹/ϦTyءɝ' +| ܗu}Du\R`}H933 6#Pdf%SmJe!d#ҕ˩f"g՟*8ˆ9GAOObS%z2 Wm=3?vڎdgJ\H`Ea˜GKhd@bV;]i_Ml%\L (4eTT"r#.;Dh2c,t򜂟MRHTmMR>S\nFmrdUUl&wk0ȵ*kbLسHG<9P{V +'P"Ss\FLvV ^~^#08N=@]5$ +֜f4aWIF~gEG Q-sMF\+gҍ.`0m /Rg?S̱q),m0\mL!7kyN6h_H4{fKKLq#ĺTc-`s-spsg8ǣ 9-f pC .uR;S,8o\9Y{_Qkg5aóhxw}P5-ғRfआq[@<iÖMo8LT=I3~7ufGQ–.gMJA}8SeoLYwAR=.4d<}._p= D|xz27+u Hh< E~H[t`pҽQ )89c-tI~ej -aLmzV(Wrqy|ss:z+\.Kg&V}2~CZCʴF_%knvoFl~0Ƶ*7g]|_ {,'}![y7%(MA]thAME )k]B+~ܡK UޡBV=B6תr SA [fL:ץ𸪦:' /Ք?wcn)?e  GIWz,w!]B;l)6F$.ί%=TvnԾo2VAy>@8ZfF*.,b~!w P3ƽGx*=}Ѭѓ7f`;k^zzSxLe=.k}Yk%lQ#\{.Ԓyo|SzowlG{ZwYYYCr;I1BduqT5?lO+Ydb`#uiMٯ6fQuh66ms( +`yTkЙaVN[tNbl #V9UAXܲ7"Lbv6hU2+$Q/~y=qwNw4c5H^ +knfΈo \ #s9M]?풾rG}h/6_Rp-8/Zy7OgL1ę2u;-όlh,ܳQ9LоYm Cϸ9i` _Ř Ã^.^c"VQjTlT|F"i0>}6O3Sm{8gk=պe؂>k)Gfn_}Ta(mW&d]=MH*<";\^R7u kYS &Tfҥ}lXX=Չ~znͼ_9s% H_3ml0>P+*eW]UPjH=>Ϊو~`aj3aQ ٪X[],Tk6(e`1nⴇ815+{L4B\߭szp浽 4s'b2ek3R[~'?&ͯ>aii)'8TmΡ0[C#G~`6:9z$ePlz~3Q\Zη84p4dYuqRbyXE'uW=×)U +Bôڙ5#/"d>Fk6{;0C1DVLl2;eJU.'[RcP<6vO,5q2{|u* +([pEJ}*Snkz>96^lAgYLUF^} tLy^7 H}D䈽\ohe(s$u&m7dŐNM?pos_Gx5,7{8y,uaT~-WLv=.%= 1`"1 +׿ к pu~=9hmN>'̓@/֥@хr(ôIvL],>OW޲%FHPn_J"Gi(rǨl&F*Ch?Ro4r@5xα ƃ# +—PvmJF +2Fϭ0?4 +/P,9T/}sitUcY fRǥS$mJI |<'0|ŗ / y(һ(ew䌘gxT:f~%<,hou2m2&?@LDjR£W^'W=ۖW!VmٓCuhPsz#-9[`6{N1˚l9i*z_X9O|oYBSӷ5S+}Ued.bxvZhc'gC6B搋..!^I Ǚ֦vGϭYзu!{nf|  g*9Inuf +OEޕBE`}^R!\i`tkzlM հĞk9dRꇕ%kfח:P܄V<=' " Qvpo&& Ey?lnԯFeԛXqu*1((>* ֏% w+S(s_D@**IP$8+4+@ +HѶ)ր*Y@B]T2VHM>S335ZBUTCU=̜ZX}]2#\6u*LR͊/D{u}$pWY_7߀()HJPOc Rp/=6n=nRNd֔Q%7C^BէL6$V5^a&BE dG*2?V`|q|W}e~=] +¾1Ȕ*@dD.i>Hz5A֏p\kUȚVTxe0tZ&yz*HTMsRmktĺèIpXW~sBc{"V d2kTtyf/:F#BErFr@zB?.-{W9oS/$'x*m'3W7/EO14+u +VA|uwXd+=B jB>; vZT'sO7xۦm𾞁Qkgդax;`b0LSdGǵBE?mj]MJzt,x r6_9s +G~6oTlӌK#sBo98færhK8_y/!͈=ĩ̤cJb{ʗZ}?h,2a@ Nwo͞:ɋq~*BCm&WuKeUL#ҘɺS9^ + +⾠6|+D4]mgaLJ_`{Xjmaϟxn_ljta&ԺB*rMWSjϿ7M;lvuV:ƖڶIͿ70] 5`w̮⨑L9iRikCzNFbzTu=MK-W-uCjMYW_ϡ<-Iν ;Fb5jMU'Kw]/3N&R1 ء6ot1:6F$\V~{?ƚqnRwqbKY' ~<ܞ?Dh1jsݩi+± uWmʭFt H8U{HNy^eկoh#sC)%_UG7L٭ߩbaYn5_!ԽjjR>EzץnKR{$#Q -
9kŨEsToLGswc!h󄺁@ZrWhNOqdh=Z#M@_b/,G\hQ 蒢AYc;oc5:,%Gl)n:ƹWIm+*|]V*g5Sn^z7d٧#HtjB+)?C nY2G>ri| #a',4n3sX a%K`vkn0 0gVI [=uhM֗D9VֻJHQ6%3Xg'lX( +޻VA/K_"k)'~7l-7C-0MsrעUJ[Rp QQFp?pK\Xl5ܸ͹3e$nF}[܍418.Ha֙B2}c$qM*s[akf{HUNߴ +LG2eLF2@s2Sj W &dnl95s<7xVPu\߂^yEi]+%KYA܍|F*ז܎y>FMVtǭMi m^tLɐv!3ύI-1$Nx1o>UkquKCmлgb[MHQ}[ _UW Wm8Ɯ&$ρ;#[5P/zRzC2k69C$OD~| 1Z/0NUzgQAU7]55x^_IPv 2/ra. KwQW GK&HhezĴ\O6E<=baADw95FFn iD! GUiCpskin*{+wRFΉH/|yIUg{"~눓a23&lbÂ㷀Ms6ZF)Z!M"ⲜR1loଞ Y}Sg>r#4NJ\x`򅹦oTT_uQƴ-૚ƅGdJ8NtGh(~`tE}K!Hn/>EINVЇ3P񴡌Ԍ2n`vd30 2e\C}yz7#"7sF8kTQ8kASg#DO`|[`` s.*^ѱaW EI53yA^yTC,k{1N,``Ÿ.s-'g˛ys$JqLG{f#Ea~ )Lbkl|>_LssEjn ħlEI(Y@m6 mW5DQNktï->DkzDQB@TOd+<"ߌ: Q߳XUU+g|On7.0&1_Tl ry8G\J&n m@Y s F@F* f'p + ;9}9< g~= +>%ɴY_)_i@{\Q;{``/BpLN3DXZ:rWOF^ +4%DQɀbPOhz~m>$`|⫗|Gހ4@6j5p@FZ +ȯO̡Kij1zV^[EN. m B7:M@ =iF cw瀉GO0L%X-a.`09H'SWޒUP~:veSg:3;T3]}&`\ F B c؃8}ߤV..ׅ{NiYA\u 8%c.<p!r 5qΆzS3\*u?_=9USL7o+_|1 <f7J b f!h?._(D_zޖ~avRG'V'%.>KϤ OZ~-d$@>o/HH1xQRO%8joĀ|}w}#ɒzB6ŦCa jo+**rۦqjM\ttմ?vT;o~JPV: @bM 5ߒ1p7](a$TMK5!iȓ[mM)'0 3Whhl` 06y1KKm6FHZMpg h{z^M&p˜uO=ԲEn;\o۵{K#C}Oe_c'MJ_$\*XWYߵҴbaeN'ϧYBkw>å-Owz% }#Pv oڰ3_ +=Zɻ^OTM䴼TM-B@MV>Iȕ娕Ū䎯"Po-,>luu)BZ˘v}ޟܾCY ~Ly?fPa$9G O~/[O[M2xu#l3(CG;O#RG–{WڕJ~_޷gVzz8^n_NfR=I;O5gyX%uE V'e᥼,)khoZ;^|$ձ vHϞѱ6Fy"F7]Xnjmvuk~sWvZ6n[ u*[.OǗV+LχJ2y v֞mJ"f jF W5 [uh5 NBꯪpzR˳cO-_v9_UJq?7x^;jmg_"a]5^1r̺6ûp᫯'R+z"^t[iKTҡy޶[<.´! ȹdzHxgEI995uTm ̅v5F[?pұ:eeK~8+頱_ɷ8*N_Eg +`hx V15} 2f` faRB.0D3%f#d fudz(fZJl#aIB&0S(K^`؆94>D;oXhH %_a3IpM3Ie5@<Q %(O oDl):@\mšIxt HrW$/ + ǢNe-%3h%( pDe +{*e *W@3h(G k@_ P' lzv؃sy94|v=;vye[J~/4:yZ.Mb9V`, E=)$ Ο /ߦi 9~Y w u ; W!$^NwӳK=ymc’h&r&''%i=S"j $T@Zҍ9"J% I ~.whZ`'55 Q;D`W_į_ ?R{ZnӄϽ b}T՚@jyB(/ ^rEs ^v݇+Qɕ^ZBC궿rn?n3WMݶ): ~ݶ%~ ,y_TMoZigt6]7pU5&#|dĦKam[$_? Lg/{e)SH3* +N5.G;_trR#kQu<1`_9GM Ɉ}(7#z7vׅu Q-Qf>Hw||V=9ڐM1J*"]skyziSS6->ShI~EX>.G9U,)Ξ++۵zQ6쨯.\˖v0O\q>d $xWvcxKm0;-/jU&Vmn؁Q[ދlom;< `uKh=+:vgtA/<NJe$:6HSlu~+P/!t_9tt,`P޸1uidΕj5!5Fp>7nɷզkc?x~<ա-![.z3VQyTiUDze_6p0f4As\ȷR%>rrH |tŜEDa<--=ƫe<z\qʨa>[uZ?1|`4N.k(RfZuRJk7Gd-|%S]=axs_"qa .(?b1ϭƕGXbr̪aTgL햖ؓURp&dP8bX3)H3jةe5u$~Ua͐r[$q*~>";V-ÑwazeYTz)aӭκDڷAul|eKҬoėqnN |rk?06\ilݕqDx!4[a[q7uSv㫨(4LJTi}A Ѕ#[FFh??0}Y:oo+I"i^!1Rw1a9>\gm]74 +3d0ڇE4 t ?ecq_X ވ>IѩY~q||aiwfƁ^ʖ,@ʕ+ދ|/ٯ2b4:ehJrPa~``"{IH8MREX7 nZo"Z8Dj}p?7j){퓣8΁o-Nښ6aqh^2A3_ +87!d9zV~32t b>k8mXɛ`Dts)s7 6=@7RyMwUk#z +Z2U/384!Pw5dZY'OKLPJ0qn3@lP0Ruƙ|o[++ K[nC}Gd 8[zI i݅z|{ƦLµ x-]) A`EtǮ2JPPhH V'8FANVpՓϱZPIF"彗@{/Nxn?Y{zϙӽ.bЗ"y+4#}"[܍43'S]("Zxkıq+`xm +L ,@rZ=@]O2.BmɘH4׮؜,[$+![xF>+\9r@9hYAEgOܙsj0O ?1P׌&h e!t\@c +h<A!\:@,mP }qr&Qfwh.!v؇.ޘ骷8RںD@ؙz yt@J !iC(!ìNzZ@@OJ1t]q40RQ65q6gUŝdorLa>6l#~kLZ扰g#6-@?W0LA&S C 05 aL=p6&)0]&ѧcBXom9샑-gu3 zsT־xNɳBdkmݧ>v_K3`:0dx=ܛl""؉@[C=،`U,[8x%jFU7>^N[w1ū1-Cᛟ\]cNҼ*x~x[V/yt^ 5 Y$elw1W0loHi HEWsoG<xK\~25>o;'x _rHu p+\f<74_㪫/^A D6&$>)7et= F 9Ȧ ' ZBZxS8i ʭ:.{#"< B؀$@$%=xģD:mOKRn&LlE!bE*qKR2 ~\~;p&!ȃ +[Ћ>fr|3@@HV޺.XJO*?6cC[$Q2_ ҎQT¯]~ʻE-rێҏ6{'n[u?{`=XKXJ) Yndt:EIʠ&>F? \(Qm[}xuRdhbm=pNW,Cwq'v-}dC6ʈm!%6v>Gx~O\?ǜTiܷܼ(7y(h398Tymr@rD;ﭧBc(Z*t A(!Rx2E"^h)$"(jQ@ظNp}gj7"s?ڜ~2N&i>ȯᇶzW *U薹*uǩ֮|QM[7m'aUs{Z$V]A(3ExTFRAxHV=kwbhLzy*^d[wc^39)4sNm>ZAm=KUʨ,!W>3H"e0,&z+޷u5i:]CO0>cyF:H< ZkmWFIB/ZytgSMq5S%B05 +q2OJ*{[n^39svj-DV|}z[h>Zɿ aŨ[Zj->m-Q*#J<\g +'/LEaneOkn^9 ++8hNgBYTJJku{Ia  Owh7c%+( +#3ՖC߉ғcfe.sOeFRL߅u:(/6kU4)!R|vxgp]pcxpXzΰd2KgrvdDPn(Wʉ9~P"ZB=q6WI)k{qpXH vFRۻxG.=;ɍQKov,N<:ћN%dSFNUuãFZ-" Ε"`b[d˜oh}"[M)GY;IVbkҟU Eb&Dnr;~Pйq(דe3ILf)vZ%ðʮNZ8Ldg!Jj2D6 sOzi.ЎǦlF_]J/8Knr%mmEsX +=>ǘ{Erc7f4g3kREάa-F7"] +&UUJ?{R;qm  o9w \-`gA2WMK7o)D6_C'1&IlQr/+->t9C^iR'`jnhn'LLܨEn8{9 N O66Mi'mnk;bY)U'$rV5k*A &-?7dl8&iҝSrC)LO69#]%nJXǍ?\&۷DEF3 p4񀘥2 #@K ɠl W"fB6I|{^E˵:oyVaJ3' GԡRO)l6kvmlN{ "?p{%Iq +* :qpɷsJ3@3d1 g endstream endobj 816 0 obj <>stream +>/2Nc9,c`"C.hޜ~GmMҜ)R)-Z#JJcl-Χbf=Ď`f&o wy%9@.d BX%YПree@NE@7+@vH><tuXҧͣr!7f FUs#ac܊)䜮UͦdΈncVi%s-Pv笔9*rJKPDmL(;zUzłR4PzNMmq_ +Ln9Y옵^ӕ3}A9tx]Z~^)BK K@95 a4o@x$utOw޵lc,vLuHeZ=]U (kLDtU`ޏ-&7v OGJC+|DBb]6+{)x.uy<Φ!ӷQӆQV'R +O3Ix`l [ЂXz#OTLg$`1 *`00',9Y(u-&uGODb\; S-QjOJ0fߊ7>F\{Hiz qAzr ;2x:8Fmp~7Nvv~D+u+Wx1/Z'={btʔn@'OT_~DewyoH?m M#pۀ/2P6gыx{^S-"g0jT5 e(2D`i,k z2btEDpGoiH,aannedr>u2[ +9/{u$ϹDH@A f"YmD˧JIk{O%^\AɃWCZ~a>[uڭU@N_HMw[F:P)7suQJلR SYm8(c=NHE:$r;n+mÔ[C'xN +MPF6 <:&{6ЅN9ʹ0Us9sj4PV"wn?(I^inf$|\C4 ,@$@DYVϞ+F F dTs\Vo2NXo>ʯl[6KٶF_r8ΔJ}`>{ \qZx*ʈE[-h !En9sB^O8TESot:&UsgKC2~A߶PjDaC}DAG3 6 J<2IU˥ӫkv~> u<4̥8omf-*v[e5Te򁳋;jb670CN!;mʴW_#19:f(>zCTg5|ީEgLmcy&F#83qi]X@)YrF%/tաZ$~GrhgZ. MtV'.59eȯa|;`ݍt[lnex#v-fd/oeJ0l_yD)EBhXj\Cr0v-SsG޵2yCmWV['fzn0N3%)ϳ|=K?ʵUQVV +T2ԌW>uۏux`Jf^(-Ӧ~(BXP]}kH MYWlKA*qūS3-|8 W~Y*b/%wfB*նw='7l39W]lBłpe}H+ W{O鄿Ph1T@44<Ox__yYe +h(/=lElTi[ҵh: ᅭOG./ZWp`שćUq˫{l,(Uμ_:Y'@̵p;!j=a&ȡcBJp=!&I5>,Ng?l&U8zN$ՃPwbm&f("N"|Gjy:%_?J(d+VkV۰x,6)_d ?NVC].C]I^%.Xx8N"޸R(xŵN~r3`kKմaB7zaѰ$a#~no4bZ~b¦ IޢcD RB-7 t +HHQa͔>ld +z\kյu&rO\ӖJcDMYN;e8jitTLtlC,E^c;J$CpGBJ' 2\P^aw0qeu࿴I"5'Xu%5k[JRHSMJvr66EzyMjwBRu_Ro%E12UV֪VΧF6Lmtm27䣞&[-Mp^Ts5Y/T[+n qP +qpQ8@v*d0[Fhωv =$D•D]*tvc,=[nzp7aT&lxI#aLD9o,]u'dұvq"$W +?>߿|NfX2jb"ȳ Sh{&hPR>GcJu?nj-pHRmHwT݈'J+ժ5p}u;8Sr0077=9dӻؘ%;^L_3̠u7͝.P4U*%qKzszĥhÇw77ql|Kި<.t)SղP:S8F}KZ' gDk2>h>xaJ_.:s$΂af&'a?+-WeOk!OLqf\7ŰVТKmUn>%#៦dAImfpehPX2ENAx*%7KvLB7֢\,3ZV"[:U+~F܄ ٹ1+N +8dx8AζEɛyt>qχD; +=-^IaO~bq;Kɨ'@ + Df +b9km KKpd'Mߜ${N=+Qr75w8e"hQ^9W-mm 2bDm  +NA艀h^DkPD;2D~r6Q6#߀pQ@ĤT"2ô= b{hy|λrK=z ;h[\z78^%0#@Bm H;f}eI$C@bb8ģO^8XS1!F|4c[:כ;+.URgl61^bDPJ=-Zĭu~mFQx pɳs !@XQpB.%a ɷ28=ʮKuOuUE<4߲PO4La5b'٧#1KtZ'ћBJ)2>k@PeP5 ÝTF*{s^g?>2f72IV50-v2n6+tEz:"ؐ|aar{* r@3 F@huG>m:3ZԲ&%๜W=, Vc*_2҅)}~ bһ I)2##9o8P` havE 2\?`LAXɐb:qN+002}MK+rRb:Q5EG[K/#2zr\!c3X'6=٢Xo + +9*`  G9E[*4! HLGQ +XE95ܢcqqM>N5In賬]R]iQ,Dxva:ғӷ7-rU=@ Ķ +xR9[=MMן Y~g71^eЊHkwG0HP'n0ߖofu + SašYaGXP% u_Io>[/؝?^ UTSQ 5Y/<ݞH+ڽ~HfpQxQ!;Tm#p״ H5 eq:[I@bFE n?><i+##V>˒“ +#QBQſ\,,Lo"WhB - Ԗ4U rx܀@):@1|o #lTtʄ|*ҷ]߅  (~gE_oi"3b`${593t-:6(p+ORR&OjoCJpnnN-H@Fj'" lM@^%u},es3sr D0j%'>1ʳX۽Ț-l7o%mՖiqۢmcmI{1oށh~8`sl,;ۯ|E~+yx_ԉgrɉeĢMȺߌB{~3WY7FKs>Kk*;|<ż{ě˙]zQp- +@@[O!NJ( tzo3يm؏݅6s;ӐUxzk^k `dZdDd}(mi6?c ?t4F=ECQdW .nٴ:^irvum.-8p4>HQQ9XaS{>LX =;Z$~ߧQ+[RdDB# iy왝m3/Nnw7o[A5&IϳT֌V+YVI*xcCړ1]'q&:0 +q'O;@ +-CȔiHEa^oU+U*TmB*Oh0Lϲ|ʧ{'~•^TufD2-rM)$c1iw<8Epi(EqE"!/GM+mxZ৴NP)fB%7Ju'۩$/D/ăM׋K[<.<߱Ib)5:,zG-P^ ֬]HĆ6h8SdEQ9Hi׋K2E2 <H,ItlRr 1b)id:dEơ]v}(v8x}G>-7Osζ3fLKqh_zKת-H3Q&dD[ ]{t=^B08E +Dj'RKx؈D4˨N% Gv?eʸdҥ#+sݴIWbTt PSGgA}PK*"ɪδ  +Kx#mh a-Jm1f4WDu޳55kjTK*Īp8ޖ\.g/R*/l"'y;e.ySDn, +*%+i]h0Rz_Fr=zVF3a ^)'&S,G*) ^Rغ& Gt+ /R%\Rh@ A,l!S"B}̑)>f|D5_~k]QrՈ7W +P._,&/-ɛR-;H +C8 $Ķ͐:/^p](.]PLzXJFԂfiCO,;y Bj}[FCrkpmr )qDn;1 Z1٭y`rN! fQ;v;OőuV. ]2%jK5ca? lLY}/)g$t^.2M.UY251ǰ,sj! uxاqoAߒ¼R\CI̖#["VT%O#,YM苌>xlHoa{P̺Cz21%eW,aa +Q5Ih|2ޠxIU%e y-YPRmrDLDx`ϔ"Q3;1`Rlg8jB[2O(pL +TYWUz+SR]R9Wz\٠qi&&k¸y]&UA"H<$}_l36):.'5jo*/V"2)-|Vq>K^:f +rɗOu,jbV%vld*Q +rX9Mx%~0V12 7ɱs ypS.d iߌ>~ntޞߚ7B۫ӂ֨\dGO m2\= CgXPYg9ۄ6o +$z \gE@` GbgI|ݸ|Gc"V\>]+Oy=EҼ-5hTu\'\Z.U}G&f<;u@m +Ba׻<2S( ȔK/@w,CCtuծ>Qt+ܤL,3Kyj>% R&6]{ s @m@ ۳lCFob'.p8 +!U{ +]""LZ[){%J{o*v՜us@; mGЧH®u +x?-@}@G%̲̰>LqDJPȄo/uß(]\d+2Xi%XHTv*#oo)û4Zƀ΀'x> t 82{YV>,2>(hl1ֹ:P'= L@r@pU } -N\UJ_;} F=+YţE(‡eYrk J G% \&. +tE[$O&&.)HHH*$Yq1%N&e1]цSvE/,u'H >(*I#"eR͵yK ԑ ڼIu_@W6@i$(pVws1!OO >F-XxAE6b#w;o__-JI+tRW5m0stee=m;}-}N1f4W(H?!K4mTAYPmXm+R_(>6LAx߂H ,o`N5Tnjx\"QƷ KHEIHJFkBnhkG2PlGp8 bĚݶGEN+Go-,aM#K4o. [xv޻(K+ žHu[zܙ`ǭ'݉F[ڰȉ:-?l  rAd(j2 >7Gٯ(Wj78ŧf}L`}Ók؉O]5"F6tk76of[O/X, %#K#}M PW-s}Vj_^mMվjoEW^5x i"_$ީKE)wtiŘU8`a:B݈wq**V"n#JC^H/7s^2U4ݨFG8{},AONI.n&2OoʝxZ*,03nRWŪo/:^H\nl۸Ogj1]13*g!`p_uEY*~Vǿ_W_+cbɃRRRs& (-=/Qz7;6y^^+< p0as$aw|_ &D _MߠED 4/J?>3NhryFOיmgagtUynJ달d^*o9tҌg8KS*"~sbjXR˴KEmժfy*]bTU_+ 쥬o3l'oE=80ٍgl.|)]ueŨŘ\5W(oFS$x"|ۗSgBɗ;o{d 6X;ެFZsMm<ʎX\j%x#0gIaw4R/Z>CrilU|yZ֍AQP۞nƢX.BVA++KqPhg{ER mgҬ# pq@TDETdAD4~wݻ{}UW"̈@#'~BTB>8yt_ l]ؤY$A#Afq'd3`|ycl=@o +ceosz)mtgK&#dh?#اfϸ?P0d-bA`q +rbA֐%fK"7J!7^JiW0IO6&5_=$6ݕRt$tzt"ga;o2yTTVJ7/_MJJr} lmYmk4 S2L0QS{~ b6Λ>X _Y&YyJMŕ[9=sHdq0ĴL.\U]| |?m||ژ|hQɀB{l +~~e 6;i*͎f1WrMC1K:уlS R'dF{y==#v{Î ;S3a|{:_g k?߽A?dG{=#v_{,(P]PlsJMzLvW۴T4[hOmu; D!o;dd-C@P#\׉)wMy-;};罝XkORVm +783D_^%@~ Оʴ)TA|}eyM_Gyz8~XLYM05SƒvRXjJ_nF < +5G+]u?;\3]kLz9"R-.OV\\!yXW/̖fcvx bL)@>=dJxnt3>tzf.RfT+EhlSq24ϿD?g7V; &Jmx~:k!xzL>RBuNw[9{-`uA~MQЊ֑{y>f7&.k=O1Eݽ7lyGf.tSGO*3o)s@qvأjl0  Kyq]ŊYl ~göMC6ȋ +P> +IoN,*nLI,~lZ3ΗYe8nӇ0!'z&DA>߄Ξ Y)[|trFUju$QOjl7z|-ް~۰hZ\Gow$SK%()cwPA|T4b5Ob&KgϏ-[V') )C :pV-A!քKЀܔrOٽY9Ֆm'-՜a7MN2lZ,'FaIks^@$L)sqh܃-S]Qu麩rN;l,.Sy&-X%eNj4a5%j)EmG?w +H_+uL`ߟGkR 1>K|Ž&yq0%1.ᒛE&R/~S:Y{P#2$=*vc$u$m [i]C )l# +#iqSr0NrGI쟔J_䮏KQ^kT9zE`s^FPp$t_Nb8Kp|8ax!s0Uϓ~0`jڷA†i_A~{P㹴Yol}c7\_c,p?KƻNǕ~AD뙎wXx=Ҫ2o__]:em#I_)Ѳ%8tL^kθC _]E F$؎VITq^>lU>;|o?y9X#L))j$d%_^$X&IUJMGǵ2ؘ8)qKbZ BU/ +D3 ]v8-Kd7k{g: +!03AHAQb~V|-n +M BHgk t:oeK-ѕXphO^϶`)VjpcIØu{*Y}_[wB?!+2#o Ͻێ s?:x3a{# ?oQc{sAUǏpmo`:C:(;뫚PP+kMv"zCrzlb娹jcɝQH8rVԶKSBK-j5 + N$G3/CM!bR_{uH#u(/Sضg <j+zWEz|xmmcWk[x9;E;0*S5龥.1UwV1>dO?'OP襺zh>ҷm` N_:OPU%4f)_*d Oz`իs{Xf5%q=`䌱4e\7fk3[o*]l'CuBm+{NgB:?d&==.PB\ObMMAB(w63bҁ.^1kҡ,Xu6oCh͹N}ȓ +0Njna?TKiF: +:I}aKϚ+s!C5ژwD>oB2C6 s˚OOt4~}xle2W״`JsϏz vz6d|"N-K?ع +rju5|0fն>(|+Q *z0K0e\b>e (ݎ]T|#3uH0eIWUnSKUQMOk͌,W ehN*'0NȌ[7Zg05Y <H(x"H*Ww +>&UuzMp;2 | 3X&y>3$8edLC%R;G>~IO=ϟnn8%nƍ}{jv qLI[UiqԀsAUGdt=_{Ud#bDjf -m'I9Ml,t-1-̬~)ecv$6:sP)>בt~|ZMwЀTS% < &yv +z z0suf)PYv:W>> l[N80/A'~Bfm -B?!gǞoQ8CfÎu߱gÎ{!3c1&MžwH=@4ӂ Ivh S +5(Nrt}OϚMeVƎ!{ǔe~`9AB)^9(Ӎe`=cC D M[o<'ҷVw&lcя;XQ_.Z%; -KS/+(oQWP@/<o̼qy(xx]ޓ+ykdžfK#ʵ/eOyur6t9?*ʬM. +e''PXfw† x +i޷ +MG +Z8.*%ByXdP6?BXB# +o,5 NZLKww[X&.ns$1ȇ&\;V9K *t<ղ:ÇsCSR3P$/Xbaĵyk˜eRޜ^?)=oӮ d@PJ +ͪfu%L<.,Wv8h},a1l`t5ŽpyP=n,ɌP-݉9Ͻȏ;)KB)KK_^џМnyh + dhOo9h}Tm;@uV0>&u6Ԅ7dF@vu[.9Kįi {nX?Ba(ٛ,-rNh{_3TGz;nxXN͵j͢\[oWRGb|Jޕg (T.EP,yڰ`<+oX'鏗(H\( +]X.V]̞fD-g PGh>}B @q*=vHCL\$Ǹ]2}ZWQ) jۮ=.\Yrm<)ye@蚞i rhEA|N  +y7 ̅/s'x!vҢ,Kָ&:f̰2#Q3T#d>,&7{wGq `GJm(tA1z\'Գ-mufȘ%-KTR4VvpWJ02{ tOq$aL=?_x@~!ke.11z>z~ +6f{I# Y2;r%ņd~%)j':gFwq:t@>Ӡpas)1oqx-ٌ- n.:4O>fbzdm19X.hM'twґ'' ?kb{;_ y7ԃ9ˍIi/u?g7Mg3Co > 23 ++^(}dTRۄdF"_}tCn\3X>|K-9{7bIBzn %KY_Ѻ'WxvzŅKpz@`  .?h9,ܛ^;sF@If%*s !)V΢?C/踶\&2jM#8IvqП'灝I`ڧQe=qpVyRٝf֕09j)h3N8d=q~n+|oٔ^rWZS}]ǁnQYE4\,hqr~Qdsk#ѫ>t&XWfP<` +ؑsA^eܩB߇;ׁjaJlEcP!ӞJkr3Q#(wݨņet1:R.Xoק>x- +\!{+y4@Ӝca@_B/K rrB $ BكsVK欸jh/nk8b]0 W e.>VS +OES?r'a]=l5x_x#~BfmA~['^?dBY|{:m{F?oM+WB*] tв :ZL`$& i.:ʹg.ϸΈUOn8,DC`b +Fȃuef=a`q$~R +Ƚ/] ERYܸģu\ +,ȇҝ?Dߊ9f5~K(4Y(@pPho-ASNBX20/]QdӽȏOMm[U@}\86)oq/)w J_@ ׊mH-@8BE +pJ,y2Ok v1uёuNXJ9v')mŔulH:&=2'f$Gnub^uqqNWtC[K{Ll-kʫ&F1GiM$1ճKD_^&фwchZnB Q. ^]es 'SeN͔56[=ʾ鵝*k˖>SDN&W_@[Dp@>hG ߎ`q_|p5da9? Thw<Ե{1n/j+~:9ݡJƗ_7d=L^QP];`+DžP.sЪp柎 =}caf6Z{92gɲ]n@MZAWr[=`nQnB JWtpc݉.(<ʣ{=oܪ|bK//龲sʨϥ֙J +ahFƊP֒-侎o2a `Ur }P,޴:x޺|uI!9_]zK џXc2ߔNBh8ze}qG\m1ENp8| JA{J~KԈ8(lwHrV˩5O)Mw7zŪOdNj2LygW9v_k,Z NO 0ç ch@ `7$?W z)s@ձUcGJ7Vk=X%$/ +!Oo'\lPAQ%$:Ke2(R0֒K[ʥ/evmqlMBfd  "@/ +MXyXB c( TCRZu5lRWc5jbs\2:X8M&;GݓC/O5]K"wD~ 4Ty9f->Jݵf:t/Ix W *6^bS<>Ыt@SaJuĖuK U)#89(,G8E~uv0h3svIyk! +s1ϳI_ό"Iw6B=軫96h!;" ]Vui|4' PLy]ilvCy<ċy; ;v{څ"4_,3 KYtDg~jG,LR9Kb0x5l#)oׯ)KynH0!i&{†UpldW.ߔ _S!6bOl|WwHRgJ|0Jj3=0Vd3q5٥i#G|@0?_^^&Ke"//}y7 +v95RUJl✆qh/,jzӱ?gC8)d4u*SO$vlYXySzbqUWw$_ +XSLtQ/ݥK{e8OeVT{4$q#=]Ĵx.#|17+n3vtZx:O{0ɒIRHrY2%q޻ɑBnACf0*E K\52wγ %̍;dq~UD%ӣ6m1tƳϸ1 8z˺ +mC<$k\{^>hL&ݢ04Jpin|ZAL ef%%2Ô4GYr?~Z*tO~f<f͌,{NLٔu֏Q֏XKR2:@ @5A@Y@N:V[7ᙷv_)9Tx䛏vm@h-&W)^{T{ChpI9f|'/A~6%A~['dBOž$2Gsێ P+? Ph Z#b0[E*qrܮf P]%;HB +@` 0LyfO=ۖ*@_kIL~_I{q񵋢tf~_i34fvt~9ͩȕVI ++ + 5}$>T{@nց@]2tz }?v7Ҩˑ_g5 .Φv +c7&wTK B)52-m&ABX +||.]s/H,7ə8|ݖ2|,Σ=9~κW+=,98U/~ |?{UYC78Ͻ4ɫ +Q\ ኡA1}5~N87Z:]\q6lr=Y޸lGꈵ,")JPX@>S?dZel83 v J4$Œ˓A^mW655t+=7HjFJbKLB9=N~vBo}֊WM~Ma^z,Ȧ[|m_ԯny{S97v!r m䇁;&+ |v8I`O9; cg,O.΋AnZ1&+lO5QLը&/2<{o*b/[dc%חB%mm |=B汈/a󀽮ĸp9Ji>`ڤŦvC~(HAF-ﬔOkJC\\ZV~orwejz`y.?'}6Oj\NZ8n[٭|W}-aPM5YҺDlf˧D~*@{nȧbV4V@MjΜ~~4 54&DI͢Mh;"u֏Oz`If)Oc̚;,;_‡̷K`1(&3;X a 0ֻ9ĎloReX*27r>ךQ_KGcTόARQx1;+h43h֗TSٗЉa kZ!%;Zk9pV54#">_p>|R`bp\=}[AGҤ< r G_vR^,V\Z '*cPL-Y-K:ʖͰNtQl]ۉJsL :EBȰsk wb.D^a.t9nvlqܽTG-Bt;{.=nQO'6;* +-jbq?K K_Oxn|' EW\wFNPY; ᳀|-}> > +gd&PaNa[񈶨PN+_~Ah29 mkPd1. Ey67+o@P^UNtZs;| 9>gwchر3jtoQF$qa馨*(YMXg~{;l/LmM2V)wGbr<. ~q}*d]IshUG_l +hݓaps,'o?R+&=f.)7C+]n8H58%S8{]nCqw=h9{r湇ɌYV\n"Fb7f {tqV:m4V /{f?شwn*zUPtor6cy V9Pe^ֺ|eoydʄJm7 +18vLΙfJx~4gYiW엂ޫ>ǮЩ\;:ovtߓҙqEav+yڐMsf3aћ ;QEXq;i,AaQy"W/<{-J~hIć~5kQ9o%q9_j3sI=4JmA#{}ڠu1M\I@cw?bsR)Z%׾,IP^^I]vo~x^Sa5S Ҫj\JOkPΨj-~Wn+tJ_\+=27'i٥ Kh'-Ƀ\unQ{{˦n5^er WY8G˛.H +"54bZ5g 7~BfmA~['dBYȄ  ?AXd r +#@X7W oCO86_(t8W VN 蝶A}j3FJ?KJNS׵{SgD> rl&7L !':E3)I˔vCѧn*DRgA7.EQZ~ɵD| ;VY,Ztyt~k2kl`}X@w L58*⌹+O[m6a`ܑsyy'g5<%37d'(9"w` 0 s+"6y^Z} u 5Z-N=}]\LvCvsG8O=YV.IQjg ?&P8+}k\ + -2v,wWAs!1ݬ;'r%s*=?VVcԞ;3L͕Ndd3*&wo O?K Xb&@bkf Ϊ8zp\fgl/^C=n<:ջՄ#Sܖ +@{2ȵ vb-ȗfw7'c^UyxBe@Ls^q{vқX50_0p"nh*ەޒB04G_"0^-Bn@O@~~4.Ά{unr"k*wqfDɆv-{5.! ,5Ԅn8SF((=gbbsѕF,gM Oe&;Ը?FħBqGa;3V өR[*Fs*$rLXIvs8M߄*:ֱ^cMnޯIu#7/$+4k[C5g9Rvy%g7ofh#.R8-\mNɪwǫ*>\J="s@ Ϗepc wGGp+ y@dF7mnZ;SJ{=dZc6ȣR>d"x.$ ڵa^AӋ/Cbms UcZ]``Y3_ a 0[sM+0}yf ÖrdM-c*yIeĀq,# CW!YIj+C*̺L{^>G%׺|Y7?:04z\+nyF{fs]e:A2Wdrq97 &Τ8w;Z a:lW\~8S]ٵ7  ?? TJl]A֏L57\_#wfEOI F?,Cw|Y~?:5|71Y8{<`y )3]S\Z%mḣ񃬂.2]ۏ(=vx=PA2Wop+g: 縌ca&FW1I?nCn`F!.**˟Q{lMM^Oh FW[3X)6xfV[bm?XmNwLN硳o>KӟYFuuꚮ'jtd^kp(U8Z+!SHN/ b9sF%Wm@oY+mOV|ֈ 9@֏ mT*1شLfJ/>VO^[rfVa +0@hQrQeY_Q~X Fý&+~ +^o?ZτgPZj0d +j:|4@@'zbf@5m j.p'T%2^sW/ +K7;IƖ D +'> +2'@O(ε<P Ȩ?e~ey\D'1J(USŝy2UXG*( +Yw2YLm +^)"T%oԇMB +P|cB Te򞴓Q:6J9;lǪݷx=`r)Oɗ{C^>0ŲhyZK.uPt &֣c\m0|%lJYg,.st2Ŧ?e,=v*ͼ$}̭`7m=?".Ph⎿.\_֔\􌯘WyUT l$ɊXӫ_wz\ׂc+w>oyI*Dٖ\8ӀR1(Pbr|  䬄xNQfØ+a|wggxO3mDtW7Rwp<.qN4.%37f ?_@P(| <ߊ`Zuryr,h62)/3Z.QcEE :uz~znUY`y/Z5a/ +}FoE0;. _v`8uaJJ޷EjUM[{LMƲd gk6oSYǫE3hCK(M vM- LfzoI E/V>| !:/w~֐ݥ[U'sNZ;ll>ܐdd׫54$c ^;[_dtv}76]k A>AVو]'Z9<]8ӵ^+&nLܩdWb-y&u,k6[KY M 5-{I,(VA^@_<τ|m'c$Z_pFq?>tw'8T%^$NŃ0䦰x!nsajd韞n#^QN$[~ _uP@.('f'pF.]l&phYGVaNq$4Bt,R%3ׅ,VֶAWca׬Ό,;~jdM9s1B;xQ7_ja*HubɳghN_bB jxKΨS%NX^\gִ4LhF޲- V>ha6jA~6] +diav:Yōk-̦gahNG 4!jM-/)25Д3(tI5·,~WYBxTӓI`lW2͹/k؈qvaӼyZx2Qi>dOyߐ>ıOA_ +uD[o)g>[& yPѩt +M{W2ˊ75cR}Hި2O=p“.PX>#Fiы[|yγP}- ?k(\` ڇɼ12fUiE>. ?UYno?R}N@PbP 2Bxj}8>@j+(G WA~@1V;=HnO,ȝ0Fnz[t8'eu3˙6+u,c>q O, -5vgTni_m!~?_\o݊!aΊ:)yefϝdƯ=3Å񒖧~-O';7b((M㈉͌6ʕ;O*n,wc{%ęA a2?D.bk2m t*X5;+{z"?jd鷉Ge)AD F~1՜Kpe*vBٱ͏ӡSȞiʹeҞҨ}%B̷P;g+ +9̸UAuDQw͖y8XͥH/^GSi6+QI敡Վ0+ΥPK^aܳ khaNe#{?jYpQPx [-#5z9͍|_^Km*R>;"}cTN?h=Mg.3~Ny$5yp3VN1b6%b)kʬN:ose))WWo1gma}\mvp [ +?qɑY~ MsTnڅ[])gm*c1# ȒN?w\^z6p'wOuH +m64v +R'I4zȣ]z0Q<_.Z%  +=?!W368Lע :Zˣ~2c\|EX4 y1E+vЀxWkWqYBrGUFV4UCl&t+PT8JQʛ|^ u9s{z%B:?+lZЮ缇:ᔿM  -b/rmAխFN&X3STKtqP;#E" ck ^.fwﺥ\>K)0}6 +csnf38:AbuYA"Fu7?suw%y9 .o)d z{$ /bJB +EkR|A>)P{Kn-6~kl8G܌Pԭg3yYǶPs8]432U@f/C@6 [H4GlxXx3PJCBSⅨ0lO\lFRz觺|01Љ a +080 ƀEUiOxQEP@zu[PmxV,5ytYqd{r?[թ -/}l=9PTeN®ITej+PNI(Λƒ.^1 5ݽu,g,:W&./SR?j +PCt;AY]XB Wu՟̫ Ge6=Txww/W7JJҶݴ2JOhJ +<_4˜g4&$$VRK5$s .3>]kOpsl/Ybޱrz[ϝ= tZo/_~MS׻knƥ2Ѩ,n*-6}Ggg7ԣhО ;#g?=ө)^ZUv"fo笤huKӥwEy{kmTwgas ٩"[RXWa|~ J3hϫ[~ C1(4l;طm֗s'{mfaJ'/Y|H]e}M#2:nS]nlI<rzM<XnVh[@~n 718񵡷?ޕwg鬓7Ѿ`h<[5=C04&_r?}+T3qO +RR~)|=~ =g܁RN V+S2y-gj6ztZ9#օ\yjȎ )KRfZV.>"ju Q0򷆿9 ya-Zz{V.QA 7nT7ka(yN;58%* n?4N ]cp!nn.^E8j}>)$썚pM%BX?d3j0gxlp櫦AS Ni$}vǸi"6wF\#\X5*a7sPݤƦ(_fDgMW8J@o˩u*t]SmLv>V_Sٱh^YwkԎZ2"FvrwO+U@ . +bD &{Y4Wus óMĪtܴaAWri B1WE CL1;wr#'O:?=ВV-Hq'K2(&ήHWwX3*42J1౭ީ#QsJʰf^K'?5 .ȗZm%OU|ow G/PȲG,5UEwIq<;YCݎd|gR&O˾uLM t#OOv%Lzb 9-~a@~ư-"ݒaAv}}إ.N;&jڟ,?j>wj4]d7sǧ$֘[[LN̆ll+-mCVqP7" c&T Mo0yN+r!%;fodХDzZu؍[\8ka줪!he>GKb1YY.)]l|1uT*H d ^Zqu=]K-`a9 pj]x VLgS +0eUX?XB.F~\(P)ڷ@hrݎh:"55*߫Gg4.fE>>* V0կz8Tmlt z'5y,UOPPIk1'Q&>=/ +P /L}M+8?'m/-]v +0V!"F(4, ZVIIyzEZϟ P?vj]O +Äϼ VO J&\DtAc|epD]A}.v lAszJ.OoHѭ/š[\<|yЉsܾj "0ާr;@L-gQ\TС `^. 0A*Rq?Z eXrêl̀Gf˻X_~ОKdvdSِߌ}ʀ8`v37NVK$V"43RsT6wlod.m^3?WM`. hj|p!"@9@/6Cl5@ `O*UbhIQ北9Fa} +6v۽ F'Rl7*+Ov|y/>n0 +%P1 +j%8|̬=jG' 3T'Ѯ߲͸Tջhmef\ ?`}/xMvOY^fˀR}@>@DlD˫ aca}б4㋒g?M[rlm9NҶ; [8wo P# ;Ze2noEpШ7\=c5c☫?5Ixdɝg歳1^7?F~n@=vOsΖSy7o! fey~Gt\ ˌivR,:U禷-}5ny=??ɑ땦^ h}eY,@rJI=+\r5$Ƚ,*p9/h]|~vkq)["i`k1QaQsD^[d1YJ[M/sC,1a${@ԝvz}{n- Y_5_8^FI-5 |V6KLrijtaYhg3kPd2Rj^we3R +)@^ݡ[R"湇ae9%] +Z<lm~-"U=s)$d4:-GTM[Л) +[߉B|t9D@8P}\/l.J9L# +[zzw,92+-Ud4T> =+b*f4xθOge9N:lz  +@J37K wmt~W]fN+dWc9[Z+\ԽTd4iAKzIw 8)tѣVfg- xU +w +4O `~ +U;C-\gmPs7$enO]<{+q߼/LNgܣWѨADM @b &!$VP˻r@OϚrK߲E;؈w7}ѽnY0INv+l9 g8MaG.?yi{ |sʳɬ>Uҟ#--2:-Zu7z^^']:ӍM eUfisHi>O9Lb?Ri?ySf/8nD:Gѩ`NGMny[L&~Z⠮5m90zs jM6#ٽd۲as]^ ,f<ų>aN|Uwv?]DyU6 ԟ0=qq`ߵ·MArwC3~&*,Ҙ?[$Gqnb4,zy*Jes $;.zhQ΅y4B)8NP[1noyb"9 q^JBa/땴6=LM[/xenEbV2vyVJ7>s{Fg6XS7_~ٶ v#;ZބgHI?qsj]eV`jM@EX%Ro +eEQ/!qϽZ;yxwmR5`_{S`ԚM5#v(ߚ r=*k5W#MW[X\H92_h|_i%b?Hћ_⠙}@ E"[j;#ZM Q*u;gVp~}cb0ߌҢV6pe>8\E;@5-*Sm?9Q=WP~#ZNuN9[â~cntȠeTrPr\J)1!.6R/'Z#hŖ3g/zV/ʎTjTc*I׆L.)J؅hŐD7 +`=r +@& !@Йt0LV* l  ¿dG!DWhj! + >1ljO BGKhޅY xb&Yyjr֊Ze)@/0it3~N)8],Zs^AI/=>_u-6-@u PoHpk5PV_; h0AV y=^WׂO Д +j\_`ȷ]vW$`U뻞{>Q&uwՇ7wlous0\i6n%Kkr].lGOtؿODqsPhOV1 +^.G5@.mzܿ۱yUby3U@JhBxݑ/I0Txg xtUs͛) zR8q5&GN2ﷵ ެk<8n96 \.?"*&5KEOٯ?2DFZ6\ԫTƞ;=bdA܋N.l}s3p\[Ty$t[jPl楱9d֩!>ЬζC١篒t~kKo?JQ]n>JFY8k/Mntknd-^_З:8Y=PLCz T2fqy~^V?];S#sq R3NQﱰšT^/sٮm~7+^8`W[#R1OzhNX_!}&7>r!nYM1 0RλI!hF~5{N,x+U;dʼnm^f#u;I]YaX ̬,E(޿!K]s4d+Њua5)~`X}9W\}l v#GnNmx&.QwѰ*˙3.z$Oo:^4BN9 h}SF7mȎTЅH\Ў^ׇO}z3C/ѺzE#tJm-%.[HcD¨-%͓QĊg-SW9M:l4?cHb@cD \u!H ˣ* z9ۛt |^ޟj?cjzdIߜuM,;ACcj-bjn uæ N)+MC~rU7WQ%x^g3f?GnlUvqޠ7nc X}9=o+)T.flH2e5g"iQGDಬ-?RID\~Zc@X_0 @ORUTx5,o[z +GcJBY6ܸ+v6`_JfX$!gw}O2R§6+՚SZ['s,iKjXz瞈cY¿ yz/;N$> q\ WzYstgٙw;ƽzCK={Z΅YyѨ sgKRzRfȠ9>69̳cdmB@Dhvd߷'3s{X8RTQq*F\哛lh"u|}|SϡTv*6X(?"[}p@jOCZdCK G0 kZ`ZFD(tՓ?;rmTۈ9xmNz\vTW<9{tRwΕo#@)ߖrvE-5lΧ*ܿ纷@aozQ']Ň[&Ǡec7oiV5hYϞMnZKD^$ .W.\|Z.y#5 vAFl)HroѸ_d +w] .=e)ëURt랁"s-פ̩cm2. +A>z$C=M}1$jj9ߜ l +Jk֨{5Ӧ`!?&XW3lCm$i1xs4je:i߲jm(pFW0FPœpPk{j(dB _a'b(5(i}Zl~8#`A1ؘ\:xgl6-pD4OP3KMۛqE{O+*1]<ļS{02rWsK: +galg(}b";40#Кt4Dzc+`zMZ gnݚ>$h+|kEXiZ-R/PB D +$Q;3DZ0+SNP†BƧ{ѢtRr)`6oj}ɾA{Gfe[Aq5Ďeí}E{+`3+ TֲТ:{D9_GJ +5zg?PN.i5~jz%*S*l:b%Uըhd+XJ|lI_} O+4~?pl0LcxO?\~@% !6_T"}܈ز  a`O;`DPP.P0uvKD4j!,DXiQOuWO|3NM@(M5v5`3@A`-1h ."HB`> +ad:b猷_ˡʖ絿`M`oO:t|X|_2 qx{@ɯ,2| }2 #$X%!\BP=J9n9= 8k}n';_%hVrO- txK<-/aUB?[c6P-sE0YAT{Fzo=j+'LqT囃].΀7_bɀ(M_4*. |up5 :{=0K>xT*|=&]?{jenlZ+9P;yM@r4ĩ 9dn% L{POtdrKqS駗s9^8jԃ.vugf W\2$~_L9y@CjYdC@=?B_gM=/M,uZXJt򮣲%|V%uwU}nIbpHz2EГ'p8\̃Zr~"84Tk޻:*VkafJANλY~Ef:Tġovt\gjt`WxU-w=p z7 !D*E}ݗP2bwu +g,O^z9>buWNǣ=-[d.lT\ي}5n\=}{ +w]=0 (נ@ʷ_Fiu#ȶR`Ka&HA*$[?pH  + NiƮrw>g-3Vwɘۻp̏aPfiBIN_ +8n +#@" {er34RDL&[xqDѾZ8v+=lkJbw.WZK?TVVS$}I(/Ȣ~˥#+󋠎4`X[POFAnC:ʸ*[9HgEca?/u:?睧,r,+Lm9lK0n ̬?oܰ\dgSFI {϶ctnݙl}:=UKuБw;XU(Tz7{ 9>tn;_ƛL.&7"0mPmOF~Q磉\YYY^ }DoYr}FOv]4=j +@mn {H|Q+fgyQkMž"SfE)r '3ilIǫ#p0λr}B7?-.`:3h7e2G- ㌒^GJ׏p}̸fu$(1j!_*_L7@{ו=,G޴?S^4&;Q֙NvZa6$Bx\M,Ms/'n -V-1 M.@Bwezl|Wp' ٹ|O؞TnB x q@ $%Ř0z~ +83"=)jg_(jyPb:W#Sg).*5)=> +H[r2(w8>(e1xOwz\Gr )Ͱ^y5Z e%@'@;.M'L#t݅HS"9?u2"W|K#t,{oI\fb  VZ Gj >Q @™o)}I FG'<:2}2/,J}qW(ݑ^og3~ H ` `So&8&W(@ P뒅+=LvNKJU |*ėJx! + e>xζ;So `^#n|wDQXB8b\/KS'T>)CY+Rr^ VXVn7//Z[@,!  |xR9{Ő?Lnh{./eS*PJ){~jr>~lch'2 +dl |*T}Vg'F/7WdIxB/Hp$6@ͬ>ߑ0G\J9{.s]*]=nuuaV7V=r}c?ęD_Latr;W,n^\ ~ϋ݉kUWqJun:AzQ@F['MkX)nHWٌZo}bʚwMc:ۋ)~G6 ,}Ȱ-~3$qyA=Z6JV{嗴v{&NDm,G: x +לǫ0JG{]ו>Boڣ Wu:ݹk]5д!9SPhdYEь +)+{/V'-`r0, Çd:zE/Jvii5^D}WՈbt5m{gחnjO_x{m@V1lssRnX<-q k;AAnSd̙p5TZe{?.5Q&23? ]z R׊G%ýo] ̩}hC '1 @ϒQH=T`C>!8/Yɦ9Xou9L}|4INXHp,ppny~nBb*UQ\&UN +| ?p04:zȰʥ \djvKKZQdku9hz +UKԓĉRbBHS +wv`7dsi'N+XK|9hNBE(@V;mol3/K/1ܱղs݁FTfK岱8LZ\3ꮔ/v2 +\o廦w3fž_/X h&ъn¶7w +q =hCMv͆?֯oƩ`Vg^zY=i:Zml-vo9-K'6ޙ*tyq4G(e"vskyK?wض/}hCP7F@qtH֝0١RS>XҼu.Mc˾lNElӒ|&Ss!QxrXd; {7<|X+oMȅj3)@cPo!o˵D7Ǚ=`-*ۡi6AqhݹL, +?ttLzkOl("'WxRnGP:RaHs"ɟQ~GŒ)@eMzb/-/d.~~^IO%3{UԶ=ͣOuR(.RfRMS?V{=.?N&Nl1L೭d}{rq(oaq I $2C>NZӉvsgHbOEv} F;rTW1&cA c#4޼{ƺs:IRci}V!BM|؍ɧwkdON_\#ۚ84&vjq?Hu7K_S1R*ORrHӵ`nӨ3y 6?N/ڐ]<-o;f&tf5LswۖVdWp'2yI`,z<_fˍ4xqֿĥnzN:(2ۋlfG}u/uǴڣV_UAŬKn â)c9[ƎeD ֤1EVu,~>=WvyB>rvCu6ض;27D&+GL5SPWldRƣ +V<Ţ,!~Y/.5v~ήEW~^U$Qt{xVj6jgo8Y2jGc_E z}b.QB)%˩]?ζ +N%Xr4:<쌥 4z N Y<4nGro|ѪZYwٞm[܋B6_EbN*V6d Gל`;[ K CAc9#-Wpy䳍^ӪehW#ª Sb+Ŋ'sȇ&϶Ou + ӯ^]3ƅ- ++Z͎:Gi}niX&=H_pXy x7cp䇗fa>~lǯk+:P\ʜqFh :V#@*@z>@HH^$?C.)cf +B& GHL. فn Rzԡ-G}\)#B 7{B.XbD}B]~W 3q_Da"'&_lz}ev/{\B3X/5Ϯ{4^:V vveeC. +I +)}JCӅSMl}txsX7c?Rt\S1ߢ/ +]O\G10_pz:ĩUbn0;~QsNy[qm/;2u%rnKLv7p,@ceZx43af`煔{8¼Nwsj_BOq9(?jdYOۆ VO?B~;N +> ?\:}Cܴ +X'0؛z 8 +.',5< +.!h5;|o-ZQ[wdȁVq9CtrfY+Y=wʼng4y5Lo7Gy?{wG'kZк? vg%֋up/?.f6L{yW3lmyWԢCb|0\C$v@$DX8"dDS]dQ;vˇicRnZ9{١mh`[G{V h&rcm%~!)'om.AO5d߽8-@!oaޭ5?qW5h;^ڵ|iyM/PC"׬+w_JC0F6.ֿφSj/}Pc|]Z}#Wn/L)txu̼Ⱦm]nWS`p80kېD\SoW]Mi4$bוhhc>4҇譖KbvKloȡ|aIevҌuu W=r#7ouwY}_0fm}r3!:-@]n++6*uo)=m[/el2Y7y+iP +b==]s%q&v/R֖қÃ&׹[4dӳgKkvp5f4\93 9 6?ӏ&%%}vʞ%uw<Bҽ9AwbpnfZkrt}Y\uɟB=+)-j\1 vy̏~ր-d ~RƩFlFq^+'yHb4Qdf^8eP'c5grvm2?YF6RG6\;**D,{1ah2|Y.'r7ׂdp/ʐZ .HSeLW?hEBYEYwɃA]z~%L},+䶯 q +C9Lj#+'=nD *Qsn Ys{lǃaHy~=04zx,*7惏ɿм~#鼷U8Eug3og̈́U)[47~A-2`Rk9q"4 +뮆*,ΧlMKg6 M.`KJ#Ҵ}#v{#w53lߨܑy' vR3s#i (f:D.j4^?εEvSi-xxܰuc?n˽,D~^:f;!#za3m%jsPDBq!3~Õu[D]JIof@>zot.Zz/`6y4%mLp{/JϻS}^v}-~dZ͝kcJk8#m5voDDi?`o(:.-fW0bn\}{U4V(}sƤ)05qp _Z?'0;s;CnNs/=!VOj6&||UJcb˜\&׳ ?؟;蘳̥` Z\O h^Y!L3'o+ XnHܳI.ݫ~:˚[ cQsTip航Oy.]2˚RO5-5ժˍ\No؇7ϺRzݕ (Xο&ןY';3KrV]5km޴M-,uE|O ayY)D.*#UYSViY?EJ z^>ߚPv\]ݎAN0]ntشZԥFvq^ mʔ1ͤ]<s[LJ$Њ'T'(9/rU;Tt 1wj/1 kVG;3{L>w DJB8lWۼ?t/@4/^>bn9`1|á+a\EpS-WGK6L ݬ^ɳhN7iU^kIDB焢OQ/c௶|h-[*jsur9V֢e>ק+iJ1 +!q0B_vFz UU_qF-3,TiͭVS=KlesO/5_E,O*9'}2JzH#*Ѹ0 X4WhfVΧXM$ + /k.\cwY2V]WleQwr>L:Y5 rW$k"Z&.t[GL}tζHt?t RN}SMu!z4s +x,H<@*r ]^c^ =~w5OcG%RHmCq +qPAJ (:b)56ۃ +]3,d2Y|A NvSA݁ +Az8Htqŀ41BXD-%MV#. ҙqA lʀ(7n)X2T8+~sEHB1Q:։ޠ HXA +H iI;C7YU 8d׭Z_}&ggu?(tZ*2"@G ~%y<>gW'[>\R($(v*\Va1@ 13[(X;^b ye\}{.z,Q;NQ I;f:IZ66"ŕ+cJ,~YX;w0 o~õ,:>aT9*Q(wFʭ#VJƷgoUiƠwF\4rw+3j}3]5FDH}Ȱ <[>o[x#$6T!<~ss/8m[L6{2=(nM(PCualoOԳD"H3p ig/^G1[zJ\`G }vSvzfSW,Cv v-jQz[M%+A݅dkEmoX-xI*!\h$[2׫ճWqӝ|wM8Z/3-sB)]9&Ûmpim4Cf"T O$L~{h9(T4Pڄr4$(D':qEss{RSjwyrkk|jFmy#7[X9[YbYsͧqY^3:iL{i63 2y2 " >~q$ӛA\ϝd~k/vMF]J7ƱXb}ՙjƥlsWWASR +gTMUovTijh%̉ +f +mgbpBTn{p=x/5K.v6[3B19\s5Q-qN ZԖL̨]. 9U^AS}S'6&ќKb0?\>RAՎ|+tof?N.!zt)+gr!N7GLԷ TX`#)dW̳D.Tg$MMS{j\(W^*]UJ")J{n;kR+1/9RZBJV8[;{׆uOG 8`c<5Ԣ[+qb5ROgc|y|MhEpi^0'R38|ȇiE$[=MN bٌi)SʛIھu![✈84|`U*\rAX/k`_zO:ת# bPA +kIqpZıLנ`8˳-uZ·ƤxL1 +eq{ш4SAnLZVS{<77^rcڥ9 (T`$;y6qW]*MP׹걒b>^6߽C=Lv*yզ3ňuWrAV9ϡ"~ir]\`u`ieמ?Zy`,vWn]"wpob$-To;;2Kʛ6Vvק]TNqX4‹'um !quTh'()u:_Q/sVZl 1DIzL>T"Gyan͈ž/W'Yy]:T̐$C$Sm2qJT6{¯)t8rZoKx#vjg{vd3?JEp]~~Uc:s̹L`Zyt=ZP-<xuz#$ri4Fg ~ Ho_i^מּX|3t?ʼҶZZCCzyF.!(h=̺ݤewz q_5R뭳k]D&|v!|.@ F5a"k-7zlwיhlpsn9bPDNV+)yecЍZYcrɡ}DJ}]7-.Me}Mb+n\Sn8rhu)wzh{ݺ\as`/YkX~*}!KIGVuS%/UctT[/_u%Qu[m:؂l[ I0धi޺cq΢i0WPM%#YkK"m].}UXqAo5>flc`j}Un U[ ?^(%k-˸jդo/6jʑ& * fx*kvی&.-e2Yu\jϰIT1XAݮ4u UU+b]m)kIIb럋$| +QU.P33ǜ|7c﹑bZ,\_%M֐]2[c7:Rάv-U*^VqiPMB*i7~cA"KE +@m?eټ֠sZ#ro2^)|9A/ti8)+4p`j91w75у9/_L}k8/XfQ4`ɥ5֯k^޼,y~pA6jTٸ"{e 8LFm;q,"K !P*`f>\*dbƀc`1`΍L tFa*<t`v38ɰ10/QnY~1~pX~.)<+k?rYx| M,ХX̰1dt C>-*NfHl V?M cVZf略ф>>$.ʗ{w Oֶ^VX!]?l O{N][n`ʵaR\RK(՜iXϹl C>}pN|4GD5[*!b^Hrɳuﱲ+{}n/D. WO_ ey&E%s9:~na CmuۤGCq-ft0㼊q~!I~ M~铭X[_^JTs> 6UV$ՙgy,Rm6Fq%qnbBb8n;ɵˎN}z@=KZ'#x~"^f Qݏx~ׁAʨ]Z]|36h6:+=V,),~w+rw-psj=wsg%e; (CN|َC⹙6A<.5/mAZ>iYlxfkO[»~: vZbsQ_p"DjYJa[^/i.m܆xnkx_+>~5?j1KVu?{!`P +a6L^u r7f)^tw2C2gbAe)6>*ezŒCפ=2 ,Q lQDъd7e)dKY,bDnZAV_6e/}6݅X;g +Z_LF0f̈?cDNnE(8 -Q5]P= .>m?/K"+_dk =:JOoWIkrF;;Yx3]O^:$&ѤZcͦ-Dp%D7jGg#aAQ(a|s8R[ +)FKiXJ + +bu_~qBÏsyU=Y7kFiϨ4>ۡr=\x g2"=q x1š/ȾiV,r?4<]6NP߯sYJư:fT|p~דfKNFb!m(ӆ<*txM ^\OB=I]f;iVTnA]דKa|Rl@^6ņ-[' z[j|`֪j6A4=}$X KM ȍY`? Abvpq7ePM,ѣye921O@Hp"Px׍ї=gO"77?i5l*ɔޔj$#iUsf%T2I,iy`. W)UrQ&D* 鍷ov۩N]ouۇ,Ɇic8T\)C,[<ܨ8Y<.G}UF U5أ2&$1Fә%2wI*t[~{}8pcWcjmi:ȿ*Ix>'si\nF!"E"e|Z1bSqj^Q=~CnnIڨ=طN`UB :s~N;v3XMo~b5VF~O$0w ;p֭dcOgEV)k 4C@BvId&m6m[kaWyBS*H'?pTT/h +_[!o xa>MWrz]Ҙ2U<^tCY{b ꝤHw;`p&Q{t\\,, gCz(l>?0A(,vDl6h7ov:Bߋ& Ւ\{Tyy^]*^{]^[]-|>僁ee؅M_l8VjH fYIclG :ՒŨ0 ]hTK^cnu Zݳaj*{+m,l-PWeeZ/i.5v񙋦(2WlM|VXyGN[|ټ('dP_ +! Е +S+b3kF [iz>W9m +%_1:+((3s42+dX۽Ԏ`/5M\H[>ټ7S{O~="g!G8|Z|R҃b8Lh +'Xndlu4%$/1|D\E߭[]hu h6Ų "JیJ E{n29^F@\Y5QڵBh_x#n7Rdm<Vy.m\;P ?N]^f\@-]nΰ]3_(qnk}'!HiP ͻE>F^|q|2l8TJ$`iiX?2t57gvqPѶEf5#1S/bSbذIv&1t((-r(*Jt%Qq7QEQ~MJQBQ'J~-{M:(!J =~ _|a8 4Բ@M-FaSQDi$ԍ(|Qr]gtWݸ(9=cDɁ^s@QrNl俰J뿈 `s_:]o.<T,FibQzLVQ:kTZ^p}'O 4YcQxc3a*Q߰(G^&?MɿMe>S1KgHo{b2/4&w'݈8ײy$r +FAF?,?(<'ޣ +ϧU?s֋e 0{-9I|+ho{ijƚ7~!!Lq+}WGI*<CJ!}|/X]^q>%l"ào#ܘ"@0"Dd󗳮Nds\9FX>.7 ,«e\ h%'kG[%43Y>—[2ݜl$;NULҜ3p3>l8tHFrGi_՝PޔwoRJu琥#8 ϣ5gy 3{D5@qKڻѽyדD^ǸGQ9\Jtv; +Mu=o{sI{ֹ,[Cy+Yȗ/\y,B(5߹YK=EV0tJG:ݍƟV?BzN[{IN'5{5@PV}Bq/^GqnNg16b ^`blkoDˏ@AK-2KDōY/\u>h'ɷrSbֳ<9rYd;Å,LMY9#]rɃ__|sŨMY~X} Y>.;C&xa:\-!Z0Y Ψ}Nu,aSbm6tՍ)m䤜 //bX~|N +cٿ7A;zl]s "`vVZ56\l<613miKHgHϗ< w0yIڻe<|LVy:Y20ȮWيXa7Ҏ=5pU 7Rnag2~ު]lr7U׃ANVF|mm%(Ł:y"<9|bz;dc47-|.0!9%A}cR XUz2s]_u^V`y?b]Wv(/Ыhf"/_y2N"˅86vfiNWW/n5ePG:|Q>WV+)Sš\YJVGh3DyS#v +]Мl07~"xo߿^$_S4 +柗~כ'2=1_نY|yФ=QoWZ](G޵*9¼)njp‹:@` G\&~k`,A֌/XR|6l/kw_+'(w;E|9`-'<snszV6mBs_~v+JGR }7@Ob;8HO-cc~z:X7?~=6YlZ[C}yS3|wR;۞>1Oy@WVp拂<,׆jU͋]`YMfI J!z`tpg&kG_?~݌g^}X:aUAIc}mRc.BNl_K/؛BB'P.&eMC`9γt9#'NrmB]=ؓGg|t{sm2 ݬmP_ghl|ڲyFmaZD3L]q?xR0{r''4ϑ4He6@1>ʴWɱkk[t^ZN:8=4 +|aɱa*eXS=w+pyXZюS+|#GI)4-/St5O-;=F?0Cvzvwd=IaH~v]~LJ|׋VSYζTƶ8qyCW!ͲZ5ky0<}t"rO,j,W vۭ: +I7e{P[$BްB=cvom?F{6-s[jj`N'ZS>,3ФnN챐:y}cjG_ HE=| ,ډM,(Bީ=Q_[7ǝWظQDFQӕUW{ #UZt+n7USP70y9ɝV5gZNצB^S#slt-v)C(<)Pjmn9ޑ7f-&m͊k 5~jN~+\Cd ö)]ZRGPR KyNFR +6z1,%ksܦT~qgj2a +qX-vX|Lx9.w +[/M:Ju&}x?_ԯz!zenoD|-@/+>l! Ty 7Dg884tGp{Pa/8,h;܈p_gN%P[L7aBh6\esm dMOl%)l5&|8J5x/rA}\xf΁dzmљ=zIPq*m2/캒|b 4`D-.by1 +YR.R=XS$/|qvMXݜ4=T>`MIC) endstream endobj 6 0 obj <> endobj 7 0 obj <> endobj 39 0 obj <> endobj 40 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <> endobj 103 0 obj <> endobj 104 0 obj <> endobj 135 0 obj <> endobj 136 0 obj <> endobj 167 0 obj <> endobj 168 0 obj <> endobj 199 0 obj <> endobj 200 0 obj <> endobj 231 0 obj <> endobj 232 0 obj <> endobj 263 0 obj <> endobj 264 0 obj <> endobj 295 0 obj <> endobj 296 0 obj <> endobj 327 0 obj <> endobj 328 0 obj <> endobj 359 0 obj <> endobj 360 0 obj <> endobj 391 0 obj <> endobj 392 0 obj <> endobj 423 0 obj <> endobj 424 0 obj <> endobj 455 0 obj <> endobj 456 0 obj <> endobj 487 0 obj <> endobj 488 0 obj <> endobj 519 0 obj <> endobj 520 0 obj <> endobj 551 0 obj <> endobj 552 0 obj <> endobj 583 0 obj <> endobj 584 0 obj <> endobj 615 0 obj <> endobj 616 0 obj <> endobj 647 0 obj <> endobj 648 0 obj <> endobj 679 0 obj <> endobj 680 0 obj <> endobj 681 0 obj <> endobj 715 0 obj <> endobj 714 0 obj <> endobj 716 0 obj <> endobj 749 0 obj <> endobj 750 0 obj <> endobj 751 0 obj <> endobj 764 0 obj [/View/Design] endobj 765 0 obj <>>> endobj 762 0 obj [/View/Design] endobj 763 0 obj <>>> endobj 760 0 obj [/View/Design] endobj 761 0 obj <>>> endobj 729 0 obj [/View/Design] endobj 730 0 obj <>>> endobj 727 0 obj [/View/Design] endobj 728 0 obj <>>> endobj 725 0 obj [/View/Design] endobj 726 0 obj <>>> endobj 694 0 obj [/View/Design] endobj 695 0 obj <>>> endobj 692 0 obj [/View/Design] endobj 693 0 obj <>>> endobj 690 0 obj [/View/Design] endobj 691 0 obj <>>> endobj 659 0 obj [/View/Design] endobj 660 0 obj <>>> endobj 657 0 obj [/View/Design] endobj 658 0 obj <>>> endobj 627 0 obj [/View/Design] endobj 628 0 obj <>>> endobj 625 0 obj [/View/Design] endobj 626 0 obj <>>> endobj 595 0 obj [/View/Design] endobj 596 0 obj <>>> endobj 593 0 obj [/View/Design] endobj 594 0 obj <>>> endobj 563 0 obj [/View/Design] endobj 564 0 obj <>>> endobj 561 0 obj [/View/Design] endobj 562 0 obj <>>> endobj 531 0 obj [/View/Design] endobj 532 0 obj <>>> endobj 529 0 obj [/View/Design] endobj 530 0 obj <>>> endobj 499 0 obj [/View/Design] endobj 500 0 obj <>>> endobj 497 0 obj [/View/Design] endobj 498 0 obj <>>> endobj 467 0 obj [/View/Design] endobj 468 0 obj <>>> endobj 465 0 obj [/View/Design] endobj 466 0 obj <>>> endobj 435 0 obj [/View/Design] endobj 436 0 obj <>>> endobj 433 0 obj [/View/Design] endobj 434 0 obj <>>> endobj 403 0 obj [/View/Design] endobj 404 0 obj <>>> endobj 401 0 obj [/View/Design] endobj 402 0 obj <>>> endobj 371 0 obj [/View/Design] endobj 372 0 obj <>>> endobj 369 0 obj [/View/Design] endobj 370 0 obj <>>> endobj 339 0 obj [/View/Design] endobj 340 0 obj <>>> endobj 337 0 obj [/View/Design] endobj 338 0 obj <>>> endobj 307 0 obj [/View/Design] endobj 308 0 obj <>>> endobj 305 0 obj [/View/Design] endobj 306 0 obj <>>> endobj 275 0 obj [/View/Design] endobj 276 0 obj <>>> endobj 273 0 obj [/View/Design] endobj 274 0 obj <>>> endobj 243 0 obj [/View/Design] endobj 244 0 obj <>>> endobj 241 0 obj [/View/Design] endobj 242 0 obj <>>> endobj 211 0 obj [/View/Design] endobj 212 0 obj <>>> endobj 209 0 obj [/View/Design] endobj 210 0 obj <>>> endobj 179 0 obj [/View/Design] endobj 180 0 obj <>>> endobj 177 0 obj [/View/Design] endobj 178 0 obj <>>> endobj 147 0 obj [/View/Design] endobj 148 0 obj <>>> endobj 145 0 obj [/View/Design] endobj 146 0 obj <>>> endobj 115 0 obj [/View/Design] endobj 116 0 obj <>>> endobj 113 0 obj [/View/Design] endobj 114 0 obj <>>> endobj 83 0 obj [/View/Design] endobj 84 0 obj <>>> endobj 81 0 obj [/View/Design] endobj 82 0 obj <>>> endobj 51 0 obj [/View/Design] endobj 52 0 obj <>>> endobj 49 0 obj [/View/Design] endobj 50 0 obj <>>> endobj 19 0 obj [/View/Design] endobj 20 0 obj <>>> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 787 0 obj [786 0 R 784 0 R 785 0 R] endobj 817 0 obj <> endobj xref 0 818 0000000004 65535 f +0000000016 00000 n +0000000987 00000 n +0000048371 00000 n +0000000005 00000 f +0000000008 00000 f +0001082861 00000 n +0001082931 00000 n +0000000010 00000 f +0000048422 00000 n +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000021 00000 f +0001092505 00000 n +0001092536 00000 n +0001092389 00000 n +0001092420 00000 n +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00000 f +0000000033 00000 f +0000000034 00000 f +0000000035 00000 f +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000041 00000 f +0001083001 00000 n +0001083072 00000 n +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000048 00000 f +0000000053 00000 f +0001092273 00000 n +0001092304 00000 n +0001092157 00000 n +0001092188 00000 n +0000000054 00000 f +0000000055 00000 f +0000000056 00000 f +0000000057 00000 f +0000000058 00000 f +0000000059 00000 f +0000000060 00000 f +0000000061 00000 f +0000000062 00000 f +0000000063 00000 f +0000000064 00000 f +0000000065 00000 f +0000000066 00000 f +0000000067 00000 f +0000000068 00000 f +0000000069 00000 f +0000000070 00000 f +0000000073 00000 f +0001083143 00000 n +0001083214 00000 n +0000000074 00000 f +0000000075 00000 f +0000000076 00000 f +0000000077 00000 f +0000000078 00000 f +0000000079 00000 f +0000000080 00000 f +0000000085 00000 f +0001092041 00000 n +0001092072 00000 n +0001091925 00000 n +0001091956 00000 n +0000000086 00000 f +0000000087 00000 f +0000000088 00000 f +0000000089 00000 f +0000000090 00000 f +0000000091 00000 f +0000000092 00000 f +0000000093 00000 f +0000000094 00000 f +0000000095 00000 f +0000000096 00000 f +0000000097 00000 f +0000000098 00000 f +0000000099 00000 f +0000000100 00000 f +0000000101 00000 f +0000000102 00000 f +0000000105 00000 f +0001083285 00000 n +0001083359 00000 n +0000000106 00000 f +0000000107 00000 f +0000000108 00000 f +0000000109 00000 f +0000000110 00000 f +0000000111 00000 f +0000000112 00000 f +0000000117 00000 f +0001091807 00000 n +0001091839 00000 n +0001091689 00000 n +0001091721 00000 n +0000000118 00000 f +0000000119 00000 f +0000000120 00000 f +0000000121 00000 f +0000000122 00000 f +0000000123 00000 f +0000000124 00000 f +0000000125 00000 f +0000000126 00000 f +0000000127 00000 f +0000000128 00000 f +0000000129 00000 f +0000000130 00000 f +0000000131 00000 f +0000000132 00000 f +0000000133 00000 f +0000000134 00000 f +0000000137 00000 f +0001083433 00000 n +0001083507 00000 n +0000000138 00000 f +0000000139 00000 f +0000000140 00000 f +0000000141 00000 f +0000000142 00000 f +0000000143 00000 f +0000000144 00000 f +0000000149 00000 f +0001091571 00000 n +0001091603 00000 n +0001091453 00000 n +0001091485 00000 n +0000000150 00000 f +0000000151 00000 f +0000000152 00000 f +0000000153 00000 f +0000000154 00000 f +0000000155 00000 f +0000000156 00000 f +0000000157 00000 f +0000000158 00000 f +0000000159 00000 f +0000000160 00000 f +0000000161 00000 f +0000000162 00000 f +0000000163 00000 f +0000000164 00000 f +0000000165 00000 f +0000000166 00000 f +0000000169 00000 f +0001083581 00000 n +0001083655 00000 n +0000000170 00000 f +0000000171 00000 f +0000000172 00000 f +0000000173 00000 f +0000000174 00000 f +0000000175 00000 f +0000000176 00000 f +0000000181 00000 f +0001091335 00000 n +0001091367 00000 n +0001091217 00000 n +0001091249 00000 n +0000000182 00000 f +0000000183 00000 f +0000000184 00000 f +0000000185 00000 f +0000000186 00000 f +0000000187 00000 f +0000000188 00000 f +0000000189 00000 f +0000000190 00000 f +0000000191 00000 f +0000000192 00000 f +0000000193 00000 f +0000000194 00000 f +0000000195 00000 f +0000000196 00000 f +0000000197 00000 f +0000000198 00000 f +0000000201 00000 f +0001083729 00000 n +0001083803 00000 n +0000000202 00000 f +0000000203 00000 f +0000000204 00000 f +0000000205 00000 f +0000000206 00000 f +0000000207 00000 f +0000000208 00000 f +0000000213 00000 f +0001091099 00000 n +0001091131 00000 n +0001090981 00000 n +0001091013 00000 n +0000000214 00000 f +0000000215 00000 f +0000000216 00000 f +0000000217 00000 f +0000000218 00000 f +0000000219 00000 f +0000000220 00000 f +0000000221 00000 f +0000000222 00000 f +0000000223 00000 f +0000000224 00000 f +0000000225 00000 f +0000000226 00000 f +0000000227 00000 f +0000000228 00000 f +0000000229 00000 f +0000000230 00000 f +0000000233 00000 f +0001083877 00000 n +0001083951 00000 n +0000000234 00000 f +0000000235 00000 f +0000000236 00000 f +0000000237 00000 f +0000000238 00000 f +0000000239 00000 f +0000000240 00000 f +0000000245 00000 f +0001090863 00000 n +0001090895 00000 n +0001090745 00000 n +0001090777 00000 n +0000000246 00000 f +0000000247 00000 f +0000000248 00000 f +0000000249 00000 f +0000000250 00000 f +0000000251 00000 f +0000000252 00000 f +0000000253 00000 f +0000000254 00000 f +0000000255 00000 f +0000000256 00000 f +0000000257 00000 f +0000000258 00000 f +0000000259 00000 f +0000000260 00000 f +0000000261 00000 f +0000000262 00000 f +0000000265 00000 f +0001084025 00000 n +0001084099 00000 n +0000000266 00000 f +0000000267 00000 f +0000000268 00000 f +0000000269 00000 f +0000000270 00000 f +0000000271 00000 f +0000000272 00000 f +0000000277 00000 f +0001090627 00000 n +0001090659 00000 n +0001090509 00000 n +0001090541 00000 n +0000000278 00000 f +0000000279 00000 f +0000000280 00000 f +0000000281 00000 f +0000000282 00000 f +0000000283 00000 f +0000000284 00000 f +0000000285 00000 f +0000000286 00000 f +0000000287 00000 f +0000000288 00000 f +0000000289 00000 f +0000000290 00000 f +0000000291 00000 f +0000000292 00000 f +0000000293 00000 f +0000000294 00000 f +0000000297 00000 f +0001084173 00000 n +0001084247 00000 n +0000000298 00000 f +0000000299 00000 f +0000000300 00000 f +0000000301 00000 f +0000000302 00000 f +0000000303 00000 f +0000000304 00000 f +0000000309 00000 f +0001090391 00000 n +0001090423 00000 n +0001090273 00000 n +0001090305 00000 n +0000000310 00000 f +0000000311 00000 f +0000000312 00000 f +0000000313 00000 f +0000000314 00000 f +0000000315 00000 f +0000000316 00000 f +0000000317 00000 f +0000000318 00000 f +0000000319 00000 f +0000000320 00000 f +0000000321 00000 f +0000000322 00000 f +0000000323 00000 f +0000000324 00000 f +0000000325 00000 f +0000000326 00000 f +0000000329 00000 f +0001084321 00000 n +0001084395 00000 n +0000000330 00000 f +0000000331 00000 f +0000000332 00000 f +0000000333 00000 f +0000000334 00000 f +0000000335 00000 f +0000000336 00000 f +0000000341 00000 f +0001090155 00000 n +0001090187 00000 n +0001090037 00000 n +0001090069 00000 n +0000000342 00000 f +0000000343 00000 f +0000000344 00000 f +0000000345 00000 f +0000000346 00000 f +0000000347 00000 f +0000000348 00000 f +0000000349 00000 f +0000000350 00000 f +0000000351 00000 f +0000000352 00000 f +0000000353 00000 f +0000000354 00000 f +0000000355 00000 f +0000000356 00000 f +0000000357 00000 f +0000000358 00000 f +0000000361 00000 f +0001084469 00000 n +0001084543 00000 n +0000000362 00000 f +0000000363 00000 f +0000000364 00000 f +0000000365 00000 f +0000000366 00000 f +0000000367 00000 f +0000000368 00000 f +0000000373 00000 f +0001089919 00000 n +0001089951 00000 n +0001089801 00000 n +0001089833 00000 n +0000000374 00000 f +0000000375 00000 f +0000000376 00000 f +0000000377 00000 f +0000000378 00000 f +0000000379 00000 f +0000000380 00000 f +0000000381 00000 f +0000000382 00000 f +0000000383 00000 f +0000000384 00000 f +0000000385 00000 f +0000000386 00000 f +0000000387 00000 f +0000000388 00000 f +0000000389 00000 f +0000000390 00000 f +0000000393 00000 f +0001084617 00000 n +0001084691 00000 n +0000000394 00000 f +0000000395 00000 f +0000000396 00000 f +0000000397 00000 f +0000000398 00000 f +0000000399 00000 f +0000000400 00000 f +0000000405 00000 f +0001089683 00000 n +0001089715 00000 n +0001089565 00000 n +0001089597 00000 n +0000000406 00000 f +0000000407 00000 f +0000000408 00000 f +0000000409 00000 f +0000000410 00000 f +0000000411 00000 f +0000000412 00000 f +0000000413 00000 f +0000000414 00000 f +0000000415 00000 f +0000000416 00000 f +0000000417 00000 f +0000000418 00000 f +0000000419 00000 f +0000000420 00000 f +0000000421 00000 f +0000000422 00000 f +0000000425 00000 f +0001084765 00000 n +0001084839 00000 n +0000000426 00000 f +0000000427 00000 f +0000000428 00000 f +0000000429 00000 f +0000000430 00000 f +0000000431 00000 f +0000000432 00000 f +0000000437 00000 f +0001089447 00000 n +0001089479 00000 n +0001089329 00000 n +0001089361 00000 n +0000000438 00000 f +0000000439 00000 f +0000000440 00000 f +0000000441 00000 f +0000000442 00000 f +0000000443 00000 f +0000000444 00000 f +0000000445 00000 f +0000000446 00000 f +0000000447 00000 f +0000000448 00000 f +0000000449 00000 f +0000000450 00000 f +0000000451 00000 f +0000000452 00000 f +0000000453 00000 f +0000000454 00000 f +0000000457 00000 f +0001084913 00000 n +0001084987 00000 n +0000000458 00000 f +0000000459 00000 f +0000000460 00000 f +0000000461 00000 f +0000000462 00000 f +0000000463 00000 f +0000000464 00000 f +0000000469 00000 f +0001089211 00000 n +0001089243 00000 n +0001089093 00000 n +0001089125 00000 n +0000000470 00000 f +0000000471 00000 f +0000000472 00000 f +0000000473 00000 f +0000000474 00000 f +0000000475 00000 f +0000000476 00000 f +0000000477 00000 f +0000000478 00000 f +0000000479 00000 f +0000000480 00000 f +0000000481 00000 f +0000000482 00000 f +0000000483 00000 f +0000000484 00000 f +0000000485 00000 f +0000000486 00000 f +0000000489 00000 f +0001085061 00000 n +0001085135 00000 n +0000000490 00000 f +0000000491 00000 f +0000000492 00000 f +0000000493 00000 f +0000000494 00000 f +0000000495 00000 f +0000000496 00000 f +0000000501 00000 f +0001088975 00000 n +0001089007 00000 n +0001088857 00000 n +0001088889 00000 n +0000000502 00000 f +0000000503 00000 f +0000000504 00000 f +0000000505 00000 f +0000000506 00000 f +0000000507 00000 f +0000000508 00000 f +0000000509 00000 f +0000000510 00000 f +0000000511 00000 f +0000000512 00000 f +0000000513 00000 f +0000000514 00000 f +0000000515 00000 f +0000000516 00000 f +0000000517 00000 f +0000000518 00000 f +0000000521 00000 f +0001085209 00000 n +0001085283 00000 n +0000000522 00000 f +0000000523 00000 f +0000000524 00000 f +0000000525 00000 f +0000000526 00000 f +0000000527 00000 f +0000000528 00000 f +0000000533 00000 f +0001088739 00000 n +0001088771 00000 n +0001088621 00000 n +0001088653 00000 n +0000000534 00000 f +0000000535 00000 f +0000000536 00000 f +0000000537 00000 f +0000000538 00000 f +0000000539 00000 f +0000000540 00000 f +0000000541 00000 f +0000000542 00000 f +0000000543 00000 f +0000000544 00000 f +0000000545 00000 f +0000000546 00000 f +0000000547 00000 f +0000000548 00000 f +0000000549 00000 f +0000000550 00000 f +0000000553 00000 f +0001085357 00000 n +0001085431 00000 n +0000000554 00000 f +0000000555 00000 f +0000000556 00000 f +0000000557 00000 f +0000000558 00000 f +0000000559 00000 f +0000000560 00000 f +0000000565 00000 f +0001088503 00000 n +0001088535 00000 n +0001088385 00000 n +0001088417 00000 n +0000000566 00000 f +0000000567 00000 f +0000000568 00000 f +0000000569 00000 f +0000000570 00000 f +0000000571 00000 f +0000000572 00000 f +0000000573 00000 f +0000000574 00000 f +0000000575 00000 f +0000000576 00000 f +0000000577 00000 f +0000000578 00000 f +0000000579 00000 f +0000000580 00000 f +0000000581 00000 f +0000000582 00000 f +0000000585 00000 f +0001085505 00000 n +0001085579 00000 n +0000000586 00000 f +0000000587 00000 f +0000000588 00000 f +0000000589 00000 f +0000000590 00000 f +0000000591 00000 f +0000000592 00000 f +0000000597 00000 f +0001088267 00000 n +0001088299 00000 n +0001088149 00000 n +0001088181 00000 n +0000000598 00000 f +0000000599 00000 f +0000000600 00000 f +0000000601 00000 f +0000000602 00000 f +0000000603 00000 f +0000000604 00000 f +0000000605 00000 f +0000000606 00000 f +0000000607 00000 f +0000000608 00000 f +0000000609 00000 f +0000000610 00000 f +0000000611 00000 f +0000000612 00000 f +0000000613 00000 f +0000000614 00000 f +0000000617 00000 f +0001085653 00000 n +0001085727 00000 n +0000000618 00000 f +0000000619 00000 f +0000000620 00000 f +0000000621 00000 f +0000000622 00000 f +0000000623 00000 f +0000000624 00000 f +0000000629 00000 f +0001088031 00000 n +0001088063 00000 n +0001087913 00000 n +0001087945 00000 n +0000000630 00000 f +0000000631 00000 f +0000000632 00000 f +0000000633 00000 f +0000000634 00000 f +0000000635 00000 f +0000000636 00000 f +0000000637 00000 f +0000000638 00000 f +0000000639 00000 f +0000000640 00000 f +0000000641 00000 f +0000000642 00000 f +0000000643 00000 f +0000000644 00000 f +0000000645 00000 f +0000000646 00000 f +0000000649 00000 f +0001085801 00000 n +0001085875 00000 n +0000000650 00000 f +0000000651 00000 f +0000000652 00000 f +0000000653 00000 f +0000000654 00000 f +0000000655 00000 f +0000000656 00000 f +0000000661 00000 f +0001087795 00000 n +0001087827 00000 n +0001087677 00000 n +0001087709 00000 n +0000000662 00000 f +0000000663 00000 f +0000000664 00000 f +0000000665 00000 f +0000000666 00000 f +0000000667 00000 f +0000000668 00000 f +0000000669 00000 f +0000000670 00000 f +0000000671 00000 f +0000000672 00000 f +0000000673 00000 f +0000000674 00000 f +0000000675 00000 f +0000000676 00000 f +0000000677 00000 f +0000000678 00000 f +0000000682 00000 f +0001085949 00000 n +0001086023 00000 n +0001086097 00000 n +0000000683 00000 f +0000000684 00000 f +0000000685 00000 f +0000000686 00000 f +0000000687 00000 f +0000000688 00000 f +0000000689 00000 f +0000000696 00000 f +0001087559 00000 n +0001087591 00000 n +0001087441 00000 n +0001087473 00000 n +0001087323 00000 n +0001087355 00000 n +0000000697 00000 f +0000000698 00000 f +0000000699 00000 f +0000000700 00000 f +0000000701 00000 f +0000000702 00000 f +0000000703 00000 f +0000000704 00000 f +0000000705 00000 f +0000000706 00000 f +0000000707 00000 f +0000000708 00000 f +0000000709 00000 f +0000000710 00000 f +0000000711 00000 f +0000000712 00000 f +0000000713 00000 f +0000000717 00000 f +0001086245 00000 n +0001086171 00000 n +0001086319 00000 n +0000000718 00000 f +0000000719 00000 f +0000000720 00000 f +0000000721 00000 f +0000000722 00000 f +0000000723 00000 f +0000000724 00000 f +0000000731 00000 f +0001087205 00000 n +0001087237 00000 n +0001087087 00000 n +0001087119 00000 n +0001086969 00000 n +0001087001 00000 n +0000000732 00000 f +0000000733 00000 f +0000000734 00000 f +0000000735 00000 f +0000000736 00000 f +0000000737 00000 f +0000000738 00000 f +0000000739 00000 f +0000000740 00000 f +0000000741 00000 f +0000000742 00000 f +0000000743 00000 f +0000000744 00000 f +0000000745 00000 f +0000000746 00000 f +0000000747 00000 f +0000000000 00000 f +0000000000 00000 f +0001086393 00000 n +0001086467 00000 n +0001086541 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0001086851 00000 n +0001086883 00000 n +0001086733 00000 n +0001086765 00000 n +0001086615 00000 n +0001086647 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000052047 00000 n +0000051545 00000 n +0000051471 00000 n +0000051619 00000 n +0001092621 00000 n +0000048843 00000 n +0000448189 00000 n +0000058318 00000 n +0000058204 00000 n +0000050383 00000 n +0000050907 00000 n +0000050957 00000 n +0000051929 00000 n +0000051961 00000 n +0000051811 00000 n +0000051843 00000 n +0000051693 00000 n +0000051725 00000 n +0000052301 00000 n +0000052559 00000 n +0000058355 00000 n +0000448265 00000 n +0000448653 00000 n +0000449657 00000 n +0000459603 00000 n +0000525192 00000 n +0000558149 00000 n +0000623738 00000 n +0000689327 00000 n +0000754916 00000 n +0000820505 00000 n +0000886094 00000 n +0000951683 00000 n +0001017272 00000 n +0001092664 00000 n +trailer <]>> startxref 1092834 %%EOF \ No newline at end of file diff --git a/server/.dockerignore b/server/back/.dockerignore similarity index 100% rename from server/.dockerignore rename to server/back/.dockerignore diff --git a/server/back/.gitignore b/server/back/.gitignore new file mode 100644 index 0000000..e2ff7c4 --- /dev/null +++ b/server/back/.gitignore @@ -0,0 +1,4 @@ +/trie_modules +/build +/bin +/CMakeLists.txt \ No newline at end of file diff --git a/server/Dockerfile b/server/back/Dockerfile similarity index 100% rename from server/Dockerfile rename to server/back/Dockerfile diff --git a/server/docker-compose.yml b/server/back/docker-compose.yml similarity index 100% rename from server/docker-compose.yml rename to server/back/docker-compose.yml diff --git a/server/container_make b/server/back/source/container_make similarity index 100% rename from server/container_make rename to server/back/source/container_make diff --git a/server/source/served.cpp b/server/back/source/served.cpp similarity index 100% rename from server/source/served.cpp rename to server/back/source/served.cpp diff --git a/server/back/tmake.yaml b/server/back/tmake.yaml new file mode 100644 index 0000000..1497850 --- /dev/null +++ b/server/back/tmake.yaml @@ -0,0 +1,18 @@ +name: tmake_server +configure: + for: ninja + mac, linux: + for: cmake + linkerFlags: + ldl: true +build: + with: ninja + mac, linux: + with: cmake + linkerFlags: + ldl: true +require: + mongocxx: + link: ../examples/mongocxx + served: + link: ../examples/served diff --git a/server/devops/.gitignore b/server/devops/.gitignore new file mode 100644 index 0000000..2441fc8 --- /dev/null +++ b/server/devops/.gitignore @@ -0,0 +1,3 @@ +/public/.well-known +.DS_Store +node_modules diff --git a/server/devops/Gruntfile.coffee b/server/devops/Gruntfile.coffee new file mode 100644 index 0000000..095d722 --- /dev/null +++ b/server/devops/Gruntfile.coffee @@ -0,0 +1,452 @@ +os = require('os') +sh = require('shelljs') +path = require('path') +fs = require('fs-extended') +yaml = require('js-yaml') +_ = require('typed-json-transform') + +services = { + front: require('./docker/front/build') + theme: require('./docker/theme/build') + mailer: require('./docker/mailer/build') + rabbitmq: require('./docker/rabbitmq/build') +} + +# region = process.env.REGION || 'us-west-2' +# ecr = "738600938019.dkr.ecr.#{region}.amazonaws.com" +ecr = "devops.chroma.fund" + +docker = + hub: {} + aws: {} + +_.each services, (service, key) -> + docker.hub[key] = "tmake/#{key}:#{service.version}" + docker.aws[key] = "#{ecr}/tmake/#{key}:#{service.version}" + +urls = (namespace) -> 'triemake.com' +hosts = (namespace) -> ['www.triemake.com', 'triemake.com'] + +String::replaceAll = (search, replacement) -> + target = this + target.split(search).join replacement + +replaceWithSecrets = (txt, secrets) -> + _.each secrets, (section, sectionKey) -> + _.each section, (setting, settingKey) -> + txt = txt.replaceAll("$#{sectionKey}_#{settingKey}".toUpperCase(), setting) + return txt + +writeTls = (namespace, keysPath) -> + try + data = + 'tls.crt': fs.readFileSync "#{keysPath}/fullchain.pem", 'base64' + 'tls.key': fs.readFileSync "#{keysPath}/privkey.pem", 'base64' + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: 'tls' + type: 'Opaque' + data: data + # secret = _.map(settings, (v,k) -> '#{k}=\'#{v}\'') + fs.writeFileSync "private/dist/#{namespace}/tls-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + catch e + console.log('no ssl credentials for', namespace) + +writeNginx = (namespace, service) -> + data = + 'nginx.conf': fs.readFileSync("templates/secrets/#{service}.conf", 'base64').replaceAll('GRUNT_NAMESPACE', namespace) + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: "#{service}" + type: 'Opaque' + data: data + # secret = _.map(settings, (v,k) -> '#{k}=\'#{v}\'') + fs.writeFileSync "private/dist/#{namespace}/#{service}-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + +writeConsul = (env, namespace, url, nuke) -> + keysPath = "private/src/consul/#{namespace}" + if nuke || (!fs.existsSync(keysPath)) + sh.mkdir('-p', keysPath); + consul_gen = fs.readFileSync "templates/secrets/consul.sh", 'utf8' + consul_gen = consul_gen.replaceAll('GRUNT_URL', url) + consul_gen = consul_gen.replaceAll('GRUNT_NAMESPACE', namespace) + fs.writeFileSync "#{keysPath}/certs.sh", consul_gen, 'utf8' + sh.exec("cd #{keysPath} && sh certs.sh #{namespace}"); + masterToken = fs.readFileSync("#{keysPath}/acl-agent-master-token", 'utf8').replace(/(\r\n|\n|\r)/gm,""); + data = + acl_master_token: masterToken + consulConfig = + ca_file: "/etc/tls/ca.pem" + cert_file: "/etc/tls/consul.pem" + key_file: "/etc/tls/consul-key.pem" + verify_incoming: true + verify_outgoing: true + verify_server_hostname: true + acl_datacenter: namespace + acl_default_policy: "deny" + acl_down_policy: "deny" + acl_master_token: masterToken + acl_agent_master_token: masterToken + acl_agent_token: masterToken + ports: + "https": 8443 + data["server.json"] = JSON.stringify(consulConfig) + fs.readdirSync(keysPath).forEach (v) -> + fp = "#{keysPath}/#{v}" + if (v.indexOf('.crt') != -1) or (v.indexOf('.key') != -1) or (v.indexOf('.pem') != -1) then data[v] = fs.readFileSync(fp, 'utf8') + ['gossip-encryption-key'].forEach (v) -> + data[v] = fs.readFileSync("#{keysPath}/#{v}", 'utf8') + _.each data, (v, k) -> data[k] = new Buffer(v).toString('base64') + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: 'consul' + type: 'Opaque' + data: data + fs.writeFileSync "private/dist/#{namespace}/consul-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + writeServiceSecret 'vault', namespace, [ + ["VAULT_CONSUL_KEY", masterToken] + ["GRUNT_NAMESPACE", namespace] + ["GRUNT_URL", url] + ] + +writeMongo = (env, namespace, url, nuke) -> + keysPath = "private/src/mongo/#{namespace}" + if nuke || (!fs.existsSync(keysPath)) + sh.mkdir('-p', keysPath); + mongo_gen = fs.readFileSync "templates/secrets/mongo.sh", 'utf8' + mongo_gen = mongo_gen.replaceAll('GRUNT_URL', url) + fs.writeFileSync "#{keysPath}/certs.sh", mongo_gen, 'utf8' + sh.exec("cd #{keysPath} && sh certs.sh #{namespace}"); + data = {} + certsFolder = "#{keysPath}/tls" + fs.readdirSync(certsFolder).forEach (v) -> + fp = "#{certsFolder}/#{v}" + if (v.indexOf('.pem') != -1) && (v.indexOf('mongo') != -1) then data[v] = fs.readFileSync(fp, 'base64') + data['root-ca.pem'] = fs.readFileSync("#{keysPath}/tls/root-ca.pem", 'base64') + data['setup_rs.js'] = fs.readFileSync("#{keysPath}/setup_rs.js", 'base64') + data['setup_auth.js'] = fs.readFileSync("#{keysPath}/setup_auth.js", 'base64') + data['setup.sh'] = fs.readFileSync("#{keysPath}/setup.sh", 'base64') + data['run.sh'] = fs.readFileSync("#{keysPath}/run.sh", 'base64') + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: 'mongo' + type: 'Opaque' + data: data + fs.writeFileSync "private/dist/#{namespace}/mongo-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + +writeServiceTlsSecret = (service, namespace) -> + keysPath = "private/src/cluster/#{namespace}/tls/#{service}" + unless fs.existsSync keysPath + return + data = {} + fs.readdirSync(keysPath).forEach (v) -> + fp = "#{keysPath}/#{v}" + data[v] = fs.readFileSync(fp, 'base64') + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: "#{service}-tls" + type: 'Opaque' + data: data + fs.writeFileSync "private/dist/#{namespace}/#{service}-tls-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + console.log "+ #{service}-tls-secret" + +writeServiceSecret = (service, namespace, repl) -> + return if fs.existsSync "private/dist/#{namespace}/#{service}-secret.json" + secretFile = "" + try + secretFile = fs.readFileSync("private/src/#{service}/#{namespace}.yaml", 'utf8') + catch e + try + secretFile = fs.readFileSync("private/src/#{service}/default.yaml", 'utf8') + catch e + return + repl.forEach (entry) -> + secretFile = secretFile.replaceAll entry[0], entry[1] + data = yaml.load(secretFile) + _.each data, (v, k) -> + if _.check(v, String) + data[k] = new Buffer(v).toString('base64') + else + data[k] = new Buffer(JSON.stringify(v)).toString('base64') + secret = + apiVersion: 'v1' + kind: 'Secret' + metadata: name: service + type: 'Opaque' + data: data + fs.writeFileSync "private/dist/#{namespace}/#{service}-secret.json", JSON.stringify(secret, 0, 2), 'utf8' + console.log "+ #{service}-secret" + +renderYamlTemplate = (kubeObject, namespace, template, repl) -> + srcPath = "templates/#{kubeObject}/#{template}.yaml" + data = {} + try + data = fs.readFileSync srcPath, 'utf8' + catch + return + try + repl.forEach (entry) -> + data = data.replaceAll entry[0], entry[1] + dstPath = "private/dist/#{namespace}/#{template}-#{kubeObject}.yaml" + fs.writeFileSync dstPath, data, 'utf8' + console.log "+ #{template}-#{kubeObject}" + catch + console.log "error creating yaml template {template}-#{kubeObject}" + +copyYamlTemplate = (kubeObject, namespace, fileName) -> + try + fs.copyFileSync "templates/#{kubeObject}/#{fileName}.yaml", "private/dist/#{namespace}/#{fileName}-#{kubeObject}.yaml" + catch + +writeIngress = (namespace, url, names) -> + getIngressTemplate = (namespace) -> + switch namespace + when 'www', 'impactu' then 'nakedDomain' + else namespace + try + template = yaml.load fs.readFileSync(path.join(__dirname, "templates/ingress/#{getIngressTemplate(namespace)}.yaml"), 'utf8') + catch + console.log('using default subdomain ingress template') + template = yaml.load fs.readFileSync(path.join(__dirname, "templates/ingress/default.yaml"), 'utf8') + template.spec.tls[0].hosts = hosts(namespace) + paths = [] + _.each template.spec.rules[0].http.paths.GRUNT_REPLACE, (info, serviceName) -> + endpoints = info.routes.replace(/ /g, '').split(',') + _.each endpoints, (endpoint) -> + entry = + path: path.join '/', endpoint + backend: + serviceName: serviceName + servicePort: info.port + paths.push entry + _.each template.spec.rules, (rule) -> + rule.http.paths = _.clone(paths); + content = yaml.dump(template) + content = content.replaceAll('GRUNT_URL', url) + fs.writeFileSync "private/dist/#{namespace}/ingress.yaml", content, 'utf8' + +module.exports = (grunt) -> + grunt.loadNpmTasks('grunt-available-tasks'); + grunt.initConfig + availabletasks: + tasks: + options: + filter: 'exclude', + tasks: ['availabletasks', 'default', 'tasks'] + + grunt.registerTask 'ecr-secret', 'create ecr login credentials for minikube', -> + namespace = grunt.option('namespace') || process.env.NAMESPACE || 'minikube' + email = 'leif@chroma.io' + # user = 'AWS' + secretName = 'ecr-secret' + # out = sh.exec('aws ecr get-login', {silent: true}).stdout + # console.log out + # password = out.replace("docker login -u #{user} -p ", '').replace(" -e none https://#{ecr}", '').replace('\n', '') + registryCredentials = require('./private/src/docker/registry.json'); + sh.exec("kubectl --namespace=#{namespace} delete secret #{secretName}"); + console.log("created docker secret for #{namespace} @ #{ecr}") + cmd = "kubectl --namespace=#{namespace} create secret docker-registry #{secretName} --docker-username=#{registryCredentials.user} --docker-password=#{registryCredentials.pass} --docker-server=#{ecr} --docker-email=#{email}" + sh.exec(cmd); + + getServices = (namespace) -> + switch namespace + when 'impactu' then ['wordpress', 'meteor', 'ingress-controller', 'wordpress-mysql', 'mongo', 'namespace', 'theme', 'mailer', 'rabbitmq'] + when 'aucanna' then ['meteor', 'ingress-controller', 'mongo', 'namespace', 'theme', 'mailer', 'rabbitmq'] + else ['front', 'meteor', 'ingress-controller', 'mongo', 'namespace', 'theme', 'mailer', 'rabbitmq'] + + getSubdomains = (namespace) -> + switch namespace + when 'www', 'impactu' then ['', 'www'] + else [namespace] + + grunt.registerTask 'render', 'render templates for minikube OR production by using flag --namespace=YOUR_NAMESPACE', -> + namespace = grunt.option('namespace') || process.env.NAMESPACE || 'minikube' + nuke = grunt.option('nuke') + dockerEnv = if namespace == 'minikube' then 'hub' else 'aws' + sh.rm('-rf', "private/dist/#{namespace}") + sh.mkdir('-p', "private/dist/#{namespace}") + # secrets + configs + url = urls(namespace) + subdomains = getSubdomains(namespace) + defaultRepl = [ + ["GRUNT_NAMESPACE", namespace] + ["GRUNT_URL", url] + ] + writeIngress(namespace, url, subdomains) + writeTls(namespace, "private/src/tls/#{url}") + renderYamlTemplate 'config-map', namespace, 'storage', defaultRepl + renderYamlTemplate 'config-map', namespace, 'ingress-controller-sticky', defaultRepl + renderYamlTemplate 'public-service', namespace, 'ingress-controller', defaultRepl + getServices(namespace).forEach (template) -> + chromaRepl = [ + ["GRUNT_DOCKER_PREFIX"] + ["GRUNT_#{template.toUpperCase()}_IMAGE", docker[dockerEnv][template]] + ["GRUNT_NAMESPACE", namespace] + ["GRUNT_URL", url] + ] + writeServiceSecret template, namespace, chromaRepl + writeServiceTlsSecret template, namespace + renderYamlTemplate 'cluster-service', namespace, template, chromaRepl + renderYamlTemplate 'stateful-set', namespace, template, chromaRepl + renderYamlTemplate 'deployment', namespace, template, chromaRepl + + grunt.registerTask 'distribute', 'build docker container for service', -> + only = grunt.option('only') + exclude = grunt.option('exclude') + distribute = (namespace) -> + packagePath = path.join(__dirname, '..', namespace, 'package.json') + try + pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8')) + catch e + return console.log('no package to build @ ', packagePath) + code = sh.exec(pkg.scripts.distribute, {cwd: path.dirname(packagePath)}).code + if code then process.exit code + unless only then _.each services, (service, key) -> unless key == exclude then distribute(key) + else + if services[only] then distribute(only) + else console.log('no service found for', only) + + grunt.registerTask 'docker', 'build docker container(s) for service(s) - default to all', -> + only = grunt.option('only') + exclude = grunt.option('exclude') + unless only then _.each services, (service, key) -> unless key == exclude then service.build() + else + service = services[only] + if service then service.build() + else console.log('no service found for', only) + + grunt.registerTask 'build', 'both distribute + docker steps', ['distribute', 'docker'] + + grunt.registerTask 'install', 'build, containerize, update versions, push, deploy', ['build', 'push', 'render','apply'] + + grunt.registerTask 'push', 'push docker image to registry (hub or aws)', -> + registry = grunt.option('registry') || 'aws' + serviceName = grunt.option('only') || '' + if serviceName + namespace = grunt.option('namespace') || 'minikube' + localTag = docker['hub'][serviceName] + if registry == 'aws' + productionTag = docker[registry][serviceName] + sh.exec "docker tag #{localTag} #{productionTag}" + sh.exec "eval $(aws ecr get-login --no-include-email) && docker push #{productionTag}" + else + sh.exec "docker push #{localTag}" + else + console.log('no service found for', serviceName) + + grunt.registerTask 'apply', 'start services on minikube or kubernetes cluster', -> + namespace = grunt.option('namespace') || process.env.NAMESPACE || 'default' + base = "private/dist/#{namespace}" + service = grunt.option('only') || '' + cmd = "kubectl --namespace=#{namespace} apply -f" + if service + if service == 'ingress' + sh.exec("#{cmd} #{base}/#{service}.yaml"); + else if (service == 'mongo' or service == 'cockroachdb' or service == 'rabbitmq') + sh.exec("#{cmd} #{base}/#{service}-cluster-service.yaml"); + sh.exec("#{cmd} #{base}/#{service}-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-tls-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-stateful-set.yaml"); + else + sh.exec("#{cmd} #{base}/#{service}-cluster-service.yaml"); + sh.exec("#{cmd} #{base}/#{service}-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-deployment.yaml"); + else + secrets = [] + configMaps = [] + services = [] + jobs = [] + sets = [] + deployments = [] + _.each fs.readdirSync(base), (v) -> + if v.indexOf('.json') != -1 then secrets.push v + else if v.indexOf('config-map') != -1 then configMaps.push v + else if v.indexOf('job') != -1 then jobs.push v + else if v.indexOf('service') != -1 then services.push v + else if v.indexOf('stateful-set') != -1 then sets.push v + else if v.indexOf('.yaml') != -1 then deployments.push v + secrets.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + configMaps.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + services.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + sets.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + jobs.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + deployments.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + + grunt.registerTask 'configure', 'configure running services', -> + namespace = grunt.option('namespace') || 'default' + fs.readdirSync('config').forEach (v) -> sh.exec("NAMESPACE=#{namespace} sh config/#{v}"); + + grunt.registerTask 'delete', 'start services on minikube or kubernetes cluster', -> + namespace = grunt.option('namespace') || process.env.NAMESPACE || 'default' + base = "private/dist/#{namespace}" + service = grunt.option('only') || '' + cmd = "kubectl --namespace=#{namespace} delete -f" + if service + if service == 'ingress' + sh.exec("#{cmd} #{base}/#{service}.yaml"); + else if (service == 'mongo' or service == 'cockroachdb' or service == 'rabbitmq') + sh.exec("#{cmd} #{base}/#{service}-cluster-service.yaml"); + sh.exec("#{cmd} #{base}/#{service}-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-tls-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-stateful-set.yaml"); + else + sh.exec("#{cmd} #{base}/#{service}-cluster-service.yaml"); + sh.exec("#{cmd} #{base}/#{service}-secret.json"); + sh.exec("#{cmd} #{base}/#{service}-deployment.yaml"); + else + secrets = [] + configMaps = [] + services = [] + jobs = [] + sets = [] + deployments = [] + _.each fs.readdirSync(base), (v) -> + if v.indexOf('.json') != -1 then secrets.push v + else if v.indexOf('config-map') != -1 then configMaps.push v + else if v.indexOf('job') != -1 then jobs.push v + else if v.indexOf('service') != -1 then services.push v + else if v.indexOf('stateful-set') != -1 then sets.push v + else if v.indexOf('.yaml') != -1 then deployments.push v + secrets.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + configMaps.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + services.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + sets.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + jobs.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + deployments.forEach (file) -> + sh.exec("#{cmd} #{base}/#{file}"); + + + grunt.registerTask 'kops', -> + namespace = grunt.option('namespace') || process.env.NAMESPACE || 'default' + console.log """ + export NAME=#{namespace}.chroma.fund + export KOPS_STATE_STORE=s3://k8s-#{namespace}-chroma-fund + + then + + kops get instancegroups + OR + kops edit ig nodes + + then + kops update cluster #{namespace}.chroma.fund + kops update cluster #{namespace}.chroma.fund --yes + """ + grunt.registerTask('tasks', ['availabletasks']); + diff --git a/server/devops/config/gen_tls.js b/server/devops/config/gen_tls.js new file mode 100644 index 0000000..6117a59 --- /dev/null +++ b/server/devops/config/gen_tls.js @@ -0,0 +1,211 @@ +const path = require('path'); +const spawn = require('child_process').spawn; +var fs = require("fs"); +var sh = require('shelljs'); + +const namespace = process.env.NAMESPACE; +let url; +if (namespace == 'www') { + url = 'chroma.fund' +} else { + url = `${namespace}.chroma.fund` +} +const localDns = `${namespace}.svc.cluster.local` +const artifactsDir = path.join(__dirname, '../../secrets/src/cluster', namespace); + +if (fs.existsSync(artifactsDir)) { + console.log('already printed cluster tls secrets for namespace', namespace); + return +} +console.log('run vault @', url, 'cluster address', localDns, 'render to', artifactsDir); + +const configPath = path.join(__dirname, 'vault.hcl'); +const vault_server = spawn('vault', ['server', '-config', configPath]); + +vault_server.on('error', function (error) { + console.warn('vault server error', error); +}); + +vault_server.stdout.on('data', (data) => { + console.log(`${data}`); +}); + +vault_server.stderr.on('data', (data) => { + console.warn(`${data}`); +}); + +vault_server.on('close', (code) => { + console.log(`child process exited with code ${code}`); +}); + +var options = { + apiVersion: 'v1', // default + endpoint: 'http://localhost:8200', // default + token: '1234' // optional client token; can be fetched after valid initialization of the server +}; +var vault = require("node-vault")(options); + +var token; + +vault.initialized().then((res) => { + return vault.init({ + secret_shares: 1, + secret_threshold: 1 + }) + }) + .then((result) => { + vault.token = result.root_token; + return vault.unseal({ + key: result.keys[0] + }) + }) + .then(() => vault.addPolicy({ + name: 'localhost', + rules: '{ "path": { "*": { "policy": "write" } } }' + })) + .then(pki) + .then(() => + vault.enableAuth({ + mount_point: 'approle', + type: 'approle', + description: 'approle auth', + })) + .then(() => + vault.write('auth/approle/role/localhost', { + role_id: 'localhost', + bind_secret_id: false, + policies: 'localhost', + bound_cidr_list: '127.0.0.0/8', + bind_secret_id: 'false' + })) + .then(() => { + console.log('init success, fetch certs'); + fetchPKI(); + }).catch((error) => { + console.log(error.message, error.stack); + }); + +function pki() { + return vault.mount({ + mount_point: 'pki', + type: 'pki', + description: 'pki root' + }) + .then(() => vault.write('sys/mounts/pki/tune', { + "max_lease_ttl": '87600h' + })) + .then(() => vault.write('pki/root/generate/internal', { + common_name: url, + ttl: '87600h' + })) + .then(() => vault.write('pki/config/urls', { + issuing_certificates: `vault.${url}:8200/v1/pki/ca`, + crl_distribution_points: `vault.${url}:8200/v1/pki/crl`, + })) + .then(() => vault.write(`pki/roles/cockroachdb`, { + allow_any_name: 'true', + organization: 'cockroachdb', + max_ttl: '87600h' + })) + .then(() => vault.write(`pki/roles/mongo`, { + allow_any_name: 'true', + organization: 'mongo', + max_ttl: '87600h' + })) + .then(() => vault.write(`pki/roles/meteor`, { + allow_any_name: 'true', + organization: 'meteor', + max_ttl: '87600h' + })).then(() => vault.write(`pki/roles/uoa`, { + allow_any_name: 'true', + organization: 'uoa', + max_ttl: '87600h' + })).catch((error) => { + console.log(error.message, error.stack); + }); +} + +function fetchPKI() { + sh.exec(` +export VAULT_ADDR="http://127.0.0.1:8200" +SERVICE=mongo +APPROLE=localhost +CLUSTER_DNS=svc.cluster.local +CERT_DIR=${path.join(artifactsDir, '/tls/mongo')} +rm -rf $CERT_DIR +mkdir -p $CERT_DIR +OU=$SERVICE + +vault write auth/approle/login role_id=$APPROLE | grep -w token | while read id token; do echo $token > ~/.vault-token; done +for i in {0..2} +do +NODE=$SERVICE-$i +vault write -format=json pki/issue/$SERVICE \ + common_name=$NODE \ + alt_names="$SERVICE.${url},$SERVICE.${namespace}.$CLUSTER_DNS,$NODE.$SERVICE,$NODE.$SERVICE.${namespace}.$CLUSTER_DNS" \ + ttl="87500h" \ + format=pem > $CERT_DIR/$SERVICE.json + +cat $CERT_DIR/$SERVICE.json | jq .data.certificate -r > $CERT_DIR/$NODE.crt +cat $CERT_DIR/$SERVICE.json | jq .data.private_key -r > $CERT_DIR/$NODE.key +cat $CERT_DIR/$NODE.crt $CERT_DIR/$NODE.key > $CERT_DIR/$NODE.pem +cat $CERT_DIR/$SERVICE.json | jq .data.issuing_ca -r > $CERT_DIR/ca.crt +done + +vault write -format=json pki/issue/$SERVICE \ + common_name=admin \ + ttl="87500h" \ + format=pem > $CERT_DIR/$SERVICE.json + +cat $CERT_DIR/$SERVICE.json | jq .data.certificate -r > $CERT_DIR/admin.crt +cat $CERT_DIR/$SERVICE.json | jq .data.private_key -r > $CERT_DIR/admin.key +cat $CERT_DIR/admin.crt $CERT_DIR/admin.key > $CERT_DIR/admin.pem + +vault write -format=json pki/issue/meteor \ + common_name=meteor \ + ttl="87500h" \ + format=pem > $CERT_DIR/$SERVICE.json + +cat $CERT_DIR/$SERVICE.json | jq .data.certificate -r > $CERT_DIR/meteor.crt +cat $CERT_DIR/$SERVICE.json | jq .data.private_key -r > $CERT_DIR/meteor.key +cat $CERT_DIR/meteor.crt $CERT_DIR/meteor.key > $CERT_DIR/meteor.pem +`); + + sh.exec(` +export VAULT_ADDR="http://127.0.0.1:8200" +SERVICE=cockroachdb +APPROLE=localhost +CLUSTER_DNS=svc.cluster.local +CERT_DIR=${path.join(artifactsDir, '/tls/cockroachdb')} +rm -rf $CERT_DIR +mkdir -p $CERT_DIR +OU=$SERVICE + +vault write auth/approle/login role_id=$APPROLE | grep -w token | while read id token; do echo $token > ~/.vault-token; done +for i in {0..2} +do +NODE=$SERVICE-$i +vault write -format=json pki/issue/$SERVICE \ + common_name=$NODE \ + alt_names="$SERVICE.${url},$SERVICE.${namespace}.$CLUSTER_DNS,$NODE.$SERVICE,$NODE.$SERVICE.${namespace}.$CLUSTER_DNS" \ + ttl="87500h" \ + format=pem > $CERT_DIR/$SERVICE.json + +cat $CERT_DIR/$SERVICE.json | jq .data.certificate -r > $CERT_DIR/$NODE.crt +cat $CERT_DIR/$SERVICE.json | jq .data.private_key -r > $CERT_DIR/$NODE.key +cat $CERT_DIR/$SERVICE.json | jq .data.issuing_ca -r > $CERT_DIR/ca.crt +cat $CERT_DIR/ca.crt $CERT_DIR/$NODE.crt > $CERT_DIR/$NODE-fullchain.pem +done + +vault write -format=json pki/issue/$SERVICE \ + common_name=root \ + ttl="87500h" \ + format=pem > $CERT_DIR/$SERVICE.json + +cat $CERT_DIR/$SERVICE.json | jq .data.certificate -r > $CERT_DIR/root.crt +cat $CERT_DIR/$SERVICE.json | jq .data.private_key -r > $CERT_DIR/root.key +cat $CERT_DIR/ca.crt $CERT_DIR/root.crt > $CERT_DIR/fullchain.pem +`); + + vault_server.kill(); +} \ No newline at end of file diff --git a/server/devops/config/rabbit_configure.sh b/server/devops/config/rabbit_configure.sh new file mode 100755 index 0000000..9be7ec9 --- /dev/null +++ b/server/devops/config/rabbit_configure.sh @@ -0,0 +1,2 @@ +#!/bin/bash +kubectl --namespace=$NAMESPACE exec rabbitmq-0 -- rabbitmqctl set_policy ha-all '.*' '{"ha-mode":"all"}' --apply-to queues diff --git a/server/devops/config/vault.hcl b/server/devops/config/vault.hcl new file mode 100644 index 0000000..1f0842a --- /dev/null +++ b/server/devops/config/vault.hcl @@ -0,0 +1,8 @@ +storage "inmem" {} + +listener "tcp" { + address = "0.0.0.0:8200" + tls_disable = 1 +} + +disable_mlock = true \ No newline at end of file diff --git a/server/devops/config/vault/kube.js b/server/devops/config/vault/kube.js new file mode 100644 index 0000000..91e695b --- /dev/null +++ b/server/devops/config/vault/kube.js @@ -0,0 +1,9 @@ +var K8s = require('k8s') + +// use kubectl + +var kubectl = K8s.kubectl({ + endpoint: 'http://192.168.10.10:8080' + , namespace: 'namespace' + , binary: '/usr/local/bin/kubectl' +}) \ No newline at end of file diff --git a/server/devops/config/vault/package.json b/server/devops/config/vault/package.json new file mode 100644 index 0000000..913689b --- /dev/null +++ b/server/devops/config/vault/package.json @@ -0,0 +1,26 @@ +{ + "name": "vault-init", + "version": "1.0.4", + "description": "secret service", + "main": "init.js", + "scripts": {}, + "author": "Leif Shackelford ", + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.0", + "minimist": "^1.2.0", + "node-vault": "^0.5.6" + }, + "devDependencies": {}, + "vaultSettings": { + "vault": { + "apiVersion": "v1", + "endpoint": "http://0.0.0.0:9000", + "token": "1234" + }, + "github": { + "team": "Owners", + "org": "chromapdx" + } + } +} diff --git a/server/devops/config/vault/vault.js b/server/devops/config/vault/vault.js new file mode 100644 index 0000000..48ee667 --- /dev/null +++ b/server/devops/config/vault/vault.js @@ -0,0 +1,139 @@ +const settings = require("./package.json").vaultSettings; +var argv = require('minimist')(process.argv.slice(2)); +var path = require('path'); +var sh = require('shelljs'); +settings.NAMESPACE = argv.namespace || process.env.NAMESPACE; + +settings.ca = { + domain: `${settings.NAMESPACE}.chroma.fund`, + cluster: `${settings.NAMESPACE}.svc.cluster.local` +}; + +if (!settings.NAMESPACE) { + throw new Error("no namespace provided"); +} + +if (process.env.VAULT_ADDR) { + settings.vault.endpoint = process.env.VAULT_ADDR; +} + +// get new instance of the client +var vault = require("node-vault")(settings.vault); +var Bluebird = require("bluebird"); +var fs = require("fs"); + +const masterCredentialsCachePath = path.join(__dirname, '../../private/src/vault', settings.NAMESPACE, 'master-vault-keys.json'); + +function doUnseal() { + var master = JSON.parse(fs.readFileSync(masterCredentialsCachePath, 'utf8')); + vault.token = master.root_token; + return Bluebird.each(master.keys, (key) => vault.unseal({ + key + })); +} + +function pki() { + return vault.write('sys/mounts/pki/tune', { + "max_lease_ttl": '87600h' + }).then(() => vault.write('pki/root/generate/internal', { + common_name: settings.ca.domain, + ttl: '87600h' + })).then(() => vault.write('pki/config/urls', { + issuing_certificates: `vault.${settings.ca.domain}:8200/v1/pki/ca`, + crl_distribution_points: `vault.${settings.ca.domain}:8200/v1/pki/crl`, + })).then(() => vault.write(`pki/roles/cockroachdb`, { + allow_any_name: 'true', + organization: 'chroma', + ou: 'cockroachdb', + max_ttl: '720h' + })).then(() => vault.write(`pki/roles/mongo`, { + allow_any_name: 'true', + organization: 'chroma', + ou: 'mongodb', + max_ttl: '720h' + })) +} + +const cli = { + unseal: function unseal() { + vault.initialized() + .then((result) => { + if (!result.initialized) { + console.log('vault has not been initialized'); + process.exit(0); + } + return doUnseal(); + }).then(() => { + console.log('vault has been unsealed'); + }); + }, + init: function init() { + vault.initialized() + .then((result) => { + console.log(result); + if (result.initialized) { + console.log('vault has already been initialized') + process.exit(0); + } + return vault.init({ + secret_shares: 3, + secret_threshold: 2 + }) + }) + .then((result) => { + console.log(JSON.stringify(result, 0, 2)); + sh.mkdir('-p', path.dirname(masterCredentialsCachePath)); + fs.writeFileSync(masterCredentialsCachePath, JSON.stringify(result, 0, 2)); + return doUnseal(); + }) + .then(() => vault.addPolicy({ + name: 'pod', + rules: '{ "path": { "pki/*": { "policy": "write" } } }', + })) + .then(() => vault.addPolicy({ + name: 'dev', + rules: '{ "path": { "*": { "policy": "sudo" } } }', + })) + .then(() => { + return vault.mount({ + mount_point: 'pki', + type: 'pki', + description: 'pki root', + }) + }).then(pki).then(() => { + return vault.enableAuth({ + mount_point: 'approle', + type: 'approle', + description: 'approle auth', + }) + .then(() => vault.write('auth/approle/role/pod', { + role_id: 'pod', + bind_secret_id: false, + policies: 'pod', + bound_cidr_list: '100.64.0.0/10,10.0.0.0/8' + })) + }).then(() => { + return vault.auths() + .then((result) => vault.enableAuth({ + mount_point: 'github', + type: 'github', + description: 'GitHub auth', + })) + .then(() => vault.write('auth/github/config', { + organization: settings.github.org + })) + .then(() => vault.write(`auth/github/map/teams/${settings.github.team}`, { + value: 'dev' + })) + .then(() => { + console.log('vault has been initialized with github, and local roles') + process.exit(0); + }) + }); + }, + pki: pki +} + +const command = argv._[0]; +if (!command) throw new Error("no command supplied ['init', 'unseal', 'pki']") +cli[argv._[0]](); \ No newline at end of file diff --git a/server/devops/config/vault/yarn.lock b/server/devops/config/vault/yarn.lock new file mode 100644 index 0000000..4a457c7 --- /dev/null +++ b/server/devops/config/vault/yarn.lock @@ -0,0 +1,349 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +ajv@^4.9.1: + version "4.11.7" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +bluebird@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.3.4.tgz#f780fe43e1a7a6510f67abd7d0d79533a40ddde6" + +bluebird@^2.3: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bluebird@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +debug@^2.1.3: + version "2.6.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0" + dependencies: + ms "0.7.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +lodash@^4.5.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +ms@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + +mustache@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0" + +node-vault@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.5.6.tgz#0da5c8d9db11f0217657f645df5853e5e562084f" + dependencies: + bluebird "3.3.4" + debug "^2.1.3" + mustache "^2.2.1" + request-promise "2.0.1" + tv4 "^1.2.7" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +request-promise@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-2.0.1.tgz#acbd47b725e39372ede3174cf29c38d9ecf2b30d" + dependencies: + bluebird "^2.3" + lodash "^4.5.0" + request "^2.34" + +request@^2.34: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sshpk@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tv4@^1.2.7: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" diff --git a/server/devops/docker/front/.gitignore b/server/devops/docker/front/.gitignore new file mode 100644 index 0000000..91e8583 --- /dev/null +++ b/server/devops/docker/front/.gitignore @@ -0,0 +1,2 @@ +/build +/package.json \ No newline at end of file diff --git a/server/devops/docker/front/Dockerfile b/server/devops/docker/front/Dockerfile new file mode 100644 index 0000000..0eb9b52 --- /dev/null +++ b/server/devops/docker/front/Dockerfile @@ -0,0 +1,12 @@ +FROM chromapdx/node:7 +LABEL name="front" + +COPY ./package.json /app/package.json +WORKDIR /app +RUN yarn --production + +COPY ./build /app/build +EXPOSE 3000 + +WORKDIR /app/build +CMD ["node", "server.js"] # run the index.js file \ No newline at end of file diff --git a/server/devops/docker/front/build.js b/server/devops/docker/front/build.js new file mode 100644 index 0000000..cc353d3 --- /dev/null +++ b/server/devops/docker/front/build.js @@ -0,0 +1,27 @@ +"use strict"; +const fs = require('fs-extended'); +const sh = require('shelljs'); +const path = require('path'); + +const packagePath = path.join(__dirname, '../../../front/package.json'); + +exports.version = JSON.parse(fs.readFileSync(packagePath, 'utf8')).version; + + +exports.build = function build() { + const revert = process.cwd(); + fs.copyFileSync(packagePath, path.join(__dirname, 'package.json')); + const tag = 'tmake/front:' + exports.version + console.log('building', tag); + const commands = [ + 'docker build -t ' + tag + ' .' + ] + sh.cd(__dirname); + commands.forEach(function (str) { + const code = sh.exec(str).code; + if (code) { + process.exit(code); + } + }); + sh.cd(revert); +} \ No newline at end of file diff --git a/server/devops/docker/mailer/.gitignore b/server/devops/docker/mailer/.gitignore new file mode 100644 index 0000000..91e8583 --- /dev/null +++ b/server/devops/docker/mailer/.gitignore @@ -0,0 +1,2 @@ +/build +/package.json \ No newline at end of file diff --git a/server/devops/docker/mailer/Dockerfile b/server/devops/docker/mailer/Dockerfile new file mode 100644 index 0000000..d4821a0 --- /dev/null +++ b/server/devops/docker/mailer/Dockerfile @@ -0,0 +1,12 @@ +FROM chromapdx/node:7 +LABEL name="mailer" + +COPY ./package.json /app/package.json +WORKDIR /app +RUN yarn --production + +COPY ./build /app/build +EXPOSE 3000 + +WORKDIR /app/build +CMD ["node", "server.js"] # run the index.js file \ No newline at end of file diff --git a/server/devops/docker/mailer/build.js b/server/devops/docker/mailer/build.js new file mode 100644 index 0000000..afd51b5 --- /dev/null +++ b/server/devops/docker/mailer/build.js @@ -0,0 +1,26 @@ +"use strict"; +const fs = require('fs-extended'); +const sh = require('shelljs'); +const path = require('path'); + +const packagePath = path.join(__dirname, '../../../mailer/package.json'); + +exports.version = JSON.parse(fs.readFileSync(packagePath, 'utf8')).version; + +exports.build = function build() { + const revert = process.cwd(); + fs.copyFileSync(packagePath, path.join(__dirname, 'package.json')); + const tag = 'tmake/mailer:' + exports.version + console.log('building', tag); + const commands = [ + 'docker build -t ' + tag + ' .' + ] + sh.cd(__dirname); + commands.forEach(function (str) { + const code = sh.exec(str).code; + if (code) { + process.exit(code); + } + }); + sh.cd(revert); +} \ No newline at end of file diff --git a/server/devops/docker/mailer/private/dist/aucanna/ingress.yaml b/server/devops/docker/mailer/private/dist/aucanna/ingress.yaml new file mode 100644 index 0000000..abd368b --- /dev/null +++ b/server/devops/docker/mailer/private/dist/aucanna/ingress.yaml @@ -0,0 +1,120 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress + annotations: + kubernetes.io/ingress.class: nginx + ingress.kubernetes.io/affinity: cookie + kubernetes.io/ingress.allow-http: 'false' +spec: + tls: + - secretName: tls + hosts: + - aucanna.chroma.fund + - rabbitmq.aucanna.chroma.fund + - cockroachdb.aucanna.chroma.fund + - mongo.aucanna.chroma.fund + rules: + - host: aucanna.chroma.fund + http: + paths: + - path: / + backend: + serviceName: front + servicePort: http + - path: /theme + backend: + serviceName: theme + servicePort: http + - path: /.well-known + backend: + serviceName: theme + servicePort: http + - path: /_timesync + backend: + serviceName: meteor + servicePort: http + - path: /account + backend: + serviceName: meteor + servicePort: http + - path: /admin + backend: + serviceName: meteor + servicePort: http + - path: /app + backend: + serviceName: meteor + servicePort: http + - path: /cfs + backend: + serviceName: meteor + servicePort: http + - path: /fonts + backend: + serviceName: meteor + servicePort: http + - path: /forgotPassword + backend: + serviceName: meteor + servicePort: http + - path: /join + backend: + serviceName: meteor + servicePort: http + - path: /login + backend: + serviceName: meteor + servicePort: http + - path: /logout + backend: + serviceName: meteor + servicePort: http + - path: /merged-stylesheets.css + backend: + serviceName: meteor + servicePort: http + - path: /meteor + backend: + serviceName: meteor + servicePort: http + - path: /offerings + backend: + serviceName: meteor + servicePort: http + - path: /offering + backend: + serviceName: meteor + servicePort: http + - path: /orders + backend: + serviceName: meteor + servicePort: http + - path: /order + backend: + serviceName: meteor + servicePort: http + - path: /packages + backend: + serviceName: meteor + servicePort: http + - path: /resetPassword + backend: + serviceName: meteor + servicePort: http + - path: /signup + backend: + serviceName: meteor + servicePort: http + - path: /signin + backend: + serviceName: meteor + servicePort: http + - path: /sockjs + backend: + serviceName: meteor + servicePort: http + - path: /verifyEmail + backend: + serviceName: meteor + servicePort: http diff --git a/server/devops/docker/mailer/private/dist/staging/ingress.yaml b/server/devops/docker/mailer/private/dist/staging/ingress.yaml new file mode 100644 index 0000000..9f5f87a --- /dev/null +++ b/server/devops/docker/mailer/private/dist/staging/ingress.yaml @@ -0,0 +1,120 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress + annotations: + kubernetes.io/ingress.class: nginx + ingress.kubernetes.io/affinity: cookie + kubernetes.io/ingress.allow-http: 'false' +spec: + tls: + - secretName: tls + hosts: + - staging.chroma.fund + - rabbitmq.staging.chroma.fund + - cockroachdb.staging.chroma.fund + - mongo.staging.chroma.fund + rules: + - host: staging.chroma.fund + http: + paths: + - path: / + backend: + serviceName: front + servicePort: http + - path: /theme + backend: + serviceName: theme + servicePort: http + - path: /.well-known + backend: + serviceName: theme + servicePort: http + - path: /_timesync + backend: + serviceName: meteor + servicePort: http + - path: /account + backend: + serviceName: meteor + servicePort: http + - path: /admin + backend: + serviceName: meteor + servicePort: http + - path: /app + backend: + serviceName: meteor + servicePort: http + - path: /cfs + backend: + serviceName: meteor + servicePort: http + - path: /fonts + backend: + serviceName: meteor + servicePort: http + - path: /forgotPassword + backend: + serviceName: meteor + servicePort: http + - path: /join + backend: + serviceName: meteor + servicePort: http + - path: /login + backend: + serviceName: meteor + servicePort: http + - path: /logout + backend: + serviceName: meteor + servicePort: http + - path: /merged-stylesheets.css + backend: + serviceName: meteor + servicePort: http + - path: /meteor + backend: + serviceName: meteor + servicePort: http + - path: /offerings + backend: + serviceName: meteor + servicePort: http + - path: /offering + backend: + serviceName: meteor + servicePort: http + - path: /orders + backend: + serviceName: meteor + servicePort: http + - path: /order + backend: + serviceName: meteor + servicePort: http + - path: /packages + backend: + serviceName: meteor + servicePort: http + - path: /resetPassword + backend: + serviceName: meteor + servicePort: http + - path: /signup + backend: + serviceName: meteor + servicePort: http + - path: /signin + backend: + serviceName: meteor + servicePort: http + - path: /sockjs + backend: + serviceName: meteor + servicePort: http + - path: /verifyEmail + backend: + serviceName: meteor + servicePort: http diff --git a/server/devops/docker/node/4.dockerfile b/server/devops/docker/node/4.dockerfile new file mode 100644 index 0000000..ebc2b6f --- /dev/null +++ b/server/devops/docker/node/4.dockerfile @@ -0,0 +1,37 @@ +FROM alpine:3.4 +# FROM alpine:3.5 + +ENV VERSION=v4.7.3 NPM_VERSION=3 +# ENV VERSION=v6.9.5 NPM_VERSION=3 +# ENV VERSION=v7.5.0 NPM_VERSION=4 + +# For base builds +ENV CONFIG_FLAGS="--fully-static --without-npm" DEL_PKGS="libstdc++" RM_DIRS=/usr/include + +RUN apk add --no-cache curl make gcc g++ python linux-headers binutils-gold gnupg libstdc++ && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \ + 9554F04D7259F04124DE6B476D5A82AC7E37093B \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 && \ + curl -sSLO https://nodejs.org/dist/${VERSION}/node-${VERSION}.tar.xz && \ + curl -sSL https://nodejs.org/dist/${VERSION}/SHASUMS256.txt.asc | gpg --batch --decrypt | \ + grep " node-${VERSION}.tar.xz\$" | sha256sum -c | grep . && \ + tar -xf node-${VERSION}.tar.xz && \ + cd node-${VERSION} && \ + ./configure --prefix=/usr ${CONFIG_FLAGS} && \ + make -j$(getconf _NPROCESSORS_ONLN) && \ + make install && \ + cd / && \ + if [ -x /usr/bin/npm ]; then \ + npm install -g npm@${NPM_VERSION} && \ + find /usr/lib/node_modules/npm -name test -o -name .bin -type d | xargs rm -rf; \ + fi && \ + apk del curl make gcc g++ python linux-headers binutils-gold gnupg ${DEL_PKGS} && \ + rm -rf ${RM_DIRS} /node-${VERSION}* /usr/share/man /tmp/* /var/cache/apk/* \ + /root/.npm /root/.node-gyp /root/.gnupg /usr/lib/node_modules/npm/man \ + /usr/lib/node_modules/npm/doc /usr/lib/node_modules/npm/html /usr/lib/node_modules/npm/scripts \ No newline at end of file diff --git a/server/devops/docker/node/7.dockerfile b/server/devops/docker/node/7.dockerfile new file mode 100644 index 0000000..6c13b61 --- /dev/null +++ b/server/devops/docker/node/7.dockerfile @@ -0,0 +1,10 @@ +# FROM alpine:3.4 +FROM mhart/alpine-node:base-7 + +ENV YARN_VERSION 0.21.3 +ADD https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v${YARN_VERSION}.tar.gz /opt/yarn.tar.gz +RUN yarnDirectory=/opt/yarn && \ + mkdir -p "$yarnDirectory" && \ + tar -xzf /opt/yarn.tar.gz -C "$yarnDirectory" && \ + ln -s "$yarnDirectory/dist/bin/yarn" /usr/local/bin/ && \ + rm /opt/yarn.tar.gz \ No newline at end of file diff --git a/server/devops/docker/node/build.js b/server/devops/docker/node/build.js new file mode 100644 index 0000000..bb06091 --- /dev/null +++ b/server/devops/docker/node/build.js @@ -0,0 +1,20 @@ +"use strict"; +const fs = require('fs'); +const sh = require('shelljs'); + +exports.build = function build() { + + const commands = [ + 'eval $(minikube docker-env)', + 'docker build -f 7.dockerfile -t chromapdx/node:7 .', + 'docker push chromapdx/node:7' + ] + + commands.forEach(function (str) { + const code = sh.exec(str).code; + if (code) { + process.exit(code); + } + }); + +} \ No newline at end of file diff --git a/server/devops/docker/rabbitmq/.gitignore b/server/devops/docker/rabbitmq/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/server/devops/docker/rabbitmq/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/server/devops/docker/rabbitmq/Dockerfile b/server/devops/docker/rabbitmq/Dockerfile new file mode 100644 index 0000000..156c902 --- /dev/null +++ b/server/devops/docker/rabbitmq/Dockerfile @@ -0,0 +1,13 @@ +FROM rabbitmq:3.6.6-management-alpine + +ADD rabbitmq_delayed_message_exchange-0.0.1.ez /plugins +ADD rabbitmq_clusterer-1.0.3.ez /plugins +RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange --offline +RUN rabbitmq-plugins enable rabbitmq_clusterer --offline + +ENV RABBITMQ_BOOT_MODULE rabbit_clusterer +ENV RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS "-pa /plugins/rabbitmq_clusterer-1.0.3.ez/rabbitmq_clusterer-1.0.3/ebin" +ADD clusterer.config /etc/rabbitmq/ + +RUN chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq +COPY docker-entrypoint.sh /usr/local/bin/ diff --git a/server/devops/docker/rabbitmq/build.js b/server/devops/docker/rabbitmq/build.js new file mode 100644 index 0000000..21fb4aa --- /dev/null +++ b/server/devops/docker/rabbitmq/build.js @@ -0,0 +1,24 @@ +"use strict"; +const fs = require('fs-extended'); +const sh = require('shelljs'); +const path = require('path'); + +exports.version = '1.0.0'; + +exports.build = function build() { + const revert = process.cwd(); + // fs.copyFileSync(packagePath, 'package.json'); + const tag = 'tmake/rabbitmq:' + exports.version + console.log('building', tag); + const commands = [ + 'docker build -t ' + tag + ' .' + ] + sh.cd(__dirname); + commands.forEach(function (str) { + const code = sh.exec(str).code; + if (code) { + process.exit(code); + } + }); + sh.cd(revert); +} \ No newline at end of file diff --git a/server/devops/docker/rabbitmq/clusterer.config b/server/devops/docker/rabbitmq/clusterer.config new file mode 100644 index 0000000..f03dd56 --- /dev/null +++ b/server/devops/docker/rabbitmq/clusterer.config @@ -0,0 +1,3 @@ +[{version, 1}, +{nodes, [{'rabbit@rabbitmq-0.rmq-cluster', disc}, {'rabbit@rabbitmq-1.rmq-cluster', disc}, {'rabbit@rabbitmq-2.rmq-cluster', disc}]}, +{gospel, {node, 'rabbit@rabbitmq-0.rmq-cluster'}}]. diff --git a/server/devops/docker/rabbitmq/docker-entrypoint.sh b/server/devops/docker/rabbitmq/docker-entrypoint.sh new file mode 100755 index 0000000..3db8833 --- /dev/null +++ b/server/devops/docker/rabbitmq/docker-entrypoint.sh @@ -0,0 +1,302 @@ +#!/bin/bash +set -eu + +# allow the container to be started with `--user` +if [[ "$1" == rabbitmq* ]] && [ "$(id -u)" = '0' ]; then + if [ "$1" = 'rabbitmq-server' ]; then + chown -R rabbitmq /var/lib/rabbitmq + fi + exec su-exec rabbitmq "$BASH_SOURCE" "$@" +fi + +# backwards compatibility for old environment variables +: "${RABBITMQ_SSL_CERTFILE:=${RABBITMQ_SSL_CERT_FILE:-}}" +: "${RABBITMQ_SSL_KEYFILE:=${RABBITMQ_SSL_KEY_FILE:-}}" +: "${RABBITMQ_SSL_CACERTFILE:=${RABBITMQ_SSL_CA_FILE:-}}" + +# "management" SSL config should default to using the same certs +: "${RABBITMQ_MANAGEMENT_SSL_CACERTFILE:=$RABBITMQ_SSL_CACERTFILE}" +: "${RABBITMQ_MANAGEMENT_SSL_CERTFILE:=$RABBITMQ_SSL_CERTFILE}" +: "${RABBITMQ_MANAGEMENT_SSL_KEYFILE:=$RABBITMQ_SSL_KEYFILE}" + +# https://www.rabbitmq.com/configure.html +sslConfigKeys=( + cacertfile + certfile + fail_if_no_peer_cert + keyfile + verify +) +managementConfigKeys=( + "${sslConfigKeys[@]/#/ssl_}" +) +rabbitConfigKeys=( + default_pass + default_user + default_vhost + hipe_compile +) +fileConfigKeys=( + management_ssl_cacertfile + management_ssl_certfile + management_ssl_keyfile + ssl_cacertfile + ssl_certfile + ssl_keyfile +) +allConfigKeys=( + "${managementConfigKeys[@]/#/management_}" + "${rabbitConfigKeys[@]}" + "${sslConfigKeys[@]/#/ssl_}" +) + +declare -A configDefaults=( + [management_ssl_fail_if_no_peer_cert]='false' + [management_ssl_verify]='verify_none' + + [ssl_fail_if_no_peer_cert]='true' + [ssl_verify]='verify_peer' +) + +haveConfig= +haveSslConfig= +haveManagementSslConfig= +for conf in "${allConfigKeys[@]}"; do + var="RABBITMQ_${conf^^}" + val="${!var:-}" + if [ "$val" ]; then + haveConfig=1 + case "$conf" in + ssl_*) haveSslConfig=1 ;; + management_ssl_*) haveManagementSslConfig=1 ;; + esac + fi +done +if [ "$haveSslConfig" ]; then + missing=() + for sslConf in cacertfile certfile keyfile; do + var="RABBITMQ_SSL_${sslConf^^}" + val="${!var}" + if [ -z "$val" ]; then + missing+=( "$var" ) + fi + done + if [ "${#missing[@]}" -gt 0 ]; then + { + echo + echo 'error: SSL requested, but missing required configuration' + for miss in "${missing[@]}"; do + echo " - $miss" + done + echo + } >&2 + exit 1 + fi +fi +missingFiles=() +for conf in "${fileConfigKeys[@]}"; do + var="RABBITMQ_${conf^^}" + val="${!var}" + if [ "$val" ] && [ ! -f "$val" ]; then + missingFiles+=( "$val ($var)" ) + fi +done +if [ "${#missingFiles[@]}" -gt 0 ]; then + { + echo + echo 'error: files specified, but missing' + for miss in "${missingFiles[@]}"; do + echo " - $miss" + done + echo + } >&2 + exit 1 +fi + +# set defaults for missing values (but only after we're done with all our checking so we don't throw any of that off) +for conf in "${!configDefaults[@]}"; do + default="${configDefaults[$conf]}" + var="RABBITMQ_${conf^^}" + [ -z "${!var:-}" ] || continue + eval "export $var=\"\$default\"" +done + +# If long & short hostnames are not the same, use long hostnames +if [ "$(hostname)" != "$(hostname -s)" ]; then + : "${RABBITMQ_USE_LONGNAME:=true}" +fi + +if [ "${RABBITMQ_ERLANG_COOKIE:-}" ]; then + cookieFile='/var/lib/rabbitmq/.erlang.cookie' + if [ -e "$cookieFile" ]; then + if [ "$(cat "$cookieFile" 2>/dev/null)" != "$RABBITMQ_ERLANG_COOKIE" ]; then + echo >&2 + echo >&2 "warning: $cookieFile contents do not match RABBITMQ_ERLANG_COOKIE" + echo >&2 + fi + else + echo "$RABBITMQ_ERLANG_COOKIE" > "$cookieFile" + chmod 600 "$cookieFile" + fi +fi + +# prints "$2$1$3$1...$N" +join() { + local sep="$1"; shift + local out; printf -v out "${sep//%/%%}%s" "$@" + echo "${out#$sep}" +} +indent() { + if [ "$#" -gt 0 ]; then + echo "$@" + else + cat + fi | sed 's/^/\t/g' +} +rabbit_array() { + echo -n '[' + case "$#" in + 0) echo -n ' ' ;; + 1) echo -n " $1 " ;; + *) + local vals="$(join $',\n' "$@")" + echo + indent "$vals" + esac + echo -n ']' +} +rabbit_env_config() { + local prefix="$1"; shift + + local ret=() + local conf + for conf; do + local var="rabbitmq${prefix:+_$prefix}_$conf" + var="${var^^}" + + local val="${!var:-}" + + local rawVal= + case "$conf" in + verify|fail_if_no_peer_cert) + [ "$val" ] || continue + rawVal="$val" + ;; + + hipe_compile) + [ "$val" ] && rawVal='true' || rawVal='false' + ;; + + cacertfile|certfile|keyfile) + [ "$val" ] || continue + rawVal='"'"$val"'"' + ;; + + *) + [ "$val" ] || continue + rawVal='<<"'"$val"'">>' + ;; + esac + [ "$rawVal" ] || continue + + ret+=( "{ $conf, $rawVal }" ) + done + + join $'\n' "${ret[@]}" +} + +if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then + fullConfig=() + + rabbitConfig=( + "{ loopback_users, $(rabbit_array) }" + ) + + if [ "$haveSslConfig" ]; then + IFS=$'\n' + rabbitSslOptions=( $(rabbit_env_config 'ssl' "${sslConfigKeys[@]}") ) + unset IFS + + rabbitConfig+=( + "{ tcp_listeners, $(rabbit_array) }" + "{ ssl_listeners, $(rabbit_array 5671) }" + "{ ssl_options, $(rabbit_array "${rabbitSslOptions[@]}") }" + ) + else + rabbitConfig+=( + "{ tcp_listeners, $(rabbit_array 5672) }" + "{ ssl_listeners, $(rabbit_array) }" + ) + fi + + IFS=$'\n' + rabbitConfig+=( $(rabbit_env_config '' "${rabbitConfigKeys[@]}") ) + unset IFS + + fullConfig+=( "{ rabbit, $(rabbit_array "${rabbitConfig[@]}") }" ) + + # if management plugin is installed, generate config for it + # https://www.rabbitmq.com/management.html#configuration + if [ "$(rabbitmq-plugins list -m -e rabbitmq_management)" ]; then + rabbitManagementConfig=() + + if [ "$haveManagementSslConfig" ]; then + IFS=$'\n' + rabbitManagementSslOptions=( $(rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}") ) + unset IFS + + rabbitManagementListenerConfig+=( + '{ port, 15671 }' + '{ ssl, true }' + "{ ssl_opts, $(rabbit_array "${rabbitManagementSslOptions[@]}") }" + ) + else + rabbitManagementListenerConfig+=( + '{ port, 15672 }' + '{ ssl, false }' + ) + fi + rabbitManagementConfig+=( + "{ listener, $(rabbit_array "${rabbitManagementListenerConfig[@]}") }" + ) + + # if definitions file exists, then load it + # https://www.rabbitmq.com/management.html#load-definitions + managementDefinitionsFile='/etc/rabbitmq/definitions.json' + if [ -f "${managementDefinitionsFile}" ]; then + # see also https://github.com/docker-library/rabbitmq/pull/112#issuecomment-271485550 + rabbitManagementConfig+=( + "{ load_definitions, \"$managementDefinitionsFile\" }" + ) + fi + + fullConfig+=( + "{ rabbitmq_management, $(rabbit_array "${rabbitManagementConfig[@]}") }" + ) + fi + + if [ "$(rabbitmq-plugins list -m -e rabbitmq_clusterer)" ]; then + fullConfig+=( + "{rabbitmq_clusterer, [{config, \"/etc/rabbitmq/clusterer.config\"}]}" + ) + fi + + echo "$(rabbit_array "${fullConfig[@]}")." > /etc/rabbitmq/rabbitmq.config +fi + +combinedSsl='/tmp/combined.pem' +if [ "$haveSslConfig" ] && [[ "$1" == rabbitmq* ]] && [ ! -f "$combinedSsl" ]; then + # Create combined cert + cat "$RABBITMQ_SSL_CERTFILE" "$RABBITMQ_SSL_KEYFILE" > "$combinedSsl" + chmod 0400 "$combinedSsl" +fi +if [ "$haveSslConfig" ] && [ -f "$combinedSsl" ]; then + # More ENV vars for make clustering happiness + # we don't handle clustering in this script, but these args should ensure + # clustered SSL-enabled members will talk nicely + export ERL_SSL_PATH="$(erl -eval 'io:format("~p", [code:lib_dir(ssl, ebin)]),halt().' -noshell)" + export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-pa $ERL_SSL_PATH -proto_dist inet_tls -ssl_dist_opt server_certfile $combinedSsl -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true" + export RABBITMQ_CTL_ERL_ARGS="$RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS" +fi + +exec "$@" diff --git a/server/devops/docker/rabbitmq/rabbitmq_clusterer-1.0.3.ez b/server/devops/docker/rabbitmq/rabbitmq_clusterer-1.0.3.ez new file mode 100644 index 0000000..78292ee Binary files /dev/null and b/server/devops/docker/rabbitmq/rabbitmq_clusterer-1.0.3.ez differ diff --git a/server/devops/docker/rabbitmq/rabbitmq_delayed_message_exchange-0.0.1.ez b/server/devops/docker/rabbitmq/rabbitmq_delayed_message_exchange-0.0.1.ez new file mode 100644 index 0000000..4544b5d Binary files /dev/null and b/server/devops/docker/rabbitmq/rabbitmq_delayed_message_exchange-0.0.1.ez differ diff --git a/server/devops/docker/theme/.gitignore b/server/devops/docker/theme/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/server/devops/docker/theme/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/server/devops/docker/theme/Dockerfile b/server/devops/docker/theme/Dockerfile new file mode 100644 index 0000000..5bdfc0f --- /dev/null +++ b/server/devops/docker/theme/Dockerfile @@ -0,0 +1,11 @@ +# Set nginx base image +FROM gcr.io/google_containers/nginx-slim:0.15 + +# File Author / Maintainer +MAINTAINER TMake + +# Copy custom configuration file from the current directory +COPY nginx.conf /etc/nginx/nginx.conf + +# kubernetes provides certs via secrets +COPY build/theme/ /www/theme/ \ No newline at end of file diff --git a/server/devops/docker/theme/build.js b/server/devops/docker/theme/build.js new file mode 100644 index 0000000..1588f9a --- /dev/null +++ b/server/devops/docker/theme/build.js @@ -0,0 +1,27 @@ +"use strict"; +const fs = require('fs-extended'); +const sh = require('shelljs'); +const path = require('path'); + +const packagePath = path.join(__dirname, '../../../theme/package.json'); + +exports.version = JSON.parse(fs.readFileSync(packagePath, 'utf8')).version; + +exports.build = function build() { + const revert = process.cwd(); + fs.copyFileSync(packagePath, path.join(__dirname, 'package.json')); + const tag = 'tmake/theme:' + exports.version; + console.log('building', tag); + const commands = [ + 'docker build -t ' + tag + ' .' + ] + + sh.cd(__dirname); + commands.forEach(function (str) { + const code = sh.exec(str).code; + if (code) { + process.exit(code); + } + }); + sh.cd(revert); +} \ No newline at end of file diff --git a/server/devops/docker/theme/nginx.conf b/server/devops/docker/theme/nginx.conf new file mode 100644 index 0000000..e999181 --- /dev/null +++ b/server/devops/docker/theme/nginx.conf @@ -0,0 +1,40 @@ +error_log /dev/null; +worker_processes 1; + +events { + worker_connections 4096; +} + +http { + #default_type application/octet-stream; + include mime.types; + + sendfile on; + keepalive_timeout 65; + + gzip on; + + access_log /dev/null; + + # all non-ssl requests redirect to ssl + server { + listen 80; + + location /.well-known/acme-challenge { + proxy_pass http://devops.chroma.fund; + proxy_redirect off; + proxy_buffering off; + } + + location / { + expires 365d; + root /www; + autoindex off; + } + + location /healthz { + return 200; + #access_log off; + } + } +} \ No newline at end of file diff --git a/server/devops/docker/theme/package.json b/server/devops/docker/theme/package.json new file mode 100644 index 0000000..8c98ad3 --- /dev/null +++ b/server/devops/docker/theme/package.json @@ -0,0 +1,40 @@ +{ + "name": "theme", + "version": "1.1.17", + "description": "", + "scripts": { + "dev": "node build", + "clean": "rm -rf node_modules && rm -rf ../devops/docker/theme/build && yarn", + "distribute": "npm run clean && NODE_ENV=production node build.js --preserve-symlinks" + }, + "author": "Leif Shackelford ", + "license": "ISC", + "dependencies": { + "webpack-md5-hash": "^0.0.5" + }, + "devDependencies": { + "@types/webpack": "^2.2.4", + "babel-core": "^6.22.1", + "babel-loader": "^6.2.10", + "cross-env": "^3.1.4", + "css-loader": ">=0.26.1", + "extract-text-webpack-plugin": "2.1.0", + "file-loader": ">=0.9.0", + "fs-extended": ">=0.2.1", + "fs-extra": "^2.0.0", + "node-sass": "^4.2.0", + "postcss-cssnext": "^2.9.0", + "postcss-import": "^9.1.0", + "postcss-reporter": "^3.0.0", + "sass-loader": "^4.1.1", + "shelljs": ">=0.7.7", + "source-map-loader": "^0.1.6", + "style-loader": ">=0.13.1", + "stylus": "^0.54.5", + "stylus-loader": "^2.4.0", + "url-loader": "^0.5.6", + "webpack": "^2.2.0", + "webpack-dev-server": "^2.2.0", + "webpack-manifest-plugin": "^1.1.0" + } +} diff --git a/server/devops/local/.gitignore b/server/devops/local/.gitignore new file mode 100644 index 0000000..7d60fd1 --- /dev/null +++ b/server/devops/local/.gitignore @@ -0,0 +1 @@ +/data/mongo/* \ No newline at end of file diff --git a/server/devops/local/before/cockroachdb-0.sh b/server/devops/local/before/cockroachdb-0.sh new file mode 100644 index 0000000..a1b208c --- /dev/null +++ b/server/devops/local/before/cockroachdb-0.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +APPROLE=localhost +DOMAIN=local +SERVICE=cockroachdb + +echo fetch auth from $VAULT_ADDR +function login(){ + local JSON="{\"role_id\":\"$APPROLE\"}" + local res=$(curl --silent -X POST -d $JSON $VAULT_ADDR/v1/auth/approle/login) + echo $res | jq -r .auth.client_token > ~/.vault-token + echo $res | jq -r .auth.policies[1] +} + +while [[ "localhost" != $(login) ]] +do + printf '.' + sleep 1 +done + +# curl --silent -X POST -d $JSON $VAULT_ADDR/v1/auth/approle/login | jq .auth.client_token + +# vault write auth/approle/login role_id=$APPROLE | grep -w token | while read id token; do echo $token > ~/.vault-token; done + +for i in {0..2} +do +CERT_DIR=secrets/local/$SERVICE/tls/$i +rm -Rf $CERT_DIR +mkdir -p $CERT_DIR +NODE=$SERVICE-$i + +vault write -format=json pki/issue/cockroachdb \ + common_name=node \ + alt_names="$NODE.$DOMAIN,localhost" \ + ip_sans="127.0.0.1" \ + ttl=720h \ + format=pem \ + > $CERT_DIR/$NODE.json + +cat $CERT_DIR/$NODE.json | jq .data.certificate -r > $CERT_DIR/node.crt +cat $CERT_DIR/$NODE.json | jq .data.private_key -r > $CERT_DIR/node.key +cat $CERT_DIR/$NODE.json | jq .data.issuing_ca -r > $CERT_DIR/ca.crt +(cd $CERT_DIR && chmod 700 *) +done \ No newline at end of file diff --git a/server/devops/local/before/front-server.sh b/server/devops/local/before/front-server.sh new file mode 100644 index 0000000..7ba9382 --- /dev/null +++ b/server/devops/local/before/front-server.sh @@ -0,0 +1,2 @@ +#!/bin/bash +cd front && node_modules/.bin/webpack --config webpack/dev/server \ No newline at end of file diff --git a/server/devops/local/before/front-webpack.sh b/server/devops/local/before/front-webpack.sh new file mode 100644 index 0000000..cc1f786 --- /dev/null +++ b/server/devops/local/before/front-webpack.sh @@ -0,0 +1 @@ +#!/bin/bash \ No newline at end of file diff --git a/server/devops/local/before/ingress.sh b/server/devops/local/before/ingress.sh new file mode 100644 index 0000000..10073fc --- /dev/null +++ b/server/devops/local/before/ingress.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sudo ifconfig lo0 alias 10.200.10.1/24 diff --git a/server/devops/local/before/mailer.sh b/server/devops/local/before/mailer.sh new file mode 100644 index 0000000..0fd3653 --- /dev/null +++ b/server/devops/local/before/mailer.sh @@ -0,0 +1 @@ +cd mailer && gulp scripts \ No newline at end of file diff --git a/server/devops/local/before/mongo.sh b/server/devops/local/before/mongo.sh new file mode 100644 index 0000000..ffdb75e --- /dev/null +++ b/server/devops/local/before/mongo.sh @@ -0,0 +1,2 @@ +#!/bin/bash +mkdir -p data/mongo \ No newline at end of file diff --git a/server/devops/local/before/rabbitmq.sh b/server/devops/local/before/rabbitmq.sh new file mode 100644 index 0000000..f998b9f --- /dev/null +++ b/server/devops/local/before/rabbitmq.sh @@ -0,0 +1 @@ +rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management \ No newline at end of file diff --git a/server/devops/local/before/uoa.sh b/server/devops/local/before/uoa.sh new file mode 100644 index 0000000..908edca --- /dev/null +++ b/server/devops/local/before/uoa.sh @@ -0,0 +1,45 @@ +#!/bin/bash +cd uoa +APPROLE=localhost +CERT_DIR=settings/tls + +echo fetch auth from $VAULT_ADDR +function login(){ + local JSON="{\"role_id\":\"$APPROLE\"}" + local res=$(curl --silent -X POST -d $JSON $VAULT_ADDR/v1/auth/approle/login) + echo $res | jq -r .auth.client_token > ~/.vault-token + echo $res | jq -r .auth.policies[1] +} + +while [[ "localhost" != $(login) ]] +do + printf '.' + sleep 1 +done + +echo cleanup cert dir $CERT_DIR +mkdir -p $CERT_DIR +rm $CERT_DIR/* +echo fetch certificate from $VAULT_ADDR +VAULT_ADDR=$VAULT_ADDR vault write -format=json pki/issue/cockroachdb \ + common_name=root \ + alt_names="$(hostname),localhost" \ + ip_sans="127.0.0.1" \ + ttl=720h \ + format=pem \ + > $CERT_DIR/root.json + +echo build certificates + correct permissions +cat $CERT_DIR/root.json | jq .data.certificate -r > $CERT_DIR/client.root.crt +cat $CERT_DIR/root.json | jq .data.private_key -r > $CERT_DIR/client.root.key +cat $CERT_DIR/root.json | jq .data.issuing_ca -r > $CERT_DIR/ca.crt +(cd $CERT_DIR && chmod 700 * && openssl pkcs12 -export -inkey client.root.key -in client.root.crt -name cockroach-admin -out cockroach-admin.pfx -passout pass:cockroach) + +echo generate local user for cockroachdb +cockroach sql --certs-dir=$CERT_DIR --host=cockroachdb-0.local --port=5100 \ +-e "CREATE DATABASE uoa;" \ +-e "CREATE USER local WITH PASSWORD 'insecure';" \ +-e "GRANT ALL ON DATABASE uoa TO local;" \ +-e "\q" \ + +gulp scripts \ No newline at end of file diff --git a/server/devops/local/ingress/.gitignore b/server/devops/local/ingress/.gitignore new file mode 100644 index 0000000..09196ba --- /dev/null +++ b/server/devops/local/ingress/.gitignore @@ -0,0 +1 @@ +/tls diff --git a/server/devops/local/ingress/mime.types b/server/devops/local/ingress/mime.types new file mode 100644 index 0000000..282da53 --- /dev/null +++ b/server/devops/local/ingress/mime.types @@ -0,0 +1,70 @@ +types { + application/atom+xml atom; + application/dart dart; + application/gzip gz; + application/java-archive jar war ear; + application/javascript js jsonp; + application/json json; + application/owl+xml owl owx; + application/pdf pdf; + application/postscript ai eps ps; + application/rdf+xml rdf; + application/rss+xml rss; + application/vnd.ms-fontobject eot; + application/x-7z-compressed 7z; + application/x-bittorrent torrent; + application/x-chrome-extension crx; + application/x-font-otf otf; + application/x-font-ttf ttc ttf; + application/x-font-woff woff; + application/x-opera-extension oex; + application/x-rar-compressed rar; + application/x-shockwave-flash swf; + application/x-web-app-manifest+json webapp; + application/x-x509-ca-cert crt der pem; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xml xml; + application/xml-dtd dtd; + application/zip zip; + + audio/midi kar mid midi; + audio/mp4 aac f4a f4b m4a; + audio/mpeg mp3; + audio/ogg oga ogg; + audio/vnd.wave wav; + audio/x-flac flac; + audio/x-realaudio ra; + + image/bmp bmp; + image/gif gif; + image/jpeg jpe jpeg jpg; + image/png png; + image/svg+xml svg svgz; + image/tiff tif tiff; + image/webp webp; + image/x-icon cur ico; + + text/cache-manifest appcache manifest; + text/css css less; + text/csv csv; + text/html htm html shtml; + text/mathml mml; + text/plain txt; + text/rtf rtf; + text/vcard vcf; + text/vtt vtt; + text/x-component htc; + text/x-markdown md; + + video/3gpp 3gp 3gpp; + video/avi avi; + video/mp4 f4p f4v m4v mp4; + video/mpeg mpeg mpg; + video/ogg ogv; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-matroska mkv; + video/x-ms-wmv wmv; +} \ No newline at end of file diff --git a/server/devops/local/ingress/nginx.conf b/server/devops/local/ingress/nginx.conf new file mode 100644 index 0000000..96c1a2a --- /dev/null +++ b/server/devops/local/ingress/nginx.conf @@ -0,0 +1,92 @@ + +error_log /dev/null; + +worker_processes 1; + +events { + worker_connections 2048; +} + +http { + access_log off; + + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + + default_type application/octet-stream; + include /etc/nginx/mime.types; + + # all non-ssl requests redirect to ssl + server { + listen 80; + location / { + return 301 https://$host$request_uri; + } + } + # SSL + main redirect to all services + server { + listen 443 ssl; + server_name chroma-ssl; + ssl_certificate tls/fullchain.pem; + ssl_certificate_key tls/privkey.pem; + + # As recommended by https://weakdh.org/sysadmin.html to deploy a strong Diffie-Hellman key. + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; + add_header Strict-Transport-Security max-age=15768000; + ssl_prefer_server_ciphers on; + # ssl_dhparam /dhparams.pem; + + # OCSP Stapling + # fetch OCSP records from URL in ssl_certificate and cache them + ssl_stapling on; + ssl_stapling_verify on; + + # Set upload to sensible value as defaults to 1M if not present + client_max_body_size 10M; + + location / { + proxy_pass http://10.200.10.1:3000; + proxy_redirect off; + proxy_buffering off; + } + + location /front/ { + proxy_pass http://10.200.10.1:3001/; + proxy_redirect off; + proxy_buffering off; + } + + location /front/sockjs-node/ { + proxy_pass http://10.200.10.1:3001/sockjs-node/; + + # WebSocket specific + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } + + location /theme/ { + proxy_pass http://10.200.10.1:3002/; + proxy_redirect off; + proxy_buffering off; + } + + location /mailer/ { + proxy_pass http://10.200.10.1:4002/; + proxy_redirect off; + proxy_buffering off; + } + } +} + +stream { + server { + listen 5280; + proxy_connect_timeout 1s; + proxy_timeout 3s; + proxy_pass 10.200.10.1:5200; + } +} diff --git a/server/devops/local/render.js b/server/devops/local/render.js new file mode 100644 index 0000000..440d91c --- /dev/null +++ b/server/devops/local/render.js @@ -0,0 +1,6 @@ +var fs = require("fs"); + +const template = fs.readFileSync('devops/local/services.template.yaml', 'utf8'); +const services = template.replace(/\${pwd}/g, process.cwd()); + +fs.writeFileSync('devops/local/services.yaml', services); diff --git a/server/devops/local/services.template.yaml b/server/devops/local/services.template.yaml new file mode 100644 index 0000000..d97bd24 --- /dev/null +++ b/server/devops/local/services.template.yaml @@ -0,0 +1,29 @@ +apps: +- name: ingress + cwd: devops/local/ingress + script: docker + args: run --rm -p 80:80 -p 443:443 -v ${pwd}/devops/local/ingress:/etc/nginx gcr.io/google_containers/nginx-slim:0.17 + restart_delay: 30000 +- name: front-server + cwd: front + script: tmp/server.js + args: --preserve-symlinks + watch: tmp + restart_delay: 30000 + env: + PORT: 3000 + NAMESPACE_SETTINGS_PATH: ../secrets/local/namespace/settings.yaml + SETTINGS_PATH: ../secrets/local/front/settings.yaml +- name: front-webpack + cwd: front + script: bin/watch.js + args: --preserve-symlinks + restart_delay: 30000 + env: + PORT: 3001 +- name: theme + cwd: theme + script: build.js + restart_delay: 30000 + env: + PORT: 3002 diff --git a/server/devops/local/services.yaml b/server/devops/local/services.yaml new file mode 100644 index 0000000..42df778 --- /dev/null +++ b/server/devops/local/services.yaml @@ -0,0 +1,29 @@ +apps: +- name: ingress + cwd: devops/local/ingress + script: docker + args: run --rm -p 80:80 -p 443:443 -v /Users/leif/node/tmake/server/devops/local/ingress:/etc/nginx gcr.io/google_containers/nginx-slim:0.17 + restart_delay: 30000 +- name: front-server + cwd: front + script: tmp/server.js + args: --preserve-symlinks + watch: tmp + restart_delay: 30000 + env: + PORT: 3000 + NAMESPACE_SETTINGS_PATH: ../secrets/local/namespace/settings.yaml + SETTINGS_PATH: ../secrets/local/front/settings.yaml +- name: front-webpack + cwd: front + script: bin/watch.js + args: --preserve-symlinks + restart_delay: 30000 + env: + PORT: 3001 +- name: theme + cwd: theme + script: build.js + restart_delay: 30000 + env: + PORT: 3002 diff --git a/server/devops/local/stateful.yaml b/server/devops/local/stateful.yaml new file mode 100644 index 0000000..1c76941 --- /dev/null +++ b/server/devops/local/stateful.yaml @@ -0,0 +1,16 @@ +#nginx being run by daemon +apps: +- name: mongo + script: mongod + args: --dbpath data/mongo --port=5000 + interpreter: none + restart_delay: 5000 + env: + PORT: 5000 +- name: rabbitmq + script: rabbitmq/sbin/rabbitmq-server + interpreter: /bin/sh + restart_delay: 30000 + env: + RABBITMQ_NODENAME: rabbit@localhost + RABBITMQ_NODE_PORT: 4000 diff --git a/server/devops/package.json b/server/devops/package.json new file mode 100644 index 0000000..ffae14b --- /dev/null +++ b/server/devops/package.json @@ -0,0 +1,23 @@ +{ + "name": "devops", + "version": "1.0.0", + "description": "", + "main": "build.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Leif Shackelford ", + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.0" + }, + "devDependencies": { + "fs-extended": "^0.2.1", + "grunt": "^1.0.1", + "grunt-available-tasks": "^0.6.3", + "js-yaml": "^3.8.2", + "node-vault": "^0.5.6", + "shelljs": "^0.7.7", + "typed-json-transform": "^0.16.0" + } +} diff --git a/server/devops/private b/server/devops/private new file mode 120000 index 0000000..1716b5c --- /dev/null +++ b/server/devops/private @@ -0,0 +1 @@ +../secrets \ No newline at end of file diff --git a/server/devops/telemetry/addons.sh b/server/devops/telemetry/addons.sh new file mode 100644 index 0000000..7587a3d --- /dev/null +++ b/server/devops/telemetry/addons.sh @@ -0,0 +1 @@ +http://localhost:8001/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/dashboard/db/namespaces?var-namespace=staging&var-podname=vault-0 \ No newline at end of file diff --git a/server/devops/telemetry/mongoProxy.js b/server/devops/telemetry/mongoProxy.js new file mode 100644 index 0000000..0ce505d --- /dev/null +++ b/server/devops/telemetry/mongoProxy.js @@ -0,0 +1,34 @@ +const path = require('path'); +const spawn = require('child_process').spawn; +var Bluebird = require("bluebird"); +var fs = require("fs"); +var sh = require('shelljs'); + +const namespace = process.env.NAMESPACE; +if (!namespace) { + throw new Error('please set kubernetes namespace in environment'); +} + +var mongoServers = [0, 1, 2]; + +for (const server of mongoServers) { + const port = 27007 + server * 10; + console.log('proxy mongo @', namespace, 'to localhost', port); + const proxy = spawn('kubectl', ['--namespace=' + namespace, 'port-forward', 'mongo-' + server, port, port]); + + proxy.on('error', function (error) { + console.warn('vault server error', error); + }); + + proxy.stdout.on('data', (data) => { + console.log(`${data}`); + }); + + proxy.stderr.on('data', (data) => { + console.warn(`${data}`); + }); + + proxy.on('close', (code) => { + console.log(`child process exited with code ${code}`); + }); +} \ No newline at end of file diff --git a/server/devops/telemetry/nodeUsage.sh b/server/devops/telemetry/nodeUsage.sh new file mode 100644 index 0000000..3082c86 --- /dev/null +++ b/server/devops/telemetry/nodeUsage.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -euo pipefail + +echo -e "Iterating...\n" + +nodes=$(kubectl get node --no-headers -o custom-columns=NAME:.metadata.name) + +for node in $nodes; do + echo "Node: $node" + kubectl describe node "$node" | sed '1,/Non-terminated Pods/d' + echo +done diff --git a/server/devops/templates/cluster-service/cockroachdb.yaml b/server/devops/templates/cluster-service/cockroachdb.yaml new file mode 100644 index 0000000..8ff7c6e --- /dev/null +++ b/server/devops/templates/cluster-service/cockroachdb.yaml @@ -0,0 +1,45 @@ +apiVersion: v1 +kind: Service +metadata: + # This service only exists to create DNS entries for each pod in the stateful + # set such that they can resolve each other's IP addresses. It does not + # create a load-balanced ClusterIP and should not be used directly by clients + # in most circumstances. + name: cockroachdb + labels: + app: cockroachdb + annotations: + # This is needed to make the peer-finder work properly and to help avoid + # edge cases where instance 0 comes up after losing its data and needs to + # decide whether it should create a new cluster or try to join an existing + # one. If it creates a new cluster when it should have joined an existing + # one, we'd end up with two separate clusters listening at the same service + # endpoint, which would be very bad. + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + # Enable automatic monitoring of all instances when Prometheus is running in the cluster. + prometheus.io/scrape: "true" + prometheus.io/path: "_status/vars" + prometheus.io/port: "8080" +spec: + ports: + - port: 26257 + targetPort: 26257 + name: grpc + - port: 8080 + targetPort: 8080 + name: http + clusterIP: None + selector: + app: cockroachdb +--- +apiVersion: policy/v1beta1 +kind: PodDisruptionBudget +metadata: + name: cockroachdb-budget + labels: + app: cockroachdb +spec: + selector: + matchLabels: + app: cockroachdb + minAvailable: 67% \ No newline at end of file diff --git a/server/devops/templates/cluster-service/consul.yaml b/server/devops/templates/cluster-service/consul.yaml new file mode 100644 index 0000000..f87a1c0 --- /dev/null +++ b/server/devops/templates/cluster-service/consul.yaml @@ -0,0 +1,42 @@ +apiVersion: v1 +kind: Service +metadata: + name: consul + labels: + name: consul +spec: + clusterIP: None + ports: + - name: http + port: 8500 + targetPort: 8500 + - name: https + port: 8443 + targetPort: 8443 + - name: rpc + port: 8400 + targetPort: 8400 + - name: serflan-tcp + protocol: "TCP" + port: 8301 + targetPort: 8301 + - name: serflan-udp + protocol: "UDP" + port: 8301 + targetPort: 8301 + - name: serfwan-tcp + protocol: "TCP" + port: 8302 + targetPort: 8302 + - name: serfwan-udp + protocol: "UDP" + port: 8302 + targetPort: 8302 + - name: server + port: 8300 + targetPort: 8300 + - name: consuldns + port: 8600 + targetPort: 8600 + selector: + app: consul diff --git a/server/devops/templates/cluster-service/front.yaml b/server/devops/templates/cluster-service/front.yaml new file mode 100644 index 0000000..3f26ba4 --- /dev/null +++ b/server/devops/templates/cluster-service/front.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: front + labels: + app: front +spec: + ports: + - name: http + port: 80 + targetPort: 3000 + protocol: TCP + selector: + app: front \ No newline at end of file diff --git a/server/devops/templates/cluster-service/kafka.yaml b/server/devops/templates/cluster-service/kafka.yaml new file mode 100644 index 0000000..c963500 --- /dev/null +++ b/server/devops/templates/cluster-service/kafka.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: kafka-service + labels: + app: kafka +spec: + ports: + - port: 9092 + name: kafka-port + targetPort: 9092 + protocol: TCP + selector: + app: kafka + type: LoadBalancer \ No newline at end of file diff --git a/server/devops/templates/cluster-service/legacy.yaml b/server/devops/templates/cluster-service/legacy.yaml new file mode 100644 index 0000000..e7dd058 --- /dev/null +++ b/server/devops/templates/cluster-service/legacy.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: web + labels: + app: web +spec: + type: LoadBalancer + ports: + - port: 80 + targetPort: nginx-http + protocol: TCP + name: http + - port: 443 + targetPort: nginx-https + protocol: TCP + name: https + selector: + app: web \ No newline at end of file diff --git a/server/devops/templates/cluster-service/mailer.yaml b/server/devops/templates/cluster-service/mailer.yaml new file mode 100644 index 0000000..84ac969 --- /dev/null +++ b/server/devops/templates/cluster-service/mailer.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: mailer + labels: + app: mailer +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: mailer-http + protocol: TCP + name: http + selector: + app: mailer \ No newline at end of file diff --git a/server/devops/templates/cluster-service/meteor.yaml b/server/devops/templates/cluster-service/meteor.yaml new file mode 100644 index 0000000..f0df3b1 --- /dev/null +++ b/server/devops/templates/cluster-service/meteor.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: meteor + labels: + app: meteor +spec: + ports: + - port: 80 + targetPort: 80 + protocol: TCP + name: http + selector: + app: meteor \ No newline at end of file diff --git a/server/devops/templates/cluster-service/mongo.yaml b/server/devops/templates/cluster-service/mongo.yaml new file mode 100644 index 0000000..d4d2594 --- /dev/null +++ b/server/devops/templates/cluster-service/mongo.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: mongo + labels: + app: mongo + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + ports: + - name: mongo-0 + port: 27007 + targetPort: 27007 + - name: mongo-1 + port: 27017 + targetPort: 27017 + - name: mongo-2 + port: 27027 + targetPort: 27027 + clusterIP: None + selector: + app: mongo \ No newline at end of file diff --git a/server/devops/templates/cluster-service/rabbitmq.yaml b/server/devops/templates/cluster-service/rabbitmq.yaml new file mode 100644 index 0000000..d5a234b --- /dev/null +++ b/server/devops/templates/cluster-service/rabbitmq.yaml @@ -0,0 +1,39 @@ +apiVersion: v1 +kind: Service +metadata: + name: rabbitmq + labels: + app: rabbitmq +spec: + type: ClusterIP + selector: + app: rabbitmq + ports: + - name: queue-port + port: 5672 + - name: http + port: 15672 + protocol: TCP + targetPort: 15672 + - name: cluster-port + port: 4369 + - name: dist-port + port: 25672 +--- +apiVersion: v1 +kind: Service +metadata: + name: rmq-cluster + labels: + app: rabbitmq +spec: + clusterIP: None + selector: + app: rabbitmq + ports: + - name: queue-port + port: 5672 + - name: cluster-port + port: 4369 + - name: dist-port + port: 25672 \ No newline at end of file diff --git a/server/devops/templates/cluster-service/theme.yaml b/server/devops/templates/cluster-service/theme.yaml new file mode 100644 index 0000000..a552970 --- /dev/null +++ b/server/devops/templates/cluster-service/theme.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: theme + labels: + app: theme +spec: + ports: + - port: 80 + targetPort: 80 + protocol: TCP + name: http + selector: + app: theme \ No newline at end of file diff --git a/server/devops/templates/cluster-service/uoa.yaml b/server/devops/templates/cluster-service/uoa.yaml new file mode 100644 index 0000000..6f940f5 --- /dev/null +++ b/server/devops/templates/cluster-service/uoa.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: uoa + labels: + app: uoa +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: uoa-http + protocol: TCP + name: http + selector: + app: uoa \ No newline at end of file diff --git a/server/devops/templates/cluster-service/vault.yaml b/server/devops/templates/cluster-service/vault.yaml new file mode 100644 index 0000000..a732703 --- /dev/null +++ b/server/devops/templates/cluster-service/vault.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: vault + labels: + name: vault + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + clusterIP: None + ports: + - name: https + port: 8200 + targetPort: 8200 + selector: + app: vault \ No newline at end of file diff --git a/server/devops/templates/cluster-service/wordpress-mysql.yaml b/server/devops/templates/cluster-service/wordpress-mysql.yaml new file mode 100644 index 0000000..f8e79d2 --- /dev/null +++ b/server/devops/templates/cluster-service/wordpress-mysql.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: wordpress-mysql +spec: + ports: + - port: 3306 + selector: + app: wordpress-mysql + clusterIP: None \ No newline at end of file diff --git a/server/devops/templates/cluster-service/wordpress.yaml b/server/devops/templates/cluster-service/wordpress.yaml new file mode 100644 index 0000000..1082216 --- /dev/null +++ b/server/devops/templates/cluster-service/wordpress.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: front + labels: + app: front +spec: + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + selector: + app: wordpress \ No newline at end of file diff --git a/server/devops/templates/cluster-service/zookeeper.yaml b/server/devops/templates/cluster-service/zookeeper.yaml new file mode 100644 index 0000000..f0331f5 --- /dev/null +++ b/server/devops/templates/cluster-service/zookeeper.yaml @@ -0,0 +1,59 @@ +apiVersion: v1 +kind: Service +metadata: + name: zoo1 + labels: + app: zookeeper-1 +spec: + ports: + - name: client + port: 2181 + protocol: TCP + - name: follower + port: 2888 + protocol: TCP + - name: leader + port: 3888 + protocol: TCP + selector: + app: zookeeper-1 +--- +apiVersion: v1 +kind: Service +metadata: + name: zoo2 + labels: + app: zookeeper-2 +spec: + ports: + - name: client + port: 2181 + protocol: TCP + - name: follower + port: 2888 + protocol: TCP + - name: leader + port: 3888 + protocol: TCP + selector: + app: zookeeper-2 +--- +apiVersion: v1 +kind: Service +metadata: + name: zoo3 + labels: + app: zookeeper-3 +spec: + ports: + - name: client + port: 2181 + protocol: TCP + - name: follower + port: 2888 + protocol: TCP + - name: leader + port: 3888 + protocol: TCP + selector: + app: zookeeper-3 \ No newline at end of file diff --git a/server/devops/templates/config-map/ingress-controller-sticky.yaml b/server/devops/templates/config-map/ingress-controller-sticky.yaml new file mode 100644 index 0000000..29dc7a6 --- /dev/null +++ b/server/devops/templates/config-map/ingress-controller-sticky.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: ingress-controller-sticky +data: + enable-sticky-sessions: 'true' \ No newline at end of file diff --git a/server/devops/templates/config-map/ingress-controller-tcp.yaml b/server/devops/templates/config-map/ingress-controller-tcp.yaml new file mode 100644 index 0000000..405fab6 --- /dev/null +++ b/server/devops/templates/config-map/ingress-controller-tcp.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: ingress-controller-tcp +data: + 27007: "GRUNT_NAMESPACE/mongo:27007" + 27017: "GRUNT_NAMESPACE/mongo:27017" + 27027: "GRUNT_NAMESPACE/mongo:27027" \ No newline at end of file diff --git a/server/devops/templates/config-map/mysql.yaml b/server/devops/templates/config-map/mysql.yaml new file mode 100644 index 0000000..f8f73fa --- /dev/null +++ b/server/devops/templates/config-map/mysql.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql + labels: + app: mysql +data: + master.cnf: | + # Apply this config only on the master. + [mysqld] + log-bin + slave.cnf: | + # Apply this config only on slaves. + [mysqld] + super-read-only \ No newline at end of file diff --git a/server/devops/templates/config-map/storage.yaml b/server/devops/templates/config-map/storage.yaml new file mode 100644 index 0000000..9bcab6e --- /dev/null +++ b/server/devops/templates/config-map/storage.yaml @@ -0,0 +1,10 @@ +kind: "StorageClass" +apiVersion: "storage.k8s.io/v1beta1" +metadata: + name: "standard" + annotations: + storageclass.beta.kubernetes.io/is-default-class: "true" +provisioner: "kubernetes.io/aws-ebs" +parameters: + type: "gp2" + encrypted: "true" \ No newline at end of file diff --git a/server/devops/templates/config-map/vault.yaml b/server/devops/templates/config-map/vault.yaml new file mode 100644 index 0000000..f7c6694 --- /dev/null +++ b/server/devops/templates/config-map/vault.yaml @@ -0,0 +1,113 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: kubernetes-vault +data: + kubernetes-vault.yml: |- + vault: + addr: https://vault:8200 + token: 91526d9b-4850-3405-02a8-aa29e74e17a5 + tls: + caCert: /kubernetes-vault/ca.pem + kubernetes: + watchNamespace: ${KUBERNETES_NAMESPACE} + serviceNamespace: ${KUBERNETES_NAMESPACE} + service: kubernetes-vault + prometheus: + tls: + certFile: /kubernetes-vault/cert.pem + certKey: /kubernetes-vault/cert.key + caCert: /kubernetes-vault/ca.pem + cert.pem: |- + -----BEGIN CERTIFICATE----- + MIID6DCCAtCgAwIBAgIUWPiW0GBRZeWx9mbZtzDNHRabT8swDQYJKoZIhvcNAQEL + BQAwGjEYMBYGA1UEAxMPSW50ZXJtZWRpYXRlIENBMCAXDTE3MDMwMzA1NDkxNloY + DzIwNjcwMjE5MDM0OTQ2WjAbMRkwFwYDVQQDExBrdWJlcm5ldGVzLXZhdWx0MIIB + IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0LVUqLLJOOUnBjc17FqlKE/n + QiuYMZrovKfOqKuCfzPu6CqjYpFiK4BR6Dw6j4pxpQu4lIQLFqs4e5+EVuFnzTyr + fUwMcspO3inZ7+7YQGZTo1ZmPgLwLlCBHPQokLKjA8PHQf2LZJW5juAB6Y1968pQ + bPpeD8oMMKXewytstGauPpLs+cUyz9+DjACM+YFe4XAJaSyYVJFHoqy8heidOgKX + 7EomNIFi/pgRZZOxKd4Z46PpBke5whjX0ZUx3zR4VHpp9y+sOjML3EVOmoRDXqFL + 951WQICW80q1J9j1YKqq/cbtdTbmaFxWozlYSmCp0GB7cLUqzPnmADZ+CL8uPwID + AQABo4IBITCCAR0wDgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMB + BggrBgEFBQcDAjAdBgNVHQ4EFgQU0UigrSv7X97CLRze4ItAAdGgWAcwHwYDVR0j + BBgwFoAUv3RNXviPfxATRxIauafY9RRfvmowQwYIKwYBBQUHAQEENzA1MDMGCCsG + AQUFBzAChidodHRwOi8vdmF1bHQ6ODIwMC92MS9pbnRlcm1lZGlhdGUtY2EvY2Ew + LAYDVR0RBCUwI4IQa3ViZXJuZXRlcy12YXVsdIIJbG9jYWxob3N0hwR/AAABMDkG + A1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly92YXVsdDo4MjAwL3YxL2ludGVybWVkaWF0 + ZS1jYS9jcmwwDQYJKoZIhvcNAQELBQADggEBAIVmY7hEs6wQbtC3CaFNC5+Nx2Vx + eoGco7HMmFcSfGTTNgw7FA0tHikI4Q0hMCeDi4qMy+AYfzBMrYR0T0TmocOO4kNX + nsBsyf/0Mb6pLfFg3js1IMfUrHW8h/vMgTRiLL1PejijuJeXgZEO4XXBdmos8WiH + ixEOYJHYvecDndOFS6YqAP/NTHkJVhf1NFkMmlHJVjDn6bBwW00yVKZthZ6APNCr + XgKaKX0p2BChh8bxwrTQgMattwPnnS1MiZi6tx+zs99qQByPkPfRCV8ABOnHDvyO + SnETdHv4zaIVNMcrpHs9f3qhFvYtAgeT3xuBmjWgCFFrtbhvsMif3p2dnXk= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIDkTCCAnmgAwIBAgIUXvxwgZK/6qtpxmuZty23U6AVnF0wDQYJKoZIhvcNAQEL + BQAwEjEQMA4GA1UEAxMHUm9vdCBDQTAgFw0xNzAzMDMwNTQ2NDRaGA8yMDY3MDIx + OTA0NDcxNFowGjEYMBYGA1UEAxMPSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG + 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAol8fFnbOHydXo6wnuuhEb3NfJu0+0RTgFzWr + 6xekvQrsRL4tUIonhC3xOXyINswhOI53XLZCTnSd4L7oVdY0umoNRXqtpSvjulK0 + Ggd5+dxzBKQbAQ+DWemN8g9fLbkd8R0fx3gtmjY+4hASFuyX+wI/jroTy+Cyluid + ahVZmzDEW/KyGjBN4xxkTlHceX8VFvwb7f/39ALCl9mBLpDiTD8qLkZRPZUzX02J + OGLylGK57UTS/9zLC39+eil1/qycpBPHbVXj+AnSIp4F+ikAfY1OWC08fqK1H6LA + iuqk2uSA4Ft0vyRhGPt/TttrvWTVx+VeCxHi+cXmtY9lQnuaqwIDAQABo4HUMIHR + MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS/dE1e + +I9/EBNHEhq5p9j1FF++ajAfBgNVHSMEGDAWgBSp7Khi3m9qqsC82CRLaPkPcYO2 + nzA7BggrBgEFBQcBAQQvMC0wKwYIKwYBBQUHMAKGH2h0dHA6Ly92YXVsdDo4MjAw + L3YxL3Jvb3QtY2EvY2EwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL3ZhdWx0Ojgy + MDAvdjEvcm9vdC1jYS9jcmwwDQYJKoZIhvcNAQELBQADggEBABMF+ferbsJC3dlw + 6kUsd+idLuYM1eXhpjgkgh2D/5H01Hjar39tuIZNH8uTPCNNvV/o5UHEG7b97XEk + +EXH9HZopFYYuSqQZqE+x8Cq9uKXWaSI69w7N9zVyMFEX+ZsHRm6lvntedZhXERU + HHUiD8Qvf5Dui4RLXcO6eKT6zr0fVNurl6hs3l6ma4Z0zDmrgBhlxrW98gXhRRyK + 5M0AxBAfNRsT7hu+Tp7xrNuhDOE+SPotbIVi30rVAn88BhkYAtJK3CIAKRJ1W5bW + Sjv5ZzZvfE6u0R255qpoJQfUjHUL1OmFTW3yJrgjabrz/GgsagbD53h33ML9cNez + hhBu79U= + -----END CERTIFICATE----- + cert.key: |- + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA0LVUqLLJOOUnBjc17FqlKE/nQiuYMZrovKfOqKuCfzPu6Cqj + YpFiK4BR6Dw6j4pxpQu4lIQLFqs4e5+EVuFnzTyrfUwMcspO3inZ7+7YQGZTo1Zm + PgLwLlCBHPQokLKjA8PHQf2LZJW5juAB6Y1968pQbPpeD8oMMKXewytstGauPpLs + +cUyz9+DjACM+YFe4XAJaSyYVJFHoqy8heidOgKX7EomNIFi/pgRZZOxKd4Z46Pp + Bke5whjX0ZUx3zR4VHpp9y+sOjML3EVOmoRDXqFL951WQICW80q1J9j1YKqq/cbt + dTbmaFxWozlYSmCp0GB7cLUqzPnmADZ+CL8uPwIDAQABAoIBAGc7ScSnqiAaOFM6 + u9FMhKSL4Tc5mO3wUW3/EpkbPFDuvxzW+jmm74fU0K6uG8kkEVIxmfrb1SBBUI7V + OABBPbama6xuETo2FwyMZt/mo9A2zOfdtHS3v1UpPLO1kNsBgOA71jMt1eTKqh2h + b1C2S7J1P5KnxB7LMXxejvC6aepQeru3px8T5bRRdB8RgLoZsw8OkhlLh7HM7nV/ + D1hetDgw3ten+6tSb9GMZHWgM48f4+yGfCFW+lfbYm0AdogBuG6DUgBgfgho91jP + MzIAsFuLKRaovpmcZWMlEgcm5eWXmkmECDVytTD5nshKu0g2xFGdqPx8kxOj8BDI + yV10DAECgYEA3SS4AQHpk17D+hywKDr8gicRQD42kiWoQHLuUYeUQ2zjlZL73yug + YCuOgJZRSU4aDl6NX024rNxRgoc8Qt+85ti6kvy8wwKI6Tv0WMqVoJHtdLBiehK1 + utCWWj6D5ej9g1t3eulPd+Y+HR1Kiyj0OfuZIDpPouyTXFcjpfKKXk8CgYEA8ZrY + 4KtTHn4Q2y8UgHOBucjDGruIVpFOXVfRlgXMy9j1Yc7Dox+DCh8iaR4Rz9sbVXec + qT+cOcN9letNyUbLNqFv+lRE7fLe9F2MQNvny0ODiSzOh8DpckBxN/C3hB9/qsi8 + evAE6k80l4SYF4gizEIwRok+PLE2vtHRLzlapRECgYEAyUZ/VyNndaNeGgn8Z1Fw + vAFU2TUGtDQkFCzHLluJHWlBJsU2C+SIPp/GPtERwPeeDZAPejuiJ2sLoRL3TSKY + qz99aQUxxQhMloPkHOCeGRxYlMlpiBP5ZcQt5Itbv2k1PFaGw88Qbl+YDyW20DwB + NbkCoOuRygcrBHOnVYYQXE8CgYEArAhPT0KOr9KiG//dAE2+3FPYoMtRnBphC1QB + t2ov1iKJLvi0Ew3YF7ftn526nx9ryiKeWWEi03qgjMR8ocoX3rF682tXnXrnSGbn + /DLZTMGpAl72PHGfiCvcsjFj6t8m36uJkZwgU9rMHutaBL95z6l9iGwm9b5Vte/e + nFqhcZECgYBR+jc3QPGQ9ALbXcN3oNovTu+6O2ugxTBjJuhBLdO6Q5oZto/3Ge6I + FHhptg27hq3EhRDNGrLF9Vd/5Ujj+hgrlQOVXYRRkZQMNp4kFTdlG0R/+Tm4b8S3 + 7axTT7jYA532uVbwN936DqRIFtyTmzp59FwE+pPOqVJvo36r6YbS9w== + -----END RSA PRIVATE KEY----- + ca.pem: |- + -----BEGIN CERTIFICATE----- + MIIC9jCCAd6gAwIBAgIUVpGQ4b11qE33Vj+76ZZBkAgP9PUwDQYJKoZIhvcNAQEL + BQAwEjEQMA4GA1UEAxMHUm9vdCBDQTAgFw0xNzAzMDMwNTQ0NDRaGA8yMDY3MDIx + OTA1NDUxNFowEjEQMA4GA1UEAxMHUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD + ggEPADCCAQoCggEBAMyT4PF+B+fwyutMxCajyCZiutsgjMjPF27NA6AgFqQKIChi + s9WkiqgQ481KOwC2do3qeAVA2SGIaeBJYS6Rky8Qlte0mPktk3wrBnOh8QwPKTIq + /RQe2UvmCEJJ+HQdqFZ2DVwP3PKTIznvTvkiB6LsYD7xWOaSnpILjyb7WQVIrCLM + 7Gn4BVqWrfDFQ2fCNjjareEQZjBMQ//TEDCySIVcH2732DQYaSmdrYbBIL3XOQTE + vyfvXMGszwueoVAV43RgHwqVvqZ1Dg9QwLk63Hq3DDlHqw/ZhUtTatdJ+jIaoGgl + IRBUBzKa5+PNqpLJ25nXkCb0cfsTMltoQHzMACkCAwEAAaNCMEAwDgYDVR0PAQH/ + BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKnsqGLeb2qqwLzYJEto + +Q9xg7afMA0GCSqGSIb3DQEBCwUAA4IBAQArFsSy8fKyPbZueiT9k/F9ls0US3WQ + af8JNP9XuhpC/J9SumuSJh8OybDnvxUZrqVtSu8GdD/Pq+0kDohluY3Byzrro16s + 6oweA2tHAetXjwoOdmaQKGnNg2T6+prBScz+H3lHNjYZfG7Ey8YJdTIi5K4DHP67 + C6f5e4lZcvVxpCqxcJWy3YK7TYE2KXKmHEk2GmoqCwMXhp2uviTaEM2eJ80Yai2s + vnbpRxTMFTC7c9YklP63rK6aF6Xzqe68+wPn/o6nx2JPbHRbOTEoEipoEMZLKILf + i3SnFU4sUUQgdtOI6smGYqXWxnDoK2hsUidVdLr8W1TvANQw6wh3V+Ya + -----END CERTIFICATE----- \ No newline at end of file diff --git a/server/devops/templates/deployment/admin-broker.yaml b/server/devops/templates/deployment/admin-broker.yaml new file mode 100644 index 0000000..a1245f6 --- /dev/null +++ b/server/devops/templates/deployment/admin-broker.yaml @@ -0,0 +1,61 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: admin-broker + labels: + app: admin-broker +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 1 + template: + metadata: + name: admin-broker + labels: + app: admin-broker + spec: + imagePullSecrets: + - name: ecr-secret + containers: + - name: admin-broker + image: gcr.io/google_containers/nginx-slim:0.15 + resources: + requests: + memory: 16Mi + cpu: 25m + limits: + memory: 64Mi + cpu: 150m + imagePullPolicy: Always + ports: + - name: http + containerPort: 80 + - name: ssl + containerPort: 443 + - name: cockroach + containerPort: 8080 + - name: consul + containerPort: 8443 + - name: mongo-0 + containerPort: 27007 + - name: mongo-1 + containerPort: 27017 + - name: mongo-2 + containerPort: 27027 + volumeMounts: + - name: tls + mountPath: /etc/tls + readOnly: true + - name: nginx + mountPath: /etc/nginx + volumes: + - name: nginx + secret: + secretName: admin-broker + - name: tls + secret: + secretName: tls \ No newline at end of file diff --git a/server/devops/templates/deployment/front.yaml b/server/devops/templates/deployment/front.yaml new file mode 100644 index 0000000..93719b3 --- /dev/null +++ b/server/devops/templates/deployment/front.yaml @@ -0,0 +1,56 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: front + labels: + app: front +spec: + replicas: 2 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 1 + template: + metadata: + name: front + labels: + app: front + spec: + imagePullSecrets: + - name: ecr-secret + volumes: + - name: front + secret: + secretName: front + containers: + - name: front + image: GRUNT_FRONT_IMAGE + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 192Mi + cpu: 250m + ports: + - name: front-http + containerPort: 3000 + readinessProbe: + httpGet: + path: /healthz + port: front-http + initialDelaySeconds: 30 + timeoutSeconds: 5 + env: + - name: SETTINGS + valueFrom: + secretKeyRef: + name: front + key: settings.yaml + - name: NAMESPACE_SETTINGS + valueFrom: + secretKeyRef: + name: namespace + key: settings.yaml \ No newline at end of file diff --git a/server/devops/templates/deployment/ingress-controller.yaml b/server/devops/templates/deployment/ingress-controller.yaml new file mode 100644 index 0000000..d161235 --- /dev/null +++ b/server/devops/templates/deployment/ingress-controller.yaml @@ -0,0 +1,50 @@ +kind: Deployment +apiVersion: extensions/v1beta1 +metadata: + name: ingress-controller +spec: + replicas: 1 + template: + metadata: + labels: + app: ingress-controller + spec: + terminationGracePeriodSeconds: 60 + containers: + - image: gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.8 + name: ingress-controller + resources: + requests: + memory: 128Mi + cpu: 50m + limits: + memory: 192Mi + cpu: 150m + ports: + - name: http + containerPort: 80 + protocol: TCP + - name: https + containerPort: 443 + protocol: TCP + livenessProbe: + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 5 + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + args: + - /nginx-ingress-controller + - --default-backend-service=$(POD_NAMESPACE)/front + - --configmap=$(POD_NAMESPACE)/ingress-controller-sticky + - --watch-namespace=$(POD_NAMESPACE) \ No newline at end of file diff --git a/server/devops/templates/deployment/mailer.yaml b/server/devops/templates/deployment/mailer.yaml new file mode 100644 index 0000000..b169a44 --- /dev/null +++ b/server/devops/templates/deployment/mailer.yaml @@ -0,0 +1,56 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: mailer + labels: + app: mailer +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 1 + template: + metadata: + name: mailer + labels: + app: mailer + spec: + imagePullSecrets: + - name: ecr-secret + volumes: + - name: mailer + secret: + secretName: mailer + containers: + - name: mailer + image: GRUNT_MAILER_IMAGE + resources: + requests: + memory: 64Mi + cpu: 50m + limits: + memory: 128Mi + cpu: 150m + ports: + - name: mailer-http + containerPort: 3000 + readinessProbe: + httpGet: + path: /healthz + port: mailer-http + initialDelaySeconds: 30 + timeoutSeconds: 1 + env: + - name: SETTINGS + valueFrom: + secretKeyRef: + name: mailer + key: settings.yaml + - name: NAMESPACE_SETTINGS + valueFrom: + secretKeyRef: + name: namespace + key: settings.yaml \ No newline at end of file diff --git a/server/devops/templates/deployment/meteor.yaml b/server/devops/templates/deployment/meteor.yaml new file mode 100644 index 0000000..06355fb --- /dev/null +++ b/server/devops/templates/deployment/meteor.yaml @@ -0,0 +1,86 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: meteor + labels: + app: meteor +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 30 + template: + metadata: + name: meteor + labels: + app: meteor + spec: + imagePullSecrets: + - name: ecr-secret + volumes: + - name: meteor + secret: + secretName: meteor + containers: + - name: meteor + image: GRUNT_METEOR_IMAGE + ports: + - name: meteor + containerPort: 80 + resources: + requests: + memory: 384Mi + cpu: 125m + limits: + memory: 512Mi + cpu: 250m + readinessProbe: + httpGet: + path: /healthz + port: meteor + initialDelaySeconds: 60 + timeoutSeconds: 10 + env: + - name: ROOT_URL + valueFrom: + secretKeyRef: + name: meteor + key: ROOT_URL + - name: MONGO_URL + valueFrom: + secretKeyRef: + name: meteor + key: MONGO_URL + - name: MONGO_CERT + valueFrom: + secretKeyRef: + name: mongo-tls + key: meteor.crt + - name: MONGO_CA + valueFrom: + secretKeyRef: + name: mongo-tls + key: ca.crt + - name: MONGO_KEY + valueFrom: + secretKeyRef: + name: mongo-tls + key: meteor.pem + - name: MAIL_URL + valueFrom: + secretKeyRef: + name: meteor + key: MAIL_URL + - name: METEOR_SETTINGS + valueFrom: + secretKeyRef: + name: meteor + key: METEOR_SETTINGS + - name: NAMESPACE_SETTINGS + valueFrom: + secretKeyRef: + name: namespace + key: settings.yaml \ No newline at end of file diff --git a/server/devops/templates/deployment/theme.yaml b/server/devops/templates/deployment/theme.yaml new file mode 100644 index 0000000..f7b7dd3 --- /dev/null +++ b/server/devops/templates/deployment/theme.yaml @@ -0,0 +1,42 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: theme + labels: + app: theme +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 1 + template: + metadata: + name: theme + labels: + app: theme + spec: + imagePullSecrets: + - name: ecr-secret + containers: + - name: theme + image: GRUNT_THEME_IMAGE + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "128Mi" + cpu: "250m" + ports: + - name: nginx-http + containerPort: 80 + readinessProbe: + httpGet: + path: /theme/theme.json + port: 80 + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 1 \ No newline at end of file diff --git a/server/devops/templates/deployment/uoa.yaml b/server/devops/templates/deployment/uoa.yaml new file mode 100644 index 0000000..cb2975e --- /dev/null +++ b/server/devops/templates/deployment/uoa.yaml @@ -0,0 +1,45 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: uoa + labels: + app: uoa +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 1 + template: + metadata: + name: uoa + labels: + app: uoa + spec: + volumes: + - name: uoa + secret: + secretName: uoa + imagePullSecrets: + - name: ecr-secret + containers: + - name: uoa + image: GRUNT_UOA_IMAGE + resources: + requests: + memory: "128Mi" + cpu: "125m" + limits: + memory: "256Mi" + cpu: "250m" + ports: + - name: uoa-http + containerPort: 3000 + env: + - name: SETTINGS + valueFrom: + secretKeyRef: + name: uoa + key: settings.yaml \ No newline at end of file diff --git a/server/devops/templates/deployment/wordpress-mysql.yaml b/server/devops/templates/deployment/wordpress-mysql.yaml new file mode 100644 index 0000000..6e483f1 --- /dev/null +++ b/server/devops/templates/deployment/wordpress-mysql.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1beta1 +kind: Deployment +metadata: + name: wordpress-mysql +spec: + strategy: + type: Recreate + template: + metadata: + labels: + app: wordpress-mysql + spec: + containers: + - image: mysql:5.6 + name: wordpress-mysql + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: wordpress-mysql + key: MYSQL_ROOT_PASSWORD + ports: + - containerPort: 3306 + name: wordpress-mysql + volumeMounts: + - name: data + mountPath: /var/lib/mysql + volumes: + - name: data + persistentVolumeClaim: + claimName: wordpress-mysql +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wordpress-mysql +spec: + accessModes: + - ReadWriteOnce + storageClassName: standard + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/server/devops/templates/deployment/wordpress.yaml b/server/devops/templates/deployment/wordpress.yaml new file mode 100644 index 0000000..275224c --- /dev/null +++ b/server/devops/templates/deployment/wordpress.yaml @@ -0,0 +1,47 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: wordpress + labels: + app: wordpress +spec: + strategy: + type: Recreate + template: + metadata: + labels: + app: wordpress + spec: + containers: + - image: wordpress:4.7.3-apache + name: wordpress + env: + - name: WORDPRESS_DB_HOST + value: wordpress-mysql + - name: WORDPRESS_DB_PASSWORD + valueFrom: + secretKeyRef: + name: wordpress + key: WORDPRESS_DB_PASSWORD + ports: + - containerPort: 80 + name: http + volumeMounts: + - name: data + mountPath: /var/www/html + volumes: + - name: data + persistentVolumeClaim: + claimName: wordpress +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wordpress +spec: + accessModes: + - ReadWriteOnce + storageClassName: standard + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/server/devops/templates/ingress/default.yaml b/server/devops/templates/ingress/default.yaml new file mode 100644 index 0000000..09b0332 --- /dev/null +++ b/server/devops/templates/ingress/default.yaml @@ -0,0 +1,26 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress + annotations: + kubernetes.io/ingress.class: "nginx" + ingress.kubernetes.io/affinity: "cookie" + kubernetes.io/ingress.allow-http: "false" +spec: + tls: + - secretName: tls + hosts: GRUNT_REPLACE + rules: + - host: GRUNT_URL + http: + paths: + GRUNT_REPLACE: + front: + port: http + routes: / + theme: + port: http + routes: theme, .well-known + meteor: + port: http + routes: _timesync, account, admin, app, cfs, fonts, forgotPassword, join, login, logout, merged-stylesheets.css, meteor, offerings, offering, orders, order, packages, portfolio, resetPassword, signup, signin, sockjs, verifyEmail \ No newline at end of file diff --git a/server/devops/templates/ingress/nakedDomain.yaml b/server/devops/templates/ingress/nakedDomain.yaml new file mode 100644 index 0000000..5c3c308 --- /dev/null +++ b/server/devops/templates/ingress/nakedDomain.yaml @@ -0,0 +1,29 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: ingress + annotations: + kubernetes.io/ingress.class: "nginx" + ingress.kubernetes.io/affinity: "cookie" + kubernetes.io/ingress.allow-http: "false" +spec: + tls: + - secretName: tls + hosts: GRUNT_REPLACE + rules: + - host: GRUNT_URL + http: + paths: + GRUNT_REPLACE: + front: + port: http + routes: / + theme: + port: http + routes: theme, .well-known + meteor: + port: http + routes: _timesync, account, admin, app, cfs, fonts, forgotPassword, join, login, logout, merged-stylesheets.css, meteor, offerings, offering, orders, order, packages, portfolio, resetPassword, signup, signin, sockjs, verifyEmail + - host: www.GRUNT_URL + http: + paths: GRUNT_MATCH_ROOT \ No newline at end of file diff --git a/server/devops/templates/job/vault-init.yaml b/server/devops/templates/job/vault-init.yaml new file mode 100644 index 0000000..dedcaef --- /dev/null +++ b/server/devops/templates/job/vault-init.yaml @@ -0,0 +1,55 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: vault-init +spec: + template: + metadata: + name: vault-init + spec: + containers: + - name: vault + image: vault:0.7.0 + command: + - vault + - server + - -config=/vault/config/ + securityContext: + capabilities: + add: + - IPC_LOCK + resources: + requests: + cpu: 300m + memory: 1000Mi + limits: + cpu: 300m + memory: 1500Mi + ports: + - containerPort: 9000 + name: readiness + volumeMounts: + - name: "tls" + mountPath: /etc/tls + - name: "config" + mountPath: /vault/config + - name: vault-init + image: 738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/vault-init:1.0.4 + imagePullPolicy: Always + env: + - name: VAULT_INIT_SETTINGS + valueFrom: + secretKeyRef: + name: vault-init + key: settings.json + restartPolicy: Never + volumes: + - name: tls + secret: + secretName: consul + - name: config + secret: + secretName: vault + - name: vault-init + secret: + secretName: vault-init \ No newline at end of file diff --git a/server/devops/templates/kops/cluster.sh b/server/devops/templates/kops/cluster.sh new file mode 100644 index 0000000..0ce520d --- /dev/null +++ b/server/devops/templates/kops/cluster.sh @@ -0,0 +1,9 @@ +kops create cluster \ + --node-count 3 \ + --zones us-west-2a,us-west-2b,us-west-2c \ + --master-zones us-west-2a,us-west-2b,us-west-2c \ + --node-size m3.medium \ + --master-size m3.medium \ + --topology private \ + --networking kopeio-vxlan \ + production.chroma.fund \ No newline at end of file diff --git a/server/devops/templates/legacy/meteor.yaml b/server/devops/templates/legacy/meteor.yaml new file mode 100644 index 0000000..e6c76f3 --- /dev/null +++ b/server/devops/templates/legacy/meteor.yaml @@ -0,0 +1,95 @@ +apiVersion: v1 +kind: Service +metadata: + name: web + labels: + app: web +spec: + type: LoadBalancer + ports: + - port: 80 + targetPort: nginx-http + protocol: TCP + name: http + - port: 443 + targetPort: nginx-https + protocol: TCP + name: https + selector: + app: web +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: meteor + labels: + app: web +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 0 + maxSurge: 20% + minReadySeconds: 30 + template: + metadata: + name: web + labels: + app: web + spec: + volumes: + - name: "env" + secret: + secretName: "meteor.env" + - name: "acme" + secret: + secretName: "acme" + containers: + - name: meteor + image: 738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/fund:v1.0.22 + env: + - name: PORT + value: "3000" + - name: ROOT_URL + valueFrom: + secretKeyRef: + name: meteor.env + key: root.url + - name: MONGO_URL + valueFrom: + secretKeyRef: + name: meteor.env + key: MONGO_URL + - name: MONGO_OPLOG_URL + valueFrom: + secretKeyRef: + name: meteor.env + key: MONGO_OPLOG_URL + - name: MAIL_URL + valueFrom: + secretKeyRef: + name: meteor.env + key: mail.url + - name: METEOR_SETTINGS + valueFrom: + secretKeyRef: + name: meteor.env + key: meteor.settings + ports: + - name: meteor + containerPort: 3000 + - name: nginx + image: 738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/nginx:v1.0.6 + ports: + - name: nginx-http + containerPort: 80 + - name: nginx-https + containerPort: 443 + volumeMounts: + - mountPath: "/etc/nginx/" + name: "env" + - mountPath: "/usr/local/etc/nginx/ssl" + name: "env" + - mountPath: "/.well-known/acme-challenge" + name: "acme" \ No newline at end of file diff --git a/server/devops/templates/legacy/nginx/legacy.conf b/server/devops/templates/legacy/nginx/legacy.conf new file mode 100644 index 0000000..326074e --- /dev/null +++ b/server/devops/templates/legacy/nginx/legacy.conf @@ -0,0 +1,97 @@ +error_log /dev/stdout notice; +worker_processes 1; + +events { + worker_connections 4096; +} + +http { + # include mime.types; + default_type application/octet-stream; + + # to avoid SSL handshake time + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + upstream site { + ip_hash; + server localhost; + } + + sendfile on; + keepalive_timeout 65; + + gzip on; + + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + + server { + listen 80; + location '/.well-known/acme-challenge' { + default_type "text/plain"; + + proxy_pass http://test.chroma.fund/$request_uri; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + location / { + return 301 https://$host$request_uri; + } + } + server { + listen 443 ssl; + server_name chroma-ssl; + ssl_certificate /usr/local/etc/nginx/ssl/fullchain.pem; + ssl_certificate_key /usr/local/etc/nginx/ssl/privkey.pem; + + # As recommended by https://weakdh.org/sysadmin.html to deploy a strong Diffie-Hellman key. + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; + add_header Strict-Transport-Security max-age=15768000; + ssl_prefer_server_ciphers on; + # ssl_dhparam /dhparams.pem; + + # OCSP Stapling + # fetch OCSP records from URL in ssl_certificate and cache them + ssl_stapling on; + ssl_stapling_verify on; + + # Set upload to sensible value as defaults to 1M if not present + client_max_body_size 10M; + + location / { + proxy_pass http://localhost:3000/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # WebSocket specific + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + add_header Cache-Control no-cache; + # + # Specific for comet or long running HTTP requests, don't buffer up the + # response from origin servers but send them directly to the client. + # + proxy_buffering off; + + # + # Bump the timeout's so someting sensible so our connections don't + # disconnect automatically. We've set it to 12 hours. + # + proxy_connect_timeout 43200000; + proxy_read_timeout 43200000; + proxy_send_timeout 43200000; + } + } +} \ No newline at end of file diff --git a/server/devops/templates/public-service/admin-broker.yaml b/server/devops/templates/public-service/admin-broker.yaml new file mode 100644 index 0000000..56486fd --- /dev/null +++ b/server/devops/templates/public-service/admin-broker.yaml @@ -0,0 +1,43 @@ +apiVersion: v1 +kind: Service +metadata: + name: admin-broker + labels: + app: admin-broker +spec: + type: LoadBalancer + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + - name: https + port: 443 + targetPort: 443 + protocol: TCP + - name: vault + port: 8200 + targetPort: 8200 + protocol: TCP + - name: consul + port: 8443 + targetPort: 8443 + protocol: TCP + - name: cockroachdb + port: 8080 + targetPort: 8080 + protocol: TCP + - name: mongo-0 + port: 27007 + targetPort: 27007 + protocol: TCP + - name: mongo-1 + port: 27017 + targetPort: 27017 + protocol: TCP + - name: mongo-2 + port: 27027 + targetPort: 27027 + protocol: TCP + selector: + app: admin-broker \ No newline at end of file diff --git a/server/devops/templates/public-service/ingress-controller.yaml b/server/devops/templates/public-service/ingress-controller.yaml new file mode 100644 index 0000000..4169024 --- /dev/null +++ b/server/devops/templates/public-service/ingress-controller.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: ingress-controller + labels: + app: ingress-controller +spec: + type: LoadBalancer + selector: + app: ingress-controller + ports: + - name: http + port: 80 + targetPort: http + - name: https + port: 443 + targetPort: https \ No newline at end of file diff --git a/server/devops/templates/secrets/cockroach.sh b/server/devops/templates/secrets/cockroach.sh new file mode 100644 index 0000000..a0c98ec --- /dev/null +++ b/server/devops/templates/secrets/cockroach.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# https://www.cockroachlabs.com/docs/manual-deployment.html + +# Create a certs directory: +mkdir certs + +# Create the CA key pair: +cockroach cert create-ca \ +--ca-cert=certs/ca.cert \ +--ca-key=certs/ca.key + +# Create a client key pair for the root user: +cockroach cert create-client \ +root \ +--ca-cert=certs/ca.cert \ +--ca-key=certs/ca.key \ +--cert=certs/root.cert \ +--key=certs/root.key + +# For each node, create a node key pair issued to all common names you might use to refer to the node as well as to the HAProxy instances: +cockroach cert create-node \ + \ + \ + \ + \ +localhost \ +127.0.0.1 \ + \ + \ + \ + \ +--ca-cert=certs/ca.cert \ +--ca-key=certs/ca.key \ +--cert=certs/.cert \ +--key=certs/.key \ No newline at end of file diff --git a/server/devops/templates/secrets/consul.sh b/server/devops/templates/secrets/consul.sh new file mode 100644 index 0000000..3731a83 --- /dev/null +++ b/server/devops/templates/secrets/consul.sh @@ -0,0 +1,107 @@ +echo "generate root ca + certs for consul and vault" + +cat > ca-config.json < ca-csr.json < consul-csr.json < vault-csr.json < gossip-encryption-key +uuidgen > acl-agent-master-token \ No newline at end of file diff --git a/server/devops/templates/secrets/mongo.sh b/server/devops/templates/secrets/mongo.sh new file mode 100755 index 0000000..fd7a2db --- /dev/null +++ b/server/devops/templates/secrets/mongo.sh @@ -0,0 +1,318 @@ + +# Prerequisites: +# a. Make sure you have MongoDB Enterprise installed. +# b. Make sure mongod/mongo are in the executable path +# c. Make sure no mongod running on 27017 port, or change the port below +# d. Run this script in a clean directory + +##### Feel free to change following section values #### +# Changing this to include: country, province, city, company +dn_prefix="/C=US/ST=OR/L=PDX/O=Chroma" +ou_member="Mongo" +ou_client="Meteor" +mongodb_server_hosts=( "mongo-0" "mongo-1" "mongo-2" ) +mongodb_client_hosts=( "admin" "meteor" ) + +# make a subdirectory for mongodb cluster +rm -Rf tls +mkdir -p tls +cd tls + +echo "##### STEP 1: Generate root CA " +openssl genrsa -out root-ca.key 2048 +# !!! In production you will want to use -aes256 to password protect the keys +#openssl genrsa -aes256 -out root-ca.key 2048 +openssl req -new -x509 -days 3650 -key root-ca.key -out root-ca.crt -subj "$dn_prefix/CN=ROOTCA" + +mkdir -p RootCA/ca.db.certs +echo "01" >> RootCA/ca.db.serial +touch RootCA/ca.db.index +echo $RANDOM >> RootCA/ca.db.rand +mv root-ca* RootCA/ + +echo "##### STEP 2: Create CA config" +# Generate CA config +cat >> root-ca.cfg <> SigningCA/ca.db.serial +touch SigningCA/ca.db.index +# Should use a better source of random here.. +echo $RANDOM >> SigningCA/ca.db.rand +mv signing-ca* SigningCA/ + +# Create root-ca.pem +cat RootCA/root-ca.crt SigningCA/signing-ca.crt > root-ca.pem + + + +echo "##### STEP 4: Create server certificates" +# Now create & sign keys for each mongod server +# Pay attention to the OU part of the subject in "openssl req" command +# You may want to use FQDNs instead of short hostname +for host in "${mongodb_server_hosts[@]}"; do + echo "Generating key for $host" +cat >> $host-san.cnf < ${host}.pem +done + +echo "##### STEP 5: Create client certificates" +# Now create & sign keys for each client +# Pay attention to the OU part of the subject in "openssl req" command +for host in "${mongodb_client_hosts[@]}"; do + echo "Generating key for $host" + openssl genrsa -out ${host}.key 2048 + openssl req -new -days 3650 -key ${host}.key -out ${host}.csr -subj "$dn_prefix/OU=$ou_client/CN=${host}" + openssl ca -batch -name SigningCA -config root-ca.cfg -out ${host}.crt -infiles ${host}.csr + cat ${host}.crt ${host}.key > ${host}.pem +done + +# obtain the subject from the client key: +admin_subject=`openssl x509 -in ${mongodb_client_hosts[0]}.pem -inform PEM -subject -nameopt RFC2253 | grep subject | awk '{sub("subject= ",""); print}'` +meteor_subject=`openssl x509 -in ${mongodb_client_hosts[1]}.pem -inform PEM -subject -nameopt RFC2253 | grep subject | awk '{sub("subject= ",""); print}'` + + +echo "##### STEP 7: setup replicaset & initial user role\n" +myhostname=`hostname` +cat > ../setup_auth.js < ../setup_rs.js < ../setup.sh < ../run.sh < ../do_login.js < /etc/hostname && hostname -F /etc/hostname' + +# mongodb://CN%3Dmeteor%2COU%3DMeteor%2CO%3DChroma%2CL%3DPDX%2CST%3DOR%2CC%3DUS:@mongo.staging.chroma.fund:27017,mongo.staging.chroma.fund:27117,mongo.staging.chroma.fund:27217/meteor?authMechanism=MONGODB-X509&readPreference=primary&authSource=$external&ssl=true \ No newline at end of file diff --git a/server/devops/templates/stateful-set/cockroachdb.yaml b/server/devops/templates/stateful-set/cockroachdb.yaml new file mode 100644 index 0000000..2df7775 --- /dev/null +++ b/server/devops/templates/stateful-set/cockroachdb.yaml @@ -0,0 +1,110 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: cockroachdb +spec: + serviceName: cockroachdb + replicas: 3 + template: + metadata: + labels: + app: cockroachdb + annotations: + scheduler.alpha.kubernetes.io/affinity: > + { + "podAntiAffinity": { + "preferredDuringSchedulingIgnoredDuringExecution": [{ + "weight": 100, + "labelSelector": { + "matchExpressions": [{ + "key": "app", + "operator": "In", + "values": ["cockroachdb"] + }] + }, + "topologyKey": "kubernetes.io/hostname" + }] + } + } + pod.alpha.kubernetes.io/init-containers: '[{ + "name": "bootstrap", + "image": "cockroachdb/cockroach-k8s-init:0.1", + "imagePullPolicy": "Always", + "args": [ + "-on-start=/on-start.sh", + "-service=cockroachdb" + ], + "env": [ + { + "name": "POD_NAMESPACE", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "metadata.namespace" + } + } + } + ], + "volumeMounts": [ + { + "name": "datadir", + "mountPath": "/cockroach/cockroach-data" + } + ] + }]' + spec: + containers: + - name: cockroachdb + image: cockroachdb/cockroach + imagePullPolicy: Always + resources: + requests: + memory: 384Mi + cpu: 50m + limits: + memory: 512Mi + cpu: 100m + ports: + - containerPort: 26257 + name: grpc + - containerPort: 8080 + name: http + volumeMounts: + - name: datadir + mountPath: /cockroach/cockroach-data + - name: tls + mountPath: /etc/tls + command: + - "/bin/bash" + - "-ecx" + - | + CRARGS=("start" "--certs-dir" "/etc/tls" "--host" "$(hostname -f)" "--http-host" "0.0.0.0") + if [ ! "$(hostname)" == "cockroachdb-0" ] || [ -e "/cockroach/cockroach-data/cluster_exists_marker" ] + then + CRARGS+=("--join" "cockroachdb-0.cockroachdb.GRUNT_NAMESPACE.svc.cluster.local,cockroachdb-1.cockroachdb.GRUNT_NAMESPACE.svc.cluster.local,cockroachdb-2.cockroachdb.GRUNT_NAMESPACE.svc.cluster.local") + else + echo "init new cluster" + fi + chmod 700 /etc/tls/* + exec /cockroach/cockroach ${CRARGS[*]} + terminationGracePeriodSeconds: 60 + volumes: + - name: vault + secret: + secretName: consul + - name: datadir + persistentVolumeClaim: + claimName: datadir + - name: tls + emptyDir: {} + volumeClaimTemplates: + - metadata: + name: datadir + annotations: + volume.alpha.kubernetes.io/storage-class: standard + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/server/devops/templates/stateful-set/consul.yaml b/server/devops/templates/stateful-set/consul.yaml new file mode 100644 index 0000000..54a0d8b --- /dev/null +++ b/server/devops/templates/stateful-set/consul.yaml @@ -0,0 +1,96 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: consul +spec: + serviceName: consul + replicas: 3 + template: + metadata: + labels: + app: consul + spec: + terminationGracePeriodSeconds: 10 + securityContext: + fsGroup: 1000 + containers: + - name: consul + image: consul:0.8.3 + resources: + requests: + cpu: 25m + memory: 32Mi + limits: + cpu: 100m + memory: 64Mi + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: GOSSIP_ENCRYPTION_KEY + valueFrom: + secretKeyRef: + name: consul + key: gossip-encryption-key + args: + - "agent" + - "-advertise=$(POD_IP)" + - "-bind=0.0.0.0" + - "-bootstrap-expect=3" + - "-retry-join=consul-0.consul" + - "-retry-interval=5s" + - "-client=0.0.0.0" + - "-config-file=/etc/tls/server.json" + - "-datacenter=GRUNT_NAMESPACE" + - "-data-dir=/var/lib/consul" + - "-domain=cluster.local" + - "-encrypt=$(GOSSIP_ENCRYPTION_KEY)" + - "-server" + - "-ui" + volumeMounts: + - name: data + mountPath: /var/lib/consul + - name: tls + mountPath: /etc/tls + lifecycle: + preStop: + exec: + command: + - /bin/sh + - -c + - consul leave + ports: + - containerPort: 8500 + name: ui-port + - containerPort: 8400 + name: alt-port + - containerPort: 53 + name: udp-port + - containerPort: 8443 + name: https-port + - containerPort: 8080 + name: http-port + - containerPort: 8301 + name: serflan + - containerPort: 8302 + name: serfwan + - containerPort: 8600 + name: consuldns + - containerPort: 8300 + name: server + volumes: + - name: tls + secret: + secretName: consul + volumeClaimTemplates: + - metadata: + name: data + annotations: + volume.alpha.kubernetes.io/storage-class: anything + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi diff --git a/server/devops/templates/stateful-set/mongo.yaml b/server/devops/templates/stateful-set/mongo.yaml new file mode 100644 index 0000000..09e090b --- /dev/null +++ b/server/devops/templates/stateful-set/mongo.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: mongo +spec: + serviceName: mongo + replicas: 3 + template: + metadata: + labels: + app: mongo + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: mongo + image: mongo:3.4 + resources: + requests: + memory: 64Mi + cpu: 50m + limits: + memory: 256Mi + cpu: 250m + command: ["/bin/sh"] + args: + - "/etc/mongo/run.sh" + - "$(POD_NAME)" + ports: + - containerPort: 27017 + volumeMounts: + - name: data + mountPath: /data/db + - name: config + mountPath: /etc/mongo + - name: tls + mountPath: /etc/tls + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + volumes: + - name: config + secret: + secretName: mongo + - name: tls + secret: + secretName: mongo-tls + volumeClaimTemplates: + - metadata: + name: data + annotations: + volume.beta.kubernetes.io/storage-class: standard + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/server/devops/templates/stateful-set/rabbitmq.yaml b/server/devops/templates/stateful-set/rabbitmq.yaml new file mode 100644 index 0000000..daf32a3 --- /dev/null +++ b/server/devops/templates/stateful-set/rabbitmq.yaml @@ -0,0 +1,75 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: rabbitmq +spec: + replicas: 3 + selector: + matchLabels: + app: rabbitmq + serviceName: rmq-cluster + template: + metadata: + labels: + app: rabbitmq + spec: + imagePullSecrets: + - name: ecr-secret + dnsPolicy: ClusterFirst + restartPolicy: Always + terminationGracePeriodSeconds: 10 + volumes: + - name: rabbitmq + secret: + secretName: rabbitmq + containers: + - name: rabbitmq + image: GRUNT_RABBITMQ_IMAGE + imagePullPolicy: Always + resources: + requests: + memory: 96Mi + cpu: 25m + limits: + memory: 128Mi + cpu: 125m + terminationMessagePath: /dev/termination-log + ports: + - containerPort: 5672 + name: queue-port + protocol: TCP + - containerPort: 15672 + name: management-port + protocol: TCP + - containerPort: 4369 + name: cluster-port + protocol: TCP + - containerPort: 25672 + name: dist-port + protocol: TCP + env: + - name: RABBITMQ_DEFAULT_USER + valueFrom: + secretKeyRef: + name: rabbitmq + key: RABBITMQ_DEFAULT_USER + - name: RABBITMQ_DEFAULT_PASS + valueFrom: + secretKeyRef: + name: rabbitmq + key: RABBITMQ_DEFAULT_PASS + - name: RABBITMQ_ERLANG_COOKIE + valueFrom: + secretKeyRef: + name: rabbitmq + key: RABBITMQ_ERLANG_COOKIE + - name: RABBITMQ_USE_LONGNAME + value: "true" + - name: NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: RABBITMQ_NODENAME + value: rabbit@$(NODE_NAME).rmq-cluster + \ No newline at end of file diff --git a/server/devops/templates/stateful-set/vault.yaml b/server/devops/templates/stateful-set/vault.yaml new file mode 100644 index 0000000..4c52d4d --- /dev/null +++ b/server/devops/templates/stateful-set/vault.yaml @@ -0,0 +1,94 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: vault +spec: + serviceName: vault + replicas: 1 + template: + metadata: + labels: + app: vault + spec: + imagePullSecrets: + - name: ecr-secret + containers: + - name: vault + image: chromapdx/vault:1.0.4 + command: + - "/bin/sh" + - "-c" + - | + export ROOT_URL=GRUNT_URL + export VAULT_REDIRECT_ADDR="https://vault.$ROOT_URL" + export CLUSTER_DNS="$(NAMESPACE).svc.cluster.local" + export VAULT_CLUSTER_ADDR="https://$CLUSTER_DNS:8200" + export VAULT_CONFIG_PATH="/vault/config/vault.hcl" + node /app/build/server.js + #echo starting vault @ $VAULT_CLUSTER_ADDR loadbalancer @ $VAULT_REDIRECT_ADDR + #vault server -config=/vault/config/ + env: + - name: NAMESPACE + value: GRUNT_NAMESPACE + - name: ENDPOINT + value: http://127.0.0.1:9000 + - name: GITHUB_ORG + value: chromapdx + - name: GITHUB_TEAM + value: Owners + - name: GITHUB_USER + valueFrom: + secretKeyRef: + name: vault + key: GITHUB_USER + securityContext: + capabilities: + add: + - IPC_LOCK + resources: + requests: + cpu: 25m + memory: 64Mi + limits: + cpu: 250m + memory: 256Mi + ports: + - containerPort: 443 + name: ha-forwarding + - containerPort: 9000 + name: readiness + - containerPort: 8200 + name: vault + - containerPort: 8125 + name: telemetry + readinessProbe: + httpGet: + path: /v1/sys/leader + port: 9000 + initialDelaySeconds: 30 + timeoutSeconds: 1 + volumeMounts: + - name: tls + mountPath: /etc/tls + - name: config + mountPath: /vault/config + - name: data + mountPath: /data + volumes: + - name: tls + secret: + secretName: consul + - name: config + secret: + secretName: vault + volumeClaimTemplates: + - metadata: + name: data + annotations: + volume.alpha.kubernetes.io/storage-class: standard + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/server/devops/templates/telemetry/grafana.yaml b/server/devops/templates/telemetry/grafana.yaml new file mode 100644 index 0000000..41918e5 --- /dev/null +++ b/server/devops/templates/telemetry/grafana.yaml @@ -0,0 +1,73 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: monitoring-grafana + namespace: kube-system +spec: + replicas: 1 + template: + metadata: + labels: + task: monitoring + k8s-app: grafana + spec: + containers: + - name: grafana + image: gcr.io/google_containers/heapster-grafana-amd64:v4.0.2 + resources: + requests: + cpu: 10m + memory: 32Mi + limits: + cpu: 25m + memory: 64Mi + ports: + - containerPort: 3000 + protocol: TCP + volumeMounts: + - mountPath: /var + name: grafana-storage + env: + - name: INFLUXDB_HOST + value: monitoring-influxdb + - name: GF_SERVER_HTTP_PORT + value: "3000" + # The following env variables are required to make Grafana accessible via + # the kubernetes api-server proxy. On production clusters, we recommend + # removing these env variables, setup auth for grafana, and expose the grafana + # service using a LoadBalancer or a public IP. + - name: GF_AUTH_BASIC_ENABLED + value: "false" + - name: GF_AUTH_ANONYMOUS_ENABLED + value: "true" + - name: GF_AUTH_ANONYMOUS_ORG_ROLE + value: Admin + - name: GF_SERVER_ROOT_URL + # If you're only using the API Server proxy, set this value instead: + # value: /api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/ + value: /api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/ + volumes: + - name: grafana-storage + emptyDir: {} +--- +apiVersion: v1 +kind: Service +metadata: + labels: + # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) + # If you are NOT using this as an addon, you should comment out this line. + kubernetes.io/cluster-service: 'true' + kubernetes.io/name: monitoring-grafana + name: monitoring-grafana + namespace: kube-system +spec: + # In a production setup, we recommend accessing Grafana through an external Loadbalancer + # or through a public IP. + # type: LoadBalancer + # You could also use NodePort to expose the service at a randomly-generated port + # type: NodePort + ports: + - port: 80 + targetPort: 3000 + selector: + k8s-app: grafana \ No newline at end of file diff --git a/server/devops/templates/telemetry/heapster.yaml b/server/devops/templates/telemetry/heapster.yaml new file mode 100644 index 0000000..eec7f11 --- /dev/null +++ b/server/devops/templates/telemetry/heapster.yaml @@ -0,0 +1,46 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: heapster + namespace: kube-system +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: heapster + namespace: kube-system +spec: + replicas: 1 + template: + metadata: + labels: + task: monitoring + k8s-app: heapster + spec: + serviceAccountName: heapster + containers: + - name: heapster + image: gcr.io/google_containers/heapster-amd64:v1.3.0 + imagePullPolicy: IfNotPresent + command: + - /heapster + - --source=kubernetes:https://kubernetes.default + - --sink=influxdb:http://monitoring-influxdb.kube-system.svc:8086 +--- +apiVersion: v1 +kind: Service +metadata: + labels: + task: monitoring + # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) + # If you are NOT using this as an addon, you should comment out this line. + kubernetes.io/cluster-service: 'true' + kubernetes.io/name: Heapster + name: heapster + namespace: kube-system +spec: + ports: + - port: 80 + targetPort: 8082 + selector: + k8s-app: heapster \ No newline at end of file diff --git a/server/devops/templates/telemetry/influxdb.yaml b/server/devops/templates/telemetry/influxdb.yaml new file mode 100644 index 0000000..ffc51bf --- /dev/null +++ b/server/devops/templates/telemetry/influxdb.yaml @@ -0,0 +1,47 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: monitoring-influxdb + namespace: kube-system +spec: + replicas: 1 + template: + metadata: + labels: + task: monitoring + k8s-app: influxdb + spec: + containers: + - name: influxdb + image: gcr.io/google_containers/heapster-influxdb-amd64:v1.1.1 + volumeMounts: + - mountPath: /data + name: influxdb-storage + resources: + requests: + cpu: 25m + memory: 192Mi + limits: + cpu: 50m + memory: 256Mi + volumes: + - name: influxdb-storage + emptyDir: {} +--- +apiVersion: v1 +kind: Service +metadata: + labels: + task: monitoring + # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) + # If you are NOT using this as an addon, you should comment out this line. + kubernetes.io/cluster-service: 'true' + kubernetes.io/name: monitoring-influxdb + name: monitoring-influxdb + namespace: kube-system +spec: + ports: + - port: 8086 + targetPort: 8086 + selector: + k8s-app: influxdb \ No newline at end of file diff --git a/server/devops/yarn.lock b/server/devops/yarn.lock new file mode 100644 index 0000000..9121881 --- /dev/null +++ b/server/devops/yarn.lock @@ -0,0 +1,911 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +argparse@^1.0.2, argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +async@~1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +bluebird@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.3.4.tgz#f780fe43e1a7a6510f67abd7d0d79533a40ddde6" + +bluebird@^2.3: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bluebird@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^1.1.1, chalk@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coffee-script@~1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +dateformat@~1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +debug@^2.1.3: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +eventemitter2@~0.4.13: + version "0.4.14" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" + +exit@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +findup-sync@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" + dependencies: + glob "~5.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-extended@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fs-extended/-/fs-extended-0.2.1.tgz#3910358127e9c72c8296c30142c7763b5f5e2d3a" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +getobject@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob@^7.0.0, glob@~7.0.0: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~5.0.0: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +grunt-available-tasks@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/grunt-available-tasks/-/grunt-available-tasks-0.6.3.tgz#5be7f6fdda776b80a7b272a21f68bd3050f82260" + dependencies: + chalk "^1.1.1" + lodash "^4.10.0" + +grunt-cli@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8" + dependencies: + findup-sync "~0.3.0" + grunt-known-options "~1.1.0" + nopt "~3.0.6" + resolve "~1.1.0" + +grunt-known-options@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149" + +grunt-legacy-log-utils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz#a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d" + dependencies: + chalk "~1.1.1" + lodash "~4.3.0" + +grunt-legacy-log@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz#fb86f1809847bc07dc47843f9ecd6cacb62df2d5" + dependencies: + colors "~1.1.2" + grunt-legacy-log-utils "~1.0.0" + hooker "~0.2.3" + lodash "~3.10.1" + underscore.string "~3.2.3" + +grunt-legacy-util@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz#386aa78dc6ed50986c2b18957265b1b48abb9b86" + dependencies: + async "~1.5.2" + exit "~0.1.1" + getobject "~0.1.0" + hooker "~0.2.3" + lodash "~4.3.0" + underscore.string "~3.2.3" + which "~1.2.1" + +grunt@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.1.tgz#e8778764e944b18f32bb0f10b9078475c9dfb56b" + dependencies: + coffee-script "~1.10.0" + dateformat "~1.0.12" + eventemitter2 "~0.4.13" + exit "~0.1.1" + findup-sync "~0.3.0" + glob "~7.0.0" + grunt-cli "~1.2.0" + grunt-known-options "~1.1.0" + grunt-legacy-log "~1.0.0" + grunt-legacy-util "~1.0.0" + iconv-lite "~0.4.13" + js-yaml "~3.5.2" + minimatch "~3.0.0" + nopt "~3.0.6" + path-is-absolute "~1.0.0" + rimraf "~2.2.8" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hooker@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" + +hosted-git-info@^2.1.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@~0.4.13: + version "0.4.17" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-yaml@^3.8.2: + version "3.8.4" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +js-yaml@~3.5.2: + version "3.5.5" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe" + dependencies: + argparse "^1.0.2" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +lodash@^4.10.0, lodash@^4.5.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@~4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@~3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +mustache@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0" + +node-vault@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.5.6.tgz#0da5c8d9db11f0217657f645df5853e5e562084f" + dependencies: + bluebird "3.3.4" + debug "^2.1.3" + mustache "^2.2.1" + request-promise "2.0.1" + tv4 "^1.2.7" + +nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0, path-is-absolute@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request-promise@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-2.0.1.tgz#acbd47b725e39372ede3174cf29c38d9ecf2b30d" + dependencies: + bluebird "^2.3" + lodash "^4.5.0" + request "^2.34" + +request@^2.34: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +resolve@^1.1.6, resolve@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +rimraf@~2.2.8: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +"semver@2 || 3 || 4 || 5": + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +shelljs@^0.7.7: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tv4@^1.2.7: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +typed-json-transform@^0.16.0: + version "0.16.5" + resolved "https://registry.yarnpkg.com/typed-json-transform/-/typed-json-transform-0.16.5.tgz#6d1aee09e7a4b348659ed6e542f32fc4a4b3da72" + +underscore.string@~3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.2.3.tgz#806992633665d5e5fcb4db1fb3a862eb68e9e6da" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +which@~1.2.1: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + dependencies: + isexe "^2.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" diff --git a/server/front/.babelrc b/server/front/.babelrc new file mode 100644 index 0000000..2b15196 --- /dev/null +++ b/server/front/.babelrc @@ -0,0 +1,24 @@ +{ + "presets": [ + [ + "es2015", + { + "modules": false + } + ], + "stage-2", + "react" + ], + "env": { + "development": { + "plugins": [ + "react-hot-loader/babel" + ] + }, + "production": { + "plugins": [ + "transform-react-remove-prop-types" + ] + } + } +} \ No newline at end of file diff --git a/server/front/.gitignore b/server/front/.gitignore new file mode 100644 index 0000000..ed189a3 --- /dev/null +++ b/server/front/.gitignore @@ -0,0 +1,5 @@ +node_modules +.vscode +/tmp +/production +/settings.yaml \ No newline at end of file diff --git a/server/front/.jsbeautifyrc b/server/front/.jsbeautifyrc new file mode 100644 index 0000000..7ee39f5 --- /dev/null +++ b/server/front/.jsbeautifyrc @@ -0,0 +1,33 @@ +{ + "brace_style": "collapse-preserve-inline", + "break_chained_methods": false, + "comma_first": false, + "e4x": true, + "end_with_newline": true, + "eol": "\n", + "eval_code": false, + "keep_array_indentation": false, + "keep_function_indentation": false, + "indent_size": 4, + "indent_char": " ", + "indent_level": 0, + "indent_with_tabs": true, + "jslint_happy": false, + "max_preserve_newlines": 10, + "preserve_newlines": true, + "space_after_anon_function": false, + "space_before_conditional": false, + "space_in_paren": false, + "wrap_attributes": "auto", + "wrap_attributes_indent_size": 4, + "wrap_line_length": 0, + "unescape_strings": false, + + "newline_between_rules": true, + "selector_separator_newline": false, + + "extra_liners": ["head", "body", "/html"], + "indent_inner_html": true, + "indent_scripts": "normal", + "unformatted": ["inline"] +} diff --git a/server/front/.stylelintrc b/server/front/.stylelintrc new file mode 100644 index 0000000..2b4e790 --- /dev/null +++ b/server/front/.stylelintrc @@ -0,0 +1,13 @@ +{ + "rules": { + "indentation": 2, + "max-empty-lines": 2, + "no-extra-semicolons": true, + "color-no-invalid-hex": true, + "declaration-block-no-duplicate-properties": true, + "declaration-block-trailing-semicolon": "always", + "declaration-block-semicolon-newline-after": "always", + "block-closing-brace-newline-after": "always", + "unit-whitelist": ["px", "em", "rem", "%", "s", "deg"] + } +} diff --git a/server/front/README.md b/server/front/README.md new file mode 100644 index 0000000..c3cb3ed --- /dev/null +++ b/server/front/README.md @@ -0,0 +1,38 @@ +# React Typescript Isomorphic Starter Kit + +An isomorphic React boilerplate with Typescript, Webpack (SASS/CSS loader, JSX/JS loader, File loader...), React Router, React Hot Loader and ESLint static code verification.
Become more productive and Enable shared javascript that runs on both client and server (client side + server side rendering)).
All necessary tools are set up to start up quickly your React Typescript project ! + +
+## Getting Started + +To begin with this starter kit project, simply follow these steps: + +- [x] Clone repository: `git clone https://github.com/ayoubdev/reactjs-typescript-isomorphic-starterkit.git` +- [x] Go to cloned directory and feel free to modify `package.json` information (like project name, description...): +- [x] Run this cli command: `npm install` +- [x] Open this URL and enjoy: `http://localhost:8080/` + +
+## Available Commands + +#### For server: + +> **npm run server**
Launch server (by default, listening to port 8080)
+ +#### For development: + +> **npm run watch**
Transpile tsx/ts files, Bundle and Track changes in client and server side ressources (via Hot Module Replacement [HMR])
+ +#### For production: + +> **npm run build**
Transpile tsx/ts files and Bundle static resources to ./dist folder

+> **npm run deploy**
Build and Launch server
+ +#### Misc commands: + +> **npm run clean**
Delete bundler outputs (./dist folder)
+ +
+## License + +MIT diff --git a/server/front/bin/build.js b/server/front/bin/build.js new file mode 100644 index 0000000..e5e1488 --- /dev/null +++ b/server/front/bin/build.js @@ -0,0 +1,10 @@ +"use strict"; +const webpack = require("webpack"); + +const configServer = require("../webpack/production/server"); +const configClient = require("../webpack/production/bundle"); + +webpack(configServer).run(function(err, stats) { + webpack(configClient).run(function(err, stats) { + }); +}); diff --git a/server/front/bin/watch.js b/server/front/bin/watch.js new file mode 100644 index 0000000..20a7412 --- /dev/null +++ b/server/front/bin/watch.js @@ -0,0 +1,58 @@ +"use strict"; +const yaml = require('js-yaml'); +const fs = require('fs'); +const webpack = require("webpack"); +const WebpackDevServer = require("webpack-dev-server"); + +const configServer = require("../webpack/dev/server"); +const configClient = require("../webpack/dev/bundle"); + +const settingsPath = 'settings.yaml'; +let settings; + +try { + settings = yaml.load(fs.readFileSync(settingsPath, 'utf8')); +} catch (e) { + console.log('error reading settings file @', + process.cwd() + '/' + settingsPath); + console.log(e.message); + settings = { + private: { + express: { domain: '10.200.10.1', https: false, port: 3000 }, + }, + webpack: { + dev: { + server: { + domain: '10.200.10.1', + port: 3001, + headers: { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS", + "Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization" + } + } + } + } + } +} + +var options = { + // cached: true, + // colors: true +}; + +new WebpackDevServer(webpack(configClient), { + historyApiFallback: true, + hot: true, + stats: options +}).listen(settings.webpack.dev.server.port, settings.webpack.dev.server.domain, function (err) { + var urlString = settings.webpack.dev.server.domain + ':' + settings.webpack.dev.server.port; + if (err) + console.log(err); + console.log("Webpack Server launched with at " + urlString + " (Hot Module Replacement [HMR] enabled)"); +}); + +webpack(configServer).watch({}, function (err, stats) { + if (err) return console.error(err.message); + console.log('rebuilt node server') +}); diff --git a/server/front/package.json b/server/front/package.json new file mode 100644 index 0000000..d90e133 --- /dev/null +++ b/server/front/package.json @@ -0,0 +1,123 @@ +{ + "name": "front", + "version": "1.1.21", + "description": "front facing web service for TMake.Fund", + "main": "dist/server.js", + "scripts": { + "start": "node bin/rebuild.js && pm2 restart process.yaml", + "clean": "rm -rf node_modules && rm -rf ../devops/docker/front/build && yarn", + "build-bundle": "NODE_ENV=production webpack --config webpack/production/bundle.js", + "build-server": "NODE_ENV=production webpack --config webpack/production/server.js", + "build": "NODE_ENV=production node bin/build.js --preserve-symlinks", + "distribute": "npm run clean && npm run build" + }, + "author": "Leif Shackelford ", + "license": "ISC", + "dependencies": { + "amqplib": "^0.5.1", + "ansi-html": "0.0.7", + "axios": "^0.15.3", + "bcrypt-nodejs": "0.0.3", + "bluebird": "^3.4.7", + "body-parser": "^1.16.0", + "codemirror": "^5.26.0", + "compression": "^1.6.2", + "connect-mongo": "^1.3.2", + "cookie-parser": "^1.4.3", + "cors": "^2.8.1", + "createsend-node": "^0.8.2", + "es6-template-strings": "^2.0.1", + "express": "^4.14.1", + "express-device": "^0.4.2", + "express-flash": "0.0.2", + "express-session": "^1.15.0", + "graphql": "^0.10.1", + "graphql-tag": "^2.4.0", + "helmet": "^3.4.0", + "history": "^4.6.1", + "html-entities": "^1.2.0", + "http-proxy": "^1.16.2", + "isomorphic-fetch": "^2.2.1", + "jquery": "^3.1.1", + "js-moss": "^0.7.1", + "js-yaml": "^3.8.4", + "lodash.debounce": "^4.0.8", + "method-override": "^2.3.7", + "mongodb": "^2.2.28", + "morgan": "^1.7.0", + "prop-types": "^15.5.10", + "react": "^15.6.1", + "react-bootstrap": "^0.30.7", + "react-dom": "^15.6.1", + "react-helmet": "^4.0.0", + "react-redux": "^5.0.2", + "react-responsive": "^1.2.6", + "react-router-bootstrap": "^0.24.2", + "react-router-dom": "^4.1.1", + "react-router-redux": "^5.0.0-alpha.6", + "react-scroll": "^1.4.6", + "redux": "^3.6.0", + "redux-form": "^6.3.2", + "redux-logger": "^2.7.4", + "redux-thunk": "^2.2.0", + "regenerator-runtime": "^0.10.1", + "typed-json-transform": "^0.16.3" + }, + "devDependencies": { + "@types/graphql": "^0.9.3", + "@types/mongodb": "^2.2.7", + "@types/lodash.debounce": "^4.0.2", + "@types/prop-types": "^15.5.1", + "@types/amqplib": "^0.5.1", + "@types/axios": "^0.9.35", + "@types/bluebird": "^3.0.37", + "@types/body-parser": "0.0.33", + "@types/chai": "^3.4.34", + "@types/chai-http": "0.0.29", + "@types/compression": "0.0.33", + "@types/cookie-parser": "^1.3.30", + "@types/cors": "^2.8.0", + "@types/debug": "0.0.29", + "@types/express": "^4.0.35", + "@types/express-session": "0.0.32", + "@types/helmet": "0.0.33", + "@types/history": "^4.5.1", + "@types/jquery": "^2.0.39", + "@types/js-yaml": "^3.5.29", + "@types/method-override": "0.0.29", + "@types/mocha": "^2.2.32", + "@types/morgan": "^1.7.32", + "@types/webpack": "^2.2.4", + "babel-core": "^6.22.1", + "babel-loader": "^6.2.10", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-transform-react-remove-prop-types": "^0.3.2", + "babel-preset-es2015": "^6.22.0", + "babel-preset-react": "^6.22.0", + "babel-preset-stage-0": "^6.24.1", + "babel-preset-stage-2": "^6.22.0", + "concurrently": "^2.1.0", + "cross-env": "^3.1.4", + "css-loader": "^0.26.1", + "del": "^2.2.1", + "extract-text-webpack-plugin": "^2.1.0", + "file-loader": "^0.9.0", + "node-sass": "^4.2.0", + "postcss-cssnext": "^2.9.0", + "postcss-import": "^9.1.0", + "postcss-reporter": "^3.0.0", + "react-hot-loader": "^3.0.0-beta.6", + "sass-loader": "^4.1.1", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", + "stylus": "^0.54.5", + "stylus-loader": "^2.4.0", + "ts-loader": "^2.0.0", + "typescript": "2.3.4", + "url-loader": "^0.5.6", + "webpack": "^2.2.0", + "webpack-dev-server": "^2.2.0", + "webpack-externals-plugin": "^1.0.0", + "webpack-manifest-plugin": "^1.1.0" + } +} \ No newline at end of file diff --git a/server/front/settings b/server/front/settings new file mode 120000 index 0000000..d450213 --- /dev/null +++ b/server/front/settings @@ -0,0 +1 @@ +../secrets/local/front \ No newline at end of file diff --git a/server/front/src/@types/es6-template-strings.d.ts b/server/front/src/@types/es6-template-strings.d.ts new file mode 100644 index 0000000..fd9d939 --- /dev/null +++ b/server/front/src/@types/es6-template-strings.d.ts @@ -0,0 +1,4 @@ +declare module "es6-template-strings" { + function template(template: string, dict: any): any; + export = template; +} \ No newline at end of file diff --git a/server/front/src/@types/express-flash.d.ts b/server/front/src/@types/express-flash.d.ts new file mode 100644 index 0000000..3ce8e37 --- /dev/null +++ b/server/front/src/@types/express-flash.d.ts @@ -0,0 +1,4 @@ +declare module "express-flash" { + function express_flash(): any; + export = express_flash; +} \ No newline at end of file diff --git a/server/front/src/@types/http-proxy.d.ts b/server/front/src/@types/http-proxy.d.ts new file mode 100644 index 0000000..679d009 --- /dev/null +++ b/server/front/src/@types/http-proxy.d.ts @@ -0,0 +1,7 @@ +declare module "http-proxy" { + interface ProxyServerOptions { + target: string, + ws: boolean + } + export function createProxyServer(options: ProxyServerOptions): any; +} \ No newline at end of file diff --git a/server/front/src/@types/module-extensions.d.ts b/server/front/src/@types/module-extensions.d.ts new file mode 100644 index 0000000..97ade15 --- /dev/null +++ b/server/front/src/@types/module-extensions.d.ts @@ -0,0 +1,3 @@ +interface NodeModule { + hot?: { accept: Function }; +} \ No newline at end of file diff --git a/server/front/src/@types/redux-form.d.ts b/server/front/src/@types/redux-form.d.ts new file mode 100644 index 0000000..a7e7ecb --- /dev/null +++ b/server/front/src/@types/redux-form.d.ts @@ -0,0 +1,18 @@ +interface FieldProps { + name: string, + inputProps?: { + component: string + } + placeholder?: string +} + +interface ReduxFormProps { + onSubmit?: (values: any) => void; + handleSubmit?: React.FormEventHandler, + reset?: any; + pristine?: boolean, + submitting?: boolean, + submitSucceeded?: boolean, + submitFailed?: boolean + error?: Error; +} \ No newline at end of file diff --git a/server/front/src/@types/settings.d.ts b/server/front/src/@types/settings.d.ts new file mode 100644 index 0000000..ac241a4 --- /dev/null +++ b/server/front/src/@types/settings.d.ts @@ -0,0 +1,44 @@ +/// + +interface Window { + __SETTINGS__: Settings +} + +interface PrivateSettings { + createSend: { + key: string; + } + session?: { + secret: string + }, + mongo?: { + uri: string; + }, + express?: { domain: string, https: boolean, port: number; }, +} + +interface Settings extends TMake.Settings.Shared.Public { + createSend: { + id: string; + lists: { + general: string; + } + } + private?: PrivateSettings & TMake.Settings.Shared.Private + webpack?: { + dev?: { + server: { + domain: string, + port: number + } + }, + } + ssr?: { + mq?: TMake.MediaQueryProps + loginTokenPresent?: boolean + } + env: { + production?: boolean, debug?: {}, isClient?: boolean, isServer?: boolean, absoluteUrl: string + }, + version: string +} \ No newline at end of file diff --git a/server/front/src/@types/window-extensions.d.ts b/server/front/src/@types/window-extensions.d.ts new file mode 100644 index 0000000..22a0bdd --- /dev/null +++ b/server/front/src/@types/window-extensions.d.ts @@ -0,0 +1,4 @@ +interface Window { + __INITIAL_STATE__?: any; + devToolsExtension?: Function; +} \ No newline at end of file diff --git a/server/front/src/client/browser.ts b/server/front/src/client/browser.ts new file mode 100644 index 0000000..b029d17 --- /dev/null +++ b/server/front/src/client/browser.ts @@ -0,0 +1,12 @@ +import 'codemirror/lib/codemirror.css'; +import 'codemirror/theme/cobalt.css'; + +import 'codemirror'; + +import * as jsyaml from 'js-yaml'; +(window as any).jsyaml = jsyaml; + +import 'codemirror/mode/yaml/yaml'; +import 'codemirror/addon/lint/lint.css'; +import 'codemirror/addon/lint/lint.js'; +import 'codemirror/addon/lint/yaml-lint.js'; \ No newline at end of file diff --git a/server/front/src/client/dev.js b/server/front/src/client/dev.js new file mode 100644 index 0000000..bf3d6d6 --- /dev/null +++ b/server/front/src/client/dev.js @@ -0,0 +1,54 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { AppContainer } from 'react-hot-loader'; +import { Provider } from 'react-redux'; + +import './browser'; + +require('../../../theme/src/dark'); + +import { store, history, settings } from './store'; +import { fetchDataForRoute } from '../lib'; +import { createApp } from '../ux/routes'; +import { types } from '../state'; +import { request } from '../lib/fetch'; + +window.request = request; + +const rootEl = document.getElementById('app'); + +const App = createApp(history); + +function render(Root) { + ReactDOM.render( < + AppContainer > + < + Provider store = { store } > + < + Root mq = { settings.ssr.mq } + loginTokenPresent = { settings.ssr.loginTokenPresent != null } + /> < + /Provider> < + /AppContainer>, + rootEl + ); +} + +render(createApp(history)); + +if (module.hot) { + module.hot.accept('../ux/routes', () => render(createApp(history))); +} + +function onUpdate() { + if (window.__INITIAL_STATE__ !== null) { + window.__INITIAL_STATE__ = null; + return; + } + + store.dispatch({ type: types.request.create }); + fetchDataForRoute(this.state) + .then((data) => { + return store.dispatch({ type: types.request.success, data }); + }); +} \ No newline at end of file diff --git a/server/front/src/client/production.js b/server/front/src/client/production.js new file mode 100644 index 0000000..7995bb0 --- /dev/null +++ b/server/front/src/client/production.js @@ -0,0 +1,39 @@ +import * as Fetch from 'isomorphic-fetch'; +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { Provider } from 'react-redux'; +import { fetchDataForRoute } from '../lib'; +import { types } from '../state'; +import { createApp } from '../ux/routes'; +import { settings, store, history } from './store'; + +import './browser'; + +const rootEl = document.getElementById('app'); +const App = createApp(history); + +function render() { + ReactDOM.render( +

, + rootEl + ); +} + +render(); + +function onUpdate() { + if(window.__INITIAL_STATE__ !== null) { + window.__INITIAL_STATE__ = null; + return; + } + + store.dispatch({ type: types.request.create }); + fetchDataForRoute(this.state) + .then((data) => { + return store.dispatch({ type: types.request.success, data }); + }); +} diff --git a/server/front/src/client/store.ts b/server/front/src/client/store.ts new file mode 100644 index 0000000..6aa458b --- /dev/null +++ b/server/front/src/client/store.ts @@ -0,0 +1,9 @@ +import { Router } from 'react-router'; +import { createBrowserHistory } from 'history'; + +import { initialize } from '../lib/settings'; +export const settings = initialize(window.__SETTINGS__); +import { createStore } from '../lib'; + +export const history = createBrowserHistory(); +export const store = createStore(window.__INITIAL_STATE__, history); \ No newline at end of file diff --git a/server/front/src/client/vendor.js b/server/front/src/client/vendor.js new file mode 100644 index 0000000..8a547e5 --- /dev/null +++ b/server/front/src/client/vendor.js @@ -0,0 +1,3 @@ +import 'jquery'; +import 'bluebird'; +import 'js-yaml'; \ No newline at end of file diff --git a/server/front/src/interfaces/index.d.ts b/server/front/src/interfaces/index.d.ts new file mode 100644 index 0000000..c172852 --- /dev/null +++ b/server/front/src/interfaces/index.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/server/front/src/lib/assets.ts b/server/front/src/lib/assets.ts new file mode 100644 index 0000000..3dd99b0 --- /dev/null +++ b/server/front/src/lib/assets.ts @@ -0,0 +1,30 @@ +import { settings } from './settings'; + +export function s3domain(region: string) { + // if (region == 'us-west-2') { + // return `s3-${region}.amazonaws.com` + // } + return 's3.amazonaws.com'; +} + +export function imageUrl(relative: string) { + const { s3 } = settings.assets; + if (s3.cdn) { + return `https://${s3.cdn}/${relative}`; + } else { + return `https://${s3.bucket}.${s3domain(s3.region)}/${relative}`; + } +}; + +export function assetUrl(relative: string) { + const { s3 } = settings.assets; + if (s3.cdn) { + return `https://${s3.cdn}/${relative}`; + } else { + return relative; + } +}; + +export function s3url(relative: string) { + return imageUrl(`static/${relative}`); +}; \ No newline at end of file diff --git a/server/front/src/lib/fetch.ts b/server/front/src/lib/fetch.ts new file mode 100644 index 0000000..1cccf0f --- /dev/null +++ b/server/front/src/lib/fetch.ts @@ -0,0 +1,44 @@ +require('isomorphic-fetch'); + +import { settings } from './settings'; + +type METHOD = 'GET' | 'POST' + +interface FetchRequest { + url: string, body?: any, mode?: any, auth?: { user: string, password?: string } +} + +export function get({ url, body, mode, auth }: FetchRequest) { + const headers = new Headers(); + headers.append('Accept', 'application/json'); + headers.append('Content-Type', 'application/json'); + headers.append('User-Agent', 'https://chroma.fund/v' + settings.version); + if (auth) { + const encoded = 'Basic ' + new Buffer(`${auth.user}:${auth.password || 'x'}`).toString('base64'); + headers.append('Authorization', encoded); + } + return fetch(url, { + method: 'GET', + headers, + mode: mode || 'cors', + cache: 'default', + }) +} + +export function post({ url, body, mode, auth }: FetchRequest) { + const headers = new Headers(); + headers.append('Accept', 'application/json'); + headers.append('Content-Type', 'application/json'); + headers.append('User-Agent', 'https://chroma.fund/v' + settings.version); + if (auth) { + const encoded = 'Basic ' + new Buffer(`${auth.user}:${auth.password || 'x'}`).toString('base64'); + headers.append('Authorization', encoded); + } + return fetch(url, { + method: 'POST', + headers, + mode: mode || 'cors', + cache: 'default', + body: JSON.stringify(body) + }) +} \ No newline at end of file diff --git a/server/front/src/lib/fetchDataForRoute.ts b/server/front/src/lib/fetchDataForRoute.ts new file mode 100644 index 0000000..8f09258 --- /dev/null +++ b/server/front/src/lib/fetchDataForRoute.ts @@ -0,0 +1,7 @@ +const defaultFetchData = () => Promise.resolve(); + +export function fetchDataForRoute(route: string) { + switch (route) { + default: return defaultFetchData(); + } +} \ No newline at end of file diff --git a/server/front/src/lib/index.ts b/server/front/src/lib/index.ts new file mode 100644 index 0000000..a268ec4 --- /dev/null +++ b/server/front/src/lib/index.ts @@ -0,0 +1,5 @@ +export * from './assets'; +export * from './settings'; +export * from './fetch'; +export * from './fetchDataForRoute'; +export * from './store'; \ No newline at end of file diff --git a/server/front/src/lib/settings.ts b/server/front/src/lib/settings.ts new file mode 100644 index 0000000..8fb33d3 --- /dev/null +++ b/server/front/src/lib/settings.ts @@ -0,0 +1,31 @@ +import * as yaml from 'js-yaml'; +import { extend, setValueForKeyPath } from 'typed-json-transform'; + +const publicKeys = { MONGO_URL: 'mongo.uri', PORT: 'server.port' } + +const privateKeys = { + CREATESEND_KEY: 'createSend.key' +} + +export const settings: Settings = {}; + +export function initialize(_settings: Settings, isServer?: boolean) { + extend(settings, _settings); + + if (isServer) { + settings.env.isClient = false; + settings.env.isServer = true; + + for (const key of Object.keys(publicKeys)) { + if (process.env[key]) { + setValueForKeyPath(process.env[key], (publicKeys)[key], settings); + } + } + for (const key of Object.keys(privateKeys)) { + if (process.env[key]) { + setValueForKeyPath(process.env[key], `private.${(privateKeys)[key]}`, settings); + } + } + } + return settings; +} \ No newline at end of file diff --git a/server/front/src/lib/store.ts b/server/front/src/lib/store.ts new file mode 100644 index 0000000..24136c6 --- /dev/null +++ b/server/front/src/lib/store.ts @@ -0,0 +1,45 @@ +import { createStore as _createStore, applyMiddleware, compose } from 'redux'; +import { routerMiddleware } from 'react-router-redux'; +import thunk from 'redux-thunk'; + +import { settings } from './settings'; +import { rootReducer } from '../state'; + +/* + * @param {Object} initial state to bootstrap our stores with for server-side + * rendering + * @param {History Object} a history object. We use `createMemoryHistory` for + * server-side rendering, + * while using browserHistory for client-side + * rendering. + */ + +export function createStore(initialState: any, history: any) { + // Installs hooks that always keep react-router and redux store in sync + const middleware = [thunk, routerMiddleware(history)]; + let store: any; + + if (settings.env.isClient && settings.env.debug) { + const createLogger = require('redux-logger'); + + middleware.push(createLogger()); + + const enhancer = compose(applyMiddleware(...middleware), + window.devToolsExtension ? window.devToolsExtension() : (f: any) => f); + store = _createStore(rootReducer, initialState, enhancer); + } else { + const enhancer = compose(applyMiddleware(...middleware), (f: any) => f); + store = _createStore(rootReducer, initialState, enhancer as any); + } + + if (module.hot) { + // Enable Webpack hot module replacement for reducers + module.hot.accept('../state', () => { + const nextReducer = require('../state'); + + store.replaceReducer(nextReducer); + }); + } + + return store; +} \ No newline at end of file diff --git a/server/front/src/schema/contactForm.ts b/server/front/src/schema/contactForm.ts new file mode 100644 index 0000000..fab5abe --- /dev/null +++ b/server/front/src/schema/contactForm.ts @@ -0,0 +1,33 @@ +export class Document { + name?: string + email?: string + body?: string +} + +import regex from './regex'; + +export const validate = (doc: Document) => { + const errors: Document = {} + if (!regex.fullName.test(doc.name)) { + errors.name = 'First + Last Required' + } else if (doc.name.length > 32) { + errors.name = 'Must be 32 characters or less' + } + if (!doc.email) { + errors.email = 'Required' + } else if (!regex.email.test(doc.email)) { + errors.email = 'Invalid email address' + } + if (!doc.body) { + errors.body = 'Required' + } + return Object.keys(errors).length ? errors : undefined; +} + +export const warn = (values: Document) => { + const warnings: Document = {} + if (values.email && values.email.indexOf('.con') != -1) { + warnings.email = 'whoops, check your .com address' + } + return warnings +} \ No newline at end of file diff --git a/server/front/src/schema/regex.ts b/server/front/src/schema/regex.ts new file mode 100644 index 0000000..343bf63 --- /dev/null +++ b/server/front/src/schema/regex.ts @@ -0,0 +1,27 @@ +const regex = { + fullName: /^([a-zA-Z]{2,}\s[a-zA-z]{1,}'?-?[a-zA-Z]{2,}\s?([a-zA-Z]{1,})?)/, + // We use the RegExp suggested by W3C in http://www.w3.org/TR/html5/forms.html#valid-e-mail-address + // This is probably the same logic used by most browsers when type=email, which is our goal. It is + // a very permissive expression. Some apps may wish to be more strict and can write their own RegExp. + // Email: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, + email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + // URL RegEx from https://gist.github.com/dperini/729294 + // http://mathiasbynens.be/demo/url-regex + url: /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/i, + // unique id from the random package also used by minimongo + // character list: https://github.com/meteor/meteor/blob/release/0.8.0/packages/random/random.js#L88 + // string length: https://github.com/meteor/meteor/blob/release/0.8.0/packages/random/random.js#L143 + mongoId: /^[23456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijkmnopqrstuvwxyz]{17}$/, + // allows for a 5 digit zip code followed by a whitespace or dash and then 4 more digits + // matches 11111 and 11111-1111 and 11111 1111 + zipCome: /^\d{5}(?:[-\s]\d{4})?$/, + // taken from google's libphonenumber library + // https://github.com/googlei18n/libphonenumber/blob/master/javascript/i18n/phonenumbers/phonenumberutil.js + // reference the VALID_PHONE_NUMBER_PATTERN key + // allows for common phone number symbols including + () and - + phone: /^[0-90-9٠-٩۰-۹]{2}$|^[++]*(?:[-x‐-―−ー--/ ­​⁠ ()()[].\[\]/~⁓∼~*]*[0-90-9٠-٩۰-۹]){3,}[-x‐-―−ー--/ ­​⁠ ()()[].\[\]/~⁓∼~0-90-9٠-٩۰-۹]*(?:;ext=([0-90-9٠-٩۰-۹]{1,7})|[ \t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|[,xx##~~]|int|anexo|int)[:\..]?[ \t,-]*([0-90-9٠-٩۰-۹]{1,7})#?|[- ]+([0-90-9٠-٩۰-۹]{1,5})#)?$/i, + pubkey: /^[13n][1-9A-Za-z][^OIl]{20,40}/, + privkey: /^[5KL][1-9A-HJ-NP-Za-km-z]{50,51}$/ +}; + +export default regex; diff --git a/server/front/src/schema/subscribeForm.ts b/server/front/src/schema/subscribeForm.ts new file mode 100644 index 0000000..da1a81e --- /dev/null +++ b/server/front/src/schema/subscribeForm.ts @@ -0,0 +1,29 @@ +export class Document { + name?: string + email?: string +} + +import regex from './regex'; + +export const validate = (doc: Document) => { + const errors = {} + if (!regex.fullName.test(doc.name)) { + errors.name = 'First + Last Required' + } else if (doc.name.length > 32) { + errors.name = 'Must be 32 characters or less' + } + if (!doc.email) { + errors.email = 'Required' + } else if (!regex.email.test(doc.email)) { + errors.email = 'Invalid email address' + } + return Object.keys(errors).length ? errors : undefined; +} + +export const warn = (values: Document) => { + const warnings = {} + if (values.email && values.email.indexOf('.con') != -1) { + warnings.email = 'whoops, check your .com address' + } + return Object.keys(warnings).length ? warnings : undefined; +} \ No newline at end of file diff --git a/server/front/src/server/api/graphql.ts b/server/front/src/server/api/graphql.ts new file mode 100644 index 0000000..f635859 --- /dev/null +++ b/server/front/src/server/api/graphql.ts @@ -0,0 +1,124 @@ +// This is an example MongoDB pad + +import { graphql, buildSchema } from 'graphql'; +import { MongoClient, ObjectID, Db } from 'mongodb'; + +import { settings } from '../settings'; + +function fromMongo(item: any) { + return { + ...item, + id: item._id.toString(), + }; +} + +function toMongo(item: any) { + return { + ...item, + _id: new ObjectID(item.id), + }; +} + +// Construct a schema, using GraphQL schema language +export const schema = buildSchema( + ` + type Post { + id: ID! + title: String + text: String + } + + input PostInput { + title: String! + text: String + } + + input PostInputWithId { + id: ID! + title: String! + text: String + } + + type Query { + posts: [Post] + postById(id: ID!): Post + } + + type Mutation { + createPost(input: PostInput!): Post + updatePost(input: PostInputWithId!): Post + deletePost(id: ID!): Post + } +`, +); + +// The root provides a resolver function for each API endpoint +export const rootValue = { + posts: async (args: any, context: any) => { + return context.mongo.collection('Posts').find({}).map(fromMongo).toArray(); + }, + + postById: async ({ id }: any, context: any) => { + const result = await context.mongo + .collection('Posts') + .findOne({ _id: new ObjectID(id) }); + return fromMongo(result); + }, + + createPost: async ({ input: { title, text } }: any, context: any) => { + const id = new ObjectID(); + const result = await context.mongo.collection('Posts').findOneAndUpdate( + { + _id: id, + }, + { + $set: { + title, + text, + }, + }, + { + upsert: true, + returnOriginal: false, + }, + ); + return fromMongo(result.value); + }, + + updatePost: async ({ input: { id, title, text } }: any, context: any) => { + const result = await context.mongo.collection('Posts').findOneAndUpdate( + { + _id: new ObjectID(id), + }, + { + $set: { + title, + text, + }, + }, + { + returnOriginal: false, + }, + ); + return fromMongo(result.value); + }, + + deletePost: async ({ id }: any, context: any) => { + const result = await context.mongo.collection('Posts').findOneAndDelete({ + _id: new ObjectID(id), + }); + return fromMongo(result.value); + }, +}; + +let mongo: Db; + +export async function context(headers: any, secrets: any) { + if (!mongo) { + mongo = await MongoClient.connect(settings.private.mongo.uri) + } + return { + mongo, + }; +} + diff --git a/server/front/src/server/index.js b/server/front/src/server/index.js new file mode 100644 index 0000000..834da5b --- /dev/null +++ b/server/front/src/server/index.js @@ -0,0 +1 @@ +import './server' \ No newline at end of file diff --git a/server/front/src/server/integrate.ts b/server/front/src/server/integrate.ts new file mode 100644 index 0000000..8e0efca --- /dev/null +++ b/server/front/src/server/integrate.ts @@ -0,0 +1,24 @@ +import { integrate as createSend } from './lib/createSend'; +import { integrate as email } from './lib/email'; + +export const tests = { + createSend: {} +} + +export function healthy() { + return true; + // return tests.createSend == 'passed'; +} + +export function integrate() { + // const start = new Date(); + // createSend().then(email).then(() => { + // const end = new Date(); + // console.log(`all integration tests passed in ${end.valueOf() - start.valueOf()} ms`); + // tests.createSend = 'passed'; + // }, ((err: Error) => { + // tests.createSend = err; + // console.log(err); + // setTimeout(integrate, 1000); + // })); +} diff --git a/server/front/src/server/lib/amqp.ts b/server/front/src/server/lib/amqp.ts new file mode 100644 index 0000000..091d020 --- /dev/null +++ b/server/front/src/server/lib/amqp.ts @@ -0,0 +1,42 @@ +import { connect, Connection, Channel } from 'amqplib'; +import { settings } from '../../lib/settings'; +import './bluebird'; + + +const { amqp } = settings.private; +let amqpUri: string; +if (amqp.username) { + amqpUri = `amqp://${amqp.username}:${amqp.password}@${amqp.host}:${amqp.port}`; +} else { + amqpUri = `amqp://${amqp.host}:${amqp.port}`; +} + +let connection: PromiseLike = { + then: () => { + return Promise.reject('amqp connection not established yet'); + } +} + +function init() { + try { + connection = connect(amqpUri); + console.log('connected to amqp'); + clearInterval(retry); + } + catch (e) { + console.log('error connecting to rabbit, trying again'); + } +} + +let retry = setInterval(init, 5000); + +export function postToQueue(q: string, data: string) { + return connection.then(function (conn) { + return conn.createChannel(); + }).then((ch) => { + const channel = ch; + return channel.assertQueue(q).then(function (ok) { + return channel.sendToQueue(q, new Buffer(data)); + }); + }) +} \ No newline at end of file diff --git a/server/front/src/server/lib/bluebird.ts b/server/front/src/server/lib/bluebird.ts new file mode 100644 index 0000000..5ea1ae3 --- /dev/null +++ b/server/front/src/server/lib/bluebird.ts @@ -0,0 +1,6 @@ +import * as Bluebird from 'bluebird'; + +Bluebird.onPossiblyUnhandledRejection(function (e: Error, promise: any) { + console.log(e.message); + console.log(e.stack); +}); \ No newline at end of file diff --git a/server/front/src/server/lib/createSend.ts b/server/front/src/server/lib/createSend.ts new file mode 100644 index 0000000..a66c403 --- /dev/null +++ b/server/front/src/server/lib/createSend.ts @@ -0,0 +1,44 @@ +import { post } from '../../lib/fetch'; +import { settings } from '../../lib/settings'; + +const apiRoot = 'https://api.createsend.com/api/v3.1'; + +// curl --user 0d135f8fb4d87126396b437ecaf31783:x https://api.createsend.com/api/v3.1/clients.json?pretty=true +// curl --user 0d135f8fb4d87126396b437ecaf31783:x https://api.createsend.com/api/v3.1/clients/f5f45611ea9f3a6447b622671b929875/lists.json + +export function subscribe(id: string, form: any) { + const url = `${apiRoot}/subscribers/${id}.json`; + const body = { + "EmailAddress": form.email, + "Name": form.name, + "CustomFields": [ + { + "Key": "origin", + "Value": settings.env.absoluteUrl + } + ], + "Resubscribe": true, + "RestartSubscriptionBasedAutoresponders": true + } + return post({ url, body, auth: { user: settings.private.createSend.key } }).then( + (res: any) => { + if (res.status > 200 && res.status < 300) { + return Promise.resolve(res); + } else { + return Promise.reject(new Error(res.statusText)); + } + } + ); +} + +export function integrate() { + const listId = settings.createSend.lists.general; + const url = `${apiRoot}/subscribers/${listId}.json`; + + return subscribe(listId, { + name: 'Integration Test', + email: 'integrate@chroma.fund' + }).catch((err) => { + throw new Error(`failed integration test on error ${err}`) + }) +} \ No newline at end of file diff --git a/server/front/src/server/lib/email.ts b/server/front/src/server/lib/email.ts new file mode 100644 index 0000000..431dcab --- /dev/null +++ b/server/front/src/server/lib/email.ts @@ -0,0 +1,20 @@ +import { postToQueue } from './amqp'; +import { settings } from '../../lib/settings'; + +const mailQueue = settings.private.amqp.queues.mail; + +export function send(doc: TMake.Email) { + return postToQueue(mailQueue, JSON.stringify(doc)); +} + +export function integrate() { + const email: TMake.Email = { + from: settings.email.contact, + to: 'dev@chroma.io', + replyTo: 'dev@chroma.io', + subject: `new contact: Integration test`, + html: '

passing test!

', + generateTextFromHTML: true + } + return postToQueue(mailQueue, JSON.stringify(email)); +} \ No newline at end of file diff --git a/server/front/src/server/render/bundles.ts b/server/front/src/server/render/bundles.ts new file mode 100644 index 0000000..0c41e72 --- /dev/null +++ b/server/front/src/server/render/bundles.ts @@ -0,0 +1,37 @@ +import { readFileSync } from 'fs'; +import { settings } from '../../lib/settings'; + +// +// + +// + +// const vendor = JSON.parse(readFileSync(`${process.cwd()}/public/vendor.json`, 'utf8')); + +export function scriptBundles() { + if (settings.env.production) { + const bundle = JSON.parse(readFileSync(`${process.cwd()}/front/bundle.json`, 'utf8')); + return ` + +`; + } else { + return ''; + } +}; + +export function createTrackingScript() { + return settings.google.analytics.account ? + createAnalyticsSnippet(settings.google.analytics.account) : + ''; +}; + +export function createAnalyticsSnippet(id: string) { + return ` + + +`; +} \ No newline at end of file diff --git a/server/front/src/server/render/middleware.tsx b/server/front/src/server/render/middleware.tsx new file mode 100644 index 0000000..9331646 --- /dev/null +++ b/server/front/src/server/render/middleware.tsx @@ -0,0 +1,44 @@ +import * as express from 'express'; +import { matchPath } from 'react-router'; +import { routes as getRoutes } from '../../ux/routes'; +import { fetchDataForRoute, settings, createStore } from '../../lib'; +import { types } from '../../state'; +import { renderPage } from './pageRenderer'; +import { mq } from './ssr'; +import { any } from 'typed-json-transform'; +import { join } from 'path'; + +import { createMemoryHistory } from 'history'; + +import { NotFound } from '../../ux/pages/notFound'; + +import { parse } from 'url'; + +const routes = Object.keys(getRoutes()); + +export function render(req: express.Request, res: express.Response) { + const history = createMemoryHistory(); + history.push(req.url); + const store = createStore({}, history); + const { cookies, url } = req; + store.dispatch({ type: types.request.create }); + return fetchDataForRoute(url) + .then((data: any) => { + store.dispatch({ type: types.request.success, data }); + res.status(200).send(renderPage(store, history, url, mq(req), cookies)); + }) + .catch((err: Error) => { res.status(500).json(err); }); +} + +export function fetchCookieUser(req: express.Request, res: express.Response, next: Function) { + const cookies = { + login: req.cookies.chroma_login + }; + req.cookies = cookies; + // if (chroma_login) { + // // const user = Meteor.users.findOne({ 'services.resume.loginTokens.hashedToken': Accounts._hashLoginToken(token) }); + // // req.userId = user._id + // console.log('meteor token', chroma_login); + // } + next(); +} diff --git a/server/front/src/server/render/pageRenderer.tsx b/server/front/src/server/render/pageRenderer.tsx new file mode 100644 index 0000000..0ce9c08 --- /dev/null +++ b/server/front/src/server/render/pageRenderer.tsx @@ -0,0 +1,54 @@ +import * as React from 'react'; +import { renderToString } from 'react-dom/server'; +import { Provider } from 'react-redux'; +import { StaticRouter } from 'react-router'; +import * as Helmet from 'react-helmet'; + +import { clone } from 'typed-json-transform'; + +import { scriptBundles, createTrackingScript } from './bundles'; +import { settings as serverSettings } from '../../lib/settings'; + +import { createApp } from '../../ux/routes'; + +const settings = clone(serverSettings); +delete settings.private; +settings.env.isClient = true; +settings.env.isServer = false; + +export function renderPage(store: Redux.Store, history: any, location: string, mq: TMake.MediaQueryProps, cookies: any) { + settings.manifest = serverSettings.manifest; + settings.ssr.loginTokenPresent = (cookies.login != null); + settings.ssr.mq = mq; + const initialState = store.getState(); + + const App = createApp(history); + try { + const componentHTML = renderToString( + + + + ); + const headAssets = Helmet.rewind(); + return ` + + + + ${headAssets.title.toString()} + ${headAssets.meta.toString()} + ${headAssets.link.toString()} + ${createTrackingScript()} + + +
${componentHTML}
+ + + ${scriptBundles()} + + `; + } + catch (e) { + console.log('error rendering html:', e); + return `React - ${e.message}` + } +}; \ No newline at end of file diff --git a/server/front/src/server/render/ssr.ts b/server/front/src/server/render/ssr.ts new file mode 100644 index 0000000..bfee49b --- /dev/null +++ b/server/front/src/server/render/ssr.ts @@ -0,0 +1,24 @@ +import * as express from 'express'; + +export function mq(req: express.Request) { + const mq: TMake.MediaQueryProps = { + width: 1280, + height: 720, + screen: true + } + + switch ((req as any).device.type) { + case 'phone': + mq.width = 320 + mq.height = 640 + break; + case 'tablet': + mq.width = 1280 + break; + case 'desktop': + mq.width = 1280 + break; + } + + return mq; +} \ No newline at end of file diff --git a/server/front/src/server/routes/contact.ts b/server/front/src/server/routes/contact.ts new file mode 100644 index 0000000..123e5db --- /dev/null +++ b/server/front/src/server/routes/contact.ts @@ -0,0 +1,82 @@ +import { Router, Request, Response, NextFunction } from 'express'; +import * as bodyParser from 'body-parser'; + +import { settings } from '../../lib/settings'; +import { Document as ContactForm, validate } from '../../schema/contactForm' + +import { send } from '../lib/email'; + +import { parseBody } from './parse'; + + + +export class Emailer { + router: Router + + /** + * Initialize the TestRouter + */ + constructor() { + this.router = Router(); + this.init(); + } + + public get(req: Request, res: Response, next: NextFunction) { + return res.status(409) + .send({ + message: 'POST only', + status: res.status + }); + } + /** + * POST + */ + + + post(request: Request, response: Response) { + const form: ContactForm = request.body; + const errors = validate(form); + if (errors) { + console.log('errors', errors); + return response.status(409).send({ + message: JSON.stringify(errors), + status: response.status + }); + } + else { + const email: TMake.Email = { + from: settings.email.contact, + to: settings.email.support, + replyTo: form.email, + subject: `new contact: ${form.name}`, + template: 'contact', + data: form, + } + return send(email).then((res: any) => { + return response.status(201) + .send({ + message: 'success', + status: response.status, + subscribed: form.email + }); + }) + } + } + + /** + * Take each handler, and attach to one of the Express.Router's + * endpoints. + */ + + + init() { + this.router.post('/', bodyParser.json(), this.post); + this.router.get('/', this.get); + } +} + +// Create the HeroRouter, and export its configured Express.Router +const router = new Emailer(); +router.init(); + +export const routes = router.router; \ No newline at end of file diff --git a/server/front/src/server/routes/healthz.ts b/server/front/src/server/routes/healthz.ts new file mode 100644 index 0000000..2617165 --- /dev/null +++ b/server/front/src/server/routes/healthz.ts @@ -0,0 +1,42 @@ +import { Router, Request, Response, NextFunction } from 'express'; + +import { healthy, tests } from '../integrate'; + +export class Healthz { + router: Router + + /** + * Initialize the TestRouter + */ + constructor() { + this.router = Router(); + this.init(); + } + + public get(req: Request, res: Response, next: NextFunction) { + if (healthy()) { + return res.status(200) + .send({ + message: 'healthy', + status: res.status + }); + } else { + return res.status(500) + .send({ + message: 'unhealthy', + status: res.status, + error: tests + }); + } + } + + init() { + this.router.get('/', this.get); + } +} + +// Create the HeroRouter, and export its configured Express.Router +const router = new Healthz(); +router.init(); + +export const routes = router.router; \ No newline at end of file diff --git a/server/front/src/server/routes/index.ts b/server/front/src/server/routes/index.ts new file mode 100644 index 0000000..a68a38f --- /dev/null +++ b/server/front/src/server/routes/index.ts @@ -0,0 +1,15 @@ +/** + * Routes for express app + */ +import * as express from 'express'; + +import { routes as subscribe } from './subscribe'; +import { routes as contact } from './contact'; +import { routes as healthz } from './healthz'; + + +export function init(app: express.Application) { + app.use('/api/v1/subscribe', subscribe); + app.use('/api/v1/contact', contact); + app.use('/healthz', healthz); +}; \ No newline at end of file diff --git a/server/front/src/server/routes/parse.ts b/server/front/src/server/routes/parse.ts new file mode 100644 index 0000000..ba178e8 --- /dev/null +++ b/server/front/src/server/routes/parse.ts @@ -0,0 +1,14 @@ +import { Router, Request, Response, NextFunction } from 'express'; + +import { check } from 'typed-json-transform'; + +export function parseBody(request: Request) { + const {body} = request; + if (check(body, Object)) { + return body; + } + if (check(body, String)) { + return JSON.parse(body); + } + throw new Error(`failed to parse body: ${body}`) +} \ No newline at end of file diff --git a/server/front/src/server/routes/subscribe.ts b/server/front/src/server/routes/subscribe.ts new file mode 100644 index 0000000..f687c50 --- /dev/null +++ b/server/front/src/server/routes/subscribe.ts @@ -0,0 +1,79 @@ +import { Router, Request, Response, NextFunction } from 'express'; + +import * as bodyParser from 'body-parser'; + +import { Document as ContactForm, validate } from '../../schema/subscribeForm' +import { settings } from '../../lib' +import { subscribe } from '../lib/createSend'; + +import { parseBody } from './parse'; + +export class FormPoster { + router: Router + + /** + * Initialize the TestRouter + */ + constructor() { + this.router = Router(); + this.init(); + } + + public get(req: Request, res: Response, next: NextFunction) { + return res.status(409) + .send({ + message: 'POST only', + status: res.status + }); + } + /** + * POST + */ + + post(request: Request, response: Response) { + const form = request.body; + const errors = validate(form); + if (errors) { + console.log('errors', errors); + return response.status(409) + .send({ + message: JSON.stringify(errors), + status: response.status + }); + } + else { + const listId = settings.createSend.lists.general; + return subscribe(listId, form).then((res: any) => { + return response.status(res.status) + .send({ + message: 'success', + status: response.status, + subscribed: form.email + }); + }, (error: Error) => { + return response.status(500) + .send({ + message: 'We had an issue contacting campaign monitor', + status: response.status + }); + }) + } + } + + /** + * Take each handler, and attach to one of the Express.Router's + * endpoints. + */ + + + init() { + this.router.post('/', bodyParser.json(), this.post); + this.router.get('/', this.get); + } +} + +// Create the HeroRouter, and export its configured Express.Router +const router = new FormPoster(); +router.init(); + +export const routes = router.router; \ No newline at end of file diff --git a/server/front/src/server/server.ts b/server/front/src/server/server.ts new file mode 100644 index 0000000..769a369 --- /dev/null +++ b/server/front/src/server/server.ts @@ -0,0 +1,91 @@ +import * as path from 'path'; +import * as express from 'express'; + +import { settings } from './settings'; +import { integrate } from './integrate'; + +import { init as initRoutes } from './routes'; + +import { render, fetchCookieUser } from './render/middleware'; + +import * as session from 'express-session'; +import * as cors from 'cors'; +import * as methodOverride from 'method-override'; +import * as gzip from 'compression'; +import * as helmet from 'helmet'; +import * as httpProxy from 'http-proxy'; + +import { s3domain } from '../lib/assets'; + + +import cookieParser = require('cookie-parser') + +export function init() { + const app = express(); + + app.set('port', settings.private.express.port); + + if (settings.env.production) { + app.use(gzip()); + }; + + app.use(cors({ + "origin": "*", + "methods": "GET,HEAD,PUT,PATCH,POST,DELETE", + "preflightContinue": false + })); + + const bucket = `https://${settings.assets.s3.bucket}.${s3domain(settings.assets.s3.region)}` + const cspDirectives = { + defaultSrc: ["'self'", `https://${settings.url}`, 'https://chroma-fund.s3.amazonaws.com', bucket], + styleSrc: ["'self' 'unsafe-inline'", 'https://fonts.googleapis.com', 'https://fonts.gstatic.com'], + fontSrc: ["'self'", 'data:', 'https://fonts.googleapis.com', 'https://fonts.gstatic.com'], + scriptSrc: ["'self' 'unsafe-inline'", 'https://www.google-analytics.com'], + connectSrc: ["'self'"], + imgSrc: ["'self'", 'data:', bucket, 'https://www.google-analytics.com', 'https://stats.g.doubleclick.net', 'https://travis-ci.org', 'https://api.travis-ci.org'] + } + + if (settings.env.production) { + cspDirectives.connectSrc.push(`https://${settings.url}`); + } + else { + cspDirectives.connectSrc.push(`wss://${settings.url}`); + } + + app.use(helmet()); + + app.use(helmet.contentSecurityPolicy({ + directives: cspDirectives + })) + + if (settings.env.production) { + const bundleDir = path.join(process.cwd(), 'front'); + app.use('/front', express.static(bundleDir, { fallthrough: true })); + console.log(`===> Serving client bundle from ${bundleDir}`) + } + + app.use(cookieParser()) + app.use(methodOverride()); + app.use(require('express-device').capture()); + + initRoutes(app); + + app.use(fetchCookieUser); + app.get('*', render); + app.listen(app.get('port')); + + console.log(`-------------------------- +===> 😊 Started Server . . . +===> Environment: ${JSON.stringify(settings.env)} +===> Listening on port: ${app.get('port')}`); + if (settings.env.production) { + console.log( + '===> 🚦 Note: In order for authentication to work in production'); + console.log('===> you will need a secure HTTPS connection'); + } + console.log('--------------------------'); + + integrate(); +}; + +init(); \ No newline at end of file diff --git a/server/front/src/server/settings.ts b/server/front/src/server/settings.ts new file mode 100644 index 0000000..8439328 --- /dev/null +++ b/server/front/src/server/settings.ts @@ -0,0 +1,118 @@ +import * as yaml from 'js-yaml'; +import * as path from 'path'; +import { readFileSync } from 'fs'; +import { extend } from 'typed-json-transform'; +import { initialize } from '../lib/settings'; +import { get } from '../lib/fetch'; + +const _settings: Settings = { private: {} }; + +if (process.env.NAMESPACE_SETTINGS_PATH) { + try { + const ns = yaml.load(readFileSync(process.env.NAMESPACE_SETTINGS_PATH, 'utf8')); + extend(_settings.private, ns.private); + extend(_settings, ns.public); + } + catch (error) { + console.log(`error reading namespace from file ${process.env.NAMESPACE_SETTINGS_PATH}`, error); + } +} + +if (process.env.NAMESPACE_SETTINGS) { + try { + const ns = yaml.load(process.env.NAMESPACE_SETTINGS); + extend(_settings.private, ns.private); + extend(_settings, ns.public); + } + catch (error) { + console.log(`error reading namespace from environment ${process.env.NAMESPACE_SETTINGS}`, error); + } +} + +if (process.env.SETTINGS) { + try { + extend(_settings, yaml.load(process.env.SETTINGS)); + console.log(`loaded settings from env.SETTINGS`); + } + catch (error) { + console.log(`error reading settings from env ${process.env.SETTINGS}`, error); + } +} +else { + const settingsPath = path.join(process.cwd(), process.env['SETTINGS_PATH'] || 'settings/settings.yaml'); + + try { + + extend(_settings, yaml.load(readFileSync(settingsPath, 'utf8'))); + console.log(`loaded settings @ ${settingsPath}`); + } + catch (error) { + console.log(`error reading settings from file ${settingsPath}`, error); + } +} + +_settings.version = JSON.parse(readFileSync(path.resolve(__dirname, '../package.json'), 'utf8')).version; + +if (_settings.env) { + throw new Error("don't provide env to SETTINGS or settings.yaml, it should be computed at launch"); +} + +const transport = _settings.private.express.https ? 'https' : 'http'; + +_settings.env = { + production: process.env.NODE_ENV === "production" ? true : false, + debug: process.env.NODE_ENV === "production" ? false : true, + absoluteUrl: `${transport}://${_settings.private.express.domain}` +}; + +if (!_settings.ssr) { + _settings.ssr = {}; +} + +if (!_settings.webpack) { + _settings.webpack = {} +} + +if (!_settings.manifest) { + _settings.manifest = { active: { theme: 'dark' } } +} + +if (!_settings.manifest.bundle) _settings.manifest.bundle = {}; + +let themeUrl: string; + +if (process.env.NODE_ENV === "production") { + _settings.private.express.https = true; + const bundleManifest = JSON.parse(readFileSync(`${process.cwd()}/front/bundle.json`, 'utf8')); + for (const k of Object.keys(bundleManifest)) { + _settings.manifest.bundle[k] = '/front/' + bundleManifest[k]; + } + themeUrl = 'http://theme/theme/theme.json'; +} else { + _settings.manifest.bundle['bundle.js'] = '/front/bundle.js'; + _settings.manifest.bundle['bundle.css'] = '/front/bundle.css'; + themeUrl = 'http://10.200.10.1:3002/theme.json'; +} + +if (!_settings.manifest.theme) _settings.manifest.theme = {}; + +export const settings = initialize(_settings, true); + +function fetchTheme() { + get({ url: themeUrl }).then((res: any) => { + if (res.status >= 200 && res.status < 300) { + res.json().then((bundleManifest: { [index: string]: string }) => { + // console.log('fetched theme manifest', bundleManifest); + for (const k of Object.keys(bundleManifest)) { + settings.manifest.theme[k] = '/theme/' + bundleManifest[k]; + } + settings.manifest.theme.cssBundle = '/theme/' + bundleManifest[settings.manifest.active.theme + '.css'] + }) + } + }, (error: Error) => { + console.log('fetched failed', error.message); + }); +} + +fetchTheme(); +setInterval(fetchTheme, 5000); diff --git a/server/front/src/state/account.ts b/server/front/src/state/account.ts new file mode 100644 index 0000000..fcf565f --- /dev/null +++ b/server/front/src/state/account.ts @@ -0,0 +1,8 @@ +export const account = (state = {}, action: TMake.Action.SetUser) => { + switch (action.type) { + case 'SET_USER': + return { user: action.user }; + default: + return state; + } +}; \ No newline at end of file diff --git a/server/front/src/state/editor.ts b/server/front/src/state/editor.ts new file mode 100644 index 0000000..b602879 --- /dev/null +++ b/server/front/src/state/editor.ts @@ -0,0 +1,91 @@ +import * as jsyaml from 'js-yaml'; +import { load } from 'js-moss'; +import { types } from './types'; + +const environmentFile = + `select<: + host-mac: 1 + host-linux: 0 + production: 1 + debug: 0 + ios: 0 + win: 1 + mac: 1 +$<: + host: + ninja: + version: + =host-mac: 1.5.7 + =host-linux: 1.5.3 + compiler: + =host-mac: clang + =host-linux: gcc + graphicsLib: + =*: opengl + =win: directx +` + +const configFile = `build: + map<: + from: + =mac, linux: + device: + arch: x64 + endianness: LE + =ios !linux: + device: + arch: arm + endianness: BE + simulator: + arch: x64 + endianness: LE + to: + ninja: + cc: $host.compiler + fetch: http://ninja-v\${host.ninja.version}.tar.gz + defines>: + $<: + LE: 4321 + BE: 1234 + TARGET_ENDIANNESS: \${$endianness} + cFlags: + =production: + wAll: true + O: 3 + =debug: + O: 0 + link: + $graphicsLib: $graphicsLib +` + +const defaultState: TMake.Editor.Data = { + config: configFile, + environment: environmentFile, + result: 'render' +} +defaultState.result = jsyaml.dump(load(jsyaml.load(configFile), jsyaml.load(environmentFile))); + +function render(editor: TMake.Editor.Data) { + try { + const environment = jsyaml.load(editor.environment); + try { + const config = jsyaml.load(editor.config); + const result = load(config, environment); + return { ...editor, result: jsyaml.dump(result) } + } catch (e) { + return { ...editor, result: e.message }; + } + } catch (e) { + return { ...editor, result: e.message }; + } +} + +export const editor = (state = defaultState, action: TMake.Editor.Actions.Update) => { + const { type, value } = action; + switch (type) { + case types.editor.update.config: return render({ ...state, config: value }); + case types.editor.update.environment: return render({ ...state, environment: value }); + default: + return state; + } +}; diff --git a/server/front/src/state/index.ts b/server/front/src/state/index.ts new file mode 100644 index 0000000..22f9c49 --- /dev/null +++ b/server/front/src/state/index.ts @@ -0,0 +1,11 @@ +import { combineReducers } from 'redux'; +import { routerReducer as routing } from 'react-router-redux'; +import { reducer as form } from 'redux-form'; + +import { editor } from './editor'; + +// Combine reducers with routeReducer which keeps track of +// router state +export const rootReducer = combineReducers({ routing, editor, form }) + +export * from './types'; \ No newline at end of file diff --git a/server/front/src/state/types.ts b/server/front/src/state/types.ts new file mode 100644 index 0000000..4c26945 --- /dev/null +++ b/server/front/src/state/types.ts @@ -0,0 +1,22 @@ +import { keyPaths, setValueForKeyPath, each } from 'typed-json-transform'; + +export const types = { + request: { + create: {}, + success: {}, + failure: {} + }, + editor: { + update: { + config: {}, + options: {}, + environment: {}, + result: {} + } + } +} + +each(keyPaths(types), (kp) => { + const val = kp.replace(/\./g, '_').toUpperCase(); + setValueForKeyPath(val, kp, types) +}) \ No newline at end of file diff --git a/server/front/src/static/icon_120.png b/server/front/src/static/icon_120.png new file mode 100644 index 0000000..9b19629 Binary files /dev/null and b/server/front/src/static/icon_120.png differ diff --git a/server/front/src/static/summernote.eot b/server/front/src/static/summernote.eot new file mode 100644 index 0000000..3138288 Binary files /dev/null and b/server/front/src/static/summernote.eot differ diff --git a/server/front/src/static/summernote.ttf b/server/front/src/static/summernote.ttf new file mode 100644 index 0000000..bb254a1 Binary files /dev/null and b/server/front/src/static/summernote.ttf differ diff --git a/server/front/src/static/summernote.woff b/server/front/src/static/summernote.woff new file mode 100644 index 0000000..01b4e75 Binary files /dev/null and b/server/front/src/static/summernote.woff differ diff --git a/server/front/src/static/video-overlay.png b/server/front/src/static/video-overlay.png new file mode 100644 index 0000000..7349f5a Binary files /dev/null and b/server/front/src/static/video-overlay.png differ diff --git a/server/front/src/ux/containers/Page.tsx b/server/front/src/ux/containers/Page.tsx new file mode 100644 index 0000000..9ba82d4 --- /dev/null +++ b/server/front/src/ux/containers/Page.tsx @@ -0,0 +1,70 @@ +import * as React from 'react'; +import * as Helmet from 'react-helmet'; + +// LINK GLOBAL ASSETS + +function metaAssets(settings: Settings) { + return [ + { charset: 'utf-8' }, + // Meta descriptions are commonly used on search engine result pages to + // display preview snippets for a given page. + { name: 'description', content: 'TMake is a decentralized financial market built for community investing' }, + // Setting IE=edge tells Internet Explorer to use the latest engine to + // render the page and execute Javascript + { 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' }, + // Using the viewport tag allows you to control the width and scaling of + // the browser's viewport: + // - include width=device-width to match the screen's width in + // device-independent pixels + // - include initial-scale=1 to establish 1:1 relationship between css pixels + // and device-independent pixels + // - ensure your page is accessible by not disabling user scaling. + { name: 'viewport', content: 'width=device-width, initial-scale=1' }, + // Disable tap highlight on IE + { name: 'msapplication-tap-highlight', content: 'no' }, + // Add to homescreen for Chrome on Android + { name: 'mobile-web-app-capable', content: 'yes' }, + // Add to homescreen for Safari on IOS + { name: 'apple-mobile-web-app-capable', content: 'yes' }, + { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }, + { name: 'apple-mobile-web-app-title', content: 'reactGo' }, + // Tile icon for Win8 (144x144 + tile color) + { name: 'msapplication-TileImage', content: settings.manifest.theme['icon_120.png'] }, + { name: 'msapplication-TileColor', content: '#3372DF' } + ]; +}; + +function linkAssets(settings: Settings) { + const links = [ + // Add to homescreen for Chrome on Android + { rel: 'icon', href: settings.manifest.theme['favicon.ico'] }, + { rel: 'icon', sizes: '192x192', href: settings.manifest.theme['icon_120.png'] }, + // Add to homescreen for Safari on IOS + { rel: 'apple-touch-icon', sizes: '152x152', href: settings.manifest.theme['icon_120.png'] }, + // { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Roboto+Condensed', type: 'text/css' }, + { rel: 'stylesheet', href: settings.manifest.theme[settings.manifest.active.theme + '.css'] }, + // SEO: If your mobile URL is different from the desktop URL, + // add a canonical link to the desktop page https://developers.google.com/webmasters/smartphone-sites/feature-phones + { 'rel': 'canonical', 'href': settings.env.absoluteUrl } + ]; + if (settings.manifest.bundle) { + links.push({ rel: 'stylesheet', href: settings.manifest.bundle['bundle.css'] }) + } + return settings.env.production ? links : links.filter(l => l.rel !== 'stylesheet'); +}; + +export function createPage(settings: Settings) { + const meta = metaAssets(settings); + const link = linkAssets(settings); + const {title} = settings.i18n; + + return function Page(props: any) { + const { children } = props; + return ( +
+ + {props.children} +
+ ); + } +} \ No newline at end of file diff --git a/server/front/src/ux/forms/FormField.tsx b/server/front/src/ux/forms/FormField.tsx new file mode 100644 index 0000000..7891dea --- /dev/null +++ b/server/front/src/ux/forms/FormField.tsx @@ -0,0 +1,29 @@ +import * as React from 'react'; +import { Grid, Row, Col, Button, FormGroup, FormControl, ControlLabel, HelpBlock } from 'react-bootstrap'; + +import { gradients, aligner } from '../lib'; + +export class FormField extends React.Component { + getState(meta: any) { + if (meta.dirty) { + if (meta.error) { + return 'error'; + } if (meta.warning) { + return 'warning'; + } + return 'success'; + } + return null; + } + render() { + const { placeholder, type, input, meta, children } = this.props; + return ( + + {children} + + + {meta.error || meta.warning || ''} + + ); + } +} \ No newline at end of file diff --git a/server/front/src/ux/forms/contact.tsx b/server/front/src/ux/forms/contact.tsx new file mode 100644 index 0000000..9fc79d4 --- /dev/null +++ b/server/front/src/ux/forms/contact.tsx @@ -0,0 +1,70 @@ +import * as React from 'react'; +import { combineReducers } from 'redux'; +import { connect } from 'react-redux'; +import { Field, Form, SubmissionError, reduxForm } from 'redux-form'; +import { Grid, Row, Col, Button, FormGroup, FormControl, ControlLabel, HelpBlock } from 'react-bootstrap'; +import { post, settings } from '../../lib'; +import { FormField } from './formField'; +import { Default as Layout, Spinner, gradients, aligner } from '../lib'; + + +import { Document as ContactForm, validate, warn } from '../../schema/contactForm'; + +const emailStyle = { textAlign: 'center' }; + +const ContactFormClass = (props: ReduxFormProps) => { + const { title } = settings.i18n; + const { handleSubmit, pristine, reset, submitting, submitSucceeded, submitFailed, error } = props; + if (submitSucceeded) { + return (

Thank you! We'll be in touch

) + } else if (submitFailed && !error) { + return (

Sorry, something went wront. Please try again in a few hours.

) + } + return ( +
+ Name + Email + Your Message + +
+ ) +} + +function onSubmit(form: ContactForm, dispatch: Function, context: any) { + console.log('submit contact form'); + return post({ url: '/api/v1/contact', body: form }).then( + (res: any) => { + if (res.status == 201) { + return dispatch(succeed(form, res)); + } else { + return Promise.reject(new SubmissionError({ + serverError: `unexpected success code: ${res.status}` + } as any)) + } + }, + (error: Error) => Promise.reject(new SubmissionError({ + serverError: error.message + } as any)) + ); +} + +function succeed(form: ContactForm, res: any) { + return { + type: 'SUCCEED', + res + }; +} + +function fail(form: ContactForm, error: Error) { + return { + type: 'NETWORK_ERROR', + error + }; +} + +export const ReduxForm = reduxForm({ + form: 'contactForm', // a unique identifier for this form + validate, // <--- validation function given to redux-form + warn, // <--- warning function given to redux-form + onSubmit +})(ContactFormClass as any) \ No newline at end of file diff --git a/server/front/src/ux/forms/subscribe.tsx b/server/front/src/ux/forms/subscribe.tsx new file mode 100644 index 0000000..be58cfd --- /dev/null +++ b/server/front/src/ux/forms/subscribe.tsx @@ -0,0 +1,93 @@ +import * as React from 'react'; +import { combineReducers } from 'redux'; +import { connect } from 'react-redux'; +import { Field, Form, SubmissionError, reduxForm } from 'redux-form'; +import { Grid, Row, Col, Button, FormGroup, FormControl, ControlLabel, HelpBlock } from 'react-bootstrap'; +import { post } from '../../lib/fetch'; +import { Document as SubscribeForm, validate, warn } from '../../schema/subscribeForm'; +import { Spinner, gradients, aligner } from '../lib'; + +import { FormField } from './formField'; + +const emailStyle = { textAlign: 'center' }; + +const SubscribeFormClass = (props: ReduxFormProps) => { + const { handleSubmit, pristine, reset, submitting, submitSucceeded, submitFailed } = props; + if (submitSucceeded) { + return (

Thank you! We'll be in touch

) + } else if (submitFailed) { + return (

Sorry, something went wront. Please try again in a few hours.

) + } + return ( +
+ Name + Email + +
+ ) +} + +function succeed(form: SubscribeForm, res: any) { + return { + type: 'SUCCEED', + res + }; +} + +function fail(form: SubscribeForm, error: Error) { + return { + type: 'ERROR', + error + }; +} + +function onSubmit(form: SubscribeForm, dispatch: Function, context: any) { + return post({ url: '/api/v1/subscribe', body: form }).then( + (res: any) => { + if (res.status == 201) { + return dispatch(succeed(form, res)); + } else { + return Promise.reject(new SubmissionError({ + message: res.message, + serverError: `unexpected success code: ${res.status}` + } as any)) + } + }, + (error: Error) => Promise.reject(new SubmissionError({ + serverError: error.message + } as any)) + ); +} + +export const ReduxForm = reduxForm({ + form: 'subscribeForm', // a unique identifier for this form + validate, // <--- validation function given to redux-form + warn, // <--- warning function given to redux-form + onSubmit +})(SubscribeFormClass as any) + +/* to connect additional combineReducers */ + +/* +const LOAD = 'redux-form/contact/LOAD' +const reducer = (state = {}, action: any) => { + switch (action.type) { + case LOAD: + return { + data: action.data + } + default: + return state + } +} +const loader = (data: any) => ({ type: LOAD, data }); + +// You have to connect() to any reducers that you wish to connect to yourself +connect( + state => ({ + name: state.name, + emails: state.emails + }), + { load: loader } // bind account loading action creator +)(SubscribeForm as any); +*/ \ No newline at end of file diff --git a/server/front/src/ux/lib/components/codemirror.tsx b/server/front/src/ux/lib/components/codemirror.tsx new file mode 100644 index 0000000..5db44cb --- /dev/null +++ b/server/front/src/ux/lib/components/codemirror.tsx @@ -0,0 +1,139 @@ +import * as React from "react"; +import * as ReactDOM from "react-dom"; +import debounce = require('lodash.debounce'); +import { isEqual } from 'typed-json-transform'; + +function normalizeLineEndings(str: string) { + if (!str) return str; + return str.replace(/\r\n|\r/g, '\n'); +} + +interface CodeMirrorProps { + autoFocus?: boolean, + className?: any, + codeMirrorInstance?: Function, + defaultValue?: string, + name?: string, + onChange?: Function, + onCursorActivity?: Function, + onFocusChange?: Function, + onScroll?: Function, + options?: any, + path?: string, + value?: string, + preserveScrollPosition?: boolean, +} + +interface CodeMirrorState { + isFocused: boolean +} + +export class CodeMirror extends React.Component{ + codeMirror: any; + textareaNode: any; + + constructor(props: CodeMirrorProps) { + super(props); + // set initial state + this.state = { isFocused: false }; + } + + componentWillMount() { + this.componentWillReceiveProps = debounce(this.componentWillReceiveProps, 0); + if (this.props.path) { + console.error('Warning: react-codemirror: the `path` prop has been changed to `name`'); + } + } + + componentDidMount() { + const focusChanged = (focused: any) => { + this.setState({ + isFocused: focused, + }); + this.props.onFocusChange && this.props.onFocusChange(focused); + } + const focus = () => { + focusChanged(true); + } + const blue = () => { + focusChanged(false); + } + const codeMirrorInstance = this.props.codeMirrorInstance || require('codemirror'); + const codeMirror = codeMirrorInstance.fromTextArea(this.textareaNode, this.props.options); + codeMirror.on('change', (doc: any, change: any) => { + if (this.props.onChange && change.origin !== 'setValue') { + this.props.onChange(doc.getValue(), change); + } + }) + codeMirror.on('cursorActivity', (cm: any) => { + this.props.onCursorActivity && this.props.onCursorActivity(cm); + }); + codeMirror.on('focus', focus) + codeMirror.on('blur', blur) + codeMirror.on('scroll', (cm: any) => { + this.props.onScroll && this.props.onScroll(cm.getScrollInfo()); + }); + codeMirror.setValue(this.props.value || ''); + + this.codeMirror = codeMirror; + } + + componentWillUnmount() { + // is there a lighter-weight way to remove the cm instance? + if (this.codeMirror) { + this.codeMirror.toTextArea(); + } + } + + componentWillReceiveProps(nextProps: any) { + if (this.codeMirror && nextProps.value !== undefined && nextProps.value !== this.props.value && normalizeLineEndings(this.codeMirror.getValue()) !== normalizeLineEndings(nextProps.value)) { + if (this.props.preserveScrollPosition) { + var prevScrollPosition = this.codeMirror.getScrollInfo(); + this.codeMirror.setValue(nextProps.value); + this.codeMirror.scrollTo(prevScrollPosition.left, prevScrollPosition.top); + } else { + this.codeMirror.setValue(nextProps.value); + } + } + if (typeof nextProps.options === 'object') { + for (let optionName in nextProps.options) { + if (nextProps.options.hasOwnProperty(optionName)) { + this.setOptionIfChanged(optionName, nextProps.options[optionName]); + } + } + } + } + + setOptionIfChanged(optionName: string, newValue: any) { + const oldValue = this.codeMirror.getOption(optionName); + if (!isEqual(oldValue, newValue)) { + this.codeMirror.setOption(optionName, newValue); + } + } + + render() { + const { name, path, value } = this.props; + const editorClassName = [ + 'ReactCodeMirror', + this.state.isFocused ? 'ReactCodeMirror--focused' : null, + this.props.className + ].join(' '); + if (this.codeMirror) { + if (value != this.codeMirror.getValue()) { + this.codeMirror.setValue(value); + } + } + return ( +
+ + + + + +
+ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queue.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queue.ejs new file mode 100644 index 0000000..13a4c3a --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queue.ejs @@ -0,0 +1,359 @@ +

Queue <%= fmt_string(queue.name) %><%= fmt_maybe_vhost(queue.vhost) %>

+ +
+

Overview

+
+ <%= queue_lengths('lengths-q', queue) %> +<% if (rates_mode != 'none') { %> + <%= message_rates('msg-rates-q', queue.message_stats) %> +<% } %> + +

Details

+ + + + + + + + + + <% if (queue.owner_pid_details != undefined) { %> + + + + +<% } %> +<% if (nodes_interesting) { %> + + + + + <% if (queue.owner_pid_details == undefined) { %> + + + + + <% } %> +<% } %> +
Features<%= fmt_features(queue) %>
Policy<%= fmt_string(queue.policy, '') %>
Exclusive owner<%= link_conn(queue.owner_pid_details.name) %>
Node<%= fmt_node(queue.node) %>
Slaves + <% + var has_unsynced_node = false; + for (var i in queue.slave_nodes) { + var node = queue.slave_nodes[i]; + %> + <% + if (jQuery.inArray(node, queue.synchronised_slave_nodes) == -1) { + has_unsynced_node = true; + %> + <%= fmt_node(node) %> (unsynchronised) + <% } else { %> + <%= fmt_node(node) %> + <% } %> +
+ <% } %> + <% if (queue.state == 'syncing') { %> + + + + + +
+ <%= fmt_sync_state(queue) %> + +
+ + + + +
+
+ <% } else if (has_unsynced_node) { %> +
+ + + + +
+ <% } %> +
+ + + + + + + + + + + + + + +
State<%= fmt_object_state(queue) %>
Consumers<%= fmt_string(queue.consumers) %>
Consumer utilisation <%= fmt_percent(queue.consumer_utilisation) %>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TotalReadyUnackedIn memoryPersistentTransient, Paged Out
+ Messages + + + <%= fmt_num_thousands(queue.messages) %> + + <%= fmt_num_thousands(queue.messages_ready) %> + + <%= fmt_num_thousands(queue.messages_unacknowledged) %> + + <%= fmt_num_thousands(queue.messages_ram) %> + + <%= fmt_num_thousands(queue.messages_persistent) %> + + <%= fmt_num_thousands(queue.messages_paged_out) %> +
+ Message body bytes + + + <%= fmt_bytes(queue.message_bytes) %> + + <%= fmt_bytes(queue.message_bytes_ready) %> + + <%= fmt_bytes(queue.message_bytes_unacknowledged) %> + + <%= fmt_bytes(queue.message_bytes_ram) %> + + <%= fmt_bytes(queue.message_bytes_persistent) %> + + <%= fmt_bytes(queue.message_bytes_paged_out) %> +
+ Process memory + + <%= fmt_bytes(queue.memory) %>
+
+
+ +<% if (rates_mode == 'detailed') { %> +
+

Message rates breakdown

+
+ + + + + +
+ <%= format('msg-detail-publishes', + {'mode': 'queue', + 'object': queue.incoming, + 'label': 'Incoming'}) %> + + + <%= format('msg-detail-deliveries', + {'mode': 'queue', + 'object': queue.deliveries}) %> +
+
+
+<% } %> + +
+

Consumers

+
+<%= format('consumers', {'mode': 'queue', 'consumers': queue.consumer_details}) %> +
+
+ +
+

Bindings

+
+
+ <%= format('bindings', {'mode': 'queue', 'bindings': bindings}) %> +

+

This queue

+ + <%= format('add-binding', {'mode': 'queue', 'parent': queue}) %> +
+
+
+ +<%= format('publish', {'mode': 'queue', 'queue': queue}) %> + +
+

Get messages

+
+

+ Warning: getting messages from a queue is a destructive action. + +

+
+ + + + + + + + + + + + + + + + +
+ +
+ + +
+ +
+
+
+
+ +<% if (is_user_policymaker) { %> +
+

Move messages

+
+ <% if (NAVIGATION['Admin'][0]['Shovel Management'] == undefined) { %> +

To move messages, the shovel plugin must be enabled, try:

+
$ rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
+ <% } else { %> +

+ The shovel plugin can be used to move messages from this queue + to another one. The form below will create a temporary shovel to + move messages to another queue on the same virtual host, with + default settings. +

+

+ For more options see the shovel + interface. +

+
+ + + + + + + + + + + + + + + + + + +
Destination queue:
+ +
+ <% } %> +
+
+<% } %> + +
+

Delete

+
+
+ + + + +
+
+
+ +
+

Purge

+
+
+ + + + +
+
+
+ +<% if(queue.reductions || queue.garbage_collection) { %> +
+

Runtime Metrics (Advanced)

+
+ <%= data_reductions('reductions-rates-queue', queue) %> + + <% if (queue.garbage_collection.min_bin_vheap_size) { %> + + + + + <% } %> + + <% if (queue.garbage_collection.min_heap_size) { %> + + + + + <% } %> + + <% if (queue.garbage_collection.fullsweep_after) { %> + + + + + <% } %> + + <% if (queue.garbage_collection.minor_gcs) { %> + + + + + <% } %> +
Minimum binary virtual heap size in words (min_bin_vheap_size)<%= queue.garbage_collection.min_bin_vheap_size %>
Minimum heap size in words (min_heap_size)<%= queue.garbage_collection.min_heap_size %>
Maximum generational collections before fullsweep (fullsweep_after)<%= queue.garbage_collection.fullsweep_after %>
Number of minor GCs (minor_gcs)<%= queue.garbage_collection.minor_gcs %>
+
+
+ +<% } %> diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queues.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queues.ejs new file mode 100644 index 0000000..0f17513 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/queues.ejs @@ -0,0 +1,266 @@ +

Queues

+
+ <%= pagiante_ui(queues, 'queues') %> +
+
+<% if (queues.items.length > 0) { %> + + + + <%= group_heading('queues', 'Overview', [vhosts_interesting, nodes_interesting, true]) %> + <%= group_heading('queues', 'Messages', []) %> + <%= group_heading('queues', 'Message bytes', []) %> +<% if (rates_mode != 'none') { %> + <%= group_heading('queues', 'Message rates', []) %> +<% } %> + + + +<% if (vhosts_interesting) { %> + +<% } %> + +<% if (nodes_interesting) { %> + +<% } %> +<% if (show_column('queues', 'features')) { %> + +<% } %> +<% if (show_column('queues', 'features_no_policy')) { %> + +<% } %> +<% if (show_column('queues', 'policy')) { %> + +<% } %> +<% if (show_column('queues', 'consumers')) { %> + +<% } %> +<% if (show_column('queues', 'consumer_utilisation')) { %> + +<% } %> +<% if (show_column('queues', 'state')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-ready')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-unacked')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-ram')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-persistent')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-total')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-ready')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-unacked')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-ram')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-persistent')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-total')) { %> + +<% } %> +<% if (rates_mode != 'none') { %> + <% if (show_column('queues', 'rate-incoming')) { %> + + <% } %> + <% if (show_column('queues', 'rate-deliver')) { %> + + <% } %> + <% if (show_column('queues', 'rate-redeliver')) { %> + + <% } %> + <% if (show_column('queues', 'rate-ack')) { %> + + <% } %> +<% } %> + + + +<% + for (var i = 0; i < queues.items.length; i++) { + var queue = queues.items[i]; +%> + > +<% if (vhosts_interesting) { %> + +<% } %> + +<% if (nodes_interesting) { %> + +<% } %> +<% if (show_column('queues', 'features')) { %> + +<% } %> +<% if (show_column('queues', 'features_no_policy')) { %> + +<% } %> +<% if (show_column('queues', 'policy')) { %> + +<% } %> +<% if (show_column('queues', 'consumers')) { %> + +<% } %> +<% if (show_column('queues', 'consumer_utilisation')) { %> + +<% } %> +<% if (show_column('queues', 'state')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-ready')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-unacked')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-ram')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-persistent')) { %> + +<% } %> +<% if (show_column('queues', 'msgs-total')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-ready')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-unacked')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-ram')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-persistent')) { %> + +<% } %> +<% if (show_column('queues', 'msg-bytes-total')) { %> + +<% } %> +<% if (rates_mode != 'none') { %> + <% if (show_column('queues', 'rate-incoming')) { %> + + <% } %> + <% if (show_column('queues', 'rate-deliver')) { %> + + <% } %> + <% if (show_column('queues', 'rate-redeliver')) { %> + + <% } %> + <% if (show_column('queues', 'rate-ack')) { %> + + <% } %> +<% } %> + + <% } %> + +
+/-
<%= fmt_sort('Virtual host', 'vhost') %><%= fmt_sort('Name', 'name') %><%= fmt_sort('Node', 'node') %>FeaturesFeatures<%= fmt_sort('Policy','policy') %><%= fmt_sort('Consumers', 'consumers') %><%= fmt_sort('Consumer utilisation', 'consumer_utilisation') %><%= fmt_sort('State', 'state') %><%= fmt_sort('Ready', 'messages_ready') %><%= fmt_sort('Unacked', 'messages_unacknowledged') %><%= fmt_sort('In Memory', 'messages_ram') %><%= fmt_sort('Persistent', 'messages_persistent') %><%= fmt_sort('Total', 'messages') %><%= fmt_sort('Ready', 'message_bytes_ready') %><%= fmt_sort('Unacked', 'message_bytes_unacknowledged') %><%= fmt_sort('In Memory', 'message_bytes_ram') %><%= fmt_sort('Persistent', 'message_bytes_persistent') %><%= fmt_sort('Total', 'message_bytes') %><%= fmt_sort('incoming', 'message_stats.publish_details.rate') %><%= fmt_sort('deliver / get', 'message_stats.deliver_get_details.rate') %><%= fmt_sort('redelivered', 'message_stats.redeliver_details.rate') %><%= fmt_sort('ack', 'message_stats.ack_details.rate') %>
<%= fmt_string(queue.vhost) %><%= link_queue(queue.vhost, queue.name, queue.arguments) %> + <%= fmt_node(queue.node) %> + <%= fmt_mirrors(queue) %> + <% if (queue.state == 'syncing') { %> + <%= fmt_sync_state(queue) %> + <% } %> + + <%= fmt_features_short(queue) %> + <%= fmt_policy_short(queue) %> + <%= fmt_features_short(queue) %><%= fmt_string(queue.policy) %><%= fmt_string(queue.consumers) %><%= fmt_percent(queue.consumer_utilisation) %><%= fmt_object_state(queue) %><%= fmt_num_thousands(queue.messages_ready) %><%= fmt_num_thousands(queue.messages_unacknowledged) %><%= fmt_num_thousands(queue.messages_ram) %><%= fmt_num_thousands(queue.messages_persistent) %><%= fmt_num_thousands(queue.messages) %><%= fmt_bytes(queue.message_bytes_ready) %><%= fmt_bytes(queue.message_bytes_unacknowledged) %><%= fmt_bytes(queue.message_bytes_ram) %><%= fmt_bytes(queue.message_bytes_persistent) %><%= fmt_bytes(queue.message_bytes) %><%= fmt_detail_rate(queue.message_stats, 'publish') %><%= fmt_detail_rate(queue.message_stats, 'deliver_get') %><%= fmt_detail_rate(queue.message_stats, 'redeliver') %><%= fmt_detail_rate(queue.message_stats, 'ack') %>
+<% } else { %> +

... no queues ...

+<% } %> +
+ + + +
+

Add a new queue

+
+
+ +<% if (vhosts_interesting) { %> + + + + +<% } else { %> + +<% } %> + + + + + + + + +<% + if (nodes_interesting) { + var nodes = JSON.parse(sync_get('/nodes')); +%> + + + + +<% } %> + + + + + + + + +
+ +
*
+ +
+ +
+ +
+
+ + + + + + +
+ +
+
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/rate-options.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/rate-options.ejs new file mode 100644 index 0000000..da15b0e --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/rate-options.ejs @@ -0,0 +1,52 @@ +<% + var id = span.attr('for'); + var mode = get_pref('rate-mode-' + id); + var size = get_pref('chart-size-' + id); + var range = get_pref('chart-range'); +%> + +
+ + + + + + + + + + + + + + + + + + + + +
+

This time series

+
+ <%= fmt_radio('mode', 'Chart', 'chart', mode) %> + <%= fmt_radio('mode', 'Current value', 'curr', mode) %> + <% if (id != 'node-stats') { %> + <%= fmt_radio('mode', 'Moving average', 'avg', mode) %> + <% } %> +
+ <%= fmt_radio('size', 'Small', 'small', size) %> + <%= fmt_radio('size', 'Medium', 'medium', size) %> + <%= fmt_radio('size', 'Large', 'large', size) %> +
+

All time series

+
+<% + for (p in CHART_PERIODS) { +%> + <%= fmt_radio('range', CHART_PERIODS[p], p, range) %> +<% + } +%> +
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/registry.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/registry.ejs new file mode 100644 index 0000000..38d98e1 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/registry.ejs @@ -0,0 +1,25 @@ +<% if (node.running) { %> + + + + +<% if (show_enabled) { %> + +<% } %> + + <% + for (var i = 0; i < list.length; i++) { + var item = list[i]; + %> + > + + +<% if (show_enabled) { %> + +<% } %> + + <% } %> +
NameDescriptionEnabled
<%= fmt_string(item.name) %><%= fmt_string(item.description) %><%= fmt_boolean(item.enabled) %>
+<% } else {%> +

...node not running...

+<% } %> diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/status.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/status.ejs new file mode 100644 index 0000000..74c2a95 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/status.ejs @@ -0,0 +1 @@ +

<%= text %>

diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/user.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/user.ejs new file mode 100644 index 0000000..635d408 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/user.ejs @@ -0,0 +1,86 @@ +

User: <%= fmt_string(user.name) %>

+ +<% if (permissions.length == 0) { %> +

+ This user does not have permission to access any virtual hosts.
+ Use "Set Permission" below to grant permission to access virtual hosts. +

+<% } %> + +
+

Overview

+
+ + + + + + + + + +
Tags<%= fmt_string(user.tags) %>
Can log in with password<%= fmt_boolean(user.password_hash.length > 0) %>
+
+
+ +<%= format('permissions', {'mode': 'user', 'permissions': permissions, 'vhosts': vhosts, 'parent': user}) %> + +
+

Update this user

+
+
+ + + + + + + + + + +
+ + +
+ + *
+ + * + (confirm) +
+ +
+ + + + [Admin] + [Monitoring] + [Policymaker] + [Management] + [Impersonator] + [None] + +
+ +
+
+
+ + +
+

Delete this user

+
+
+ + +
+
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/users.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/users.ejs new file mode 100644 index 0000000..e625fed --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/users.ejs @@ -0,0 +1,98 @@ +

Users

+
+

All users

+
+<%= filter_ui(users) %> +
+<% if (users.length > 0) { %> + + + + + + + + + + + <% + for (var i = 0; i < users.length; i++) { + var user = users[i]; + %> + > + + + + + + <% } %> + +
<%= fmt_sort('Name', 'name') %><%= fmt_sort('Tags', 'tags') %>Can access virtual hostsHas password
<%= link_user(user.name) %><%= fmt_string(user.tags) %><%= fmt_permissions(user, permissions, 'user', 'vhost', + '

No access

') %>
<%= fmt_boolean(user.password_hash.length > 0) %>
+<% } else { %> +

... no users ...

+<% } %> +

+
+
+
+ +
+

Add a user

+
+
+ + + + + + + + + + + + + +
+ + * +
+ + +
+ + *
+ + * + (confirm) +
+ +
+ + + + + + + + +
+ +
+
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhost.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhost.ejs new file mode 100644 index 0000000..fe45177 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhost.ejs @@ -0,0 +1,38 @@ +

Virtual Host: <%= fmt_string(vhost.name) %>

+ +<% if (permissions.length == 0) { %> +

+ No users have permission to access this virtual host.
+ Use "Set Permission" below to grant users permission to access this virtual host. +

+<% } %> + +
+

Overview

+
+ <%= queue_lengths('lengths-vhost', vhost) %> +<% if (rates_mode != 'none') { %> + <%= message_rates('msg-rates-vhost', vhost.message_stats) %> +<% } %> + <%= data_rates('data-rates-vhost', vhost, 'Data rates') %> +

Details

+ + + + + +
Tracing enabled:<%= fmt_boolean(vhost.tracing) %>
+
+
+ +<%= format('permissions', {'mode': 'vhost', 'permissions': permissions, 'users': users, 'parent': vhost}) %> + +
+

Delete this vhost

+
+
+ + +
+
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhosts.ejs b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhosts.ejs new file mode 100644 index 0000000..a6cbe9f --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management-3.6.9/priv/www/js/tmpl/vhosts.ejs @@ -0,0 +1,104 @@ +

Virtual Hosts

+ +
+

All virtual hosts

+
+<%= filter_ui(vhosts) %> +
+<% if (vhosts.length > 0) { %> + + + + + <%= group_heading('vhosts', 'Messages', []) %> + <%= group_heading('vhosts', 'Network', []) %> +<% if (rates_mode != 'none') { %> + <%= group_heading('vhosts', 'Message rates', []) %> +<% } %> + + + + + +<% if (show_column('vhosts', 'msgs-ready')) { %> + +<% } %> +<% if (show_column('vhosts', 'msgs-unacked')) { %> + +<% } %> +<% if (show_column('vhosts', 'msgs-total')) { %> + +<% } %> +<% if (show_column('vhosts', 'from_client')) { %> + +<% } %> +<% if (show_column('vhosts', 'to_client')) { %> + +<% } %> +<% if (rates_mode != 'none') { %> + <% if (show_column('vhosts', 'rate-publish')) { %> + + <% } %> + <% if (show_column('vhosts', 'rate-deliver')) { %> + + <% } %> +<% } %> + + + + <% + for (var i = 0; i < vhosts.length; i++) { + var vhost = vhosts[i]; + %> + > + + +<% if (show_column('vhosts', 'msgs-ready')) { %> + +<% } %> +<% if (show_column('vhosts', 'msgs-unacked')) { %> + +<% } %> +<% if (show_column('vhosts', 'msgs-total')) { %> + +<% } %> +<% if (show_column('vhosts', 'from_client')) { %> + +<% } %> +<% if (show_column('vhosts', 'to_client')) { %> + +<% } %> +<% if (rates_mode != 'none') { %> + <% if (show_column('vhosts', 'rate-publish')) { %> + + <% } %> + <% if (show_column('vhosts', 'rate-deliver')) { %> + + <% } %> +<% } %> + + <% } %> + +
Overview+/-
<%= fmt_sort('Name', 'name') %>Users <%= fmt_sort('Ready', 'messages_ready') %><%= fmt_sort('Unacked', 'messages_unacknowledged') %><%= fmt_sort('Total', 'messages') %><%= fmt_sort('From client', 'recv_oct_details.rate') %><%= fmt_sort('To client', 'send_oct_details.rate') %><%= fmt_sort('publish', 'message_stats.publish_details.rate') %><%= fmt_sort('deliver / get','message_stats.deliver_get_details.rate') %>
<%= link_vhost(vhost.name) %><%= fmt_permissions(vhost, permissions, 'vhost', 'user', + '

No users

') %>
<%= fmt_num_thousands(vhost.messages_ready) %><%= fmt_num_thousands(vhost.messages_unacknowledged) %><%= fmt_num_thousands(vhost.messages) %><%= fmt_detail_rate_bytes(vhost, 'recv_oct') %><%= fmt_detail_rate_bytes(vhost, 'send_oct') %><%= fmt_detail_rate(vhost.message_stats, 'publish') %><%= fmt_detail_rate(vhost.message_stats, 'deliver_get') %>
+<% } else { %> +

... no vhosts ...

+<% } %> +
+
+
+ +
+

Add a new virtual host

+
+
+ + + + + +
*
+ +
+
+
diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/exometer_slide.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/exometer_slide.beam new file mode 100644 index 0000000..9033b25 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/exometer_slide.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_app.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_app.beam new file mode 100644 index 0000000..56a4d51 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_app.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_config.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_config.beam new file mode 100644 index 0000000..d3f2acf Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_config.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup.beam new file mode 100644 index 0000000..5ab77b4 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup_sup.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup_sup.beam new file mode 100644 index 0000000..675ab98 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_agent_sup_sup.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_data.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_data.beam new file mode 100644 index 0000000..a523eeb Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_data.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_db_handler.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_db_handler.beam new file mode 100644 index 0000000..b644e5c Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_db_handler.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_external_stats.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_external_stats.beam new file mode 100644 index 0000000..ab6dad7 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_external_stats.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_format.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_format.beam new file mode 100644 index 0000000..f381171 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_format.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_gc.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_gc.beam new file mode 100644 index 0000000..2f21883 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_gc.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_collector.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_collector.beam new file mode 100644 index 0000000..ffc8e4e Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_collector.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_gc.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_gc.beam new file mode 100644 index 0000000..8d6e3c8 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_metrics_gc.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_storage.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_storage.beam new file mode 100644 index 0000000..da77e3c Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbit_mgmt_storage.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbitmq_management_agent.app b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbitmq_management_agent.app new file mode 100644 index 0000000..f0a5ca6 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/ebin/rabbitmq_management_agent.app @@ -0,0 +1,17 @@ +{application, rabbitmq_management_agent, [ + {description, "RabbitMQ Management Agent"}, + {vsn, "3.6.9"}, + {id, ""}, + {modules, ['exometer_slide','rabbit_mgmt_agent_app','rabbit_mgmt_agent_config','rabbit_mgmt_agent_sup','rabbit_mgmt_agent_sup_sup','rabbit_mgmt_data','rabbit_mgmt_db_handler','rabbit_mgmt_external_stats','rabbit_mgmt_format','rabbit_mgmt_gc','rabbit_mgmt_metrics_collector','rabbit_mgmt_metrics_gc','rabbit_mgmt_storage']}, + {registered, [rabbitmq_management_agent_sup]}, + {applications, [kernel,stdlib,xmerl,mnesia,ranch,ssl,crypto,public_key,rabbit_common,rabbit]}, + {mod, {rabbit_mgmt_agent_app, []}}, + {env, [ + {rates_mode, basic}, + {sample_retention_policies, + %% List of {MaxAgeInSeconds, SampleEveryNSeconds} + [{global, [{605, 5}, {3660, 60}, {29400, 600}, {86400, 1800}]}, + {basic, [{605, 5}, {3600, 60}]}, + {detailed, [{605, 5}]}]} + ]} +]}. \ No newline at end of file diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_metrics.hrl b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_metrics.hrl new file mode 100644 index 0000000..c1ee69a --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_metrics.hrl @@ -0,0 +1,186 @@ +%% The contents of this file are subject to the Mozilla Public License +%% Version 1.1 (the "License"); you may not use this file except in +%% compliance with the License. You may obtain a copy of the License at +%% http://www.mozilla.org/MPL/ +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +%% License for the specific language governing rights and limitations +%% under the License. +%% +%% The Original Code is RabbitMQ. +%% +%% The Initial Developer of the Original Code is Pivotal Software, Inc. +%% Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved. +%% + +-type(event_type() :: queue_stats | queue_exchange_stats | vhost_stats + | channel_queue_stats | channel_stats + | channel_exchange_stats | exchange_stats + | node_stats | node_node_stats | connection_stats). +-type(type() :: deliver_get | fine_stats | queue_msg_rates | queue_msg_counts + | coarse_node_stats | coarse_node_node_stats | coarse_conn_stats + | process_stats). + +-type(table_name() :: atom()). + +-define(TABLES, [{connection_stats_coarse_conn_stats, set}, + {vhost_stats_coarse_conn_stats, set}, + {connection_created_stats, set}, + {connection_stats, set}, + {channel_created_stats, set}, + {channel_stats, set}, + {channel_stats_fine_stats, set}, + {channel_exchange_stats_fine_stats, set}, + {channel_queue_stats_deliver_stats, set}, + {vhost_stats_fine_stats, set}, + {queue_stats_deliver_stats, set}, + {vhost_stats_deliver_stats, set}, + {channel_stats_deliver_stats, set}, + {channel_process_stats, set}, + {queue_stats_publish, set}, + {queue_exchange_stats_publish, set}, + {exchange_stats_publish_out, set}, + {exchange_stats_publish_in, set}, + {consumer_stats, set}, + {queue_stats, set}, + {queue_msg_stats, set}, + {vhost_msg_stats, set}, + {queue_process_stats, set}, + {node_stats, set}, + {node_coarse_stats, set}, + {node_persister_stats, set}, + {node_node_stats, set}, + {node_node_coarse_stats, set}, + {queue_msg_rates, set}, + {vhost_msg_rates, set}]). + +-define(INDEX_TABLES, [consumer_stats_queue_index, + consumer_stats_channel_index, + channel_exchange_stats_fine_stats_exchange_index, + channel_exchange_stats_fine_stats_channel_index, + channel_queue_stats_deliver_stats_queue_index, + channel_queue_stats_deliver_stats_channel_index, + queue_exchange_stats_publish_queue_index, + queue_exchange_stats_publish_exchange_index, + node_node_coarse_stats_node_index]). + +-define(GC_EVENTS, [connection_closed, channel_closed, consumer_deleted, + exchange_deleted, queue_deleted, vhost_deleted, + node_node_deleted, channel_consumer_deleted]). + +-define(DELEGATE_PREFIX, "delegate_management_"). + +%%------------------------------------------------------------------------------ +%% Only for documentation and testing purposes, so we keep track of the number and +%% order of the metrics +-define(connection_stats_coarse_conn_stats(Recv_oct, Send_oct, Reductions), + {Recv_oct, Send_oct, Reductions}). +-define(vhost_stats_coarse_conn_stats(Recv_oct, Send_oct), {Recv_oct, Send_oct}). +-define(connection_created_stats(Id, Name, Props), {Id, Name, Props}). +-define(connection_stats(Id, Props), {Id, Props}). +-define(channel_created_stats(Id, Name, Props), {Id, Name, Props}). +-define(channel_consumer_created_stats(Queue, ChPid, ConsumerTag), + {Queue, {ChPid, ConsumerTag}}). +-define(channel_stats(Id, Props), {Id, Props}). +-define(channel_stats_fine_stats(Publish, Confirm, Return_unroutable), + {Publish, Confirm, Return_unroutable}). +-define(channel_exchange_stats_fine_stats(Publish, Confirm, Return_unroutable), + {Publish, Confirm, Return_unroutable}). +-define(channel_queue_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack, + Redeliver, Ack, Deliver_get), + {Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get}). +-define(vhost_stats_fine_stats(Publish, Confirm, Return_unroutable), + {Publish, Confirm, Return_unroutable}). +-define(queue_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack, + Redeliver, Ack, Deliver_get), + {Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get}). +-define(vhost_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack, + Redeliver, Ack, Deliver_get), + {Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get}). +-define(channel_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack, + Redeliver, Ack, Deliver_get), + {Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get}). +-define(channel_process_stats(Reductions), {Reductions}). +-define(queue_stats_publish(Publish), {Publish}). +-define(queue_exchange_stats_publish(Publish), {Publish}). +-define(exchange_stats_publish_out(Publish_out), {Publish_out}). +-define(exchange_stats_publish_in(Publish_in), {Publish_in}). +-define(consumer_stats(Id, Props), {Id, Props}). +-define(queue_stats(Id, Props), {Id, Props}). +-define(queue_msg_stats(Messages_ready, Messages_unacknowledged, Messages), + {Messages_ready, Messages_unacknowledged, Messages}). +-define(vhost_msg_stats(Messages_ready, Messages_unacknowledged, Messages), + {Messages_ready, Messages_unacknowledged, Messages}). +-define(queue_process_stats(Reductions), {Reductions}). +-define(node_stats(Id, Props), {Id, Props}). +-define(node_coarse_stats(Fd_used, Sockets_used, Mem_used, Disk_free, Proc_used, + Gc_num, Gc_bytes_reclaimed, Context_switches), + {Fd_used, Sockets_used, Mem_used, Disk_free, Proc_used, Gc_num, + Gc_bytes_reclaimed, Context_switches}). +-define(node_persister_stats(Io_read_count, Io_read_bytes, Io_read_avg_time, Io_write_count, + Io_write_bytes, Io_write_avg_time, Io_sync_count, Io_sync_avg_time, + Io_seek_count, Io_seek_avg_time, Io_reopen_count, Mnesia_ram_tx_count, + Mnesia_disk_tx_count, Msg_store_read_count, Msg_store_write_count, + Queue_index_journal_write_count, Queue_index_write_count, + Queue_index_read_count, Io_file_handle_open_attempt_count, + Io_file_handle_open_attempt_avg_time), + {Io_read_count, Io_read_bytes, Io_read_avg_time, Io_write_count, Io_write_bytes, + Io_write_avg_time, Io_sync_count, Io_sync_avg_time, Io_seek_count, Io_seek_avg_time, + Io_reopen_count, Mnesia_ram_tx_count, Mnesia_disk_tx_count, Msg_store_read_count, + Msg_store_write_count, Queue_index_journal_write_count, Queue_index_write_count, + Queue_index_read_count, Io_file_handle_open_attempt_count, + Io_file_handle_open_attempt_avg_time}). +-define(node_node_stats(Send_bytes, Recv_bytes), {Send_bytes, Recv_bytes}). +-define(node_node_coarse_stats(Send_bytes, Recv_bytes), {Send_bytes, Recv_bytes}). +-define(queue_msg_rates(Disk_reads, Disk_writes), {Disk_reads, Disk_writes}). +-define(vhost_msg_rates(Disk_reads, Disk_writes), {Disk_reads, Disk_writes}). +-define(old_aggr_stats(Id, Stats), {Id, Stats}). + + +-define(stats_per_table(Table), + case Table of + connection_stats_coarse_conn_stats -> + [recv_oct, send_oct, reductions]; + vhost_stats_coarse_conn_stats -> + [recv_oct, send_oct]; + T when T =:= channel_stats_fine_stats; + T =:= channel_exchange_stats_fine_stats; + T =:= vhost_stats_fine_stats -> + [publish, confirm, return_unroutable]; + T when T =:= channel_queue_stats_deliver_stats; + T =:= queue_stats_deliver_stats; + T =:= vhost_stats_deliver_stats; + T =:= channel_stats_deliver_stats -> + [get, get_no_ack, deliver, deliver_no_ack, redeliver, ack, deliver_get]; + T when T =:= channel_process_stats; + T =:= queue_process_stats -> + [reductions]; + T when T =:= queue_stats_publish; + T =:= queue_exchange_stats_publish -> + [publish]; + exchange_stats_publish_out -> + [publish_out]; + exchange_stats_publish_in -> + [publish_in]; + T when T =:= queue_msg_stats; + T =:= vhost_msg_stats -> + [messages_ready, messages_unacknowledged, messages]; + node_coarse_stats -> + [fd_used, sockets_used, mem_used, disk_free, proc_used, gc_num, + gc_bytes_reclaimed, context_switches]; + node_persister_stats -> + [io_read_count, io_read_bytes, io_read_avg_time, io_write_count, + io_write_bytes, io_write_avg_time, io_sync_count, io_sync_avg_time, + io_seek_count, io_seek_avg_time, io_reopen_count, mnesia_ram_tx_count, + mnesia_disk_tx_count, msg_store_read_count, msg_store_write_count, + queue_index_journal_write_count, queue_index_write_count, + queue_index_read_count, io_file_handle_open_attempt_count, + io_file_handle_open_attempt_avg_time]; + node_node_coarse_stats -> + [send_bytes, recv_bytes]; + T when T =:= queue_msg_rates; + T =:= vhost_msg_rates -> + [disk_reads, disk_writes] + end). +%%------------------------------------------------------------------------------ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_records.hrl b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_records.hrl new file mode 100644 index 0000000..9a19508 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_management_agent-3.6.9/include/rabbit_mgmt_records.hrl @@ -0,0 +1,25 @@ +%% The contents of this file are subject to the Mozilla Public License +%% Version 1.1 (the "License"); you may not use this file except in +%% compliance with the License. You may obtain a copy of the License at +%% http://www.mozilla.org/MPL/ +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +%% License for the specific language governing rights and limitations +%% under the License. +%% +%% The Original Code is RabbitMQ Management Console. +%% +%% The Initial Developer of the Original Code is GoPivotal, Inc. +%% Copyright (c) 2007-2016 Pivotal Software, Inc. All rights reserved. +%% + +-record(context, {user, + password = none, + impl}). % storage for a context of the resource handler + +-record(range, {first :: integer(), + last :: integer(), + incr :: integer()}). + + diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_middleware.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_middleware.beam new file mode 100644 index 0000000..aa10e98 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_middleware.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_redirect.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_redirect.beam new file mode 100644 index 0000000..c359c39 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_cowboy_redirect.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch.beam new file mode 100644 index 0000000..5d203da Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_app.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_app.beam new file mode 100644 index 0000000..b6e3ed5 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_app.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_listing_handler.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_listing_handler.beam new file mode 100644 index 0000000..870cb13 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_listing_handler.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_registry.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_registry.beam new file mode 100644 index 0000000..fc3157e Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_registry.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_sup.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_sup.beam new file mode 100644 index 0000000..b136689 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_sup.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_util.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_util.beam new file mode 100644 index 0000000..0d3e4b8 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbit_web_dispatch_util.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbitmq_web_dispatch.app b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbitmq_web_dispatch.app new file mode 100644 index 0000000..8b3d05c --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/rabbitmq_web_dispatch.app @@ -0,0 +1,10 @@ +{application, rabbitmq_web_dispatch, [ + {description, "RabbitMQ Web Dispatcher"}, + {vsn, "3.6.9"}, + {id, ""}, + {modules, ['rabbit_cowboy_middleware','rabbit_cowboy_redirect','rabbit_web_dispatch','rabbit_web_dispatch_app','rabbit_web_dispatch_listing_handler','rabbit_web_dispatch_registry','rabbit_web_dispatch_sup','rabbit_web_dispatch_util','webmachine_log','webmachine_log_handler']}, + {registered, [rabbitmq_web_dispatch_sup]}, + {applications, [kernel,stdlib,inets,rabbit_common,rabbit,cowboy]}, + {mod, {rabbit_web_dispatch_app, []}}, + {env, []} +]}. \ No newline at end of file diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log.beam new file mode 100644 index 0000000..d44c7d4 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log_handler.beam b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log_handler.beam new file mode 100644 index 0000000..472401e Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand/rabbitmq_web_dispatch-3.6.9/ebin/webmachine_log_handler.beam differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid new file mode 100644 index 0000000..a6da08e --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid @@ -0,0 +1 @@ +44408 diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/DECISION_TAB.LOG b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/DECISION_TAB.LOG new file mode 100644 index 0000000..ac04c32 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/DECISION_TAB.LOG differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/LATEST.LOG b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/LATEST.LOG new file mode 100644 index 0000000..2bdb6cb Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/LATEST.LOG differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/cluster_nodes.config b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/cluster_nodes.config new file mode 100644 index 0000000..958e005 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/cluster_nodes.config @@ -0,0 +1 @@ +{[rabbit@localhost],[rabbit@localhost]}. diff --git a/electron/app/api/.gitkeep b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_store_persistent/0.rdq similarity index 100% rename from electron/app/api/.gitkeep rename to server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_store_persistent/0.rdq diff --git a/electron/app/utils/.gitkeep b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_store_transient/0.rdq similarity index 100% rename from electron/app/utils/.gitkeep rename to server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_store_transient/0.rdq diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/nodes_running_at_shutdown b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/nodes_running_at_shutdown new file mode 100644 index 0000000..f75469a --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/nodes_running_at_shutdown @@ -0,0 +1 @@ +[rabbit@localhost]. diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_exchange.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_exchange.DCD new file mode 100644 index 0000000..5445545 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_exchange.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCD new file mode 100644 index 0000000..221e323 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCL b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCL new file mode 100644 index 0000000..fa92fd2 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_queue.DCL differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_route.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_route.DCD new file mode 100644 index 0000000..9953a76 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_durable_route.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_runtime_parameters.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_runtime_parameters.DCD new file mode 100644 index 0000000..8c355fe Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_runtime_parameters.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_serial b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_serial new file mode 100644 index 0000000..226113b --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_serial @@ -0,0 +1 @@ +60. diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user.DCD new file mode 100644 index 0000000..a329214 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user_permission.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user_permission.DCD new file mode 100644 index 0000000..194b0e7 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_user_permission.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_vhost.DCD b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_vhost.DCD new file mode 100644 index 0000000..907f858 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/rabbit_vhost.DCD differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/recovery.dets b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/recovery.dets new file mode 100644 index 0000000..c1ae47e Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/recovery.dets differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema.DAT b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema.DAT new file mode 100644 index 0000000..bd2fda8 Binary files /dev/null and b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema.DAT differ diff --git a/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema_version b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema_version new file mode 100644 index 0000000..86aa812 --- /dev/null +++ b/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost/schema_version @@ -0,0 +1 @@ +[add_opts_to_listener,cluster_name,exchange_event_serial,gm,internal_system_x,mirrored_supervisor,policy_apply_to,policy_version,remove_user_scope,semi_durable_route,topic_trie,topic_trie_node,user_admin_to_tags,user_password_hashing,multiple_routing_keys,persistent_bytes,store_msg]. diff --git a/test/run-cloud.test.ts b/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log similarity index 100% rename from test/run-cloud.test.ts rename to server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log diff --git a/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log b/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log new file mode 100644 index 0000000..9abfa70 --- /dev/null +++ b/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log @@ -0,0 +1,14284 @@ + +=INFO REPORT==== 3-May-2017::15:02:34 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 3-May-2017::15:02:34 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 3-May-2017::15:02:37 === +Memory limit set to 6497MB of 16243MB total. + +=INFO REPORT==== 3-May-2017::15:02:37 === +Disk free limit set to 50MB + +=INFO REPORT==== 3-May-2017::15:02:37 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 3-May-2017::15:02:37 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 3-May-2017::15:02:37 === +Database directory at /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost is empty. Initialising from scratch... + +=INFO REPORT==== 3-May-2017::15:02:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 3-May-2017::15:02:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 3-May-2017::15:02:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 3-May-2017::15:02:37 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 3-May-2017::15:02:37 === +Starting rabbit_node_monitor + +=INFO REPORT==== 3-May-2017::15:02:37 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 3-May-2017::15:02:37 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 3-May-2017::15:02:37 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 3-May-2017::15:02:37 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 3-May-2017::15:02:37 === +Adding vhost '/' + +=INFO REPORT==== 3-May-2017::15:02:37 === +Creating user 'guest' + +=INFO REPORT==== 3-May-2017::15:02:37 === +Setting user tags for user 'guest' to [administrator] + +=INFO REPORT==== 3-May-2017::15:02:37 === +Setting permissions for 'guest' in '/' to '.*', '.*', '.*' + +=INFO REPORT==== 3-May-2017::15:02:37 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 3-May-2017::15:02:37 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 3-May-2017::15:02:37 === +Statistics database started. + +=INFO REPORT==== 3-May-2017::15:02:37 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 3-May-2017::22:29:26 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 3-May-2017::22:29:26 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 3-May-2017::22:29:30 === +Memory limit set to 6450MB of 16127MB total. + +=INFO REPORT==== 3-May-2017::22:29:30 === +Disk free limit set to 50MB + +=INFO REPORT==== 3-May-2017::22:29:30 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 3-May-2017::22:29:30 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 3-May-2017::22:29:30 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 3-May-2017::22:29:30 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 3-May-2017::22:29:30 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 3-May-2017::22:29:30 === +Starting rabbit_node_monitor + +=INFO REPORT==== 3-May-2017::22:29:30 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 3-May-2017::22:29:30 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 3-May-2017::22:29:30 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 3-May-2017::22:29:30 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 3-May-2017::22:29:30 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 3-May-2017::22:29:30 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 3-May-2017::22:29:30 === +Statistics database started. + +=INFO REPORT==== 3-May-2017::22:29:30 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 3-May-2017::22:32:40 === +accepting AMQP connection <0.521.0> (127.0.0.1:62917 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:32:41 === +connection <0.521.0> (127.0.0.1:62917 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 3-May-2017::22:32:42 === +accepting AMQP connection <0.539.0> (127.0.0.1:62934 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:32:42 === +connection <0.539.0> (127.0.0.1:62934 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 3-May-2017::22:32:45 === +accepting AMQP connection <0.547.0> (127.0.0.1:62945 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:32:45 === +connection <0.547.0> (127.0.0.1:62945 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 3-May-2017::22:33:01 === +closing AMQP connection <0.547.0> (127.0.0.1:62945 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 3-May-2017::22:33:01 === +closing AMQP connection <0.521.0> (127.0.0.1:62917 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 3-May-2017::22:33:05 === +accepting AMQP connection <0.563.0> (127.0.0.1:63062 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:33:05 === +connection <0.563.0> (127.0.0.1:63062 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 3-May-2017::22:33:09 === +accepting AMQP connection <0.575.0> (127.0.0.1:63107 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:33:09 === +connection <0.575.0> (127.0.0.1:63107 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 3-May-2017::22:34:26 === +closing AMQP connection <0.539.0> (127.0.0.1:62934 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 3-May-2017::22:34:32 === +accepting AMQP connection <0.608.0> (127.0.0.1:63472 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:34:32 === +connection <0.608.0> (127.0.0.1:63472 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 3-May-2017::22:34:56 === +accepting AMQP connection <0.622.0> (127.0.0.1:63601 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::22:34:56 === +connection <0.622.0> (127.0.0.1:63601 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 3-May-2017::23:54:27 === +closing AMQP connection <0.622.0> (127.0.0.1:63601 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 3-May-2017::23:55:51 === +accepting AMQP connection <0.2139.0> (127.0.0.1:51796 -> 127.0.0.1:4000) + +=INFO REPORT==== 3-May-2017::23:55:51 === +connection <0.2139.0> (127.0.0.1:51796 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-May-2017::00:02:34 === +closing AMQP connection <0.608.0> (127.0.0.1:63472 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 4-May-2017::00:02:35 === +closing AMQP connection <0.2139.0> (127.0.0.1:51796 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 4-May-2017::00:02:35 === +closing AMQP connection <0.575.0> (127.0.0.1:63107 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 4-May-2017::00:02:35 === +closing AMQP connection <0.563.0> (127.0.0.1:63062 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-May-2017::20:20:38 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 4-May-2017::20:20:38 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 4-May-2017::20:20:41 === +Memory limit set to 6328MB of 15820MB total. + +=INFO REPORT==== 4-May-2017::20:20:41 === +Disk free limit set to 50MB + +=INFO REPORT==== 4-May-2017::20:20:41 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 4-May-2017::20:20:41 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 4-May-2017::20:20:41 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 4-May-2017::20:20:41 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 4-May-2017::20:20:41 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 4-May-2017::20:20:41 === +Starting rabbit_node_monitor + +=INFO REPORT==== 4-May-2017::20:20:41 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 4-May-2017::20:20:41 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 4-May-2017::20:20:41 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 4-May-2017::20:20:41 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 4-May-2017::20:20:41 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 4-May-2017::20:20:42 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 4-May-2017::20:20:42 === +Statistics database started. + +=INFO REPORT==== 4-May-2017::20:20:42 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 4-May-2017::20:22:04 === +accepting AMQP connection <0.480.0> (127.0.0.1:61125 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:22:04 === +connection <0.480.0> (127.0.0.1:61125 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 4-May-2017::20:22:07 === +accepting AMQP connection <0.492.0> (127.0.0.1:61142 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:22:07 === +connection <0.492.0> (127.0.0.1:61142 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 4-May-2017::20:22:09 === +accepting AMQP connection <0.500.0> (127.0.0.1:61155 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:22:09 === +connection <0.500.0> (127.0.0.1:61155 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-May-2017::20:22:23 === +closing AMQP connection <0.500.0> (127.0.0.1:61155 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 4-May-2017::20:22:23 === +closing AMQP connection <0.480.0> (127.0.0.1:61125 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-May-2017::20:22:26 === +accepting AMQP connection <0.516.0> (127.0.0.1:61229 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:22:26 === +connection <0.516.0> (127.0.0.1:61229 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 4-May-2017::20:22:31 === +accepting AMQP connection <0.528.0> (127.0.0.1:61257 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:22:31 === +connection <0.528.0> (127.0.0.1:61257 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-May-2017::20:23:32 === +closing AMQP connection <0.492.0> (127.0.0.1:61142 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-May-2017::20:23:38 === +accepting AMQP connection <0.563.0> (127.0.0.1:61578 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:23:38 === +connection <0.563.0> (127.0.0.1:61578 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 4-May-2017::20:23:53 === +accepting AMQP connection <0.575.0> (127.0.0.1:61669 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::20:23:53 === +connection <0.575.0> (127.0.0.1:61669 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-May-2017::21:35:04 === +closing AMQP connection <0.575.0> (127.0.0.1:61669 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-May-2017::21:36:51 === +accepting AMQP connection <0.1933.0> (127.0.0.1:56453 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-May-2017::21:36:51 === +connection <0.1933.0> (127.0.0.1:56453 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-May-2017::10:12:58 === +closing AMQP connection <0.1933.0> (127.0.0.1:56453 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-May-2017::10:14:38 === +accepting AMQP connection <0.15984.0> (127.0.0.1:52437 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-May-2017::10:14:38 === +connection <0.15984.0> (127.0.0.1:52437 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-May-2017::11:33:36 === +closing AMQP connection <0.15984.0> (127.0.0.1:52437 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-May-2017::11:35:22 === +accepting AMQP connection <0.17487.0> (127.0.0.1:53972 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-May-2017::11:35:22 === +connection <0.17487.0> (127.0.0.1:53972 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-May-2017::23:42:54 === +closing AMQP connection <0.17487.0> (127.0.0.1:53972 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-May-2017::23:44:30 === +accepting AMQP connection <0.31208.0> (127.0.0.1:51364 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-May-2017::23:44:30 === +connection <0.31208.0> (127.0.0.1:51364 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-May-2017::10:19:59 === +closing AMQP connection <0.31208.0> (127.0.0.1:51364 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-May-2017::10:21:35 === +accepting AMQP connection <0.10899.1> (127.0.0.1:62312 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-May-2017::10:21:35 === +connection <0.10899.1> (127.0.0.1:62312 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-May-2017::19:35:05 === +closing AMQP connection <0.10899.1> (127.0.0.1:62312 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-May-2017::19:36:42 === +accepting AMQP connection <0.21752.1> (127.0.0.1:59145 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-May-2017::19:36:42 === +connection <0.21752.1> (127.0.0.1:59145 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 7-May-2017::09:27:42 === +closing AMQP connection <0.21752.1> (127.0.0.1:59145 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 7-May-2017::09:29:22 === +accepting AMQP connection <0.5263.2> (127.0.0.1:58751 -> 127.0.0.1:4000) + +=INFO REPORT==== 7-May-2017::09:29:22 === +connection <0.5263.2> (127.0.0.1:58751 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 7-May-2017::13:57:09 === +closing AMQP connection <0.563.0> (127.0.0.1:61578 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 7-May-2017::13:57:10 === +closing AMQP connection <0.5263.2> (127.0.0.1:58751 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 7-May-2017::13:57:10 === +closing AMQP connection <0.516.0> (127.0.0.1:61229 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 7-May-2017::13:57:10 === +closing AMQP connection <0.528.0> (127.0.0.1:61257 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::15:43:46 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 8-May-2017::15:43:46 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 8-May-2017::15:43:49 === +Memory limit set to 6000MB of 15000MB total. + +=INFO REPORT==== 8-May-2017::15:43:49 === +Disk free limit set to 50MB + +=INFO REPORT==== 8-May-2017::15:43:49 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 8-May-2017::15:43:49 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 8-May-2017::15:43:49 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-May-2017::15:43:49 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-May-2017::15:43:49 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 8-May-2017::15:43:49 === +Starting rabbit_node_monitor + +=INFO REPORT==== 8-May-2017::15:43:49 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 8-May-2017::15:43:49 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 8-May-2017::15:43:49 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 8-May-2017::15:43:49 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 8-May-2017::15:43:49 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 8-May-2017::15:43:49 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 8-May-2017::15:43:49 === +Statistics database started. + +=INFO REPORT==== 8-May-2017::15:43:49 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 8-May-2017::15:45:17 === +accepting AMQP connection <0.473.0> (127.0.0.1:52278 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:45:17 === +connection <0.473.0> (127.0.0.1:52278 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 8-May-2017::15:45:20 === +accepting AMQP connection <0.486.0> (127.0.0.1:52292 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:45:20 === +connection <0.486.0> (127.0.0.1:52292 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 8-May-2017::15:45:22 === +accepting AMQP connection <0.494.0> (127.0.0.1:52303 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:45:22 === +connection <0.494.0> (127.0.0.1:52303 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::15:45:36 === +closing AMQP connection <0.494.0> (127.0.0.1:52303 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 8-May-2017::15:45:36 === +closing AMQP connection <0.473.0> (127.0.0.1:52278 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::15:45:39 === +accepting AMQP connection <0.509.0> (127.0.0.1:52371 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:45:39 === +connection <0.509.0> (127.0.0.1:52371 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 8-May-2017::15:45:44 === +accepting AMQP connection <0.522.0> (127.0.0.1:52392 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:45:44 === +connection <0.522.0> (127.0.0.1:52392 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::15:46:49 === +closing AMQP connection <0.486.0> (127.0.0.1:52292 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::15:46:55 === +accepting AMQP connection <0.558.0> (127.0.0.1:52749 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::15:46:55 === +connection <0.558.0> (127.0.0.1:52749 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 8-May-2017::16:18:48 === +accepting AMQP connection <0.1154.0> (127.0.0.1:62511 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::16:18:48 === +connection <0.1154.0> (127.0.0.1:62511 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::17:08:58 === +closing AMQP connection <0.1154.0> (127.0.0.1:62511 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::17:09:18 === +accepting AMQP connection <0.2235.0> (127.0.0.1:63828 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::17:09:18 === +connection <0.2235.0> (127.0.0.1:63828 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::17:11:31 === +closing AMQP connection <0.2235.0> (127.0.0.1:63828 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::17:11:50 === +accepting AMQP connection <0.2290.0> (127.0.0.1:64370 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::17:11:50 === +connection <0.2290.0> (127.0.0.1:64370 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::17:13:05 === +closing AMQP connection <0.2290.0> (127.0.0.1:64370 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-May-2017::17:14:53 === +accepting AMQP connection <0.2353.0> (127.0.0.1:64699 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-May-2017::17:14:53 === +connection <0.2353.0> (127.0.0.1:64699 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-May-2017::17:15:07 === +closing AMQP connection <0.2353.0> (127.0.0.1:64699 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 9-May-2017::11:30:51 === +closing AMQP connection <0.558.0> (127.0.0.1:52749 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 9-May-2017::11:30:52 === +closing AMQP connection <0.522.0> (127.0.0.1:52392 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 9-May-2017::11:30:52 === +closing AMQP connection <0.509.0> (127.0.0.1:52371 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:12:16 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 11-May-2017::23:12:16 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 11-May-2017::23:12:21 === +Memory limit set to 5735MB of 14338MB total. + +=INFO REPORT==== 11-May-2017::23:12:21 === +Disk free limit set to 50MB + +=INFO REPORT==== 11-May-2017::23:12:21 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 11-May-2017::23:12:21 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 11-May-2017::23:12:21 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 11-May-2017::23:12:21 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 11-May-2017::23:12:21 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 11-May-2017::23:12:21 === +Starting rabbit_node_monitor + +=INFO REPORT==== 11-May-2017::23:12:21 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 11-May-2017::23:12:21 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 11-May-2017::23:12:21 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 11-May-2017::23:12:21 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 11-May-2017::23:12:21 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 11-May-2017::23:12:21 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 11-May-2017::23:12:21 === +Statistics database started. + +=INFO REPORT==== 11-May-2017::23:12:21 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 11-May-2017::23:14:36 === +accepting AMQP connection <0.488.0> (127.0.0.1:49630 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:14:36 === +connection <0.488.0> (127.0.0.1:49630 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:14:37 === +accepting AMQP connection <0.500.0> (127.0.0.1:49637 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:14:37 === +connection <0.500.0> (127.0.0.1:49637 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:14:40 === +accepting AMQP connection <0.508.0> (127.0.0.1:49638 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:14:40 === +connection <0.508.0> (127.0.0.1:49638 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:15:02 === +closing AMQP connection <0.508.0> (127.0.0.1:49638 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:15:02 === +closing AMQP connection <0.488.0> (127.0.0.1:49630 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:15:06 === +accepting AMQP connection <0.527.0> (127.0.0.1:49652 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:15:06 === +connection <0.527.0> (127.0.0.1:49652 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:15:11 === +accepting AMQP connection <0.538.0> (127.0.0.1:49668 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:15:11 === +connection <0.538.0> (127.0.0.1:49668 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:16:50 === +closing AMQP connection <0.500.0> (127.0.0.1:49637 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:17:02 === +accepting AMQP connection <0.587.0> (127.0.0.1:49753 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:17:02 === +connection <0.587.0> (127.0.0.1:49753 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:17:41 === +closing AMQP connection <0.587.0> (127.0.0.1:49753 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:17:47 === +accepting AMQP connection <0.607.0> (127.0.0.1:49774 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:17:47 === +connection <0.607.0> (127.0.0.1:49774 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:20:28 === +accepting AMQP connection <0.664.0> (127.0.0.1:49980 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:20:28 === +connection <0.664.0> (127.0.0.1:49980 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:24:43 === +closing AMQP connection <0.538.0> (127.0.0.1:49668 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:24:43 === +closing AMQP connection <0.527.0> (127.0.0.1:49652 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:35:20 === +accepting AMQP connection <0.948.0> (127.0.0.1:51209 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:35:20 === +connection <0.948.0> (127.0.0.1:51209 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:35:25 === +accepting AMQP connection <0.961.0> (127.0.0.1:51218 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:35:25 === +connection <0.961.0> (127.0.0.1:51218 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:36:19 === +closing AMQP connection <0.664.0> (127.0.0.1:49980 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:36:25 === +closing AMQP connection <0.607.0> (127.0.0.1:49774 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:36:35 === +accepting AMQP connection <0.991.0> (127.0.0.1:51652 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:36:35 === +connection <0.991.0> (127.0.0.1:51652 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:37:17 === +accepting AMQP connection <0.1010.0> (127.0.0.1:52047 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:37:17 === +connection <0.1010.0> (127.0.0.1:52047 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:37:39 === +closing AMQP connection <0.1010.0> (127.0.0.1:52047 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:37:44 === +closing AMQP connection <0.991.0> (127.0.0.1:51652 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:37:50 === +accepting AMQP connection <0.1026.0> (127.0.0.1:52856 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:37:50 === +connection <0.1026.0> (127.0.0.1:52856 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:38:05 === +accepting AMQP connection <0.1038.0> (127.0.0.1:52920 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:38:05 === +connection <0.1038.0> (127.0.0.1:52920 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:45:05 === +closing AMQP connection <0.961.0> (127.0.0.1:51218 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:45:05 === +closing AMQP connection <0.948.0> (127.0.0.1:51209 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:45:24 === +accepting AMQP connection <0.1187.0> (127.0.0.1:56022 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:45:24 === +connection <0.1187.0> (127.0.0.1:56022 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:45:28 === +accepting AMQP connection <0.1199.0> (127.0.0.1:56052 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:45:28 === +connection <0.1199.0> (127.0.0.1:56052 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:46:32 === +closing AMQP connection <0.1199.0> (127.0.0.1:56052 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:46:32 === +closing AMQP connection <0.1187.0> (127.0.0.1:56022 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:46:54 === +accepting AMQP connection <0.1234.0> (127.0.0.1:56481 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:46:54 === +connection <0.1234.0> (127.0.0.1:56481 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:46:58 === +accepting AMQP connection <0.1247.0> (127.0.0.1:56505 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:46:58 === +connection <0.1247.0> (127.0.0.1:56505 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:49:41 === +closing AMQP connection <0.1247.0> (127.0.0.1:56505 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:49:41 === +closing AMQP connection <0.1234.0> (127.0.0.1:56481 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:49:42 === +accepting AMQP connection <0.1306.0> (127.0.0.1:57346 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:49:43 === +connection <0.1306.0> (127.0.0.1:57346 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:49:47 === +accepting AMQP connection <0.1319.0> (127.0.0.1:57372 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:49:47 === +connection <0.1319.0> (127.0.0.1:57372 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:53:01 === +closing AMQP connection <0.1319.0> (127.0.0.1:57372 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:53:01 === +closing AMQP connection <0.1306.0> (127.0.0.1:57346 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:53:18 === +accepting AMQP connection <0.1393.0> (127.0.0.1:58490 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:53:18 === +connection <0.1393.0> (127.0.0.1:58490 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:53:22 === +accepting AMQP connection <0.1405.0> (127.0.0.1:58512 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:53:22 === +connection <0.1405.0> (127.0.0.1:58512 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:53:50 === +closing AMQP connection <0.1405.0> (127.0.0.1:58512 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:53:50 === +closing AMQP connection <0.1393.0> (127.0.0.1:58490 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:53:51 === +accepting AMQP connection <0.1423.0> (127.0.0.1:58631 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:53:52 === +connection <0.1423.0> (127.0.0.1:58631 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:53:56 === +accepting AMQP connection <0.1434.0> (127.0.0.1:58647 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:53:56 === +connection <0.1434.0> (127.0.0.1:58647 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 11-May-2017::23:54:07 === +closing AMQP connection <0.1434.0> (127.0.0.1:58647 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 11-May-2017::23:54:07 === +closing AMQP connection <0.1423.0> (127.0.0.1:58631 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 11-May-2017::23:54:08 === +accepting AMQP connection <0.1448.0> (127.0.0.1:58683 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:54:08 === +connection <0.1448.0> (127.0.0.1:58683 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 11-May-2017::23:54:12 === +accepting AMQP connection <0.1460.0> (127.0.0.1:58699 -> 127.0.0.1:4000) + +=INFO REPORT==== 11-May-2017::23:54:12 === +connection <0.1460.0> (127.0.0.1:58699 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:03:08 === +closing AMQP connection <0.1460.0> (127.0.0.1:58699 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:03:08 === +closing AMQP connection <0.1448.0> (127.0.0.1:58683 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:03:10 === +accepting AMQP connection <0.1731.0> (127.0.0.1:62006 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:03:10 === +connection <0.1731.0> (127.0.0.1:62006 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:03:15 === +accepting AMQP connection <0.1743.0> (127.0.0.1:62031 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:03:15 === +connection <0.1743.0> (127.0.0.1:62031 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:04:08 === +closing AMQP connection <0.1743.0> (127.0.0.1:62031 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:04:08 === +closing AMQP connection <0.1731.0> (127.0.0.1:62006 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:04:11 === +accepting AMQP connection <0.1770.0> (127.0.0.1:62331 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:04:11 === +connection <0.1770.0> (127.0.0.1:62331 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:04:15 === +accepting AMQP connection <0.1782.0> (127.0.0.1:62425 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:04:15 === +connection <0.1782.0> (127.0.0.1:62425 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:04:20 === +closing AMQP connection <0.1782.0> (127.0.0.1:62425 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:04:20 === +closing AMQP connection <0.1770.0> (127.0.0.1:62331 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:04:22 === +accepting AMQP connection <0.1794.0> (127.0.0.1:62824 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:04:22 === +connection <0.1794.0> (127.0.0.1:62824 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:04:26 === +accepting AMQP connection <0.1806.0> (127.0.0.1:62855 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:04:26 === +connection <0.1806.0> (127.0.0.1:62855 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:14:54 === +closing AMQP connection <0.1038.0> (127.0.0.1:52920 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:16:05 === +accepting AMQP connection <0.2078.0> (127.0.0.1:53767 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:16:05 === +connection <0.2078.0> (127.0.0.1:53767 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:23:59 === +closing AMQP connection <0.2078.0> (127.0.0.1:53767 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:24:15 === +accepting AMQP connection <0.2235.0> (127.0.0.1:58775 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:24:15 === +connection <0.2235.0> (127.0.0.1:58775 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:31:35 === +closing AMQP connection <0.2235.0> (127.0.0.1:58775 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:31:52 === +accepting AMQP connection <0.2390.0> (127.0.0.1:65033 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:31:52 === +connection <0.2390.0> (127.0.0.1:65033 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:32:31 === +closing AMQP connection <0.2390.0> (127.0.0.1:65033 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:32:49 === +accepting AMQP connection <0.2414.0> (127.0.0.1:49295 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:32:49 === +connection <0.2414.0> (127.0.0.1:49295 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:35:20 === +closing AMQP connection <0.2414.0> (127.0.0.1:49295 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:35:37 === +accepting AMQP connection <0.2473.0> (127.0.0.1:50106 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:35:37 === +connection <0.2473.0> (127.0.0.1:50106 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:42:48 === +closing AMQP connection <0.2473.0> (127.0.0.1:50106 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:43:05 === +accepting AMQP connection <0.2620.0> (127.0.0.1:52423 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:43:05 === +connection <0.2620.0> (127.0.0.1:52423 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:46:53 === +closing AMQP connection <0.2620.0> (127.0.0.1:52423 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:47:13 === +accepting AMQP connection <0.2703.0> (127.0.0.1:53742 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:47:13 === +connection <0.2703.0> (127.0.0.1:53742 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:48:16 === +closing AMQP connection <0.2703.0> (127.0.0.1:53742 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:48:36 === +accepting AMQP connection <0.2736.0> (127.0.0.1:54350 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:48:36 === +connection <0.2736.0> (127.0.0.1:54350 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:49:17 === +closing AMQP connection <0.2736.0> (127.0.0.1:54350 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:49:26 === +closing AMQP connection <0.1026.0> (127.0.0.1:52856 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:49:26 === +closing AMQP connection <0.1806.0> (127.0.0.1:62855 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:49:26 === +closing AMQP connection <0.1794.0> (127.0.0.1:62824 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:49:39 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 12-May-2017::00:49:39 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 12-May-2017::00:49:43 === +Memory limit set to 6206MB of 15517MB total. + +=INFO REPORT==== 12-May-2017::00:49:43 === +Disk free limit set to 50MB + +=INFO REPORT==== 12-May-2017::00:49:43 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 12-May-2017::00:49:43 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 12-May-2017::00:49:43 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 12-May-2017::00:49:43 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 12-May-2017::00:49:43 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 12-May-2017::00:49:43 === +Starting rabbit_node_monitor + +=INFO REPORT==== 12-May-2017::00:49:43 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 12-May-2017::00:49:43 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 12-May-2017::00:49:43 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 12-May-2017::00:49:43 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 12-May-2017::00:49:43 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 12-May-2017::00:49:43 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 12-May-2017::00:49:43 === +Statistics database started. + +=INFO REPORT==== 12-May-2017::00:49:43 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 12-May-2017::00:50:53 === +accepting AMQP connection <0.467.0> (127.0.0.1:55444 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:50:53 === +connection <0.467.0> (127.0.0.1:55444 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:50:55 === +accepting AMQP connection <0.481.0> (127.0.0.1:55458 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:50:55 === +connection <0.481.0> (127.0.0.1:55458 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:50:56 === +accepting AMQP connection <0.488.0> (127.0.0.1:55459 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:50:56 === +connection <0.488.0> (127.0.0.1:55459 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:51:15 === +closing AMQP connection <0.488.0> (127.0.0.1:55459 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::00:51:15 === +closing AMQP connection <0.467.0> (127.0.0.1:55444 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:51:18 === +accepting AMQP connection <0.505.0> (127.0.0.1:55568 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:51:18 === +connection <0.505.0> (127.0.0.1:55568 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:51:22 === +accepting AMQP connection <0.517.0> (127.0.0.1:55589 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:51:22 === +connection <0.517.0> (127.0.0.1:55589 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:52:16 === +closing AMQP connection <0.481.0> (127.0.0.1:55458 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:52:52 === +accepting AMQP connection <0.558.0> (127.0.0.1:55978 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:52:52 === +connection <0.558.0> (127.0.0.1:55978 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::00:53:06 === +accepting AMQP connection <0.574.0> (127.0.0.1:56052 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:53:06 === +connection <0.574.0> (127.0.0.1:56052 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::00:58:40 === +closing AMQP connection <0.574.0> (127.0.0.1:56052 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::00:59:23 === +accepting AMQP connection <0.696.0> (127.0.0.1:58562 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::00:59:23 === +connection <0.696.0> (127.0.0.1:58562 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:02:57 === +closing AMQP connection <0.696.0> (127.0.0.1:58562 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:03:28 === +accepting AMQP connection <0.779.0> (127.0.0.1:59771 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:03:28 === +connection <0.779.0> (127.0.0.1:59771 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:06:04 === +closing AMQP connection <0.779.0> (127.0.0.1:59771 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:06:26 === +accepting AMQP connection <0.842.0> (127.0.0.1:62651 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:06:26 === +connection <0.842.0> (127.0.0.1:62651 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:11:12 === +closing AMQP connection <0.842.0> (127.0.0.1:62651 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::01:11:18 === +closing AMQP connection <0.558.0> (127.0.0.1:55978 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:11:24 === +accepting AMQP connection <0.942.0> (127.0.0.1:49611 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:11:24 === +connection <0.942.0> (127.0.0.1:49611 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::01:11:42 === +accepting AMQP connection <0.955.0> (127.0.0.1:49716 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:11:42 === +connection <0.955.0> (127.0.0.1:49716 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:25:00 === +closing AMQP connection <0.955.0> (127.0.0.1:49716 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:25:28 === +accepting AMQP connection <0.1222.0> (127.0.0.1:55931 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:25:28 === +connection <0.1222.0> (127.0.0.1:55931 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:27:40 === +closing AMQP connection <0.1222.0> (127.0.0.1:55931 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:28:22 === +accepting AMQP connection <0.1283.0> (127.0.0.1:57010 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:28:22 === +connection <0.1283.0> (127.0.0.1:57010 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:30:58 === +closing AMQP connection <0.1283.0> (127.0.0.1:57010 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:31:19 === +accepting AMQP connection <0.1344.0> (127.0.0.1:58170 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:31:19 === +connection <0.1344.0> (127.0.0.1:58170 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:34:37 === +closing AMQP connection <0.1344.0> (127.0.0.1:58170 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:35:03 === +accepting AMQP connection <0.1421.0> (127.0.0.1:59485 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:35:03 === +connection <0.1421.0> (127.0.0.1:59485 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:38:07 === +closing AMQP connection <0.1421.0> (127.0.0.1:59485 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:38:23 === +accepting AMQP connection <0.1490.0> (127.0.0.1:60811 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:38:23 === +connection <0.1490.0> (127.0.0.1:60811 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:41:51 === +closing AMQP connection <0.1490.0> (127.0.0.1:60811 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:42:09 === +accepting AMQP connection <0.1566.0> (127.0.0.1:62448 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:42:09 === +connection <0.1566.0> (127.0.0.1:62448 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:45:13 === +closing AMQP connection <0.1566.0> (127.0.0.1:62448 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:45:38 === +accepting AMQP connection <0.1637.0> (127.0.0.1:63408 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:45:38 === +connection <0.1637.0> (127.0.0.1:63408 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:54:37 === +closing AMQP connection <0.1637.0> (127.0.0.1:63408 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:54:54 === +accepting AMQP connection <0.1816.0> (127.0.0.1:51371 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:54:54 === +connection <0.1816.0> (127.0.0.1:51371 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::01:59:41 === +closing AMQP connection <0.1816.0> (127.0.0.1:51371 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::01:59:57 === +accepting AMQP connection <0.1918.0> (127.0.0.1:53855 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::01:59:57 === +connection <0.1918.0> (127.0.0.1:53855 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:00:41 === +closing AMQP connection <0.1918.0> (127.0.0.1:53855 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:02:16 === +closing AMQP connection <0.942.0> (127.0.0.1:49611 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:02:16 === +closing AMQP connection <0.517.0> (127.0.0.1:55589 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:02:16 === +closing AMQP connection <0.505.0> (127.0.0.1:55568 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:24:24 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 12-May-2017::02:24:24 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 12-May-2017::02:24:28 === +Memory limit set to 5968MB of 14921MB total. + +=INFO REPORT==== 12-May-2017::02:24:28 === +Disk free limit set to 50MB + +=INFO REPORT==== 12-May-2017::02:24:28 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 12-May-2017::02:24:28 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 12-May-2017::02:24:28 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 12-May-2017::02:24:28 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 12-May-2017::02:24:28 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 12-May-2017::02:24:28 === +Starting rabbit_node_monitor + +=INFO REPORT==== 12-May-2017::02:24:28 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 12-May-2017::02:24:28 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 12-May-2017::02:24:28 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 12-May-2017::02:24:28 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 12-May-2017::02:24:28 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 12-May-2017::02:24:28 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 12-May-2017::02:24:28 === +Statistics database started. + +=INFO REPORT==== 12-May-2017::02:24:28 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 12-May-2017::02:25:51 === +accepting AMQP connection <0.472.0> (127.0.0.1:60631 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:25:51 === +connection <0.472.0> (127.0.0.1:60631 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:25:52 === +accepting AMQP connection <0.484.0> (127.0.0.1:60640 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:25:52 === +connection <0.484.0> (127.0.0.1:60640 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:25:54 === +accepting AMQP connection <0.491.0> (127.0.0.1:60648 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:25:54 === +connection <0.491.0> (127.0.0.1:60648 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:26:11 === +closing AMQP connection <0.491.0> (127.0.0.1:60648 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:26:11 === +closing AMQP connection <0.472.0> (127.0.0.1:60631 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:26:15 === +accepting AMQP connection <0.508.0> (127.0.0.1:60778 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:26:15 === +connection <0.508.0> (127.0.0.1:60778 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:26:18 === +accepting AMQP connection <0.520.0> (127.0.0.1:60797 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:26:18 === +connection <0.520.0> (127.0.0.1:60797 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:27:21 === +closing AMQP connection <0.484.0> (127.0.0.1:60640 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:27:33 === +accepting AMQP connection <0.557.0> (127.0.0.1:61210 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:27:33 === +connection <0.557.0> (127.0.0.1:61210 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:27:34 === +closing AMQP connection <0.557.0> (127.0.0.1:61210 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:27:44 === +accepting AMQP connection <0.567.0> (127.0.0.1:61276 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:27:44 === +connection <0.567.0> (127.0.0.1:61276 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:28:05 === +accepting AMQP connection <0.580.0> (127.0.0.1:61398 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:28:05 === +connection <0.580.0> (127.0.0.1:61398 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:28:25 === +closing AMQP connection <0.580.0> (127.0.0.1:61398 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:28:58 === +closing AMQP connection <0.567.0> (127.0.0.1:61276 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:29:00 === +accepting AMQP connection <0.605.0> (127.0.0.1:61702 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:29:00 === +connection <0.605.0> (127.0.0.1:61702 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:29:05 === +accepting AMQP connection <0.613.0> (127.0.0.1:61735 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:29:05 === +connection <0.613.0> (127.0.0.1:61735 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:29:12 === +closing AMQP connection <0.613.0> (127.0.0.1:61735 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:29:18 === +accepting AMQP connection <0.623.0> (127.0.0.1:61811 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:29:18 === +connection <0.623.0> (127.0.0.1:61811 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:29:47 === +closing AMQP connection <0.623.0> (127.0.0.1:61811 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:29:53 === +accepting AMQP connection <0.641.0> (127.0.0.1:62020 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:29:53 === +connection <0.641.0> (127.0.0.1:62020 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:30:56 === +closing AMQP connection <0.605.0> (127.0.0.1:61702 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:31:00 === +closing AMQP connection <0.641.0> (127.0.0.1:62020 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:31:06 === +accepting AMQP connection <0.671.0> (127.0.0.1:62837 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:31:06 === +connection <0.671.0> (127.0.0.1:62837 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:31:11 === +closing AMQP connection <0.671.0> (127.0.0.1:62837 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:31:21 === +accepting AMQP connection <0.683.0> (127.0.0.1:62903 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:31:21 === +connection <0.683.0> (127.0.0.1:62903 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:31:35 === +accepting AMQP connection <0.694.0> (127.0.0.1:62980 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:31:35 === +connection <0.694.0> (127.0.0.1:62980 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:32:45 === +closing AMQP connection <0.694.0> (127.0.0.1:62980 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:32:51 === +closing AMQP connection <0.683.0> (127.0.0.1:62903 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:32:57 === +accepting AMQP connection <0.726.0> (127.0.0.1:63620 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:32:57 === +connection <0.726.0> (127.0.0.1:63620 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:33:11 === +accepting AMQP connection <0.738.0> (127.0.0.1:63653 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:33:11 === +connection <0.738.0> (127.0.0.1:63653 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:37:14 === +closing AMQP connection <0.738.0> (127.0.0.1:63653 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:37:19 === +closing AMQP connection <0.726.0> (127.0.0.1:63620 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:37:25 === +accepting AMQP connection <0.823.0> (127.0.0.1:64236 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:37:25 === +connection <0.823.0> (127.0.0.1:64236 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:37:38 === +accepting AMQP connection <0.834.0> (127.0.0.1:64274 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:37:38 === +connection <0.834.0> (127.0.0.1:64274 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:37:48 === +closing AMQP connection <0.834.0> (127.0.0.1:64274 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:37:52 === +closing AMQP connection <0.823.0> (127.0.0.1:64236 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:37:58 === +accepting AMQP connection <0.847.0> (127.0.0.1:64332 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:37:58 === +connection <0.847.0> (127.0.0.1:64332 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:38:11 === +accepting AMQP connection <0.858.0> (127.0.0.1:64366 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:38:11 === +connection <0.858.0> (127.0.0.1:64366 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:38:11 === +closing AMQP connection <0.858.0> (127.0.0.1:64366 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:38:15 === +closing AMQP connection <0.847.0> (127.0.0.1:64332 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:38:21 === +accepting AMQP connection <0.868.0> (127.0.0.1:64385 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:38:21 === +connection <0.868.0> (127.0.0.1:64385 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:38:35 === +accepting AMQP connection <0.880.0> (127.0.0.1:64486 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:38:35 === +connection <0.880.0> (127.0.0.1:64486 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:39:52 === +closing AMQP connection <0.880.0> (127.0.0.1:64486 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:39:57 === +closing AMQP connection <0.868.0> (127.0.0.1:64385 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 12-May-2017::02:40:03 === +accepting AMQP connection <0.914.0> (127.0.0.1:64965 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:40:03 === +connection <0.914.0> (127.0.0.1:64965 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 12-May-2017::02:40:15 === +accepting AMQP connection <0.924.0> (127.0.0.1:65060 -> 127.0.0.1:4000) + +=INFO REPORT==== 12-May-2017::02:40:15 === +connection <0.924.0> (127.0.0.1:65060 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 12-May-2017::02:42:58 === +closing AMQP connection <0.914.0> (127.0.0.1:64965 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:42:58 === +closing AMQP connection <0.924.0> (127.0.0.1:65060 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:42:58 === +closing AMQP connection <0.520.0> (127.0.0.1:60797 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 12-May-2017::02:42:58 === +closing AMQP connection <0.508.0> (127.0.0.1:60778 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::22:02:34 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::22:02:34 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::22:02:39 === +Memory limit set to 6386MB of 15966MB total. + +=INFO REPORT==== 18-May-2017::22:02:39 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::22:02:39 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::22:02:39 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::22:02:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:02:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:02:40 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::22:02:40 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::22:02:40 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::22:02:40 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::22:02:40 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::22:02:40 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::22:02:40 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::22:02:40 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::22:02:40 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::22:02:40 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::22:16:30 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::22:16:30 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::22:16:34 === +Memory limit set to 6160MB of 15402MB total. + +=INFO REPORT==== 18-May-2017::22:16:34 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::22:16:34 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::22:16:34 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::22:16:34 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:16:34 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:16:34 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::22:16:34 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::22:16:34 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::22:16:34 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::22:16:34 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::22:16:34 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::22:16:34 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::22:16:34 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::22:16:34 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::22:16:34 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::22:28:58 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::22:28:58 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::22:29:01 === +Memory limit set to 6016MB of 15040MB total. + +=INFO REPORT==== 18-May-2017::22:29:01 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::22:29:01 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::22:29:01 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::22:29:01 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:29:01 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:29:01 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::22:29:01 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::22:29:01 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::22:29:01 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::22:29:01 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::22:29:01 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::22:29:01 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::22:29:01 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::22:29:01 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::22:29:01 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::22:55:16 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::22:55:16 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::22:55:19 === +Memory limit set to 6144MB of 15361MB total. + +=INFO REPORT==== 18-May-2017::22:55:19 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::22:55:19 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::22:55:19 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::22:55:20 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:55:20 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:55:20 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::22:55:20 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::22:55:20 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::22:55:20 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::22:55:20 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::22:55:20 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::22:55:20 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::22:55:20 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::22:55:20 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::22:55:20 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::22:55:47 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::22:55:47 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::22:55:52 === +Memory limit set to 6143MB of 15359MB total. + +=INFO REPORT==== 18-May-2017::22:55:52 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::22:55:52 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::22:55:52 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::22:55:52 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:55:52 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::22:55:52 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::22:55:52 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::22:55:52 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::22:55:52 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::22:55:52 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::22:55:52 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::22:55:52 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::22:55:52 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::22:55:52 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::22:55:52 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::22:56:48 === +accepting AMQP connection <0.465.0> (127.0.0.1:53919 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::22:56:48 === +connection <0.465.0> (127.0.0.1:53919 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::22:56:49 === +accepting AMQP connection <0.478.0> (127.0.0.1:53924 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::22:56:49 === +connection <0.478.0> (127.0.0.1:53924 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::22:56:50 === +accepting AMQP connection <0.491.0> (127.0.0.1:53927 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::22:56:50 === +connection <0.491.0> (127.0.0.1:53927 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::22:57:22 === +closing AMQP connection <0.491.0> (127.0.0.1:53927 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::22:57:22 === +closing AMQP connection <0.465.0> (127.0.0.1:53919 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::22:57:26 === +accepting AMQP connection <0.511.0> (127.0.0.1:53938 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::22:57:26 === +connection <0.511.0> (127.0.0.1:53938 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::22:57:29 === +accepting AMQP connection <0.522.0> (127.0.0.1:53948 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::22:57:29 === +connection <0.522.0> (127.0.0.1:53948 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::22:58:47 === +closing AMQP connection <0.478.0> (127.0.0.1:53924 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::22:58:49 === +closing AMQP connection <0.522.0> (127.0.0.1:53948 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::22:58:49 === +closing AMQP connection <0.511.0> (127.0.0.1:53938 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:00:34 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-May-2017::23:00:34 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-May-2017::23:00:39 === +Memory limit set to 5985MB of 14963MB total. + +=INFO REPORT==== 18-May-2017::23:00:39 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-May-2017::23:00:40 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-May-2017::23:00:40 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-May-2017::23:00:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::23:00:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-May-2017::23:00:40 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-May-2017::23:00:40 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-May-2017::23:00:40 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-May-2017::23:00:40 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-May-2017::23:00:40 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-May-2017::23:00:40 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-May-2017::23:00:40 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-May-2017::23:00:40 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-May-2017::23:00:40 === +Statistics database started. + +=INFO REPORT==== 18-May-2017::23:00:40 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-May-2017::23:01:34 === +accepting AMQP connection <0.463.0> (127.0.0.1:49337 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:01:34 === +connection <0.463.0> (127.0.0.1:49337 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:01:35 === +accepting AMQP connection <0.475.0> (127.0.0.1:49342 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:01:35 === +connection <0.475.0> (127.0.0.1:49342 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:01:36 === +accepting AMQP connection <0.489.0> (127.0.0.1:49345 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:01:36 === +connection <0.489.0> (127.0.0.1:49345 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:02:05 === +closing AMQP connection <0.489.0> (127.0.0.1:49345 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::23:02:05 === +closing AMQP connection <0.463.0> (127.0.0.1:49337 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:02:08 === +accepting AMQP connection <0.507.0> (127.0.0.1:49379 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:02:08 === +connection <0.507.0> (127.0.0.1:49379 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:02:12 === +accepting AMQP connection <0.519.0> (127.0.0.1:49383 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:02:12 === +connection <0.519.0> (127.0.0.1:49383 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:03:58 === +closing AMQP connection <0.519.0> (127.0.0.1:49383 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::23:03:58 === +closing AMQP connection <0.507.0> (127.0.0.1:49379 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:04:00 === +accepting AMQP connection <0.567.0> (127.0.0.1:49422 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:04:00 === +connection <0.567.0> (127.0.0.1:49422 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:04:04 === +accepting AMQP connection <0.580.0> (127.0.0.1:49427 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:04:04 === +connection <0.580.0> (127.0.0.1:49427 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:04:16 === +closing AMQP connection <0.475.0> (127.0.0.1:49342 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:04:23 === +accepting AMQP connection <0.595.0> (127.0.0.1:49437 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:04:23 === +connection <0.595.0> (127.0.0.1:49437 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:04:35 === +closing AMQP connection <0.580.0> (127.0.0.1:49427 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::23:04:35 === +closing AMQP connection <0.567.0> (127.0.0.1:49422 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:04:39 === +accepting AMQP connection <0.613.0> (127.0.0.1:49451 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:04:39 === +connection <0.613.0> (127.0.0.1:49451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:04:43 === +accepting AMQP connection <0.626.0> (127.0.0.1:49457 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:04:43 === +connection <0.626.0> (127.0.0.1:49457 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:06:05 === +closing AMQP connection <0.595.0> (127.0.0.1:49437 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:06:11 === +accepting AMQP connection <0.661.0> (127.0.0.1:49590 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:06:11 === +connection <0.661.0> (127.0.0.1:49590 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:10:34 === +accepting AMQP connection <0.754.0> (127.0.0.1:50599 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:10:34 === +connection <0.754.0> (127.0.0.1:50599 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:11:03 === +closing AMQP connection <0.754.0> (127.0.0.1:50599 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:11:51 === +accepting AMQP connection <0.783.0> (127.0.0.1:51243 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:11:51 === +connection <0.783.0> (127.0.0.1:51243 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:11:58 === +closing AMQP connection <0.783.0> (127.0.0.1:51243 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 18-May-2017::23:12:08 === +closing AMQP connection <0.661.0> (127.0.0.1:49590 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:12:14 === +accepting AMQP connection <0.799.0> (127.0.0.1:51445 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:12:14 === +connection <0.799.0> (127.0.0.1:51445 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 18-May-2017::23:12:34 === +accepting AMQP connection <0.818.0> (127.0.0.1:51533 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:12:34 === +connection <0.818.0> (127.0.0.1:51533 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:13:38 === +closing AMQP connection <0.818.0> (127.0.0.1:51533 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:14:38 === +accepting AMQP connection <0.1000.0> (127.0.0.1:52196 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:14:38 === +connection <0.1000.0> (127.0.0.1:52196 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:18:51 === +closing AMQP connection <0.1000.0> (127.0.0.1:52196 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:19:17 === +accepting AMQP connection <0.1093.0> (127.0.0.1:53176 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:19:17 === +connection <0.1093.0> (127.0.0.1:53176 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:22:42 === +closing AMQP connection <0.1093.0> (127.0.0.1:53176 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:23:12 === +accepting AMQP connection <0.1171.0> (127.0.0.1:53949 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:23:12 === +connection <0.1171.0> (127.0.0.1:53949 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:34:31 === +closing AMQP connection <0.1171.0> (127.0.0.1:53949 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:34:58 === +accepting AMQP connection <0.1396.0> (127.0.0.1:56989 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:34:58 === +connection <0.1396.0> (127.0.0.1:56989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:37:07 === +closing AMQP connection <0.1396.0> (127.0.0.1:56989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:37:33 === +accepting AMQP connection <0.1588.0> (127.0.0.1:57797 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:37:33 === +connection <0.1588.0> (127.0.0.1:57797 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:38:57 === +closing AMQP connection <0.1588.0> (127.0.0.1:57797 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:39:24 === +accepting AMQP connection <0.1629.0> (127.0.0.1:58172 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:39:24 === +connection <0.1629.0> (127.0.0.1:58172 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:41:01 === +closing AMQP connection <0.1629.0> (127.0.0.1:58172 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:41:30 === +accepting AMQP connection <0.1675.0> (127.0.0.1:58733 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:41:30 === +connection <0.1675.0> (127.0.0.1:58733 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:49:57 === +closing AMQP connection <0.1675.0> (127.0.0.1:58733 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:50:35 === +accepting AMQP connection <0.1849.0> (127.0.0.1:61241 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:50:35 === +connection <0.1849.0> (127.0.0.1:61241 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-May-2017::23:54:48 === +closing AMQP connection <0.1849.0> (127.0.0.1:61241 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-May-2017::23:55:13 === +accepting AMQP connection <0.1942.0> (127.0.0.1:62537 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-May-2017::23:55:13 === +connection <0.1942.0> (127.0.0.1:62537 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:04:45 === +closing AMQP connection <0.1942.0> (127.0.0.1:62537 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:06:59 === +accepting AMQP connection <0.2166.0> (127.0.0.1:49521 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:06:59 === +connection <0.2166.0> (127.0.0.1:49521 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:07:21 === +closing AMQP connection <0.2166.0> (127.0.0.1:49521 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:08:37 === +accepting AMQP connection <0.2203.0> (127.0.0.1:49643 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:08:37 === +connection <0.2203.0> (127.0.0.1:49643 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:09:07 === +closing AMQP connection <0.2203.0> (127.0.0.1:49643 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:10:50 === +accepting AMQP connection <0.2251.0> (127.0.0.1:50025 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:10:50 === +connection <0.2251.0> (127.0.0.1:50025 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:20:20 === +closing AMQP connection <0.2251.0> (127.0.0.1:50025 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:20:43 === +accepting AMQP connection <0.2440.0> (127.0.0.1:52758 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:20:43 === +connection <0.2440.0> (127.0.0.1:52758 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:35:44 === +closing AMQP connection <0.2440.0> (127.0.0.1:52758 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:39:22 === +accepting AMQP connection <0.2790.0> (127.0.0.1:55638 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:39:22 === +connection <0.2790.0> (127.0.0.1:55638 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:40:32 === +closing AMQP connection <0.2790.0> (127.0.0.1:55638 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:40:53 === +accepting AMQP connection <0.2826.0> (127.0.0.1:55805 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:40:53 === +connection <0.2826.0> (127.0.0.1:55805 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:42:59 === +closing AMQP connection <0.2826.0> (127.0.0.1:55805 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:43:20 === +accepting AMQP connection <0.2879.0> (127.0.0.1:56038 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:43:20 === +connection <0.2879.0> (127.0.0.1:56038 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:45:40 === +closing AMQP connection <0.2879.0> (127.0.0.1:56038 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:45:58 === +accepting AMQP connection <0.2934.0> (127.0.0.1:56268 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:45:58 === +connection <0.2934.0> (127.0.0.1:56268 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:46:28 === +closing AMQP connection <0.799.0> (127.0.0.1:51445 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:47:04 === +accepting AMQP connection <0.2964.0> (127.0.0.1:56351 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:47:04 === +connection <0.2964.0> (127.0.0.1:56351 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:48:03 === +closing AMQP connection <0.2934.0> (127.0.0.1:56268 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:48:23 === +accepting AMQP connection <0.2998.0> (127.0.0.1:56462 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:48:23 === +connection <0.2998.0> (127.0.0.1:56462 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:49:41 === +closing AMQP connection <0.2998.0> (127.0.0.1:56462 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:50:02 === +accepting AMQP connection <0.3036.0> (127.0.0.1:56593 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:50:02 === +connection <0.3036.0> (127.0.0.1:56593 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:51:40 === +closing AMQP connection <0.3036.0> (127.0.0.1:56593 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:52:05 === +accepting AMQP connection <0.3082.0> (127.0.0.1:56772 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:52:05 === +connection <0.3082.0> (127.0.0.1:56772 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::00:58:49 === +closing AMQP connection <0.3082.0> (127.0.0.1:56772 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::00:59:09 === +accepting AMQP connection <0.3219.0> (127.0.0.1:57317 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::00:59:09 === +connection <0.3219.0> (127.0.0.1:57317 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:03:22 === +closing AMQP connection <0.3219.0> (127.0.0.1:57317 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:03:51 === +accepting AMQP connection <0.3313.0> (127.0.0.1:57746 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:03:51 === +connection <0.3313.0> (127.0.0.1:57746 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:11:28 === +closing AMQP connection <0.3313.0> (127.0.0.1:57746 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:11:57 === +accepting AMQP connection <0.3468.0> (127.0.0.1:58417 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:11:57 === +connection <0.3468.0> (127.0.0.1:58417 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:12:28 === +closing AMQP connection <0.3468.0> (127.0.0.1:58417 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:12:53 === +accepting AMQP connection <0.3494.0> (127.0.0.1:58542 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:12:53 === +connection <0.3494.0> (127.0.0.1:58542 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:22:34 === +closing AMQP connection <0.2964.0> (127.0.0.1:56351 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::01:22:34 === +closing AMQP connection <0.3494.0> (127.0.0.1:58542 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::01:22:34 === +closing AMQP connection <0.626.0> (127.0.0.1:49457 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::01:22:34 === +closing AMQP connection <0.613.0> (127.0.0.1:49451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:38:13 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 19-May-2017::01:38:13 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 19-May-2017::01:38:21 === +Memory limit set to 6177MB of 15444MB total. + +=INFO REPORT==== 19-May-2017::01:38:21 === +Disk free limit set to 50MB + +=INFO REPORT==== 19-May-2017::01:38:21 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 19-May-2017::01:38:21 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 19-May-2017::01:38:22 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::01:38:22 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::01:38:22 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 19-May-2017::01:38:22 === +Starting rabbit_node_monitor + +=INFO REPORT==== 19-May-2017::01:38:22 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 19-May-2017::01:38:22 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 19-May-2017::01:38:22 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 19-May-2017::01:38:22 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 19-May-2017::01:38:22 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 19-May-2017::01:38:22 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 19-May-2017::01:38:22 === +Statistics database started. + +=INFO REPORT==== 19-May-2017::01:38:22 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 19-May-2017::01:39:54 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 19-May-2017::01:39:54 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 19-May-2017::01:39:58 === +Memory limit set to 6182MB of 15456MB total. + +=INFO REPORT==== 19-May-2017::01:39:58 === +Disk free limit set to 50MB + +=INFO REPORT==== 19-May-2017::01:39:58 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 19-May-2017::01:39:58 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 19-May-2017::01:39:58 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::01:39:58 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::01:39:58 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 19-May-2017::01:39:58 === +Starting rabbit_node_monitor + +=INFO REPORT==== 19-May-2017::01:39:58 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 19-May-2017::01:39:58 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 19-May-2017::01:39:58 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 19-May-2017::01:39:58 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 19-May-2017::01:39:58 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 19-May-2017::01:39:58 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 19-May-2017::01:39:58 === +Statistics database started. + +=INFO REPORT==== 19-May-2017::01:39:58 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 19-May-2017::01:40:50 === +accepting AMQP connection <0.465.0> (127.0.0.1:63783 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:40:50 === +connection <0.465.0> (127.0.0.1:63783 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::01:40:52 === +accepting AMQP connection <0.477.0> (127.0.0.1:63792 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:40:52 === +connection <0.477.0> (127.0.0.1:63792 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::01:40:53 === +accepting AMQP connection <0.490.0> (127.0.0.1:63798 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:40:53 === +connection <0.490.0> (127.0.0.1:63798 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:41:13 === +closing AMQP connection <0.490.0> (127.0.0.1:63798 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::01:41:13 === +closing AMQP connection <0.465.0> (127.0.0.1:63783 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:41:15 === +accepting AMQP connection <0.506.0> (127.0.0.1:63839 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:41:15 === +connection <0.506.0> (127.0.0.1:63839 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::01:41:19 === +accepting AMQP connection <0.518.0> (127.0.0.1:63847 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:41:19 === +connection <0.518.0> (127.0.0.1:63847 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:42:55 === +closing AMQP connection <0.477.0> (127.0.0.1:63792 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:43:03 === +accepting AMQP connection <0.566.0> (127.0.0.1:63945 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:43:03 === +connection <0.566.0> (127.0.0.1:63945 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::01:51:58 === +accepting AMQP connection <0.742.0> (127.0.0.1:65251 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:51:58 === +connection <0.742.0> (127.0.0.1:65251 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::01:56:23 === +closing AMQP connection <0.742.0> (127.0.0.1:65251 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::01:59:16 === +closing AMQP connection <0.566.0> (127.0.0.1:63945 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::01:59:23 === +accepting AMQP connection <0.887.0> (127.0.0.1:51148 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::01:59:23 === +connection <0.887.0> (127.0.0.1:51148 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::02:00:35 === +accepting AMQP connection <0.920.0> (127.0.0.1:51489 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:00:35 === +connection <0.920.0> (127.0.0.1:51489 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:01:49 === +closing AMQP connection <0.920.0> (127.0.0.1:51489 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:02:27 === +accepting AMQP connection <0.962.0> (127.0.0.1:52099 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:02:27 === +connection <0.962.0> (127.0.0.1:52099 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:10:25 === +closing AMQP connection <0.962.0> (127.0.0.1:52099 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:11:00 === +accepting AMQP connection <0.1126.0> (127.0.0.1:54974 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:11:00 === +connection <0.1126.0> (127.0.0.1:54974 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:11:16 === +closing AMQP connection <0.1126.0> (127.0.0.1:54974 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:11:51 === +accepting AMQP connection <0.1148.0> (127.0.0.1:55262 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:11:51 === +connection <0.1148.0> (127.0.0.1:55262 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:14:45 === +closing AMQP connection <0.1148.0> (127.0.0.1:55262 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:16:02 === +accepting AMQP connection <0.1234.0> (127.0.0.1:56571 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:16:02 === +connection <0.1234.0> (127.0.0.1:56571 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:18:08 === +closing AMQP connection <0.1234.0> (127.0.0.1:56571 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:18:50 === +accepting AMQP connection <0.1292.0> (127.0.0.1:57483 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:18:50 === +connection <0.1292.0> (127.0.0.1:57483 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:21:54 === +closing AMQP connection <0.1292.0> (127.0.0.1:57483 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:22:23 === +accepting AMQP connection <0.1365.0> (127.0.0.1:58807 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:22:23 === +connection <0.1365.0> (127.0.0.1:58807 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:23:08 === +closing AMQP connection <0.887.0> (127.0.0.1:51148 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:23:14 === +accepting AMQP connection <0.1390.0> (127.0.0.1:59175 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:23:14 === +connection <0.1390.0> (127.0.0.1:59175 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:24:24 === +closing AMQP connection <0.1365.0> (127.0.0.1:58807 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:25:23 === +accepting AMQP connection <0.1440.0> (127.0.0.1:59979 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:25:23 === +connection <0.1440.0> (127.0.0.1:59979 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:32:49 === +closing AMQP connection <0.1440.0> (127.0.0.1:59979 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::02:33:23 === +accepting AMQP connection <0.1594.0> (127.0.0.1:62482 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::02:33:23 === +connection <0.1594.0> (127.0.0.1:62482 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::02:39:21 === +closing AMQP connection <0.1594.0> (127.0.0.1:62482 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::02:39:29 === +closing AMQP connection <0.1390.0> (127.0.0.1:59175 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::02:39:29 === +closing AMQP connection <0.518.0> (127.0.0.1:63847 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::02:39:29 === +closing AMQP connection <0.506.0> (127.0.0.1:63839 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:12:01 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 19-May-2017::04:12:01 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 19-May-2017::04:12:03 === +Memory limit set to 6373MB of 15932MB total. + +=INFO REPORT==== 19-May-2017::04:12:03 === +Disk free limit set to 50MB + +=INFO REPORT==== 19-May-2017::04:12:03 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 19-May-2017::04:12:03 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 19-May-2017::04:12:03 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::04:12:03 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::04:12:03 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 19-May-2017::04:12:03 === +Starting rabbit_node_monitor + +=INFO REPORT==== 19-May-2017::04:12:03 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 19-May-2017::04:12:03 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 19-May-2017::04:12:03 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 19-May-2017::04:12:03 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 19-May-2017::04:12:03 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 19-May-2017::04:12:03 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 19-May-2017::04:12:03 === +Statistics database started. + +=INFO REPORT==== 19-May-2017::04:12:03 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 19-May-2017::04:12:25 === +accepting AMQP connection <0.454.0> (127.0.0.1:59079 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:12:26 === +connection <0.454.0> (127.0.0.1:59079 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:12:32 === +closing AMQP connection <0.454.0> (127.0.0.1:59079 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:13:28 === +accepting AMQP connection <0.487.0> (127.0.0.1:59395 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:13:28 === +connection <0.487.0> (127.0.0.1:59395 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:13:29 === +closing AMQP connection <0.487.0> (127.0.0.1:59395 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:13:54 === +accepting AMQP connection <0.508.0> (127.0.0.1:59511 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:13:54 === +connection <0.508.0> (127.0.0.1:59511 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:14:24 === +closing AMQP connection <0.508.0> (127.0.0.1:59511 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:15:32 === +accepting AMQP connection <0.558.0> (127.0.0.1:59932 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:15:32 === +connection <0.558.0> (127.0.0.1:59932 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:19:24 === +closing AMQP connection <0.558.0> (127.0.0.1:59932 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:34:29 === +accepting AMQP connection <0.924.0> (127.0.0.1:63568 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:34:29 === +connection <0.924.0> (127.0.0.1:63568 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:36:39 === +closing AMQP connection <0.924.0> (127.0.0.1:63568 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:36:45 === +accepting AMQP connection <0.979.0> (127.0.0.1:64048 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:36:45 === +connection <0.979.0> (127.0.0.1:64048 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:43:18 === +closing AMQP connection <0.979.0> (127.0.0.1:64048 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:43:24 === +accepting AMQP connection <0.1116.0> (127.0.0.1:49898 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:43:24 === +connection <0.1116.0> (127.0.0.1:49898 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:47:01 === +closing AMQP connection <0.1116.0> (127.0.0.1:49898 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:47:07 === +accepting AMQP connection <0.1197.0> (127.0.0.1:51149 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:47:07 === +connection <0.1197.0> (127.0.0.1:51149 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:49:47 === +closing AMQP connection <0.1197.0> (127.0.0.1:51149 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:51:25 === +accepting AMQP connection <0.1291.0> (127.0.0.1:52559 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:51:25 === +connection <0.1291.0> (127.0.0.1:52559 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:55:02 === +closing AMQP connection <0.1291.0> (127.0.0.1:52559 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:55:38 === +accepting AMQP connection <0.1382.0> (127.0.0.1:53862 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:55:38 === +connection <0.1382.0> (127.0.0.1:53862 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:57:09 === +closing AMQP connection <0.1382.0> (127.0.0.1:53862 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:57:15 === +accepting AMQP connection <0.1426.0> (127.0.0.1:54401 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:57:15 === +connection <0.1426.0> (127.0.0.1:54401 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::04:59:20 === +closing AMQP connection <0.1426.0> (127.0.0.1:54401 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::04:59:56 === +accepting AMQP connection <0.1487.0> (127.0.0.1:55297 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::04:59:56 === +connection <0.1487.0> (127.0.0.1:55297 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:00:13 === +closing AMQP connection <0.1487.0> (127.0.0.1:55297 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::05:11:11 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 19-May-2017::05:11:11 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 19-May-2017::05:11:14 === +Memory limit set to 6149MB of 15373MB total. + +=INFO REPORT==== 19-May-2017::05:11:14 === +Disk free limit set to 50MB + +=INFO REPORT==== 19-May-2017::05:11:14 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 19-May-2017::05:11:14 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 19-May-2017::05:11:14 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::05:11:14 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-May-2017::05:11:14 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 19-May-2017::05:11:14 === +Starting rabbit_node_monitor + +=INFO REPORT==== 19-May-2017::05:11:14 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 19-May-2017::05:11:14 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 19-May-2017::05:11:14 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 19-May-2017::05:11:14 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 19-May-2017::05:11:14 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 19-May-2017::05:11:14 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 19-May-2017::05:11:14 === +Statistics database started. + +=INFO REPORT==== 19-May-2017::05:11:14 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 19-May-2017::05:12:10 === +accepting AMQP connection <0.463.0> (127.0.0.1:58803 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:12:10 === +connection <0.463.0> (127.0.0.1:58803 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::05:12:11 === +accepting AMQP connection <0.476.0> (127.0.0.1:58820 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:12:11 === +connection <0.476.0> (127.0.0.1:58820 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::05:12:12 === +accepting AMQP connection <0.489.0> (127.0.0.1:58828 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:12:12 === +connection <0.489.0> (127.0.0.1:58828 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:12:33 === +closing AMQP connection <0.489.0> (127.0.0.1:58828 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::05:12:33 === +closing AMQP connection <0.463.0> (127.0.0.1:58803 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::05:12:35 === +accepting AMQP connection <0.505.0> (127.0.0.1:58949 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:12:35 === +connection <0.505.0> (127.0.0.1:58949 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::05:12:39 === +accepting AMQP connection <0.517.0> (127.0.0.1:58977 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:12:39 === +connection <0.517.0> (127.0.0.1:58977 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:13:40 === +closing AMQP connection <0.476.0> (127.0.0.1:58820 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::05:13:55 === +accepting AMQP connection <0.550.0> (127.0.0.1:59383 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:13:56 === +connection <0.550.0> (127.0.0.1:59383 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 19-May-2017::05:14:16 === +accepting AMQP connection <0.570.0> (127.0.0.1:59515 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:14:16 === +connection <0.570.0> (127.0.0.1:59515 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:18:37 === +closing AMQP connection <0.570.0> (127.0.0.1:59515 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::05:18:42 === +accepting AMQP connection <0.664.0> (127.0.0.1:60770 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:18:43 === +connection <0.664.0> (127.0.0.1:60770 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:18:56 === +closing AMQP connection <0.664.0> (127.0.0.1:60770 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-May-2017::05:19:03 === +accepting AMQP connection <0.683.0> (127.0.0.1:60895 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-May-2017::05:19:03 === +connection <0.683.0> (127.0.0.1:60895 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-May-2017::05:20:25 === +closing AMQP connection <0.550.0> (127.0.0.1:59383 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::05:20:29 === +closing AMQP connection <0.683.0> (127.0.0.1:60895 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::05:20:30 === +closing AMQP connection <0.517.0> (127.0.0.1:58977 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 19-May-2017::05:20:30 === +closing AMQP connection <0.505.0> (127.0.0.1:58949 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-May-2017::23:49:31 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 24-May-2017::23:49:31 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 24-May-2017::23:49:35 === +Memory limit set to 5920MB of 14802MB total. + +=INFO REPORT==== 24-May-2017::23:49:35 === +Disk free limit set to 50MB + +=INFO REPORT==== 24-May-2017::23:49:35 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 24-May-2017::23:49:35 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 24-May-2017::23:49:35 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-May-2017::23:49:35 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-May-2017::23:49:35 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 24-May-2017::23:49:35 === +Starting rabbit_node_monitor + +=INFO REPORT==== 24-May-2017::23:49:35 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 24-May-2017::23:49:35 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 24-May-2017::23:49:35 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 24-May-2017::23:49:35 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 24-May-2017::23:49:35 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 24-May-2017::23:49:35 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 24-May-2017::23:49:35 === +Statistics database started. + +=INFO REPORT==== 24-May-2017::23:49:35 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 24-May-2017::23:50:12 === +accepting AMQP connection <0.458.0> (127.0.0.1:54798 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:50:12 === +connection <0.458.0> (127.0.0.1:54798 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 24-May-2017::23:50:15 === +accepting AMQP connection <0.471.0> (127.0.0.1:54807 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:50:15 === +connection <0.471.0> (127.0.0.1:54807 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-May-2017::23:50:33 === +closing AMQP connection <0.471.0> (127.0.0.1:54807 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 24-May-2017::23:50:33 === +closing AMQP connection <0.458.0> (127.0.0.1:54798 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-May-2017::23:50:35 === +accepting AMQP connection <0.488.0> (127.0.0.1:54836 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:50:35 === +connection <0.488.0> (127.0.0.1:54836 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 24-May-2017::23:50:39 === +accepting AMQP connection <0.500.0> (127.0.0.1:54845 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:50:39 === +connection <0.500.0> (127.0.0.1:54845 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 24-May-2017::23:51:20 === +accepting AMQP connection <0.519.0> (127.0.0.1:54930 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:51:20 === +connection <0.519.0> (127.0.0.1:54930 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-May-2017::23:51:33 === +closing AMQP connection <0.519.0> (127.0.0.1:54930 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-May-2017::23:52:12 === +accepting AMQP connection <0.548.0> (127.0.0.1:55020 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-May-2017::23:52:12 === +connection <0.548.0> (127.0.0.1:55020 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 25-May-2017::00:00:16 === +accepting AMQP connection <0.714.0> (127.0.0.1:56832 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::00:00:16 === +connection <0.714.0> (127.0.0.1:56832 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 25-May-2017::00:01:16 === +closing AMQP connection <0.714.0> (127.0.0.1:56832 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 25-May-2017::00:01:36 === +accepting AMQP connection <0.747.0> (127.0.0.1:57831 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::00:01:36 === +connection <0.747.0> (127.0.0.1:57831 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 25-May-2017::00:02:37 === +closing AMQP connection <0.548.0> (127.0.0.1:55020 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::00:02:37 === +closing AMQP connection <0.747.0> (127.0.0.1:57831 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::00:02:38 === +closing AMQP connection <0.500.0> (127.0.0.1:54845 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::00:02:38 === +closing AMQP connection <0.488.0> (127.0.0.1:54836 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 25-May-2017::01:31:04 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 25-May-2017::01:31:04 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 25-May-2017::01:31:07 === +Memory limit set to 6255MB of 15638MB total. + +=INFO REPORT==== 25-May-2017::01:31:07 === +Disk free limit set to 50MB + +=INFO REPORT==== 25-May-2017::01:31:07 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 25-May-2017::01:31:07 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 25-May-2017::01:31:07 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 25-May-2017::01:31:07 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 25-May-2017::01:31:07 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 25-May-2017::01:31:07 === +Starting rabbit_node_monitor + +=INFO REPORT==== 25-May-2017::01:31:07 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 25-May-2017::01:31:07 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 25-May-2017::01:31:07 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 25-May-2017::01:31:07 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 25-May-2017::01:31:07 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 25-May-2017::01:31:07 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 25-May-2017::01:31:07 === +Statistics database started. + +=INFO REPORT==== 25-May-2017::01:31:07 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 25-May-2017::01:31:39 === +accepting AMQP connection <0.457.0> (127.0.0.1:57487 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:31:39 === +connection <0.457.0> (127.0.0.1:57487 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 25-May-2017::01:31:41 === +accepting AMQP connection <0.469.0> (127.0.0.1:57506 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:31:41 === +connection <0.469.0> (127.0.0.1:57506 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 25-May-2017::01:31:42 === +accepting AMQP connection <0.482.0> (127.0.0.1:57512 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:31:42 === +connection <0.482.0> (127.0.0.1:57512 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 25-May-2017::01:31:59 === +closing AMQP connection <0.482.0> (127.0.0.1:57512 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::01:31:59 === +closing AMQP connection <0.457.0> (127.0.0.1:57487 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 25-May-2017::01:32:02 === +accepting AMQP connection <0.497.0> (127.0.0.1:57618 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:32:02 === +connection <0.497.0> (127.0.0.1:57618 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 25-May-2017::01:32:06 === +accepting AMQP connection <0.509.0> (127.0.0.1:57645 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:32:06 === +connection <0.509.0> (127.0.0.1:57645 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 25-May-2017::01:33:14 === +closing AMQP connection <0.469.0> (127.0.0.1:57506 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 25-May-2017::01:33:21 === +accepting AMQP connection <0.542.0> (127.0.0.1:58071 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:33:21 === +connection <0.542.0> (127.0.0.1:58071 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 25-May-2017::01:33:33 === +accepting AMQP connection <0.556.0> (127.0.0.1:58148 -> 127.0.0.1:4000) + +=INFO REPORT==== 25-May-2017::01:33:33 === +connection <0.556.0> (127.0.0.1:58148 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 25-May-2017::01:37:49 === +closing AMQP connection <0.556.0> (127.0.0.1:58148 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::01:38:03 === +closing AMQP connection <0.542.0> (127.0.0.1:58071 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::01:38:04 === +closing AMQP connection <0.509.0> (127.0.0.1:57645 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 25-May-2017::01:38:04 === +closing AMQP connection <0.497.0> (127.0.0.1:57618 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 27-May-2017::12:54:50 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 27-May-2017::12:54:50 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 27-May-2017::12:54:53 === +Memory limit set to 6073MB of 15184MB total. + +=INFO REPORT==== 27-May-2017::12:54:53 === +Disk free limit set to 50MB + +=INFO REPORT==== 27-May-2017::12:54:53 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 27-May-2017::12:54:53 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 27-May-2017::12:54:53 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 27-May-2017::12:54:53 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 27-May-2017::12:54:53 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 27-May-2017::12:54:53 === +Starting rabbit_node_monitor + +=INFO REPORT==== 27-May-2017::12:54:53 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 27-May-2017::12:54:53 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 27-May-2017::12:54:53 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 27-May-2017::12:54:53 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 27-May-2017::12:54:53 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 27-May-2017::12:54:53 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 27-May-2017::12:54:53 === +Statistics database started. + +=INFO REPORT==== 27-May-2017::12:54:53 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 27-May-2017::12:55:26 === +accepting AMQP connection <0.457.0> (127.0.0.1:65271 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:55:26 === +connection <0.457.0> (127.0.0.1:65271 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 27-May-2017::12:55:29 === +accepting AMQP connection <0.470.0> (127.0.0.1:65277 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:55:29 === +connection <0.470.0> (127.0.0.1:65277 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 27-May-2017::12:55:30 === +accepting AMQP connection <0.477.0> (127.0.0.1:65278 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:55:30 === +connection <0.477.0> (127.0.0.1:65278 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 27-May-2017::12:55:42 === +closing AMQP connection <0.477.0> (127.0.0.1:65278 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 27-May-2017::12:55:42 === +closing AMQP connection <0.457.0> (127.0.0.1:65271 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 27-May-2017::12:55:45 === +accepting AMQP connection <0.497.0> (127.0.0.1:65289 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:55:45 === +connection <0.497.0> (127.0.0.1:65289 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 27-May-2017::12:55:49 === +accepting AMQP connection <0.508.0> (127.0.0.1:65293 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:55:49 === +connection <0.508.0> (127.0.0.1:65293 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 27-May-2017::12:56:46 === +closing AMQP connection <0.470.0> (127.0.0.1:65277 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 27-May-2017::12:56:49 === +accepting AMQP connection <0.535.0> (127.0.0.1:65330 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:56:49 === +connection <0.535.0> (127.0.0.1:65330 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 27-May-2017::12:56:52 === +accepting AMQP connection <0.544.0> (127.0.0.1:65336 -> 127.0.0.1:4000) + +=INFO REPORT==== 27-May-2017::12:56:52 === +connection <0.544.0> (127.0.0.1:65336 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 27-May-2017::13:34:10 === +closing AMQP connection <0.508.0> (127.0.0.1:65293 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 27-May-2017::13:34:10 === +closing AMQP connection <0.497.0> (127.0.0.1:65289 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 28-May-2017::02:50:36 === +closing AMQP connection <0.535.0> (127.0.0.1:65330 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-May-2017::02:52:07 === +accepting AMQP connection <0.16071.0> (127.0.0.1:53232 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-May-2017::02:52:07 === +connection <0.16071.0> (127.0.0.1:53232 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 29-May-2017::02:38:05 === +closing AMQP connection <0.16071.0> (127.0.0.1:53232 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 29-May-2017::02:39:35 === +accepting AMQP connection <0.10647.1> (127.0.0.1:59695 -> 127.0.0.1:4000) + +=INFO REPORT==== 29-May-2017::02:39:35 === +connection <0.10647.1> (127.0.0.1:59695 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 29-May-2017::06:20:37 === +closing AMQP connection <0.10647.1> (127.0.0.1:59695 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 29-May-2017::06:22:05 === +accepting AMQP connection <0.15010.1> (127.0.0.1:59454 -> 127.0.0.1:4000) + +=INFO REPORT==== 29-May-2017::06:22:05 === +connection <0.15010.1> (127.0.0.1:59454 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 29-May-2017::20:56:11 === +closing AMQP connection <0.15010.1> (127.0.0.1:59454 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 29-May-2017::20:57:41 === +accepting AMQP connection <0.32152.1> (127.0.0.1:57691 -> 127.0.0.1:4000) + +=INFO REPORT==== 29-May-2017::20:57:41 === +connection <0.32152.1> (127.0.0.1:57691 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::12:30:09 === +closing AMQP connection <0.32152.1> (127.0.0.1:57691 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-May-2017::12:31:41 === +accepting AMQP connection <0.17667.2> (127.0.0.1:60209 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-May-2017::12:31:41 === +connection <0.17667.2> (127.0.0.1:60209 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::16:04:56 === +closing AMQP connection <0.544.0> (127.0.0.1:65336 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-May-2017::16:05:02 === +accepting AMQP connection <0.21843.2> (127.0.0.1:50062 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-May-2017::16:05:02 === +connection <0.21843.2> (127.0.0.1:50062 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::16:15:18 === +closing AMQP connection <0.21843.2> (127.0.0.1:50062 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-May-2017::16:15:24 === +accepting AMQP connection <0.22058.2> (127.0.0.1:52195 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-May-2017::16:15:24 === +connection <0.22058.2> (127.0.0.1:52195 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::16:16:21 === +closing AMQP connection <0.22058.2> (127.0.0.1:52195 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-May-2017::16:16:27 === +accepting AMQP connection <0.22091.2> (127.0.0.1:52445 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-May-2017::16:16:27 === +connection <0.22091.2> (127.0.0.1:52445 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::16:18:41 === +closing AMQP connection <0.22091.2> (127.0.0.1:52445 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-May-2017::16:18:47 === +accepting AMQP connection <0.22148.2> (127.0.0.1:53293 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-May-2017::16:18:47 === +connection <0.22148.2> (127.0.0.1:53293 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-May-2017::16:49:49 === +closing AMQP connection <0.17667.2> (127.0.0.1:60209 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 1-Jun-2017::20:45:33 === +closing AMQP connection <0.22148.2> (127.0.0.1:53293 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 1-Jun-2017::20:45:57 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 1-Jun-2017::20:45:57 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Memory limit set to 6435MB of 16087MB total. + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Disk free limit set to 50MB + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Starting rabbit_node_monitor + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 1-Jun-2017::20:46:03 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Statistics database started. + +=INFO REPORT==== 1-Jun-2017::20:46:03 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 1-Jun-2017::21:33:35 === +accepting AMQP connection <0.1333.0> (127.0.0.1:55919 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:33:35 === +connection <0.1333.0> (127.0.0.1:55919 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 1-Jun-2017::21:35:47 === +closing AMQP connection <0.1333.0> (127.0.0.1:55919 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 1-Jun-2017::21:35:53 === +accepting AMQP connection <0.1391.0> (127.0.0.1:56213 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:35:53 === +connection <0.1391.0> (127.0.0.1:56213 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 1-Jun-2017::21:36:05 === +closing AMQP connection <0.1391.0> (127.0.0.1:56213 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 1-Jun-2017::21:36:11 === +accepting AMQP connection <0.1410.0> (127.0.0.1:56296 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:36:11 === +connection <0.1410.0> (127.0.0.1:56296 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 1-Jun-2017::21:38:43 === +closing AMQP connection <0.1410.0> (127.0.0.1:56296 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 1-Jun-2017::21:38:50 === +accepting AMQP connection <0.1471.0> (127.0.0.1:56738 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:38:50 === +connection <0.1471.0> (127.0.0.1:56738 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 1-Jun-2017::21:44:13 === +accepting AMQP connection <0.1583.0> (127.0.0.1:57501 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:44:13 === +connection <0.1583.0> (127.0.0.1:57501 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 1-Jun-2017::21:44:18 === +accepting AMQP connection <0.1595.0> (127.0.0.1:57508 -> 127.0.0.1:4000) + +=INFO REPORT==== 1-Jun-2017::21:44:18 === +connection <0.1595.0> (127.0.0.1:57508 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:00:00 === +closing AMQP connection <0.1471.0> (127.0.0.1:56738 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:00:06 === +accepting AMQP connection <0.4125.0> (127.0.0.1:60163 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:00:06 === +connection <0.4125.0> (127.0.0.1:60163 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:00:30 === +closing AMQP connection <0.4125.0> (127.0.0.1:60163 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:00:36 === +accepting AMQP connection <0.4147.0> (127.0.0.1:60179 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:00:36 === +connection <0.4147.0> (127.0.0.1:60179 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:00:38 === +closing AMQP connection <0.4147.0> (127.0.0.1:60179 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:00:44 === +accepting AMQP connection <0.4162.0> (127.0.0.1:60191 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:00:44 === +connection <0.4162.0> (127.0.0.1:60191 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:03:50 === +closing AMQP connection <0.4162.0> (127.0.0.1:60191 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:03:56 === +accepting AMQP connection <0.4233.0> (127.0.0.1:60320 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:03:56 === +connection <0.4233.0> (127.0.0.1:60320 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:04:01 === +closing AMQP connection <0.1595.0> (127.0.0.1:57508 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:04:01 === +closing AMQP connection <0.1583.0> (127.0.0.1:57501 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:04:04 === +accepting AMQP connection <0.4251.0> (127.0.0.1:60326 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:04:04 === +connection <0.4251.0> (127.0.0.1:60326 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:04:08 === +accepting AMQP connection <0.4263.0> (127.0.0.1:60330 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:04:08 === +connection <0.4263.0> (127.0.0.1:60330 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:05:45 === +closing AMQP connection <0.4233.0> (127.0.0.1:60320 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:05:50 === +accepting AMQP connection <0.4302.0> (127.0.0.1:60403 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:05:50 === +connection <0.4302.0> (127.0.0.1:60403 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:06:45 === +closing AMQP connection <0.4302.0> (127.0.0.1:60403 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:06:51 === +accepting AMQP connection <0.4333.0> (127.0.0.1:60448 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:06:51 === +connection <0.4333.0> (127.0.0.1:60448 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:10:53 === +accepting AMQP connection <0.4419.0> (127.0.0.1:60629 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:10:53 === +connection <0.4419.0> (127.0.0.1:60629 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:11:59 === +closing AMQP connection <0.4419.0> (127.0.0.1:60629 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:12:33 === +accepting AMQP connection <0.4457.0> (127.0.0.1:61156 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:12:33 === +connection <0.4457.0> (127.0.0.1:61156 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:17:11 === +closing AMQP connection <0.4457.0> (127.0.0.1:61156 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:17:17 === +closing AMQP connection <0.4333.0> (127.0.0.1:60448 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:17:23 === +accepting AMQP connection <0.4555.0> (127.0.0.1:62418 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:17:23 === +connection <0.4555.0> (127.0.0.1:62418 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:17:30 === +closing AMQP connection <0.4555.0> (127.0.0.1:62418 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:17:35 === +accepting AMQP connection <0.4573.0> (127.0.0.1:62480 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:17:35 === +connection <0.4573.0> (127.0.0.1:62480 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:17:48 === +accepting AMQP connection <0.4587.0> (127.0.0.1:62572 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:17:48 === +connection <0.4587.0> (127.0.0.1:62572 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:18:05 === +closing AMQP connection <0.4587.0> (127.0.0.1:62572 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:18:15 === +closing AMQP connection <0.4573.0> (127.0.0.1:62480 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:18:21 === +accepting AMQP connection <0.4607.0> (127.0.0.1:62756 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:18:21 === +connection <0.4607.0> (127.0.0.1:62756 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:18:43 === +accepting AMQP connection <0.4624.0> (127.0.0.1:62836 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:18:43 === +connection <0.4624.0> (127.0.0.1:62836 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:20:14 === +closing AMQP connection <0.4624.0> (127.0.0.1:62836 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:20:20 === +closing AMQP connection <0.4607.0> (127.0.0.1:62756 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:20:26 === +accepting AMQP connection <0.4666.0> (127.0.0.1:63020 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:20:26 === +connection <0.4666.0> (127.0.0.1:63020 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:20:40 === +accepting AMQP connection <0.4681.0> (127.0.0.1:63096 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:20:40 === +connection <0.4681.0> (127.0.0.1:63096 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:22:04 === +closing AMQP connection <0.4681.0> (127.0.0.1:63096 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:22:21 === +closing AMQP connection <0.4666.0> (127.0.0.1:63020 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:22:27 === +accepting AMQP connection <0.4724.0> (127.0.0.1:63478 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:22:27 === +connection <0.4724.0> (127.0.0.1:63478 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:23:00 === +closing AMQP connection <0.4724.0> (127.0.0.1:63478 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:23:06 === +accepting AMQP connection <0.4748.0> (127.0.0.1:63525 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:23:06 === +connection <0.4748.0> (127.0.0.1:63525 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:24:09 === +closing AMQP connection <0.4748.0> (127.0.0.1:63525 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:24:21 === +accepting AMQP connection <0.4784.0> (127.0.0.1:63615 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:24:21 === +connection <0.4784.0> (127.0.0.1:63615 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:24:36 === +closing AMQP connection <0.4784.0> (127.0.0.1:63615 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:24:43 === +accepting AMQP connection <0.4803.0> (127.0.0.1:63670 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:24:43 === +connection <0.4803.0> (127.0.0.1:63670 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:24:44 === +closing AMQP connection <0.4803.0> (127.0.0.1:63670 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:24:51 === +accepting AMQP connection <0.4818.0> (127.0.0.1:63715 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:24:51 === +connection <0.4818.0> (127.0.0.1:63715 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:25:09 === +accepting AMQP connection <0.4836.0> (127.0.0.1:63815 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:25:09 === +connection <0.4836.0> (127.0.0.1:63815 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:27:05 === +closing AMQP connection <0.4836.0> (127.0.0.1:63815 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:27:14 === +closing AMQP connection <0.4818.0> (127.0.0.1:63715 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:27:20 === +accepting AMQP connection <0.4884.0> (127.0.0.1:64541 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:27:20 === +connection <0.4884.0> (127.0.0.1:64541 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:27:30 === +accepting AMQP connection <0.4898.0> (127.0.0.1:64620 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:27:30 === +connection <0.4898.0> (127.0.0.1:64620 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:30:08 === +closing AMQP connection <0.4898.0> (127.0.0.1:64620 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:30:14 === +closing AMQP connection <0.4884.0> (127.0.0.1:64541 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:30:20 === +accepting AMQP connection <0.4960.0> (127.0.0.1:64978 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:30:20 === +connection <0.4960.0> (127.0.0.1:64978 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:30:41 === +closing AMQP connection <0.4960.0> (127.0.0.1:64978 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:30:47 === +accepting AMQP connection <0.4982.0> (127.0.0.1:65012 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:30:47 === +connection <0.4982.0> (127.0.0.1:65012 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:30:50 === +closing AMQP connection <0.4982.0> (127.0.0.1:65012 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:30:55 === +accepting AMQP connection <0.4996.0> (127.0.0.1:65023 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:30:55 === +connection <0.4996.0> (127.0.0.1:65023 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:32:43 === +closing AMQP connection <0.4996.0> (127.0.0.1:65023 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:32:49 === +accepting AMQP connection <0.5045.0> (127.0.0.1:65125 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:32:49 === +connection <0.5045.0> (127.0.0.1:65125 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:32:58 === +accepting AMQP connection <0.5059.0> (127.0.0.1:65148 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:32:58 === +connection <0.5059.0> (127.0.0.1:65148 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:41:06 === +closing AMQP connection <0.5059.0> (127.0.0.1:65148 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:41:17 === +closing AMQP connection <0.5045.0> (127.0.0.1:65125 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:41:23 === +accepting AMQP connection <0.5223.0> (127.0.0.1:51027 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:41:23 === +connection <0.5223.0> (127.0.0.1:51027 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::00:45:46 === +accepting AMQP connection <0.5315.0> (127.0.0.1:51721 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:45:46 === +connection <0.5315.0> (127.0.0.1:51721 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:51:43 === +closing AMQP connection <0.5315.0> (127.0.0.1:51721 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::00:51:51 === +closing AMQP connection <0.5223.0> (127.0.0.1:51027 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:51:57 === +accepting AMQP connection <0.5439.0> (127.0.0.1:52624 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:51:57 === +connection <0.5439.0> (127.0.0.1:52624 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:53:09 === +closing AMQP connection <0.5439.0> (127.0.0.1:52624 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:53:15 === +accepting AMQP connection <0.5476.0> (127.0.0.1:52761 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:53:15 === +connection <0.5476.0> (127.0.0.1:52761 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::00:53:15 === +closing AMQP connection <0.5476.0> (127.0.0.1:52761 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::00:53:21 === +accepting AMQP connection <0.5485.0> (127.0.0.1:52777 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::00:53:21 === +connection <0.5485.0> (127.0.0.1:52777 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:01:22 === +closing AMQP connection <0.5485.0> (127.0.0.1:52777 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:01:29 === +accepting AMQP connection <0.5648.0> (127.0.0.1:54248 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:01:29 === +connection <0.5648.0> (127.0.0.1:54248 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:04:36 === +closing AMQP connection <0.5648.0> (127.0.0.1:54248 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:04:42 === +accepting AMQP connection <0.5722.0> (127.0.0.1:54842 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:04:42 === +connection <0.5722.0> (127.0.0.1:54842 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:06:14 === +closing AMQP connection <0.5722.0> (127.0.0.1:54842 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:06:20 === +accepting AMQP connection <0.5764.0> (127.0.0.1:55135 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:06:20 === +connection <0.5764.0> (127.0.0.1:55135 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:11:38 === +closing AMQP connection <0.5764.0> (127.0.0.1:55135 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:11:45 === +accepting AMQP connection <0.5878.0> (127.0.0.1:55533 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:11:45 === +connection <0.5878.0> (127.0.0.1:55533 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:15:51 === +closing AMQP connection <0.5878.0> (127.0.0.1:55533 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:15:57 === +accepting AMQP connection <0.5969.0> (127.0.0.1:55768 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:15:57 === +connection <0.5969.0> (127.0.0.1:55768 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:19:22 === +closing AMQP connection <0.5969.0> (127.0.0.1:55768 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:19:28 === +accepting AMQP connection <0.6047.0> (127.0.0.1:56004 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:19:28 === +connection <0.6047.0> (127.0.0.1:56004 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:21:27 === +closing AMQP connection <0.6047.0> (127.0.0.1:56004 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:21:33 === +accepting AMQP connection <0.6098.0> (127.0.0.1:56181 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:21:33 === +connection <0.6098.0> (127.0.0.1:56181 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::01:22:38 === +accepting AMQP connection <0.6130.0> (127.0.0.1:56419 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:22:38 === +connection <0.6130.0> (127.0.0.1:56419 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:23:51 === +closing AMQP connection <0.6130.0> (127.0.0.1:56419 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::01:24:04 === +closing AMQP connection <0.6098.0> (127.0.0.1:56181 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:24:09 === +accepting AMQP connection <0.6167.0> (127.0.0.1:56693 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:24:09 === +connection <0.6167.0> (127.0.0.1:56693 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::01:24:59 === +accepting AMQP connection <0.6194.0> (127.0.0.1:56786 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:24:59 === +connection <0.6194.0> (127.0.0.1:56786 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:28:11 === +closing AMQP connection <0.6194.0> (127.0.0.1:56786 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:28:43 === +accepting AMQP connection <0.6269.0> (127.0.0.1:57855 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:28:43 === +connection <0.6269.0> (127.0.0.1:57855 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:29:22 === +closing AMQP connection <0.6269.0> (127.0.0.1:57855 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:29:40 === +accepting AMQP connection <0.6293.0> (127.0.0.1:58053 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:29:40 === +connection <0.6293.0> (127.0.0.1:58053 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:29:47 === +closing AMQP connection <0.6293.0> (127.0.0.1:58053 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:30:11 === +accepting AMQP connection <0.6310.0> (127.0.0.1:58149 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:30:11 === +connection <0.6310.0> (127.0.0.1:58149 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:30:12 === +closing AMQP connection <0.6310.0> (127.0.0.1:58149 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::01:30:23 === +closing AMQP connection <0.6167.0> (127.0.0.1:56693 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:30:29 === +accepting AMQP connection <0.6325.0> (127.0.0.1:58196 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:30:29 === +connection <0.6325.0> (127.0.0.1:58196 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::01:30:54 === +accepting AMQP connection <0.6343.0> (127.0.0.1:58256 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:30:54 === +connection <0.6343.0> (127.0.0.1:58256 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:31:57 === +closing AMQP connection <0.6343.0> (127.0.0.1:58256 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::01:32:03 === +closing AMQP connection <0.6325.0> (127.0.0.1:58196 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:32:09 === +accepting AMQP connection <0.6376.0> (127.0.0.1:58650 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:32:09 === +connection <0.6376.0> (127.0.0.1:58650 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::01:32:19 === +accepting AMQP connection <0.6390.0> (127.0.0.1:58714 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:32:19 === +connection <0.6390.0> (127.0.0.1:58714 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:39:53 === +closing AMQP connection <0.6376.0> (127.0.0.1:58650 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:39:58 === +accepting AMQP connection <0.6542.0> (127.0.0.1:60315 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:39:58 === +connection <0.6542.0> (127.0.0.1:60315 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:40:09 === +closing AMQP connection <0.6542.0> (127.0.0.1:60315 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:40:15 === +accepting AMQP connection <0.6559.0> (127.0.0.1:60387 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:40:15 === +connection <0.6559.0> (127.0.0.1:60387 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:40:42 === +closing AMQP connection <0.6390.0> (127.0.0.1:58714 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::01:40:44 === +closing AMQP connection <0.6559.0> (127.0.0.1:60387 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:40:50 === +accepting AMQP connection <0.6583.0> (127.0.0.1:60579 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:40:50 === +connection <0.6583.0> (127.0.0.1:60579 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:40:54 === +closing AMQP connection <0.6583.0> (127.0.0.1:60579 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:41:01 === +accepting AMQP connection <0.6599.0> (127.0.0.1:60629 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:41:01 === +connection <0.6599.0> (127.0.0.1:60629 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::01:41:19 === +accepting AMQP connection <0.6615.0> (127.0.0.1:60728 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:41:19 === +connection <0.6615.0> (127.0.0.1:60728 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:41:41 === +closing AMQP connection <0.6599.0> (127.0.0.1:60629 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:41:47 === +accepting AMQP connection <0.6633.0> (127.0.0.1:60879 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:41:47 === +connection <0.6633.0> (127.0.0.1:60879 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:42:23 === +closing AMQP connection <0.6633.0> (127.0.0.1:60879 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:42:29 === +accepting AMQP connection <0.6659.0> (127.0.0.1:61129 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:42:29 === +connection <0.6659.0> (127.0.0.1:61129 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:44:09 === +closing AMQP connection <0.6615.0> (127.0.0.1:60728 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:44:29 === +accepting AMQP connection <0.6708.0> (127.0.0.1:61621 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:44:29 === +connection <0.6708.0> (127.0.0.1:61621 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:46:19 === +closing AMQP connection <0.6708.0> (127.0.0.1:61621 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:46:36 === +accepting AMQP connection <0.6753.0> (127.0.0.1:61852 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:46:36 === +connection <0.6753.0> (127.0.0.1:61852 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:47:31 === +closing AMQP connection <0.6659.0> (127.0.0.1:61129 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:47:37 === +accepting AMQP connection <0.6781.0> (127.0.0.1:62101 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:47:37 === +connection <0.6781.0> (127.0.0.1:62101 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:48:42 === +closing AMQP connection <0.6781.0> (127.0.0.1:62101 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:48:48 === +accepting AMQP connection <0.6816.0> (127.0.0.1:62529 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:48:48 === +connection <0.6816.0> (127.0.0.1:62529 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:50:11 === +closing AMQP connection <0.6816.0> (127.0.0.1:62529 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:50:17 === +accepting AMQP connection <0.6858.0> (127.0.0.1:62960 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:50:17 === +connection <0.6858.0> (127.0.0.1:62960 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:50:36 === +closing AMQP connection <0.6858.0> (127.0.0.1:62960 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:50:42 === +accepting AMQP connection <0.6877.0> (127.0.0.1:63054 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:50:42 === +connection <0.6877.0> (127.0.0.1:63054 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:51:12 === +closing AMQP connection <0.6877.0> (127.0.0.1:63054 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:51:18 === +accepting AMQP connection <0.6901.0> (127.0.0.1:63253 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:51:18 === +connection <0.6901.0> (127.0.0.1:63253 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:51:33 === +closing AMQP connection <0.6901.0> (127.0.0.1:63253 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:51:39 === +accepting AMQP connection <0.6920.0> (127.0.0.1:63334 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:51:39 === +connection <0.6920.0> (127.0.0.1:63334 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:52:25 === +closing AMQP connection <0.6920.0> (127.0.0.1:63334 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:52:31 === +accepting AMQP connection <0.6951.0> (127.0.0.1:63536 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:52:31 === +connection <0.6951.0> (127.0.0.1:63536 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:53:37 === +closing AMQP connection <0.6951.0> (127.0.0.1:63536 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:53:42 === +accepting AMQP connection <0.6985.0> (127.0.0.1:63707 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:53:42 === +connection <0.6985.0> (127.0.0.1:63707 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:53:57 === +closing AMQP connection <0.6985.0> (127.0.0.1:63707 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:54:39 === +accepting AMQP connection <0.7016.0> (127.0.0.1:64024 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:54:39 === +connection <0.7016.0> (127.0.0.1:64024 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:58:00 === +closing AMQP connection <0.7016.0> (127.0.0.1:64024 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:58:12 === +accepting AMQP connection <0.7095.0> (127.0.0.1:64759 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:58:12 === +connection <0.7095.0> (127.0.0.1:64759 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::01:58:57 === +closing AMQP connection <0.7095.0> (127.0.0.1:64759 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::01:59:03 === +accepting AMQP connection <0.7123.0> (127.0.0.1:65044 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::01:59:03 === +connection <0.7123.0> (127.0.0.1:65044 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:00:33 === +closing AMQP connection <0.7123.0> (127.0.0.1:65044 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::02:01:18 === +accepting AMQP connection <0.7178.0> (127.0.0.1:49416 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:01:18 === +connection <0.7178.0> (127.0.0.1:49416 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:03:17 === +closing AMQP connection <0.7178.0> (127.0.0.1:49416 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::02:03:23 === +accepting AMQP connection <0.7229.0> (127.0.0.1:49991 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:03:23 === +connection <0.7229.0> (127.0.0.1:49991 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:03:37 === +closing AMQP connection <0.6753.0> (127.0.0.1:61852 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::02:04:17 === +accepting AMQP connection <0.7257.0> (127.0.0.1:50192 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:04:17 === +connection <0.7257.0> (127.0.0.1:50192 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:04:40 === +closing AMQP connection <0.7229.0> (127.0.0.1:49991 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::02:04:45 === +accepting AMQP connection <0.7275.0> (127.0.0.1:50255 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:04:45 === +connection <0.7275.0> (127.0.0.1:50255 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:05:10 === +closing AMQP connection <0.7257.0> (127.0.0.1:50192 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::02:05:16 === +closing AMQP connection <0.7275.0> (127.0.0.1:50255 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::02:05:22 === +accepting AMQP connection <0.7299.0> (127.0.0.1:50319 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:05:22 === +connection <0.7299.0> (127.0.0.1:50319 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::02:05:37 === +accepting AMQP connection <0.7314.0> (127.0.0.1:50351 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::02:05:37 === +connection <0.7314.0> (127.0.0.1:50351 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::02:13:11 === +closing AMQP connection <0.7299.0> (127.0.0.1:50319 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::02:13:12 === +closing AMQP connection <0.7314.0> (127.0.0.1:50351 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::02:13:12 === +closing AMQP connection <0.4263.0> (127.0.0.1:60330 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::02:13:12 === +closing AMQP connection <0.4251.0> (127.0.0.1:60326 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::03:12:34 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 2-Jun-2017::03:12:34 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/chroma/fund/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/chroma/fund/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/chroma/fund/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Memory limit set to 5479MB of 13699MB total. + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Disk free limit set to 50MB + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Starting rabbit_node_monitor + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 2-Jun-2017::03:12:37 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Statistics database started. + +=INFO REPORT==== 2-Jun-2017::03:12:37 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 2-Jun-2017::03:13:15 === +accepting AMQP connection <0.458.0> (127.0.0.1:63574 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:13:15 === +connection <0.458.0> (127.0.0.1:63574 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::03:13:17 === +accepting AMQP connection <0.470.0> (127.0.0.1:63584 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:13:17 === +connection <0.470.0> (127.0.0.1:63584 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::03:13:18 === +accepting AMQP connection <0.484.0> (127.0.0.1:63591 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:13:18 === +connection <0.484.0> (127.0.0.1:63591 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::03:13:36 === +closing AMQP connection <0.484.0> (127.0.0.1:63591 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::03:13:36 === +closing AMQP connection <0.458.0> (127.0.0.1:63574 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::03:13:38 === +accepting AMQP connection <0.499.0> (127.0.0.1:63646 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:13:38 === +connection <0.499.0> (127.0.0.1:63646 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::03:13:42 === +accepting AMQP connection <0.511.0> (127.0.0.1:63664 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:13:42 === +connection <0.511.0> (127.0.0.1:63664 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 2-Jun-2017::03:14:48 === +accepting AMQP connection <0.539.0> (127.0.0.1:63829 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:14:48 === +connection <0.539.0> (127.0.0.1:63829 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::03:15:08 === +closing AMQP connection <0.470.0> (127.0.0.1:63584 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 2-Jun-2017::03:15:15 === +accepting AMQP connection <0.555.0> (127.0.0.1:63947 -> 127.0.0.1:4000) + +=INFO REPORT==== 2-Jun-2017::03:15:15 === +connection <0.555.0> (127.0.0.1:63947 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 2-Jun-2017::03:30:46 === +closing AMQP connection <0.555.0> (127.0.0.1:63947 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::03:30:47 === +closing AMQP connection <0.539.0> (127.0.0.1:63829 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::03:30:47 === +closing AMQP connection <0.511.0> (127.0.0.1:63664 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=WARNING REPORT==== 2-Jun-2017::03:30:47 === +closing AMQP connection <0.499.0> (127.0.0.1:63646 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::21:59:31 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 4-Jun-2017::21:59:31 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Memory limit set to 5904MB of 14761MB total. + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Disk free limit set to 50MB + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Starting rabbit_node_monitor + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 4-Jun-2017::21:59:34 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Statistics database started. + +=INFO REPORT==== 4-Jun-2017::21:59:34 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 4-Jun-2017::22:00:01 === +accepting AMQP connection <0.455.0> (127.0.0.1:61170 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:00:01 === +connection <0.455.0> (127.0.0.1:61170 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:01:30 === +closing AMQP connection <0.455.0> (127.0.0.1:61170 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:02:06 === +accepting AMQP connection <0.508.0> (127.0.0.1:61651 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:02:06 === +connection <0.508.0> (127.0.0.1:61651 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:07:01 === +closing AMQP connection <0.508.0> (127.0.0.1:61651 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:09:13 === +accepting AMQP connection <0.659.0> (127.0.0.1:63642 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:09:13 === +connection <0.659.0> (127.0.0.1:63642 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:09:21 === +closing AMQP connection <0.659.0> (127.0.0.1:63642 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:09:27 === +accepting AMQP connection <0.677.0> (127.0.0.1:63721 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:09:27 === +connection <0.677.0> (127.0.0.1:63721 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:12:10 === +closing AMQP connection <0.677.0> (127.0.0.1:63721 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:12:16 === +accepting AMQP connection <0.743.0> (127.0.0.1:64634 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:12:16 === +connection <0.743.0> (127.0.0.1:64634 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:16:51 === +closing AMQP connection <0.743.0> (127.0.0.1:64634 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:17:01 === +accepting AMQP connection <0.843.0> (127.0.0.1:49604 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:17:01 === +connection <0.843.0> (127.0.0.1:49604 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:17:16 === +closing AMQP connection <0.843.0> (127.0.0.1:49604 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:17:22 === +accepting AMQP connection <0.862.0> (127.0.0.1:49707 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:17:22 === +connection <0.862.0> (127.0.0.1:49707 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::22:17:48 === +closing AMQP connection <0.862.0> (127.0.0.1:49707 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::22:17:54 === +accepting AMQP connection <0.887.0> (127.0.0.1:49931 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::22:17:54 === +connection <0.887.0> (127.0.0.1:49931 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:11:25 === +closing AMQP connection <0.887.0> (127.0.0.1:49931 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:11:31 === +accepting AMQP connection <0.1897.0> (127.0.0.1:64629 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:11:31 === +connection <0.1897.0> (127.0.0.1:64629 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:12:15 === +closing AMQP connection <0.1897.0> (127.0.0.1:64629 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:12:21 === +accepting AMQP connection <0.1926.0> (127.0.0.1:64854 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:12:21 === +connection <0.1926.0> (127.0.0.1:64854 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:13:31 === +closing AMQP connection <0.1926.0> (127.0.0.1:64854 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:13:37 === +accepting AMQP connection <0.1963.0> (127.0.0.1:65197 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:13:37 === +connection <0.1963.0> (127.0.0.1:65197 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:14:06 === +closing AMQP connection <0.1963.0> (127.0.0.1:65197 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:14:12 === +accepting AMQP connection <0.1986.0> (127.0.0.1:65357 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:14:12 === +connection <0.1986.0> (127.0.0.1:65357 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:16:00 === +closing AMQP connection <0.1986.0> (127.0.0.1:65357 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:16:36 === +accepting AMQP connection <0.2045.0> (127.0.0.1:49639 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:16:36 === +connection <0.2045.0> (127.0.0.1:49639 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:17:08 === +closing AMQP connection <0.2045.0> (127.0.0.1:49639 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:17:14 === +accepting AMQP connection <0.2069.0> (127.0.0.1:49826 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:17:14 === +connection <0.2069.0> (127.0.0.1:49826 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:35:31 === +closing AMQP connection <0.2069.0> (127.0.0.1:49826 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:35:37 === +accepting AMQP connection <0.2425.0> (127.0.0.1:50633 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:35:37 === +connection <0.2425.0> (127.0.0.1:50633 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:35:42 === +closing AMQP connection <0.2425.0> (127.0.0.1:50633 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:39:28 === +accepting AMQP connection <0.2509.0> (127.0.0.1:50720 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:39:28 === +connection <0.2509.0> (127.0.0.1:50720 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:39:57 === +closing AMQP connection <0.2509.0> (127.0.0.1:50720 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:40:02 === +accepting AMQP connection <0.2533.0> (127.0.0.1:50743 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:40:02 === +connection <0.2533.0> (127.0.0.1:50743 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:40:24 === +closing AMQP connection <0.2533.0> (127.0.0.1:50743 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:40:30 === +accepting AMQP connection <0.2554.0> (127.0.0.1:50764 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:40:30 === +connection <0.2554.0> (127.0.0.1:50764 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:40:45 === +closing AMQP connection <0.2554.0> (127.0.0.1:50764 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:41:21 === +accepting AMQP connection <0.2582.0> (127.0.0.1:50792 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:41:21 === +connection <0.2582.0> (127.0.0.1:50792 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:42:24 === +closing AMQP connection <0.2582.0> (127.0.0.1:50792 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:42:30 === +accepting AMQP connection <0.2618.0> (127.0.0.1:51069 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:42:30 === +connection <0.2618.0> (127.0.0.1:51069 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:42:34 === +closing AMQP connection <0.2618.0> (127.0.0.1:51069 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:42:39 === +accepting AMQP connection <0.2634.0> (127.0.0.1:51120 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:42:39 === +connection <0.2634.0> (127.0.0.1:51120 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:43:57 === +closing AMQP connection <0.2634.0> (127.0.0.1:51120 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:44:03 === +accepting AMQP connection <0.2672.0> (127.0.0.1:51548 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:44:03 === +connection <0.2672.0> (127.0.0.1:51548 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:44:53 === +closing AMQP connection <0.2672.0> (127.0.0.1:51548 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:44:58 === +accepting AMQP connection <0.2703.0> (127.0.0.1:51816 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:44:58 === +connection <0.2703.0> (127.0.0.1:51816 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:45:26 === +closing AMQP connection <0.2703.0> (127.0.0.1:51816 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:45:32 === +accepting AMQP connection <0.2727.0> (127.0.0.1:51986 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:45:32 === +connection <0.2727.0> (127.0.0.1:51986 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:45:46 === +closing AMQP connection <0.2727.0> (127.0.0.1:51986 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:45:52 === +accepting AMQP connection <0.2745.0> (127.0.0.1:52085 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:45:52 === +connection <0.2745.0> (127.0.0.1:52085 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:46:15 === +closing AMQP connection <0.2745.0> (127.0.0.1:52085 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:46:21 === +accepting AMQP connection <0.2767.0> (127.0.0.1:52221 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:46:21 === +connection <0.2767.0> (127.0.0.1:52221 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:46:38 === +closing AMQP connection <0.2767.0> (127.0.0.1:52221 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:46:45 === +accepting AMQP connection <0.2787.0> (127.0.0.1:52353 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:46:45 === +connection <0.2787.0> (127.0.0.1:52353 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:47:04 === +closing AMQP connection <0.2787.0> (127.0.0.1:52353 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:47:10 === +accepting AMQP connection <0.2808.0> (127.0.0.1:52477 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:47:10 === +connection <0.2808.0> (127.0.0.1:52477 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:47:25 === +closing AMQP connection <0.2808.0> (127.0.0.1:52477 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:47:32 === +accepting AMQP connection <0.2829.0> (127.0.0.1:52585 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:47:32 === +connection <0.2829.0> (127.0.0.1:52585 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:47:35 === +closing AMQP connection <0.2829.0> (127.0.0.1:52585 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:47:42 === +accepting AMQP connection <0.2845.0> (127.0.0.1:52637 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:47:42 === +connection <0.2845.0> (127.0.0.1:52637 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:47:58 === +closing AMQP connection <0.2845.0> (127.0.0.1:52637 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:48:04 === +accepting AMQP connection <0.2864.0> (127.0.0.1:52671 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:48:04 === +connection <0.2864.0> (127.0.0.1:52671 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:48:10 === +closing AMQP connection <0.2864.0> (127.0.0.1:52671 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:48:16 === +accepting AMQP connection <0.2881.0> (127.0.0.1:52688 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:48:16 === +connection <0.2881.0> (127.0.0.1:52688 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:49:14 === +closing AMQP connection <0.2881.0> (127.0.0.1:52688 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:49:20 === +accepting AMQP connection <0.2913.0> (127.0.0.1:52735 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:49:20 === +connection <0.2913.0> (127.0.0.1:52735 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:49:36 === +closing AMQP connection <0.2913.0> (127.0.0.1:52735 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:49:42 === +accepting AMQP connection <0.2934.0> (127.0.0.1:52755 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:49:42 === +connection <0.2934.0> (127.0.0.1:52755 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:50:40 === +closing AMQP connection <0.2934.0> (127.0.0.1:52755 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:50:46 === +accepting AMQP connection <0.2966.0> (127.0.0.1:52797 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:50:46 === +connection <0.2966.0> (127.0.0.1:52797 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:51:16 === +closing AMQP connection <0.2966.0> (127.0.0.1:52797 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:51:26 === +accepting AMQP connection <0.2991.0> (127.0.0.1:52844 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:51:26 === +connection <0.2991.0> (127.0.0.1:52844 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:51:28 === +closing AMQP connection <0.2991.0> (127.0.0.1:52844 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:51:34 === +accepting AMQP connection <0.3008.0> (127.0.0.1:52857 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:51:34 === +connection <0.3008.0> (127.0.0.1:52857 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:51:54 === +closing AMQP connection <0.3008.0> (127.0.0.1:52857 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:52:00 === +accepting AMQP connection <0.3029.0> (127.0.0.1:52878 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:52:00 === +connection <0.3029.0> (127.0.0.1:52878 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:52:38 === +closing AMQP connection <0.3029.0> (127.0.0.1:52878 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:52:44 === +accepting AMQP connection <0.3054.0> (127.0.0.1:52905 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:52:44 === +connection <0.3054.0> (127.0.0.1:52905 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:52:53 === +closing AMQP connection <0.3054.0> (127.0.0.1:52905 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:52:59 === +accepting AMQP connection <0.3072.0> (127.0.0.1:52922 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:52:59 === +connection <0.3072.0> (127.0.0.1:52922 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:53:40 === +closing AMQP connection <0.3072.0> (127.0.0.1:52922 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:53:46 === +accepting AMQP connection <0.3100.0> (127.0.0.1:52946 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:53:46 === +connection <0.3100.0> (127.0.0.1:52946 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:54:09 === +closing AMQP connection <0.3100.0> (127.0.0.1:52946 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:54:14 === +accepting AMQP connection <0.3122.0> (127.0.0.1:52967 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:54:14 === +connection <0.3122.0> (127.0.0.1:52967 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:54:16 === +closing AMQP connection <0.3122.0> (127.0.0.1:52967 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:54:22 === +accepting AMQP connection <0.3138.0> (127.0.0.1:52981 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:54:22 === +connection <0.3138.0> (127.0.0.1:52981 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:54:29 === +closing AMQP connection <0.3138.0> (127.0.0.1:52981 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:54:34 === +accepting AMQP connection <0.3154.0> (127.0.0.1:52996 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:54:34 === +connection <0.3154.0> (127.0.0.1:52996 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:54:35 === +closing AMQP connection <0.3154.0> (127.0.0.1:52996 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:54:41 === +accepting AMQP connection <0.3163.0> (127.0.0.1:53009 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:54:41 === +connection <0.3163.0> (127.0.0.1:53009 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:55:11 === +closing AMQP connection <0.3163.0> (127.0.0.1:53009 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:55:17 === +accepting AMQP connection <0.3186.0> (127.0.0.1:53063 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:55:17 === +connection <0.3186.0> (127.0.0.1:53063 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 4-Jun-2017::23:55:33 === +closing AMQP connection <0.3186.0> (127.0.0.1:53063 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 4-Jun-2017::23:55:39 === +accepting AMQP connection <0.3208.0> (127.0.0.1:53090 -> 127.0.0.1:4000) + +=INFO REPORT==== 4-Jun-2017::23:55:39 === +connection <0.3208.0> (127.0.0.1:53090 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:00:21 === +closing AMQP connection <0.3208.0> (127.0.0.1:53090 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:00:26 === +accepting AMQP connection <0.3309.0> (127.0.0.1:53274 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:00:26 === +connection <0.3309.0> (127.0.0.1:53274 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:02:05 === +closing AMQP connection <0.3309.0> (127.0.0.1:53274 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:02:11 === +accepting AMQP connection <0.3355.0> (127.0.0.1:53376 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:02:11 === +connection <0.3355.0> (127.0.0.1:53376 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:02:56 === +closing AMQP connection <0.3355.0> (127.0.0.1:53376 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:03:02 === +accepting AMQP connection <0.3384.0> (127.0.0.1:53451 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:03:02 === +connection <0.3384.0> (127.0.0.1:53451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:03:25 === +closing AMQP connection <0.3384.0> (127.0.0.1:53451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:03:31 === +accepting AMQP connection <0.3406.0> (127.0.0.1:53472 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:03:31 === +connection <0.3406.0> (127.0.0.1:53472 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:03:32 === +closing AMQP connection <0.3406.0> (127.0.0.1:53472 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:03:37 === +accepting AMQP connection <0.3415.0> (127.0.0.1:53488 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:03:37 === +connection <0.3415.0> (127.0.0.1:53488 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:05:02 === +closing AMQP connection <0.3415.0> (127.0.0.1:53488 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:05:07 === +accepting AMQP connection <0.3454.0> (127.0.0.1:53566 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:05:07 === +connection <0.3454.0> (127.0.0.1:53566 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::00:06:18 === +closing AMQP connection <0.3454.0> (127.0.0.1:53566 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::00:06:23 === +accepting AMQP connection <0.3492.0> (127.0.0.1:53690 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::00:06:23 === +connection <0.3492.0> (127.0.0.1:53690 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:49:06 === +closing AMQP connection <0.3492.0> (127.0.0.1:53690 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:49:14 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 5-Jun-2017::23:49:14 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Memory limit set to 6144MB of 15360MB total. + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Disk free limit set to 50MB + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Starting rabbit_node_monitor + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 5-Jun-2017::23:49:18 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Statistics database started. + +=INFO REPORT==== 5-Jun-2017::23:49:18 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 5-Jun-2017::23:52:58 === +accepting AMQP connection <0.520.0> (127.0.0.1:62656 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:52:58 === +connection <0.520.0> (127.0.0.1:62656 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:53:08 === +closing AMQP connection <0.520.0> (127.0.0.1:62656 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:53:16 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 5-Jun-2017::23:53:16 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Memory limit set to 6145MB of 15363MB total. + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Disk free limit set to 50MB + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Starting rabbit_node_monitor + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 5-Jun-2017::23:53:19 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 5-Jun-2017::23:53:19 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 5-Jun-2017::23:53:20 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 5-Jun-2017::23:53:20 === +Statistics database started. + +=INFO REPORT==== 5-Jun-2017::23:53:20 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 5-Jun-2017::23:53:49 === +accepting AMQP connection <0.455.0> (127.0.0.1:62900 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:53:49 === +connection <0.455.0> (127.0.0.1:62900 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:55:06 === +closing AMQP connection <0.455.0> (127.0.0.1:62900 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:55:42 === +accepting AMQP connection <0.505.0> (127.0.0.1:63266 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:55:42 === +connection <0.505.0> (127.0.0.1:63266 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:56:40 === +closing AMQP connection <0.505.0> (127.0.0.1:63266 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:56:46 === +accepting AMQP connection <0.544.0> (127.0.0.1:63372 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:56:46 === +connection <0.544.0> (127.0.0.1:63372 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:56:56 === +closing AMQP connection <0.544.0> (127.0.0.1:63372 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:57:02 === +accepting AMQP connection <0.562.0> (127.0.0.1:63451 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:57:02 === +connection <0.562.0> (127.0.0.1:63451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:57:13 === +closing AMQP connection <0.562.0> (127.0.0.1:63451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:57:19 === +accepting AMQP connection <0.581.0> (127.0.0.1:63534 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:57:19 === +connection <0.581.0> (127.0.0.1:63534 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:57:55 === +closing AMQP connection <0.581.0> (127.0.0.1:63534 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:58:00 === +accepting AMQP connection <0.607.0> (127.0.0.1:63725 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:58:00 === +connection <0.607.0> (127.0.0.1:63725 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jun-2017::23:58:26 === +closing AMQP connection <0.607.0> (127.0.0.1:63725 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jun-2017::23:58:32 === +accepting AMQP connection <0.629.0> (127.0.0.1:63874 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jun-2017::23:58:32 === +connection <0.629.0> (127.0.0.1:63874 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:00:50 === +closing AMQP connection <0.629.0> (127.0.0.1:63874 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:00:56 === +accepting AMQP connection <0.686.0> (127.0.0.1:64033 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:00:56 === +connection <0.686.0> (127.0.0.1:64033 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:01:58 === +closing AMQP connection <0.686.0> (127.0.0.1:64033 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:02:07 === +accepting AMQP connection <0.721.0> (127.0.0.1:64369 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:02:07 === +connection <0.721.0> (127.0.0.1:64369 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:02:51 === +closing AMQP connection <0.721.0> (127.0.0.1:64369 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:02:57 === +accepting AMQP connection <0.750.0> (127.0.0.1:64421 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:02:57 === +connection <0.750.0> (127.0.0.1:64421 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:03:12 === +closing AMQP connection <0.750.0> (127.0.0.1:64421 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:03:18 === +accepting AMQP connection <0.770.0> (127.0.0.1:64438 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:03:18 === +connection <0.770.0> (127.0.0.1:64438 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:03:32 === +closing AMQP connection <0.770.0> (127.0.0.1:64438 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:03:38 === +accepting AMQP connection <0.789.0> (127.0.0.1:64451 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:03:38 === +connection <0.789.0> (127.0.0.1:64451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:04:35 === +closing AMQP connection <0.789.0> (127.0.0.1:64451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:04:41 === +accepting AMQP connection <0.821.0> (127.0.0.1:64695 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:04:41 === +connection <0.821.0> (127.0.0.1:64695 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:08:34 === +closing AMQP connection <0.821.0> (127.0.0.1:64695 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:08:39 === +accepting AMQP connection <0.908.0> (127.0.0.1:49370 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:08:39 === +connection <0.908.0> (127.0.0.1:49370 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:08:53 === +closing AMQP connection <0.908.0> (127.0.0.1:49370 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:08:59 === +accepting AMQP connection <0.927.0> (127.0.0.1:49469 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:08:59 === +connection <0.927.0> (127.0.0.1:49469 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:09:40 === +closing AMQP connection <0.927.0> (127.0.0.1:49469 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:09:46 === +accepting AMQP connection <0.956.0> (127.0.0.1:49685 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:09:46 === +connection <0.956.0> (127.0.0.1:49685 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:09:56 === +closing AMQP connection <0.956.0> (127.0.0.1:49685 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:10:02 === +accepting AMQP connection <0.974.0> (127.0.0.1:49763 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:10:02 === +connection <0.974.0> (127.0.0.1:49763 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:11:31 === +closing AMQP connection <0.974.0> (127.0.0.1:49763 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:11:45 === +accepting AMQP connection <0.1019.0> (127.0.0.1:50166 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:11:45 === +connection <0.1019.0> (127.0.0.1:50166 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:13:50 === +closing AMQP connection <0.1019.0> (127.0.0.1:50166 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:14:01 === +accepting AMQP connection <0.1073.0> (127.0.0.1:50325 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:14:01 === +connection <0.1073.0> (127.0.0.1:50325 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:14:09 === +closing AMQP connection <0.1073.0> (127.0.0.1:50325 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:14:15 === +accepting AMQP connection <0.1090.0> (127.0.0.1:50396 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:14:15 === +connection <0.1090.0> (127.0.0.1:50396 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:14:51 === +closing AMQP connection <0.1090.0> (127.0.0.1:50396 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:14:58 === +accepting AMQP connection <0.1117.0> (127.0.0.1:50614 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:14:58 === +connection <0.1117.0> (127.0.0.1:50614 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:15:34 === +closing AMQP connection <0.1117.0> (127.0.0.1:50614 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:15:40 === +accepting AMQP connection <0.1143.0> (127.0.0.1:50808 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:15:40 === +connection <0.1143.0> (127.0.0.1:50808 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:16:22 === +closing AMQP connection <0.1143.0> (127.0.0.1:50808 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:16:28 === +accepting AMQP connection <0.1170.0> (127.0.0.1:51027 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:16:28 === +connection <0.1170.0> (127.0.0.1:51027 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:16:50 === +closing AMQP connection <0.1170.0> (127.0.0.1:51027 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:16:56 === +accepting AMQP connection <0.1192.0> (127.0.0.1:51169 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:16:56 === +connection <0.1192.0> (127.0.0.1:51169 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:17:11 === +closing AMQP connection <0.1192.0> (127.0.0.1:51169 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:17:18 === +accepting AMQP connection <0.1213.0> (127.0.0.1:51280 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:17:18 === +connection <0.1213.0> (127.0.0.1:51280 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:18:00 === +closing AMQP connection <0.1213.0> (127.0.0.1:51280 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:18:06 === +accepting AMQP connection <0.1241.0> (127.0.0.1:51501 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:18:06 === +connection <0.1241.0> (127.0.0.1:51501 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:18:38 === +closing AMQP connection <0.1241.0> (127.0.0.1:51501 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:18:45 === +accepting AMQP connection <0.1265.0> (127.0.0.1:51696 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:18:45 === +connection <0.1265.0> (127.0.0.1:51696 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:18:52 === +closing AMQP connection <0.1265.0> (127.0.0.1:51696 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:18:58 === +accepting AMQP connection <0.1282.0> (127.0.0.1:51763 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:18:58 === +connection <0.1282.0> (127.0.0.1:51763 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:20:17 === +closing AMQP connection <0.1282.0> (127.0.0.1:51763 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:20:23 === +accepting AMQP connection <0.1323.0> (127.0.0.1:51900 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:20:23 === +connection <0.1323.0> (127.0.0.1:51900 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:20:26 === +closing AMQP connection <0.1323.0> (127.0.0.1:51900 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:20:32 === +accepting AMQP connection <0.1337.0> (127.0.0.1:51914 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:20:32 === +connection <0.1337.0> (127.0.0.1:51914 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:21:52 === +closing AMQP connection <0.1337.0> (127.0.0.1:51914 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:21:58 === +accepting AMQP connection <0.1377.0> (127.0.0.1:52241 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:21:58 === +connection <0.1377.0> (127.0.0.1:52241 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:23:17 === +closing AMQP connection <0.1377.0> (127.0.0.1:52241 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:23:26 === +accepting AMQP connection <0.1418.0> (127.0.0.1:52606 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:23:26 === +connection <0.1418.0> (127.0.0.1:52606 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:23:57 === +closing AMQP connection <0.1418.0> (127.0.0.1:52606 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:24:03 === +accepting AMQP connection <0.1442.0> (127.0.0.1:52786 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:24:03 === +connection <0.1442.0> (127.0.0.1:52786 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:24:29 === +closing AMQP connection <0.1442.0> (127.0.0.1:52786 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:24:35 === +accepting AMQP connection <0.1465.0> (127.0.0.1:52992 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:24:35 === +connection <0.1465.0> (127.0.0.1:52992 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:24:54 === +closing AMQP connection <0.1465.0> (127.0.0.1:52992 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:24:59 === +accepting AMQP connection <0.1485.0> (127.0.0.1:53110 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:24:59 === +connection <0.1485.0> (127.0.0.1:53110 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:25:20 === +closing AMQP connection <0.1485.0> (127.0.0.1:53110 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:25:26 === +accepting AMQP connection <0.1507.0> (127.0.0.1:53238 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:25:26 === +connection <0.1507.0> (127.0.0.1:53238 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:26:17 === +closing AMQP connection <0.1507.0> (127.0.0.1:53238 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:26:29 === +accepting AMQP connection <0.1539.0> (127.0.0.1:53543 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:26:29 === +connection <0.1539.0> (127.0.0.1:53543 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:27:09 === +closing AMQP connection <0.1539.0> (127.0.0.1:53543 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:27:14 === +accepting AMQP connection <0.1566.0> (127.0.0.1:53628 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:27:14 === +connection <0.1566.0> (127.0.0.1:53628 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:27:35 === +closing AMQP connection <0.1566.0> (127.0.0.1:53628 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:27:40 === +accepting AMQP connection <0.1587.0> (127.0.0.1:53650 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:27:40 === +connection <0.1587.0> (127.0.0.1:53650 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:28:00 === +closing AMQP connection <0.1587.0> (127.0.0.1:53650 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:28:10 === +accepting AMQP connection <0.1609.0> (127.0.0.1:53689 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:28:10 === +connection <0.1609.0> (127.0.0.1:53689 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:28:24 === +closing AMQP connection <0.1609.0> (127.0.0.1:53689 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:28:30 === +accepting AMQP connection <0.1628.0> (127.0.0.1:53708 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:28:30 === +connection <0.1628.0> (127.0.0.1:53708 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:28:47 === +closing AMQP connection <0.1628.0> (127.0.0.1:53708 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:28:53 === +accepting AMQP connection <0.1648.0> (127.0.0.1:53739 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:28:53 === +connection <0.1648.0> (127.0.0.1:53739 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:29:31 === +closing AMQP connection <0.1648.0> (127.0.0.1:53739 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:29:37 === +accepting AMQP connection <0.1676.0> (127.0.0.1:53778 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:29:37 === +connection <0.1676.0> (127.0.0.1:53778 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:31:07 === +closing AMQP connection <0.1676.0> (127.0.0.1:53778 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:31:15 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jun-2017::00:31:15 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Memory limit set to 6149MB of 15373MB total. + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jun-2017::00:31:19 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jun-2017::00:31:19 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jun-2017::00:31:20 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jun-2017::00:31:20 === +Statistics database started. + +=INFO REPORT==== 6-Jun-2017::00:31:20 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jun-2017::00:31:51 === +accepting AMQP connection <0.457.0> (127.0.0.1:53846 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:31:51 === +connection <0.457.0> (127.0.0.1:53846 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:33:10 === +closing AMQP connection <0.457.0> (127.0.0.1:53846 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:33:16 === +accepting AMQP connection <0.497.0> (127.0.0.1:53886 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:33:16 === +connection <0.497.0> (127.0.0.1:53886 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:47:03 === +closing AMQP connection <0.497.0> (127.0.0.1:53886 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:47:09 === +accepting AMQP connection <0.774.0> (127.0.0.1:54171 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:47:09 === +connection <0.774.0> (127.0.0.1:54171 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:48:13 === +closing AMQP connection <0.774.0> (127.0.0.1:54171 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:48:22 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jun-2017::00:48:22 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Memory limit set to 6150MB of 15377MB total. + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jun-2017::00:48:24 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Statistics database started. + +=INFO REPORT==== 6-Jun-2017::00:48:24 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jun-2017::00:48:51 === +accepting AMQP connection <0.455.0> (127.0.0.1:54217 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:48:51 === +connection <0.455.0> (127.0.0.1:54217 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:50:13 === +closing AMQP connection <0.455.0> (127.0.0.1:54217 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:50:19 === +accepting AMQP connection <0.496.0> (127.0.0.1:54267 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:50:19 === +connection <0.496.0> (127.0.0.1:54267 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:51:26 === +closing AMQP connection <0.496.0> (127.0.0.1:54267 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:51:35 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jun-2017::00:51:35 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Memory limit set to 6152MB of 15381MB total. + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jun-2017::00:51:40 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Statistics database started. + +=INFO REPORT==== 6-Jun-2017::00:51:40 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jun-2017::00:52:09 === +accepting AMQP connection <0.455.0> (127.0.0.1:54354 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:52:09 === +connection <0.455.0> (127.0.0.1:54354 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::00:53:27 === +closing AMQP connection <0.455.0> (127.0.0.1:54354 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::00:54:03 === +accepting AMQP connection <0.506.0> (127.0.0.1:54670 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::00:54:03 === +connection <0.506.0> (127.0.0.1:54670 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:02:02 === +closing AMQP connection <0.506.0> (127.0.0.1:54670 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:02:07 === +accepting AMQP connection <0.675.0> (127.0.0.1:56160 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:02:07 === +connection <0.675.0> (127.0.0.1:56160 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:02:32 === +closing AMQP connection <0.675.0> (127.0.0.1:56160 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:02:42 === +accepting AMQP connection <0.698.0> (127.0.0.1:56335 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:02:42 === +connection <0.698.0> (127.0.0.1:56335 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:14:41 === +closing AMQP connection <0.698.0> (127.0.0.1:56335 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:14:47 === +accepting AMQP connection <0.936.0> (127.0.0.1:56768 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:14:47 === +connection <0.936.0> (127.0.0.1:56768 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:15:51 === +closing AMQP connection <0.936.0> (127.0.0.1:56768 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:15:57 === +accepting AMQP connection <0.972.0> (127.0.0.1:56871 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:15:57 === +connection <0.972.0> (127.0.0.1:56871 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:16:26 === +closing AMQP connection <0.972.0> (127.0.0.1:56871 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:16:32 === +accepting AMQP connection <0.995.0> (127.0.0.1:56896 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:16:32 === +connection <0.995.0> (127.0.0.1:56896 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:17:35 === +closing AMQP connection <0.995.0> (127.0.0.1:56896 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:17:41 === +accepting AMQP connection <0.1029.0> (127.0.0.1:56950 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:17:41 === +connection <0.1029.0> (127.0.0.1:56950 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:20:26 === +closing AMQP connection <0.1029.0> (127.0.0.1:56950 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:20:32 === +accepting AMQP connection <0.1095.0> (127.0.0.1:57333 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:20:32 === +connection <0.1095.0> (127.0.0.1:57333 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:21:18 === +closing AMQP connection <0.1095.0> (127.0.0.1:57333 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:21:23 === +accepting AMQP connection <0.1123.0> (127.0.0.1:57578 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:21:23 === +connection <0.1123.0> (127.0.0.1:57578 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:24:49 === +closing AMQP connection <0.1123.0> (127.0.0.1:57578 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:24:55 === +accepting AMQP connection <0.1203.0> (127.0.0.1:58251 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:24:55 === +connection <0.1203.0> (127.0.0.1:58251 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:25:28 === +closing AMQP connection <0.1203.0> (127.0.0.1:58251 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:25:33 === +accepting AMQP connection <0.1227.0> (127.0.0.1:58413 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:25:33 === +connection <0.1227.0> (127.0.0.1:58413 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:25:36 === +closing AMQP connection <0.1227.0> (127.0.0.1:58413 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:25:42 === +accepting AMQP connection <0.1244.0> (127.0.0.1:58457 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:25:42 === +connection <0.1244.0> (127.0.0.1:58457 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:27:04 === +closing AMQP connection <0.1244.0> (127.0.0.1:58457 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jun-2017::01:27:09 === +accepting AMQP connection <0.1283.0> (127.0.0.1:58607 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jun-2017::01:27:09 === +connection <0.1283.0> (127.0.0.1:58607 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jun-2017::01:27:57 === +closing AMQP connection <0.1283.0> (127.0.0.1:58607 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:10:54 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 16-Jun-2017::17:10:54 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Memory limit set to 6384MB of 15960MB total. + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Disk free limit set to 50MB + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Starting rabbit_node_monitor + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 16-Jun-2017::17:10:57 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Statistics database started. + +=INFO REPORT==== 16-Jun-2017::17:10:57 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 16-Jun-2017::17:11:27 === +accepting AMQP connection <0.455.0> (127.0.0.1:60527 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:11:27 === +connection <0.455.0> (127.0.0.1:60527 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:12:54 === +closing AMQP connection <0.455.0> (127.0.0.1:60527 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:13:30 === +accepting AMQP connection <0.508.0> (127.0.0.1:60616 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:13:30 === +connection <0.508.0> (127.0.0.1:60616 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:14:19 === +closing AMQP connection <0.508.0> (127.0.0.1:60616 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:14:25 === +accepting AMQP connection <0.544.0> (127.0.0.1:60654 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:14:25 === +connection <0.544.0> (127.0.0.1:60654 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:15:20 === +closing AMQP connection <0.544.0> (127.0.0.1:60654 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:15:26 === +accepting AMQP connection <0.576.0> (127.0.0.1:60734 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:15:26 === +connection <0.576.0> (127.0.0.1:60734 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:15:29 === +closing AMQP connection <0.576.0> (127.0.0.1:60734 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:15:35 === +accepting AMQP connection <0.592.0> (127.0.0.1:60754 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:15:35 === +connection <0.592.0> (127.0.0.1:60754 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:15:57 === +closing AMQP connection <0.592.0> (127.0.0.1:60754 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:16:03 === +accepting AMQP connection <0.613.0> (127.0.0.1:60784 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:16:03 === +connection <0.613.0> (127.0.0.1:60784 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:16:09 === +closing AMQP connection <0.613.0> (127.0.0.1:60784 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:16:15 === +accepting AMQP connection <0.630.0> (127.0.0.1:60797 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:16:15 === +connection <0.630.0> (127.0.0.1:60797 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:20:04 === +closing AMQP connection <0.630.0> (127.0.0.1:60797 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:20:40 === +accepting AMQP connection <0.726.0> (127.0.0.1:61041 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:20:40 === +connection <0.726.0> (127.0.0.1:61041 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:21:50 === +closing AMQP connection <0.726.0> (127.0.0.1:61041 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:21:56 === +accepting AMQP connection <0.762.0> (127.0.0.1:61128 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:21:56 === +connection <0.762.0> (127.0.0.1:61128 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:23:43 === +closing AMQP connection <0.762.0> (127.0.0.1:61128 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:23:49 === +accepting AMQP connection <0.810.0> (127.0.0.1:61241 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:23:49 === +connection <0.810.0> (127.0.0.1:61241 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:24:05 === +closing AMQP connection <0.810.0> (127.0.0.1:61241 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:24:11 === +accepting AMQP connection <0.830.0> (127.0.0.1:61259 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:24:11 === +connection <0.830.0> (127.0.0.1:61259 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:24:28 === +closing AMQP connection <0.830.0> (127.0.0.1:61259 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:24:34 === +accepting AMQP connection <0.850.0> (127.0.0.1:61277 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:24:34 === +connection <0.850.0> (127.0.0.1:61277 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:25:08 === +closing AMQP connection <0.850.0> (127.0.0.1:61277 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:25:14 === +accepting AMQP connection <0.875.0> (127.0.0.1:61318 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:25:14 === +connection <0.875.0> (127.0.0.1:61318 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:25:49 === +closing AMQP connection <0.875.0> (127.0.0.1:61318 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:25:55 === +accepting AMQP connection <0.902.0> (127.0.0.1:61504 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:25:55 === +connection <0.902.0> (127.0.0.1:61504 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:26:38 === +closing AMQP connection <0.902.0> (127.0.0.1:61504 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:26:44 === +accepting AMQP connection <0.929.0> (127.0.0.1:61740 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:26:44 === +connection <0.929.0> (127.0.0.1:61740 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:27:03 === +closing AMQP connection <0.929.0> (127.0.0.1:61740 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:27:09 === +accepting AMQP connection <0.950.0> (127.0.0.1:61864 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:27:10 === +connection <0.950.0> (127.0.0.1:61864 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:27:39 === +closing AMQP connection <0.950.0> (127.0.0.1:61864 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:27:45 === +accepting AMQP connection <0.974.0> (127.0.0.1:62039 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:27:45 === +connection <0.974.0> (127.0.0.1:62039 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 16-Jun-2017::17:28:15 === +closing AMQP connection <0.974.0> (127.0.0.1:62039 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 16-Jun-2017::17:28:21 === +accepting AMQP connection <0.998.0> (127.0.0.1:62082 -> 127.0.0.1:4000) + +=INFO REPORT==== 16-Jun-2017::17:28:21 === +connection <0.998.0> (127.0.0.1:62082 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::12:42:24 === +closing AMQP connection <0.998.0> (127.0.0.1:62082 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::12:42:30 === +accepting AMQP connection <0.13435.0> (127.0.0.1:61139 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::12:42:30 === +connection <0.13435.0> (127.0.0.1:61139 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::12:43:10 === +closing AMQP connection <0.13435.0> (127.0.0.1:61139 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::12:43:16 === +accepting AMQP connection <0.13462.0> (127.0.0.1:61165 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::12:43:16 === +connection <0.13462.0> (127.0.0.1:61165 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::12:46:35 === +closing AMQP connection <0.13462.0> (127.0.0.1:61165 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::12:46:41 === +accepting AMQP connection <0.13538.0> (127.0.0.1:61313 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::12:46:41 === +connection <0.13538.0> (127.0.0.1:61313 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::12:48:11 === +closing AMQP connection <0.13538.0> (127.0.0.1:61313 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::12:48:17 === +accepting AMQP connection <0.13582.0> (127.0.0.1:61358 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::12:48:17 === +connection <0.13582.0> (127.0.0.1:61358 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::12:50:08 === +closing AMQP connection <0.13582.0> (127.0.0.1:61358 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::12:50:14 === +accepting AMQP connection <0.13630.0> (127.0.0.1:61412 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::12:50:14 === +connection <0.13630.0> (127.0.0.1:61412 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:08:32 === +closing AMQP connection <0.13630.0> (127.0.0.1:61412 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:08:37 === +accepting AMQP connection <0.13985.0> (127.0.0.1:62065 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:08:37 === +connection <0.13985.0> (127.0.0.1:62065 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:09:18 === +closing AMQP connection <0.13985.0> (127.0.0.1:62065 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:09:59 === +accepting AMQP connection <0.14023.0> (127.0.0.1:62100 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:09:59 === +connection <0.14023.0> (127.0.0.1:62100 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:11:06 === +closing AMQP connection <0.14023.0> (127.0.0.1:62100 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:11:11 === +accepting AMQP connection <0.14059.0> (127.0.0.1:62134 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:11:11 === +connection <0.14059.0> (127.0.0.1:62134 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:13:10 === +closing AMQP connection <0.14059.0> (127.0.0.1:62134 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:13:18 === +accepting AMQP connection <0.14111.0> (127.0.0.1:62187 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:13:18 === +connection <0.14111.0> (127.0.0.1:62187 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:16:33 === +closing AMQP connection <0.14111.0> (127.0.0.1:62187 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:16:39 === +accepting AMQP connection <0.14187.0> (127.0.0.1:62265 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:16:39 === +connection <0.14187.0> (127.0.0.1:62265 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::13:19:48 === +closing AMQP connection <0.14187.0> (127.0.0.1:62265 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::13:20:24 === +accepting AMQP connection <0.14270.0> (127.0.0.1:62354 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::13:20:24 === +connection <0.14270.0> (127.0.0.1:62354 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:16:59 === +closing AMQP connection <0.14270.0> (127.0.0.1:62354 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:17:05 === +accepting AMQP connection <0.14574.0> (127.0.0.1:62727 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:17:05 === +connection <0.14574.0> (127.0.0.1:62727 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:24:54 === +closing AMQP connection <0.14574.0> (127.0.0.1:62727 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:25:00 === +accepting AMQP connection <0.14733.0> (127.0.0.1:62940 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:25:00 === +connection <0.14733.0> (127.0.0.1:62940 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:25:53 === +closing AMQP connection <0.14733.0> (127.0.0.1:62940 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:25:59 === +accepting AMQP connection <0.14765.0> (127.0.0.1:62972 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:25:59 === +connection <0.14765.0> (127.0.0.1:62972 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:26:06 === +closing AMQP connection <0.14765.0> (127.0.0.1:62972 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:26:12 === +accepting AMQP connection <0.14782.0> (127.0.0.1:62984 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:26:12 === +connection <0.14782.0> (127.0.0.1:62984 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:26:13 === +closing AMQP connection <0.14782.0> (127.0.0.1:62984 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:26:18 === +accepting AMQP connection <0.14797.0> (127.0.0.1:62995 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:26:18 === +connection <0.14797.0> (127.0.0.1:62995 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:27:35 === +closing AMQP connection <0.14797.0> (127.0.0.1:62995 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:29:16 === +accepting AMQP connection <0.14866.0> (127.0.0.1:63061 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:29:16 === +connection <0.14866.0> (127.0.0.1:63061 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:30:27 === +closing AMQP connection <0.14866.0> (127.0.0.1:63061 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:30:33 === +accepting AMQP connection <0.14903.0> (127.0.0.1:63099 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:30:33 === +connection <0.14903.0> (127.0.0.1:63099 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:31:50 === +closing AMQP connection <0.14903.0> (127.0.0.1:63099 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:31:55 === +accepting AMQP connection <0.14941.0> (127.0.0.1:63138 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:31:55 === +connection <0.14941.0> (127.0.0.1:63138 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:31:59 === +closing AMQP connection <0.14941.0> (127.0.0.1:63138 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:32:04 === +accepting AMQP connection <0.14957.0> (127.0.0.1:63148 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:32:04 === +connection <0.14957.0> (127.0.0.1:63148 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:32:20 === +closing AMQP connection <0.14957.0> (127.0.0.1:63148 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:32:26 === +accepting AMQP connection <0.14976.0> (127.0.0.1:63165 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:32:26 === +connection <0.14976.0> (127.0.0.1:63165 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:33:30 === +closing AMQP connection <0.14976.0> (127.0.0.1:63165 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:33:36 === +accepting AMQP connection <0.15011.0> (127.0.0.1:63227 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:33:36 === +connection <0.15011.0> (127.0.0.1:63227 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:34:31 === +closing AMQP connection <0.15011.0> (127.0.0.1:63227 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:34:36 === +accepting AMQP connection <0.15043.0> (127.0.0.1:63263 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:34:37 === +connection <0.15043.0> (127.0.0.1:63263 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:35:10 === +closing AMQP connection <0.15043.0> (127.0.0.1:63263 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:35:16 === +accepting AMQP connection <0.15068.0> (127.0.0.1:63287 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:35:16 === +connection <0.15068.0> (127.0.0.1:63287 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:35:46 === +closing AMQP connection <0.15068.0> (127.0.0.1:63287 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:35:52 === +accepting AMQP connection <0.15091.0> (127.0.0.1:63311 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:35:52 === +connection <0.15091.0> (127.0.0.1:63311 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:35:56 === +closing AMQP connection <0.15091.0> (127.0.0.1:63311 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:36:01 === +accepting AMQP connection <0.15107.0> (127.0.0.1:63321 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:36:01 === +connection <0.15107.0> (127.0.0.1:63321 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:38:55 === +closing AMQP connection <0.15107.0> (127.0.0.1:63321 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:39:01 === +accepting AMQP connection <0.15176.0> (127.0.0.1:63419 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:39:01 === +connection <0.15176.0> (127.0.0.1:63419 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:39:20 === +closing AMQP connection <0.15176.0> (127.0.0.1:63419 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:39:26 === +accepting AMQP connection <0.15197.0> (127.0.0.1:63441 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:39:26 === +connection <0.15197.0> (127.0.0.1:63441 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:41:23 === +closing AMQP connection <0.15197.0> (127.0.0.1:63441 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:42:00 === +accepting AMQP connection <0.15257.0> (127.0.0.1:63582 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:42:00 === +connection <0.15257.0> (127.0.0.1:63582 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:42:00 === +closing AMQP connection <0.15257.0> (127.0.0.1:63582 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:42:06 === +accepting AMQP connection <0.15273.0> (127.0.0.1:63593 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:42:06 === +connection <0.15273.0> (127.0.0.1:63593 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:42:07 === +closing AMQP connection <0.15273.0> (127.0.0.1:63593 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:42:13 === +accepting AMQP connection <0.15281.0> (127.0.0.1:63600 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:42:13 === +connection <0.15281.0> (127.0.0.1:63600 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:52:48 === +closing AMQP connection <0.15281.0> (127.0.0.1:63600 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:53:29 === +accepting AMQP connection <0.15504.0> (127.0.0.1:63918 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:53:29 === +connection <0.15504.0> (127.0.0.1:63918 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:53:49 === +closing AMQP connection <0.15504.0> (127.0.0.1:63918 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:53:54 === +accepting AMQP connection <0.15524.0> (127.0.0.1:63935 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:53:54 === +connection <0.15524.0> (127.0.0.1:63935 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:54:36 === +closing AMQP connection <0.15524.0> (127.0.0.1:63935 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:58:21 === +accepting AMQP connection <0.15620.0> (127.0.0.1:64100 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:58:21 === +connection <0.15620.0> (127.0.0.1:64100 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::15:58:50 === +closing AMQP connection <0.15620.0> (127.0.0.1:64100 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::15:59:31 === +accepting AMQP connection <0.15655.0> (127.0.0.1:64132 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::15:59:31 === +connection <0.15655.0> (127.0.0.1:64132 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:03:23 === +closing AMQP connection <0.15655.0> (127.0.0.1:64132 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:03:31 === +accepting AMQP connection <0.15742.0> (127.0.0.1:64255 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:03:31 === +connection <0.15742.0> (127.0.0.1:64255 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:04:29 === +closing AMQP connection <0.15742.0> (127.0.0.1:64255 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:04:37 === +accepting AMQP connection <0.15777.0> (127.0.0.1:64299 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:04:37 === +connection <0.15777.0> (127.0.0.1:64299 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:08:17 === +closing AMQP connection <0.15777.0> (127.0.0.1:64299 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:08:53 === +accepting AMQP connection <0.15869.0> (127.0.0.1:64485 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:08:53 === +connection <0.15869.0> (127.0.0.1:64485 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:09:19 === +closing AMQP connection <0.15869.0> (127.0.0.1:64485 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:09:25 === +accepting AMQP connection <0.15891.0> (127.0.0.1:64506 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:09:25 === +connection <0.15891.0> (127.0.0.1:64506 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:13:27 === +closing AMQP connection <0.15891.0> (127.0.0.1:64506 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:27:57 === +accepting AMQP connection <0.16248.0> (127.0.0.1:51198 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:27:57 === +connection <0.16248.0> (127.0.0.1:51198 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:32:11 === +closing AMQP connection <0.16248.0> (127.0.0.1:51198 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:32:18 === +accepting AMQP connection <0.16343.0> (127.0.0.1:52179 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:32:18 === +connection <0.16343.0> (127.0.0.1:52179 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:33:51 === +closing AMQP connection <0.16343.0> (127.0.0.1:52179 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:36:32 === +accepting AMQP connection <0.16436.0> (127.0.0.1:52986 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:36:32 === +connection <0.16436.0> (127.0.0.1:52986 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:39:34 === +closing AMQP connection <0.16436.0> (127.0.0.1:52986 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:39:40 === +accepting AMQP connection <0.16505.0> (127.0.0.1:53513 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:39:40 === +connection <0.16505.0> (127.0.0.1:53513 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:46:02 === +closing AMQP connection <0.16505.0> (127.0.0.1:53513 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:46:07 === +accepting AMQP connection <0.16639.0> (127.0.0.1:54835 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:46:07 === +connection <0.16639.0> (127.0.0.1:54835 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:47:56 === +closing AMQP connection <0.16639.0> (127.0.0.1:54835 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:48:05 === +accepting AMQP connection <0.16689.0> (127.0.0.1:55167 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:48:05 === +connection <0.16689.0> (127.0.0.1:55167 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:49:19 === +closing AMQP connection <0.16689.0> (127.0.0.1:55167 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:49:59 === +accepting AMQP connection <0.16737.0> (127.0.0.1:55547 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:49:59 === +connection <0.16737.0> (127.0.0.1:55547 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:52:10 === +closing AMQP connection <0.16737.0> (127.0.0.1:55547 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:52:16 === +accepting AMQP connection <0.16792.0> (127.0.0.1:56096 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:52:16 === +connection <0.16792.0> (127.0.0.1:56096 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:52:23 === +closing AMQP connection <0.16792.0> (127.0.0.1:56096 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:52:29 === +accepting AMQP connection <0.16808.0> (127.0.0.1:56147 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:52:29 === +connection <0.16808.0> (127.0.0.1:56147 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:52:46 === +closing AMQP connection <0.16808.0> (127.0.0.1:56147 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:52:52 === +accepting AMQP connection <0.16830.0> (127.0.0.1:56274 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:52:52 === +connection <0.16830.0> (127.0.0.1:56274 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:57:59 === +closing AMQP connection <0.16830.0> (127.0.0.1:56274 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:58:05 === +accepting AMQP connection <0.16939.0> (127.0.0.1:57469 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:58:05 === +connection <0.16939.0> (127.0.0.1:57469 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:58:12 === +closing AMQP connection <0.16939.0> (127.0.0.1:57469 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::16:58:18 === +accepting AMQP connection <0.16956.0> (127.0.0.1:57529 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::16:58:18 === +connection <0.16956.0> (127.0.0.1:57529 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::16:59:08 === +closing AMQP connection <0.16956.0> (127.0.0.1:57529 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:00:02 === +accepting AMQP connection <0.17001.0> (127.0.0.1:57963 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:00:02 === +connection <0.17001.0> (127.0.0.1:57963 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:02:26 === +closing AMQP connection <0.17001.0> (127.0.0.1:57963 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:03:24 === +accepting AMQP connection <0.17076.0> (127.0.0.1:58803 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:03:24 === +connection <0.17076.0> (127.0.0.1:58803 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:06:05 === +closing AMQP connection <0.17076.0> (127.0.0.1:58803 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:06:11 === +accepting AMQP connection <0.17141.0> (127.0.0.1:59313 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:06:11 === +connection <0.17141.0> (127.0.0.1:59313 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:07:09 === +closing AMQP connection <0.17141.0> (127.0.0.1:59313 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:07:15 === +accepting AMQP connection <0.17174.0> (127.0.0.1:59595 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:07:15 === +connection <0.17174.0> (127.0.0.1:59595 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:07:25 === +closing AMQP connection <0.17174.0> (127.0.0.1:59595 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:07:31 === +accepting AMQP connection <0.17193.0> (127.0.0.1:59672 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:07:31 === +connection <0.17193.0> (127.0.0.1:59672 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:11:01 === +closing AMQP connection <0.17193.0> (127.0.0.1:59672 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:11:07 === +accepting AMQP connection <0.17274.0> (127.0.0.1:60330 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:11:07 === +connection <0.17274.0> (127.0.0.1:60330 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:11:50 === +closing AMQP connection <0.17274.0> (127.0.0.1:60330 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:11:56 === +accepting AMQP connection <0.17301.0> (127.0.0.1:60552 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:11:56 === +connection <0.17301.0> (127.0.0.1:60552 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:12:20 === +closing AMQP connection <0.17301.0> (127.0.0.1:60552 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:12:26 === +accepting AMQP connection <0.17324.0> (127.0.0.1:60694 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:12:26 === +connection <0.17324.0> (127.0.0.1:60694 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:12:45 === +closing AMQP connection <0.17324.0> (127.0.0.1:60694 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:12:51 === +accepting AMQP connection <0.17346.0> (127.0.0.1:60773 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:12:51 === +connection <0.17346.0> (127.0.0.1:60773 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:14:06 === +closing AMQP connection <0.17346.0> (127.0.0.1:60773 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:14:12 === +accepting AMQP connection <0.17386.0> (127.0.0.1:61124 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:14:12 === +connection <0.17386.0> (127.0.0.1:61124 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:14:57 === +closing AMQP connection <0.17386.0> (127.0.0.1:61124 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:15:04 === +accepting AMQP connection <0.17416.0> (127.0.0.1:61367 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:15:04 === +connection <0.17416.0> (127.0.0.1:61367 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:19:27 === +closing AMQP connection <0.17416.0> (127.0.0.1:61367 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:19:33 === +accepting AMQP connection <0.17516.0> (127.0.0.1:62087 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:19:33 === +connection <0.17516.0> (127.0.0.1:62087 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:19:56 === +closing AMQP connection <0.17516.0> (127.0.0.1:62087 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:20:02 === +accepting AMQP connection <0.17539.0> (127.0.0.1:62130 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:20:02 === +connection <0.17539.0> (127.0.0.1:62130 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:24:44 === +closing AMQP connection <0.17539.0> (127.0.0.1:62130 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:24:50 === +accepting AMQP connection <0.17646.0> (127.0.0.1:62426 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:24:50 === +connection <0.17646.0> (127.0.0.1:62426 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:24:52 === +closing AMQP connection <0.17646.0> (127.0.0.1:62426 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:24:58 === +accepting AMQP connection <0.17660.0> (127.0.0.1:62452 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:24:58 === +connection <0.17660.0> (127.0.0.1:62452 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:25:11 === +closing AMQP connection <0.17660.0> (127.0.0.1:62452 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:25:17 === +accepting AMQP connection <0.17680.0> (127.0.0.1:62483 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:25:17 === +connection <0.17680.0> (127.0.0.1:62483 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:27:21 === +closing AMQP connection <0.17680.0> (127.0.0.1:62483 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:27:26 === +accepting AMQP connection <0.17735.0> (127.0.0.1:62665 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:27:26 === +connection <0.17735.0> (127.0.0.1:62665 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:29:09 === +closing AMQP connection <0.17735.0> (127.0.0.1:62665 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:29:15 === +accepting AMQP connection <0.17785.0> (127.0.0.1:63016 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:29:15 === +connection <0.17785.0> (127.0.0.1:63016 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:31:17 === +closing AMQP connection <0.17785.0> (127.0.0.1:63016 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:31:23 === +accepting AMQP connection <0.17839.0> (127.0.0.1:63388 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:31:23 === +connection <0.17839.0> (127.0.0.1:63388 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:35:36 === +closing AMQP connection <0.17839.0> (127.0.0.1:63388 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:35:42 === +accepting AMQP connection <0.17937.0> (127.0.0.1:64535 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:35:42 === +connection <0.17937.0> (127.0.0.1:64535 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:36:27 === +closing AMQP connection <0.17937.0> (127.0.0.1:64535 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:36:33 === +accepting AMQP connection <0.17966.0> (127.0.0.1:64620 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:36:33 === +connection <0.17966.0> (127.0.0.1:64620 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:38:13 === +closing AMQP connection <0.17966.0> (127.0.0.1:64620 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:38:20 === +accepting AMQP connection <0.18013.0> (127.0.0.1:64947 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:38:20 === +connection <0.18013.0> (127.0.0.1:64947 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:39:59 === +closing AMQP connection <0.18013.0> (127.0.0.1:64947 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:40:05 === +accepting AMQP connection <0.18061.0> (127.0.0.1:65306 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:40:05 === +connection <0.18061.0> (127.0.0.1:65306 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:41:49 === +closing AMQP connection <0.18061.0> (127.0.0.1:65306 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:41:55 === +accepting AMQP connection <0.18110.0> (127.0.0.1:49419 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:41:55 === +connection <0.18110.0> (127.0.0.1:49419 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:43:11 === +closing AMQP connection <0.18110.0> (127.0.0.1:49419 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:43:20 === +accepting AMQP connection <0.18150.0> (127.0.0.1:49708 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:43:20 === +connection <0.18150.0> (127.0.0.1:49708 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:43:22 === +closing AMQP connection <0.18150.0> (127.0.0.1:49708 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:43:28 === +accepting AMQP connection <0.18166.0> (127.0.0.1:49756 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:43:28 === +connection <0.18166.0> (127.0.0.1:49756 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:44:53 === +closing AMQP connection <0.18166.0> (127.0.0.1:49756 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:44:59 === +accepting AMQP connection <0.18209.0> (127.0.0.1:50105 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:44:59 === +connection <0.18209.0> (127.0.0.1:50105 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:47:54 === +closing AMQP connection <0.18209.0> (127.0.0.1:50105 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:48:00 === +accepting AMQP connection <0.18281.0> (127.0.0.1:50837 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:48:00 === +connection <0.18281.0> (127.0.0.1:50837 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:48:16 === +closing AMQP connection <0.18281.0> (127.0.0.1:50837 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:48:22 === +accepting AMQP connection <0.18301.0> (127.0.0.1:50906 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:48:22 === +connection <0.18301.0> (127.0.0.1:50906 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:49:45 === +closing AMQP connection <0.18301.0> (127.0.0.1:50906 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:49:51 === +accepting AMQP connection <0.18343.0> (127.0.0.1:51047 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:49:51 === +connection <0.18343.0> (127.0.0.1:51047 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:51:13 === +closing AMQP connection <0.18343.0> (127.0.0.1:51047 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:51:19 === +accepting AMQP connection <0.18385.0> (127.0.0.1:51096 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:51:19 === +connection <0.18385.0> (127.0.0.1:51096 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:51:20 === +closing AMQP connection <0.18385.0> (127.0.0.1:51096 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:51:25 === +accepting AMQP connection <0.18395.0> (127.0.0.1:51105 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:51:25 === +connection <0.18395.0> (127.0.0.1:51105 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:51:53 === +closing AMQP connection <0.18395.0> (127.0.0.1:51105 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:52:04 === +accepting AMQP connection <0.18420.0> (127.0.0.1:51135 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:52:04 === +connection <0.18420.0> (127.0.0.1:51135 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:52:51 === +closing AMQP connection <0.18420.0> (127.0.0.1:51135 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:52:57 === +accepting AMQP connection <0.18450.0> (127.0.0.1:51165 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:52:57 === +connection <0.18450.0> (127.0.0.1:51165 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:53:20 === +closing AMQP connection <0.18450.0> (127.0.0.1:51165 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:53:26 === +accepting AMQP connection <0.18473.0> (127.0.0.1:51191 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:53:26 === +connection <0.18473.0> (127.0.0.1:51191 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:53:41 === +closing AMQP connection <0.18473.0> (127.0.0.1:51191 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:53:47 === +accepting AMQP connection <0.18492.0> (127.0.0.1:51212 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:53:47 === +connection <0.18492.0> (127.0.0.1:51212 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:54:19 === +closing AMQP connection <0.18492.0> (127.0.0.1:51212 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:54:24 === +accepting AMQP connection <0.18518.0> (127.0.0.1:51236 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:54:24 === +connection <0.18518.0> (127.0.0.1:51236 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:54:43 === +closing AMQP connection <0.18518.0> (127.0.0.1:51236 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:54:49 === +accepting AMQP connection <0.18538.0> (127.0.0.1:51261 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:54:49 === +connection <0.18538.0> (127.0.0.1:51261 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:55:45 === +closing AMQP connection <0.18538.0> (127.0.0.1:51261 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:55:51 === +accepting AMQP connection <0.18572.0> (127.0.0.1:51301 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:55:51 === +connection <0.18572.0> (127.0.0.1:51301 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:55:52 === +closing AMQP connection <0.18572.0> (127.0.0.1:51301 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:55:58 === +accepting AMQP connection <0.18587.0> (127.0.0.1:51313 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:55:58 === +connection <0.18587.0> (127.0.0.1:51313 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:55:58 === +closing AMQP connection <0.18587.0> (127.0.0.1:51313 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:56:04 === +accepting AMQP connection <0.18603.0> (127.0.0.1:51324 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:56:04 === +connection <0.18603.0> (127.0.0.1:51324 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:56:23 === +closing AMQP connection <0.18603.0> (127.0.0.1:51324 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:56:29 === +accepting AMQP connection <0.18623.0> (127.0.0.1:51344 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:56:29 === +connection <0.18623.0> (127.0.0.1:51344 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:56:35 === +closing AMQP connection <0.18623.0> (127.0.0.1:51344 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:56:41 === +accepting AMQP connection <0.18640.0> (127.0.0.1:51378 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:56:41 === +connection <0.18640.0> (127.0.0.1:51378 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:57:51 === +closing AMQP connection <0.18640.0> (127.0.0.1:51378 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:57:57 === +accepting AMQP connection <0.18677.0> (127.0.0.1:51428 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:57:57 === +connection <0.18677.0> (127.0.0.1:51428 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::17:58:14 === +closing AMQP connection <0.18677.0> (127.0.0.1:51428 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::17:58:21 === +accepting AMQP connection <0.18698.0> (127.0.0.1:51451 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::17:58:21 === +connection <0.18698.0> (127.0.0.1:51451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::18:04:05 === +closing AMQP connection <0.18698.0> (127.0.0.1:51451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::18:04:58 === +accepting AMQP connection <0.18842.0> (127.0.0.1:53174 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::18:04:58 === +connection <0.18842.0> (127.0.0.1:53174 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::19:24:46 === +closing AMQP connection <0.18842.0> (127.0.0.1:53174 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::19:25:22 === +accepting AMQP connection <0.19112.0> (127.0.0.1:54358 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::19:25:22 === +connection <0.19112.0> (127.0.0.1:54358 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:15:41 === +closing AMQP connection <0.19112.0> (127.0.0.1:54358 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:16:16 === +accepting AMQP connection <0.20121.0> (127.0.0.1:57743 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:16:16 === +connection <0.20121.0> (127.0.0.1:57743 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:18:07 === +closing AMQP connection <0.20121.0> (127.0.0.1:57743 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:18:14 === +accepting AMQP connection <0.20172.0> (127.0.0.1:58072 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:18:14 === +connection <0.20172.0> (127.0.0.1:58072 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:19:11 === +closing AMQP connection <0.20172.0> (127.0.0.1:58072 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:19:17 === +accepting AMQP connection <0.20206.0> (127.0.0.1:58375 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:19:17 === +connection <0.20206.0> (127.0.0.1:58375 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:19:18 === +closing AMQP connection <0.20206.0> (127.0.0.1:58375 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:19:24 === +accepting AMQP connection <0.20216.0> (127.0.0.1:58418 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:19:24 === +connection <0.20216.0> (127.0.0.1:58418 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:20:26 === +closing AMQP connection <0.20216.0> (127.0.0.1:58418 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:20:32 === +accepting AMQP connection <0.20251.0> (127.0.0.1:58623 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:20:32 === +connection <0.20251.0> (127.0.0.1:58623 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:22:01 === +closing AMQP connection <0.20251.0> (127.0.0.1:58623 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:22:07 === +accepting AMQP connection <0.20295.0> (127.0.0.1:58970 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:22:07 === +connection <0.20295.0> (127.0.0.1:58970 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:22:13 === +closing AMQP connection <0.20295.0> (127.0.0.1:58970 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:22:19 === +accepting AMQP connection <0.20312.0> (127.0.0.1:59030 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:22:19 === +connection <0.20312.0> (127.0.0.1:59030 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:22:44 === +closing AMQP connection <0.20312.0> (127.0.0.1:59030 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:22:49 === +accepting AMQP connection <0.20334.0> (127.0.0.1:59176 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:22:49 === +connection <0.20334.0> (127.0.0.1:59176 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:22:57 === +closing AMQP connection <0.20334.0> (127.0.0.1:59176 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:23:03 === +accepting AMQP connection <0.20351.0> (127.0.0.1:59225 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:23:03 === +connection <0.20351.0> (127.0.0.1:59225 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:23:12 === +closing AMQP connection <0.20351.0> (127.0.0.1:59225 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:23:18 === +accepting AMQP connection <0.20372.0> (127.0.0.1:59297 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:23:18 === +connection <0.20372.0> (127.0.0.1:59297 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:25:14 === +closing AMQP connection <0.20372.0> (127.0.0.1:59297 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:25:20 === +accepting AMQP connection <0.20424.0> (127.0.0.1:59765 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:25:20 === +connection <0.20424.0> (127.0.0.1:59765 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:25:22 === +closing AMQP connection <0.20424.0> (127.0.0.1:59765 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:25:28 === +accepting AMQP connection <0.20439.0> (127.0.0.1:59822 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:25:28 === +connection <0.20439.0> (127.0.0.1:59822 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:30:04 === +closing AMQP connection <0.20439.0> (127.0.0.1:59822 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:30:10 === +accepting AMQP connection <0.20544.0> (127.0.0.1:60344 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:30:10 === +connection <0.20544.0> (127.0.0.1:60344 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:30:31 === +closing AMQP connection <0.20544.0> (127.0.0.1:60344 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:30:38 === +accepting AMQP connection <0.20566.0> (127.0.0.1:60492 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:30:38 === +connection <0.20566.0> (127.0.0.1:60492 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:30:38 === +closing AMQP connection <0.20566.0> (127.0.0.1:60492 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::20:30:45 === +accepting AMQP connection <0.20574.0> (127.0.0.1:60534 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::20:30:45 === +connection <0.20574.0> (127.0.0.1:60534 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::20:32:33 === +closing AMQP connection <0.20574.0> (127.0.0.1:60534 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::21:51:30 === +accepting AMQP connection <0.21319.0> (127.0.0.1:63427 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::21:51:30 === +connection <0.21319.0> (127.0.0.1:63427 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::21:53:05 === +closing AMQP connection <0.21319.0> (127.0.0.1:63427 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::21:53:10 === +accepting AMQP connection <0.21364.0> (127.0.0.1:63891 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::21:53:10 === +connection <0.21364.0> (127.0.0.1:63891 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::21:55:36 === +closing AMQP connection <0.21364.0> (127.0.0.1:63891 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::21:55:41 === +accepting AMQP connection <0.21427.0> (127.0.0.1:64296 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::21:55:41 === +connection <0.21427.0> (127.0.0.1:64296 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::21:56:31 === +closing AMQP connection <0.21427.0> (127.0.0.1:64296 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:12:15 === +accepting AMQP connection <0.21765.0> (127.0.0.1:65420 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:12:15 === +connection <0.21765.0> (127.0.0.1:65420 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:12:45 === +closing AMQP connection <0.21765.0> (127.0.0.1:65420 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:14:24 === +accepting AMQP connection <0.21820.0> (127.0.0.1:49194 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:14:24 === +connection <0.21820.0> (127.0.0.1:49194 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:14:27 === +closing AMQP connection <0.21820.0> (127.0.0.1:49194 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:15:03 === +accepting AMQP connection <0.21844.0> (127.0.0.1:49376 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:15:03 === +connection <0.21844.0> (127.0.0.1:49376 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:16:21 === +closing AMQP connection <0.21844.0> (127.0.0.1:49376 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:16:27 === +accepting AMQP connection <0.21886.0> (127.0.0.1:49704 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:16:27 === +connection <0.21886.0> (127.0.0.1:49704 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:18:42 === +closing AMQP connection <0.21886.0> (127.0.0.1:49704 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:18:48 === +accepting AMQP connection <0.21944.0> (127.0.0.1:50360 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:18:48 === +connection <0.21944.0> (127.0.0.1:50360 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:21:07 === +closing AMQP connection <0.21944.0> (127.0.0.1:50360 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:21:12 === +accepting AMQP connection <0.22004.0> (127.0.0.1:51027 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:21:12 === +connection <0.22004.0> (127.0.0.1:51027 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:23:18 === +closing AMQP connection <0.22004.0> (127.0.0.1:51027 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:23:24 === +accepting AMQP connection <0.22062.0> (127.0.0.1:51586 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:23:24 === +connection <0.22062.0> (127.0.0.1:51586 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:23:26 === +closing AMQP connection <0.22062.0> (127.0.0.1:51586 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:23:32 === +accepting AMQP connection <0.22077.0> (127.0.0.1:51631 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:23:32 === +connection <0.22077.0> (127.0.0.1:51631 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:24:03 === +closing AMQP connection <0.22077.0> (127.0.0.1:51631 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:24:09 === +accepting AMQP connection <0.22100.0> (127.0.0.1:51814 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:24:09 === +connection <0.22100.0> (127.0.0.1:51814 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:25:26 === +closing AMQP connection <0.22100.0> (127.0.0.1:51814 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:25:32 === +accepting AMQP connection <0.22143.0> (127.0.0.1:52003 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:25:32 === +connection <0.22143.0> (127.0.0.1:52003 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:26:00 === +closing AMQP connection <0.22143.0> (127.0.0.1:52003 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:26:06 === +accepting AMQP connection <0.22165.0> (127.0.0.1:52166 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:26:06 === +connection <0.22165.0> (127.0.0.1:52166 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:28:48 === +closing AMQP connection <0.22165.0> (127.0.0.1:52166 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:28:53 === +accepting AMQP connection <0.22233.0> (127.0.0.1:52656 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:28:53 === +connection <0.22233.0> (127.0.0.1:52656 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:32:29 === +closing AMQP connection <0.22233.0> (127.0.0.1:52656 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:32:35 === +accepting AMQP connection <0.22319.0> (127.0.0.1:52881 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:32:35 === +connection <0.22319.0> (127.0.0.1:52881 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:34:18 === +closing AMQP connection <0.22319.0> (127.0.0.1:52881 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:34:24 === +accepting AMQP connection <0.22368.0> (127.0.0.1:53001 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:34:24 === +connection <0.22368.0> (127.0.0.1:53001 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:35:39 === +closing AMQP connection <0.22368.0> (127.0.0.1:53001 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:35:50 === +accepting AMQP connection <0.22408.0> (127.0.0.1:53134 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:35:50 === +connection <0.22408.0> (127.0.0.1:53134 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:37:21 === +closing AMQP connection <0.22408.0> (127.0.0.1:53134 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:37:26 === +accepting AMQP connection <0.22454.0> (127.0.0.1:53586 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:37:26 === +connection <0.22454.0> (127.0.0.1:53586 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:39:20 === +closing AMQP connection <0.22454.0> (127.0.0.1:53586 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:39:26 === +accepting AMQP connection <0.22505.0> (127.0.0.1:54064 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:39:26 === +connection <0.22505.0> (127.0.0.1:54064 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:39:33 === +closing AMQP connection <0.22505.0> (127.0.0.1:54064 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:39:39 === +accepting AMQP connection <0.22522.0> (127.0.0.1:54101 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:39:39 === +connection <0.22522.0> (127.0.0.1:54101 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:41:18 === +closing AMQP connection <0.22522.0> (127.0.0.1:54101 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:41:24 === +accepting AMQP connection <0.22570.0> (127.0.0.1:54586 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:41:24 === +connection <0.22570.0> (127.0.0.1:54586 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:41:34 === +closing AMQP connection <0.22570.0> (127.0.0.1:54586 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:41:40 === +accepting AMQP connection <0.22587.0> (127.0.0.1:54663 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:41:40 === +connection <0.22587.0> (127.0.0.1:54663 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:43:18 === +closing AMQP connection <0.22587.0> (127.0.0.1:54663 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:43:24 === +accepting AMQP connection <0.22636.0> (127.0.0.1:55112 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:43:24 === +connection <0.22636.0> (127.0.0.1:55112 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:45:00 === +closing AMQP connection <0.22636.0> (127.0.0.1:55112 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:45:06 === +accepting AMQP connection <0.22680.0> (127.0.0.1:55532 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:45:06 === +connection <0.22680.0> (127.0.0.1:55532 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:46:24 === +closing AMQP connection <0.22680.0> (127.0.0.1:55532 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:46:30 === +accepting AMQP connection <0.22721.0> (127.0.0.1:55604 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:46:30 === +connection <0.22721.0> (127.0.0.1:55604 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:46:43 === +closing AMQP connection <0.22721.0> (127.0.0.1:55604 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:46:49 === +accepting AMQP connection <0.22740.0> (127.0.0.1:55624 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:46:49 === +connection <0.22740.0> (127.0.0.1:55624 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:48:08 === +closing AMQP connection <0.22740.0> (127.0.0.1:55624 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:48:14 === +accepting AMQP connection <0.22781.0> (127.0.0.1:55698 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:48:14 === +connection <0.22781.0> (127.0.0.1:55698 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:52:46 === +closing AMQP connection <0.22781.0> (127.0.0.1:55698 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:52:52 === +accepting AMQP connection <0.22884.0> (127.0.0.1:56141 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:52:52 === +connection <0.22884.0> (127.0.0.1:56141 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:53:47 === +closing AMQP connection <0.22884.0> (127.0.0.1:56141 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:54:23 === +accepting AMQP connection <0.22927.0> (127.0.0.1:56197 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:54:23 === +connection <0.22927.0> (127.0.0.1:56197 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:55:03 === +closing AMQP connection <0.22927.0> (127.0.0.1:56197 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:55:08 === +accepting AMQP connection <0.22954.0> (127.0.0.1:56222 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:55:08 === +connection <0.22954.0> (127.0.0.1:56222 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:56:43 === +closing AMQP connection <0.22954.0> (127.0.0.1:56222 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:56:49 === +accepting AMQP connection <0.23001.0> (127.0.0.1:56274 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:56:49 === +connection <0.23001.0> (127.0.0.1:56274 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:57:06 === +closing AMQP connection <0.23001.0> (127.0.0.1:56274 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:57:11 === +accepting AMQP connection <0.23020.0> (127.0.0.1:56290 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:57:11 === +connection <0.23020.0> (127.0.0.1:56290 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:58:10 === +closing AMQP connection <0.23020.0> (127.0.0.1:56290 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::22:58:16 === +accepting AMQP connection <0.23056.0> (127.0.0.1:56354 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::22:58:16 === +connection <0.23056.0> (127.0.0.1:56354 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::22:59:56 === +closing AMQP connection <0.23056.0> (127.0.0.1:56354 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:00:06 === +accepting AMQP connection <0.23103.0> (127.0.0.1:56431 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:00:06 === +connection <0.23103.0> (127.0.0.1:56431 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:01:33 === +closing AMQP connection <0.23103.0> (127.0.0.1:56431 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:01:39 === +accepting AMQP connection <0.23149.0> (127.0.0.1:56503 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:01:39 === +connection <0.23149.0> (127.0.0.1:56503 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:02:46 === +closing AMQP connection <0.23149.0> (127.0.0.1:56503 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:02:52 === +accepting AMQP connection <0.23184.0> (127.0.0.1:56548 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:02:52 === +connection <0.23184.0> (127.0.0.1:56548 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:05:53 === +closing AMQP connection <0.23184.0> (127.0.0.1:56548 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:05:59 === +accepting AMQP connection <0.23259.0> (127.0.0.1:56644 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:05:59 === +connection <0.23259.0> (127.0.0.1:56644 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:08:13 === +closing AMQP connection <0.23259.0> (127.0.0.1:56644 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:08:19 === +accepting AMQP connection <0.23318.0> (127.0.0.1:56720 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:08:19 === +connection <0.23318.0> (127.0.0.1:56720 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:09:19 === +closing AMQP connection <0.23318.0> (127.0.0.1:56720 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:09:25 === +accepting AMQP connection <0.23352.0> (127.0.0.1:56780 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:09:25 === +connection <0.23352.0> (127.0.0.1:56780 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:10:21 === +closing AMQP connection <0.23352.0> (127.0.0.1:56780 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:10:27 === +accepting AMQP connection <0.23385.0> (127.0.0.1:56836 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:10:27 === +connection <0.23385.0> (127.0.0.1:56836 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:11:04 === +closing AMQP connection <0.23385.0> (127.0.0.1:56836 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:11:10 === +accepting AMQP connection <0.23412.0> (127.0.0.1:56863 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:11:10 === +connection <0.23412.0> (127.0.0.1:56863 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:11:38 === +closing AMQP connection <0.23412.0> (127.0.0.1:56863 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:11:49 === +accepting AMQP connection <0.23438.0> (127.0.0.1:56899 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:11:49 === +connection <0.23438.0> (127.0.0.1:56899 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:12:24 === +closing AMQP connection <0.23438.0> (127.0.0.1:56899 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:12:30 === +accepting AMQP connection <0.23464.0> (127.0.0.1:56931 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:12:30 === +connection <0.23464.0> (127.0.0.1:56931 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:14:13 === +closing AMQP connection <0.23464.0> (127.0.0.1:56931 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:14:19 === +accepting AMQP connection <0.23514.0> (127.0.0.1:56994 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:14:19 === +connection <0.23514.0> (127.0.0.1:56994 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:15:49 === +closing AMQP connection <0.23514.0> (127.0.0.1:56994 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:15:54 === +accepting AMQP connection <0.23556.0> (127.0.0.1:57050 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:15:55 === +connection <0.23556.0> (127.0.0.1:57050 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:16:04 === +closing AMQP connection <0.23556.0> (127.0.0.1:57050 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:16:10 === +accepting AMQP connection <0.23574.0> (127.0.0.1:57065 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:16:10 === +connection <0.23574.0> (127.0.0.1:57065 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:16:11 === +closing AMQP connection <0.23574.0> (127.0.0.1:57065 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:16:17 === +accepting AMQP connection <0.23591.0> (127.0.0.1:57080 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:16:17 === +connection <0.23591.0> (127.0.0.1:57080 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:17:13 === +closing AMQP connection <0.23591.0> (127.0.0.1:57080 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:17:20 === +accepting AMQP connection <0.23625.0> (127.0.0.1:57121 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:17:20 === +connection <0.23625.0> (127.0.0.1:57121 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:18:28 === +closing AMQP connection <0.23625.0> (127.0.0.1:57121 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:18:34 === +accepting AMQP connection <0.23661.0> (127.0.0.1:57167 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:18:34 === +connection <0.23661.0> (127.0.0.1:57167 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:19:07 === +closing AMQP connection <0.23661.0> (127.0.0.1:57167 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:19:13 === +accepting AMQP connection <0.23685.0> (127.0.0.1:57193 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:19:13 === +connection <0.23685.0> (127.0.0.1:57193 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:19:40 === +closing AMQP connection <0.23685.0> (127.0.0.1:57193 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:19:46 === +accepting AMQP connection <0.23711.0> (127.0.0.1:57244 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:19:46 === +connection <0.23711.0> (127.0.0.1:57244 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:20:21 === +closing AMQP connection <0.23711.0> (127.0.0.1:57244 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:20:27 === +accepting AMQP connection <0.23737.0> (127.0.0.1:57275 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:20:27 === +connection <0.23737.0> (127.0.0.1:57275 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:21:09 === +closing AMQP connection <0.23737.0> (127.0.0.1:57275 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:21:14 === +accepting AMQP connection <0.23766.0> (127.0.0.1:57321 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:21:14 === +connection <0.23766.0> (127.0.0.1:57321 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:22:51 === +closing AMQP connection <0.23766.0> (127.0.0.1:57321 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:22:57 === +accepting AMQP connection <0.23811.0> (127.0.0.1:57438 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:22:57 === +connection <0.23811.0> (127.0.0.1:57438 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:23:20 === +closing AMQP connection <0.23811.0> (127.0.0.1:57438 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:23:26 === +accepting AMQP connection <0.23835.0> (127.0.0.1:57463 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:23:26 === +connection <0.23835.0> (127.0.0.1:57463 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:23:26 === +closing AMQP connection <0.23835.0> (127.0.0.1:57463 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:23:32 === +accepting AMQP connection <0.23850.0> (127.0.0.1:57476 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:23:32 === +connection <0.23850.0> (127.0.0.1:57476 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:24:12 === +closing AMQP connection <0.23850.0> (127.0.0.1:57476 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:24:18 === +accepting AMQP connection <0.23877.0> (127.0.0.1:57507 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:24:18 === +connection <0.23877.0> (127.0.0.1:57507 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:25:41 === +closing AMQP connection <0.23877.0> (127.0.0.1:57507 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:26:51 === +accepting AMQP connection <0.23940.0> (127.0.0.1:57612 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:26:51 === +connection <0.23940.0> (127.0.0.1:57612 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:26:52 === +closing AMQP connection <0.23940.0> (127.0.0.1:57612 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:26:58 === +accepting AMQP connection <0.23954.0> (127.0.0.1:57621 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:26:58 === +connection <0.23954.0> (127.0.0.1:57621 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:27:20 === +closing AMQP connection <0.23954.0> (127.0.0.1:57621 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:27:25 === +accepting AMQP connection <0.23978.0> (127.0.0.1:57659 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:27:25 === +connection <0.23978.0> (127.0.0.1:57659 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:27:38 === +closing AMQP connection <0.23978.0> (127.0.0.1:57659 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:27:44 === +accepting AMQP connection <0.23997.0> (127.0.0.1:57679 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:27:44 === +connection <0.23997.0> (127.0.0.1:57679 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:27:46 === +closing AMQP connection <0.23997.0> (127.0.0.1:57679 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:27:52 === +accepting AMQP connection <0.24012.0> (127.0.0.1:57693 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:27:52 === +connection <0.24012.0> (127.0.0.1:57693 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:28:18 === +closing AMQP connection <0.24012.0> (127.0.0.1:57693 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:28:24 === +accepting AMQP connection <0.24036.0> (127.0.0.1:57720 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:28:24 === +connection <0.24036.0> (127.0.0.1:57720 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:30:08 === +closing AMQP connection <0.24036.0> (127.0.0.1:57720 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:30:13 === +accepting AMQP connection <0.24084.0> (127.0.0.1:57782 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:30:13 === +connection <0.24084.0> (127.0.0.1:57782 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:30:26 === +closing AMQP connection <0.24084.0> (127.0.0.1:57782 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:30:32 === +accepting AMQP connection <0.24104.0> (127.0.0.1:57802 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:30:32 === +connection <0.24104.0> (127.0.0.1:57802 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:30:41 === +closing AMQP connection <0.24104.0> (127.0.0.1:57802 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:30:47 === +accepting AMQP connection <0.24120.0> (127.0.0.1:57819 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:30:47 === +connection <0.24120.0> (127.0.0.1:57819 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:30:48 === +closing AMQP connection <0.24120.0> (127.0.0.1:57819 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:30:54 === +accepting AMQP connection <0.24136.0> (127.0.0.1:57832 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:30:54 === +connection <0.24136.0> (127.0.0.1:57832 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:30:57 === +closing AMQP connection <0.24136.0> (127.0.0.1:57832 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:31:03 === +accepting AMQP connection <0.24152.0> (127.0.0.1:57844 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:31:03 === +connection <0.24152.0> (127.0.0.1:57844 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:33:36 === +closing AMQP connection <0.24152.0> (127.0.0.1:57844 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:33:41 === +accepting AMQP connection <0.24218.0> (127.0.0.1:57924 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:33:41 === +connection <0.24218.0> (127.0.0.1:57924 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:33:45 === +closing AMQP connection <0.24218.0> (127.0.0.1:57924 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:33:50 === +accepting AMQP connection <0.24232.0> (127.0.0.1:57935 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:33:50 === +connection <0.24232.0> (127.0.0.1:57935 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:34:03 === +closing AMQP connection <0.24232.0> (127.0.0.1:57935 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:34:09 === +accepting AMQP connection <0.24251.0> (127.0.0.1:57949 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:34:09 === +connection <0.24251.0> (127.0.0.1:57949 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:42:36 === +closing AMQP connection <0.24251.0> (127.0.0.1:57949 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:42:42 === +accepting AMQP connection <0.24432.0> (127.0.0.1:58224 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:42:42 === +connection <0.24432.0> (127.0.0.1:58224 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:43:06 === +closing AMQP connection <0.24432.0> (127.0.0.1:58224 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:43:12 === +accepting AMQP connection <0.24454.0> (127.0.0.1:58247 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:43:12 === +connection <0.24454.0> (127.0.0.1:58247 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:46:45 === +closing AMQP connection <0.24454.0> (127.0.0.1:58247 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:46:51 === +accepting AMQP connection <0.24539.0> (127.0.0.1:58370 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:46:51 === +connection <0.24539.0> (127.0.0.1:58370 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:48:08 === +closing AMQP connection <0.24539.0> (127.0.0.1:58370 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:48:14 === +accepting AMQP connection <0.24580.0> (127.0.0.1:58431 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:48:14 === +connection <0.24580.0> (127.0.0.1:58431 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:50:48 === +closing AMQP connection <0.24580.0> (127.0.0.1:58431 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:50:54 === +accepting AMQP connection <0.24644.0> (127.0.0.1:58517 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:50:54 === +connection <0.24644.0> (127.0.0.1:58517 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:51:20 === +closing AMQP connection <0.24644.0> (127.0.0.1:58517 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:51:26 === +accepting AMQP connection <0.24669.0> (127.0.0.1:58545 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:51:26 === +connection <0.24669.0> (127.0.0.1:58545 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 17-Jun-2017::23:51:29 === +closing AMQP connection <0.24669.0> (127.0.0.1:58545 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 17-Jun-2017::23:51:35 === +accepting AMQP connection <0.24685.0> (127.0.0.1:58556 -> 127.0.0.1:4000) + +=INFO REPORT==== 17-Jun-2017::23:51:35 === +connection <0.24685.0> (127.0.0.1:58556 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:00:05 === +closing AMQP connection <0.24685.0> (127.0.0.1:58556 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:00:11 === +accepting AMQP connection <0.24865.0> (127.0.0.1:58818 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:00:11 === +connection <0.24865.0> (127.0.0.1:58818 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:00:55 === +closing AMQP connection <0.24865.0> (127.0.0.1:58818 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:01:01 === +accepting AMQP connection <0.24894.0> (127.0.0.1:58866 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:01:01 === +connection <0.24894.0> (127.0.0.1:58866 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:01:26 === +closing AMQP connection <0.24894.0> (127.0.0.1:58866 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:01:32 === +accepting AMQP connection <0.24919.0> (127.0.0.1:58889 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:01:32 === +connection <0.24919.0> (127.0.0.1:58889 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:01:42 === +closing AMQP connection <0.24919.0> (127.0.0.1:58889 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:01:47 === +accepting AMQP connection <0.24937.0> (127.0.0.1:58907 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:01:47 === +connection <0.24937.0> (127.0.0.1:58907 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:04:54 === +closing AMQP connection <0.24937.0> (127.0.0.1:58907 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:05:00 === +accepting AMQP connection <0.25012.0> (127.0.0.1:59008 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:05:00 === +connection <0.25012.0> (127.0.0.1:59008 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:29:30 === +closing AMQP connection <0.25012.0> (127.0.0.1:59008 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:29:36 === +accepting AMQP connection <0.25508.0> (127.0.0.1:59585 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:29:36 === +connection <0.25508.0> (127.0.0.1:59585 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:29:58 === +closing AMQP connection <0.25508.0> (127.0.0.1:59585 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:30:04 === +accepting AMQP connection <0.25529.0> (127.0.0.1:59601 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:30:04 === +connection <0.25529.0> (127.0.0.1:59601 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:30:26 === +closing AMQP connection <0.25529.0> (127.0.0.1:59601 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:30:32 === +accepting AMQP connection <0.25552.0> (127.0.0.1:59618 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:30:32 === +connection <0.25552.0> (127.0.0.1:59618 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:33:57 === +closing AMQP connection <0.25552.0> (127.0.0.1:59618 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:34:02 === +accepting AMQP connection <0.25633.0> (127.0.0.1:59689 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:34:02 === +connection <0.25633.0> (127.0.0.1:59689 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:35:00 === +closing AMQP connection <0.25633.0> (127.0.0.1:59689 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::00:35:06 === +accepting AMQP connection <0.25666.0> (127.0.0.1:59713 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::00:35:06 === +connection <0.25666.0> (127.0.0.1:59713 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::00:36:08 === +closing AMQP connection <0.25666.0> (127.0.0.1:59713 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:14:09 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-Jun-2017::12:14:09 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Memory limit set to 4924MB of 12310MB total. + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:14:13 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-Jun-2017::12:14:14 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +Statistics database started. + +=INFO REPORT==== 18-Jun-2017::12:14:14 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-Jun-2017::12:14:48 === +accepting AMQP connection <0.457.0> (127.0.0.1:59627 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:14:48 === +connection <0.457.0> (127.0.0.1:59627 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:16:22 === +closing AMQP connection <0.457.0> (127.0.0.1:59627 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:16:28 === +accepting AMQP connection <0.503.0> (127.0.0.1:60049 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:16:28 === +connection <0.503.0> (127.0.0.1:60049 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:20:19 === +closing AMQP connection <0.503.0> (127.0.0.1:60049 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:20:25 === +accepting AMQP connection <0.596.0> (127.0.0.1:60964 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:20:25 === +connection <0.596.0> (127.0.0.1:60964 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:35:30 === +closing AMQP connection <0.596.0> (127.0.0.1:60964 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:35:36 === +accepting AMQP connection <0.891.0> (127.0.0.1:64724 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:35:36 === +connection <0.891.0> (127.0.0.1:64724 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:40:55 === +closing AMQP connection <0.891.0> (127.0.0.1:64724 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:41:02 === +accepting AMQP connection <0.1004.0> (127.0.0.1:49906 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:41:02 === +connection <0.1004.0> (127.0.0.1:49906 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:41:14 === +closing AMQP connection <0.1004.0> (127.0.0.1:49906 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:41:20 === +accepting AMQP connection <0.1023.0> (127.0.0.1:49989 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:41:20 === +connection <0.1023.0> (127.0.0.1:49989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:43:19 === +closing AMQP connection <0.1023.0> (127.0.0.1:49989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:43:25 === +accepting AMQP connection <0.1074.0> (127.0.0.1:50302 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:43:25 === +connection <0.1074.0> (127.0.0.1:50302 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:46:21 === +closing AMQP connection <0.1074.0> (127.0.0.1:50302 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:46:27 === +accepting AMQP connection <0.1143.0> (127.0.0.1:51131 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:46:27 === +connection <0.1143.0> (127.0.0.1:51131 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:49:13 === +closing AMQP connection <0.1143.0> (127.0.0.1:51131 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:49:19 === +accepting AMQP connection <0.1210.0> (127.0.0.1:51911 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:49:19 === +connection <0.1210.0> (127.0.0.1:51911 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:51:01 === +closing AMQP connection <0.1210.0> (127.0.0.1:51911 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:51:12 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-Jun-2017::12:51:12 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Memory limit set to 5753MB of 14384MB total. + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-Jun-2017::12:51:15 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Statistics database started. + +=INFO REPORT==== 18-Jun-2017::12:51:15 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-Jun-2017::12:51:50 === +accepting AMQP connection <0.457.0> (127.0.0.1:52289 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:51:50 === +connection <0.457.0> (127.0.0.1:52289 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:53:23 === +closing AMQP connection <0.457.0> (127.0.0.1:52289 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:53:29 === +accepting AMQP connection <0.503.0> (127.0.0.1:52738 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:53:29 === +connection <0.503.0> (127.0.0.1:52738 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:55:04 === +closing AMQP connection <0.503.0> (127.0.0.1:52738 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::12:56:00 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-Jun-2017::12:56:00 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Memory limit set to 5732MB of 14330MB total. + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-Jun-2017::12:56:06 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Statistics database started. + +=INFO REPORT==== 18-Jun-2017::12:56:06 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-Jun-2017::12:56:52 === +accepting AMQP connection <0.461.0> (127.0.0.1:53634 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::12:56:52 === +connection <0.461.0> (127.0.0.1:53634 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::12:57:43 === +closing AMQP connection <0.461.0> (127.0.0.1:53634 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:00:46 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-Jun-2017::13:00:46 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-Jun-2017::13:00:49 === +Memory limit set to 5756MB of 14391MB total. + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-Jun-2017::13:00:50 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Statistics database started. + +=INFO REPORT==== 18-Jun-2017::13:00:50 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-Jun-2017::13:01:26 === +accepting AMQP connection <0.460.0> (127.0.0.1:55048 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:01:26 === +connection <0.460.0> (127.0.0.1:55048 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:02:56 === +closing AMQP connection <0.460.0> (127.0.0.1:55048 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:03:02 === +accepting AMQP connection <0.504.0> (127.0.0.1:55530 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:03:02 === +connection <0.504.0> (127.0.0.1:55530 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:06:36 === +closing AMQP connection <0.504.0> (127.0.0.1:55530 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:06:42 === +accepting AMQP connection <0.591.0> (127.0.0.1:56531 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:06:42 === +connection <0.591.0> (127.0.0.1:56531 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:06:58 === +closing AMQP connection <0.591.0> (127.0.0.1:56531 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:07:04 === +accepting AMQP connection <0.612.0> (127.0.0.1:56638 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:07:04 === +connection <0.612.0> (127.0.0.1:56638 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:11:41 === +closing AMQP connection <0.612.0> (127.0.0.1:56638 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:12:25 === +accepting AMQP connection <0.723.0> (127.0.0.1:58135 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:12:25 === +connection <0.723.0> (127.0.0.1:58135 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:12:39 === +closing AMQP connection <0.723.0> (127.0.0.1:58135 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:12:45 === +accepting AMQP connection <0.743.0> (127.0.0.1:58234 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:12:45 === +connection <0.743.0> (127.0.0.1:58234 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:13:13 === +closing AMQP connection <0.743.0> (127.0.0.1:58234 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:13:18 === +accepting AMQP connection <0.766.0> (127.0.0.1:58415 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:13:18 === +connection <0.766.0> (127.0.0.1:58415 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:13:34 === +closing AMQP connection <0.766.0> (127.0.0.1:58415 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:13:39 === +accepting AMQP connection <0.786.0> (127.0.0.1:58519 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:13:39 === +connection <0.786.0> (127.0.0.1:58519 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:13:45 === +closing AMQP connection <0.786.0> (127.0.0.1:58519 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:13:51 === +accepting AMQP connection <0.802.0> (127.0.0.1:58580 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:13:51 === +connection <0.802.0> (127.0.0.1:58580 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:13:54 === +closing AMQP connection <0.802.0> (127.0.0.1:58580 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:14:00 === +accepting AMQP connection <0.818.0> (127.0.0.1:58630 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:14:00 === +connection <0.818.0> (127.0.0.1:58630 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:14:02 === +closing AMQP connection <0.818.0> (127.0.0.1:58630 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:14:08 === +accepting AMQP connection <0.833.0> (127.0.0.1:58676 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:14:08 === +connection <0.833.0> (127.0.0.1:58676 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:15:08 === +closing AMQP connection <0.833.0> (127.0.0.1:58676 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:15:14 === +accepting AMQP connection <0.867.0> (127.0.0.1:58732 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:15:14 === +connection <0.867.0> (127.0.0.1:58732 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:15:18 === +closing AMQP connection <0.867.0> (127.0.0.1:58732 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:15:23 === +accepting AMQP connection <0.883.0> (127.0.0.1:58743 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:15:23 === +connection <0.883.0> (127.0.0.1:58743 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:15:43 === +closing AMQP connection <0.883.0> (127.0.0.1:58743 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:15:48 === +accepting AMQP connection <0.904.0> (127.0.0.1:58758 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:15:48 === +connection <0.904.0> (127.0.0.1:58758 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:16:07 === +closing AMQP connection <0.904.0> (127.0.0.1:58758 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:16:13 === +accepting AMQP connection <0.925.0> (127.0.0.1:58790 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:16:13 === +connection <0.925.0> (127.0.0.1:58790 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:16:41 === +closing AMQP connection <0.925.0> (127.0.0.1:58790 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:16:46 === +accepting AMQP connection <0.948.0> (127.0.0.1:58847 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:16:46 === +connection <0.948.0> (127.0.0.1:58847 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:17:09 === +closing AMQP connection <0.948.0> (127.0.0.1:58847 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:17:14 === +accepting AMQP connection <0.970.0> (127.0.0.1:58940 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:17:14 === +connection <0.970.0> (127.0.0.1:58940 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:17:15 === +closing AMQP connection <0.970.0> (127.0.0.1:58940 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:17:20 === +accepting AMQP connection <0.978.0> (127.0.0.1:58952 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:17:20 === +connection <0.978.0> (127.0.0.1:58952 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:18:52 === +closing AMQP connection <0.978.0> (127.0.0.1:58952 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:18:58 === +accepting AMQP connection <0.1022.0> (127.0.0.1:59145 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:18:58 === +connection <0.1022.0> (127.0.0.1:59145 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:19:45 === +closing AMQP connection <0.1022.0> (127.0.0.1:59145 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:19:51 === +accepting AMQP connection <0.1051.0> (127.0.0.1:59389 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:19:51 === +connection <0.1051.0> (127.0.0.1:59389 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:20:27 === +closing AMQP connection <0.1051.0> (127.0.0.1:59389 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:20:33 === +accepting AMQP connection <0.1077.0> (127.0.0.1:59588 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:20:33 === +connection <0.1077.0> (127.0.0.1:59588 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:21:12 === +closing AMQP connection <0.1077.0> (127.0.0.1:59588 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:21:18 === +accepting AMQP connection <0.1104.0> (127.0.0.1:59810 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:21:18 === +connection <0.1104.0> (127.0.0.1:59810 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:22:37 === +closing AMQP connection <0.1104.0> (127.0.0.1:59810 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:22:43 === +accepting AMQP connection <0.1143.0> (127.0.0.1:60168 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:22:43 === +connection <0.1143.0> (127.0.0.1:60168 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:23:34 === +closing AMQP connection <0.1143.0> (127.0.0.1:60168 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:24:10 === +accepting AMQP connection <0.1182.0> (127.0.0.1:60582 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:24:10 === +connection <0.1182.0> (127.0.0.1:60582 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:25:18 === +closing AMQP connection <0.1182.0> (127.0.0.1:60582 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:25:25 === +accepting AMQP connection <0.1220.0> (127.0.0.1:60893 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:25:25 === +connection <0.1220.0> (127.0.0.1:60893 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:26:41 === +closing AMQP connection <0.1220.0> (127.0.0.1:60893 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:26:46 === +accepting AMQP connection <0.1258.0> (127.0.0.1:61270 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:26:46 === +connection <0.1258.0> (127.0.0.1:61270 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:27:01 === +closing AMQP connection <0.1258.0> (127.0.0.1:61270 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:27:06 === +accepting AMQP connection <0.1277.0> (127.0.0.1:61377 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:27:06 === +connection <0.1277.0> (127.0.0.1:61377 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:27:09 === +closing AMQP connection <0.1277.0> (127.0.0.1:61377 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:27:15 === +accepting AMQP connection <0.1293.0> (127.0.0.1:61422 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:27:15 === +connection <0.1293.0> (127.0.0.1:61422 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:27:17 === +closing AMQP connection <0.1293.0> (127.0.0.1:61422 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:27:22 === +accepting AMQP connection <0.1307.0> (127.0.0.1:61474 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:27:22 === +connection <0.1307.0> (127.0.0.1:61474 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:27:38 === +closing AMQP connection <0.1307.0> (127.0.0.1:61474 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:27:44 === +accepting AMQP connection <0.1328.0> (127.0.0.1:61583 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:27:44 === +connection <0.1328.0> (127.0.0.1:61583 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:28:35 === +closing AMQP connection <0.1328.0> (127.0.0.1:61583 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:28:41 === +accepting AMQP connection <0.1358.0> (127.0.0.1:61852 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:28:41 === +connection <0.1358.0> (127.0.0.1:61852 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:28:49 === +closing AMQP connection <0.1358.0> (127.0.0.1:61852 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:28:55 === +accepting AMQP connection <0.1377.0> (127.0.0.1:61925 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:28:55 === +connection <0.1377.0> (127.0.0.1:61925 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:28:55 === +closing AMQP connection <0.1377.0> (127.0.0.1:61925 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:29:01 === +accepting AMQP connection <0.1385.0> (127.0.0.1:61963 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:29:01 === +connection <0.1385.0> (127.0.0.1:61963 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:29:06 === +closing AMQP connection <0.1385.0> (127.0.0.1:61963 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:29:11 === +accepting AMQP connection <0.1401.0> (127.0.0.1:62012 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:29:11 === +connection <0.1401.0> (127.0.0.1:62012 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:29:19 === +closing AMQP connection <0.1401.0> (127.0.0.1:62012 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:29:25 === +accepting AMQP connection <0.1418.0> (127.0.0.1:62089 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:29:25 === +connection <0.1418.0> (127.0.0.1:62089 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:29:42 === +closing AMQP connection <0.1418.0> (127.0.0.1:62089 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:29:52 === +accepting AMQP connection <0.1439.0> (127.0.0.1:62224 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:29:52 === +connection <0.1439.0> (127.0.0.1:62224 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:30:13 === +closing AMQP connection <0.1439.0> (127.0.0.1:62224 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:30:19 === +accepting AMQP connection <0.1460.0> (127.0.0.1:62354 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:30:19 === +connection <0.1460.0> (127.0.0.1:62354 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:31:11 === +closing AMQP connection <0.1460.0> (127.0.0.1:62354 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:31:17 === +accepting AMQP connection <0.1492.0> (127.0.0.1:62627 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:31:17 === +connection <0.1492.0> (127.0.0.1:62627 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:31:48 === +closing AMQP connection <0.1492.0> (127.0.0.1:62627 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:31:53 === +accepting AMQP connection <0.1516.0> (127.0.0.1:62809 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:31:53 === +connection <0.1516.0> (127.0.0.1:62809 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:32:11 === +closing AMQP connection <0.1516.0> (127.0.0.1:62809 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:32:17 === +accepting AMQP connection <0.1536.0> (127.0.0.1:62921 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:32:17 === +connection <0.1536.0> (127.0.0.1:62921 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:32:47 === +closing AMQP connection <0.1536.0> (127.0.0.1:62921 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:32:53 === +accepting AMQP connection <0.1560.0> (127.0.0.1:63085 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:32:53 === +connection <0.1560.0> (127.0.0.1:63085 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:33:10 === +closing AMQP connection <0.1560.0> (127.0.0.1:63085 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:33:16 === +accepting AMQP connection <0.1581.0> (127.0.0.1:63196 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:33:16 === +connection <0.1581.0> (127.0.0.1:63196 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:33:28 === +closing AMQP connection <0.1581.0> (127.0.0.1:63196 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:33:34 === +accepting AMQP connection <0.1598.0> (127.0.0.1:63283 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:33:34 === +connection <0.1598.0> (127.0.0.1:63283 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:34:13 === +closing AMQP connection <0.1598.0> (127.0.0.1:63283 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:34:19 === +accepting AMQP connection <0.1626.0> (127.0.0.1:63499 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:34:19 === +connection <0.1626.0> (127.0.0.1:63499 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:34:19 === +closing AMQP connection <0.1626.0> (127.0.0.1:63499 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:34:25 === +accepting AMQP connection <0.1635.0> (127.0.0.1:63532 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:34:25 === +connection <0.1635.0> (127.0.0.1:63532 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:34:30 === +closing AMQP connection <0.1635.0> (127.0.0.1:63532 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:34:35 === +accepting AMQP connection <0.1651.0> (127.0.0.1:63591 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:34:35 === +connection <0.1651.0> (127.0.0.1:63591 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:34:48 === +closing AMQP connection <0.1651.0> (127.0.0.1:63591 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:34:54 === +accepting AMQP connection <0.1671.0> (127.0.0.1:63687 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:34:54 === +connection <0.1671.0> (127.0.0.1:63687 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:35:01 === +closing AMQP connection <0.1671.0> (127.0.0.1:63687 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:35:06 === +accepting AMQP connection <0.1687.0> (127.0.0.1:63755 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:35:06 === +connection <0.1687.0> (127.0.0.1:63755 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:35:14 === +closing AMQP connection <0.1687.0> (127.0.0.1:63755 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:35:20 === +accepting AMQP connection <0.1704.0> (127.0.0.1:63821 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:35:20 === +connection <0.1704.0> (127.0.0.1:63821 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:42:03 === +closing AMQP connection <0.1704.0> (127.0.0.1:63821 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:42:09 === +accepting AMQP connection <0.1843.0> (127.0.0.1:49372 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:42:09 === +connection <0.1843.0> (127.0.0.1:49372 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:42:57 === +closing AMQP connection <0.1843.0> (127.0.0.1:49372 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:43:02 === +accepting AMQP connection <0.1874.0> (127.0.0.1:49512 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:43:02 === +connection <0.1874.0> (127.0.0.1:49512 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:43:07 === +closing AMQP connection <0.1874.0> (127.0.0.1:49512 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:43:13 === +accepting AMQP connection <0.1890.0> (127.0.0.1:49527 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:43:13 === +connection <0.1890.0> (127.0.0.1:49527 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:43:22 === +closing AMQP connection <0.1890.0> (127.0.0.1:49527 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:43:28 === +accepting AMQP connection <0.1908.0> (127.0.0.1:49543 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:43:28 === +connection <0.1908.0> (127.0.0.1:49543 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:43:39 === +closing AMQP connection <0.1908.0> (127.0.0.1:49543 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::13:43:45 === +accepting AMQP connection <0.1925.0> (127.0.0.1:49560 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::13:43:45 === +connection <0.1925.0> (127.0.0.1:49560 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::13:44:33 === +closing AMQP connection <0.1925.0> (127.0.0.1:49560 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::22:47:13 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 18-Jun-2017::22:47:13 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 18-Jun-2017::22:47:21 === +Memory limit set to 5782MB of 14456MB total. + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Disk free limit set to 50MB + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Starting rabbit_node_monitor + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 18-Jun-2017::22:47:22 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 18-Jun-2017::22:47:22 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 18-Jun-2017::22:47:23 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 18-Jun-2017::22:47:23 === +Statistics database started. + +=INFO REPORT==== 18-Jun-2017::22:47:23 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 18-Jun-2017::22:48:04 === +accepting AMQP connection <0.460.0> (127.0.0.1:52897 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::22:48:04 === +connection <0.460.0> (127.0.0.1:52897 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::22:49:49 === +closing AMQP connection <0.460.0> (127.0.0.1:52897 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::22:49:57 === +accepting AMQP connection <0.509.0> (127.0.0.1:52946 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::22:49:57 === +connection <0.509.0> (127.0.0.1:52946 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::22:56:51 === +closing AMQP connection <0.509.0> (127.0.0.1:52946 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::22:56:57 === +accepting AMQP connection <0.658.0> (127.0.0.1:53106 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::22:56:57 === +connection <0.658.0> (127.0.0.1:53106 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::22:59:05 === +closing AMQP connection <0.658.0> (127.0.0.1:53106 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::22:59:10 === +accepting AMQP connection <0.712.0> (127.0.0.1:53347 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::22:59:10 === +connection <0.712.0> (127.0.0.1:53347 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::23:00:22 === +closing AMQP connection <0.712.0> (127.0.0.1:53347 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 18-Jun-2017::23:00:28 === +accepting AMQP connection <0.750.0> (127.0.0.1:53653 -> 127.0.0.1:4000) + +=INFO REPORT==== 18-Jun-2017::23:00:28 === +connection <0.750.0> (127.0.0.1:53653 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 18-Jun-2017::23:01:43 === +closing AMQP connection <0.750.0> (127.0.0.1:53653 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::21:38:09 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 19-Jun-2017::21:38:09 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Memory limit set to 5665MB of 14164MB total. + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Disk free limit set to 50MB + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Starting rabbit_node_monitor + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 19-Jun-2017::21:38:12 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Statistics database started. + +=INFO REPORT==== 19-Jun-2017::21:38:12 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 19-Jun-2017::22:06:57 === +accepting AMQP connection <0.988.0> (127.0.0.1:49960 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:06:57 === +connection <0.988.0> (127.0.0.1:49960 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:08:13 === +closing AMQP connection <0.988.0> (127.0.0.1:49960 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:08:19 === +accepting AMQP connection <0.1029.0> (127.0.0.1:50034 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:08:19 === +connection <0.1029.0> (127.0.0.1:50034 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:10:15 === +closing AMQP connection <0.1029.0> (127.0.0.1:50034 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:10:21 === +accepting AMQP connection <0.1079.0> (127.0.0.1:50079 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:10:21 === +connection <0.1079.0> (127.0.0.1:50079 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:11:25 === +closing AMQP connection <0.1079.0> (127.0.0.1:50079 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:11:31 === +accepting AMQP connection <0.1114.0> (127.0.0.1:50107 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:11:31 === +connection <0.1114.0> (127.0.0.1:50107 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:18:33 === +closing AMQP connection <0.1114.0> (127.0.0.1:50107 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:18:38 === +accepting AMQP connection <0.1260.0> (127.0.0.1:50234 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:18:38 === +connection <0.1260.0> (127.0.0.1:50234 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:18:50 === +closing AMQP connection <0.1260.0> (127.0.0.1:50234 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:18:55 === +accepting AMQP connection <0.1278.0> (127.0.0.1:50248 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:18:55 === +connection <0.1278.0> (127.0.0.1:50248 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:19:31 === +closing AMQP connection <0.1278.0> (127.0.0.1:50248 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:19:40 === +accepting AMQP connection <0.1305.0> (127.0.0.1:50274 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:19:40 === +connection <0.1305.0> (127.0.0.1:50274 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:19:43 === +closing AMQP connection <0.1305.0> (127.0.0.1:50274 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:19:49 === +accepting AMQP connection <0.1320.0> (127.0.0.1:50282 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:19:49 === +connection <0.1320.0> (127.0.0.1:50282 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:21:39 === +closing AMQP connection <0.1320.0> (127.0.0.1:50282 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:21:44 === +accepting AMQP connection <0.1369.0> (127.0.0.1:50630 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:21:44 === +connection <0.1369.0> (127.0.0.1:50630 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:26:47 === +closing AMQP connection <0.1369.0> (127.0.0.1:50630 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:26:53 === +accepting AMQP connection <0.1479.0> (127.0.0.1:51929 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:26:53 === +connection <0.1479.0> (127.0.0.1:51929 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:33:40 === +closing AMQP connection <0.1479.0> (127.0.0.1:51929 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:33:46 === +accepting AMQP connection <0.1619.0> (127.0.0.1:53738 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:33:46 === +connection <0.1619.0> (127.0.0.1:53738 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:40:04 === +closing AMQP connection <0.1619.0> (127.0.0.1:53738 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:40:10 === +accepting AMQP connection <0.1751.0> (127.0.0.1:54089 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:40:10 === +connection <0.1751.0> (127.0.0.1:54089 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:47:51 === +closing AMQP connection <0.1751.0> (127.0.0.1:54089 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:47:57 === +accepting AMQP connection <0.1909.0> (127.0.0.1:54515 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:47:57 === +connection <0.1909.0> (127.0.0.1:54515 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:49:44 === +closing AMQP connection <0.1909.0> (127.0.0.1:54515 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:49:49 === +accepting AMQP connection <0.1956.0> (127.0.0.1:54622 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:49:49 === +connection <0.1956.0> (127.0.0.1:54622 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:53:01 === +closing AMQP connection <0.1956.0> (127.0.0.1:54622 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:53:07 === +accepting AMQP connection <0.2031.0> (127.0.0.1:55050 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:53:07 === +connection <0.2031.0> (127.0.0.1:55050 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:55:09 === +closing AMQP connection <0.2031.0> (127.0.0.1:55050 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:55:15 === +accepting AMQP connection <0.2084.0> (127.0.0.1:55180 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:55:15 === +connection <0.2084.0> (127.0.0.1:55180 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:55:19 === +closing AMQP connection <0.2084.0> (127.0.0.1:55180 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:55:25 === +accepting AMQP connection <0.2100.0> (127.0.0.1:55197 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:55:25 === +connection <0.2100.0> (127.0.0.1:55197 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:55:52 === +closing AMQP connection <0.2100.0> (127.0.0.1:55197 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:55:58 === +accepting AMQP connection <0.2122.0> (127.0.0.1:55229 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:55:58 === +connection <0.2122.0> (127.0.0.1:55229 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:56:15 === +closing AMQP connection <0.2122.0> (127.0.0.1:55229 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:56:21 === +accepting AMQP connection <0.2144.0> (127.0.0.1:55264 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:56:21 === +connection <0.2144.0> (127.0.0.1:55264 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:57:15 === +closing AMQP connection <0.2144.0> (127.0.0.1:55264 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:57:21 === +accepting AMQP connection <0.2175.0> (127.0.0.1:55335 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:57:21 === +connection <0.2175.0> (127.0.0.1:55335 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::22:59:35 === +closing AMQP connection <0.2175.0> (127.0.0.1:55335 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::22:59:46 === +accepting AMQP connection <0.2233.0> (127.0.0.1:55492 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::22:59:46 === +connection <0.2233.0> (127.0.0.1:55492 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:03:15 === +closing AMQP connection <0.2233.0> (127.0.0.1:55492 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:03:21 === +accepting AMQP connection <0.2313.0> (127.0.0.1:55692 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:03:21 === +connection <0.2313.0> (127.0.0.1:55692 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:05:24 === +closing AMQP connection <0.2313.0> (127.0.0.1:55692 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:11:07 === +accepting AMQP connection <0.2470.0> (127.0.0.1:56043 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:11:07 === +connection <0.2470.0> (127.0.0.1:56043 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:13:01 === +closing AMQP connection <0.2470.0> (127.0.0.1:56043 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:13:07 === +accepting AMQP connection <0.2521.0> (127.0.0.1:56173 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:13:07 === +connection <0.2521.0> (127.0.0.1:56173 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:13:21 === +closing AMQP connection <0.2521.0> (127.0.0.1:56173 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:13:26 === +accepting AMQP connection <0.2540.0> (127.0.0.1:56207 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:13:26 === +connection <0.2540.0> (127.0.0.1:56207 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:13:47 === +closing AMQP connection <0.2540.0> (127.0.0.1:56207 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:13:53 === +accepting AMQP connection <0.2560.0> (127.0.0.1:56248 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:13:53 === +connection <0.2560.0> (127.0.0.1:56248 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:21:35 === +closing AMQP connection <0.2560.0> (127.0.0.1:56248 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:21:41 === +accepting AMQP connection <0.2719.0> (127.0.0.1:57241 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:21:41 === +connection <0.2719.0> (127.0.0.1:57241 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:21:54 === +closing AMQP connection <0.2719.0> (127.0.0.1:57241 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:22:00 === +accepting AMQP connection <0.2738.0> (127.0.0.1:57338 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:22:00 === +connection <0.2738.0> (127.0.0.1:57338 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:23:36 === +closing AMQP connection <0.2738.0> (127.0.0.1:57338 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:23:42 === +accepting AMQP connection <0.2783.0> (127.0.0.1:57527 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:23:42 === +connection <0.2783.0> (127.0.0.1:57527 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:25:22 === +closing AMQP connection <0.2783.0> (127.0.0.1:57527 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:25:28 === +accepting AMQP connection <0.2829.0> (127.0.0.1:58006 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:25:28 === +connection <0.2829.0> (127.0.0.1:58006 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:25:51 === +closing AMQP connection <0.2829.0> (127.0.0.1:58006 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:25:57 === +accepting AMQP connection <0.2850.0> (127.0.0.1:58154 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:25:57 === +connection <0.2850.0> (127.0.0.1:58154 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:28:02 === +closing AMQP connection <0.2850.0> (127.0.0.1:58154 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:28:08 === +accepting AMQP connection <0.2904.0> (127.0.0.1:58745 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:28:08 === +connection <0.2904.0> (127.0.0.1:58745 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:28:17 === +closing AMQP connection <0.2904.0> (127.0.0.1:58745 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:28:23 === +accepting AMQP connection <0.2922.0> (127.0.0.1:58822 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:28:23 === +connection <0.2922.0> (127.0.0.1:58822 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:30:12 === +closing AMQP connection <0.2922.0> (127.0.0.1:58822 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:30:17 === +accepting AMQP connection <0.2972.0> (127.0.0.1:59319 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:30:17 === +connection <0.2972.0> (127.0.0.1:59319 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 19-Jun-2017::23:32:43 === +closing AMQP connection <0.2972.0> (127.0.0.1:59319 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 19-Jun-2017::23:32:49 === +accepting AMQP connection <0.3031.0> (127.0.0.1:59899 -> 127.0.0.1:4000) + +=INFO REPORT==== 19-Jun-2017::23:32:49 === +connection <0.3031.0> (127.0.0.1:59899 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::00:59:12 === +closing AMQP connection <0.3031.0> (127.0.0.1:59899 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::00:59:18 === +accepting AMQP connection <0.3327.0> (127.0.0.1:63531 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::00:59:18 === +connection <0.3327.0> (127.0.0.1:63531 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:01:59 === +closing AMQP connection <0.3327.0> (127.0.0.1:63531 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:02:05 === +accepting AMQP connection <0.3391.0> (127.0.0.1:64280 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:02:05 === +connection <0.3391.0> (127.0.0.1:64280 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:03:38 === +closing AMQP connection <0.3391.0> (127.0.0.1:64280 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:03:43 === +accepting AMQP connection <0.3435.0> (127.0.0.1:64731 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:03:43 === +connection <0.3435.0> (127.0.0.1:64731 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:06:46 === +closing AMQP connection <0.3435.0> (127.0.0.1:64731 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:06:52 === +accepting AMQP connection <0.3506.0> (127.0.0.1:49181 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:06:52 === +connection <0.3506.0> (127.0.0.1:49181 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:10:12 === +closing AMQP connection <0.3506.0> (127.0.0.1:49181 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:10:17 === +accepting AMQP connection <0.3583.0> (127.0.0.1:50088 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:10:17 === +connection <0.3583.0> (127.0.0.1:50088 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:10:26 === +closing AMQP connection <0.3583.0> (127.0.0.1:50088 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:10:32 === +accepting AMQP connection <0.3600.0> (127.0.0.1:50160 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:10:32 === +connection <0.3600.0> (127.0.0.1:50160 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:10:45 === +closing AMQP connection <0.3600.0> (127.0.0.1:50160 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:10:51 === +accepting AMQP connection <0.3619.0> (127.0.0.1:50258 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:10:51 === +connection <0.3619.0> (127.0.0.1:50258 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:17:32 === +closing AMQP connection <0.3619.0> (127.0.0.1:50258 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:17:38 === +accepting AMQP connection <0.3759.0> (127.0.0.1:51594 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:17:38 === +connection <0.3759.0> (127.0.0.1:51594 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:19:23 === +closing AMQP connection <0.3759.0> (127.0.0.1:51594 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:19:32 === +accepting AMQP connection <0.3807.0> (127.0.0.1:52122 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:19:32 === +connection <0.3807.0> (127.0.0.1:52122 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:24:02 === +closing AMQP connection <0.3807.0> (127.0.0.1:52122 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:24:08 === +accepting AMQP connection <0.3904.0> (127.0.0.1:53334 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:24:08 === +connection <0.3904.0> (127.0.0.1:53334 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:30:03 === +closing AMQP connection <0.3904.0> (127.0.0.1:53334 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:30:09 === +accepting AMQP connection <0.4031.0> (127.0.0.1:54915 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:30:09 === +connection <0.4031.0> (127.0.0.1:54915 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:37:43 === +closing AMQP connection <0.4031.0> (127.0.0.1:54915 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:37:49 === +accepting AMQP connection <0.4186.0> (127.0.0.1:56016 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:37:49 === +connection <0.4186.0> (127.0.0.1:56016 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:38:33 === +closing AMQP connection <0.4186.0> (127.0.0.1:56016 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:38:39 === +accepting AMQP connection <0.4214.0> (127.0.0.1:56248 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:38:39 === +connection <0.4214.0> (127.0.0.1:56248 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:41:46 === +closing AMQP connection <0.4214.0> (127.0.0.1:56248 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:41:51 === +accepting AMQP connection <0.4288.0> (127.0.0.1:56880 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:41:51 === +connection <0.4288.0> (127.0.0.1:56880 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:43:20 === +closing AMQP connection <0.4288.0> (127.0.0.1:56880 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:43:25 === +accepting AMQP connection <0.4330.0> (127.0.0.1:57313 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:43:25 === +connection <0.4330.0> (127.0.0.1:57313 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:52:56 === +closing AMQP connection <0.4330.0> (127.0.0.1:57313 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:53:02 === +accepting AMQP connection <0.4521.0> (127.0.0.1:59596 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:53:02 === +connection <0.4521.0> (127.0.0.1:59596 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::01:56:41 === +closing AMQP connection <0.4521.0> (127.0.0.1:59596 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::01:56:46 === +accepting AMQP connection <0.4604.0> (127.0.0.1:60392 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::01:56:46 === +connection <0.4604.0> (127.0.0.1:60392 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:09:15 === +closing AMQP connection <0.4604.0> (127.0.0.1:60392 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:09:20 === +accepting AMQP connection <0.4851.0> (127.0.0.1:62556 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:09:20 === +connection <0.4851.0> (127.0.0.1:62556 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:13:12 === +closing AMQP connection <0.4851.0> (127.0.0.1:62556 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:13:18 === +accepting AMQP connection <0.4939.0> (127.0.0.1:62783 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:13:18 === +connection <0.4939.0> (127.0.0.1:62783 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:15:44 === +closing AMQP connection <0.4939.0> (127.0.0.1:62783 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:15:50 === +accepting AMQP connection <0.4999.0> (127.0.0.1:63433 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:15:50 === +connection <0.4999.0> (127.0.0.1:63433 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:17:26 === +closing AMQP connection <0.4999.0> (127.0.0.1:63433 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:21:08 === +accepting AMQP connection <0.5110.0> (127.0.0.1:64756 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:21:08 === +connection <0.5110.0> (127.0.0.1:64756 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:22:20 === +closing AMQP connection <0.5110.0> (127.0.0.1:64756 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:22:26 === +accepting AMQP connection <0.5147.0> (127.0.0.1:65123 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:22:26 === +connection <0.5147.0> (127.0.0.1:65123 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:27:51 === +closing AMQP connection <0.5147.0> (127.0.0.1:65123 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:28:28 === +accepting AMQP connection <0.5272.0> (127.0.0.1:50336 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:28:28 === +connection <0.5272.0> (127.0.0.1:50336 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:31:41 === +closing AMQP connection <0.5272.0> (127.0.0.1:50336 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:31:47 === +accepting AMQP connection <0.5346.0> (127.0.0.1:51157 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:31:47 === +connection <0.5346.0> (127.0.0.1:51157 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:31:48 === +closing AMQP connection <0.5346.0> (127.0.0.1:51157 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:31:54 === +accepting AMQP connection <0.5362.0> (127.0.0.1:51199 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:31:54 === +connection <0.5362.0> (127.0.0.1:51199 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:32:57 === +closing AMQP connection <0.5362.0> (127.0.0.1:51199 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::02:33:03 === +accepting AMQP connection <0.5395.0> (127.0.0.1:51508 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::02:33:03 === +connection <0.5395.0> (127.0.0.1:51508 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::02:33:16 === +closing AMQP connection <0.5395.0> (127.0.0.1:51508 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::23:50:59 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 20-Jun-2017::23:50:59 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 20-Jun-2017::23:51:07 === +Memory limit set to 6196MB of 15491MB total. + +=INFO REPORT==== 20-Jun-2017::23:51:07 === +Disk free limit set to 50MB + +=INFO REPORT==== 20-Jun-2017::23:51:07 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 20-Jun-2017::23:51:07 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 20-Jun-2017::23:51:07 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Starting rabbit_node_monitor + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 20-Jun-2017::23:51:08 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Statistics database started. + +=INFO REPORT==== 20-Jun-2017::23:51:08 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 20-Jun-2017::23:52:04 === +accepting AMQP connection <0.463.0> (127.0.0.1:64127 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::23:52:04 === +connection <0.463.0> (127.0.0.1:64127 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 20-Jun-2017::23:54:31 === +closing AMQP connection <0.463.0> (127.0.0.1:64127 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 20-Jun-2017::23:54:38 === +accepting AMQP connection <0.531.0> (127.0.0.1:64526 -> 127.0.0.1:4000) + +=INFO REPORT==== 20-Jun-2017::23:54:38 === +connection <0.531.0> (127.0.0.1:64526 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:11:41 === +closing AMQP connection <0.531.0> (127.0.0.1:64526 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:11:47 === +accepting AMQP connection <0.862.0> (127.0.0.1:50315 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:11:47 === +connection <0.862.0> (127.0.0.1:50315 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:12:07 === +closing AMQP connection <0.862.0> (127.0.0.1:50315 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:12:13 === +accepting AMQP connection <0.884.0> (127.0.0.1:50383 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:12:13 === +connection <0.884.0> (127.0.0.1:50383 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:12:42 === +closing AMQP connection <0.884.0> (127.0.0.1:50383 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:12:48 === +accepting AMQP connection <0.907.0> (127.0.0.1:50475 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:12:48 === +connection <0.907.0> (127.0.0.1:50475 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:12:49 === +closing AMQP connection <0.907.0> (127.0.0.1:50475 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:12:55 === +accepting AMQP connection <0.923.0> (127.0.0.1:50492 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:12:55 === +connection <0.923.0> (127.0.0.1:50492 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:13:26 === +closing AMQP connection <0.923.0> (127.0.0.1:50492 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:13:32 === +accepting AMQP connection <0.947.0> (127.0.0.1:50587 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:13:32 === +connection <0.947.0> (127.0.0.1:50587 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:14:49 === +closing AMQP connection <0.947.0> (127.0.0.1:50587 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:14:55 === +accepting AMQP connection <0.985.0> (127.0.0.1:50804 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:14:55 === +connection <0.985.0> (127.0.0.1:50804 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:16:05 === +closing AMQP connection <0.985.0> (127.0.0.1:50804 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:16:12 === +accepting AMQP connection <0.1022.0> (127.0.0.1:50969 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:16:12 === +connection <0.1022.0> (127.0.0.1:50969 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:16:56 === +closing AMQP connection <0.1022.0> (127.0.0.1:50969 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:17:02 === +accepting AMQP connection <0.1051.0> (127.0.0.1:51086 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:17:02 === +connection <0.1051.0> (127.0.0.1:51086 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:17:40 === +closing AMQP connection <0.1051.0> (127.0.0.1:51086 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:17:50 === +accepting AMQP connection <0.1078.0> (127.0.0.1:51180 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:17:50 === +connection <0.1078.0> (127.0.0.1:51180 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:18:31 === +closing AMQP connection <0.1078.0> (127.0.0.1:51180 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:18:37 === +accepting AMQP connection <0.1107.0> (127.0.0.1:51285 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:18:37 === +connection <0.1107.0> (127.0.0.1:51285 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:19:24 === +closing AMQP connection <0.1107.0> (127.0.0.1:51285 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:24:38 === +accepting AMQP connection <0.1232.0> (127.0.0.1:51989 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:24:38 === +connection <0.1232.0> (127.0.0.1:51989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:24:52 === +closing AMQP connection <0.1232.0> (127.0.0.1:51989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:27:34 === +accepting AMQP connection <0.1299.0> (127.0.0.1:52311 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:27:34 === +connection <0.1299.0> (127.0.0.1:52311 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:27:50 === +closing AMQP connection <0.1299.0> (127.0.0.1:52311 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:27:55 === +accepting AMQP connection <0.1319.0> (127.0.0.1:52366 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:27:55 === +connection <0.1319.0> (127.0.0.1:52366 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:30:48 === +closing AMQP connection <0.1319.0> (127.0.0.1:52366 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:30:53 === +accepting AMQP connection <0.1386.0> (127.0.0.1:52733 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:30:53 === +connection <0.1386.0> (127.0.0.1:52733 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::00:40:36 === +closing AMQP connection <0.1386.0> (127.0.0.1:52733 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::00:40:42 === +accepting AMQP connection <0.1582.0> (127.0.0.1:55311 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::00:40:42 === +connection <0.1582.0> (127.0.0.1:55311 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::01:06:45 === +closing AMQP connection <0.1582.0> (127.0.0.1:55311 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::01:06:50 === +accepting AMQP connection <0.1987.0> (127.0.0.1:61011 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::01:06:50 === +connection <0.1987.0> (127.0.0.1:61011 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::01:08:19 === +closing AMQP connection <0.1987.0> (127.0.0.1:61011 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::01:08:25 === +accepting AMQP connection <0.2028.0> (127.0.0.1:61467 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::01:08:25 === +connection <0.2028.0> (127.0.0.1:61467 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::01:11:54 === +closing AMQP connection <0.2028.0> (127.0.0.1:61467 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 21-Jun-2017::01:12:00 === +accepting AMQP connection <0.2109.0> (127.0.0.1:62399 -> 127.0.0.1:4000) + +=INFO REPORT==== 21-Jun-2017::01:12:00 === +connection <0.2109.0> (127.0.0.1:62399 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 21-Jun-2017::01:13:59 === +closing AMQP connection <0.2109.0> (127.0.0.1:62399 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:41:11 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 24-Jun-2017::02:41:11 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Memory limit set to 6041MB of 15103MB total. + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Disk free limit set to 50MB + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Starting rabbit_node_monitor + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 24-Jun-2017::02:41:16 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Statistics database started. + +=INFO REPORT==== 24-Jun-2017::02:41:16 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 24-Jun-2017::02:43:37 === +accepting AMQP connection <0.490.0> (127.0.0.1:56515 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:43:37 === +connection <0.490.0> (127.0.0.1:56515 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:44:16 === +closing AMQP connection <0.490.0> (127.0.0.1:56515 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:44:22 === +accepting AMQP connection <0.524.0> (127.0.0.1:56566 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:44:22 === +connection <0.524.0> (127.0.0.1:56566 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:47:10 === +closing AMQP connection <0.524.0> (127.0.0.1:56566 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:47:16 === +accepting AMQP connection <0.592.0> (127.0.0.1:56835 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:47:16 === +connection <0.592.0> (127.0.0.1:56835 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:48:41 === +closing AMQP connection <0.592.0> (127.0.0.1:56835 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:48:47 === +accepting AMQP connection <0.631.0> (127.0.0.1:57230 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:48:47 === +connection <0.631.0> (127.0.0.1:57230 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:50:21 === +closing AMQP connection <0.631.0> (127.0.0.1:57230 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:50:27 === +accepting AMQP connection <0.676.0> (127.0.0.1:57694 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:50:27 === +connection <0.676.0> (127.0.0.1:57694 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:53:20 === +closing AMQP connection <0.676.0> (127.0.0.1:57694 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:53:26 === +accepting AMQP connection <0.745.0> (127.0.0.1:58516 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:53:26 === +connection <0.745.0> (127.0.0.1:58516 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:54:17 === +closing AMQP connection <0.745.0> (127.0.0.1:58516 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:54:22 === +accepting AMQP connection <0.775.0> (127.0.0.1:58774 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:54:22 === +connection <0.775.0> (127.0.0.1:58774 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::02:58:06 === +closing AMQP connection <0.775.0> (127.0.0.1:58774 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::02:58:12 === +accepting AMQP connection <0.859.0> (127.0.0.1:59459 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::02:58:12 === +connection <0.859.0> (127.0.0.1:59459 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:01:18 === +closing AMQP connection <0.859.0> (127.0.0.1:59459 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:01:24 === +accepting AMQP connection <0.932.0> (127.0.0.1:60204 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:01:24 === +connection <0.932.0> (127.0.0.1:60204 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:21:26 === +closing AMQP connection <0.932.0> (127.0.0.1:60204 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:22:04 === +accepting AMQP connection <0.1328.0> (127.0.0.1:61832 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:22:04 === +connection <0.1328.0> (127.0.0.1:61832 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:27:21 === +closing AMQP connection <0.1328.0> (127.0.0.1:61832 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:27:27 === +accepting AMQP connection <0.1442.0> (127.0.0.1:63321 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:27:27 === +connection <0.1442.0> (127.0.0.1:63321 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:32:15 === +closing AMQP connection <0.1442.0> (127.0.0.1:63321 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:32:21 === +accepting AMQP connection <0.1545.0> (127.0.0.1:64433 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:32:21 === +connection <0.1545.0> (127.0.0.1:64433 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:36:06 === +closing AMQP connection <0.1545.0> (127.0.0.1:64433 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:42:25 === +accepting AMQP connection <0.1745.0> (127.0.0.1:50202 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:42:25 === +connection <0.1745.0> (127.0.0.1:50202 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:43:42 === +closing AMQP connection <0.1745.0> (127.0.0.1:50202 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:50:05 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 24-Jun-2017::03:50:05 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 24-Jun-2017::03:50:13 === +Memory limit set to 6016MB of 15040MB total. + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Disk free limit set to 50MB + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Starting rabbit_node_monitor + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 24-Jun-2017::03:50:14 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Statistics database started. + +=INFO REPORT==== 24-Jun-2017::03:50:14 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 24-Jun-2017::03:50:55 === +accepting AMQP connection <0.460.0> (127.0.0.1:51227 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:50:55 === +connection <0.460.0> (127.0.0.1:51227 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:53:00 === +closing AMQP connection <0.460.0> (127.0.0.1:51227 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:53:09 === +accepting AMQP connection <0.522.0> (127.0.0.1:51309 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:53:09 === +connection <0.522.0> (127.0.0.1:51309 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::03:57:58 === +closing AMQP connection <0.522.0> (127.0.0.1:51309 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::03:58:04 === +accepting AMQP connection <0.624.0> (127.0.0.1:52483 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::03:58:04 === +connection <0.624.0> (127.0.0.1:52483 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:01:06 === +closing AMQP connection <0.624.0> (127.0.0.1:52483 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:01:12 === +accepting AMQP connection <0.696.0> (127.0.0.1:52765 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:01:12 === +connection <0.696.0> (127.0.0.1:52765 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:01:31 === +closing AMQP connection <0.696.0> (127.0.0.1:52765 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:01:37 === +accepting AMQP connection <0.717.0> (127.0.0.1:52787 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:01:37 === +connection <0.717.0> (127.0.0.1:52787 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:03:45 === +closing AMQP connection <0.717.0> (127.0.0.1:52787 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:03:51 === +accepting AMQP connection <0.771.0> (127.0.0.1:53234 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:03:51 === +connection <0.771.0> (127.0.0.1:53234 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:03:52 === +closing AMQP connection <0.771.0> (127.0.0.1:53234 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:03:58 === +accepting AMQP connection <0.787.0> (127.0.0.1:53279 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:03:58 === +connection <0.787.0> (127.0.0.1:53279 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:13:47 === +closing AMQP connection <0.787.0> (127.0.0.1:53279 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:13:53 === +accepting AMQP connection <0.983.0> (127.0.0.1:54877 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:13:53 === +connection <0.983.0> (127.0.0.1:54877 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:14:35 === +closing AMQP connection <0.983.0> (127.0.0.1:54877 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:14:46 === +accepting AMQP connection <0.1014.0> (127.0.0.1:54913 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:14:46 === +connection <0.1014.0> (127.0.0.1:54913 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:15:41 === +closing AMQP connection <0.1014.0> (127.0.0.1:54913 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:15:47 === +accepting AMQP connection <0.1044.0> (127.0.0.1:54945 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:15:47 === +connection <0.1044.0> (127.0.0.1:54945 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:16:19 === +closing AMQP connection <0.1044.0> (127.0.0.1:54945 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:16:25 === +accepting AMQP connection <0.1070.0> (127.0.0.1:54989 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:16:25 === +connection <0.1070.0> (127.0.0.1:54989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:16:37 === +closing AMQP connection <0.1070.0> (127.0.0.1:54989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:16:43 === +accepting AMQP connection <0.1088.0> (127.0.0.1:55006 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:16:43 === +connection <0.1088.0> (127.0.0.1:55006 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:17:03 === +closing AMQP connection <0.1088.0> (127.0.0.1:55006 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:17:09 === +accepting AMQP connection <0.1111.0> (127.0.0.1:55023 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:17:09 === +connection <0.1111.0> (127.0.0.1:55023 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:17:16 === +closing AMQP connection <0.1111.0> (127.0.0.1:55023 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:17:22 === +accepting AMQP connection <0.1127.0> (127.0.0.1:55037 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:17:22 === +connection <0.1127.0> (127.0.0.1:55037 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:18:04 === +closing AMQP connection <0.1127.0> (127.0.0.1:55037 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:18:10 === +accepting AMQP connection <0.1155.0> (127.0.0.1:55079 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:18:10 === +connection <0.1155.0> (127.0.0.1:55079 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:18:10 === +closing AMQP connection <0.1155.0> (127.0.0.1:55079 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::04:18:16 === +accepting AMQP connection <0.1164.0> (127.0.0.1:55089 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::04:18:16 === +connection <0.1164.0> (127.0.0.1:55089 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::04:21:07 === +closing AMQP connection <0.1164.0> (127.0.0.1:55089 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:14:24 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 24-Jun-2017::13:14:24 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Memory limit set to 5704MB of 14260MB total. + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Disk free limit set to 50MB + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Starting rabbit_node_monitor + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 24-Jun-2017::13:14:29 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Statistics database started. + +=INFO REPORT==== 24-Jun-2017::13:14:29 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 24-Jun-2017::13:15:14 === +accepting AMQP connection <0.460.0> (127.0.0.1:58053 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:15:14 === +connection <0.460.0> (127.0.0.1:58053 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:17:23 === +closing AMQP connection <0.460.0> (127.0.0.1:58053 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:17:32 === +accepting AMQP connection <0.524.0> (127.0.0.1:58144 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:17:33 === +connection <0.524.0> (127.0.0.1:58144 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:20:12 === +closing AMQP connection <0.524.0> (127.0.0.1:58144 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:20:18 === +accepting AMQP connection <0.587.0> (127.0.0.1:58289 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:20:18 === +connection <0.587.0> (127.0.0.1:58289 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:28:42 === +closing AMQP connection <0.587.0> (127.0.0.1:58289 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:28:48 === +accepting AMQP connection <0.758.0> (127.0.0.1:58953 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:28:48 === +connection <0.758.0> (127.0.0.1:58953 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:30:47 === +closing AMQP connection <0.758.0> (127.0.0.1:58953 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:30:52 === +accepting AMQP connection <0.811.0> (127.0.0.1:59064 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:30:52 === +connection <0.811.0> (127.0.0.1:59064 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:32:04 === +closing AMQP connection <0.811.0> (127.0.0.1:59064 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:35:21 === +accepting AMQP connection <0.905.0> (127.0.0.1:59182 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:35:21 === +connection <0.905.0> (127.0.0.1:59182 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:36:19 === +closing AMQP connection <0.905.0> (127.0.0.1:59182 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:36:24 === +accepting AMQP connection <0.940.0> (127.0.0.1:59484 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:36:24 === +connection <0.940.0> (127.0.0.1:59484 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:37:50 === +closing AMQP connection <0.940.0> (127.0.0.1:59484 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:37:56 === +accepting AMQP connection <0.980.0> (127.0.0.1:59591 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:37:56 === +connection <0.980.0> (127.0.0.1:59591 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:41:40 === +closing AMQP connection <0.980.0> (127.0.0.1:59591 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:41:46 === +accepting AMQP connection <0.1065.0> (127.0.0.1:59770 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:41:46 === +connection <0.1065.0> (127.0.0.1:59770 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:42:26 === +closing AMQP connection <0.1065.0> (127.0.0.1:59770 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:42:32 === +accepting AMQP connection <0.1092.0> (127.0.0.1:59795 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:42:32 === +connection <0.1092.0> (127.0.0.1:59795 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:43:00 === +closing AMQP connection <0.1092.0> (127.0.0.1:59795 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:43:06 === +accepting AMQP connection <0.1116.0> (127.0.0.1:59821 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:43:06 === +connection <0.1116.0> (127.0.0.1:59821 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:44:11 === +closing AMQP connection <0.1116.0> (127.0.0.1:59821 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:44:17 === +accepting AMQP connection <0.1149.0> (127.0.0.1:59877 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:44:17 === +connection <0.1149.0> (127.0.0.1:59877 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:46:25 === +closing AMQP connection <0.1149.0> (127.0.0.1:59877 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:46:31 === +accepting AMQP connection <0.1205.0> (127.0.0.1:59942 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:46:31 === +connection <0.1205.0> (127.0.0.1:59942 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:46:34 === +closing AMQP connection <0.1205.0> (127.0.0.1:59942 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:46:40 === +accepting AMQP connection <0.1220.0> (127.0.0.1:59967 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:46:40 === +connection <0.1220.0> (127.0.0.1:59967 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::13:51:42 === +closing AMQP connection <0.1220.0> (127.0.0.1:59967 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::13:51:48 === +accepting AMQP connection <0.1329.0> (127.0.0.1:60109 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::13:51:48 === +connection <0.1329.0> (127.0.0.1:60109 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:42:18 === +closing AMQP connection <0.1329.0> (127.0.0.1:60109 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:42:25 === +accepting AMQP connection <0.2284.0> (127.0.0.1:61340 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:42:25 === +connection <0.2284.0> (127.0.0.1:61340 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:46:22 === +closing AMQP connection <0.2284.0> (127.0.0.1:61340 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:46:28 === +accepting AMQP connection <0.2371.0> (127.0.0.1:61418 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:46:28 === +connection <0.2371.0> (127.0.0.1:61418 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:47:03 === +closing AMQP connection <0.2371.0> (127.0.0.1:61418 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:47:09 === +accepting AMQP connection <0.2396.0> (127.0.0.1:61438 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:47:09 === +connection <0.2396.0> (127.0.0.1:61438 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:47:16 === +closing AMQP connection <0.2396.0> (127.0.0.1:61438 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:47:22 === +accepting AMQP connection <0.2413.0> (127.0.0.1:61449 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:47:22 === +connection <0.2413.0> (127.0.0.1:61449 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:47:40 === +closing AMQP connection <0.2413.0> (127.0.0.1:61449 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:47:46 === +accepting AMQP connection <0.2435.0> (127.0.0.1:61483 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:47:46 === +connection <0.2435.0> (127.0.0.1:61483 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:48:07 === +closing AMQP connection <0.2435.0> (127.0.0.1:61483 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:48:12 === +accepting AMQP connection <0.2455.0> (127.0.0.1:61499 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:48:12 === +connection <0.2455.0> (127.0.0.1:61499 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:48:22 === +closing AMQP connection <0.2455.0> (127.0.0.1:61499 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:48:28 === +accepting AMQP connection <0.2474.0> (127.0.0.1:61511 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:48:28 === +connection <0.2474.0> (127.0.0.1:61511 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:49:01 === +closing AMQP connection <0.2474.0> (127.0.0.1:61511 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:49:07 === +accepting AMQP connection <0.2499.0> (127.0.0.1:61532 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:49:07 === +connection <0.2499.0> (127.0.0.1:61532 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:49:19 === +closing AMQP connection <0.2499.0> (127.0.0.1:61532 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:49:25 === +accepting AMQP connection <0.2517.0> (127.0.0.1:61543 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:49:25 === +connection <0.2517.0> (127.0.0.1:61543 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:49:41 === +closing AMQP connection <0.2517.0> (127.0.0.1:61543 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:49:47 === +accepting AMQP connection <0.2536.0> (127.0.0.1:61558 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:49:47 === +connection <0.2536.0> (127.0.0.1:61558 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:49:57 === +closing AMQP connection <0.2536.0> (127.0.0.1:61558 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:50:02 === +accepting AMQP connection <0.2553.0> (127.0.0.1:61569 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:50:02 === +connection <0.2553.0> (127.0.0.1:61569 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:51:12 === +closing AMQP connection <0.2553.0> (127.0.0.1:61569 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:51:18 === +accepting AMQP connection <0.2591.0> (127.0.0.1:61599 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:51:18 === +connection <0.2591.0> (127.0.0.1:61599 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:51:20 === +closing AMQP connection <0.2591.0> (127.0.0.1:61599 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:51:26 === +accepting AMQP connection <0.2607.0> (127.0.0.1:61618 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:51:26 === +connection <0.2607.0> (127.0.0.1:61618 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:51:36 === +closing AMQP connection <0.2607.0> (127.0.0.1:61618 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:51:42 === +accepting AMQP connection <0.2624.0> (127.0.0.1:61630 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:51:42 === +connection <0.2624.0> (127.0.0.1:61630 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:53:24 === +closing AMQP connection <0.2624.0> (127.0.0.1:61630 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:53:30 === +accepting AMQP connection <0.2671.0> (127.0.0.1:61715 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:53:30 === +connection <0.2671.0> (127.0.0.1:61715 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:55:21 === +closing AMQP connection <0.2671.0> (127.0.0.1:61715 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:55:26 === +accepting AMQP connection <0.2720.0> (127.0.0.1:61795 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:55:26 === +connection <0.2720.0> (127.0.0.1:61795 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:55:34 === +closing AMQP connection <0.2720.0> (127.0.0.1:61795 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:55:40 === +accepting AMQP connection <0.2736.0> (127.0.0.1:61809 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:55:40 === +connection <0.2736.0> (127.0.0.1:61809 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:56:05 === +closing AMQP connection <0.2736.0> (127.0.0.1:61809 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:56:10 === +accepting AMQP connection <0.2758.0> (127.0.0.1:61825 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:56:10 === +connection <0.2758.0> (127.0.0.1:61825 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:57:18 === +closing AMQP connection <0.2758.0> (127.0.0.1:61825 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:57:24 === +accepting AMQP connection <0.2795.0> (127.0.0.1:61867 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:57:24 === +connection <0.2795.0> (127.0.0.1:61867 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:59:34 === +closing AMQP connection <0.2795.0> (127.0.0.1:61867 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:59:40 === +accepting AMQP connection <0.2850.0> (127.0.0.1:61957 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:59:40 === +connection <0.2850.0> (127.0.0.1:61957 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::14:59:44 === +closing AMQP connection <0.2850.0> (127.0.0.1:61957 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::14:59:50 === +accepting AMQP connection <0.2866.0> (127.0.0.1:61968 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::14:59:50 === +connection <0.2866.0> (127.0.0.1:61968 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:00:21 === +closing AMQP connection <0.2866.0> (127.0.0.1:61968 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:00:26 === +accepting AMQP connection <0.2892.0> (127.0.0.1:61989 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:00:26 === +connection <0.2892.0> (127.0.0.1:61989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:00:29 === +closing AMQP connection <0.2892.0> (127.0.0.1:61989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:00:34 === +accepting AMQP connection <0.2906.0> (127.0.0.1:62000 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:00:34 === +connection <0.2906.0> (127.0.0.1:62000 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:00:53 === +closing AMQP connection <0.2906.0> (127.0.0.1:62000 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:00:58 === +accepting AMQP connection <0.2927.0> (127.0.0.1:62015 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:00:58 === +connection <0.2927.0> (127.0.0.1:62015 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:01:14 === +closing AMQP connection <0.2927.0> (127.0.0.1:62015 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:01:20 === +accepting AMQP connection <0.2946.0> (127.0.0.1:62031 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:01:20 === +connection <0.2946.0> (127.0.0.1:62031 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:01:23 === +closing AMQP connection <0.2946.0> (127.0.0.1:62031 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:01:29 === +accepting AMQP connection <0.2962.0> (127.0.0.1:62042 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:01:29 === +connection <0.2962.0> (127.0.0.1:62042 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:01:35 === +closing AMQP connection <0.2962.0> (127.0.0.1:62042 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:01:41 === +accepting AMQP connection <0.2978.0> (127.0.0.1:62054 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:01:41 === +connection <0.2978.0> (127.0.0.1:62054 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:01:44 === +closing AMQP connection <0.2978.0> (127.0.0.1:62054 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:01:50 === +accepting AMQP connection <0.2994.0> (127.0.0.1:62066 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:01:50 === +connection <0.2994.0> (127.0.0.1:62066 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:02:38 === +closing AMQP connection <0.2994.0> (127.0.0.1:62066 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:02:44 === +accepting AMQP connection <0.3024.0> (127.0.0.1:62088 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:02:44 === +connection <0.3024.0> (127.0.0.1:62088 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:02:53 === +closing AMQP connection <0.3024.0> (127.0.0.1:62088 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:02:59 === +accepting AMQP connection <0.3042.0> (127.0.0.1:62101 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:02:59 === +connection <0.3042.0> (127.0.0.1:62101 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:04:15 === +closing AMQP connection <0.3042.0> (127.0.0.1:62101 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:04:21 === +accepting AMQP connection <0.3079.0> (127.0.0.1:62154 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:04:21 === +connection <0.3079.0> (127.0.0.1:62154 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:04:54 === +closing AMQP connection <0.3079.0> (127.0.0.1:62154 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:05:00 === +accepting AMQP connection <0.3105.0> (127.0.0.1:62176 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:05:00 === +connection <0.3105.0> (127.0.0.1:62176 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:05:15 === +closing AMQP connection <0.3105.0> (127.0.0.1:62176 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:05:21 === +accepting AMQP connection <0.3124.0> (127.0.0.1:62189 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:05:21 === +connection <0.3124.0> (127.0.0.1:62189 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:05:36 === +closing AMQP connection <0.3124.0> (127.0.0.1:62189 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:05:41 === +accepting AMQP connection <0.3144.0> (127.0.0.1:62201 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:05:41 === +connection <0.3144.0> (127.0.0.1:62201 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:05:46 === +closing AMQP connection <0.3144.0> (127.0.0.1:62201 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:05:52 === +accepting AMQP connection <0.3160.0> (127.0.0.1:62212 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:05:52 === +connection <0.3160.0> (127.0.0.1:62212 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:06:10 === +closing AMQP connection <0.3160.0> (127.0.0.1:62212 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 24-Jun-2017::15:06:16 === +accepting AMQP connection <0.3181.0> (127.0.0.1:62232 -> 127.0.0.1:4000) + +=INFO REPORT==== 24-Jun-2017::15:06:16 === +connection <0.3181.0> (127.0.0.1:62232 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 24-Jun-2017::15:07:57 === +closing AMQP connection <0.3181.0> (127.0.0.1:62232 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:08:20 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 28-Jun-2017::03:08:20 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/tmake/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : zcF8z+7yWC7iXJokYLAJPg== +log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/tmake/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/tmake/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Memory limit set to 6019MB of 15047MB total. + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Disk free limit set to 50MB + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Starting rabbit_node_monitor + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 28-Jun-2017::03:08:26 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Statistics database started. + +=INFO REPORT==== 28-Jun-2017::03:08:26 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 28-Jun-2017::03:11:34 === +accepting AMQP connection <0.510.0> (127.0.0.1:55262 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:11:34 === +connection <0.510.0> (127.0.0.1:55262 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:11:54 === +closing AMQP connection <0.510.0> (127.0.0.1:55262 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:12:03 === +accepting AMQP connection <0.534.0> (127.0.0.1:55307 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:12:03 === +connection <0.534.0> (127.0.0.1:55307 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:16:05 === +closing AMQP connection <0.534.0> (127.0.0.1:55307 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:16:11 === +accepting AMQP connection <0.623.0> (127.0.0.1:55524 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:16:11 === +connection <0.623.0> (127.0.0.1:55524 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:18:43 === +closing AMQP connection <0.623.0> (127.0.0.1:55524 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:18:49 === +accepting AMQP connection <0.686.0> (127.0.0.1:55680 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:18:49 === +connection <0.686.0> (127.0.0.1:55680 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:20:39 === +closing AMQP connection <0.686.0> (127.0.0.1:55680 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:20:45 === +accepting AMQP connection <0.735.0> (127.0.0.1:55786 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:20:45 === +connection <0.735.0> (127.0.0.1:55786 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:20:48 === +closing AMQP connection <0.735.0> (127.0.0.1:55786 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:20:53 === +accepting AMQP connection <0.751.0> (127.0.0.1:55800 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:20:53 === +connection <0.751.0> (127.0.0.1:55800 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:21:50 === +closing AMQP connection <0.751.0> (127.0.0.1:55800 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:21:56 === +accepting AMQP connection <0.782.0> (127.0.0.1:55860 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:21:56 === +connection <0.782.0> (127.0.0.1:55860 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:22:45 === +closing AMQP connection <0.782.0> (127.0.0.1:55860 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:22:51 === +accepting AMQP connection <0.813.0> (127.0.0.1:55916 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:22:51 === +connection <0.813.0> (127.0.0.1:55916 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:24:08 === +closing AMQP connection <0.813.0> (127.0.0.1:55916 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:24:13 === +accepting AMQP connection <0.851.0> (127.0.0.1:55990 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:24:13 === +connection <0.851.0> (127.0.0.1:55990 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:24:19 === +closing AMQP connection <0.851.0> (127.0.0.1:55990 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:24:25 === +accepting AMQP connection <0.868.0> (127.0.0.1:56008 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:24:25 === +connection <0.868.0> (127.0.0.1:56008 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:25:38 === +closing AMQP connection <0.868.0> (127.0.0.1:56008 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:25:44 === +accepting AMQP connection <0.905.0> (127.0.0.1:56087 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:25:44 === +connection <0.905.0> (127.0.0.1:56087 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:33:10 === +closing AMQP connection <0.905.0> (127.0.0.1:56087 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:33:16 === +accepting AMQP connection <0.1058.0> (127.0.0.1:56469 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:33:16 === +connection <0.1058.0> (127.0.0.1:56469 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:33:53 === +closing AMQP connection <0.1058.0> (127.0.0.1:56469 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:33:59 === +accepting AMQP connection <0.1083.0> (127.0.0.1:56513 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:33:59 === +connection <0.1083.0> (127.0.0.1:56513 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:34:42 === +closing AMQP connection <0.1083.0> (127.0.0.1:56513 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:34:48 === +accepting AMQP connection <0.1112.0> (127.0.0.1:56567 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:34:48 === +connection <0.1112.0> (127.0.0.1:56567 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:35:16 === +closing AMQP connection <0.1112.0> (127.0.0.1:56567 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:35:22 === +accepting AMQP connection <0.1137.0> (127.0.0.1:56604 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:35:22 === +connection <0.1137.0> (127.0.0.1:56604 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:36:15 === +closing AMQP connection <0.1137.0> (127.0.0.1:56604 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:36:21 === +accepting AMQP connection <0.1167.0> (127.0.0.1:56662 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:36:21 === +connection <0.1167.0> (127.0.0.1:56662 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:36:38 === +closing AMQP connection <0.1167.0> (127.0.0.1:56662 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:36:44 === +accepting AMQP connection <0.1188.0> (127.0.0.1:56689 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:36:44 === +connection <0.1188.0> (127.0.0.1:56689 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:37:02 === +closing AMQP connection <0.1188.0> (127.0.0.1:56689 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:37:08 === +accepting AMQP connection <0.1208.0> (127.0.0.1:56718 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:37:08 === +connection <0.1208.0> (127.0.0.1:56718 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:37:22 === +closing AMQP connection <0.1208.0> (127.0.0.1:56718 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:37:28 === +accepting AMQP connection <0.1226.0> (127.0.0.1:56744 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:37:28 === +connection <0.1226.0> (127.0.0.1:56744 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:37:31 === +closing AMQP connection <0.1226.0> (127.0.0.1:56744 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:37:37 === +accepting AMQP connection <0.1242.0> (127.0.0.1:56760 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:37:37 === +connection <0.1242.0> (127.0.0.1:56760 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:38:33 === +closing AMQP connection <0.1242.0> (127.0.0.1:56760 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:38:39 === +accepting AMQP connection <0.1275.0> (127.0.0.1:56819 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:38:39 === +connection <0.1275.0> (127.0.0.1:56819 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:39:21 === +closing AMQP connection <0.1275.0> (127.0.0.1:56819 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:39:28 === +accepting AMQP connection <0.1303.0> (127.0.0.1:56869 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:39:28 === +connection <0.1303.0> (127.0.0.1:56869 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:39:33 === +closing AMQP connection <0.1303.0> (127.0.0.1:56869 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:39:39 === +accepting AMQP connection <0.1319.0> (127.0.0.1:56887 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:39:39 === +connection <0.1319.0> (127.0.0.1:56887 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:39:58 === +closing AMQP connection <0.1319.0> (127.0.0.1:56887 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:40:05 === +accepting AMQP connection <0.1340.0> (127.0.0.1:56916 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:40:05 === +connection <0.1340.0> (127.0.0.1:56916 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:40:31 === +closing AMQP connection <0.1340.0> (127.0.0.1:56916 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:40:37 === +accepting AMQP connection <0.1363.0> (127.0.0.1:56953 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:40:37 === +connection <0.1363.0> (127.0.0.1:56953 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:41:18 === +closing AMQP connection <0.1363.0> (127.0.0.1:56953 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:41:24 === +accepting AMQP connection <0.1392.0> (127.0.0.1:57007 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:41:24 === +connection <0.1392.0> (127.0.0.1:57007 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:42:41 === +closing AMQP connection <0.1392.0> (127.0.0.1:57007 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:42:47 === +accepting AMQP connection <0.1430.0> (127.0.0.1:57105 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:42:47 === +connection <0.1430.0> (127.0.0.1:57105 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:43:01 === +closing AMQP connection <0.1430.0> (127.0.0.1:57105 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:43:07 === +accepting AMQP connection <0.1449.0> (127.0.0.1:57130 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:43:07 === +connection <0.1449.0> (127.0.0.1:57130 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:43:57 === +closing AMQP connection <0.1449.0> (127.0.0.1:57130 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:44:03 === +accepting AMQP connection <0.1478.0> (127.0.0.1:57195 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:44:03 === +connection <0.1478.0> (127.0.0.1:57195 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:44:32 === +closing AMQP connection <0.1478.0> (127.0.0.1:57195 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:44:38 === +accepting AMQP connection <0.1504.0> (127.0.0.1:57232 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:44:38 === +connection <0.1504.0> (127.0.0.1:57232 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:44:56 === +closing AMQP connection <0.1504.0> (127.0.0.1:57232 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:45:01 === +accepting AMQP connection <0.1523.0> (127.0.0.1:57262 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:45:01 === +connection <0.1523.0> (127.0.0.1:57262 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:45:25 === +closing AMQP connection <0.1523.0> (127.0.0.1:57262 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:45:31 === +accepting AMQP connection <0.1545.0> (127.0.0.1:57295 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:45:31 === +connection <0.1545.0> (127.0.0.1:57295 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:45:45 === +closing AMQP connection <0.1545.0> (127.0.0.1:57295 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:45:50 === +accepting AMQP connection <0.1564.0> (127.0.0.1:57320 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:45:50 === +connection <0.1564.0> (127.0.0.1:57320 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:46:02 === +closing AMQP connection <0.1564.0> (127.0.0.1:57320 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 28-Jun-2017::03:46:09 === +accepting AMQP connection <0.1582.0> (127.0.0.1:57341 -> 127.0.0.1:4000) + +=INFO REPORT==== 28-Jun-2017::03:46:09 === +connection <0.1582.0> (127.0.0.1:57341 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 28-Jun-2017::03:48:05 === +closing AMQP connection <0.1582.0> (127.0.0.1:57341 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 29-Jun-2017::13:52:29 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 29-Jun-2017::13:52:29 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Memory limit set to 5827MB of 14567MB total. + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Disk free limit set to 50MB + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Starting rabbit_node_monitor + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 29-Jun-2017::13:52:31 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Statistics database started. + +=INFO REPORT==== 29-Jun-2017::13:52:31 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 5-Jul-2017::14:50:06 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 5-Jul-2017::14:50:06 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Memory limit set to 6029MB of 15073MB total. + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Disk free limit set to 50MB + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Starting rabbit_node_monitor + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 5-Jul-2017::14:50:09 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Statistics database started. + +=INFO REPORT==== 5-Jul-2017::14:50:09 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 5-Jul-2017::15:07:52 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 5-Jul-2017::15:07:52 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 5-Jul-2017::15:07:55 === +Memory limit set to 6032MB of 15080MB total. + +=INFO REPORT==== 5-Jul-2017::15:07:55 === +Disk free limit set to 50MB + +=INFO REPORT==== 5-Jul-2017::15:07:55 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 5-Jul-2017::15:07:55 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Starting rabbit_node_monitor + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 5-Jul-2017::15:07:56 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Statistics database started. + +=INFO REPORT==== 5-Jul-2017::15:07:56 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 5-Jul-2017::15:12:02 === +accepting AMQP connection <0.529.0> (127.0.0.1:61426 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jul-2017::15:12:02 === +connection <0.529.0> (127.0.0.1:61426 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jul-2017::15:16:07 === +closing AMQP connection <0.529.0> (127.0.0.1:61426 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 5-Jul-2017::15:16:13 === +accepting AMQP connection <0.621.0> (127.0.0.1:61896 -> 127.0.0.1:4000) + +=INFO REPORT==== 5-Jul-2017::15:16:13 === +connection <0.621.0> (127.0.0.1:61896 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 5-Jul-2017::15:21:22 === +closing AMQP connection <0.621.0> (127.0.0.1:61896 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::15:58:13 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::15:58:13 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Memory limit set to 5716MB of 14292MB total. + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::15:58:16 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::15:58:16 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::15:58:49 === +accepting AMQP connection <0.457.0> (127.0.0.1:50427 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::15:58:49 === +connection <0.457.0> (127.0.0.1:50427 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:00:10 === +closing AMQP connection <0.457.0> (127.0.0.1:50427 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:04:21 === +accepting AMQP connection <0.576.0> (127.0.0.1:50452 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:04:21 === +connection <0.576.0> (127.0.0.1:50452 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:06:07 === +closing AMQP connection <0.576.0> (127.0.0.1:50452 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:18:15 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::16:18:15 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Memory limit set to 6084MB of 15212MB total. + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::16:18:18 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::16:18:18 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::16:19:05 === +accepting AMQP connection <0.461.0> (127.0.0.1:50523 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:19:05 === +connection <0.461.0> (127.0.0.1:50523 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:20:46 === +closing AMQP connection <0.461.0> (127.0.0.1:50523 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:20:52 === +accepting AMQP connection <0.503.0> (127.0.0.1:50566 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:20:52 === +connection <0.503.0> (127.0.0.1:50566 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:28:52 === +closing AMQP connection <0.503.0> (127.0.0.1:50566 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:30:47 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::16:30:47 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Memory limit set to 6055MB of 15138MB total. + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::16:30:49 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::16:30:49 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::16:31:35 === +accepting AMQP connection <0.460.0> (127.0.0.1:51571 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:31:35 === +connection <0.460.0> (127.0.0.1:51571 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:33:09 === +closing AMQP connection <0.460.0> (127.0.0.1:51571 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:33:15 === +accepting AMQP connection <0.500.0> (127.0.0.1:51855 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:33:15 === +connection <0.500.0> (127.0.0.1:51855 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:35:48 === +closing AMQP connection <0.500.0> (127.0.0.1:51855 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:36:14 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::16:36:14 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Memory limit set to 6078MB of 15195MB total. + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::16:36:16 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::16:36:16 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::16:37:06 === +accepting AMQP connection <0.461.0> (10.200.10.1:52325 -> 10.200.10.1:4000) + +=ERROR REPORT==== 6-Jul-2017::16:37:06 === +Error on AMQP connection <0.461.0> (10.200.10.1:52325 -> 10.200.10.1:4000, state: starting): +PLAIN login refused: user 'guest' can only connect via localhost + +=INFO REPORT==== 6-Jul-2017::16:37:09 === +closing AMQP connection <0.461.0> (10.200.10.1:52325 -> 10.200.10.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:38:43 === +accepting AMQP connection <0.496.0> (10.200.10.1:52718 -> 10.200.10.1:4000) + +=ERROR REPORT==== 6-Jul-2017::16:38:43 === +Error on AMQP connection <0.496.0> (10.200.10.1:52718 -> 10.200.10.1:4000, state: starting): +PLAIN login refused: user 'guest' can only connect via localhost + +=INFO REPORT==== 6-Jul-2017::16:38:46 === +closing AMQP connection <0.496.0> (10.200.10.1:52718 -> 10.200.10.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:39:01 === +accepting AMQP connection <0.505.0> (10.200.10.1:52813 -> 10.200.10.1:4000) + +=ERROR REPORT==== 6-Jul-2017::16:39:01 === +Error on AMQP connection <0.505.0> (10.200.10.1:52813 -> 10.200.10.1:4000, state: starting): +PLAIN login refused: user 'guest' can only connect via localhost + +=INFO REPORT==== 6-Jul-2017::16:39:04 === +closing AMQP connection <0.505.0> (10.200.10.1:52813 -> 10.200.10.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:40:51 === +accepting AMQP connection <0.549.0> (127.0.0.1:53202 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:40:51 === +connection <0.549.0> (127.0.0.1:53202 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:47:26 === +closing AMQP connection <0.549.0> (127.0.0.1:53202 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:47:32 === +accepting AMQP connection <0.680.0> (127.0.0.1:54640 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:47:32 === +connection <0.680.0> (127.0.0.1:54640 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:47:45 === +closing AMQP connection <0.680.0> (127.0.0.1:54640 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:48:04 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::16:48:04 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Memory limit set to 6087MB of 15217MB total. + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::16:48:06 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::16:48:06 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::16:48:54 === +accepting AMQP connection <0.461.0> (127.0.0.1:54978 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:48:54 === +connection <0.461.0> (127.0.0.1:54978 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:50:31 === +closing AMQP connection <0.461.0> (127.0.0.1:54978 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:50:37 === +accepting AMQP connection <0.502.0> (127.0.0.1:55338 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:50:37 === +connection <0.502.0> (127.0.0.1:55338 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:54:33 === +closing AMQP connection <0.502.0> (127.0.0.1:55338 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:54:39 === +accepting AMQP connection <0.591.0> (127.0.0.1:56239 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:54:39 === +connection <0.591.0> (127.0.0.1:56239 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::16:56:40 === +closing AMQP connection <0.591.0> (127.0.0.1:56239 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::16:56:46 === +accepting AMQP connection <0.636.0> (127.0.0.1:56702 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::16:56:46 === +connection <0.636.0> (127.0.0.1:56702 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::17:02:30 === +closing AMQP connection <0.636.0> (127.0.0.1:56702 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::17:03:10 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 6-Jul-2017::17:03:10 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Memory limit set to 6134MB of 15335MB total. + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Disk free limit set to 50MB + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Starting rabbit_node_monitor + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 6-Jul-2017::17:03:12 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 6-Jul-2017::17:03:12 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 6-Jul-2017::17:03:13 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 6-Jul-2017::17:03:13 === +Statistics database started. + +=INFO REPORT==== 6-Jul-2017::17:03:13 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 6-Jul-2017::17:04:00 === +accepting AMQP connection <0.461.0> (127.0.0.1:56801 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::17:04:00 === +connection <0.461.0> (127.0.0.1:56801 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::17:05:48 === +closing AMQP connection <0.461.0> (127.0.0.1:56801 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 6-Jul-2017::17:05:53 === +accepting AMQP connection <0.505.0> (127.0.0.1:56836 -> 127.0.0.1:4000) + +=INFO REPORT==== 6-Jul-2017::17:05:53 === +connection <0.505.0> (127.0.0.1:56836 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 6-Jul-2017::17:06:07 === +closing AMQP connection <0.505.0> (127.0.0.1:56836 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::14:51:49 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 8-Jul-2017::14:51:49 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Memory limit set to 5444MB of 13610MB total. + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Disk free limit set to 50MB + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Starting rabbit_node_monitor + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 8-Jul-2017::14:51:51 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Statistics database started. + +=INFO REPORT==== 8-Jul-2017::14:51:51 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 8-Jul-2017::14:52:45 === +accepting AMQP connection <0.463.0> (127.0.0.1:52794 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::14:52:46 === +connection <0.463.0> (127.0.0.1:52794 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::14:54:28 === +closing AMQP connection <0.463.0> (127.0.0.1:52794 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::14:54:33 === +accepting AMQP connection <0.505.0> (127.0.0.1:52984 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::14:54:33 === +connection <0.505.0> (127.0.0.1:52984 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:00:18 === +closing AMQP connection <0.505.0> (127.0.0.1:52984 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:00:24 === +accepting AMQP connection <0.627.0> (127.0.0.1:53233 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:00:24 === +connection <0.627.0> (127.0.0.1:53233 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:02:54 === +closing AMQP connection <0.627.0> (127.0.0.1:53233 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:03:00 === +accepting AMQP connection <0.682.0> (127.0.0.1:53603 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:03:00 === +connection <0.682.0> (127.0.0.1:53603 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:03:13 === +closing AMQP connection <0.682.0> (127.0.0.1:53603 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:03:19 === +accepting AMQP connection <0.695.0> (127.0.0.1:53691 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:03:19 === +connection <0.695.0> (127.0.0.1:53691 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:03:35 === +closing AMQP connection <0.695.0> (127.0.0.1:53691 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:03:41 === +accepting AMQP connection <0.708.0> (127.0.0.1:53785 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:03:41 === +connection <0.708.0> (127.0.0.1:53785 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:05:52 === +closing AMQP connection <0.708.0> (127.0.0.1:53785 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:06:59 === +accepting AMQP connection <0.778.0> (127.0.0.1:54456 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:06:59 === +connection <0.778.0> (127.0.0.1:54456 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:08:31 === +closing AMQP connection <0.778.0> (127.0.0.1:54456 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:08:37 === +accepting AMQP connection <0.815.0> (127.0.0.1:54889 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:08:37 === +connection <0.815.0> (127.0.0.1:54889 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:10:32 === +closing AMQP connection <0.815.0> (127.0.0.1:54889 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:10:43 === +accepting AMQP connection <0.861.0> (127.0.0.1:55507 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:10:43 === +connection <0.861.0> (127.0.0.1:55507 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:13:04 === +closing AMQP connection <0.861.0> (127.0.0.1:55507 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:13:12 === +accepting AMQP connection <0.915.0> (127.0.0.1:56114 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:13:12 === +connection <0.915.0> (127.0.0.1:56114 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:15:10 === +closing AMQP connection <0.915.0> (127.0.0.1:56114 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:15:16 === +accepting AMQP connection <0.960.0> (127.0.0.1:56648 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:15:16 === +connection <0.960.0> (127.0.0.1:56648 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:17:17 === +closing AMQP connection <0.960.0> (127.0.0.1:56648 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:17:22 === +accepting AMQP connection <0.1006.0> (127.0.0.1:57124 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:17:22 === +connection <0.1006.0> (127.0.0.1:57124 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:19:32 === +closing AMQP connection <0.1006.0> (127.0.0.1:57124 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:19:38 === +accepting AMQP connection <0.1056.0> (127.0.0.1:57529 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:19:38 === +connection <0.1056.0> (127.0.0.1:57529 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:19:53 === +closing AMQP connection <0.1056.0> (127.0.0.1:57529 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:19:58 === +accepting AMQP connection <0.1069.0> (127.0.0.1:57588 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:19:59 === +connection <0.1069.0> (127.0.0.1:57588 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:21:17 === +closing AMQP connection <0.1069.0> (127.0.0.1:57588 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:21:22 === +accepting AMQP connection <0.1101.0> (127.0.0.1:57781 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:21:22 === +connection <0.1101.0> (127.0.0.1:57781 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:22:05 === +closing AMQP connection <0.1101.0> (127.0.0.1:57781 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:22:11 === +accepting AMQP connection <0.1125.0> (127.0.0.1:57906 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:22:11 === +connection <0.1125.0> (127.0.0.1:57906 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:22:14 === +closing AMQP connection <0.1125.0> (127.0.0.1:57906 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:22:20 === +accepting AMQP connection <0.1134.0> (127.0.0.1:57934 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:22:20 === +connection <0.1134.0> (127.0.0.1:57934 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:22:34 === +closing AMQP connection <0.1134.0> (127.0.0.1:57934 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:22:40 === +accepting AMQP connection <0.1147.0> (127.0.0.1:57989 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:22:40 === +connection <0.1147.0> (127.0.0.1:57989 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:24:01 === +closing AMQP connection <0.1147.0> (127.0.0.1:57989 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:24:07 === +accepting AMQP connection <0.1181.0> (127.0.0.1:58202 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:24:07 === +connection <0.1181.0> (127.0.0.1:58202 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:24:31 === +closing AMQP connection <0.1181.0> (127.0.0.1:58202 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:24:36 === +accepting AMQP connection <0.1197.0> (127.0.0.1:58287 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:24:37 === +connection <0.1197.0> (127.0.0.1:58287 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:24:47 === +closing AMQP connection <0.1197.0> (127.0.0.1:58287 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:24:53 === +accepting AMQP connection <0.1210.0> (127.0.0.1:58330 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:24:53 === +connection <0.1210.0> (127.0.0.1:58330 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:26:02 === +closing AMQP connection <0.1210.0> (127.0.0.1:58330 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:26:08 === +accepting AMQP connection <0.1240.0> (127.0.0.1:58550 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:26:09 === +connection <0.1240.0> (127.0.0.1:58550 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:26:33 === +closing AMQP connection <0.1240.0> (127.0.0.1:58550 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:26:39 === +accepting AMQP connection <0.1256.0> (127.0.0.1:58638 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:26:39 === +connection <0.1256.0> (127.0.0.1:58638 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:28:56 === +closing AMQP connection <0.1256.0> (127.0.0.1:58638 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:29:03 === +accepting AMQP connection <0.1308.0> (127.0.0.1:59193 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:29:03 === +connection <0.1308.0> (127.0.0.1:59193 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:29:09 === +closing AMQP connection <0.1308.0> (127.0.0.1:59193 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:29:16 === +accepting AMQP connection <0.1318.0> (127.0.0.1:59246 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:29:16 === +connection <0.1318.0> (127.0.0.1:59246 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:30:38 === +closing AMQP connection <0.1318.0> (127.0.0.1:59246 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:30:43 === +accepting AMQP connection <0.1352.0> (127.0.0.1:59585 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:30:43 === +connection <0.1352.0> (127.0.0.1:59585 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:32:11 === +closing AMQP connection <0.1352.0> (127.0.0.1:59585 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:32:18 === +accepting AMQP connection <0.1390.0> (127.0.0.1:59904 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:32:18 === +connection <0.1390.0> (127.0.0.1:59904 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:32:33 === +closing AMQP connection <0.1390.0> (127.0.0.1:59904 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:32:40 === +accepting AMQP connection <0.1403.0> (127.0.0.1:59976 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:32:40 === +connection <0.1403.0> (127.0.0.1:59976 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:32:49 === +closing AMQP connection <0.1403.0> (127.0.0.1:59976 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:33:02 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 8-Jul-2017::15:33:02 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 8-Jul-2017::15:33:07 === +Memory limit set to 5963MB of 14908MB total. + +=INFO REPORT==== 8-Jul-2017::15:33:07 === +Disk free limit set to 50MB + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Starting rabbit_node_monitor + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 8-Jul-2017::15:33:08 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Statistics database started. + +=INFO REPORT==== 8-Jul-2017::15:33:08 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 8-Jul-2017::15:34:02 === +accepting AMQP connection <0.463.0> (127.0.0.1:60193 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:34:02 === +connection <0.463.0> (127.0.0.1:60193 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:35:54 === +closing AMQP connection <0.463.0> (127.0.0.1:60193 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::15:36:02 === +accepting AMQP connection <0.516.0> (127.0.0.1:60597 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::15:36:02 === +connection <0.516.0> (127.0.0.1:60597 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::15:37:37 === +closing AMQP connection <0.516.0> (127.0.0.1:60597 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::21:53:58 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 8-Jul-2017::21:53:58 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Memory limit set to 5973MB of 14933MB total. + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Disk free limit set to 50MB + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Starting rabbit_node_monitor + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 8-Jul-2017::21:54:00 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 8-Jul-2017::21:54:00 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 8-Jul-2017::21:54:01 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 8-Jul-2017::21:54:01 === +Statistics database started. + +=INFO REPORT==== 8-Jul-2017::21:54:01 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 8-Jul-2017::21:55:09 === +accepting AMQP connection <0.467.0> (127.0.0.1:60936 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::21:55:09 === +connection <0.467.0> (127.0.0.1:60936 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Jul-2017::21:57:08 === +closing AMQP connection <0.467.0> (127.0.0.1:60936 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Jul-2017::21:57:14 === +accepting AMQP connection <0.522.0> (127.0.0.1:60974 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Jul-2017::21:57:14 === +connection <0.522.0> (127.0.0.1:60974 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=INFO REPORT==== 9-Jul-2017::12:08:07 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 9-Jul-2017::12:08:07 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 9-Jul-2017::12:08:09 === +Memory limit set to 5641MB of 14103MB total. + +=INFO REPORT==== 9-Jul-2017::12:08:09 === +Disk free limit set to 50MB + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Starting rabbit_node_monitor + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 9-Jul-2017::12:08:10 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Statistics database started. + +=INFO REPORT==== 9-Jul-2017::12:08:10 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 9-Jul-2017::12:11:55 === +accepting AMQP connection <0.522.0> (127.0.0.1:50265 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:11:55 === +connection <0.522.0> (127.0.0.1:50265 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:13:26 === +closing AMQP connection <0.522.0> (127.0.0.1:50265 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:20:22 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 9-Jul-2017::12:20:22 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 9-Jul-2017::12:20:24 === +Memory limit set to 5527MB of 13819MB total. + +=INFO REPORT==== 9-Jul-2017::12:20:24 === +Disk free limit set to 50MB + +=INFO REPORT==== 9-Jul-2017::12:20:24 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 9-Jul-2017::12:20:24 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Starting rabbit_node_monitor + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 9-Jul-2017::12:20:25 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Statistics database started. + +=INFO REPORT==== 9-Jul-2017::12:20:25 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 9-Jul-2017::12:32:35 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 9-Jul-2017::12:32:35 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Memory limit set to 5532MB of 13830MB total. + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Disk free limit set to 50MB + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Starting rabbit_node_monitor + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 9-Jul-2017::12:32:37 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Statistics database started. + +=INFO REPORT==== 9-Jul-2017::12:32:37 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 9-Jul-2017::12:33:52 === +accepting AMQP connection <0.469.0> (127.0.0.1:50473 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:33:52 === +connection <0.469.0> (127.0.0.1:50473 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:35:32 === +closing AMQP connection <0.469.0> (127.0.0.1:50473 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:35:42 === +accepting AMQP connection <0.519.0> (127.0.0.1:50515 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:35:42 === +connection <0.519.0> (127.0.0.1:50515 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:37:39 === +closing AMQP connection <0.519.0> (127.0.0.1:50515 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:37:45 === +accepting AMQP connection <0.563.0> (127.0.0.1:51059 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:37:45 === +connection <0.563.0> (127.0.0.1:51059 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:37:52 === +closing AMQP connection <0.563.0> (127.0.0.1:51059 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:37:58 === +accepting AMQP connection <0.575.0> (127.0.0.1:51064 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:37:58 === +connection <0.575.0> (127.0.0.1:51064 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:38:45 === +closing AMQP connection <0.575.0> (127.0.0.1:51064 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:38:51 === +accepting AMQP connection <0.599.0> (127.0.0.1:51189 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:38:51 === +connection <0.599.0> (127.0.0.1:51189 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:39:30 === +closing AMQP connection <0.599.0> (127.0.0.1:51189 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:39:36 === +accepting AMQP connection <0.619.0> (127.0.0.1:51445 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:39:36 === +connection <0.619.0> (127.0.0.1:51445 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:39:42 === +closing AMQP connection <0.619.0> (127.0.0.1:51445 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:39:48 === +accepting AMQP connection <0.630.0> (127.0.0.1:51451 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:39:48 === +connection <0.630.0> (127.0.0.1:51451 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:40:02 === +closing AMQP connection <0.630.0> (127.0.0.1:51451 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:40:08 === +accepting AMQP connection <0.642.0> (127.0.0.1:51463 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:40:08 === +connection <0.642.0> (127.0.0.1:51463 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:40:13 === +closing AMQP connection <0.642.0> (127.0.0.1:51463 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:40:19 === +accepting AMQP connection <0.653.0> (127.0.0.1:51513 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:40:19 === +connection <0.653.0> (127.0.0.1:51513 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:40:34 === +closing AMQP connection <0.653.0> (127.0.0.1:51513 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:40:40 === +accepting AMQP connection <0.668.0> (127.0.0.1:51522 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:40:40 === +connection <0.668.0> (127.0.0.1:51522 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:45:32 === +closing AMQP connection <0.668.0> (127.0.0.1:51522 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:45:37 === +accepting AMQP connection <0.766.0> (127.0.0.1:52444 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:45:37 === +connection <0.766.0> (127.0.0.1:52444 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:47:15 === +closing AMQP connection <0.766.0> (127.0.0.1:52444 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:47:21 === +accepting AMQP connection <0.805.0> (127.0.0.1:52658 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:47:21 === +connection <0.805.0> (127.0.0.1:52658 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:47:36 === +closing AMQP connection <0.805.0> (127.0.0.1:52658 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:47:42 === +accepting AMQP connection <0.820.0> (127.0.0.1:52669 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:47:42 === +connection <0.820.0> (127.0.0.1:52669 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:49:32 === +closing AMQP connection <0.820.0> (127.0.0.1:52669 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:49:38 === +accepting AMQP connection <0.861.0> (127.0.0.1:53019 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:49:38 === +connection <0.861.0> (127.0.0.1:53019 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:49:38 === +closing AMQP connection <0.861.0> (127.0.0.1:53019 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:49:44 === +accepting AMQP connection <0.871.0> (127.0.0.1:53024 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:49:44 === +connection <0.871.0> (127.0.0.1:53024 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:50:46 === +closing AMQP connection <0.871.0> (127.0.0.1:53024 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:50:51 === +accepting AMQP connection <0.900.0> (127.0.0.1:53080 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:50:51 === +connection <0.900.0> (127.0.0.1:53080 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:51:44 === +closing AMQP connection <0.900.0> (127.0.0.1:53080 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:51:50 === +accepting AMQP connection <0.924.0> (127.0.0.1:53138 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:51:50 === +connection <0.924.0> (127.0.0.1:53138 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:53:11 === +closing AMQP connection <0.924.0> (127.0.0.1:53138 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:53:17 === +accepting AMQP connection <0.957.0> (127.0.0.1:53639 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:53:17 === +connection <0.957.0> (127.0.0.1:53639 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::12:54:02 === +closing AMQP connection <0.957.0> (127.0.0.1:53639 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::12:54:08 === +accepting AMQP connection <0.981.0> (127.0.0.1:53668 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::12:54:08 === +connection <0.981.0> (127.0.0.1:53668 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:01:10 === +closing AMQP connection <0.981.0> (127.0.0.1:53668 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:01:19 === +accepting AMQP connection <0.1122.0> (127.0.0.1:54257 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:01:19 === +connection <0.1122.0> (127.0.0.1:54257 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:02:55 === +closing AMQP connection <0.1122.0> (127.0.0.1:54257 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:03:00 === +accepting AMQP connection <0.1162.0> (127.0.0.1:54321 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:03:00 === +connection <0.1162.0> (127.0.0.1:54321 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:04:12 === +closing AMQP connection <0.1162.0> (127.0.0.1:54321 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:04:18 === +accepting AMQP connection <0.1191.0> (127.0.0.1:54346 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:04:18 === +connection <0.1191.0> (127.0.0.1:54346 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:05:44 === +closing AMQP connection <0.1191.0> (127.0.0.1:54346 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:41:05 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 9-Jul-2017::13:41:05 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 9-Jul-2017::13:41:07 === +Memory limit set to 5725MB of 14314MB total. + +=INFO REPORT==== 9-Jul-2017::13:41:07 === +Disk free limit set to 50MB + +=INFO REPORT==== 9-Jul-2017::13:41:07 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 9-Jul-2017::13:41:07 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Starting rabbit_node_monitor + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 9-Jul-2017::13:41:08 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Statistics database started. + +=INFO REPORT==== 9-Jul-2017::13:41:08 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 9-Jul-2017::13:42:03 === +accepting AMQP connection <0.463.0> (127.0.0.1:58446 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:42:03 === +connection <0.463.0> (127.0.0.1:58446 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:43:40 === +closing AMQP connection <0.463.0> (127.0.0.1:58446 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:43:46 === +accepting AMQP connection <0.504.0> (127.0.0.1:58956 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:43:46 === +connection <0.504.0> (127.0.0.1:58956 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:47:36 === +closing AMQP connection <0.504.0> (127.0.0.1:58956 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:47:41 === +accepting AMQP connection <0.591.0> (127.0.0.1:59351 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:47:41 === +connection <0.591.0> (127.0.0.1:59351 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:55:38 === +closing AMQP connection <0.591.0> (127.0.0.1:59351 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:55:44 === +accepting AMQP connection <0.747.0> (127.0.0.1:60531 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:55:44 === +connection <0.747.0> (127.0.0.1:60531 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::13:56:36 === +closing AMQP connection <0.747.0> (127.0.0.1:60531 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::13:56:42 === +accepting AMQP connection <0.772.0> (127.0.0.1:60805 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::13:56:42 === +connection <0.772.0> (127.0.0.1:60805 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::14:03:38 === +closing AMQP connection <0.772.0> (127.0.0.1:60805 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 9-Jul-2017::14:03:44 === +accepting AMQP connection <0.910.0> (127.0.0.1:62539 -> 127.0.0.1:4000) + +=INFO REPORT==== 9-Jul-2017::14:03:44 === +connection <0.910.0> (127.0.0.1:62539 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 9-Jul-2017::14:06:54 === +closing AMQP connection <0.910.0> (127.0.0.1:62539 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 10-Jul-2017::17:53:21 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 10-Jul-2017::17:53:21 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Memory limit set to 6414MB of 16037MB total. + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Disk free limit set to 50MB + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Starting rabbit_node_monitor + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 10-Jul-2017::17:53:24 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Statistics database started. + +=INFO REPORT==== 10-Jul-2017::17:53:24 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 10-Jul-2017::17:54:19 === +accepting AMQP connection <0.463.0> (127.0.0.1:59042 -> 127.0.0.1:4000) + +=INFO REPORT==== 10-Jul-2017::17:54:19 === +connection <0.463.0> (127.0.0.1:59042 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 10-Jul-2017::17:56:10 === +closing AMQP connection <0.463.0> (127.0.0.1:59042 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 10-Jul-2017::17:56:16 === +accepting AMQP connection <0.508.0> (127.0.0.1:59092 -> 127.0.0.1:4000) + +=INFO REPORT==== 10-Jul-2017::17:56:16 === +connection <0.508.0> (127.0.0.1:59092 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 10-Jul-2017::18:08:38 === +closing AMQP connection <0.508.0> (127.0.0.1:59092 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Aug-2017::18:57:24 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 8-Aug-2017::18:57:24 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Memory limit set to 5793MB of 14483MB total. + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Disk free limit set to 50MB + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Starting rabbit_node_monitor + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 8-Aug-2017::18:57:27 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Statistics database started. + +=INFO REPORT==== 8-Aug-2017::18:57:27 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 8-Aug-2017::18:58:26 === +accepting AMQP connection <0.464.0> (127.0.0.1:49377 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Aug-2017::18:58:26 === +connection <0.464.0> (127.0.0.1:49377 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Aug-2017::19:00:00 === +closing AMQP connection <0.464.0> (127.0.0.1:49377 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 8-Aug-2017::19:00:08 === +accepting AMQP connection <0.505.0> (127.0.0.1:49578 -> 127.0.0.1:4000) + +=INFO REPORT==== 8-Aug-2017::19:00:08 === +connection <0.505.0> (127.0.0.1:49578 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 8-Aug-2017::19:22:02 === +closing AMQP connection <0.505.0> (127.0.0.1:49578 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-Aug-2017::19:24:11 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 30-Aug-2017::19:24:11 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Memory limit set to 5864MB of 14661MB total. + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Disk free limit set to 50MB + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Starting rabbit_node_monitor + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 30-Aug-2017::19:24:13 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Statistics database started. + +=INFO REPORT==== 30-Aug-2017::19:24:13 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 30-Aug-2017::19:24:24 === +Starting RabbitMQ 3.6.9 on Erlang 17.5 +Copyright (C) 2007-2016 Pivotal Software, Inc. +Licensed under the MPL. See http://www.rabbitmq.com/ + +=INFO REPORT==== 30-Aug-2017::19:24:24 === +node : rabbit@localhost +home dir : /Users/leif +config file(s) : /Users/leif/node/tmake/server/rabbitmq/etc/rabbitmq/rabbitmq.config (not found) +cookie hash : 5ROCtfX2NoForFviP6qIFQ== +log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost.log +sasl log : /Users/leif/node/tmake/server/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log +database dir : /Users/leif/node/tmake/server/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Memory limit set to 5867MB of 14669MB total. + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Disk free limit set to 50MB + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Limiting to approx 10140 file handles (9124 sockets) + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +FHC read buffering: OFF +FHC write buffering: ON + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Waiting for Mnesia tables for 30000 ms, 9 retries left + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Priority queues enabled, real BQ is rabbit_variable_queue + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Starting rabbit_node_monitor + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Management plugin: using rates mode 'basic' + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +msg_store_transient: using rabbit_msg_store_ets_index to provide index + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +msg_store_persistent: using rabbit_msg_store_ets_index to provide index + +=WARNING REPORT==== 30-Aug-2017::19:24:27 === +msg_store_persistent: rebuilding indices from scratch + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +started TCP Listener on [::]:4000 + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Management plugin started. Port: 15672 + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Statistics database started. + +=INFO REPORT==== 30-Aug-2017::19:24:27 === +Server startup complete; 6 plugins started. + * rabbitmq_management + * rabbitmq_web_dispatch + * rabbitmq_management_agent + * cowboy + * cowlib + * amqp_client + +=INFO REPORT==== 30-Aug-2017::19:25:25 === +accepting AMQP connection <0.466.0> (127.0.0.1:59746 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-Aug-2017::19:25:25 === +connection <0.466.0> (127.0.0.1:59746 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-Aug-2017::19:27:02 === +closing AMQP connection <0.466.0> (127.0.0.1:59746 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection + +=INFO REPORT==== 30-Aug-2017::19:27:08 === +accepting AMQP connection <0.506.0> (127.0.0.1:60220 -> 127.0.0.1:4000) + +=INFO REPORT==== 30-Aug-2017::19:27:08 === +connection <0.506.0> (127.0.0.1:60220 -> 127.0.0.1:4000): user 'guest' authenticated and granted access to vhost '/' + +=WARNING REPORT==== 30-Aug-2017::19:28:36 === +closing AMQP connection <0.506.0> (127.0.0.1:60220 -> 127.0.0.1:4000): +client unexpectedly closed TCP connection diff --git a/server/re2/tmake.yaml b/server/re2/tmake.yaml deleted file mode 100644 index ddac7f6..0000000 --- a/server/re2/tmake.yaml +++ /dev/null @@ -1,40 +0,0 @@ -git: - repository: google/re2 - archive: "2016-10-01" -path: - includeDirs: - - source - install: - headers: - - from: source/re2 - to: include/re2 - - from: source/util - to: include/re2/util -configure: - for: ninja -build: - with: ninja - sources: - - re2/*.cc - - util/*.cc - linux: - sources: - - re2/*.cc - - util/*.cc - - "!util/threadwin.cc" - mac: - sources: - - re2/*.cc - - util/*.cc - - "!util/threadwin.cc" - cFlags: - O3: true - std: c++11 - g: true - Wall: true - Wextra: true - Wno-unused-parameter: true - Wno-missing-field-initializers: true - pthread: true - mac: - stdlib: libc++ \ No newline at end of file diff --git a/server/requirements b/server/requirements new file mode 100755 index 0000000..19e3b80 --- /dev/null +++ b/server/requirements @@ -0,0 +1,45 @@ +### +# Test Environment +### + +echo "installing, requirements this may take a while" +echo "please also be ready to enter your password" + +# optional minikube driver +brew install docker-machine-driver-xhyve + +# minikube +curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.17.1/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ + +### +# Development Dependencies +### + +# homebrew: +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +brew update +brew install homebrew/nginx/nginx-full --with-stream +brew install node yarn mongo graphicsmagick + +# kubernetes requirements +curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.18.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ +brew install vault jq consul cfssl cfssljson awscli kubectl + +# node globals: +npm i -g gulp grunt pm2 shelljs fs-extended fs-extra + +# meteor +curl https://install.meteor.com/ | sh + +# rabbitMQ +RABBIT_VERSION=3.6.9 +curl https://www.rabbitmq.com/releases/rabbitmq-server/v${RABBIT_VERSION}/rabbitmq-server-mac-standalone-${RABBIT_VERSION}.tar.xz | tar xvz +mv rabbitmq_server-${RABBIT_VERSION} rabbitmq + +# cockroach +COCKROACH_VERSION=latest.darwin-10.9-amd64 +curl "https://binaries.cockroachdb.com/cockroach-$COCKROACH_VERSION.tgz" | tar xvz +mkdir -p cockroach +mv "cockroach-$COCKROACH_VERSION/cockroach" cockroach/cockroach +cp cockroach/cockroach /usr/local/bin/cockroach +rm -R "cockroach-$COCKROACH_VERSION" \ No newline at end of file diff --git a/server/restart b/server/restart new file mode 100755 index 0000000..60927ce --- /dev/null +++ b/server/restart @@ -0,0 +1,13 @@ +#!/bin/bash +APP=$1 +if [ $APP ] +then +pm2 restart devops/local/process.yaml --only $APP +else +echo restarting nginx may require root pass +sudo nginx -c $(pwd)/devops/local/nginx.conf -s quit +sleep 1 +## nginx +sh devops/local/before/nginx.sh +pm2 restart devops/local/process.yaml +fi \ No newline at end of file diff --git a/server/shared/interfaces/documents/editor.d.ts b/server/shared/interfaces/documents/editor.d.ts new file mode 100644 index 0000000..e57cc17 --- /dev/null +++ b/server/shared/interfaces/documents/editor.d.ts @@ -0,0 +1,20 @@ +declare namespace TMake { + namespace Editor { + interface Data { + config?: string + result?: string + environment?: string + options?: string + } + interface Events { + updateConfig(value: string): void; + updateEnvironment(value: string): void; + } + namespace Actions { + interface Update { + value: string + type: string + } + } + } +} \ No newline at end of file diff --git a/server/shared/interfaces/documents/index.d.ts b/server/shared/interfaces/documents/index.d.ts new file mode 100644 index 0000000..71840c5 --- /dev/null +++ b/server/shared/interfaces/documents/index.d.ts @@ -0,0 +1,2 @@ +/// +/// \ No newline at end of file diff --git a/server/shared/interfaces/documents/user.d.ts b/server/shared/interfaces/documents/user.d.ts new file mode 100644 index 0000000..554ca55 --- /dev/null +++ b/server/shared/interfaces/documents/user.d.ts @@ -0,0 +1,20 @@ +declare namespace TMake { + class User { + email: string + roles: string[] + + profile_s3_cropped_url(): string; + } + namespace User { + interface Profile { + firstName: string + lastName: string + } + } + namespace Action { + interface SetUser { + user: TMake.User + type: 'SET_USER' + } + } +} \ No newline at end of file diff --git a/server/shared/interfaces/email.d.ts b/server/shared/interfaces/email.d.ts new file mode 100644 index 0000000..fc1e2f7 --- /dev/null +++ b/server/shared/interfaces/email.d.ts @@ -0,0 +1,37 @@ + +declare namespace TMake { + // type EmailTemplate = 'orderStatus' | 'verifyEmail' | 'resetPassword' | 'contact'; + + interface Email { + from: string, + to: string, + replyTo: string + subject: string + html?: string + template?: string + generateTextFromHTML?: true + attachments?: any + data?: any + } + + namespace Email { + namespace Form { + interface Contact { + email: string, + name: string, + body: string + } + } + + namespace Account { + interface VerifyEmail { + profile: TMake.User.Profile, + validationLink: string + } + + interface ResetPassword { + resetLink: string + } + } + } +} \ No newline at end of file diff --git a/server/shared/interfaces/index.d.ts b/server/shared/interfaces/index.d.ts new file mode 100644 index 0000000..8b8e6d5 --- /dev/null +++ b/server/shared/interfaces/index.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// \ No newline at end of file diff --git a/server/shared/interfaces/react-responsive.d.ts b/server/shared/interfaces/react-responsive.d.ts new file mode 100644 index 0000000..3db1cd7 --- /dev/null +++ b/server/shared/interfaces/react-responsive.d.ts @@ -0,0 +1,69 @@ +// Type definitions for react-responsive 1.1.3 +// Project: https://github.com/contra/react-responsive +// Definitions by: Alexey Svetliakov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +declare namespace TMake { + interface MediaQueryProps { + values?: any; + query?: string; + // matchers + orientation?: "portrait" | "landscape"; + scan?: "progressive" | "interlace"; + aspectRatio?: string; + deviceAspectRatio?: string; + height?: number | string; + deviceHeight?: number | string; + width?: number | string; + deviceWidth?: number | string; + color?: boolean; + colorIndex?: boolean; + monochrome?: boolean; + resolution?: number | string; + // types + minAspectRatio?: string; + maxAspectRatio?: string; + minDeviceAspectRatio?: string; + maxDeviceAspectRatio?: string; + minHeight?: number | string; + maxHeight?: number | string; + minDeviceHeight?: number | string; + maxDeviceHeight?: number | string; + minDeviceWidth?: number | string; + maxDeviceWidth?: number | string; + minWidth?: number | string; + maxWidth?: number | string; + minColor?: number; + maxColor?: number; + minColorIndex?: number; + maxColorIndex?: number; + minMonochrome?: number; + maxMonochrome?: number; + minResolution?: number | string; + maxResolution?: number | string; + // types + all?: boolean; + grid?: boolean; + aural?: boolean; + braille?: boolean; + handheld?: boolean; + print?: boolean; + projection?: boolean; + screen?: boolean; + tty?: boolean; + tv?: boolean; + embossed?: boolean; + } +} + +declare module "react-responsive" { + import * as React from "react"; + + namespace MediaQuery { + } + + class MediaQuery extends React.Component {} + export = MediaQuery; + +} diff --git a/server/shared/interfaces/react.d.ts b/server/shared/interfaces/react.d.ts new file mode 100644 index 0000000..b51c9db --- /dev/null +++ b/server/shared/interfaces/react.d.ts @@ -0,0 +1,32 @@ +/// +/// + +declare namespace TMake { + namespace React { + interface PageProps { + mq?: TMake.MediaQueryProps + loginTokenPresent?: boolean + } + + interface CopyProps { + i18n?: TMake.Settings.i18n + s3url?(rel: string): string + manifest?: any + } + + interface LayoutProps extends PageProps, CopyProps { + mq?: TMake.MediaQueryProps + fluid?: boolean, + children?: any + } + + interface Navbar extends LayoutProps { + account?: any; + loginTokenPresent?: boolean + } + + interface NavbarLogin { + user?: any; + } + } +} \ No newline at end of file diff --git a/server/shared/interfaces/settings.d.ts b/server/shared/interfaces/settings.d.ts new file mode 100644 index 0000000..53a7c35 --- /dev/null +++ b/server/shared/interfaces/settings.d.ts @@ -0,0 +1,109 @@ +declare namespace TMake { + namespace Settings { + interface GoogleAnalytics { + account: string, + cookieName: string, + cookieDomain: string, + cookieExpires: string, + debug: boolean, + set: { + forceSSL: boolean, + anonymizeIp: boolean + }, + require: { + displayfeatures: boolean, + linkid: string + }, + trackUserId: boolean + } + + interface Link { + title: string + href: string + } + + interface i18n { + name: string + title: string + legal: { + entity: string; + } + } + + namespace AWS { + interface Read { + region: string, + cdn: string, + bucket: string + } + interface Write { + region: string, + accessKeyId: string + secretAccessKey: string + } + } + + interface Theme { + bundle?: any; + theme?: any; + vendor?: any; + active?: { + theme: string; + } + } + + interface Server { + host: string + port?: number + https?: boolean + } + + interface AMQP extends Server { + username: string, + password: string + queues?: { + mail: 'mail' + } + } + + namespace Shared { + interface Public { + i18n: i18n + twitter: { + account: string + } + facebook: { + account: string + appId: string + } + google: { + clientId: string, + analytics: GoogleAnalytics + } + email: { + contact: string + support: string + } + links: { + blog?: Link + }, + url: string + assets: { + s3: AWS.Read + } + manifest: Theme + } + + interface Private { + aws: AWS.Write + google: { + secret: string + } + facebook: { + secret: string + }, + amqp: AMQP + } + } + } +} \ No newline at end of file diff --git a/server/start b/server/start new file mode 100755 index 0000000..aaf4d1e --- /dev/null +++ b/server/start @@ -0,0 +1,39 @@ +#!/bin/bash +APP=$1 +export VAULT_ADDR=http://127.0.0.1:5010 + +node devops/local/render.js +if [ $APP ] +then + sh devops/local/before/$APP.sh + pm2 start devops/local/stateful.yaml --only $APP + pm2 start devops/local/services.yaml --only $APP +else +sh devops/local/before/ingress.sh +## Meta +mkdir -p data/vault +pm2 start devops/local/stateful.yaml --only vault + +## Stateful +pm2 start devops/local/stateful.yaml + +## Prep Services +sh devops/local/before/front-server.sh +# sh devops/local/before/uoa.sh +sh devops/local/before/mailer.sh + +## Launch Remaining Services +pm2 start devops/local/services.yaml +echo " +'cluster' is up . . . do ./stop or ./restart + +also recommended: + +watch all: +watch pm2 list + +connect to SQL + +cockroach sql --certs-dir=secrets/local/uoa/tls --host=cockroachdb-0.local --port=5100 +" +fi diff --git a/server/stop b/server/stop new file mode 100755 index 0000000..556af48 --- /dev/null +++ b/server/stop @@ -0,0 +1,10 @@ +#!/bin/bash +APP=$1 +if [ $APP ] +then + pm2 delete devops/local/stateful.yaml --only $APP + pm2 delete devops/local/services.yaml --only $APP +else +pm2 delete devops/local/services.yaml +pm2 delete devops/local/stateful.yaml +fi diff --git a/server/theme/.dockerignore b/server/theme/.dockerignore new file mode 100644 index 0000000..ac92ea8 --- /dev/null +++ b/server/theme/.dockerignore @@ -0,0 +1,4 @@ +bin +node_modules +webpack +src \ No newline at end of file diff --git a/server/theme/.gitignore b/server/theme/.gitignore new file mode 100644 index 0000000..54d50e2 --- /dev/null +++ b/server/theme/.gitignore @@ -0,0 +1,4 @@ +node_modules +.vscode +/dist +/settings.yaml diff --git a/server/theme/build.js b/server/theme/build.js new file mode 100644 index 0000000..b9491ea --- /dev/null +++ b/server/theme/build.js @@ -0,0 +1,72 @@ +"use strict"; +const webpack = require("webpack"); +const WebpackDevServer = require("webpack-dev-server"); +const yaml = require('js-yaml'); +const fs = require('fs-extended'); +const path = require('path'); +const sh = require('shelljs'); +const args = process.argv.slice(2); +const devConfig = require("./webpack/dev/bundle"); +const productionConfig = require("./webpack/production/bundle"); + +// do this with a symlink now + +// ['dark', 'light'].forEach(function (theme) { +// console.log('copy templates to', theme, 'theme'); +// ['stylus'].forEach(function (preprocessor) { +// const templatePath = path.join(__dirname, 'src', 'templates', preprocessor); +// const sharedPath = path.join(__dirname, 'src', theme, preprocessor, 'shared'); +// try { +// fs.unlinkSync(sharedPath); +// } catch (e) {} +// fs.copyDirSync(templatePath, sharedPath); +// }) +// }); + +if (process.env.NODE_ENV == "production") { + webpack(productionConfig).run(function (err, stats) { + if (err) console.log(err.message); + else console.log('built themes'); + }); +} else { + const settingsPath = 'settings.yaml'; + let settings; + + try { + settings = yaml.load(fs.readFileSync(settingsPath, 'utf8')); + } catch (e) { + console.log('error reading settings file @', process.cwd() + '/' + settingsPath); + console.log(e.message); + settings = { + webpack: { + dev: { + server: { + domain: '10.200.10.1', + port: process.env.PORT, + headers: { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS", + "Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization" + } + } + } + } + } + } + + var options = { + cached: true, + colors: true + }; + + new WebpackDevServer(webpack(devConfig), { + historyApiFallback: true, + hot: true, + stats: options + }).listen(settings.webpack.dev.server.port, settings.webpack.dev.server.domain, function (err) { + var urlString = settings.webpack.dev.server.domain + ':' + settings.webpack.dev.server.port; + if (err) console.log(err); + console.log("Webpack Server launched with at " + urlString + " (Hot Module Replacement [HMR] enabled)"); + }); + +} diff --git a/server/theme/deploy.sh b/server/theme/deploy.sh new file mode 100755 index 0000000..ebef558 --- /dev/null +++ b/server/theme/deploy.sh @@ -0,0 +1,14 @@ +/usr/local/bin/aws ecr get-login | sh +version=$1 +if [ $version ] +then + echo "build image theme:${version}" +docker tag chroma/theme 738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/theme:${version} +docker push 738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/theme:${version} +fi +deployment=$2 +if [ $deployment ] +then + echo "rollout to ${deployment}" + kubectl --namespace=default set image deployment $deployment theme=738600938019.dkr.ecr.us-east-1.amazonaws.com/chroma/theme:${version} +fi diff --git a/server/theme/package.json b/server/theme/package.json new file mode 100644 index 0000000..8c98ad3 --- /dev/null +++ b/server/theme/package.json @@ -0,0 +1,40 @@ +{ + "name": "theme", + "version": "1.1.17", + "description": "", + "scripts": { + "dev": "node build", + "clean": "rm -rf node_modules && rm -rf ../devops/docker/theme/build && yarn", + "distribute": "npm run clean && NODE_ENV=production node build.js --preserve-symlinks" + }, + "author": "Leif Shackelford ", + "license": "ISC", + "dependencies": { + "webpack-md5-hash": "^0.0.5" + }, + "devDependencies": { + "@types/webpack": "^2.2.4", + "babel-core": "^6.22.1", + "babel-loader": "^6.2.10", + "cross-env": "^3.1.4", + "css-loader": ">=0.26.1", + "extract-text-webpack-plugin": "2.1.0", + "file-loader": ">=0.9.0", + "fs-extended": ">=0.2.1", + "fs-extra": "^2.0.0", + "node-sass": "^4.2.0", + "postcss-cssnext": "^2.9.0", + "postcss-import": "^9.1.0", + "postcss-reporter": "^3.0.0", + "sass-loader": "^4.1.1", + "shelljs": ">=0.7.7", + "source-map-loader": "^0.1.6", + "style-loader": ">=0.13.1", + "stylus": "^0.54.5", + "stylus-loader": "^2.4.0", + "url-loader": "^0.5.6", + "webpack": "^2.2.0", + "webpack-dev-server": "^2.2.0", + "webpack-manifest-plugin": "^1.1.0" + } +} diff --git a/server/theme/src/dark/index.js b/server/theme/src/dark/index.js new file mode 100644 index 0000000..a68a7d7 --- /dev/null +++ b/server/theme/src/dark/index.js @@ -0,0 +1,6 @@ +require('../shared/main.scss'); + +require('./stylus/main.styl'); +require('./sass/main.scss'); + +require('./static'); \ No newline at end of file diff --git a/server/theme/src/dark/sass/buttonSpinner.scss b/server/theme/src/dark/sass/buttonSpinner.scss new file mode 100644 index 0000000..9473d25 --- /dev/null +++ b/server/theme/src/dark/sass/buttonSpinner.scss @@ -0,0 +1,253 @@ +$panel-size: 6px; +$chroma-button-h: $panel-size * 3; +$chroma-button-hh: $panel-size * 1.5; +$panel-distance: ($chroma-button-h / 2) - ($panel-size / 2); +$animation-length: 7.0s; +$a: 0.8; +$logo-c0: rgba(#00aeef, $a); +$logo-c1: rgba(#1883c6, $a); +$logo-c2: rgba(#14acb9, $a); +$logo-m0: rgba(#ec008c, $a); +$logo-m1: rgba(#a52890, $a); +$logo-m2: rgba(#e41f3d, $a); +$logo-y0: rgba(#fff200, $a); +$logo-y1: rgba(#fab814, $a); +$logo-y2: rgba(#c2d831, $a); + +$animScale: 1; +$secondY: -45deg; +$secondX: -45deg; +$firstX: 30deg; +$firstZ: 135deg; +$individual: 180deg; + +@keyframes button-move { + 0% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(45deg); + } + 10% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(45deg); + } + 30% { + transform: rotateX($secondX) rotateY($secondY) rotateZ(0deg); + } + 50% { + transform: rotateX($secondX) rotateY($secondY) rotateZ(0deg); + } + 60% { + transform: rotateX(0deg) rotateY(0deg) rotateZ($firstZ); + } + 70% { + transform: rotateX(0deg) rotateY(0deg) rotateZ($firstZ); + } + 80% { + transform: rotateX($firstX) rotateY(0deg) rotateZ($firstZ); + } + 100% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(225deg); + } + } + @keyframes button-reverse-panels { + 0% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); + } + 20% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); + } + 30% { + transform: rotateX(0) rotateY($individual) rotateZ(0); + } + 100% { + transform: rotateX(0) rotateY($individual) rotateZ(0); + } + } + @keyframes button-plane1 { + 0% { + transform: translate3d(0px, 0px, $chroma-button-hh); + } + 100% { + transform: translate3d(0px, 0px, $chroma-button-hh); + } + 76% { + transform: translate3d(0px, 0px, $chroma-button-hh); + } + 82% { + transform: translate3d(0px, 0px, 0); + } + } + @keyframes button-plane3 { + 0% { + transform: translate3d(0px, $chroma-button-hh, 0) rotateX(90deg); + } + 100% { + transform: translate3d(0px, -$chroma-button-hh, 0) rotateX(90deg); + } + 20% { + transform: translate3d(0px, $chroma-button-hh, 0) rotateX(90deg); + } + 40% { + transform: translate3d(0px, -$chroma-button-hh, 0) rotateX(90deg); + } + } + +$button-width: 120px; +$button-height: 44px; + +button.btn.loadingButton { + min-height: $button-height; + min-width: $button-width; + padding: 0; + margin-right: 0; + .bezel { + margin-left: $button-width / 2; + margin-top: (($button-height / 2) - ($chroma-button-h / 2)); + } +} + +button.btn.btn-xs.loadingButton { + min-height: 30px; + min-width: 60px; +} + +.chroma-loading-button { + width: $chroma-button-h; + height: $chroma-button-h; + transform-style: preserve-3d; + animation: button-move infinite $animation-length; + -webkit-animation-timing-function: cubic-bezier(0.4,0,0.3,1); + margin-left: (-$chroma-button-h / 2); + margin-top: (-$chroma-button-h / 2); + + .plane-1 { + animation: button-plane1 infinite $animation-length; + } + .plane-2 { + transform: translate3d(0px, 0px, -$chroma-button-hh); + } + .plane-3 { + animation: button-plane3 infinite $animation-length; + transform: translate3d(0px, -$chroma-button-hh, 0px) rotateX(-90deg); + } + .plane-4 { + transform: translate3d(0px, $chroma-button-hh, 0px) rotateX(-90deg); + } + .plane-5 { + transform: translate3d(-$chroma-button-hh, 0px, 0px) rotateY(-90deg); + } + .plane-6 { + transform: translate3d($chroma-button-hh, 0px, 0px) rotateY(-90deg); + } + .plane-1, + .plane-2, + .plane-3, + .plane-4, + .plane-5, + .plane-6 { + border-width: 0; + width: $chroma-button-h; + height: $chroma-button-h; + position: absolute; + transform-style: preserve-3d; + background-blend-mode: lighten; + -webkit-background-blend-mode: lighten; + } + .plane-1 div, + .plane-2 div, + .plane-3 div, + .plane-4 div, + .plane-5 div, + .plane-6 div { + border-width: 0; + position: absolute; + width: $panel-size; + height: $panel-size; + background-blend-mode: lighten; + -webkit-background-blend-mode: lighten; + } + .plane-1 div { + background: $logo-c0; + } + .plane-2 div { + background: $logo-c1; + animation: button-reverse-panels infinite $animation-length; + } + .plane-3 div { + background: $logo-m0; + } + .plane-4 div { + background: $logo-m1; + } + .plane-5 div { + background: $logo-y1; + animation: button-reverse-panels infinite $animation-length; + } + .plane-6 div { + background: $logo-y0; + } + + .top-left { + background: $logo-c0; + top: 0; + left: 0; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; + } + .top-middle { + background: $logo-c1; + top: 0; + left: $panel-distance; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; + } + .top-right { + background: $logo-c2; + top: 0; + right: 0; + -webkit-animation-delay: 0.2s * $animScale !important; + animation-delay: 0.2s * $animScale !important; + } + .middle-left { + background: $logo-m0; + top: $panel-distance; + left: 0; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; + } + .middle-middle { + background: $logo-m1; + top: $panel-distance; + left: $panel-distance; + -webkit-animation-delay: 0.3s * $animScale !important; + animation-delay: 0.3s * $animScale !important; + } + .middle-right { + background: $logo-m2; + top: $panel-distance; + right: 0; + -webkit-animation-delay: 0.4s * $animScale !important; + animation-delay: 0.4s * $animScale !important; + } + .bottom-left { + background: $logo-y0; + bottom: 0; + left: 0; + -webkit-animation-delay: 0.3s * $animScale !important; + animation-delay: 0.3s * $animScale !important; + } + .bottom-middle { + background: $logo-y1; + bottom: 0; + left: $panel-distance; + -webkit-animation-delay: 0.4s * $animScale !important; + animation-delay: 0.4s * $animScale !important; + } + .bottom-right { + background: $logo-y2; + bottom: 0; + right: 0; + -webkit-animation-delay: 0.5s * $animScale !important; + animation-delay: 0.5s * $animScale !important; + } + + +} \ No newline at end of file diff --git a/server/theme/src/dark/sass/main.scss b/server/theme/src/dark/sass/main.scss new file mode 100644 index 0000000..3fb1dbf --- /dev/null +++ b/server/theme/src/dark/sass/main.scss @@ -0,0 +1,2 @@ +@import './buttonSpinner'; +@import './spinner'; \ No newline at end of file diff --git a/server/theme/src/dark/sass/spinner.scss b/server/theme/src/dark/sass/spinner.scss new file mode 100644 index 0000000..9fa5a72 --- /dev/null +++ b/server/theme/src/dark/sass/spinner.scss @@ -0,0 +1,259 @@ +$panel-size: 45px; +$cube-h: $panel-size * 3; +$cube-hh: $panel-size *1.5; +$panel-distance: $cube-h / 2 - ($panel-size / 2); +$animation-length: 7.0s; +$a: 0.8; +$logo-c0: rgba(#00aeef, $a); +$logo-c1: rgba(#1883c6, $a); +$logo-c2: rgba(#14acb9, $a); +$logo-m0: rgba(#ec008c, $a); +$logo-m1: rgba(#a52890, $a); +$logo-m2: rgba(#e41f3d, $a); +$logo-y0: rgba(#fff200, $a); +$logo-y1: rgba(#fab814, $a); +$logo-y2: rgba(#c2d831, $a); + +$animScale: 1; +$secondY: -45deg; +$secondX: -45deg; +$firstX: 30deg; +$firstZ: 135deg; +$individual: 180deg; + +#loading { + .spacer { + height: 360px; + position: relative; + margin-bottom: 0px; + } +} + +@keyframes fade-cube { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes move-cube { + 0% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(45deg); + } + 10% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(45deg); + } + 30% { + transform: rotateX($secondX) rotateY($secondY) rotateZ(0deg); + } + 50% { + transform: rotateX($secondX) rotateY($secondY) rotateZ(0deg); + } + 60% { + transform: rotateX(0deg) rotateY(0deg) rotateZ($firstZ); + } + 70% { + transform: rotateX(0deg) rotateY(0deg) rotateZ($firstZ); + } + 80% { + transform: rotateX($firstX) rotateY(0deg) rotateZ($firstZ); + } + 100% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(225deg); + } +} +@keyframes reverse-panels { + 0% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); + } + 20% { + transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); + } + 30% { + transform: rotateX(0) rotateY($individual) rotateZ(0); + } + 100% { + transform: rotateX(0) rotateY($individual) rotateZ(0); + } +} +@keyframes plane1 { + 0% { + transform: translate3d(0px, 0px, $cube-hh); + } + 100% { + transform: translate3d(0px, 0px, $cube-hh); + } + 76% { + transform: translate3d(0px, 0px, $cube-hh); + } + 82% { + transform: translate3d(0px, 0px, 0); + } +} +@keyframes plane3 { + 0% { + transform: translate3d(0px, $cube-hh, 0) rotateX(90deg); + } + 100% { + transform: translate3d(0px, -$cube-hh, 0) rotateX(90deg); + } + 20% { + transform: translate3d(0px, $cube-hh, 0) rotateX(90deg); + } + 40% { + transform: translate3d(0px, -$cube-hh, 0) rotateX(90deg); + } +} + +.chroma-spinner { + animation: fade-cube 1.0s; +} + +.chroma-cube { + margin-left: (-$cube-h) / 2; + margin-top: (-$cube-h) / 2; + width: $cube-h; + height: $cube-h; + left: 50%; + top: 50%; + position: absolute; + transform-style: preserve-3d; + animation: move-cube infinite $animation-length; + -webkit-animation-timing-function: cubic-bezier(0.4,0,0.3,1); + +.plane-1 { + animation: plane1 infinite $animation-length; +} +.plane-2 { + transform: translate3d(0px, 0px, -$cube-hh); +} +.plane-3 { + animation: plane3 infinite $animation-length; + transform: translate3d(0px, -$cube-hh, 0px) rotateX(-90deg); +} +.plane-4 { + transform: translate3d(0px, $cube-hh, 0px) rotateX(-90deg); +} +.plane-5 { + transform: translate3d(-$cube-hh, 0px, 0px) rotateY(-90deg); +} +.plane-6 { + transform: translate3d($cube-hh, 0px, 0px) rotateY(-90deg); +} +.plane-1, +.plane-2, +.plane-3, +.plane-4, +.plane-5, +.plane-6 { + border-width: 0; + width: $cube-h; + height: $cube-h; + position: absolute; + transform-style: preserve-3d; + background-blend-mode: lighten; + -webkit-background-blend-mode: lighten; +} +.plane-1 div, +.plane-2 div, +.plane-3 div, +.plane-4 div, +.plane-5 div, +.plane-6 div { + border-width: 0; + position: absolute; + width: $panel-size; + height: $panel-size; + background-blend-mode: lighten; + -webkit-background-blend-mode: lighten; +} +.plane-1 div { + background: $logo-c0; +} +.plane-2 div { + background: $logo-c1; + animation: reverse-panels infinite $animation-length; +} +.plane-3 div { + background: $logo-m0; +} +.plane-4 div { + background: $logo-m1; +} +.plane-5 div { + background: $logo-y1; + animation: reverse-panels infinite $animation-length; +} +.plane-6 div { + background: $logo-y0; +} + +.top-left { + background: $logo-c0; + top: 0; + left: 0; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; +} +.top-middle { + background: $logo-c1; + top: 0; + left: $panel-distance; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; +} +.top-right { + background: $logo-c2; + top: 0; + right: 0; + -webkit-animation-delay: 0.2s * $animScale !important; + animation-delay: 0.2s * $animScale !important; +} +.middle-left { + background: $logo-m0; + top: $panel-distance; + left: 0; + -webkit-animation-delay: 0.1s * $animScale !important; + animation-delay: 0.1s * $animScale !important; +} +.middle-middle { + background: $logo-m1; + top: $panel-distance; + left: $panel-distance; + -webkit-animation-delay: 0.3s * $animScale !important; + animation-delay: 0.3s * $animScale !important; +} +.middle-right { + background: $logo-m2; + top: $panel-distance; + right: 0; + -webkit-animation-delay: 0.4s * $animScale !important; + animation-delay: 0.4s * $animScale !important; +} +.bottom-left { + background: $logo-y0; + bottom: 0; + left: 0; + -webkit-animation-delay: 0.3s * $animScale !important; + animation-delay: 0.3s * $animScale !important; +} +.bottom-middle { + background: $logo-y1; + bottom: 0; + left: $panel-distance; + -webkit-animation-delay: 0.4s * $animScale !important; + animation-delay: 0.4s * $animScale !important; +} +.bottom-right { + background: $logo-y2; + bottom: 0; + right: 0; + -webkit-animation-delay: 0.5s * $animScale !important; + animation-delay: 0.5s * $animScale !important; +} + + + +} \ No newline at end of file diff --git a/server/theme/src/dark/static/Brandon_reg.otf b/server/theme/src/dark/static/Brandon_reg.otf new file mode 100644 index 0000000..bd8300d Binary files /dev/null and b/server/theme/src/dark/static/Brandon_reg.otf differ diff --git a/server/theme/src/dark/static/Gotham-Bold.ttf b/server/theme/src/dark/static/Gotham-Bold.ttf new file mode 100644 index 0000000..ba14f52 Binary files /dev/null and b/server/theme/src/dark/static/Gotham-Bold.ttf differ diff --git a/server/theme/src/dark/static/favicon.ico b/server/theme/src/dark/static/favicon.ico new file mode 100644 index 0000000..3dd1bfe Binary files /dev/null and b/server/theme/src/dark/static/favicon.ico differ diff --git a/server/theme/src/dark/static/googleead3ce70cbd59d46.html b/server/theme/src/dark/static/googleead3ce70cbd59d46.html new file mode 100644 index 0000000..f46b2f2 --- /dev/null +++ b/server/theme/src/dark/static/googleead3ce70cbd59d46.html @@ -0,0 +1 @@ +google-site-verification: googleead3ce70cbd59d46.html \ No newline at end of file diff --git a/server/theme/src/dark/static/icon_120.png b/server/theme/src/dark/static/icon_120.png new file mode 100644 index 0000000..9b19629 Binary files /dev/null and b/server/theme/src/dark/static/icon_120.png differ diff --git a/server/theme/src/dark/static/index.js b/server/theme/src/dark/static/index.js new file mode 100644 index 0000000..0446672 --- /dev/null +++ b/server/theme/src/dark/static/index.js @@ -0,0 +1,3 @@ +require('./icon_120.png'); +require('./favicon.ico'); +require('./logo.png'); \ No newline at end of file diff --git a/server/theme/src/dark/static/logo.png b/server/theme/src/dark/static/logo.png new file mode 100644 index 0000000..dd1b851 Binary files /dev/null and b/server/theme/src/dark/static/logo.png differ diff --git a/server/theme/src/dark/stylus/embellish.styl b/server/theme/src/dark/stylus/embellish.styl new file mode 100644 index 0000000..f883d52 --- /dev/null +++ b/server/theme/src/dark/stylus/embellish.styl @@ -0,0 +1,128 @@ +@require "./shared/vars.styl" + +select, input, textarea + &.form-control + border-radius $border-radius-base + +.splash-text + -webkit-font-smoothing subpixel-antialiased + +.jumbotron + -webkit-font-smoothing antialiased + -moz-osx-font-smoothing grayscale + + button, .btn + -webkit-font-smoothing auto + +@media screen and (max-width: $screen-sm) + nav #login-dropdown-list a.dropdown-toggle + pointer-events none + +:not(.inverse) + .well + background linear-gradient(to bottom, rgba(100, 100, 100, .6), rgba(100, 100, 100, .4)) + border none + +button.cancel-link + color $gray-light + +h1, h2 + text-decoration none !important + +.modal + color $gray-darker + +button, input, optgroup, select, textarea + color $gray-darker + +.input-group-addon + background-color $gray-lighter + color chroma-inverse-p-color !important + +hr + color black + + &.danger + border-bottom 3px + border-image cf-cotton-candy-gradient 3 stretch + + &.info + border-bottom 3px + border-image cf-info-gradient 3 stretch + + &.success + border-bottom 3px + border-image cf-success-gradient 3 stretch + +.well.well-light + background-color $gray-lighter !important + +.row.admin + background-image cf-cotton-candy-gradient !important + color $gray-darker !important + +pre.well + color $gray-lighter + +.legal + color $gray-light !important + +.markdownPreview span.preview + color $gray-darker + +.progress-chroma + background-image cf-rainbow-gradient !important + + .progress-bar + float right !important + background-color $gray-darker !important + +.btn-Facebook + color white + background-color #3B5998 + +.btn-Google + color white + background-color #D34836 + +.table-striped, .table-clear + > .row.label + background transparent !important + +$nth-odd + background linear-gradient(to bottom, rgba(100, 100, 100, .3), rgba(50, 50, 50, .1)) +$nth-even + background linear-gradient(to bottom, rgba(150, 150, 150, .4), rgba(100, 100, 100, .1)) + +#bigTicker + @extend $nth-odd + min-height 240px + .has-success + color #00ff00 +#newTradeOrder + @extend $nth-odd + min-height 240px + +.list-group + border none + text-align center + .list-group-item:nth-child(odd) + border none + @extend $nth-odd + .list-group-item:nth-child(even) + border none + @extend $nth-even + +.table-striped + > tbody + > tr + > td + border-top none !important + > tr:nth-child(odd) + @extend $nth-odd + > tr:nth-child(even) + @extend $nth-even + > .row:nth-child(odd) + @extend $nth-odd + > .row:nth-child(even) + @extend $nth-even diff --git a/server/theme/src/dark/stylus/inputs.styl b/server/theme/src/dark/stylus/inputs.styl new file mode 100644 index 0000000..bd41478 --- /dev/null +++ b/server/theme/src/dark/stylus/inputs.styl @@ -0,0 +1,79 @@ +@require "./shared/vars.styl" + +input-height-desktop = 33px +input-height-mobile = 44px + +.btn + background-image linear-gradient(to right, $gray, $gray-light) + color $gray-lighter + border none + + &.btn-chroma, &.btn-primary, &.btn-default, &.btn-warning, &.btn-danger, &.btn-success, &.js-select-file, &.js-camera-file + border none !important + background-repeat repeat-x !important + + &.btn-chroma, &.btn-primary, &.js-select-file, &.js-camera-file + background-image linear-gradient(to right, cf-gray, cf-orange) !important + color $gray-lighter + + &.btn-default + background-image linear-gradient(to right, $gray-darker, $gray-light) + color $gray-lighter + + &.btn-danger + background-image cf-cotton-candy-gradient !important + + &.btn-warning + background-image cf-warning-gradient !important + + &.btn-success + background-image cf-success-gradient !important + + &.btn-warning, &.btn-success + color cf-gray + color $inverse-text-color !important + + &.field-accessory + margin-top 25px + padding-left 15px + padding-right 15px + max-height input-height-desktop + height input-height-desktop + +.label-warning + background-image cf-warning-gradient !important + color cf-gray +.label-success + background-image cf-success-gradient !important + color cf-gray +.label-danger + background-image cf-cotton-candy-gradient !important + +@media only screen and (min-width:$screen-sm) + input, input.form-control, select.form-control + max-height input-height-desktop + height input-height-desktop + +@media screen and (max-width: $screen-sm) + a, button + &.button.btn, &.btn + padding 12px 12px + + input.form-control, select.form-control + max-height input-height-mobile + height input-height-mobile + +.checkbox + label + display block + padding-left 15px + text-indent -15px + input + width 13px + height 13px + padding 0 + margin 0 + vertical-align bottom + position relative + top -1px + *overflow hidden diff --git a/server/theme/src/dark/stylus/inverse.styl b/server/theme/src/dark/stylus/inverse.styl new file mode 100644 index 0000000..679d044 --- /dev/null +++ b/server/theme/src/dark/stylus/inverse.styl @@ -0,0 +1,61 @@ +@require "./shared/vars.styl" + +cf-well-bg-gradient = linear-gradient(to bottom, rgba(175, 175, 175, .6), rgba(150, 150, 150, .4)) + +.inverse + a, a:link, a:visited + color cf-magenta + &.button, &.btn + color $gray-lighter + a:hover + color cf-magenta + &.button, &.btn + color $gray-lighter + + h1,h2,h3,h4,h5 + color chroma-inverse-h-color !important + .small + color chroma-inverse-h-color !important + + .panel-default + background-color $gray-light + .panel-heading, .panel-footer + background cf-well-bg-gradient !important + color chroma-inverse-p-color !important + + background-color chroma-inverse-bg + color chroma-inverse-p-color + hr + border-color $inverse-text-color + border-style solid none + border-width 1px 0 + margin 18px 0 + + input.form-control, select.form-control + background-color $cf-white + color chroma-inverse-p-color !important + + textarea.form-control + background-color $gray-lighter + color chroma-inverse-p-color !important + + .input-group-addon + background-color $gray-lighter + color chroma-inverse-p-color !important + + .btn.btn-chroma, .btn.btn-primary + background linear-gradient(to right, cf-blue, cf-cyan) !important + + .well + background cf-well-bg-gradient !important + border none + + .well.bg-gray + background cf-well-bg-gradient !important + + button.cancel-link + color $gray-dark + + .table-striped + .row:nth-child(odd) + background-color: $gray-lighter diff --git a/server/theme/src/dark/stylus/layout.styl b/server/theme/src/dark/stylus/layout.styl new file mode 100644 index 0000000..f41868b --- /dev/null +++ b/server/theme/src/dark/stylus/layout.styl @@ -0,0 +1,207 @@ +@require "./shared/vars.styl" + +html + position relative + min-height 100% + +.container.page, .container-fluid.page + padding-top sectionTop + padding-bottom sectionBottom + +@media screen and (min-width: $screen-sm) + .lg-spacer, .spacer + padding-top 30px + .form-spacer + padding-top 15px + .spacer-xl + padding-top 60px + +@media screen and (max-width: $screen-sm) + .spacer, .form-spacer, .xs-spacer + padding-top 15px + .spacer-xl + padding-top 30px +.fit + width 100% + +.fit-height + height 100% + +.row.banner + margin-bottom 1em + height 30em + +.row-centered + text-align center !important + +.col-centered + display inline-block !important + float none !important + text-align left !important + margin-right -4px !important + +.page-header ul.small + padding-top 1em + -webkit-padding-start 0px + +.modal + text-align center + +.modal-dialog + display inline-block + text-align left + vertical-align middle + +.modal-dialog.splash + width 100% + overflow-y hidden + +.highcharts-container + width 100% + max-width 100% + overflow hidden + +.modal-dialog.signup + width 70% + overflow-y hidden + +.modal-content.splash + -webkit-background-size cover + background-size 100% + +.modal-content.signup + -webkit-background-size cover + +.page-header + margin-top 0px + +.panel-heading, .panel-footer + .page-header + margin 0px 0px 0px 0px + border none + + .container-fluid + position absolute + bottom 10% + +.modal-content.splash, +.modal-content.signup + border-bottom 0px + +.contract-box + padding 30px 15px 15px 15px + +@media only screen and (min-width:$screen-sm) + .v-center + display flex + align-items center + .v-end + display flex + align-items flex-end + + h4 + margin-bottom 0px + + .d-pull-right + float right + .d-pull-right:after + clear right + + .sm-only + display none !important + +@media screen and (max-width: $screen-xs) + .m-fit + width 100% + min-width 100% + + .lg-only + display none + +@media screen and (max-width: $screen-xs) + h1 + text-align center + h1,h2,h3,h4,h5 + &.page-header + text-align center + [class*="col-"].form-box + padding-left 0px !important + padding-right 0px !important + +@media screen and (max-width: $screen-sm) + .lg-only + display none !important + +@media only screen and (max-width:$screen-sm) + // override for less space on H2 sections + .page-header + margin-top 15px !important + + // automatically open the account box when the navbar is collapsed + .disabled + .dropdown-menu + display block !important + position static !important + margin-top 0 !important + position static !important + width 100% !important + border none !important + box-shadow none !important + + a.dropdown-toggle .caret + display none !important + +@media screen and (min-width: $screen-sm) + .modal:before + display inline-block + vertical-align middle + content " " + height 100% + +a#home-link img + border-radius 50% + border-width 2px + max-height 50px + +canvas + position absolute + z-index 1 + pointer-events none + +.dropdown-menu > li > a.btn + padding 6px 12px + +.progress.progress-chroma + height 5px !important + margin-bottom 0px + +.row:not(:last-child) + margin-bottom 15px + +@media screen and (max-width: $screen-sm) + .row:not(:last-child) + margin-bottom 2em + i.fa + padding-bottom 0.3em + +@media screen and (max-width: $screen-sm) + .sm-fit + width 100% + +.no-bottom-margin + margin-bottom 0 !important + +.container + &.no-padding + padding-top 0px + padding-bottom 0px + +.flex-center + display flex + align-items center + justify-content center + +.vcenter + display inline-block + vertical-align middle + float none diff --git a/server/theme/src/dark/stylus/main.styl b/server/theme/src/dark/stylus/main.styl new file mode 100644 index 0000000..82228ce --- /dev/null +++ b/server/theme/src/dark/stylus/main.styl @@ -0,0 +1,10 @@ +@import url(https://fonts.googleapis.com/css?family=Raleway:400,700) + +@require "./layout.styl" +@require "./embellish.styl" +@require "./inverse.styl" +@require "./inputs.styl" +@require "./layout.styl" +@require "./type.styl" + +@require "./shared/main.styl" \ No newline at end of file diff --git a/server/theme/src/dark/stylus/shared b/server/theme/src/dark/stylus/shared new file mode 120000 index 0000000..2787215 --- /dev/null +++ b/server/theme/src/dark/stylus/shared @@ -0,0 +1 @@ +../../shared/stylus \ No newline at end of file diff --git a/server/theme/src/dark/stylus/theme.styl b/server/theme/src/dark/stylus/theme.styl new file mode 100644 index 0000000..25f659e --- /dev/null +++ b/server/theme/src/dark/stylus/theme.styl @@ -0,0 +1,88 @@ +@require "./shared/mixins.styl" + +// official colors, sampled from logo +cf-purple = rgb(127, 63, 162) +cf-magenta = rgb(255, 0, 133) +cf-red = rgb(237, 28, 36) +cf-orange = rgb(251, 176, 64) +cf-yellow = rgb(255, 222, 23) +cf-green = rgb(0, 161, 75) +cf-turquoise = rgb(0, 176, 188) +cf-cyan = rgb(0, 173, 243) +cf-blue = rgb(33, 64, 154) +cf-white = rgb(255, 255, 255) + +cf-warning-gradient = linear-gradient(to right, cf-orange, cf-yellow) +cf-success-gradient = linear-gradient(to right, cf-green, cf-yellow ) +cf-info-gradient = linear-gradient(to right, cf-orange, cf-green) + +cf-dark-teal = rgb(12,8,8) +cf-gray = rgb(12,8,8) + +chroma-bg = cf-gray +chroma-header-bg = cf-dark-teal +chroma-footer-bg = cf-dark-teal +chroma-main-bg = cf-gray +chroma-inverse-bg = rgb(238,238,238) +chroma-inverse-h-color = rgb(46,51,54) +chroma-inverse-p-color = rgb(87,92,99) + +// redefefined bootstrap vars +// you can just define them here and the won't be redined below. +$gray-base = #000 +$gray-darker = lighten($gray-base, 13.5%) // #222 +$gray-dark = lighten($gray-base, 20%) // #333 +$gray = lighten($gray-base, 33.5%) // #555 +$gray-light = lighten($gray-base, 46.7%) // #777 +$gray-lighter = lighten($gray-base, 93.5%) // #eee + +$brand-primary = cf-blue +$brand-success = cf-green +$brand-info = cf-cyan +$brand-warning = cf-yellow +$brand-danger = cf-red + +$body-bg = chroma-main-bg +$link-color = $gray-lighter + +$border-radius-base = 0px +$border-radius-small = 0px +$border-radius-large = 0px + +$dropdown-bg = chroma-footer-bg +$dropdown-link-color = $gray-lighter + +$dropdown-link-hover-color = $gray-lighter +$dropdown-link-hover-bg = transparent + +$input-color = $gray-darker +$input-border = transparent +$input-bg = $white +$input-border-focus = $gray-lighter + +$well-bg = $gray-light + +$navbar-default-bg = chroma-header-bg +$navbar-default-brand-color = $gray-lighter +$navbar-default-link-color = $gray-lighter +$navbar-default-link-hover-color = $gray-lighter +$navbar-default-link-active-color = $gray-lighter + +$headings-small-color = $gray-lighter + +$panel-bg = chroma-main-bg +$panel-body-padding = 0px + +$panel-default-text = $gray-lighter +$panel-primary-text = $gray-lighter +$panel-success-text = $gray-lighter +$panel-info-text = $gray-lighter +$panel-warning-text = $gray-lighter +$panel-danger-text = $gray-lighter + +$panel-default-heading-bg = chroma-main-bg +$panel-primary-heading-bg = chroma-main-bg +$panel-success-heading-bg = chroma-main-bg +$panel-info-heading-bg = chroma-main-bg +$panel-warning-heading-bg = chroma-main-bg +$panel-danger-heading-bg = chroma-main-bg \ No newline at end of file diff --git a/server/theme/src/dark/stylus/type.styl b/server/theme/src/dark/stylus/type.styl new file mode 100644 index 0000000..3b42aed --- /dev/null +++ b/server/theme/src/dark/stylus/type.styl @@ -0,0 +1,147 @@ +@require "./shared/vars.styl" + +@font-face + font-family 'brandon' + src url('../static/Brandon_reg.otf') format("opentype") + +@font-face + font-family 'gotham' + src url('../static/Gotham-Bold.ttf') format("truetype") + +h1, h2, h3, h4, h5, h6 + font-family 'gotham' + text-transform uppercase + letter-spacing 0.2rem + orphans 2 + widows 2 + &.page-header .small + text-transform none + font-family 'Raleway', sans-serif + margin-top 0.5em + +#coins-page, #coin-page + li + word-break break-all + +.no-text-transform + text-transform none !important + +label + font-weight inherit !important + +button, a.btn + text-transform uppercase + +.creator-profile + font-size 1.2rem + text-align left + + h1, h2, h3, h4, h5, h6 + text-align center + +#index-page, #footer + #splash + max-height 66vh + overflow hidden + .btn + text-transform uppercase + +.btn.btn-chroma, .btn.btn-primary, .label-primary, .js-select-file, .js-camera-file + color $gray-lighter + +#finance + p + font-size 110% + font-family 'brandon' + orphans 2 + widows 2 + +#bigTicker + h1 + font-size 4vw + +.page-header:not(.chroma) + border none !important + +.page-header + &.chroma + border-top 0 + border-left 0 + border-right 0 + +.small + font-size 1vmax + +.legal + font-size 12px + text-align justify + + .highlight + color white + +a.cancel-link + text-decoration underline + +.h-stack + h4, h5, h6 + text-align center + &:last-child + padding-bottom 1em + +@media screen and (max-width: $screen-xs) + .xs-center + text-align center + .xs-left + text-align left + .xs-right + text-align right + + +@media screen and (min-width: $screen-xs) and (max-width: $screen-sm) + .sm-center + text-align center + .sm-left + text-align left + .sm-right + text-align right + +@media screen and (min-width: $screen-sm) and (max-width: $screen-md) + .md-center + text-align center + .md-left + text-align left + .md-right + text-align right + +.splash-title + text-align center + +@media screen and (max-width: $screen-sm) + .panel-overlay-chroma + h4 + font-size 10vw + h5 + font-size 8vw + +@media screen and (min-width: $screen-sm) and (max-width: $screen-md) + .panel-overlay-chroma + h4 + font-size 2vw + h5 + font-size 1.5vw + +@media screen and (min-width: $screen-md) + .panel-overlay-chroma + h4 + font-size 3vw + h5 + font-size 2vw + +.order-asset-string + text-transform capitalize + +.font-size-large + font-size $font-size-large + +.font-size-small + font-size $font-size-small diff --git a/server/theme/src/shared/font-awesome.scss b/server/theme/src/shared/font-awesome.scss new file mode 100644 index 0000000..dc08be0 --- /dev/null +++ b/server/theme/src/shared/font-awesome.scss @@ -0,0 +1,802 @@ +$fa-font-path: "../static/font-awesome"; +@import './font-awesome/font-awesome.scss'; + +// .glyphicon { +// @extend .fa; +// &.glyphicon-chevron-up { +// @extend .fa-chevron-up; +// } +// &.glyphicon-chevron-right { +// @extend .fa-chevron-right; +// } +// &.glyphicon-chevron-left { +// @extend .fa-chevron-left; +// } +// &.glyphicon-asterisk { +// @extend .fa-asterisk; +// } +// &.glyphicon-plus { +// @extend .fa-plus; +// } +// &.glyphicon-euro, +// &.glyphicon-eur { +// @extend .fa-eur; +// } +// &.glyphicon-minus { +// @extend .fa-minus; +// } +// &.glyphicon-cloud { +// @extend .fa-cloud; +// } +// &.glyphicon-envelope { +// @extend .fa-envelope; +// } +// &.glyphicon-pencil { +// @extend .fa-pencil; +// } +// &.glyphicon-glass { +// @extend .fa-glass; +// } +// &.glyphicon-music { +// @extend .fa-music; +// } +// &.glyphicon-search { +// @extend .fa-search; +// } +// &.glyphicon-heart { +// @extend .fa-heart; +// } +// &.glyphicon-star { +// @extend .fa-star; +// } +// &.glyphicon-star-empty { +// @extend .fa-star-o; +// } +// &.glyphicon-user { +// @extend .fa-user; +// } +// &.glyphicon-film { +// @extend .fa-film; +// } +// &.glyphicon-th-large { +// @extend .fa-th-large; +// } +// &.glyphicon-th { +// @extend .fa-th; +// } +// &.glyphicon-th-list { +// @extend .fa-th-list; +// } +// &.glyphicon-ok { +// @extend .fa-check; +// } +// &.glyphicon-remove { +// @extend .fa-remove; +// } +// &.glyphicon-zoom-in { +// @extend .fa-search-plus; +// } +// &.glyphicon-zoom-out { +// @extend .fa-search-minus; +// } +// &.glyphicon-off { +// @extend .fa-power-off; +// } +// &.glyphicon-signal { +// @extend .fa-signal; +// } +// &.glyphicon-cog { +// @extend .fa-cog; +// } +// &.glyphicon-trash { +// @extend .fa-trash; +// } +// &.glyphicon-home { +// @extend .fa-home; +// } +// &.glyphicon-file { +// @extend .fa-file; +// } +// &.glyphicon-time { +// @extend .fa-clock-o; +// } +// &.glyphicon-road { +// @extend .fa-road; +// } +// &.glyphicon-download-alt { +// @extend .fa-cloud-download; +// } +// &.glyphicon-download { +// @extend .fa-download; +// } +// &.glyphicon-upload { +// @extend .fa-upload; +// } +// &.glyphicon-inbox { +// @extend .fa-inbox; +// } +// &.glyphicon-play-circle { +// @extend .fa-play-circle; +// } +// &.glyphicon-repeat { +// @extend .fa-repeat; +// } +// &.glyphicon-refresh { +// @extend .fa-refresh; +// } +// &.glyphicon-list-alt { +// @extend .fa-list-alt; +// } +// &.glyphicon-lock { +// @extend .fa-lock; +// } +// &.glyphicon-flag { +// @extend .fa-flag; +// } +// &.glyphicon-headphones { +// @extend .fa-headphones; +// } +// &.glyphicon-volume-off { +// @extend .fa-volume-off; +// } +// &.glyphicon-volume-down { +// @extend .fa-volume-down; +// } +// &.glyphicon-volume-up { +// @extend .fa-volume-up; +// } +// &.glyphicon-qrcode { +// @extend .fa-qrcode; +// } +// &.glyphicon-barcode { +// @extend .fa-barcode; +// } +// &.glyphicon-tag { +// @extend .fa-tag; +// } +// &.glyphicon-tags { +// @extend .fa-tags; +// } +// &.glyphicon-book { +// @extend .fa-book; +// } +// &.glyphicon-bookmark { +// @extend .fa-bookmark; +// } +// &.glyphicon-print { +// @extend .fa-print; +// } +// &.glyphicon-camera { +// @extend .fa-camera; +// } +// &.glyphicon-font { +// @extend .fa-font; +// } +// &.glyphicon-bold { +// @extend .fa-bold; +// } +// &.glyphicon-italic { +// @extend .fa-italic; +// } +// &.glyphicon-text-height { +// @extend .fa-text-height; +// } +// &.glyphicon-text-width { +// @extend .fa-text-width; +// } +// &.glyphicon-align-left { +// @extend .fa-align-left; +// } +// &.glyphicon-align-center { +// @extend .fa-align-center; +// } +// &.glyphicon-align-right { +// @extend .fa-align-right; +// } +// &.glyphicon-align-justify { +// @extend .fa-align-justify; +// } +// &.glyphicon-list { +// @extend .fa-list; +// } +// &.glyphicon-indent-left { +// @extend .fa-indent; +// } +// &.glyphicon-indent-right { +// @extend .fa-outdent; +// } +// &.glyphicon-facetime-video { +// @extend .fa-video-camera; +// } +// &.glyphicon-picture { +// @extend .fa-picture-o; +// } +// &.glyphicon-map-marker { +// @extend .fa-map-marker; +// } +// &.glyphicon-adjust { +// @extend .fa-adjust; +// } +// &.glyphicon-tint { +// @extend .fa-tint; +// } +// &.glyphicon-edit { +// @extend .fa-edit; +// } +// &.glyphicon-share { +// @extend .fa-share; +// } +// &.glyphicon-check { +// @extend .fa-check; +// } +// &.glyphicon-move { +// @extend .fa-arrows; +// } +// &.glyphicon-step-backward { +// @extend .fa-step-backward; +// } +// &.glyphicon-fast-backward { +// @extend .fa-fast-backward; +// } +// &.glyphicon-backward { +// @extend .fa-backward; +// } +// &.glyphicon-play { +// @extend .fa-play; +// } +// &.glyphicon-pause { +// @extend .fa-pause; +// } +// &.glyphicon-stop { +// @extend .fa-stop; +// } +// &.glyphicon-forward { +// @extend .fa-forward; +// } +// &.glyphicon-fast-forward { +// @extend .fa-fast-forward; +// } +// &.glyphicon-step-forward { +// @extend .fa-step-forward; +// } +// &.glyphicon-eject { +// @extend .fa-eject; +// } +// &.glyphicon-chevron-left { +// @extend .fa-chevron-left; +// } +// &.glyphicon-chevron-right { +// @extend .fa-chevron-right; +// } +// &.glyphicon-plus-sign { +// @extend .fa-plus-circle; +// } +// &.glyphicon-minus-sign { +// @extend .fa-minus-circle; +// } +// &.glyphicon-remove-sign { +// @extend .fa-times-circle; +// } +// &.glyphicon-ok-sign { +// @extend .fa-check-circle; +// } +// &.glyphicon-question-sign { +// @extend .fa-question-circle; +// } +// &.glyphicon-info-sign { +// @extend .fa-info-circle; +// } +// &.glyphicon-screenshot { +// @extend .fa-crosshairs; +// } +// &.glyphicon-remove-circle { +// @extend .fa-times-circle; +// } +// &.glyphicon-ok-circle { +// @extend .fa-check-circle; +// } +// &.glyphicon-ban-circle { +// @extend .fa-ban; +// } +// &.glyphicon-arrow-left { +// @extend .fa-arrow-left; +// } +// &.glyphicon-arrow-right { +// @extend .fa-arrow-right; +// } +// &.glyphicon-arrow-up { +// @extend .fa-arrow-up; +// } +// &.glyphicon-arrow-down { +// @extend .fa-arrow-down; +// } +// &.glyphicon-share-alt { +// @extend .fa-share-alt; +// } +// &.glyphicon-resize-full { +// @extend .fa-expand; +// } +// &.glyphicon-resize-small { +// @extend .fa-compress; +// } +// &.glyphicon-exclamation-sign { +// @extend .fa-exclamation-circle; +// } +// &.glyphicon-gift { +// @extend .fa-gift; +// } +// &.glyphicon-leaf { +// @extend .fa-leaf; +// } +// &.glyphicon-fire { +// @extend .fa-fire; +// } +// &.glyphicon-eye-open { +// @extend .fa-eye; +// } +// &.glyphicon-eye-close { +// @extend .fa-eye-slash; +// } +// &.glyphicon-warning-sign { +// @extend .fa-exclamation-triangle; +// } +// &.glyphicon-plane { +// @extend .fa-plane; +// } +// &.glyphicon-calendar { +// @extend .fa-calendar; +// } +// &.glyphicon-random { +// @extend .fa-random; +// } +// &.glyphicon-comment { +// @extend .fa-comment; +// } +// &.glyphicon-magnet { +// @extend .fa-magnet; +// } +// &.glyphicon-chevron-up { +// @extend .fa-chevron-up; +// } +// &.glyphicon-chevron-down { +// @extend .fa-chevron-down; +// } +// &.glyphicon-retweet { +// @extend .fa-retweet; +// } +// &.glyphicon-shopping-cart { +// @extend .fa-shopping-cart; +// } +// &.glyphicon-folder-close { +// @extend .fa-folder; +// } +// &.glyphicon-folder-open { +// @extend .fa-folder-open; +// } +// &.glyphicon-resize-vertical { +// @extend .fa-arrows-v; +// } +// &.glyphicon-resize-horizontal { +// @extend .fa-arrows-h; +// } +// &.glyphicon-hdd { +// @extend .fa-hdd-o; +// } +// &.glyphicon-bullhorn { +// @extend .fa-bullhorn; +// } +// &.glyphicon-bell { +// @extend .fa-bell; +// } +// &.glyphicon-certificate { +// @extend .fa-certificate; +// } +// &.glyphicon-thumbs-up { +// @extend .fa-thumbs-up; +// } +// &.glyphicon-thumbs-down { +// @extend .fa-thumbs-down; +// } +// &.glyphicon-hand-right { +// @extend .fa-hand-o-right; +// } +// &.glyphicon-hand-left { +// @extend .fa-hand-o-left; +// } +// &.glyphicon-hand-up { +// @extend .fa-hand-o-up; +// } +// &.glyphicon-hand-down { +// @extend .fa-hand-o-down; +// } +// &.glyphicon-circle-arrow-right { +// @extend .fa-arrow-circle-right; +// } +// &.glyphicon-circle-arrow-left { +// @extend .fa-arrow-circle-left; +// } +// &.glyphicon-circle-arrow-up { +// @extend .fa-arrow-circle-up; +// } +// &.glyphicon-circle-arrow-down { +// @extend .fa-arrow-circle-down; +// } +// &.glyphicon-globe { +// @extend .fa-globe; +// } +// &.glyphicon-wrench { +// @extend .fa-wrench; +// } +// &.glyphicon-tasks { +// @extend .fa-tasks; +// } +// &.glyphicon-filter { +// @extend .fa-filter; +// } +// &.glyphicon-briefcase { +// @extend .fa-briefcase; +// } +// &.glyphicon-fullscreen { +// @extend .fa-expand; +// } +// &.glyphicon-dashboard { +// @extend .fa-dashboard; +// } +// &.glyphicon-paperclip { +// @extend .fa-paperclip; +// } +// &.glyphicon-heart-empty { +// @extend .fa-heart-o; +// } +// &.glyphicon-link { +// @extend .fa-link; +// } +// &.glyphicon-phone { +// @extend .fa-phone; +// } +// &.glyphicon-pushpin { +// @extend .fa-thumb-tack; +// } +// &.glyphicon-usd { +// @extend .fa-usd; +// } +// &.glyphicon-gbp { +// @extend .fa-gbp; +// } +// &.glyphicon-sort { +// @extend .fa-sort; +// } +// &.glyphicon-sort-by-alphabet { +// @extend .fa-sort-alpha-asc; +// } +// &.glyphicon-sort-by-alphabet-alt { +// @extend .fa-sort-alpha-desc; +// } +// &.glyphicon-sort-by-order { +// @extend .fa-sort-numeric-asc; +// } +// &.glyphicon-sort-by-order-alt { +// @extend .fa-sort-numeric-desc; +// } +// &.glyphicon-sort-by-attributes { +// @extend .fa-sort-amount-asc; +// } +// &.glyphicon-sort-by-attributes-alt { +// @extend .fa-sort-amount-desc; +// } +// &.glyphicon-unchecked { +// @extend .fa-square-o; +// } +// &.glyphicon-expand { +// @extend .fa-caret-square-o-right; +// } +// &.glyphicon-collapse-down { +// @extend .fa-caret-square-o-down; +// } +// &.glyphicon-collapse-up { +// @extend .fa-caret-square-o-up; +// } +// &.glyphicon-log-in { +// @extend .fa-sign-in; +// } +// &.glyphicon-flash { +// @extend .fa-flash; +// } +// &.glyphicon-log-out { +// @extend .fa-sign-out; +// } +// &.glyphicon-new-window { +// @extend .fa-external-link; +// } +// &.glyphicon-record { +// @extend .fa-dot-circle-o; +// } +// &.glyphicon-save { +// @extend .fa-save; +// } +// &.glyphicon-open { +// @extend .fa-upload; +// } +// &.glyphicon-saved { +// @extend .fa-check; +// } +// &.glyphicon-import { +// @extend .fa-upload; +// } +// &.glyphicon-export { +// @extend .fa-download; +// } +// &.glyphicon-send { +// @extend .fa-paper-plane-o; +// } +// &.glyphicon-floppy-disk { +// @extend .fa-save; +// } +// &.glyphicon-floppy-saved { +// @extend .fa-check; +// } +// &.glyphicon-floppy-remove { +// @extend .fa-remove; +// } +// &.glyphicon-floppy-save { +// @extend .fa-download; +// } +// &.glyphicon-floppy-open { +// @extend .fa-upload; +// } +// &.glyphicon-credit-card { +// @extend .fa-credit-card; +// } +// &.glyphicon-transfer { +// @extend .fa-exchange; +// } +// &.glyphicon-cutlery { +// @extend .fa-cutlery; +// } +// &.glyphicon-header { +// @extend .fa-header; +// } +// &.glyphicon-compressed { +// @extend .fa-file-archive-o; +// } +// &.glyphicon-earphone { +// @extend .fa-phone; +// } +// &.glyphicon-phone-alt { +// @extend .fa-phone-square; +// } +// &.glyphicon-tower { +// @extend .fa-building; +// } +// &.glyphicon-stats { +// @extend .fa-bar-chart; +// } +// &.glyphicon-sd-video { +// @extend .fa-film; +// } +// &.glyphicon-hd-video { +// @extend .fa-film; +// } +// &.glyphicon-subtitles { +// @extend .fa-cc; +// } +// &.glyphicon-sound-stereo { +// @extend .fa-music; +// } +// &.glyphicon-sound-dolby { +// @extend .fa-music; +// } +// &.glyphicon-sound-5-1 { +// @extend .fa-music; +// } +// &.glyphicon-sound-6-1 { +// @extend .fa-music; +// } +// &.glyphicon-sound-7-1 { +// @extend .fa-music; +// } +// &.glyphicon-copyright-mark { +// @extend .fa-copyright; +// } +// &.glyphicon-registration-mark { +// @extend .fa-registered; +// } +// &.glyphicon-cloud-download { +// @extend .fa-cloud-download; +// } +// &.glyphicon-cloud-upload { +// @extend .fa-cloud-upload; +// } +// &.glyphicon-tree-conifer { +// @extend .fa-tree; +// } +// &.glyphicon-tree-deciduous { +// @extend .fa-tree; +// } +// &.glyphicon-cd { +// @extend .fa-dot-circle-o; +// } +// &.glyphicon-save-file { +// @extend .fa-save; +// } +// &.glyphicon-open-file { +// @extend .fa-folder-open-o; +// } +// &.glyphicon-level-up { +// @extend .fa-level-up; +// } +// &.glyphicon-copy { +// @extend .fa-copy; +// } +// &.glyphicon-paste { +// @extend .fa-paste; +// } +// &.glyphicon-alert { +// @extend .fa-exclamation-triangle; +// } +// &.glyphicon-equalizer { +// @extend .fa-bar-chart; +// } +// &.glyphicon-king { +// @extend .fa-question; +// } +// &.glyphicon-queen { +// @extend .fa-question; +// } +// &.glyphicon-pawn { +// @extend .fa-question; +// } +// &.glyphicon-bishop { +// @extend .fa-question; +// } +// &.glyphicon-knight { +// @extend .fa-question; +// } +// &.glyphicon-baby-formula { +// @extend .fa-question; +// } +// &.glyphicon-tent { +// @extend .fa-question; +// } +// &.glyphicon-blackboard { +// @extend .fa-question; +// } +// &.glyphicon-bed { +// @extend .fa-bed; +// } +// &.glyphicon-apple { +// @extend .fa-apple; +// } +// &.glyphicon-erase { +// @extend .fa-eraser; +// } +// &.glyphicon-hourglass { +// @extend .fa-hourglass; +// } +// &.glyphicon-lamp { +// @extend .fa-lightbulb-o; +// } +// &.glyphicon-duplicate { +// @extend .fa-files-o; +// } +// &.glyphicon-piggy-bank { +// @extend .fa-money; +// } +// &.glyphicon-scissors { +// @extend .fa-scissors; +// } +// &.glyphicon-bitcoin { +// @extend .fa-bitcoin; +// } +// &.glyphicon-btc { +// @extend .fa-btc; +// } +// &.glyphicon-xbt { +// @extend .fa-btc; +// } +// &.glyphicon-yen { +// @extend .fa-yen; +// } +// &.glyphicon-jpy { +// @extend .fa-jpy; +// } +// &.glyphicon-ruble { +// @extend .fa-ruble; +// } +// &.glyphicon-rub { +// @extend .fa-rub; +// } +// &.glyphicon-scale { +// @extend .fa-balance-scale; +// } +// &.glyphicon-ice-lolly { +// @extend .fa-question; +// } +// &.glyphicon-ice-lolly-tasted { +// @extend .fa-question; +// } +// &.glyphicon-education { +// @extend .fa-graduation-cap; +// } +// &.glyphicon-option-horizontal { +// @extend .fa-ellipsis-h; +// } +// &.glyphicon-option-vertical { +// @extend .fa-ellipsis-v; +// } +// &.glyphicon-menu-hamburger { +// @extend .fa-bars; +// } +// &.glyphicon-modal-window { +// @extend .fa-question; +// } +// &.glyphicon-oil { +// @extend .fa-question; +// } +// &.glyphicon-grain { +// @extend .fa-question; +// } +// &.glyphicon-sunglasses { +// @extend .fa-question; +// } +// &.glyphicon-text-size { +// @extend .fa-font; +// } +// &.glyphicon-text-color { +// @extend .fa-font; +// } +// &.glyphicon-text-background { +// @extend .fa-font; +// } +// &.glyphicon-object-align-top { +// @extend .fa-question; +// } +// &.glyphicon-object-align-bottom { +// @extend .fa-question; +// } +// &.glyphicon-object-align-horizontal { +// @extend .fa-question; +// } +// &.glyphicon-object-align-left { +// @extend .fa-question; +// } +// &.glyphicon-object-align-vertical { +// @extend .fa-question; +// } +// &.glyphicon-object-align-right { +// @extend .fa-question; +// } +// &.glyphicon-triangle-right { +// @extend .fa-caret-right; +// } +// &.glyphicon-triangle-left { +// @extend .fa-caret-left; +// } +// &.glyphicon-triangle-bottom { +// @extend .fa-caret-down; +// } +// &.glyphicon-triangle-top { +// @extend .fa-caret-up; +// } +// &.glyphicon-console { +// @extend .fa-terminal; +// } +// &.glyphicon-superscript { +// @extend .fa-superscript; +// } +// &.glyphicon-subscript { +// @extend .fa-subscript; +// } +// &.glyphicon-menu-left { +// @extend .fa-chevron-left; +// } +// &.glyphicon-menu-right { +// @extend .fa-chevron-right; +// } +// &.glyphicon-menu-down { +// @extend .fa-chevron-down; +// } +// &.glyphicon-menu-up { +// @extend .fa-chevron-up; +// } +// } \ No newline at end of file diff --git a/server/theme/src/shared/font-awesome/_animated.scss b/server/theme/src/shared/font-awesome/_animated.scss new file mode 100644 index 0000000..8a020db --- /dev/null +++ b/server/theme/src/shared/font-awesome/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/server/theme/src/shared/font-awesome/_bordered-pulled.scss b/server/theme/src/shared/font-awesome/_bordered-pulled.scss new file mode 100644 index 0000000..d4b85a0 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/server/theme/src/shared/font-awesome/_core.scss b/server/theme/src/shared/font-awesome/_core.scss new file mode 100644 index 0000000..7425ef8 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/server/theme/src/shared/font-awesome/_fixed-width.scss b/server/theme/src/shared/font-awesome/_fixed-width.scss new file mode 100644 index 0000000..b221c98 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/server/theme/src/shared/font-awesome/_icons.scss b/server/theme/src/shared/font-awesome/_icons.scss new file mode 100644 index 0000000..e63e702 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_icons.scss @@ -0,0 +1,789 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/server/theme/src/shared/font-awesome/_larger.scss b/server/theme/src/shared/font-awesome/_larger.scss new file mode 100644 index 0000000..41e9a81 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/server/theme/src/shared/font-awesome/_list.scss b/server/theme/src/shared/font-awesome/_list.scss new file mode 100644 index 0000000..7d1e4d5 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/server/theme/src/shared/font-awesome/_mixins.scss b/server/theme/src/shared/font-awesome/_mixins.scss new file mode 100644 index 0000000..c3bbd57 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/server/theme/src/shared/font-awesome/_path.scss b/server/theme/src/shared/font-awesome/_path.scss new file mode 100644 index 0000000..bb457c2 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/server/theme/src/shared/font-awesome/_rotated-flipped.scss b/server/theme/src/shared/font-awesome/_rotated-flipped.scss new file mode 100644 index 0000000..a3558fd --- /dev/null +++ b/server/theme/src/shared/font-awesome/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/server/theme/src/shared/font-awesome/_screen-reader.scss b/server/theme/src/shared/font-awesome/_screen-reader.scss new file mode 100644 index 0000000..637426f --- /dev/null +++ b/server/theme/src/shared/font-awesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/server/theme/src/shared/font-awesome/_stacked.scss b/server/theme/src/shared/font-awesome/_stacked.scss new file mode 100644 index 0000000..aef7403 --- /dev/null +++ b/server/theme/src/shared/font-awesome/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/server/theme/src/shared/font-awesome/_variables.scss b/server/theme/src/shared/font-awesome/_variables.scss new file mode 100644 index 0000000..498fc4a --- /dev/null +++ b/server/theme/src/shared/font-awesome/_variables.scss @@ -0,0 +1,800 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.7.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; +$fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; +$fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f2ae"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; +$fa-var-wpforms: "\f298"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/server/theme/src/shared/font-awesome/font-awesome.scss b/server/theme/src/shared/font-awesome/font-awesome.scss new file mode 100644 index 0000000..f1c83aa --- /dev/null +++ b/server/theme/src/shared/font-awesome/font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; +@import "screen-reader"; diff --git a/server/theme/src/shared/main.scss b/server/theme/src/shared/main.scss new file mode 100644 index 0000000..d6a99bb --- /dev/null +++ b/server/theme/src/shared/main.scss @@ -0,0 +1 @@ +@import './font-awesome.scss'; \ No newline at end of file diff --git a/server/theme/src/shared/stylus/bootstrap.styl b/server/theme/src/shared/stylus/bootstrap.styl new file mode 100644 index 0000000..7b5eb19 --- /dev/null +++ b/server/theme/src/shared/stylus/bootstrap.styl @@ -0,0 +1,5971 @@ +// THIS FILE IS GENERATED, DO NOT MODIFY IT! +// It includes the bootstrap modules configured in client/stylus/lib/custom.bootstrap.json. +// You may need to use 'meteor add stylus' if the styles are not loaded. + +// If it throws errors your bootstrap.import.styl is probably invalid. +// To fix that remove that file and then recover your changes. + +@require "./vars.styl" + +$icon-font-path = "../../static/glyphicons/" + +// @import "bootstrap/bootstrap/normalize.styl" +/*!! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +// +// 1. Set default font family to sans-serif. +// 2. Prevent iOS text size adjust after orientation change, without disabling +// user zoom. +// + +html + font-family sans-serif // 1 + -ms-text-size-adjust 100% // 2 + -webkit-text-size-adjust 100% // 2 + +// +// Remove default margin. +// + +body + margin 0 + +// HTML5 display definitions +// ========================================================================== + +// +// Correct `block` display not defined for any HTML5 element in IE 8/9. +// Correct `block` display not defined for `details` or `summary` in IE 10/11 +// and Firefox. +// Correct `block` display not defined for `main` in IE 11. +// + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary + display block + +// +// 1. Correct `inline-block` display not defined in IE 8/9. +// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. +// + +audio, +canvas, +progress, +video + display inline-block // 1 + vertical-align baseline // 2 + +// +// Prevent modern browsers from displaying `audio` without controls. +// Remove excess height in iOS 5 devices. +// + +audio:not([controls]) + display none + height 0 + +// +// Address `[hidden]` styling not present in IE 8/9/10. +// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. +// + +[hidden], +template + display none + +// Links +// ========================================================================== + +// +// Remove the gray background color from active links in IE 10. +// + +a + background-color transparent + +// +// Improve readability when focused and also mouse hovered in all browsers. +// + +a:active, +a:hover + outline 0 + +// Text-level semantics +// ========================================================================== + +// +// Address styling not present in IE 8/9/10/11, Safari, and Chrome. +// + +abbr[title] + border-bottom 1px dotted + +// +// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. +// + +b, +strong + font-weight bold + +// +// Address styling not present in Safari and Chrome. +// + +dfn + font-style italic + +// +// Address variable `h1` font-size and margin within `section` and `article` +// contexts in Firefox 4+, Safari, and Chrome. +// + +h1 + font-size 2em + margin .67em 0 + +// +// Address styling not present in IE 8/9. +// + +mark + background #ff0 + color #000 + +// +// Address inconsistent and variable font size in all browsers. +// + +small + font-size 80% + +// +// Prevent `sub` and `sup` affecting `line-height` in all browsers. +// + +sub, +sup + font-size 75% + line-height 0 + position relative + vertical-align baseline + +sup + top -0.5em + +sub + bottom -0.25em + +// Embedded content +// ========================================================================== + +// +// Remove border when inside `a` element in IE 8/9/10. +// + +img + border 0 + +// +// Correct overflow not hidden in IE 9/10/11. +// + +svg:not(:root) + overflow hidden + +// Grouping content +// ========================================================================== + +// +// Address margin not present in IE 8/9 and Safari. +// + +figure + margin 1em 40px + +// +// Address differences between Firefox and other browsers. +// + +hr + -moz-box-sizing content-box + box-sizing content-box + height 0 + +// +// Contain overflow in all browsers. +// + +pre + overflow auto + +// +// Address odd `em`-unit font size rendering in all browsers. +// + +code, +kbd, +pre, +samp + font-family monospace, monospace + font-size 1em + +// Forms +// ========================================================================== + +// +// Known limitation by default, Chrome and Safari on OS X allow very limited +// styling of `select`, unless a `border` property is set. +// + +// +// 1. Correct color not being inherited. +// Known issue affects color of disabled elements. +// 2. Correct font properties not being inherited. +// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. +// + +button, +input, +optgroup, +select, +textarea + color inherit // 1 + font inherit // 2 + margin 0 // 3 + +// +// Address `overflow` set to `hidden` in IE 8/9/10/11. +// + +button + overflow visible + +// +// Address inconsistent `text-transform` inheritance for `button` and `select`. +// All other form control elements do not inherit `text-transform` values. +// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. +// Correct `select` style inheritance in Firefox. +// + +button, +select + text-transform none + +// +// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` +// and `video` controls. +// 2. Correct inability to style clickable `input` types in iOS. +// 3. Improve usability and consistency of cursor style between image-type +// `input` and others. +// + +button, +html input[type="button"], // 1 +input[type="reset"], +input[type="submit"] + -webkit-appearance button // 2 + cursor pointer // 3 + +// +// Re-set default cursor for disabled elements. +// + +button[disabled], +html input[disabled] + cursor default + +// +// Remove inner padding and border in Firefox 4+. +// + +button::-moz-focus-inner, +input::-moz-focus-inner + border 0 + padding 0 + +// +// Address Firefox 4+ setting `line-height` on `input` using `!important` in +// the UA stylesheet. +// + +input + line-height normal + +// +// It's recommended that you don't attempt to style these elements. +// Firefox's implementation doesn't respect box-sizing, padding, or width. +// +// 1. Address box sizing set to `content-box` in IE 8/9/10. +// 2. Remove excess padding in IE 8/9/10. +// + +input[type="checkbox"], +input[type="radio"] + box-sizing border-box // 1 + padding 0 // 2 + +// +// Fix the cursor style for Chrome's increment/decrement buttons. For certain +// `font-size` values of the `input`, it causes the cursor style of the +// decrement button to change from `default` to `text`. +// + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button + height auto + +// +// 1. Address `appearance` set to `searchfield` in Safari and Chrome. +// 2. Address `box-sizing` set to `border-box` in Safari and Chrome +// (include `-moz` to future-proof). +// + +input[type="search"] + -webkit-appearance textfield // 1 + -moz-box-sizing content-box + -webkit-box-sizing content-box // 2 + box-sizing content-box + +// +// Remove inner padding and search cancel button in Safari and Chrome on OS X. +// Safari (but not Chrome) clips the cancel button when the search input has +// padding (and `textfield` appearance). +// + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration + -webkit-appearance none + +// +// Define consistent border, margin, and padding. +// + +fieldset + border 1px solid #c0c0c0 + margin 0 2px + padding .35em .625em .75em + +// +// 1. Correct `color` not being inherited in IE 8/9/10/11. +// 2. Remove padding so people aren't caught out if they zero out fieldsets. +// + +legend + border 0 // 1 + padding 0 // 2 + +// +// Remove default vertical scrollbar in IE 8/9/10/11. +// + +textarea + overflow auto + +// +// Don't inherit the `font-weight` (applied by a rule above). +// NOTE the default cannot safely be changed in Chrome and Safari on OS X. +// + +optgroup + font-weight bold + +// Tables +// ========================================================================== + +// +// Remove most spacing between table cells. +// + +table + border-collapse collapse + border-spacing 0 + +td, +th + padding 0 + + + +// @import "bootstrap/bootstrap/print.styl" +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ + +// ========================================================================== +// Print styles. +// Inlined to avoid the additional HTTP request: h5bp.com/r +// ========================================================================== + +@media print + *, + *:before, + *:after + background transparent !important + color #000 !important // Black prints faster h5bp.com/s + box-shadow none !important + text-shadow none !important + + a, + a:visited + text-decoration underline + + a[href]:after + content " (" attr(href) ")" + + abbr[title]:after + content " (" attr(title) ")" + + // Don't show links that are fragment identifiers, + // or use the `javascript:` pseudo protocol + a[href^="#"]:after, + a[href^="javascript:"]:after + content "" + + pre, + blockquote + border 1px solid #999 + page-break-inside avoid + + thead + display table-header-group // h5bp.com/t + + tr, + img + page-break-inside avoid + + img + max-width 100% !important + + p, + h2, + h3 + orphans 3 + widows 3 + + h2, + h3 + page-break-after avoid + + // Bootstrap specific changes start + // + // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 + // Once fixed, we can just straight up remove this. + select + background #fff !important + + // Bootstrap components + .navbar + display none + + .btn, + .dropup > .btn + > .caret + border-top-color #000 !important + + .label + border 1px solid #000 + + .table + border-collapse collapse !important + + td, + th + background-color #fff !important + + .table-bordered + th, + td + border 1px solid #ddd !important + + // Bootstrap specific changes end + + + +// @import "bootstrap/bootstrap/glyphicons.styl" +// +// Glyphicons for Bootstrap +// +// Since icons are fonts, they can be placed anywhere text is placed and are +// thus automatically sized to match the surrounding child. To use, create an +// inline element with the appropriate classes, like so: +// +// Star + +// Import the fonts +@font-face + font-family 'Glyphicons Halflings' + src url($icon-font-path + $icon-font-name + '.eot') + src url($icon-font-path + $icon-font-name + '.eot?#iefix') format('embedded-opentype'), url($icon-font-path + $icon-font-name + '.woff2') format('woff2'), url($icon-font-path + $icon-font-name + '.woff') format('woff'), url($icon-font-path + $icon-font-name + '.ttf') format('truetype'), url($icon-font-path + $icon-font-name + '.svg#' + $icon-font-svg-id) format('svg') + +// Catchall baseclass +.glyphicon + position relative + top 1px + display inline-block + font-family 'Glyphicons Halflings' + font-style normal + font-weight normal + line-height 1 + -webkit-font-smoothing antialiased + -moz-osx-font-smoothing grayscale + +// Individual icons +.glyphicon-asterisk + &:before + content "\2a" +.glyphicon-plus + &:before + content "\2b" +.glyphicon-euro, +.glyphicon-eur + &:before + content "\20ac" +.glyphicon-minus + &:before + content "\2212" +.glyphicon-cloud + &:before + content "\2601" +.glyphicon-envelope + &:before + content "\2709" +.glyphicon-pencil + &:before + content "\270f" +.glyphicon-glass + &:before + content "\e001" +.glyphicon-music + &:before + content "\e002" +.glyphicon-search + &:before + content "\e003" +.glyphicon-heart + &:before + content "\e005" +.glyphicon-star + &:before + content "\e006" +.glyphicon-star-empty + &:before + content "\e007" +.glyphicon-user + &:before + content "\e008" +.glyphicon-film + &:before + content "\e009" +.glyphicon-th-large + &:before + content "\e010" +.glyphicon-th + &:before + content "\e011" +.glyphicon-th-list + &:before + content "\e012" +.glyphicon-ok + &:before + content "\e013" +.glyphicon-remove + &:before + content "\e014" +.glyphicon-zoom-in + &:before + content "\e015" +.glyphicon-zoom-out + &:before + content "\e016" +.glyphicon-off + &:before + content "\e017" +.glyphicon-signal + &:before + content "\e018" +.glyphicon-cog + &:before + content "\e019" +.glyphicon-trash + &:before + content "\e020" +.glyphicon-home + &:before + content "\e021" +.glyphicon-file + &:before + content "\e022" +.glyphicon-time + &:before + content "\e023" +.glyphicon-road + &:before + content "\e024" +.glyphicon-download-alt + &:before + content "\e025" +.glyphicon-download + &:before + content "\e026" +.glyphicon-upload + &:before + content "\e027" +.glyphicon-inbox + &:before + content "\e028" +.glyphicon-play-circle + &:before + content "\e029" +.glyphicon-repeat + &:before + content "\e030" +.glyphicon-refresh + &:before + content "\e031" +.glyphicon-list-alt + &:before + content "\e032" +.glyphicon-lock + &:before + content "\e033" +.glyphicon-flag + &:before + content "\e034" +.glyphicon-headphones + &:before + content "\e035" +.glyphicon-volume-off + &:before + content "\e036" +.glyphicon-volume-down + &:before + content "\e037" +.glyphicon-volume-up + &:before + content "\e038" +.glyphicon-qrcode + &:before + content "\e039" +.glyphicon-barcode + &:before + content "\e040" +.glyphicon-tag + &:before + content "\e041" +.glyphicon-tags + &:before + content "\e042" +.glyphicon-book + &:before + content "\e043" +.glyphicon-bookmark + &:before + content "\e044" +.glyphicon-print + &:before + content "\e045" +.glyphicon-camera + &:before + content "\e046" +.glyphicon-font + &:before + content "\e047" +.glyphicon-bold + &:before + content "\e048" +.glyphicon-italic + &:before + content "\e049" +.glyphicon-text-height + &:before + content "\e050" +.glyphicon-text-width + &:before + content "\e051" +.glyphicon-align-left + &:before + content "\e052" +.glyphicon-align-center + &:before + content "\e053" +.glyphicon-align-right + &:before + content "\e054" +.glyphicon-align-justify + &:before + content "\e055" +.glyphicon-list + &:before + content "\e056" +.glyphicon-indent-left + &:before + content "\e057" +.glyphicon-indent-right + &:before + content "\e058" +.glyphicon-facetime-video + &:before + content "\e059" +.glyphicon-picture + &:before + content "\e060" +.glyphicon-map-marker + &:before + content "\e062" +.glyphicon-adjust + &:before + content "\e063" +.glyphicon-tint + &:before + content "\e064" +.glyphicon-edit + &:before + content "\e065" +.glyphicon-share + &:before + content "\e066" +.glyphicon-check + &:before + content "\e067" +.glyphicon-move + &:before + content "\e068" +.glyphicon-step-backward + &:before + content "\e069" +.glyphicon-fast-backward + &:before + content "\e070" +.glyphicon-backward + &:before + content "\e071" +.glyphicon-play + &:before + content "\e072" +.glyphicon-pause + &:before + content "\e073" +.glyphicon-stop + &:before + content "\e074" +.glyphicon-forward + &:before + content "\e075" +.glyphicon-fast-forward + &:before + content "\e076" +.glyphicon-step-forward + &:before + content "\e077" +.glyphicon-eject + &:before + content "\e078" +.glyphicon-chevron-left + &:before + content "\e079" +.glyphicon-chevron-right + &:before + content "\e080" +.glyphicon-plus-sign + &:before + content "\e081" +.glyphicon-minus-sign + &:before + content "\e082" +.glyphicon-remove-sign + &:before + content "\e083" +.glyphicon-ok-sign + &:before + content "\e084" +.glyphicon-question-sign + &:before + content "\e085" +.glyphicon-info-sign + &:before + content "\e086" +.glyphicon-screenshot + &:before + content "\e087" +.glyphicon-remove-circle + &:before + content "\e088" +.glyphicon-ok-circle + &:before + content "\e089" +.glyphicon-ban-circle + &:before + content "\e090" +.glyphicon-arrow-left + &:before + content "\e091" +.glyphicon-arrow-right + &:before + content "\e092" +.glyphicon-arrow-up + &:before + content "\e093" +.glyphicon-arrow-down + &:before + content "\e094" +.glyphicon-share-alt + &:before + content "\e095" +.glyphicon-resize-full + &:before + content "\e096" +.glyphicon-resize-small + &:before + content "\e097" +.glyphicon-exclamation-sign + &:before + content "\e101" +.glyphicon-gift + &:before + content "\e102" +.glyphicon-leaf + &:before + content "\e103" +.glyphicon-fire + &:before + content "\e104" +.glyphicon-eye-open + &:before + content "\e105" +.glyphicon-eye-close + &:before + content "\e106" +.glyphicon-warning-sign + &:before + content "\e107" +.glyphicon-plane + &:before + content "\e108" +.glyphicon-calendar + &:before + content "\e109" +.glyphicon-random + &:before + content "\e110" +.glyphicon-comment + &:before + content "\e111" +.glyphicon-magnet + &:before + content "\e112" +.glyphicon-chevron-up + &:before + content "\e113" +.glyphicon-chevron-down + &:before + content "\e114" +.glyphicon-retweet + &:before + content "\e115" +.glyphicon-shopping-cart + &:before + content "\e116" +.glyphicon-folder-close + &:before + content "\e117" +.glyphicon-folder-open + &:before + content "\e118" +.glyphicon-resize-vertical + &:before + content "\e119" +.glyphicon-resize-horizontal + &:before + content "\e120" +.glyphicon-hdd + &:before + content "\e121" +.glyphicon-bullhorn + &:before + content "\e122" +.glyphicon-bell + &:before + content "\e123" +.glyphicon-certificate + &:before + content "\e124" +.glyphicon-thumbs-up + &:before + content "\e125" +.glyphicon-thumbs-down + &:before + content "\e126" +.glyphicon-hand-right + &:before + content "\e127" +.glyphicon-hand-left + &:before + content "\e128" +.glyphicon-hand-up + &:before + content "\e129" +.glyphicon-hand-down + &:before + content "\e130" +.glyphicon-circle-arrow-right + &:before + content "\e131" +.glyphicon-circle-arrow-left + &:before + content "\e132" +.glyphicon-circle-arrow-up + &:before + content "\e133" +.glyphicon-circle-arrow-down + &:before + content "\e134" +.glyphicon-globe + &:before + content "\e135" +.glyphicon-wrench + &:before + content "\e136" +.glyphicon-tasks + &:before + content "\e137" +.glyphicon-filter + &:before + content "\e138" +.glyphicon-briefcase + &:before + content "\e139" +.glyphicon-fullscreen + &:before + content "\e140" +.glyphicon-dashboard + &:before + content "\e141" +.glyphicon-paperclip + &:before + content "\e142" +.glyphicon-heart-empty + &:before + content "\e143" +.glyphicon-link + &:before + content "\e144" +.glyphicon-phone + &:before + content "\e145" +.glyphicon-pushpin + &:before + content "\e146" +.glyphicon-usd + &:before + content "\e148" +.glyphicon-gbp + &:before + content "\e149" +.glyphicon-sort + &:before + content "\e150" +.glyphicon-sort-by-alphabet + &:before + content "\e151" +.glyphicon-sort-by-alphabet-alt + &:before + content "\e152" +.glyphicon-sort-by-order + &:before + content "\e153" +.glyphicon-sort-by-order-alt + &:before + content "\e154" +.glyphicon-sort-by-attributes + &:before + content "\e155" +.glyphicon-sort-by-attributes-alt + &:before + content "\e156" +.glyphicon-unchecked + &:before + content "\e157" +.glyphicon-expand + &:before + content "\e158" +.glyphicon-collapse-down + &:before + content "\e159" +.glyphicon-collapse-up + &:before + content "\e160" +.glyphicon-log-in + &:before + content "\e161" +.glyphicon-flash + &:before + content "\e162" +.glyphicon-log-out + &:before + content "\e163" +.glyphicon-new-window + &:before + content "\e164" +.glyphicon-record + &:before + content "\e165" +.glyphicon-save + &:before + content "\e166" +.glyphicon-open + &:before + content "\e167" +.glyphicon-saved + &:before + content "\e168" +.glyphicon-import + &:before + content "\e169" +.glyphicon-export + &:before + content "\e170" +.glyphicon-send + &:before + content "\e171" +.glyphicon-floppy-disk + &:before + content "\e172" +.glyphicon-floppy-saved + &:before + content "\e173" +.glyphicon-floppy-remove + &:before + content "\e174" +.glyphicon-floppy-save + &:before + content "\e175" +.glyphicon-floppy-open + &:before + content "\e176" +.glyphicon-credit-card + &:before + content "\e177" +.glyphicon-transfer + &:before + content "\e178" +.glyphicon-cutlery + &:before + content "\e179" +.glyphicon-header + &:before + content "\e180" +.glyphicon-compressed + &:before + content "\e181" +.glyphicon-earphone + &:before + content "\e182" +.glyphicon-phone-alt + &:before + content "\e183" +.glyphicon-tower + &:before + content "\e184" +.glyphicon-stats + &:before + content "\e185" +.glyphicon-sd-video + &:before + content "\e186" +.glyphicon-hd-video + &:before + content "\e187" +.glyphicon-subtitles + &:before + content "\e188" +.glyphicon-sound-stereo + &:before + content "\e189" +.glyphicon-sound-dolby + &:before + content "\e190" +.glyphicon-sound-5-1 + &:before + content "\e191" +.glyphicon-sound-6-1 + &:before + content "\e192" +.glyphicon-sound-7-1 + &:before + content "\e193" +.glyphicon-copyright-mark + &:before + content "\e194" +.glyphicon-registration-mark + &:before + content "\e195" +.glyphicon-cloud-download + &:before + content "\e197" +.glyphicon-cloud-upload + &:before + content "\e198" +.glyphicon-tree-conifer + &:before + content "\e199" +.glyphicon-tree-deciduous + &:before + content "\e200" +.glyphicon-cd + &:before + content "\e201" +.glyphicon-save-file + &:before + content "\e202" +.glyphicon-open-file + &:before + content "\e203" +.glyphicon-level-up + &:before + content "\e204" +.glyphicon-copy + &:before + content "\e205" +.glyphicon-paste + &:before + content "\e206" +// The following 2 Glyphicons are omitted for the time being because +// they currently use Unicode codepoints that are outside the +// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle +// non-BMP codepoints in CSS string escapes, and thus can't display these two icons. +// Notably, the bug affects some older versions of the Android Browser. +// More info: https://github.com/twbs/bootstrap/issues/10106 +// .glyphicon-door +// &:before +// content "\1f6aa" +// .glyphicon-key +// &:before +// content "\1f511" +.glyphicon-alert + &:before + content "\e209" +.glyphicon-equalizer + &:before + content "\e210" +.glyphicon-king + &:before + content "\e211" +.glyphicon-queen + &:before + content "\e212" +.glyphicon-pawn + &:before + content "\e213" +.glyphicon-bishop + &:before + content "\e214" +.glyphicon-knight + &:before + content "\e215" +.glyphicon-baby-formula + &:before + content "\e216" +.glyphicon-tent + &:before + content "\26fa" +.glyphicon-blackboard + &:before + content "\e218" +.glyphicon-bed + &:before + content "\e219" +.glyphicon-apple + &:before + content "\f8ff" +.glyphicon-erase + &:before + content "\e221" +.glyphicon-hourglass + &:before + content "\231b" +.glyphicon-lamp + &:before + content "\e223" +.glyphicon-duplicate + &:before + content "\e224" +.glyphicon-piggy-bank + &:before + content "\e225" +.glyphicon-scissors + &:before + content "\e226" +.glyphicon-bitcoin + &:before + content "\e227" +.glyphicon-btc + &:before + content "\e227" +.glyphicon-xbt + &:before + content "\e227" +.glyphicon-yen + &:before + content "\00a5" +.glyphicon-jpy + &:before + content "\00a5" +.glyphicon-ruble + &:before + content "\20bd" +.glyphicon-rub + &:before + content "\20bd" +.glyphicon-scale + &:before + content "\e230" +.glyphicon-ice-lolly + &:before + content "\e231" +.glyphicon-ice-lolly-tasted + &:before + content "\e232" +.glyphicon-education + &:before + content "\e233" +.glyphicon-option-horizontal + &:before + content "\e234" +.glyphicon-option-vertical + &:before + content "\e235" +.glyphicon-menu-hamburger + &:before + content "\e236" +.glyphicon-modal-window + &:before + content "\e237" +.glyphicon-oil + &:before + content "\e238" +.glyphicon-grain + &:before + content "\e239" +.glyphicon-sunglasses + &:before + content "\e240" +.glyphicon-text-size + &:before + content "\e241" +.glyphicon-text-color + &:before + content "\e242" +.glyphicon-text-background + &:before + content "\e243" +.glyphicon-object-align-top + &:before + content "\e244" +.glyphicon-object-align-bottom + &:before + content "\e245" +.glyphicon-object-align-horizontal + &:before + content "\e246" +.glyphicon-object-align-left + &:before + content "\e247" +.glyphicon-object-align-vertical + &:before + content "\e248" +.glyphicon-object-align-right + &:before + content "\e249" +.glyphicon-triangle-right + &:before + content "\e250" +.glyphicon-triangle-left + &:before + content "\e251" +.glyphicon-triangle-bottom + &:before + content "\e252" +.glyphicon-triangle-top + &:before + content "\e253" +.glyphicon-console + &:before + content "\e254" +.glyphicon-superscript + &:before + content "\e255" +.glyphicon-subscript + &:before + content "\e256" +.glyphicon-menu-left + &:before + content "\e257" +.glyphicon-menu-right + &:before + content "\e258" +.glyphicon-menu-down + &:before + content "\e259" +.glyphicon-menu-up + &:before + content "\e260" + + + +// @import "bootstrap/bootstrap/scaffolding.styl" +// +// Scaffolding +// -------------------------------------------------- + + +// Reset the box-sizing +// +// Heads up! This reset may cause conflicts with some third-party widgets. +// For recommendations on resolving such conflicts, see +// http://getbootstrap.com/getting-started/#third-box-sizing +* + box-sizing border-box +*:before, +*:after + box-sizing border-box + + +// Body reset + +html + font-size 10px + -webkit-tap-highlight-color rgba(0, 0, 0, 0) + +body + font-family $font-family-base + font-size $font-size-base + line-height $line-height-base + color $text-color + background-color $body-bg + +// Reset fonts for relevant elements +input, +button, +select, +textarea + font-family inherit + font-size inherit + line-height inherit + + +// Links + +a + color $link-color + text-decoration none + + &:hover, + &:focus + color $link-hover-color + text-decoration $link-hover-decoration + + &:focus + tab-focus() + + +// Figures +// +// We reset this here because previously Normalize had no `figure` margins. This +// ensures we don't break anyone's use of the element. + +figure + margin 0 + + +// Images + +img + vertical-align middle + +// Responsive images (ensure images don't scale beyond their parents) +.img-responsive + img-responsive() + +// Rounded corners +.img-rounded + border-radius $border-radius-large + +// Image thumbnails +// +// Heads up! This is mixin-ed into thumbnails for `.thumbnail`. +.img-thumbnail + padding $thumbnail-padding + line-height $line-height-base + background-color $thumbnail-bg + border 1px solid $thumbnail-border + border-radius $thumbnail-border-radius + transition all .2s ease-in-out + + // Keep them at most 100% wide + img-responsive(inline-block) + +// Perfect circle +.img-circle + border-radius 50% // set radius in percents + + +// Horizontal rules + +hr + margin-top $line-height-computed + margin-bottom $line-height-computed + border 0 + border-top 1px solid $hr-border + + +// Only display content to screen readers +// +// See http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only + position absolute + width 1px + height 1px + margin -1px + padding 0 + overflow hidden + clip rect(0, 0, 0, 0) + border 0 + +// Use in conjunction with .sr-only to only display content when it's focused. +// Useful for "Skip to main content" links see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// Credit HTML5 Boilerplate + +.sr-only-focusable + &:active, + &:focus + position static + width auto + height auto + margin 0 + overflow visible + clip auto + + +// iOS "clickable elements" fix for role="button" +// +// Fixes "clickability" issue (and more generally, the firing of events such as focus as well) +// for traditionally non-focusable elements with role="button" +// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile +// Upstream patch for normalize.css submitted: https://github.com/necolas/normalize.css/pull/379 - remove this fix once that is merged + +[role="button"] + cursor pointer + + + +// @import "bootstrap/bootstrap/type.styl" +// +// Typography +// -------------------------------------------------- + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 + font-family $headings-font-family + font-weight $headings-font-weight + line-height $headings-line-height + color $headings-color + + small, + .small + font-weight normal + line-height 1 + color $headings-small-color + +h1, .h1, +h2, .h2, +h3, .h3 + margin-top $line-height-computed + margin-bottom ($line-height-computed / 2) + + small, + .small + font-size 65% + +h4, .h4, +h5, .h5, +h6, .h6 + margin-top ($line-height-computed / 2) + margin-bottom ($line-height-computed / 2) + + small, + .small + font-size 75% + +h1, .h1 + font-size $font-size-h1 + +h2, .h2 + font-size $font-size-h2 + +h3, .h3 + font-size $font-size-h3 + +h4, .h4 + font-size $font-size-h4 + +h5, .h5 + font-size $font-size-h5 + +h6, .h6 + font-size $font-size-h6 + + +// Body text +// ------------------------- + +p + margin 0 0 ($line-height-computed / 2) + +.lead + margin-bottom $line-height-computed + font-size floor(($font-size-base * 1.15)) + font-weight 300 + line-height 1.4 + + @media (min-width $screen-sm-min) + font-size ($font-size-base * 1.5) + + +// Emphasis & misc +// ------------------------- + +// Ex: (12px small font / 14px base font) * 100% = about 85% +small, +.small + font-size floor((100% * $font-size-small / $font-size-base)) + +mark, +.mark + background-color $state-warning-bg + padding .2em + +// Alignment +.text-left + text-align left + +.text-right + text-align right + +.text-center + text-align center + +.text-justify + text-align justify + +.text-nowrap + white-space nowrap + +// Transformation +.text-lowercase + text-transform lowercase + +.text-uppercase + text-transform uppercase + +.text-capitalize + text-transform capitalize + +// Contextual colors +.text-muted + color $text-muted + +.text-primary + text-emphasis-variant($brand-primary) + +.text-success + text-emphasis-variant($state-success-text) + +.text-info + text-emphasis-variant($state-info-text) + +.text-warning + text-emphasis-variant($state-warning-text) + +.text-danger + text-emphasis-variant($state-danger-text) + +// Contextual backgrounds +// For now we'll leave these alongside the text classes until v4 when we can +// safely shift things around (per SemVer rules). +.bg-primary + // Given the contrast here, this is the only class to have its color inverted + // automatically. + color #fff + bg-variant($brand-primary) + +.bg-success + bg-variant($state-success-bg) + +.bg-info + bg-variant($state-info-bg) + +.bg-warning + bg-variant($state-warning-bg) + +.bg-danger + bg-variant($state-danger-bg) + + +// Page header +// ------------------------- + +.page-header + padding-bottom (($line-height-computed / 2) - 1) + margin ($line-height-computed * 2) 0 $line-height-computed + // border-width 0px 0px 1px 0px + // border-style solid + // border-color $page-header-border-color + +// Lists +// ------------------------- + +// Unordered and Ordered lists +ul, +ol + margin-top 0 + margin-bottom ($line-height-computed / 2) + ul, + ol + margin-bottom 0 + +// List options + +// Unstyled keeps list items block level, just removes default browser padding and list-style +.list-inline, +.list-unstyled + padding-left 0 + list-style none + +// Inline turns list items into inline-block +.list-inline + margin-left -5px + + > li + display inline-block + padding-left 5px + padding-right 5px + +// Description Lists +dl + margin-top 0 // Remove browser default + margin-bottom $line-height-computed + +dt, +dd + line-height $line-height-base + +dt + font-weight bold + +dd + margin-left 0 // Undo browser default + +// Horizontal description lists +// +// Defaults to being stacked without any of the below styles applied, until the +// grid breakpoint is reached (default of ~768px). + +.dl-horizontal + dd + @extend .clearfix // Clear the floated `dt` if an empty `dd` is present + + @media (min-width $grid-float-breakpoint) + dt + float left + width ($dl-horizontal-offset - 20) + clear left + text-align right + text-overflow() + + dd + margin-left $dl-horizontal-offset + + +// Misc +// ------------------------- + +// Abbreviations and acronyms +abbr[title], + +// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 +abbr[data-original-title] + cursor help + border-bottom 1px dotted $abbr-border-color + +.initialism + font-size 90% + text-transform uppercase + +// Blockquotes +blockquote + padding ($line-height-computed / 2) $line-height-computed + margin 0 0 $line-height-computed + font-size $blockquote-font-size + border-left 5px solid $blockquote-border-color + + p, + ul, + ol + &:last-child + margin-bottom 0 + + // Note Deprecated small and .small as of v3.1.0 + // Context https://github.com/twbs/bootstrap/issues/11660 + footer, + small, + .small + display block + font-size 80% // back to default font-size + line-height $line-height-base + color $blockquote-small-color + + &:before + content '\2014 \00A0' // em dash, nbsp + +// Opposite alignment of blockquote +// +// Heads up `blockquote.pull-right` has been deprecated as of v3.1.0. +.blockquote-reverse, +blockquote.pull-right + padding-right 15px + padding-left 0 + border-right 5px solid $blockquote-border-color + border-left 0 + text-align right + + // Account for citation + footer, + small, + .small + &:before + content '' + &:after + content '\00A0 \2014' // nbsp, em dash + +// Addresses +address + margin-bottom $line-height-computed + font-style normal + line-height $line-height-base + + + +// @import "bootstrap/bootstrap/code.styl" +// +// Code (inline and block) +// -------------------------------------------------- + + +// Inline and block code styles +code, +kbd, +pre, +samp + font-family $font-family-monospace + +// Inline code +code + padding 2px 4px + font-size 90% + color $code-color + background-color $code-bg + border-radius $border-radius-base + +// User input typically entered via keyboard +kbd + padding 2px 4px + font-size 90% + color $kbd-color + background-color $kbd-bg + border-radius $border-radius-small + box-shadow inset 0 -1px 0 rgba(0, 0, 0, .25) + + kbd + padding 0 + font-size 100% + font-weight bold + box-shadow none + +// Blocks of code +pre + display block + padding (($line-height-computed - 1) / 2) + margin 0 0 ($line-height-computed / 2) + font-size ($font-size-base - 1) // 14px to 13px + line-height $line-height-base + word-break break-all + word-wrap break-word + color $pre-color + background-color $pre-bg + border 1px solid $pre-border-color + border-radius $border-radius-base + + // Account for some code outputs that place code tags in pre tags + code + padding 0 + font-size inherit + color inherit + white-space pre-wrap + background-color transparent + border-radius 0 + +// Enable scrollable blocks of code +.pre-scrollable + max-height $pre-scrollable-max-height + overflow-y scroll + + + +// @import "bootstrap/bootstrap/grid.styl" +// +// Grid system +// -------------------------------------------------- + + +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +.container + container-fixed() + + @media (min-width $screen-sm-min) + width $container-sm + @media (min-width $screen-md-min) + width $container-md + @media (min-width $screen-lg-min) + width $container-lg + + +// Fluid container +// +// Utilizes the mixin meant for fixed width containers, but without any defined +// width for fluid, full width layouts. + +.container-fluid + container-fixed() + + +// Row +// +// Rows contain and clear the floats of your columns. + +.row + make-row() + + +// Columns +// +// Common styles for small and large grid columns + +make-grid-columns() + + +// Extra small grid +// +// Columns, offsets, pushes, and pulls for extra small devices like +// smartphones. + +make-grid(xs) + + +// Small grid +// +// Columns, offsets, pushes, and pulls for the small device range, from phones +// to tablets. + +@media (min-width $screen-sm-min) + make-grid(sm) + + +// Medium grid +// +// Columns, offsets, pushes, and pulls for the desktop device range. + +@media (min-width $screen-md-min) + make-grid(md) + + +// Large grid +// +// Columns, offsets, pushes, and pulls for the large desktop device range. + +@media (min-width $screen-lg-min) + make-grid(lg) + + + +// @import "bootstrap/bootstrap/tables.styl" +// +// Tables +// -------------------------------------------------- + + +table + background-color $table-bg + +caption + padding-top $table-cell-padding + padding-bottom $table-cell-padding + color $text-muted + text-align left + +th + text-align left + + +// Baseline styles + +.table + width 100% + max-width 100% + margin-bottom $line-height-computed + + // Cells + > thead, + > tbody, + > tfoot + > tr + > th, + > td + padding $table-cell-padding + line-height $line-height-base + vertical-align top + border-top 1px solid $table-border-color + + // Bottom align for column headings + > thead > tr > th + vertical-align bottom + border-bottom 2px solid $table-border-color + + // Remove top border from thead by default + > caption + thead, + > colgroup + thead, + > thead:first-child + > tr:first-child + > th, + > td + border-top 0 + + // Account for multiple tbody instances + > tbody + tbody + border-top 2px solid $table-border-color + + // Nesting + .table + background-color $body-bg + + +// Condensed table w/ half padding + +.table-condensed + > thead, + > tbody, + > tfoot + > tr + > th, + > td + padding $table-condensed-cell-padding + + +// Bordered version +// +// Add borders all around the table and between all the columns. + +.table-bordered + border 1px solid $table-border-color + > thead, + > tbody, + > tfoot + > tr + > th, + > td + border 1px solid $table-border-color + + > thead > tr + > th, + > td + border-bottom-width 2px + + +// Zebra-striping +// +// Default zebra-stripe styles (alternating gray and transparent backgrounds) + +.table-striped + > tbody > tr:nth-of-type(odd) + background-color $table-bg-accent + + +// Hover effect +// +// Placed here since it has to come after the potential zebra striping + +.table-hover + > tbody > tr:hover + background-color $table-bg-hover + + +// Table cell sizing +// +// Reset default table behavior + +table col[class*="col-"] + position static // Prevent border hiding in Firefox and IE11 (see https://github.com/twbs/bootstrap/issues/11623) + float none + display table-column + +table + td, + th + &[class*="col-"] + position static // Prevent border hiding in Firefox and IE11 (see https://github.com/twbs/bootstrap/issues/11623) + float none + display table-cell + + +// Table backgrounds +// +// Exact selectors below required to override `.table-striped` and prevent +// inheritance to nested tables. + +// Generate the contextual variants +table-row-variant(active, $table-bg-active) +table-row-variant(success, $state-success-bg) +table-row-variant(info, $state-info-bg) +table-row-variant(warning, $state-warning-bg) +table-row-variant(danger, $state-danger-bg) + + +// Responsive tables +// +// Wrap your tables in `.table-responsive` and we'll make them mobile friendly +// by enabling horizontal scrolling. Only applies <768px. Everything above that +// will display normally. + +.table-responsive + overflow-x auto + min-height 0.01% // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) + + @media screen and (max-width $screen-xs-max) + width 100% + margin-bottom ($line-height-computed * .75) + overflow-y hidden + -ms-overflow-style -ms-autohiding-scrollbar + border 1px solid $table-border-color + + // Tighten up spacing + > .table + margin-bottom 0 + + // Ensure the content doesn't wrap + > thead, + > tbody, + > tfoot + > tr + > th, + > td + white-space nowrap + + // Special overrides for the bordered tables + > .table-bordered + border 0 + + // Nuke the appropriate borders so that the parent can handle them + > thead, + > tbody, + > tfoot + > tr + > th:first-child, + > td:first-child + border-left 0 + + > th:last-child, + > td:last-child + border-right 0 + + // Only nuke the last row's bottom-border in `tbody` and `tfoot` since + // chances are there will be only one `tr` in a `thead` and that would + // remove the border altogether. + > tbody, + > tfoot + > tr:last-child + > th, + > td + border-bottom 0 + + + + +// @import "bootstrap/bootstrap/forms.styl" +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset + padding 0 + margin 0 + border 0 + // Chrome and Firefox set a `min-width min-content` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width 0 + +legend + display block + width 100% + padding 0 + margin-bottom $line-height-computed + font-size ($font-size-base * 1.5) + line-height inherit + color $legend-color + border 0 + border-bottom 1px solid $legend-border-color + +label + display inline-block + max-width 100% // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom 5px + font-weight bold + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] + box-sizing border-box + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] + margin 4px 0 0 + margin-top unquote('1px \9') // IE8-9 + line-height normal + +// Set the height of file controls to match text inputs +input[type="file"] + display block + +// Make range inputs behave like textual form controls +input[type="range"] + display block + width 100% + +// Make multiple select elements height not fixed +select[multiple], +select[size] + height auto + +// Focus for file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus + tab-focus() + +// Adjust output element +output + display block + padding-top ($padding-base-vertical + 1) + font-size $font-size-base + line-height $line-height-base + color $input-color + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control + display block + width 100% + height $input-height-base // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding $padding-base-vertical $padding-base-horizontal + font-size $font-size-base + line-height $line-height-base + color $input-color + background-color $input-bg + background-image none // Reset unusual Firefox-on-Android default style see https://github.com/necolas/normalize.css/issues/214 + border 1px solid $input-border + border-radius $input-border-radius // Note: This has no effect on s in CSS. + box-shadow inset 0 1px 1px rgba(0, 0, 0, .075) + transition border-color ease-in-out .15s, box-shadow ease-in-out .15s + + // Customize the `:focus` state to imitate native WebKit styles. + form-control-focus() + + // Placeholder + placeholder() + + // Disabled and read-only inputs + // + // HTML5 says that controls under a fieldset > legend:first-child won't be + // disabled if the fieldset is disabled. Due to implementation difficulty, we + // don't honor that edge case we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & + background-color $input-bg-disabled + opacity 1 // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 + + &[disabled], + fieldset[disabled] & + cursor $cursor-disabled + + // Reset height for `textarea`s + textarea& + height auto + + +// Search inputs in iOS +// +// This overrides the extra rounded corners on search inputs in iOS so that our +// `.form-control` class can properly style them. Note that this cannot simply +// be added to `.form-control` as it's not specific enough. For details, see +// https://github.com/twbs/bootstrap/issues/11586. + +input[type="search"] + -webkit-appearance none + + +// Special styles for iOS temporal inputs +// +// In Mobile Safari, setting `display block` on temporal inputs causes the +// text within the input to become vertically misaligned. As a workaround, we +// set a pixel line-height that matches the given height of the input, but only +// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 + +@media screen and (-webkit-min-device-pixel-ratio 0) + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] + line-height $input-height-base + + &.input-sm, + .input-group-sm & + line-height $input-height-small + + &.input-lg, + .input-group-lg & + line-height $input-height-large + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group + margin-bottom $form-group-margin-bottom + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox + position relative + display block + margin-top 10px + margin-bottom 10px + + label + min-height $line-height-computed // Ensure the input doesn't jump when there is no text + padding-left 20px + margin-bottom 0 + font-weight normal + cursor pointer + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] + position absolute + margin-left -20px + margin-top unquote('4px \9') + +.radio + .radio, +.checkbox + .checkbox + margin-top -5px // Move up sibling radios or checkboxes for tighter spacing + +// Radios and checkboxes on same line +.radio-inline, +.checkbox-inline + position relative + display inline-block + padding-left 20px + margin-bottom 0 + vertical-align middle + font-weight normal + cursor pointer + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline + margin-top 0 + margin-left 10px // space out consecutive inline controls + +// Apply same disabled cursor tweak as for inputs +// Some special care is needed because