cloud-init-21.4-150100.8.58.1<>,̉bGktLwČG!|? ÐZj eFςm:M%gjydkH>p~~POr8dW)-t(~k0&Ci*"^'RAzcE_EM'PBLhok6Px:RG6<(Zd (ANte_zۼ3h:a{NN(wE1ճ+Ao0x}/Y/&$Y$V1A>>\?Ld   ? ,>flt7 P7 7 ,7 7 7 7777ʼ&ˈ&͟&(89:jF)G)07H2 7I:7X= Y=,\=h7]FD7^r 9b|c|d}0e}5f}8l}:u}L7v( w7x7ytzHCcloud-init21.4150100.8.58.1Cloud node initialization toolCloud-init is an init script that initializes a cloud node (VM) according to the fetched configuration data from the admin node.bGGPL-3.0https://www.suse.com/System/Managementhttps://github.com/canonical/cloud-initlinuxs390xYj+ :< %<b"j_I i + 0,5V z,A? [zS| D4kU&' B!3 =$1: $2e^T w gNP|  JJy q"y .Zm M yp9t Jd .{E&   (3P7 5'[ W ,c #: y  x ' f *_  9+f e:%b  x^f MY#  {D1 &* N HHiVg7'G'e>7 9H " 5 \ (vQL6  mYT~VZ MYV'KY=9UX@YBh g& F3V2M  Z oQ( E%>"/!1t#8 J ? >]&) G {)/L4,2v.KYX$|#>-T% ?lH}q -!h*b"H04k# x5&0*]#-e7[3 =8'4py,>(5r&{q Ax} 5 V" 1* ,!L0t%l b}M~ cQ_^&uE2`n0d ;vDp R Y"m Z2g MTL4A zV90IGP= KKAAAA큤A큤AAA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤AA큤AbG@[3|@[@Z@ZZI@ZZ@Zp^@Zo Z`@Z]@Z'Z@Zr@Z@Z }Z@ZYYéYX@Y@YzY@XXX@X@X@X@XU(XOXN@XN@XJXIK@X@X>@X<@X5X43@X(UXX2@X@X@X=X=X=X=X=X@XXX`@W@WWڍ@W;W;W@WUeW(V@VU3@U\w@U>$U+TgT[@Tи@To)@rjschwei@suse.comrjschwei@suse.comsteven.kowalik@suse.comrjschwei@suse.comqydwhotmail@gmail.comalarrosa@suse.comrjschwei@suse.comrjschwei@suse.comjmassaguerpla@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.commloviska@suse.comjgleissner@suse.comjgleissner@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdimstar@opensuse.orgrjschwei@suse.comtchvatal@suse.comrjschwei@suse.comrjschwei@suse.competr.pavlu@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdimstar@opensuse.orgrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.combwiedemann@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comgmoro@suse.comdimstar@opensuse.orgrjschwei@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comkukuk@suse.dedmueller@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comkukuk@suse.derjschwei@suse.comkukuk@suse.dedmueller@suse.comdmueller@suse.comjgleissner@suse.comdmueller@suse.comkukuk@suse.dekukuk@suse.comkukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.combwiedemann@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comjoachim.gleissner@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comtbechtold@suse.comrjschwei@suse.comtbechtold@suse.comtbechtold@suse.comreik.keutterling@nodefall.de- Update to version 21.4 (bsc#1192343, jsc#PM-3181) + Also include VMWare functionality for (jsc#PM-3175) + Remove patches included upstream: - cloud-init-purge-cache-py-ver-change.patch - cloud-init-update-test-characters-in-substitution-unit-test.patch + Forward port: - cloud-init-write-routes.patch - cloud-init-no-tempnet-oci.patch + Add cloud-init-vmware-test.patch - Test is system dependend, not properly mocked + Azure: fallback nic needs to be reevaluated during reprovisioning (#1094) [Anh Vo] + azure: pps imds (#1093) [Anh Vo] + testing: Remove calls to 'install_new_cloud_init' (#1092) + Add LXD datasource (#1040) + Fix unhandled apt_configure case. (#1065) [Brett Holman] + Allow libexec for hotplug (#1088) + Add necessary mocks to test_ovf unit tests (#1087) + Remove (deprecated) apt-key (#1068) [Brett Holman] (LP: #1836336) + distros: Remove a completed "TODO" comment (#1086) + cc_ssh.py: Add configuration for controlling ssh-keygen output (#1083) [dermotbradley] + Add "install hotplug" module (SC-476) (#1069) (LP: #1946003) + hosts.alpine.tmpl: rearrange the order of short and long hostnames (#1084) [dermotbradley] + Add max version to docutils + cloudinit/dmi.py: Change warning to debug to prevent console display (#1082) [dermotbradley] + remove unnecessary EOF string in disable-sshd-keygen-if-cloud-init-active.conf (#1075) [Emanuele Giuseppe Esposito] + Add module 'write-files-deferred' executed in stage 'final' (#916) [Lucendio] + Bump pycloudlib to fix CI (#1080) + Remove pin in dependencies for jsonschema (#1078) + Add "Google" as possible system-product-name (#1077) [vteratipally] + Update Debian security suite for bullseye (#1076) [Johann Queuniet] + Leave the details of service management to the distro (#1074) [Andy Fiddaman] + Fix typos in setup.py (#1059) [Christian Clauss] + Update Azure _unpickle (SC-500) (#1067) (LP: #1946644) + cc_ssh.py: fix private key group owner and permissions (#1070) [Emanuele Giuseppe Esposito] + VMware: read network-config from ISO (#1066) [Thomas Weißschuh] + testing: mock sleep in gce unit tests (#1072) + CloudStack: fix data-server DNS resolution (#1004) [Olivier Lemasle] (LP: #1942232) + Fix unit test broken by pyyaml upgrade (#1071) + testing: add get_cloud function (SC-461) (#1038) + Inhibit sshd-keygen@.service if cloud-init is active (#1028) [Ryan Harper] + VMWARE: search the deployPkg plugin in multiarch dir (#1061) [xiaofengw-vmware] (LP: #1944946) + Fix set-name/interface DNS bug (#1058) [Andrew Kutz] (LP: #1946493) + Use specified tmp location for growpart (#1046) [jshen28] + .gitignore: ignore tags file for ctags users (#1057) [Brett Holman] + Allow comments in runcmd and report failed commands correctly (#1049) [Brett Holman] (LP: #1853146) + tox integration: pass the *_proxy, GOOGLE_*, GCP_* env vars (#1050) [Paride Legovini] + Allow disabling of network activation (SC-307) (#1048) (LP: #1938299) + renderer: convert relative imports to absolute (#1052) [Paride Legovini] + Support ETHx_IP6_GATEWAY, SET_HOSTNAME on OpenNebula (#1045) [Vlastimil Holer] + integration-requirements: bump the pycloudlib commit (#1047) [Paride Legovini] + Allow Vultr to set MTU and use as-is configs (#1037) [eb3095] + pin jsonschema in requirements.txt (#1043) + testing: remove cloud_tests (#1020) + Add andgein as contributor (#1042) [Andrew Gein] + Make wording for module frequency consistent (#1039) [Nicolas Bock] + Use ascii code for growpart (#1036) [jshen28] + Add jshen28 as contributor (#1035) [jshen28] + Skip test_cache_purged_on_version_change on Azure (#1033) + Remove invalid ssh_import_id from examples (#1031) + Cleanup Vultr support (#987) [eb3095] + docs: update cc_disk_setup for fs to raw disk (#1017) + HACKING.rst: change contact info to James Falcon (#1030) + tox: bump the pinned flake8 and pylint version (#1029) [Paride Legovini] (LP: #1944414) + Add retries to DataSourceGCE.py when connecting to GCE (#1005) [vteratipally] + Set Azure to apply networking config every BOOT (#1023) + Add connectivity_url to Oracle's EphemeralDHCPv4 (#988) (LP: #1939603) + docs: fix typo and include sudo for report bugs commands (#1022) [Renan Rodrigo] (LP: #1940236) + VMware: Fix typo introduced in #947 and add test (#1019) [PengpengSun] + Update IPv6 entries in /etc/hosts (#1021) [Richard Hansen] (LP: #1943798) + Integration test upgrades for the 21.3-1 SRU (#1001) + Add Jille to tools/.github-cla-signers (#1016) [Jille Timmermans] + Improve ug_util.py (#1013) [Shreenidhi Shedi] + Support openEuler OS (#1012) [zhuzaifangxuele] + ssh_utils.py: ignore when sshd_config options are not key/value pairs (#1007) [Emanuele Giuseppe Esposito] + Set Azure to only update metadata on BOOT_NEW_INSTANCE (#1006) + cc_update_etc_hosts: Use the distribution-defined path for the hosts file (#983) [Andy Fiddaman] + Add CloudLinux OS support (#1003) [Alexandr Kravchenko] + puppet config: add the start_agent option (#1002) [Andrew Bogott] + Fix `make style-check` errors (#1000) [Shreenidhi Shedi] + Make cloud-id copyright year (#991) [Andrii Podanenko] + Add support to accept-ra in networkd renderer (#999) [Shreenidhi Shedi] + Update ds-identify to pass shellcheck (#979) [Andrew Kutz] + Azure: Retry dhcp on timeouts when polling reprovisiondata (#998) [aswinrajamannar] + testing: Fix ssh keys integration test (#992) - From 21.3 + Azure: During primary nic detection, check interface status continuously before rebinding again (#990) [aswinrajamannar] + Fix home permissions modified by ssh module (SC-338) (#984) (LP: #1940233) + Add integration test for sensitive jinja substitution (#986) + Ignore hotplug socket when collecting logs (#985) (LP: #1940235) + testing: Add missing mocks to test_vmware.py (#982) + add Zadara Edge Cloud Platform to the supported clouds list (#963) [sarahwzadara] + testing: skip upgrade tests on LXD VMs (#980) + Only invoke hotplug socket when functionality is enabled (#952) + Revert unnecesary lcase in ds-identify (#978) [Andrew Kutz] + cc_resolv_conf: fix typos (#969) [Shreenidhi Shedi] + Replace broken httpretty tests with mock (SC-324) (#973) + Azure: Check if interface is up after sleep when trying to bring it up (#972) [aswinrajamannar] + Update dscheck_VMware's rpctool check (#970) [Shreenidhi Shedi] + Azure: Logging the detected interfaces (#968) [Moustafa Moustafa] + Change netifaces dependency to 0.10.4 (#965) [Andrew Kutz] + Azure: Limit polling network metadata on connection errors (#961) [aswinrajamannar] + Update inconsistent indentation (#962) [Andrew Kutz] + cc_puppet: support AIO installations and more (#960) [Gabriel Nagy] + Add Puppet contributors to CLA signers (#964) [Noah Fontes] + Datasource for VMware (#953) [Andrew Kutz] + photon: refactor hostname handling and add networkd activator (#958) [sshedi] + Stop copying ssh system keys and check folder permissions (#956) [Emanuele Giuseppe Esposito] + testing: port remaining cloud tests to integration testing framework (SC-191) (#955) + generate contents for ovf-env.xml when provisioning via IMDS (#959) [Anh Vo] + Add support for EuroLinux 7 && EuroLinux 8 (#957) [Aleksander Baranowski] + Implementing device_aliases as described in docs (#945) [Mal Graty] (LP: #1867532) + testing: fix test_ssh_import_id.py (#954) + Add ability to manage fallback network config on PhotonOS (#941) [sshedi] + Add VZLinux support (#951) [eb3095] + VMware: add network-config support in ovf-env.xml (#947) [PengpengSun] + Update pylint to v2.9.3 and fix the new issues it spots (#946) [Paride Legovini] + Azure: mount default provisioning iso before try device listing (#870) [Anh Vo] + Document known hotplug limitations (#950) + Initial hotplug support (#936) + Fix MIME policy failure on python version upgrade (#934) + run-container: fixup the centos repos baseurls when using http_proxy (#944) [Paride Legovini] + tools: add support for building rpms on rocky linux (#940) + ssh-util: allow cloudinit to merge all ssh keys into a custom user file, defined in AuthorizedKeysFile (#937) [Emanuele Giuseppe Esposito] (LP: #1911680) + VMware: new "allow_raw_data" switch (#939) [xiaofengw-vmware] + bump pycloudlib version (#935) + add renanrodrigo as a contributor (#938) [Renan Rodrigo] + testing: simplify test_upgrade.py (#932) + freebsd/net_v1 format: read MTU from root (#930) [Gonéri Le Bouder] + Add new network activators to bring up interfaces (#919) + Detect a Python version change and clear the cache (#857) [Robert Schweikert] + cloud_tests: fix the Impish release name (#931) [Paride Legovini] + Removed distro specific network code from Photon (#929) [sshedi] + Add support for VMware PhotonOS (#909) [sshedi] + cloud_tests: add impish release definition (#927) [Paride Legovini] + docs: fix stale links rename master branch to main (#926) + Fix DNS in NetworkState (SC-133) (#923) + tests: Add 'adhoc' mark for integration tests (#925) + Fix the spelling of "DigitalOcean" (#924) [Mark Mercado] + Small Doc Update for ReportEventStack and Test (#920) [Mike Russell] + Replace deprecated collections.Iterable with abc replacement (#922) (LP: #1932048) + testing: OCI availability domain is now required (SC-59) (#910) + add DragonFlyBSD support (#904) [Gonéri Le Bouder] + Use instance-data-sensitive.json in jinja templates (SC-117) (#917) (LP: #1931392) + doc: Update NoCloud docs stating required files (#918) (LP: #1931577) + build-on-netbsd: don't pin a specific py3 version (#913) [Gonéri Le Bouder] + Create the log file with 640 permissions (#858) [Robert Schweikert] + Allow braces to appear in dhclient output (#911) [eb3095] + Docs: Replace all freenode references with libera (#912) + openbsd/net: flush the route table on net restart (#908) [Gonéri Le Bouder] + Add Rocky Linux support to cloud-init (#906) [Louis Abel] + Add "esposem" as contributor (#907) [Emanuele Giuseppe Esposito] + Add integration test for #868 (#901) + Added support for importing keys via primary/security mirror clauses (#882) [Paul Goins] (LP: #1925395) + [examples] config-user-groups expire in the future (#902) [Geert Stappers] + BSD: static network, set the mtu (#894) [Gonéri Le Bouder] + Add integration test for lp-1920939 (#891) + Fix unit tests breaking from new httpretty version (#903) + Allow user control over update events (#834) + Update test characters in substitution unit test (#893) + cc_disk_setup.py: remove UDEVADM_CMD definition as not used (#886) [dermotbradley] + Add AlmaLinux OS support (#872) [Andrew Lukoshko]- systemctl location (bsc#1193531) - Add cloud-init-sysctl-not-in-bin.patch - The sytemctl executable is not necessarily in '/bin'- Remove unneeded BuildRequires on python3-nose.- Update to version 21.2 (bsc#1186004) + Remove patches included upstream: - cloud-init-azure-def-usr-pass.patch - cloud-init-after-kvp.diff - cloud-init-recognize-hpc.patch - use_arroba_to_include_sudoers_directory-bsc_1181283.patch - cloud-init-bonding-opts.patch - cloud-init-log-file-mode.patch - cloud-init-no-pwd-in-log.patch - 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch + Remove cloud-init-sle12-compat.patch, version in SLE 12 is frozen to 20.2 + Remove cloud-init-tests-set-exec.patch no longer needed + Forward port: - cloud-init-write-routes.patch - cloud-init-break-resolv-symlink.patch - cloud-init-sysconf-path.patch - cloud-init-no-tempnet-oci.patch + Add \r\n check for SSH keys in Azure (#889) + Revert "Add support to resize rootfs if using LVM (#721)" (#887) (LP: #1922742) + Add Vultaire as contributor (#881) [Paul Goins] + Azure: adding support for consuming userdata from IMDS (#884) [Anh Vo] + test_upgrade: modify test_upgrade_package to run for more sources (#883) + Fix chef module run failure when chef_license is set (#868) [Ben Hughes] + Azure: Retry net metadata during nic attach for non-timeout errs (#878) [aswinrajamannar] + Azure: Retrieve username and hostname from IMDS (#865) [Thomas Stringer] + Azure: eject the provisioning iso before reporting ready (#861) [Anh Vo] + Use `partprobe` to re-read partition table if available (#856) [Nicolas Bock] (LP: #1920939) + fix error on upgrade caused by new vendordata2 attributes (#869) (LP: #1922739) + add prefer_fqdn_over_hostname config option (#859) [hamalq] (LP: #1921004) + Emit dots on travis to avoid timeout (#867) + doc: Replace remaining references to user-scripts as a config module (#866) [Ryan Harper] + azure: Removing ability to invoke walinuxagent (#799) [Anh Vo] + Add Vultr support (#827) [David Dymko] + Fix unpickle for source paths missing run_dir (#863) [lucasmoura] (LP: #1899299) + sysconfig: use BONDING_MODULE_OPTS on SUSE (#831) [Jens Sandmann] + bringup_static_routes: fix gateway check (#850) [Petr Fedchenkov] + add hamalq user (#860) [hamalq] + Add support to resize rootfs if using LVM (#721) [Eduardo Otubo] (LP: #1799953) + Fix mis-detecting network configuration in initramfs cmdline (#844) (LP: #1919188) + tools/write-ssh-key-fingerprints: do not display empty header/footer (#817) [dermotbradley] + Azure helper: Ensure Azure http handler sleeps between retries (#842) [Johnson Shi] + Fix chef apt source example (#826) [timothegenzmer] + .travis.yml: generate an SSH key before running tests (#848) + write passwords only to serial console, lock down cloud-init-output.log (#847) (LP: #1918303) + Fix apt default integration test (#845) + integration_tests: bump pycloudlib dependency (#846) + Fix stack trace if vendordata_raw contained an array (#837) [eb3095] + archlinux: Fix broken locale logic (#841) [Kristian Klausen] (LP: #1402406) + Integration test for #783 (#832) + integration_tests: mount more paths IN_PLACE (#838) + Fix requiring device-number on EC2 derivatives (#836) (LP: #1917875) + Remove the vi comment from the part-handler example (#835) + net: exclude OVS internal interfaces in get_interfaces (#829) (LP: #1912844) + tox.ini: pass OS_* environment variables to integration tests (#830) + integration_tests: add OpenStack as a platform (#804) + Add flexibility to IMDS api-version (#793) [Thomas Stringer] + Fix the TestApt tests using apt-key on Xenial and Hirsute (#823) [Paride Legovini] (LP: #1916629) + doc: remove duplicate "it" from nocloud.rst (#825) [V.I. Wood] + archlinux: Use hostnamectl to set the transient hostname (#797) [Kristian Klausen] + cc_keys_to_console.py: Add documentation for recently added config key (#824) [dermotbradley] + Update cc_set_hostname documentation (#818) [Toshi Aoyama] From 21.1 + Azure: Support for VMs without ephemeral resource disks. (#800) [Johnson Shi] (LP: #1901011) + cc_keys_to_console: add option to disable key emission (#811) [Michael Hudson-Doyle] (LP: #1915460) + integration_tests: introduce lxd_use_exec mark (#802) + azure: case-insensitive UUID to avoid new IID during kernel upgrade (#798) (LP: #1835584) + stale.yml: don't ask submitters to reopen PRs (#816) + integration_tests: fix use of SSH agent within tox (#815) + integration_tests: add UPGRADE CloudInitSource (#812) + integration_tests: use unique MAC addresses for tests (#813) + Update .gitignore (#814) + Port apt cloud_tests to integration tests (#808) + integration_tests: fix test_gh626 on LXD VMs (#809) + Fix attempting to decode binary data in test_seed_random_data test (#806) + Remove wait argument from tests with session_cloud calls (#805) + Datasource for UpCloud (#743) [Antti Myyrä] + test_gh668: fix failure on LXD VMs (#801) + openstack: read the dynamic metadata group vendor_data2.json (#777) [Andrew Bogott] (LP: #1841104) + includedir in suoders can be prefixed by "arroba" (#783) [Jordi Massaguer Pla] + [VMware] change default max wait time to 15s (#774) [xiaofengw-vmware] + Revert integration test associated with reverted #586 (#784) + Add jordimassaguerpla as contributor (#787) [Jordi Massaguer Pla] + Add Rick Harding to CLA signers (#792) [Rick Harding] + HACKING.rst: add clarifying note to LP CLA process section (#789) + Stop linting cloud_tests (#791) + cloud-tests: update cryptography requirement (#790) [Joshua Powers] + Remove 'remove-raise-on-failure' calls from integration_tests (#788) + Use more cloud defaults in integration tests (#757) + Adding self to cla signers (#776) [Andrew Bogott] + doc: avoid two warnings (#781) [Dan Kenigsberg] + Use proper spelling for Red Hat (#778) [Dan Kenigsberg] + Add antonyc to .github-cla-signers (#747) [Anton Chaporgin] + integration_tests: log image serial if available (#772) + [VMware] Support cloudinit raw data feature (#691) [xiaofengw-vmware] + net: Fix static routes to host in eni renderer (#668) [Pavel Abalikhin] + .travis.yml: don't run cloud_tests in CI (#756) + test_upgrade: add some missing commas (#769) + cc_seed_random: update documentation and fix integration test (#771) (LP: #1911227) + Fix test gh-632 test to only run on NoCloud (#770) (LP: #1911230) + archlinux: fix package upgrade command handling (#768) [Bao Trinh] + integration_tests: add integration test for LP: #1910835 (#761) + Fix regression with handling of IMDS ssh keys (#760) [Thomas Stringer] + integration_tests: log cloud-init version in SUT (#758) + Add ajmyyra as contributor (#742) [Antti Myyrä] + net_convert: add some missing help text (#755) + Missing IPV6_AUTOCONF=no to render sysconfig dhcp6 stateful on RHEL (#753) [Eduardo Otubo] + doc: document missing IPv6 subnet types (#744) [Antti Myyrä] + Add example configuration for datasource `AliYun` (#751) [Xiaoyu Zhong] + integration_tests: add SSH key selection settings (#754) + fix a typo in man page cloud-init.1 (#752) [Amy Chen] + network-config-format-v2.rst: add Netplan Passthrough section (#750) + stale: re-enable post holidays (#749) + integration_tests: port ca_certs tests from cloud_tests (#732) + Azure: Add telemetry for poll IMDS (#741) [Johnson Shi] + doc: move testing section from HACKING to its own doc (#739) + No longer allow integration test failures on travis (#738) + stale: fix error in definition (#740) + integration_tests: set log-cli-level to INFO by default (#737) + PULL_REQUEST_TEMPLATE.md: use backticks around commit message (#736) + stale: disable check for holiday break (#735) + integration_tests: log the path we collect logs into (#733) + .travis.yml: add (most) supported Python versions to CI (#734) + integration_tests: fix IN_PLACE CLOUD_INIT_SOURCE (#731) + cc_ca_certs: add RHEL support (#633) [cawamata] + Azure: only generate config for NICs with addresses (#709) [Thomas Stringer] + doc: fix CloudStack configuration example (#707) [Olivier Lemasle] + integration_tests: restrict test_lxd_bridge appropriately (#730) + Add integration tests for CLI functionality (#729) + Integration test for gh-626 (#728) + Some test_upgrade fixes (#726) + Ensure overriding test vars with env vars works for booleans (#727) + integration_tests: port lxd_bridge test from cloud_tests (#718) + Integration test for gh-632. (#725) + Integration test for gh-671 (#724) + integration-requirements.txt: bump pycloudlib commit (#723) + Drop unnecessary shebang from cmd/main.py (#722) [Eduardo Otubo] + Integration test for LP: #1813396 and #669 (#719) + integration_tests: include timestamp in log output (#720) + integration_tests: add test for LP: #1898997 (#713) + Add integration test for power_state_change module (#717) + Update documentation for network-config-format-v2 (#701) [ggiesen] + sandbox CA Cert tests to not require ca-certificates (#715) [Eduardo Otubo] + Add upgrade integration test (#693) + Integration test for 570 (#712) + Add ability to keep snapshotted images in integration tests (#711) + Integration test for pull #586 (#706) + integration_tests: introduce skipping of tests by OS (#702) + integration_tests: introduce IntegrationInstance.restart (#708) + Add lxd-vm to list of valid integration test platforms (#705) + Adding BOOTPROTO = dhcp to render sysconfig dhcp6 stateful on RHEL (#685) [Eduardo Otubo] + Delete image snapshots created for integration tests (#682) + Parametrize ssh_keys_provided integration test (#700) [lucasmoura] + Drop use_sudo attribute on IntegrationInstance (#694) [lucasmoura] + cc_apt_configure: add riscv64 as a ports arch (#687) [Dimitri John Ledkov] + cla: add xnox (#692) [Dimitri John Ledkov] + Collect logs from integration test runs (#675) From 20.4.1 + Revert "ssh_util: handle non-default AuthorizedKeysFile config (#586)" From 20.4 + tox: avoid tox testenv subsvars for xenial support (#684) + Ensure proper root permissions in integration tests (#664) [James Falcon] + LXD VM support in integration tests (#678) [James Falcon] + Integration test for fallocate falling back to dd (#681) [James Falcon] + .travis.yml: correctly integration test the built .deb (#683) + Ability to hot-attach NICs to preprovisioned VMs before reprovisioning (#613) [aswinrajamannar] + Support configuring SSH host certificates. (#660) [Jonathan Lung] + add integration test for LP: #1900837 (#679) + cc_resizefs on FreeBSD: Fix _can_skip_ufs_resize (#655) [Mina Galić] (LP: #1901958, #1901958) + DataSourceAzure: push dmesg log to KVP (#670) [Anh Vo] + Make mount in place for tests work (#667) [James Falcon] + integration_tests: restore emission of settings to log (#657) + DataSourceAzure: update password for defuser if exists (#671) [Anh Vo] + tox.ini: only select "ci" marked tests for CI runs (#677) + Azure helper: Increase Azure Endpoint HTTP retries (#619) [Johnson Shi] + DataSourceAzure: send failure signal on Azure datasource failure (#594) [Johnson Shi] + test_persistence: simplify VersionIsPoppedFromState (#674) + only run a subset of integration tests in CI (#672) + cli: add + -system param to allow validating system user-data on a machine (#575) + test_persistence: add VersionIsPoppedFromState test (#673) + introduce an upgrade framework and related testing (#659) + add + -no-tty option to gpg (#669) [Till Riedel] (LP: #1813396) + Pin pycloudlib to a working commit (#666) [James Falcon] + DataSourceOpenNebula: exclude SRANDOM from context output (#665) + cloud_tests: add hirsute release definition (#662) + split integration and cloud_tests requirements (#652) + faq.rst: add warning to answer that suggests running `clean` (#661) + Fix stacktrace in DataSourceRbxCloud if no metadata disk is found (#632) [Scott Moser] + Make wakeonlan Network Config v2 setting actually work (#626) [dermotbradley] + HACKING.md: unify network-refactoring namespace (#658) [Mina Galić] + replace usage of dmidecode with kenv on FreeBSD (#621) [Mina Galić] + Prevent timeout on travis integration tests. (#651) [James Falcon] + azure: enable pushing the log to KVP from the last pushed byte (#614) [Moustafa Moustafa] + Fix launch_kwargs bug in integration tests (#654) [James Falcon] + split read_fs_info into linux & freebsd parts (#625) [Mina Galić] + PULL_REQUEST_TEMPLATE.md: expand commit message section (#642) + Make some language improvements in growpart documentation (#649) [Shane Frasier] + Revert ".travis.yml: use a known-working version of lxd (#643)" (#650) + Fix not sourcing default 50-cloud-init ENI file on Debian (#598) [WebSpider] + remove unnecessary reboot from gpart resize (#646) [Mina Galić] + cloudinit: move dmi functions out of util (#622) [Scott Moser] + integration_tests: various launch improvements (#638) + test_lp1886531: don't assume /etc/fstab exists (#639) + Remove Ubuntu restriction from PR template (#648) [James Falcon] + util: fix mounting of vfat on *BSD (#637) [Mina Galić] + conftest: improve docstring for disable_subp_usage (#644) + doc: add example query commands to debug Jinja templates (#645) + Correct documentation and testcase data for some user-data YAML (#618) [dermotbradley] + Hetzner: Fix instance_id / SMBIOS serial comparison (#640) [Markus Schade] + .travis.yml: use a known-working version of lxd (#643) + tools/build-on-freebsd: fix comment explaining purpose of the script (#635) [Mina Galić] + Hetzner: initialize instance_id from system-serial-number (#630) [Markus Schade] (LP: #1885527) + Explicit set IPV6_AUTOCONF and IPV6_FORCE_ACCEPT_RA on static6 (#634) [Eduardo Otubo] + get_interfaces: don't exclude Open vSwitch bridge/bond members (#608) [Lukas Märdian] (LP: #1898997) + Add config modules for controlling IBM PowerVM RMC. (#584) [Aman306] (LP: #1895979) + Update network config docs to clarify MAC address quoting (#623) [dermotbradley] + gentoo: fix hostname rendering when value has a comment (#611) [Manuel Aguilera] + refactor integration testing infrastructure (#610) [James Falcon] + stages: don't reset permissions of cloud-init.log every boot (#624) (LP: #1900837) + docs: Add how to use cloud-localds to boot qemu (#617) [Joshua Powers] + Drop vestigial update_resolve_conf_file function (#620) [Scott Moser] + cc_mounts: correctly fallback to dd if fallocate fails (#585) (LP: #1897099) + .travis.yml: add integration-tests to Travis matrix (#600) + ssh_util: handle non-default AuthorizedKeysFile config (#586) [Eduardo Otubo] + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + bddeb: new + -packaging-branch argument to pull packaging from branch (#576) [Paride Legovini] + Add more integration tests (#615) [lucasmoura] + DataSourceAzure: write marker file after report ready in preprovisioning (#590) [Johnson Shi] + integration_tests: emit settings to log during setup (#601) + integration_tests: implement citest tests run in Travis (#605) + Add Azure support to integration test framework (#604) [James Falcon] + openstack: consider product_name as valid chassis tag (#580) [Adrian Vladu] (LP: #1895976) + azure: clean up and refactor report_diagnostic_event (#563) [Johnson Shi] + net: add the ability to blacklist network interfaces based on driver during enumeration of physical network devices (#591) [Anh Vo] + integration_tests: don't error on cloud-init failure (#596) + integration_tests: improve cloud-init.log assertions (#593) + conftest.py: remove top-level import of httpretty (#599) + tox.ini: add integration-tests testenv definition (#595) + PULL_REQUEST_TEMPLATE.md: empty checkboxes need a space (#597) + add integration test for LP: #1886531 (#592) + Initial implementation of integration testing infrastructure (#581) [James Falcon] + Fix name of ntp and chrony service on CentOS and RHEL. (#589) [Scott Moser] (LP: #1897915) + Adding a PR template (#587) [James Falcon] + Azure parse_network_config uses fallback cfg when generate IMDS network cfg fails (#549) [Johnson Shi] + features: refresh docs for easier out-of-context reading (#582) + Fix typo in resolv_conf module's description (#578) [Wacław Schiller] + cc_users_groups: minor doc formatting fix (#577) + Fix typo in disk_setup module's description (#579) [Wacław Schiller] + Add vendor-data support to seedfrom parameter for NoCloud and OVF (#570) [Johann Queuniet] + boot.rst: add First Boot Determination section (#568) (LP: #1888858) + opennebula.rst: minor readability improvements (#573) [Mina Galić] + cloudinit: remove unused LOG variables (#574) + create a shutdown_command method in distro classes (#567) [Emmanuel Thomé] + user_data: remove unused constant (#566) + network: Fix type and respect name when rendering vlan in sysconfig. (#541) [Eduardo Otubo] (LP: #1788915, #1826608) + Retrieve SSH keys from IMDS first with OVF as a fallback (#509) [Thomas Stringer] + Add jqueuniet as contributor (#569) [Johann Queuniet] + distros: minor typo fix (#562) + Bump the integration-requirements versioned dependencies (#565) [Paride Legovini] + network-config-format-v1: fix typo in nameserver example (#564) [Stanislas] + Run cloud-init-local.service after the hv_kvp_daemon (#505) [Robert Schweikert] + Add method type hints for Azure helper (#540) [Johnson Shi] + systemd: add Before=shutdown.target when Conflicts=shutdown.target is used (#546) [Paride Legovini] + LXD: detach network from profile before deleting it (#542) [Paride Legovini] (LP: #1776958) + redhat spec: add missing BuildRequires (#552) [Paride Legovini] + util: remove debug statement (#556) [Joshua Powers] + Fix cloud config on chef example (#551) [lucasmoura] From 20.3 + Azure: Add netplan driver filter when using hv_netvsc driver (#539) [James Falcon] (LP: #1830740) + query: do not handle non-decodable non-gzipped content (#543) + DHCP sandboxing failing on noexec mounted /var/tmp (#521) [Eduardo Otubo] + Update the list of valid ssh keys. (#487) [Ole-Martin Bratteng] (LP: #1877869) + cmd: cloud-init query to handle compressed userdata (#516) (LP: #1889938) + Pushing cloud-init log to the KVP (#529) [Moustafa Moustafa] + Add Alpine Linux support. (#535) [dermotbradley] + Detect kernel version before swap file creation (#428) [Eduardo Otubo] + cli: add devel make-mime subcommand (#518) + user-data: only verify mime-types for TYPE_NEEDED and x-shellscript (#511) (LP: #1888822) + DataSourceOracle: retry twice (and document why we retry at all) (#536) + Refactor Azure report ready code (#468) [Johnson Shi] + tox.ini: pin correct version of httpretty in xenial{,-dev} envs (#531) + Support Oracle IMDSv2 API (#528) [James Falcon] + .travis.yml: run a doc build during CI (#534) + doc/rtd/topics/datasources/ovf.rst: fix doc8 errors (#533) + Fix 'Users and Groups' configuration documentation (#530) [sshedi] + cloudinit.distros: update docstrings of add_user and create_user (#527) + Fix headers for device types in network v2 docs (#532) [Caleb Xavier Berger] + Add AlexBaranowski as contributor (#508) [Aleksander Baranowski] + DataSourceOracle: refactor to use only OPC v1 endpoint (#493) + .github/workflows/stale.yml: s/Josh/Rick/ (#526) + Fix a typo in apt pipelining module (#525) [Xiao Liang] + test_util: parametrize devlist tests (#523) [James Falcon] + Recognize LABEL_FATBOOT labels (#513) [James Falcon] (LP: #1841466) + Handle additional identifier for SLES For HPC (#520) [Robert Schweikert] + Revert "test-requirements.txt: pin pytest to <6 (#512)" (#515) + test-requirements.txt: pin pytest to <6 (#512) + Add "tsanghan" as contributor (#504) [tsanghan] + fix brpm building (LP: #1886107) + Adding eandersson as a contributor (#502) [Erik Olof Gunnar Andersson] + azure: disable bouncing hostname when setting hostname fails (#494) [Anh Vo] + VMware: Support parsing DEFAULT-RUN-POST-CUST-SCRIPT (#441) [xiaofengw-vmware] + DataSourceAzure: Use ValueError when JSONDecodeError is not available (#490) [Anh Vo] + cc_ca_certs.py: fix blank line problem when removing CAs and adding new one (#483) [dermotbradley] + freebsd: py37-serial is now py37-pyserial (#492) [Gonéri Le Bouder] + ssh exit with non-zero status on disabled user (#472) [Eduardo Otubo] (LP: #1170059) + cloudinit: remove global disable of pylint W0107 and fix errors (#489) + networking: refactor wait_for_physdevs from cloudinit.net (#466) (LP: #1884626) + HACKING.rst: add pytest.param pytest gotcha (#481) + cloudinit: remove global disable of pylint W0105 and fix errors (#480) + Fix two minor warnings (#475) + test_data: fix faulty patch (#476) + cc_mounts: handle missing fstab (#484) (LP: #1886531) + LXD cloud_tests: support more lxd image formats (#482) [Paride Legovini] + Add update_etc_hosts as default module on *BSD (#479) [Adam Dobrawy] + cloudinit: fix tip-pylint failures and bump pinned pylint version (#478) + Added BirknerAlex as contributor and sorted the file (#477) [Alexander Birkner] + Update list of types of modules in cli.rst [saurabhvartak1982] + tests: use markers to configure disable_subp_usage (#473) + Add mention of vendor-data to no-cloud format documentation (#470) [Landon Kirk] + Fix broken link to OpenStack metadata service docs (#467) [Matt Riedemann] + Disable ec2 mirror for non aws instances (#390) [lucasmoura] (LP: #1456277) + cloud_tests: don't pass + -python-version to read-dependencies (#465) + networking: refactor is_physical from cloudinit.net (#457) (LP: #1884619) + Enable use of the caplog fixture in pytest tests, and add a cc_final_message test using it (#461) + RbxCloud: Add support for FreeBSD (#464) [Adam Dobrawy] + Add schema for cc_chef module (#375) [lucasmoura] (LP: #1858888) + test_util: add (partial) testing for util.mount_cb (#463) + .travis.yml: revert to installing ubuntu-dev-tools (#460) + HACKING.rst: add details of net refactor tracking (#456) + .travis.yml: rationalise installation of dependencies in host (#449) + Add dermotbradley as contributor. (#458) [dermotbradley] + net/networking: remove unused functions/methods (#453) + distros.networking: initial implementation of layout (#391) + cloud-init.service.tmpl: use "rhel" instead of "redhat" (#452) + Change from redhat to rhel in systemd generator tmpl (#450) [Eduardo Otubo] + Hetzner: support reading user-data that is base64 encoded. (#448) [Scott Moser] (LP: #1884071) + HACKING.rst: add strpath gotcha to testing gotchas section (#446) + cc_final_message: don't create directories when writing boot-finished (#445) (LP: #1883903) + .travis.yml: only store new schroot if something has changed (#440) + util: add ensure_dir_exists parameter to write_file (#443) + printing the error stream of the dhclient process before killing it (#369) [Moustafa Moustafa] + Fix link to the MAAS documentation (#442) [Paride Legovini] (LP: #1883666) + RPM build: disable the dynamic mirror URLs when using a proxy (#437) [Paride Legovini] + util: rename write_file's copy_mode parameter to preserve_mode (#439) + .travis.yml: use $TRAVIS_BUILD_DIR for lxd_image caching (#438) + cli.rst: alphabetise devel subcommands and add net-convert to list (#430) + Default to UTF-8 in /var/log/cloud-init.log (#427) [James Falcon] + travis: cache the chroot we use for package builds (#429) + test: fix all flake8 E126 errors (#425) [Joshua Powers] + Fixes KeyError for bridge with no "parameters:" setting (#423) [Brian Candler] (LP: #1879673) + When tools.conf does not exist, running cmd "vmware-toolbox-cmd config get deployPkg enable-custom-scripts", the return code will be EX_UNAVAILABLE(69), on this condition, it should not take it as error. (#413) [chengcheng-chcheng] + Document CloudStack data-server well-known hostname (#399) [Gregor Riepl] + test: move conftest.py to top-level, to cover tests/ also (#414) + Replace cc_chef is_installed with use of subp.is_exe. (#421) [Scott Moser] + Move runparts to subp. (#420) [Scott Moser] + Move subp into its own module. (#416) [Scott Moser] + readme: point at travis-ci.com (#417) [Joshua Powers] + New feature flag functionality and fix includes failing silently (#367) [James Falcon] (LP: #1734939) + Enhance poll imds logging (#365) [Moustafa Moustafa] + test: fix all flake8 E121 and E123 errors (#404) [Joshua Powers] + test: fix all flake8 E241 (#403) [Joshua Powers] + test: ignore flake8 E402 errors in main.py (#402) [Joshua Powers] + cc_grub_dpkg: determine idevs in more robust manner with grub-probe (#358) [Matthew Ruffell] (LP: #1877491) + test: fix all flake8 E741 errors (#401) [Joshua Powers] + tests: add groovy integration tests for ubuntu (#400) + Enable chef_license support for chef infra client (#389) [Bipin Bachhao] + testing: use flake8 again (#392) [Joshua Powers] + enable Puppet, Chef mcollective in default config (#385) [Mina Galić (deprecated: Igor Galić)] (LP: #1880279) + HACKING.rst: introduce .net + > Networking refactor section (#384) + Travis: do not install python3-contextlib2 (dropped dependency) (#388) [Paride Legovini] + HACKING: mention that .github-cla-signers is alpha-sorted (#380) + Add bipinbachhao as contributor (#379) [Bipin Bachhao] + cc_snap: validate that assertions property values are strings (#370) + conftest: implement partial disable_subp_usage (#371) + test_resolv_conf: refresh stale comment (#374) + cc_snap: apply validation to snap.commands properties (#364) + make finding libc platform independent (#366) [Mina Galić (deprecated: Igor Galić)] + doc/rtd/topics/faq: Updates LXD docs links to current site (#368) [TomP] + templater: drop Jinja Python 2 compatibility shim (#353) + cloudinit: minor pylint fixes (#360) + cloudinit: remove unneeded __future__ imports (#362) + migrating momousta lp user to Moustafa-Moustafa GitHub user (#361) [Moustafa Moustafa] + cloud_tests: emit dots on Travis while fetching images (#347) + Add schema to apt configure config (#357) [lucasmoura] (LP: #1858884) + conftest: add docs and tests regarding CiTestCase's subp functionality (#343) + analyze/dump: refactor shared string into variable (#350) + doc: update boot.rst with correct timing of runcmd (#351) + HACKING.rst: change contact info to Rick Harding (#359) [lucasmoura] + HACKING.rst: guide people to add themselves to the CLA file (#349) + HACKING.rst: more unit testing documentation (#354) + .travis.yml: don't run lintian during integration test package builds (#352) + Add test to ensure docs examples are valid cloud-init configs (#355) [James Falcon] (LP: #1876414) + make suse and sles support 127.0.1.1 (#336) [chengcheng-chcheng] + Create tests to validate schema examples (#348) [lucasmoura] (LP: #1876412) + analyze/dump: add support for Amazon Linux 2 log lines (#346) (LP: #1876323) + bsd: upgrade support (#305) [Gonéri Le Bouder] + Add lucasmoura as contributor (#345) [lucasmoura] + Add "therealfalcon" as contributor (#344) [James Falcon] + Adapt the package building scripts to use Python 3 (#231) [Paride Legovini] + DataSourceEc2: use metadata's NIC ordering to determine route-metrics (#342) (LP: #1876312) + .travis.yml: introduce caching (#329) + cc_locale: introduce schema (#335) + doc/rtd/conf.py: bump copyright year to 2020 (#341) + yum_add_repo: Add Centos to the supported distro list (#340)- Add cloud-init-update-test-characters-in-substitution-unit-test.patch to fix unit test fail in TestGetPackageMirrorInfo::test_substitution.- Add patch from upstream to remove python2 compatibility so cloud-init builds fine in Tumbleweed with a recent Jinja2 version. This patch is only applied in TW. * 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch- Add cloud-init-log-file-mode.patch (bsc#1183939) + Change log file creation mode to 640 - Add cloud-init-no-pwd-in-log.patch (bsc#1184758) + Do not write the generated password to the log file - Add cloud-init-purge-cache-py-ver-change.patch- Add cloud-init-bonding-opts.patch (bsc#1184085) + Write proper bonding option configuration for SLE/openSUSE - Fix application and inclusion of use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283)- Add use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283) - Do not including sudoers.d directory twice- Update cloud-init-write-routes.patch (bsc#1180176) + Follow up to previous changes. Fix order of operations error to make gateway comparison between subnet configuration and route configuration valuable rather than self-comparing.- Add cloud-init-sle12-compat.patch (jsc#PM-2335) - Python 3.4 compatibility in setup.py - Disable some test for mock version compatibility- Add wget as a requirement (bsc#1178029) + wget is used in the CloudStack data source- Add cloud-init-azure-def-usr-pass.patch (bsc#1179150, bsc#1179151) + Properly set the password for the default user in all circumstances- Patch the full package version into the cloud-init version file- Update cloud-init-write-routes.patch (bsc#1177526) + Fix missing default route when dual stack network setup is used. Once a default route was configured for Ipv6 or IPv4 the default route configuration for the othre protocol was skipped.- Update cloud-init-write-routes.patch (bsc#1177526) + Avoid exception if no gateway information is present and warning is triggered for existing routing.- Update to version 20.2 (bsc#1174443, bsc#1174444) + Remove patches included upstream: - 0001-Make-tests-work-with-Python-3.8-139.patch - cloud-init-ostack-metadat-dencode.patch - cloud-init-use-different-random-src.diff - cloud-init-long-pass.patch - cloud-init-mix-static-dhcp.patch + Remove patches build switched to Python 3 for all distributions (jsc#PM-2335) - cloud-init-python2-sigpipe.patch - cloud-init-template-py2.patch + Add - cloud-init-after-kvp.diff - cloud-init-recognize-hpc.patch + doc/format: reference make-mime.py instead of an inline script (#334) + Add docs about creating parent folders (#330) [Adrian Wilkins] + DataSourceNoCloud/OVF: drop claim to support FTP (#333) (LP: #1875470) + schema: ignore spurious pylint error (#332) + schema: add json schema for write_files module (#152) + BSD: find_devs_with_ refactoring (#298) [Gonéri Le Bouder] + nocloud: drop work around for Linux 2.6 (#324) [Gonéri Le Bouder] + cloudinit: drop dependencies on unittest2 and contextlib2 (#322) + distros: handle a potential mirror filtering error case (#328) + log: remove unnecessary import fallback logic (#327) + .travis.yml: don't run integration test on ubuntu/* branches (#321) + More unit test documentation (#314) + conftest: introduce disable_subp_usage autouse fixture (#304) + YAML align indent sizes for docs readability (#323) [Tak Nishigori] + network_state: add missing space to log message (#325) + tests: add missing mocks for get_interfaces_by_mac (#326) (LP: #1873910) + test_mounts: expand happy path test for both happy paths (#319) + cc_mounts: fix incorrect format specifiers (#316) (LP: #1872836) + swap file "size" being used before checked if str (#315) [Eduardo Otubo] + HACKING.rst: add pytest version gotchas section (#311) + docs: Add steps to re-run cloud-id and cloud-init (#313) [Joshua Powers] + readme: OpenBSD is now supported (#309) [Gonéri Le Bouder] + net: ignore 'renderer' key in netplan config (#306) (LP: #1870421) + Add support for NFS/EFS mounts (#300) [Andrew Beresford] (LP: #1870370) + openbsd: set_passwd should not unlock user (#289) [Gonéri Le Bouder] + tools/.github-cla-signers: add beezly as CLA signer (#301) + util: remove unnecessary lru_cache import fallback (#299) + HACKING.rst: reorganise/update CLA signature info (#297) + distros: drop leading/trailing hyphens from mirror URL labels (#296) + HACKING.rst: add note about variable annotations (#295) + CiTestCase: stop using and remove sys_exit helper (#283) + distros: replace invalid characters in mirror URLs with hyphens (#291) (LP: #1868232) + rbxcloud: gracefully handle arping errors (#262) [Adam Dobrawy] + Fix cloud-init ignoring some misdeclared mimetypes in user-data. [Kurt Garloff] + net: ubuntu focal prioritize netplan over eni even if both present (#267) (LP: #1867029) + cloudinit: refactor util.is_ipv4 to net.is_ipv4_address (#292) + net/cmdline: replace type comments with annotations (#294) + HACKING.rst: add Type Annotations design section (#293) + net: introduce is_ip_address function (#288) + CiTestCase: remove now-unneeded parse_and_read helper method (#286) + .travis.yml: allow 30 minutes of inactivity in cloud tests (#287) + sources/tests/test_init: drop use of deprecated inspect.getargspec (#285) + setup.py: drop NIH check_output implementation (#282) + Identify SAP Converged Cloud as OpenStack [Silvio Knizek] + add Openbsd support (#147) [Gonéri Le Bouder] + HACKING.rst: add examples of the two test class types (#278) + VMWware: support to update guest info gc status if enabled (#261) [xiaofengw-vmware] + Add lp-to-git mapping for kgarloff (#279) + set_passwords: avoid chpasswd on BSD (#268) [Gonéri Le Bouder] + HACKING.rst: add Unit Testing design section (#277) + util: read_cc_from_cmdline handle urlencoded yaml content (#275) + distros/tests/test_init: add tests for _get_package_mirror_info (#272) + HACKING.rst: add links to new Code Review Process doc (#276) + freebsd: ensure package update works (#273) [Gonéri Le Bouder] + doc: introduce Code Review Process documentation (#160) + tools: use python3 (#274) + cc_disk_setup: fix RuntimeError (#270) (LP: #1868327) + cc_apt_configure/util: combine search_for_mirror implementations (#271) + bsd: boottime does not depend on the libc soname (#269) [Gonéri Le Bouder] + test_oracle,DataSourceOracle: sort imports (#266) + DataSourceOracle: update .network_config docstring (#257) + cloudinit/tests: remove unneeded with_logs configuration (#263) + .travis.yml: drop stale comment (#255) + .gitignore: add more common directories (#258) + ec2: render network on all NICs and add secondary IPs as static (#114) (LP: #1866930) + ec2 json validation: fix the reference to the 'merged_cfg' key (#256) [Paride Legovini] + releases.yaml: quote the Ubuntu version numbers (#254) [Paride Legovini] + cloudinit: remove six from packaging/tooling (#253) + util/netbsd: drop six usage (#252) + workflows: introduce stale pull request workflow (#125) + cc_resolv_conf: introduce tests and stabilise output across Python versions (#251) + fix minor issue with resolv_conf template (#144) [andreaf74] + doc: CloudInit also support NetBSD (#250) [Gonéri Le Bouder] + Add Netbsd support (#62) [Gonéri Le Bouder] + tox.ini: avoid substition syntax that causes a traceback on xenial (#245) + Add pub_key_ed25519 to cc_phone_home (#237) [Daniel Hensby] + Introduce and use of a list of GitHub usernames that have signed CLA (#244) + workflows/cla.yml: use correct username for CLA check (#243) + tox.ini: use xenial version of jsonpatch in CI (#242) + workflows: CLA validation altered to fail status on pull_request (#164) + tox.ini: bump pyflakes version to 2.1.1 (#239) + cloudinit: move to pytest for running tests (#211) + instance-data: add cloud-init merged_cfg and sys_info keys to json (#214) (LP: #1865969) + ec2: Do not fallback to IMDSv1 on EC2 (#216) + instance-data: write redacted cfg to instance-data.json (#233) (LP: #1865947) + net: support network-config:disabled on the kernel commandline (#232) (LP: #1862702) + ec2: only redact token request headers in logs, avoid altering request (#230) (LP: #1865882) + docs: typo fixed: dta → data [Alexey Vazhnov] + Fixes typo on Amazon Web Services (#217) [Nick Wales] + Fix docs for OpenStack DMI Asset Tag (#228) [Mark T. Voelker] (LP: #1669875) + Add physical network type: cascading to openstack helpers (#200) [sab-systems] + tests: add focal integration tests for ubuntu (#225) - From 20.1 (first vesrion after 19.4) + ec2: Do not log IMDSv2 token values, instead use REDACTED (#219) (LP: #1863943) + utils: use SystemRandom when generating random password. (#204) [Dimitri John Ledkov] + docs: mount_default_files is a list of 6 items, not 7 (#212) + azurecloud: fix issues with instances not starting (#205) (LP: #1861921) + unittest: fix stderr leak in cc_set_password random unittest output. (#208) + cc_disk_setup: add swap filesystem force flag (#207) + import sysvinit patches from freebsd-ports tree (#161) [Igor Galić] + docs: fix typo (#195) [Edwin Kofler] + sysconfig: distro-specific config rendering for BOOTPROTO option (#162) [Robert Schweikert] (LP: #1800854) + cloudinit: replace "from six import X" imports (except in util.py) (#183) + run-container: use 'test -n' instead of 'test ! -z' (#202) [Paride Legovini] + net/cmdline: correctly handle static ip= config (#201) [Dimitri John Ledkov] (LP: #1861412) + Replace mock library with unittest.mock (#186) + HACKING.rst: update CLA link (#199) + Scaleway: Fix DatasourceScaleway to avoid backtrace (#128) [Louis Bouchard] + cloudinit/cmd/devel/net_convert.py: add missing space (#191) + tools/run-container: drop support for python2 (#192) [Paride Legovini] + Print ssh key fingerprints using sha256 hash (#188) (LP: #1860789) + Make the RPM build use Python 3 (#190) [Paride Legovini] + cc_set_password: increase random pwlength from 9 to 20 (#189) (LP: #1860795) + .travis.yml: use correct Python version for xenial tests (#185) + cloudinit: remove ImportError handling for mock imports (#182) + Do not use fallocate in swap file creation on xfs. (#70) [Eduardo Otubo] (LP: #1781781) + .readthedocs.yaml: install cloud-init when building docs (#181) (LP: #1860450) + Introduce an RTD config file, and pin the Sphinx version to the RTD default (#180) + Drop most of the remaining use of six (#179) + Start removing dependency on six (#178) + Add Rootbox & HyperOne to list of cloud in README (#176) [Adam Dobrawy] + docs: add proposed SRU testing procedure (#167) + util: rename get_architecture to get_dpkg_architecture (#173) + Ensure util.get_architecture() runs only once (#172) + Only use gpart if it is the BSD gpart (#131) [Conrad Hoffmann] + freebsd: remove superflu exception mapping (#166) [Gonéri Le Bouder] + ssh_auth_key_fingerprints_disable test: fix capitalization (#165) [Paride Legovini] + util: move uptime's else branch into its own boottime function (#53) [Igor Galić] (LP: #1853160) + workflows: add contributor license agreement checker (#155) + net: fix rendering of 'static6' in network config (#77) (LP: #1850988) + Make tests work with Python 3.8 (#139) [Conrad Hoffmann] + fixed minor bug with mkswap in cc_disk_setup.py (#143) [andreaf74] + freebsd: fix create_group() cmd (#146) [Gonéri Le Bouder] + doc: make apt_update example consistent (#154) + doc: add modules page toc with links (#153) (LP: #1852456) + Add support for the amazon variant in cloud.cfg.tmpl (#119) [Frederick Lefebvre] + ci: remove Python 2.7 from CI runs (#137) + modules: drop cc_snap_config config module (#134) + migrate-lp-user-to-github: ensure Launchpad repo exists (#136) + docs: add initial troubleshooting to FAQ (#104) [Joshua Powers] + doc: update cc_set_hostname frequency and descrip (#109) [Joshua Powers] (LP: #1827021) + freebsd: introduce the freebsd renderer (#61) [Gonéri Le Bouder] + cc_snappy: remove deprecated module (#127) + HACKING.rst: clarify that everyone needs to do the LP->GH dance (#130) + freebsd: cloudinit service requires devd (#132) [Gonéri Le Bouder] + cloud-init: fix capitalisation of SSH (#126) + doc: update cc_ssh clarify host and auth keys [Joshua Powers] (LP: #1827021) + ci: emit names of tests run in Travis (#120)- Disable testing to aid elimination of unittest2 in Factory- bsc#1170154: rsyslog warning, '~' is deprecated + replace deprecated syntax '& ~' by '& stop' for more information please see https://www.rsyslog.com/rsyslog-error-2307/- Update cloud-init-write-routes.patch + Explicitly test for netconfig version 1 as well as 2- Update cloud-init-write-routes.patch + Handle netconfig v2 device configurations (bsc#1171546, bsc#1171995)- Update cloud-init-write-routes.patch + In cases where the config contains 2 or more default gateway specifications for an interface only write the first default route, log warning message about skipped routes + Avoid writing invalid route specification if neither the network nor destination is specified in the route configuration- Update cloud-init-write-routes.patch + Still need to consider the "network" configuration option for the v1 config implementation. Fixes regression introduced with update from Wed Feb 12 19:30:42- Update cloud-init-write-routes.patch (bsc#1165296) + Add the default gateway to the ifroute config file when specified as part of the subnet configuration + Fix typo to properly extrakt provided netmask data (bsc#1163178)- Add cloud-init-long-pass.patch (bsc#1162936, CVE-2020-8632) + Increase the default length of generated passwords- Add cloud-init-use-different-random-src.diff (bsc#1162937, CVE-2020-8631) + Use non-deterministic generator for password generation.- Update cloud-init-write-routes.patch (bsc#1163178) + Entries in the routes definition have changed causing a traceback during rout config file writing. This patch update addresses the issue by extracting the new entries properly.- BuildRequire pkgconfig(udev) instead of udev: allow OBS to shortcut through the -mini flavor.- Add cloud-init-no-tempnet-oci.patch (bsc#1161132, bsc#1161133) + Do not attempt to configure an ephemeral network on OCI. We boot off iSCSI and the network is up. Just read the data.- Add patch to build properly with python 3.8: * 0001-Make-tests-work-with-Python-3.8-139.patch- Update to version 19.4 + Remove patches included upstream: - cloud-init-after-wicked.patch - cloud-init-noresolv-merge-no-dns-data.diff - cloud-init-renderer-detect.patch - cloud-init-trigger-udev.patch + Removed patches merged with cloud-init-mix-static-dhcp.patch - cloud-init-proper-ipv6-setting.patch - cloud-init-static-net.patch + Added cloud-init-mix-static-dhcp.patch (bsc#1157894) + Forward port cloud-init-sysconf-path.patch + doc: specify _ over - in cloud config modules + [Joshua Powers] (LP: #1293254) + tools: Detect python to use via env in migrate-lp-user-to-github + [Adam Dobrawy] + Partially revert "fix unlocking method on FreeBSD" (#116) + tests: mock uid when running as root (#113) + [Joshua Powers] (LP: #1856096) + cloudinit/netinfo: remove unused getgateway (#111) + docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823) + doc: add kernel command line option to user data (#105) + [Joshua Powers] (LP: #1846524) + config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006) + azure: avoid re-running cloud-init when instance-id is byte-swapped + (#84) [AOhassan] + fix unlocking method on FreeBSD [Igor Galić] (LP: #1854594) + debian: add reference to the manpages [Joshua Powers] + ds_identify: if /sys is not available use dmidecode (#42) + [Igor Galić] (LP: #1852442) + docs: add cloud-id manpage [Joshua Powers] + docs: add cloud-init-per manpage [Joshua Powers] + docs: add cloud-init manpage [Joshua Powers] + docs: add additional details to per-instance/once [Joshua Powers] + Update doc-requirements.txt [Joshua Powers] + doc-requirements: add missing dep [Joshua Powers] + dhcp: Support RedHat dhcp rfc3442 lease format for option 121 (#76) + [Eric Lafontaine] (LP: #1850642) + network_state: handle empty v1 config (#45) (LP: #1852496) + docs: Add document on how to report bugs [Joshua Powers] + Add an Amazon distro in the redhat OS family [Frederick Lefebvre] + removed a couple of "the"s [gaughen] + docs: fix line length and remove highlighting [Joshua Powers] + docs: Add security.md to readthedocs [Joshua Powers] + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + Revert "travis: only run CI on pull requests" + doc: update links on README.md [Joshua Powers] + doc: Updates to wording of README.md [Joshua Powers] + Add security.md [Joshua Powers] + setup.py: Amazon Linux sets libexec to /usr/libexec (#52) + [Frederick Lefebvre] + Fix linting failure in test_url_helper (#83) [Eric Lafontaine] + url_helper: read_file_or_url should pass headers param into readurl + (#66) (LP: #1854084) + dmidecode: log result *after* stripping n [Igor Galić] + cloud_tests: add azure platform support to integration tests + [ahosmanmsft] + set_passwords: support for FreeBSD (#46) [Igor Galić] + tools: migrate-lp-user-to-github removes repo_dir if created (#35) + Correct jumbled documentation for cc_set_hostname module (#64) + [do3meli] (LP: #1853543) + FreeBSD: fix for get_linux_distro() and lru_cache (#59) + [Igor Galić] (LP: #1815030) + ec2: Add support for AWS IMDS v2 (session-oriented) (#55) + tests: Fix cloudsigma tests when no dmidecode data is present. (#57) + [Scott Moser] + net: IPv6, accept_ra, slaac, stateless (#51) + [Harald] (LP: #1806014, #1808647) + docs: Update the configdrive datasource links (#44) + [Joshua Powers] (LP: #1852461) + distro: correctly set usr_lib_exec path for FreeBSD distro (#40) + [Igor Galić] (LP: #1852491) + azure: support secondary ipv6 addresses (#33) + Fix metadata check when local-hostname is null (#32) + [Mark Goddard] (LP: #1852100) + switch default FreeBSD salt minion pkg from py27 to py36 + [Dominic Schlegel] + travis: only run CI on pull requests + add data-server dns entry as new metadata server detection [Joshua Hügli] + pycodestyle: remove unused local variable + reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta] + docs: touchups in rtd intro and README.md + doc: update launchpad git refs to github + github: drop pull-request template to prepare for migration + tools: add migrate-lp-user-to-github script to link LP to github + github: new basic project readme - From 19.3 + azure: support matching dhcp route-metrics for dual-stack ipv4 ipv6 + (LP: #1850308) + configdrive: fix subplatform config-drive for /config-drive source + [David Kindred] (LP: #1849731) + DataSourceSmartOS: reconfigure network on each boot + [Mike Gerdts] (LP: #1765801) + Add config for ssh-key import and consuming user-data [Pavel Zakharov] + net: fix subnet_is_ipv6() for stateless|stateful + [Harald Jensås] (LP: #1848690) + OVF: disable custom script execution by default [Xiaofeng Wang] + cc_puppet: Implement csr_attributes.yaml support [Matthias Baur] + cloud-init.service: on centos/fedora/redhat wait on NetworkManager.service + (LP: #1843334) + azure: Do not lock user on instance id change [Sam Eiderman] (LP: #1849677) + net/netplan: use ipv6-mtu key for specifying ipv6 mtu values + Fix usages of yaml, and move yaml_dump to safeyaml.dumps. (LP: #1849640) + exoscale: Increase url_max_wait to 120s. [Chris Glass] + net/sysconfig: fix available check on SUSE distros + [Robert Schweikert] (LP: #1849378) + docs: Fix incorrect Azure IMDS IP address [Joshua Powers] (LP: #1849508) + introduce .travis.yml + net: enable infiniband support in eni and sysconfig renderers + [Darren Birkett] (LP: #1847114) + guestcust_util: handle special characters in config file [Xiaofeng Wang] + fix some more typos in comments [Dominic Schlegel] + replace any deprecated log.warn with log.warning + [Dominic Schlegel] (LP: #1508442) + net: handle openstack dhcpv6-stateless configuration + [Harald Jensås] (LP: #1847517) + Add .venv/ to .gitignore [Dominic Schlegel] + Small typo fixes in code comments. [Dominic Schlegel] + cloud_test/lxd: Retry container delete a few times + Add Support for e24cloud to Ec2 datasource. (LP: #1696476) + Add RbxCloud datasource [Adam Dobrawy] + get_interfaces: don't exclude bridge and bond members (LP: #1846535) + Add support for Arch Linux in render-cloudcfg [Conrad Hoffmann] + util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary + (LP: #1801364) + debian/ubuntu: add missing word to netplan/ENI header (LP: #1845669) + ovf: do not generate random instance-id for IMC customization path + sysconfig: only write resolv.conf if network_state has DNS values + (LP: #1843634) + sysconfig: use distro variant to check if available (LP: #1843584) + systemd/cloud-init.service.tmpl: start after wicked.service + [Robert Schweikert] + docs: fix zstack documentation lints + analyze/show: remove trailing space in output + Add missing space in warning: "not avalid seed" [Brian Candler] + pylintrc: add 'enter_context' to generated-members list + Add datasource for ZStack platform. [Shixin Ruan] (LP: #1841181) + docs: organize TOC and update summary of project [Joshua Powers] + tools: make clean now cleans the dev directory, not the system + docs: create cli specific page [Joshua Powers] + docs: added output examples to analyze.rst [Joshua Powers] + docs: doc8 fixes for instancedata page [Joshua Powers] + docs: clean up formatting, organize boot page [Joshua Powers] + net: add is_master check for filtering device list (LP: #1844191) + docs: more complete list of availability [Joshua Powers] + docs: start FAQ page [Joshua Powers] + docs: cleanup output & order of datasource page [Joshua Powers] + Brightbox: restrict detection to require full domain match .brightbox.com + VMWware: add option into VMTools config to enable/disable custom script. + [Xiaofeng Wang] + net,Oracle: Add support for netfailover detection + atomic_helper: add DEBUG logging to write_file (LP: #1843276) + doc: document doc, create makefile and tox target [Joshua Powers] + .gitignore: ignore files produced by package builds + docs: fix whitespace, spelling, and line length [Joshua Powers] + docs: remove unnecessary file in doc directory [Joshua Powers] + Oracle: Render secondary vnic IP and MTU values only + exoscale: fix sysconfig cloud_config_modules overrides (LP: #1841454) + net/cmdline: refactor to allow multiple initramfs network config sources + ubuntu-drivers: call db_x_loadtemplatefile to accept NVIDIA EULA + (LP: #1840080) + Add missing #cloud-config comment on first example in documentation. + [Florian Müller] + ubuntu-drivers: emit latelink=true debconf to accept nvidia eula + (LP: #1840080) + DataSourceOracle: prefer DS network config over initramfs + format.rst: add text/jinja2 to list of content types (+ cleanups) + Add GitHub pull request template to point people at hacking doc + cloudinit/distros/parsers/sys_conf: add docstring to SysConf + pyflakes: remove unused variable [Joshua Powers] + Azure: Record boot timestamps, system information, and diagnostic events + [Anh Vo] + DataSourceOracle: configure secondary NICs on Virtual Machines + distros: fix confusing variable names + azure/net: generate_fallback_nic emits network v2 config instead of v1 + Add support for publishing host keys to GCE guest attributes [Rick Wright] + New data source for the Exoscale.com cloud platform [Chris Glass] + doc: remove intersphinx extension + cc_set_passwords: rewrite documentation (LP: #1838794) + net/cmdline: split interfaces_by_mac and init network config determination + stages: allow data sources to override network config source order + cloud_tests: updates and fixes + Fix bug rendering MTU on bond or vlan when input was netplan. (LP: #1836949) + net: update net sequence, include wait on netdevs, opensuse netrules path (LP: #1817368)- Add cloud-init-proper-ipv6-setting.patch (bsc#1156139) + Set proper IPv6 interface variable in ifcfg file- Update cloud-init-write-routes.patch (bsc#1155376) + Write a route's destination network in CIDR notation instead of using the netmask. This provides support for correctly recording IPv6 routes.- Add cloud-init-renderer-detect.patch (bsc#1154092, boo#1142988) + Short curcuit the conditional for identifying the sysconfig renderer. If we find ifup/ifdown accept the renderer as available.- Add cloud-init-break-resolv-symlink.patch (bsc#1151488) + If /etc/resolv.conf is a symlink break it. This will avoid netconfig from clobbering the changes cloud-init applied.- Update to cloud-init 19.2 (bsc#1099358, bsc#1145622) + Remove, included upstream - cloud-init-detect-nova.diff - cloud-init-add-static-routes.diff + net: add rfc3442 (classless static routes) to EphemeralDHCP (LP: #1821102) + templates/ntp.conf.debian.tmpl: fix missing newline for pools (LP: #1836598) + Support netplan renderer in Arch Linux [Conrad Hoffmann] + Fix typo in publicly viewable documentation. [David Medberry] + Add a cdrom size checker for OVF ds to ds-identify [Pengpeng Sun] (LP: #1806701) + VMWare: Trigger the post customization script via cc_scripts module. [Xiaofeng Wang] (LP: #1833192) + Cloud-init analyze module: Added ability to analyze boot events. [Sam Gilson] + Update debian eni network configuration location, retain Ubuntu setting [Janos Lenart] + net: skip bond interfaces in get_interfaces [Stanislav Makar] (LP: #1812857) + Fix a couple of issues raised by a coverity scan + Add missing dsname for Hetzner Cloud datasource [Markus Schade] + doc: indicate that netplan is default in Ubuntu now + azure: add region and AZ properties from imds compute location metadata + sysconfig: support more bonding options [Penghui Liao] + cloud-init-generator: use libexec path to ds-identify on redhat systems (LP: #1833264) + tools/build-on-freebsd: update to python3 [Gonéri Le Bouder] + Allow identification of OpenStack by Asset Tag [Mark T. Voelker] (LP: #1669875) + Fix spelling error making 'an Ubuntu' consistent. [Brian Murray] + run-container: centos: comment out the repo mirrorlist [Paride Legovini] + netplan: update netplan key mappings for gratuitous-arp (LP: #1827238) + freebsd: fix the name of cloudcfg VARIANT [Gonéri Le Bouder] + freebsd: ability to grow root file system [Gonéri Le Bouder] + freebsd: NoCloud data source support [Gonéri Le Bouder] (LP: #1645824) + Azure: Return static fallback address as if failed to find endpoint [Jason Zions (MSFT)]- Add cloud-init-after-wicked.patch - Change the service order, the cloud-init service wants to run after networking is started- Add cloud-init-noresolv-merge-no-dns-data.diff - Avoid writing resolv.conf if the network configuration contains no dns entries.- Follow up to update cloud-init-trigger-udev.patch (bsc#1144363) - In this implementation the "name" is not yet an attribute, use get() to obtain the value from a dict. Source code version confusion.- Add cloud-init-add-static-routes.diff (bsc#1141969) + Properly handle static routes. The EphemeralDHCP context manager did not parse or handle rfc3442 classless static routes which prevented reading datasource metadata in some clouds.- Update cloud-init-trigger-udev.patch (bsc#1144363) - The __str__ implementation no longer delivers the name of the interface, use the "name" attribute instead to form a proper path in the sysfs tree- Update cloud-init-write-routes.patch (boo#1144881, bsc#1148645) + If no routes are set for a subnet but the subnet has a gateway specified, set the gateway as the default route for the interface- Follow the ever changing inconsistencies of version definitions and detection in the build service. + No more suse_version in SUSE internal instance for SLES 15 SP1- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to shortcut the build queues by allowing usage of systemd-mini- Update to version 19.1 (bsc#1136440, bsc#1129124) + Remove, included upstream - fix-default-systemd-unit-dir.patch - cloud-init-sysconf-ethsetup.patch - cloud-init-handle-def-route-set.patch - cloud-init-no-empty-resolv.patch - cloud-init-proper-ipv6-varname.patch + Forward port - cloud-init-trigger-udev.patch + Add cloud-init-detect-nova.diff (bsc#1136440) + Modify cloud-init-python2-sigpipe.patch, import signal and constants + Update spec to account for new location of bash completion + freebsd: add chpasswd pkg in the image [Gonéri Le Bouder] + tests: add Eoan release [Paride Legovini] + cc_mounts: check if mount -a on no-change fstab path [Jason Zions (MSFT)] (LP: #1825596) + replace remaining occurrences of LOG.warn [Daniel Watkins] + DataSourceAzure: Adjust timeout for polling IMDS [Anh Vo] + Azure: Changes to the Hyper-V KVP Reporter [Anh Vo] + git tests: no longer show warning about safe yaml. + tools/read-version: handle errors [Chad Miller] + net/sysconfig: only indicate available on known sysconfig distros (LP: #1819994) + packages: update rpm specs for new bash completion path [Daniel Watkins] (LP: #1825444) + test_azure: mock util.SeLinuxGuard where needed [Jason Zions (MSFT)] (LP: #1825253) + setup.py: install bash completion script in new location [Daniel Watkins] + mount_cb: do not pass sync and rw options to mount [Gonéri Le Bouder] (LP: #1645824) + cc_apt_configure: fix typo in apt documentation [Dominic Schlegel] + Revert "DataSource: move update_events from a class to an instance..." [Daniel Watkins] + Change DataSourceNoCloud to ignore file system label's case. [Risto Oikarinen] + cmd:main.py: Fix missing 'modules-init' key in modes dict [Antonio Romito] (LP: #1815109) + ubuntu_advantage: rewrite cloud-config module + Azure: Treat _unset network configuration as if it were absent [Jason Zions (MSFT)] (LP: #1823084) + DatasourceAzure: add additional logging for azure datasource [Anh Vo] + cloud_tests: fix apt_pipelining test-cases + Azure: Ensure platform random_seed is always serializable as JSON. [Jason Zions (MSFT)] + net/sysconfig: write out SUSE-compatible IPv6 config [Robert Schweikert] + tox: Update testenv for openSUSE Leap to 15.0 [Thomas Bechtold] + net: Fix ipv6 static routes when using eni renderer [Raphael Glon] (LP: #1818669) + Add ubuntu_drivers config module [Daniel Watkins] + doc: Refresh Azure walinuxagent docs [Daniel Watkins] + tox: bump pylint version to latest (2.3.1) [Daniel Watkins] + DataSource: move update_events from a class to an instance attribute [Daniel Watkins] (LP: #1819913) + net/sysconfig: Handle default route setup for dhcp configured NICs [Robert Schweikert] (LP: #1812117) + DataSourceEc2: update RELEASE_BLOCKER to be more accurate [Daniel Watkins] + cloud-init-per: POSIX sh does not support string subst, use sed (LP: #1819222) + Support locking user with usermod if passwd is not available. + Example for Microsoft Azure data disk added. [Anton Olifir] + clean: correctly determine the path for excluding seed directory [Daniel Watkins] (LP: #1818571) + helpers/openstack: Treat unknown link types as physical [Daniel Watkins] (LP: #1639263) + drop Python 2.6 support and our NIH version detection [Daniel Watkins] + tip-pylint: Fix assignment-from-return-none errors + net: append type:dhcp[46] only if dhcp[46] is True in v2 netconfig [Kurt Stieger] (LP: #1818032) + cc_apt_pipelining: stop disabling pipelining by default [Daniel Watkins] (LP: #1794982) + tests: fix some slow tests and some leaking state [Daniel Watkins] + util: don't determine string_types ourselves [Daniel Watkins] + cc_rsyslog: Escape possible nested set [Daniel Watkins] (LP: #1816967) + Enable encrypted_data_bag_secret support for Chef [Eric Williams] (LP: #1817082) + azure: Filter list of ssh keys pulled from fabric [Jason Zions (MSFT)] CVE-2019-0816 + doc: update merging doc with fixes and some additional details/examples + tests: integration test failure summary to use traceback if empty error + This is to fix https://bugs.launchpad.net/cloud-init/+bug/1812676 [Vitaly Kuznetsov] + EC2: Rewrite network config on AWS Classic instances every boot [Guilherme G. Piccoli] (LP: #1802073) + netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries (LP: #1779672) + netplan: Don't render yaml aliases when dumping netplan (LP: #1815051) + add PyCharm IDE .idea/ path to .gitignore [Dominic Schlegel] + correct grammar issue in instance metadata documentation [Dominic Schlegel] (LP: #1802188) + clean: cloud-init clean should not trace when run from within cloud_dir (LP: #1795508) + Resolve flake8 comparison and pycodestyle over-ident issues [Paride Legovini] + opennebula: also exclude epochseconds from changed environment vars (LP: #1813641) + systemd: Render generator from template to account for system differences. [Robert Schweikert] + sysconfig: On SUSE, use STARTMODE instead of ONBOOT [Robert Schweikert] (LP: #1799540) + flake8: use ==/!= to compare str, bytes, and int literals [Paride Legovini] + opennebula: exclude EPOCHREALTIME as known bash env variable with a delta (LP: #1813383) + tox: fix disco httpretty dependencies for py37 (LP: #1813361) + run-container: uncomment baseurl in yum.repos.d/*.repo when using a proxy [Paride Legovini] + lxd: install zfs-linux instead of zfs meta package [Johnson Shi] (LP: #1799779) + net/sysconfig: do not write a resolv.conf file with only the header. [Robert Schweikert] + net: Make sysconfig renderer compatible with Network Manager. [Eduardo Otubo] + cc_set_passwords: Fix regex when parsing hashed passwords [Marlin Cremers] (LP: #1811446) + net: Wait for dhclient to daemonize before reading lease file [Jason Zions] (LP: #1794399) + [Azure] Increase retries when talking to Wireserver during metadata walk [Jason Zions] + Add documentation on adding a datasource. + doc: clean up some datasource documentation. + ds-identify: fix wrong variable name in ovf_vmware_transport_guestinfo. + Scaleway: Support ssh keys provided inside an instance tag. [PORTE Loïc] + OVF: simplify expected return values of transport functions. + Vmware: Add support for the com.vmware.guestInfo OVF transport. (LP: #1807466) + HACKING.rst: change contact info to Josh Powers + Update to pylint 2.2.2.- Update cloud-init-write-routes.patch (bsc#1132692) + Properly accumulate all the defined routes for a given network device. Previously only the last defined route was written to the routes file.- Update cloud-init-trigger-udev.patch (bsc#1125950) + Write the udev rules to a different file than the default + Settle udev if not all configured devices are in the device tree to avoid race condition between udev and cloud-init- Add cloud-init-trigger-udev.patch (bsc#1125950) + When the user configures a new rules file for network devices the rules may not apply immediately, trigger udevadm- Modify cloud-init-write-routes.patch (bsc#1125992) + Fix the order of calls, the SUSE implementation of route config file writing must clobber the default implementation.- Add cloud-init-proper-ipv6-varname.patch (bsc#1126101) + Use the proper name to designate IPv6 addresses in ifcfg-* files- Modify cloud-init-write-routes.patch (boo#1123694) + Drop a '-' in the route file for the last column- Add cloud-init-no-empty-resolv.patch (bsc#1119397)- Update to version 18.5 (bsc#1121878, boo#1116767) + Remove 0001-Fix-the-service-order-for-SUSE-distributions.patch 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch included upstream + Forward port cloud-init-sysconf-ethsetup.patch + Add cloud-init-write-routes.patch + Add cloud-init-handle-def-route-set.patch + tests: add Disco release [Joshua Powers] + net: render 'metric' values in per-subnet routes (LP: #1805871) + write_files: add support for appending to files. [James Baxter] + config: On ubuntu select cloud archive mirrors for armel, armhf, arm64. (LP: #1805854) + dhclient-hook: cleanups, tests and fix a bug on 'down' event. + NoCloud: Allow top level 'network' key in network-config. (LP: #1798117) + ovf: Fix ovf network config generation gateway/routes (LP: #1806103) + azure: detect vnet migration via netlink media change event [Tamilmani Manoharan] + Azure: fix copy/paste error in error handling when reading azure ovf. + [Adam DePue] + tests: fix incorrect order of mocks in test_handle_zfs_root. + doc: Change dns_nameserver property to dns_nameservers. [Tomer Cohen] + OVF: identify label iso9660 filesystems with label 'OVF ENV'. + logs: collect-logs ignore instance-data-sensitive.json on non-root user (LP: #1805201) + net: Ephemeral*Network: add connectivity check via URL + azure: _poll_imds only retry on 404. Fail on Timeout (LP: #1803598) + resizefs: Prefix discovered devpath with '/dev/' when path does not exist [Igor Galić] + azure: retry imds polling on requests.Timeout (LP: #1800223) + azure: Accept variation in error msg from mount for ntfs volumes [Jason Zions] (LP: #1799338) + azure: fix regression introduced when persisting ephemeral dhcp lease [asakkurr] + azure: add udev rules to create cloud-init Gen2 disk name symlinks (LP: #1797480) + tests: ec2 mock missing httpretty user-data and instance-identity routes + azure: remove /etc/netplan/90-hotplug-azure.yaml when net from IMDS + azure: report ready to fabric after reprovision and reduce logging [asakkurr] (LP: #1799594) + query: better error when missing read permission on instance-data + instance-data: fallback to instance-data.json if sensitive is absent. (LP: #1798189) + docs: remove colon from network v1 config example. [Tomer Cohen] + Add cloud-id binary to packages for SUSE [Jason Zions] + systemd: On SUSE ensure cloud-init.service runs before wicked [Robert Schweikert] (LP: #1799709) + update detection of openSUSE variants [Robert Schweikert] + azure: Add apply_network_config option to disable network from IMDS (LP: #1798424) + Correct spelling in an error message (udevadm). [Katie McLaughlin] + tests: meta_data key changed to meta-data in ec2 instance-data.json (LP: #1797231) + tests: fix kvm integration test to assert flexible config-disk path (LP: #1797199) + tools: Add cloud-id command line utility + instance-data: Add standard keys platform and subplatform. Refactor ec2. + net: ignore nics that have "zero" mac address. (LP: #1796917) + tests: fix apt_configure_primary to be more flexible + Ubuntu: update sources.list to comment out deb-src entries. (LP: #74747)- Add cloud-init-ostack-metadat-dencode.patch (bsc#1101894)- Add cloud-init-static-net.patch (boo#1114160)- Update to version 18.4 (bsc#1087331, bsc#1097388, boo#1111427, bsc#1095627) + Remove cloud-init-no-user-lock-if-already-locked.patch cloud-init 18.4 is not supported on SLE 11 code base + Remove 0001-Support-chrony-configuration-lp-1731619.patch Included upstream + Remove 0003-Distro-dependent-chrony-config-file.patch Included upstream + Remove 0001-switch-to-using-iproute2-tools.patch Included upstream + Remove cloud-init-no-python-linux-dist.patch Included upstream + Remove cloud-init-no-trace-empt-sect.patch Included upstream + Remove cloud-init-setpath-dsitentify.patch Included upstream + Modify fix-default-systemd-unit-dir.patch Use pkg-config, only modify the generator + Remove cloud-init-sysconfig-netpathfix.patch Fixed upstream + Removed cloud-init-skip-ovf-tests.patch Fixed upstream + Removed cloud-init-translate-netconf-ipv4-keep-gw.patch Fixed upstream + Add cloud-init-template-py2.patch avoid Python 3 dependency when we build for distros with Python 2 support + Add 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch + Add 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch + Add cloud-init-sysconf-path.patch + Add cloud-init-sysconf-ethsetup.patch + Add 0001-Fix-the-service-order-for-SUSE-distributions.patch + Add dhcp-client as requirement cloud-init uses dhclient to setup temporary network for metadata retrieval. THis is needed until lp#1733226 is addressed + add rtd example docs about new standardized keys + use ds._crawled_metadata instance attribute if set when writing instance-data.json + ec2: update crawled metadata. add standardized keys + tests: allow skipping an entire cloud_test without running. + tests: disable lxd tests on cosmic + cii-tests: use unittest2.SkipTest in ntp_chrony due to new deps + lxd: adjust to snap installed lxd. + docs: surface experimental doc in instance-data.json + tests: fix ec2 integration tests. process meta_data instead of meta-data + Add support for Infiniband network interfaces (IPoIB). [Mark Goddard] + cli: add cloud-init query subcommand to query instance metadata + tools/tox-venv: update for new features. + pylint: ignore warning assignment-from-no-return for _write_network + stages: Fix bug causing datasource to have incorrect sys_cfg. (LP: #1787459) + Remove dead-code _write_network distro implementations. + net_util: ensure static configs have netmask in translate_network result [Thomas Berger] (LP: #1792454) + Fall back to root:root on syslog permissions if other options fail. [Robert Schweikert] + tests: Add mock for util.get_hostname. [Robert Schweikert] (LP: #1792799) + ds-identify: doc string cleanup. + OpenStack: Support setting mac address on bond. [Fabian Wiesel] (LP: #1682064) + bash_completion/cloud-init: fix shell syntax error. + EphemeralIPv4Network: Be more explicit when adding default route. (LP: #1792415) + OpenStack: support reading of newer versions of metdata. + OpenStack: fix bug causing 'latest' version to be used from network. (LP: #1792157) + user-data: jinja template to render instance-data.json in cloud-config (LP: #1791781) + config: disable ssh access to a configured user account + tests: print failed testname instead of docstring upon failure + tests: Disallow use of util.subp except for where needed. + sysconfig: refactor sysconfig to accept distro specific templates paths + Add unit tests for config/cc_ssh.py [Francis Ginther] + Fix the built-in cloudinit/tests/helpers:skipIf + read-version: enhance error message [Joshua Powers] + hyperv_reporting_handler: simplify threaded publisher + VMWare: Fix a network config bug in vm with static IPv4 and no gateway. [Pengpeng Sun] (LP: #1766538) + logging: Add logging config type hyperv for reporting via Azure KVP [Andy Liu] + tests: disable other snap test as well [Joshua Powers] + tests: disable snap, fix write_files binary [Joshua Powers] + Add datasource Oracle Compute Infrastructure (OCI). + azure: allow azure to generate network configuration from IMDS per boot. + Scaleway: Add network configuration to the DataSource [Louis Bouchard] + docs: Fix example cloud-init analyze command to match output. [Wesley Gao] + netplan: Correctly render macaddress on a bonds and bridges when provided. (LP: #1784699) + tools: Add 'net-convert' subcommand command to 'cloud-init devel'. + redhat: remove ssh keys on new instance. (LP: #1781094) + Use typeset or local in profile.d scripts. (LP: #1784713) + OpenNebula: Fix null gateway6 [Akihiko Ota] (LP: #1768547) + oracle: fix detect_openstack to report True on OracleCloud.com DMI data (LP: #1784685) + tests: improve LXDInstance trying to workaround or catch bug. + update_metadata re-config on every boot comments and tests not quite right [Mike Gerdts] + tests: Collect build_info from system if available. + pylint: Fix pylint warnings reported in pylint 2.0.0. + get_linux_distro: add support for rhel via redhat-release. + get_linux_distro: add support for centos6 and rawhide flavors of redhat (LP: #1781229) + tools: add '--debug' to tools/net-convert.py + tests: bump the version of paramiko to 2.4.1. + docs: note in rtd about avoiding /tmp when writing files (LP: #1727876) + ubuntu,centos,debian: get_linux_distro to align with platform.dist (LP: #1780481) + Fix boothook docs on environment variable name (INSTANCE_I -> INSTANCE_ID) [Marc Tamsky] + update_metadata: a datasource can support network re-config every boot + tests: drop salt-minion integration test (LP: #1778737) + Retry on failed import of gpg receive keys. + tools: Fix run-container when neither source or binary package requested. + docs: Fix a small spelling error. [Oz N Tiram] + tox: use simplestreams from git repository rather than bzr. - From 18.3 + docs: represent sudo:false in docs for user_groups config module + Explicitly prevent `sudo` access for user module [Jacob Bednarz] (LP: #1771468) + lxd: Delete default network and detach device if lxd-init created them. (LP: #1776958) + openstack: avoid unneeded metadata probe on non-openstack platforms (LP: #1776701) + stages: fix tracebacks if a module stage is undefined or empty [Robert Schweikert] (LP: #1770462) + Be more safe on string/bytes when writing multipart user-data to disk. (LP: #1768600) + Fix get_proc_env for pids that have non-utf8 content in environment. (LP: #1775371) + tests: fix salt_minion integration test on bionic and later + tests: provide human-readable integration test summary when --verbose + tests: skip chrony integration tests on lxd running artful or older + test: add optional --preserve-instance arg to integraiton tests + netplan: fix mtu if provided by network config for all rendered types (LP: #1774666) + tests: remove pip install workarounds for pylxd, take upstream fix. + subp: support combine_capture argument. + tests: ordered tox dependencies for pylxd install + util: add get_linux_distro function to replace platform.dist [Robert Schweikert] (LP: #1745235) + pyflakes: fix unused variable references identified by pyflakes 2.0.0. + Do not use the systemd_prefix macro, not available in this environment [Robert Schweikert] + doc: Add config info to ec2, openstack and cloudstack datasource docs + Enable SmartOS network metadata to work with netplan via per-subnet routes [Dan McDonald] (LP: #1763512) + openstack: Allow discovery in init-local using dhclient in a sandbox. (LP: #1749717) + tests: Avoid using https in httpretty, improve HttPretty test case. (LP: #1771659) + yaml_load/schema: Add invalid line and column nums to error message + Azure: Ignore NTFS mount errors when checking ephemeral drive [Paul Meyer] + packages/brpm: Get proper dependencies for cmdline distro. + packages: Make rpm spec files patch in package version like in debs. + tools/run-container: replace tools/run-centos with more generic. + Update version.version_string to contain packaged version. (LP: #1770712) + cc_mounts: Do not add devices to fstab that are already present. [Lars Kellogg-Stedman] + ds-identify: ensure that we have certain tokens in PATH. (LP: #1771382) + tests: enable Ubuntu Cosmic in integration tests [Joshua Powers] + read_file_or_url: move to url_helper, fix bug in its FileResponse. + cloud_tests: help pylint [Ryan Harper] + flake8: fix flake8 errors in previous commit. + typos: Fix spelling mistakes in cc_mounts.py log messages [Stephen Ford] + tests: restructure SSH and initial connections [Joshua Powers] + ds-identify: recognize container-other as a container, test SmartOS. + cloud-config.service: run After snap.seeded.service. (LP: #1767131) + tests: do not rely on host /proc/cmdline in test_net.py [Lars Kellogg-Stedman] (LP: #1769952) + ds-identify: Remove dupe call to is_ds_enabled, improve debug message. + SmartOS: fix get_interfaces for nics that do not have addr_assign_type. + tests: fix package and ca_cert cloud_tests on bionic (LP: #1769985) + ds-identify: make shellcheck 0.4.6 happy with ds-identify. + pycodestyle: Fix deprecated string literals, move away from flake8. + azure: Add reported ready marker file. [Joshua Chan] (LP: #1765214) + tools: Support adding a release suffix through packages/bddeb. + FreeBSD: Invoke growfs on ufs filesystems such that it does not prompt. [Harm Weites] (LP: #1404745) + tools: Re-use the orig tarball in packages/bddeb if it is around. + netinfo: fix netdev_pformat when a nic does not have an address assigned. (LP: #1766302) + collect-logs: add -v flag, write to stderr, limit journal to single boot. (LP: #1766335) + IBMCloud: Disable config-drive and nocloud only if IBMCloud is enabled. (LP: #1766401) + Add reporting events and log_time around early source of blocking time [Ryan Harper] + IBMCloud: recognize provisioning environment during debug boots. (LP: #1767166) + net: detect unstable network names and trigger a settle if needed [Ryan Harper] (LP: #1766287) + IBMCloud: improve documentation in datasource. + sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov] + packages/debian/control.in: add missing dependency on iproute2. (LP: #1766711) + DataSourceSmartOS: add locking of serial device. [Mike Gerdts] (LP: #1746605) + DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] (LP: #1765085) + DataSourceSmartOS: list() should always return a list [Mike Gerdts] (LP: #1763480) + schema: in validation, raise ImportError if strict but no jsonschema. + set_passwords: Add newline to end of sshd config, only restart if updated. (LP: #1677205) + pylint: pay attention to unused variable warnings. + doc: Add documentation for AliYun datasource. [Junjie Wang] + Schema: do not warn on duplicate items in commands. (LP: #1764264) + net: Depend on iproute2's ip instead of net-tools ifconfig or route + DataSourceSmartOS: fix hang when metadata service is down [Mike Gerdts] (LP: #1667735) + DataSourceSmartOS: change default fs on ephemeral disk from ext3 to ext4. [Mike Gerdts] (LP: #1763511) + pycodestyle: Fix invalid escape sequences in string literals. + Implement bash completion script for cloud-init command line [Ryan Harper] + tools: Fix make-tarball cli tool usage for development + renderer: support unicode in render_from_file. + Implement ntp client spec with auto support for distro selection [Ryan Harper] (LP: #1749722) + Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds. + tests: fix ec2 integration network metadata validation + tests: fix integration tests to support lxd 3.0 release + correct documentation to match correct attribute name usage. [Dominic Schlegel] (LP: #1420018) + cc_resizefs, util: handle no /dev/zfs [Ryan Harper] + doc: Fix links in OpenStack datasource documentation. [Dominic Schlegel] (LP: #1721660)- Add a modified version of fix-default-systemd-unit-dir.patch + Removed pre-maturely, still needs 1 part of the patch- Remove fix-default-systemd-unit-dir.patch + No longer needed, proper systemd config dir is queried from pckg-config- The distribution inidcator is set to suse during template expansion, we do not replace anything set to ubuntu - Do not run cloud-init after network-online, this breaks functionality in cloud-init. Certain parts of the code running in this phase expect to run before the network is on-line. This "re-introduces" boo#1097388. But the changes made are not generic enough. - Root should not be enabled by default. For image builders/users that want root access by default they should provide an appropriate configuration file during image build or image setup- Let distribution default to opensuse/sles (boo#1099340) - do not disable root user to make it easier to work with - Run metadata detection after network-online (boo#1097388)- Re-add generator (bsc#1089824, boo#1093501) + Add cloud-init-setpath-dsitentify.patch, upstream solution to hanle PATH issue + Re-enable th egenerator to reduce effort in cloud-init configuration- Drop the generator (bsc#1089824, boo#1093501) + The generator spawns a script called ds-identify which in turn calls blkid. When the generator executes the environment may or may not be ready. The generator speeds up the boot process in cases where cloud-init is enabled but we are not in an environment where cloud-init should run -> Don't do that.- Update to version 18.2 (bsc#1092637, bsc#1084509) + Forward port cloud-init-python2-sigpipe.patch + Forward port cloud-init-no-python-linux-dist.patch + Add cloud-init-no-trace-empt-sect.patch + Hetzner: Exit early if dmi system-manufacturer is not Hetzner. + Add missing dependency on isc-dhcp-client to trunk ubuntu packaging. + (LP: #1759307) + FreeBSD: resizefs module now able to handle zfs/zpool. + [Dominic Schlegel] (LP: #1721243) + cc_puppet: Revert regression of puppet creating ssl and ssl_cert dirs + Enable IBMCloud datasource in settings.py. + IBMCloud: Initial IBM Cloud datasource. + tests: remove jsonschema from xenial tox environment. + tests: Fix newly added schema unit tests to skip if no jsonschema. + ec2: Adjust ec2 datasource after exception_cb change. + Reduce AzurePreprovisioning HTTP timeouts. + [Douglas Jordan] (LP: #1752977) + Revert the logic of exception_cb in read_url. + [Kurt Garloff] (LP: #1702160, #1298921) + ubuntu-advantage: Add new config module to support + ubuntu-advantage-tools + Handle global dns entries in netplan (LP: #1750884) + Identify OpenTelekomCloud Xen as OpenStack DS. + [Kurt Garloff] (LP: #1756471) + datasources: fix DataSource subclass get_hostname method signature + (LP: #1757176) + OpenNebula: Update network to return v2 config rather than ENI. + [Akihiko Ota] + Add Hetzner Cloud DataSource + net: recognize iscsi root cases without ip= on kernel command line. + (LP: #1752391) + tests: fix flakes warning for unused variable + tests: patch leaked stderr messages from snap unit tests + cc_snap: Add new module to install and configure snapd and snap + packages. + tests: Make pylint happy and fix python2.6 uses of assertRaisesRegex. + netplan: render bridge port-priority values (LP: #1735821) + util: Fix subp regression. Allow specifying subp command as a string. + (LP: #1755965) + doc: fix all warnings issued by 'tox -e doc' + FreeBSD: Set hostname to FQDN. [Dominic Schlegel] (LP: #1753499) + tests: fix run_tree and bddeb + tests: Fix some warnings in tests that popped up with newer python. + set_hostname: When present in metadata, set it before network bringup. + (LP: #1746455) + tests: Centralize and re-use skipTest based on json schema presense. + This commit fixes get_hostname on the AzureDataSource. + [Douglas Jordan] (LP: #1754495) + shellify: raise TypeError on bad input. + Make salt minion module work on FreeBSD. + [Dominic Schlegel] (LP: #1721503) + Simplify some comparisions. [Rémy Léone] + Change some list creation and population to literal. [Rémy Léone] + GCE: fix reading of user-data that is not base64 encoded. (LP: #1752711) + doc: fix chef install from apt packages example in RTD. + Implement puppet 4 support [Romanos Skiadas] (LP: #1446804) + subp: Fix subp usage with non-ascii characters when no system locale. + (LP: #1751051) + salt: configure grains in grains file rather than in minion config. [Daniel Wallace]- Update to version 18.1 (bsc#1085787, bsc#1084749) + Forward port cloud-init-python2-sigpipe.patch + Forward port 0003-Distro-dependent-chrony-config-file.patch partial integration into 0001-Support-chrony-configuration-lp-1731619.patch + Forward port cloud-init-no-python-linux-dist.patch + Remove 0002-Disable-method-deprecation-warning-for-pylint.patch use new cloud-init internal distro detection code + Remove cloud-init-resize-ro-btrfs.patch included upstream + Remove 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch included upstream + OVF: Fix VMware support for 64-bit platforms. [Sankar Tanguturi] + ds-identify: Fix searching for iso9660 OVF cdroms. (LP: #1749980) + SUSE: Fix groups used for ownership of cloud-init.log [Robert Schweikert] + ds-identify: check /writable/system-data/ for nocloud seed. (LP: #1747070) + tests: run nosetests in cloudinit/ directory, fix py26 fallout. + tools: run-centos: git clone rather than tar. + tests: add support for logs with lxd from snap and future lxd 3. (LP: #1745663) + EC2: Fix get_instance_id called against cached datasource pickle. (LP: #1748354) + cli: fix cloud-init status to report running when before result.json (LP: #1747965) + net: accept network-config in netplan format for renaming interfaces (LP: #1709715) + Fix ssh keys validation in ssh_util [Tatiana Kholkina] + docs: Update RTD content for cloud-init subcommands. + OVF: Extend well-known labels to include OVFENV. (LP: #1698669) + Fix potential cases of uninitialized variables. (LP: #1744796) + tests: Collect script output as binary, collect systemd journal, fix lxd. + HACKING.rst: mention setting user name and email via git config. + Azure VM Preprovisioning support. [Douglas Jordan] (LP: #1734991) + tools/read-version: Fix read-version when in a git worktree. + docs: Fix typos in docs and one debug message. [Florian Grignon] + btrfs: support resizing if root is mounted ro. [Robert Schweikert] (LP: #1734787) + OpenNebula: Improve network configuration support. [Akihiko Ota] (LP: #1719157, #1716397, #1736750) + tests: Fix EC2 Platform to return console output as bytes. + tests: Fix attempted use of /run in a test case. + GCE: Improvements and changes to ssh key behavior for default user. [Max Illfelder] (LP: #1670456, #1707033, #1707037, #1707039) + subp: make ProcessExecutionError have expected types in stderr, stdout. + tests: when querying ntp server, do not do dns resolution. + Recognize uppercase vfat disk labels [James Penick] (LP: #1598783) + tests: remove zesty as supported OS to test [Joshua Powers] + Do not log warning on config files that represent None. (LP: #1742479) + tests: Use git hash pip dependency format for pylxd. + tests: add integration requirements text file [Joshua Powers] + MAAS: add check_instance_id based off oauth tokens. (LP: #1712680) + tests: update apt sources list test [Joshua Powers] + tests: clean up image properties [Joshua Powers] + tests: rename test ssh keys to avoid appearance of leaking private keys. [Joshua Powers] + tests: Enable AWS EC2 Integration Testing [Joshua Powers] + cli: cloud-init clean handles symlinks (LP: #1741093) + SUSE: Add a basic test of network config rendering. [Robert Schweikert] + Azure: Only bounce network when necessary. (LP: #1722668) + lint: Fix lints seen by pylint version 1.8.1. + cli: Fix error in cloud-init modules --mode=init. (LP: #1736600)- update cloud-init-sysconfig-netpathfix.patch: * skip checking for files in /etc/sysconfig that never exist on a wickedd based system- Fix logfile permission settings (bsc#1080595) + Add 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch- drop dependency on boto (only used in examples, and should really be ported to botocore/boto3 instead)- Update to version 17.2 (boo#1069635, bsc#1072811) + Add cloud-init-skip-ovf-tests.patch + Add cloud-init-no-python-linux-dist.patch + Add 0001-switch-to-using-iproute2-tools.patch + Add 0001-Support-chrony-configuration-lp-1731619.patch + Add 0002-Disable-method-deprecation-warning-for-pylint.patch + Add 0003-Distro-dependent-chrony-config-file.patch + removed cloud-init-add-variant-cloudcfg.patch replaced by cloud-init-no-python-linux-dist.patch + removed zypp_add_repos.diff included upstream + removed zypp_add_repo_test.patch included upstream + removed cloud-init-hosts-template.patch included upstream + removed cloud-init-more-tasks.patch included upstream + removed cloud-init-final-no-apt.patch included upstream + removed cloud-init-ntp-conf-suse.patch included upstream + removed cloud-init-break-cycle-local-service.patch included upstream + removed cloud-init-reproduce-build.patch included upstream + For the complete changelog see https://launchpad.net/cloud-init/trunk/17.2- patch distribution detection until a fix is delivered to python3 (bsc#997614) add cloud-init-add-variant-cloudcfg.patch- Fix usage of fdupes macro: there is no '-n' parameter to the macro (there would be to fdupes, the command, though).- Add cloud-init-reproduce-build.patch (boo#1069635) + Make builds reproducible- Add cloud-init-resize-ro-btrfs.patch + cc_resizefs fails if the current root is a read-only btrfs subvolume, use an always writeable subvolume instead [bsc#1042913]- Add cloud-init-break-cycle-local-service.patch + Let systemd pull in the default targets. This breaks a cycle- Fix variable name in cloud-init-translate-netconf-ipv4-keep-gw.patch- Add cloud-init-translate-netconf-ipv4-keep-gw.patch (boo#1064854) + Properly insert the gateway information for v1 json network config data- Add cloud-init-ntp-conf-suse.patch + ntp configuration was broken on sles and opensuse lp#1726572- Add cloud-init-hosts-template.patch (bsc#1064594) + Properly expand the /etc/hosst file when manage_etc_hosts is set- Fix sed expression to set distro properly (boo#1063716)- Update to version 17.1 (bsc#1035106) + Version numbering scheme change now YY.NUMBER_OF_RELESE_THAT_YEAR + Remove cloud.cfg.suse, use generated default config file + Remove addopenSUSEBase.patch, included upstream + Remove suseIntegratedHandler.patch, included upstream + Remove openSUSEhostsTemplate.diff, included upstream + Remove cloud-init-handle-no-carrier.patch, included upstream + Remove cloud-init-digital-ocean-datasource.patch, use upstream implementation + Remove cloud-init-digital-ocean-datasource-enable-by-default.patch, use upstream implementation + Remove cloud-init-fix-unicode-handling-binarydecode.patch, included upstream + Remove cloud-init-no-dmidecode-on-ppc64.patch, included upstream + Remove dataSourceOpenNebula.patch, use upstream implementation + Remove setupSUSEsysVInit.diff, included upstream + Remove suseSysVInit.diff, included upstream + Remove cloud-init-finalbeforelogin.patch, don't block login + Remove cloud-init-handle-not-implemented-query.patch, query option removed + Remove cloud-init-spceandtabs-clean.patch, indentation fixed upstream + Remove dynamicInitCmd.diff, different solution from upstream + Added cloud-init-more-tasks.patch, (bsc#1047363) replace cloud-init-finalbeforelogin.patch + Forward port cloud-init-python2-sigpipe.patch + Remove cloud-init-net-eni.patch, included upstream + Remove cloud-init-service.patch, included upstream + Forward port cloud-init-sysconfig-netpathfix.patch + Remove cloud-init-net-sysconfig-lp1665441.patch, included upstream + Remove cloud-init-python26.patch, included upstream + Remove skip-argparse-on-python3.patch + Add cloud-init-tests-set-exec.patch + Add cloud-init-final-no-apt.patch + Add zypp_add_repo_test.patch + doc: document GCE datasource. [Arnd Hannemann] + suse: updates to templates to support openSUSE and SLES. + [Robert Schweikert] (LP: #1718640) + suse: Copy sysvinit files from redhat with slight changes. + [Robert Schweikert] (LP: #1718649) + docs: fix sphinx module schema documentation [Chad Smith] + tests: Add cloudinit package to all test targets [Chad Smith] + Makefile: No longer look for yaml files in obsolete ./bin/. + tests: fix ds-identify unit tests to set EC2_STRICT_ID_DEFAULT. + ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir + [Chad Smith] (LP: #1717627) + Azure: wait longer for SSH pub keys to arrive. + [Paul Meyer] (LP: #1717611) + GCE: Fix usage of user-data. (LP: #1717598) + cmdline: add collect-logs subcommand. [Chad Smith] (LP: #1607345) + CloudStack: consider dhclient lease files named with a hyphen. + (LP: #1717147) + resizefs: Drop check for read-only device file, do not warn on + overlayroot. [Chad Smith] + Do not provide systemd-fsck drop-in which could cause ordering cycles. + [Balint Reczey] (LP: #1717477) + tests: Enable the NoCloud KVM platform [Joshua Powers] + resizefs: pass mount point to xfs_growfs [Dusty Mabe] + vmware: Enable nics before sending the SUCCESS event. [Sankar Tanguturi] + cloud-config modules: honor distros definitions in each module + [Chad Smith] (LP: #1715738, #1715690) + chef: Add option to pin chef omnibus install version + [Ethan Apodaca] (LP: #1462693) + tests: execute: support command as string [Joshua Powers] + schema and docs: Add jsonschema to resizefs and bootcmd modules + [Chad Smith] + tools: Add xkvm script, wrapper around qemu-system [Joshua Powers] + vmware customization: return network config format + [Sankar Tanguturi] (LP: #1675063) + Ec2: only attempt to operate at local mode on known platforms. + (LP: #1715128) + Use /run/cloud-init for tempfile operations. (LP: #1707222) + ds-identify: Make OpenStack return maybe on arch other than intel. + (LP: #1715241) + tests: mock missed openstack metadata uri network_data.json + [Chad Smith] (LP: #1714376) + relocate tests/unittests/helpers.py to cloudinit/tests + [Lars Kellogg-Stedman] + tox: add nose timer output [Joshua Powers] + upstart: do not package upstart jobs, drop ubuntu-init-switch module. + tests: Stop leaking calls through unmocked metadata addresses + [Chad Smith] (LP: #1714117) + distro: allow distro to specify a default locale [Ryan Harper] + tests: fix two recently added tests for sles distro. + url_helper: dynamically import oauthlib import from inside oauth_headers + [Chad Smith] + tox: make xenial environment run with python3.6 + suse: Add support for openSUSE and return SLES to a working state. + [Robert Schweikert] + GCE: Add a main to the GCE Datasource. + ec2: Add IPv6 dhcp support to Ec2DataSource. [Chad Smith] (LP: #1639030) + url_helper: fail gracefully if oauthlib is not available + [Lars Kellogg-Stedman] (LP: #1713760) + cloud-init analyze: fix issues running under python 2. [Andrew Jorgensen] + Configure logging module to always use UTC time. + [Ryan Harper] (LP: #1713158) + Log a helpful message if a user script does not include shebang. + [Andrew Jorgensen] + cli: Fix command line parsing of coniditionally loaded subcommands. + [Chad Smith] (LP: #1712676) + doc: Explain error behavior in user data include file format. + [Jason Butz] + cc_landscape & cc_puppet: Fix six.StringIO use in writing configs + [Chad Smith] (LP: #1699282, #1710932) + schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema + [Chad Smith] + Debian: Remove non-free repositories from apt sources template. + [Joonas Kylmälä] (LP: #1700091) + tools: Add tooling for basic cloud-init performance analysis. + [Chad Smith] (LP: #1709761) + network: add v2 passthrough and fix parsing v2 config with bonds/bridge + params [Ryan Harper] (LP: #1709180) + doc: update capabilities with features available, link doc reference, + cli example [Ryan Harper] + vcloud directory: Guest Customization support for passwords + [Maitreyee Saikia] + ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. + [Chad Smith] (LP: #1709772) + cc_ntp: fallback on timesyncd configuration if ntp is not installable + [Ryan Harper] (LP: #1686485) + net: Reduce duplicate code. Have get_interfaces_by_mac use + get_interfaces. + tests: Fix build tree integration tests [Joshua Powers] + sysconfig: Dont repeat header when rendering resolv.conf + [Ryan Harper] (LP: #1701420) + archlinux: Fix bug with empty dns, do not render 'lo' devices. + (LP: #1663045, #1706593) + cloudinit.net: add initialize_network_device function and tests + [Chad Smith] + makefile: fix ci-deps-ubuntu target [Chad Smith] + tests: adjust locale integration test to parse default locale. + tests: remove 'yakkety' from releases as it is EOL. + tests: Add initial tests for EC2 and improve a docstring. + locale: Do not re-run locale-gen if provided locale is system default. + archlinux: fix set hostname usage of write_file. + [Joshua Powers] (LP: #1705306) + sysconfig: support subnet type of 'manual'. + tools/run-centos: make running with no argument show help. + Drop rand_str() usage in DNS redirection detection + [Bob Aman] (LP: #1088611) + sysconfig: use MACADDR on bonds/bridges to configure mac_address + [Ryan Harper] (LP: #1701417) + net: eni route rendering missed ipv6 default route config + [Ryan Harper] (LP: #1701097) + sysconfig: enable mtu set per subnet, including ipv6 mtu + [Ryan Harper] (LP: #1702513) + sysconfig: handle manual type subnets [Ryan Harper] (LP: #1687725) + sysconfig: fix ipv6 gateway routes [Ryan Harper] (LP: #1694801) + sysconfig: fix rendering of bond, bridge and vlan types. + [Ryan Harper] (LP: #1695092) + Templatize systemd unit files for cross distro deltas. [Ryan Harper] + sysconfig: ipv6 and default gateway fixes. [Ryan Harper] (LP: #1704872) + net: fix renaming of nics to support mac addresses written in upper + case. (LP: #1705147) + tests: fixes for issues uncovered when moving to python 3.6. + (LP: #1703697) + sysconfig: include GATEWAY value if set in subnet + [Ryan Harper] (LP: #1686856) + Scaleway: add datasource with user and vendor data for Scaleway. + [Julien Castets] + Support comments in content read by load_shell_content. + cloudinitlocal fail to run during boot [Hongjiang Zhang] + doc: fix disk setup example table_type options + [Sandor Zeestraten] (LP: #1703789) + tools: Fix exception handling. [Joonas Kylmälä] (LP: #1701527) + tests: fix usage of mock in GCE test. + test_gce: Fix invalid mock of platform_reports_gce to return False + [Chad Smith] + test: fix incorrect keyid for apt repository. + [Joshua Powers] (LP: #1702717) + tests: Update version of pylxd [Joshua Powers] + write_files: Remove log from helper function signatures. + [Andrew Jorgensen] + doc: document the cmdline options to NoCloud [Brian Candler] + read_dmi_data: always return None when inside a container. (LP: #1701325) + requirements.txt: remove trailing white space. + Azure: Add network-config, Refactor net layer to handle duplicate macs. + [Ryan Harper] + Tests: Simplify the check on ssh-import-id [Joshua Powers] + tests: update ntp tests after sntp added [Joshua Powers] + FreeBSD: Make freebsd a variant, fix unittests and + tools/build-on-freebsd. + FreeBSD: fix test failure + FreeBSD: replace ifdown/ifup with "ifconfig down" and "ifconfig up". + [Hongjiang Zhang] (LP: #1697815) + FreeBSD: fix cdrom mounting failure if /mnt/cdrom/secure did not exist. + [Hongjiang Zhang] (LP: #1696295) + main: Don't use templater to format the welcome message + [Andrew Jorgensen] + docs: Automatically generate module docs form schema if present. + [Chad Smith] + debian: fix path comment in /etc/hosts template. + [Jens Sandmann] (LP: #1606406) + suse: add hostname and fully qualified domain to template. + [Jens Sandmann] + write_file(s): Print permissions as octal, not decimal [Andrew Jorgensen] + ci deps: Add --test-distro to read-dependencies to install all deps + [Chad Smith] + tools/run-centos: cleanups and move to using read-dependencies + pkg build ci: Add make ci-deps- target to install pkgs + [Chad Smith] + systemd: make cloud-final.service run before apt daily services. + (LP: #1693361) + selinux: Allow restorecon to be non-fatal. [Ryan Harper] (LP: #1686751) + net: Allow netinfo subprocesses to return 0 or 1. + [Ryan Harper] (LP: #1686751) + net: Allow for NetworkManager configuration [Ryan McCabe] (LP: #1693251) + Use distro release version to determine if we use systemd in redhat spec + [Ryan Harper] + net: normalize data in network_state object + Integration Testing: tox env, pyxld 2.2.3, and revamp framework + [Wesley Wiedenmeier] + Chef: Update omnibus url to chef.io, minor doc changes. [JJ Asghar] + tools: add centos scripts to build and test [Joshua Powers] + Drop cheetah python module as it is not needed by trunk [Ryan Harper] + rhel/centos spec cleanups. + cloud.cfg: move to a template. setup.py changes along the way. + Makefile: add deb-src and srpm targets. use PYVER more places. + makefile: fix python 2/3 detection in the Makefile [Chad Smith] + snap: Removing snapcraft plug line [Joshua Powers] (LP: #1695333) + RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration. + [Andreas Karis] (LP: #1696176) + test: Fix pyflakes complaint of unused import. + [Joshua Powers] (LP: #1695918) + NoCloud: support seed of nocloud from smbios information + [Vladimir Pouzanov] (LP: #1691772) + net: when selecting a network device, use natural sort order + [Marc-Aurèle Brothier] + fix typos and remove whitespace in various docs [Stephan Telling] + systemd: Fix typo in comment in cloud-init.target. [Chen-Han Hsiao] + Tests: Skip jsonschema related unit tests when dependency is absent. + [Chad Smith] (LP: #1695318) + azure: remove accidental duplicate line in merge. + azure: identify platform by well known value in chassis asset tag. + [Chad Smith] (LP: #1693939) + tools/net-convert.py: support old cloudinit versions by using kwargs. + ntp: Add schema definition and passive schema validation. + [Chad Smith] (LP: #1692916) + Fix eni rendering for bridge params that require repeated key for + values. [Ryan Harper] + net: remove systemd link file writing from eni renderer [Ryan Harper] + AliYun: Enable platform identification and enable by default. + [Junjie Wang] (LP: #1638931) + net: fix reading and rendering addresses in cidr format. + [Dimitri John Ledkov] (LP: #1689346, #1684349) + disk_setup: udev settle before attempting partitioning or fs creation. + (LP: #1692093) + GCE: Update the attribute used to find instance SSH keys. + [Daniel Watkins] (LP: #1693582) + nplan: For bonds, allow dashed or underscore names of keys. + [Dimitri John Ledkov] (LP: #1690480) + python2.6: fix unit tests usage of assertNone and format. + test: update docstring on test_configured_list_with_none + fix tools/ds-identify to not write None twice. + tox/build: do not package depend on style requirements. + cc_ntp: Restructure cc_ntp unit tests. [Chad Smith] (LP: #1692794) + flake8: move the pinned version of flake8 up to 3.3.0 + tests: Apply workaround for snapd bug in test case. [Joshua Powers] + RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. + [Andreas Karis] (LP: #1679817, #1685534, #1685532) + disk_setup: fix several issues with gpt disk partitions. (LP: #1692087) + function spelling & docstring update [Joshua Powers] + Fixing wrong file name regression. [Joshua Powers] + tox: move pylint target to 1.7.1 + Fix get_interfaces_by_mac for empty macs (LP: #1692028) + DigitalOcean: remove routes except for the public interface. + [Ben Howard] (LP: #1681531.) + netplan: pass macaddress, when specified, for vlans + [Dimitri John Ledkov] (LP: #1690388) + doc: various improvements for the docs on cc_users_groups. + [Felix Dreissig] + cc_ntp: write template before installing and add service restart + [Ryan Harper] (LP: #1645644) + cloudstack: fix tests to avoid accessing /var/lib/NetworkManager + [Lars Kellogg-Stedman] + tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517) + Actually skip warnings when .skip file is present. + [Chris Brinker] (LP: #1691551) + netplan: fix netplan render_network_state signature. + [Dimitri John Ledkov] (LP: #1685944) + Azure: fix reformatting of ephemeral disks on resize to large types. + (LP: #1686514) + Revert "tools/net-convert: fix argument order for render_network_state" + make deb: Add devscripts dependency for make deb. Cleanup + packages/bddeb. [Chad Smith] (LP: #1685935) + tools/net-convert: fix argument order for render_network_state + [Ryan Harper] (LP: #1685944) + openstack: fix log message copy/paste typo in _get_url_settings + [Lars Kellogg-Stedman] + unittests: fix unittests run on centos [Joshua Powers] + Improve detection of snappy to include os-release and kernel cmdline. + (LP: #1689944) + Add address to config entry generated by _klibc_to_config_entry. + [Julien Castets] (LP: #1691135) + sysconfig: Raise ValueError when multiple default gateways are present. + [Chad Smith] (LP: #1687485) + FreeBSD: improvements and fixes for use on Azure + [Hongjiang Zhang] (LP: #1636345) + Add unit tests for ds-identify, fix Ec2 bug found. + fs_setup: if cmd is specified, use shell interpretation. + [Paul Meyer] (LP: #1687712) + doc: document network configuration defaults policy and formats. + [Ryan Harper] + Fix name of "uri" key in docs for "cc_apt_configure" module + [Felix Dreissig] + tests: Enable artful [Joshua Powers] + nova-lxd: read product_name from environment, not platform. + (LP: #1685810) + Fix yum repo config where keys contain array values + [Dylan Perry] (LP: #1592150) + template: Update debian backports template [Joshua Powers] (LP: #1627293) + rsyslog: replace ~ with stop [Joshua Powers] (LP: #1367899) + Doc: add additional RTD examples [Joshua Powers] (LP: #1459604) + Fix growpart for some cases when booted with root=PARTUUID. + (LP: #1684869) + pylint: update output style to parseable [Joshua Powers] + pylint: fix all logging warnings [Joshua Powers] + CloudStack: Add NetworkManager to list of supported DHCP lease dirs. + [Syed] + net: kernel lies about vlans not stealing mac addresses, when they do + [Dimitri John Ledkov] (LP: #1682871) + ds-identify: Check correct path for "latest" config drive + [Daniel Watkins] (LP: #1673637) + doc: Fix example for resolve.conf configuration. + [Jon Grimm] (LP: #1531582) + Fix examples that reference upstream chef repository. + [Jon Grimm] (LP: #1678145) + doc: correct grammar and improve clarity in merging documentation. + [David Tagatac] + doc: Add missing doc link to snap-config module. [Ryan Harper] + snap: allows for creating cloud-init snap [Joshua Powers] + DigitalOcean: assign IPv4ll address to lowest indexed interface. + [Ben Howard] + DigitalOcean: configure all NICs presented in meta-data. [Ben Howard] + Remove (and/or fix) URL shortener references [Jon Grimm] (LP: #1669727) + HACKING.rst: more info on filling out contributors agreement. + util: teach write_file about copy_mode option + [Lars Kellogg-Stedman] (LP: #1644064) + DigitalOcean: bind resolvers to loopback interface. [Ben Howard] + tests: fix AltCloud tests to not rely on blkid (LP: #1636531) + OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946) + Fix bug that resulted in an attempt to rename bonds or vlans. + (LP: #1669860) + tests: update OpenNebula and Digital Ocean to not rely on host + interfaces. + net: in netplan renderer delete known image-builtin content. + (LP: #1675576) + doc: correct grammar in capabilities.rst [David Tagatac] + ds-identify: fix detecting of maas datasource. (LP: #1677710) + netplan: remove debugging prints, add debug logging [Ryan Harper] + ds-identify: do not write None twice to datasource_list. + support resizing partition and rootfs on system booted without + initramfs. [Steve Langasek] (LP: #1677376) + apt_configure: run only when needed. (LP: #1675185) + OpenStack: identify OpenStack by product 'OpenStack Compute'. + (LP: #1675349) + GCE: Search GCE in ds-identify, consider serial number in check. + (LP: #1674861) + Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325) + Fix filesystem creation when using "partition: auto" + [Jonathan Ballet] (LP: #1634678) + ConfigDrive: support reading config drive data from /config-drive. + (LP: #1673411) + ds-identify: fix detection of Bigstep datasource. (LP: #1674766) + test: add running of pylint [Joshua Powers] + ds-identify: fix bug where filename expansion was left on. + advertise network config v2 support (NETWORK_CONFIG_V2) in features. + Bigstep: fix bug when executing in python3. [root] + Fix unit test when running in a system deployed with cloud-init. + Bounce network interface for Azure when using the built-in path. + [Brent Baude] (LP: #1674685) + cloudinit.net: add network config v2 parsing and rendering [Ryan Harper] + net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317) + net: add renderers for automatically selecting the renderer. + doc: fix config drive doc with regard to unpartitioned disks. + (LP: #1673818) + test: Adding integratiron test for password as list [Joshua Powers] + render_network_state: switch arguments around, do not require target + support 'loopback' as a device type. + Integration Testing: improve testcase subclassing [Wesley Wiedenmeier] + gitignore: adding doc/rtd_html [Joshua Powers] + doc: add instructions for running integration tests via tox. + [Joshua Powers] + test: avoid differences in 'date' output due to daylight savings. + Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837) + Add feature flags to cloudinit.version. [Wesley Wiedenmeier] + tox: add a citest environment + Further fix regression to support 'password' for default user. + fix regression when no chpasswd/list was provided. + Support chpasswd/list being a list in addition to a string. + [Sergio Lystopad] (LP: #1665694) + doc: Fix configuration example for cc_set_passwords module. + [Sergio Lystopad] (LP: #1665773) + net: support both ipv4 and ipv6 gateways in sysconfig. + [Lars Kellogg-Stedman] (LP: #1669504) + net: do not raise exception for > 3 nameservers + [Lars Kellogg-Stedman] (LP: #1670052) + ds-identify: report cleanups for config and exit value. (LP: #1669949) + ds-identify: move default setting for Ec2/strict_id to a global. + ds-identify: record not found in cloud.cfg and always add None. + Support warning if the used datasource is not in ds-identify's list. + tools/ds-identify: make report mode write namespaced results. + Move warning functionality to cloudinit/warnings.py + Add profile.d script for showing warnings on login. + Z99-cloud-locale-test.sh: install and make consistent. + tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id. + tools/ds-identify: disable vmware_guest_customization by default. + tools/ds-identify: ovf identify vmware guest customization. + Identify Brightbox as an Ec2 datasource user. (LP: #1661693) + DatasourceEc2: add warning message when not on AWS. + ds-identify: add reading of datasource/Ec2/strict_id + tools/ds-identify: add support for found or maybe contributing config. + tools/ds-identify: read the seed directory on Ec2 + tools/ds-identify: use quotes in local declarations. + tools/ds-identify: fix documentation of policy setting in a comment. + ds-identify: only run once per boot unless --force is given. + flake8: fix flake8 complaints in previous commit. + net: correct errors in cloudinit/net/sysconfig.py + [Lars Kellogg-Stedman] (LP: #1665441) + ec2_utils: fix MetadataLeafDecoder that returned bytes on empty + apply the runtime configuration written by ds-identify. + ds-identify: fix checking for filesystem label (LP: #1663735) + ds-identify: read ds=nocloud properly (LP: #1663723) + support nova-lxd by reading platform from environment of pid 1. + (LP: #1661797) + ds-identify: change aarch64 to use the default for non-dmi systems. + Remove style checking during build and add latest style checks to tox + [Joshua Powers] (LP: #1652329) + code-style: make master pass pycodestyle (2.3.1) cleanly, currently: + [Joshua Powers] + manual_cache_clean: When manually cleaning touch a file in instance dir. + Add tools/ds-identify to identify datasources available. + Fix small typo and change iso-filename for consistency [Robin Naundorf] + Fix eni rendering of multiple IPs per interface + [Ryan Harper] (LP: #1657940) + tools/mock-meta: support python2 or python3 and ipv6 in both. + tests: remove executable bit on test_net, so it runs, and fix it. + tests: No longer monkey patch httpretty for python 3.4.2 + Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized + [Lars Kellogg-Stedman] (LP: #1658174) + reset httppretty for each test [Lars Kellogg-Stedman] (LP: #1658200) + build: fix running Make on a branch with tags other than master + EC2: Do not cache security credentials on disk + [Andrew Jorgensen] (LP: #1638312) + doc: Fix typos and clarify some aspects of the part-handler + [Erik M. Bray] + doc: add some documentation on OpenStack datasource. + OpenStack: Use timeout and retries from config in get_data. + [Lars Kellogg-Stedman] (LP: #1657130) + Fixed Misc issues related to VMware customization. [Sankar Tanguturi] + Fix minor docs typo: perserve > preserve [Jeremy Bicha] + Use dnf instead of yum when available + [Lars Kellogg-Stedman] (LP: #1647118) + validate-yaml: use python rather than explicitly python3 + Get early logging logged, including failures of cmdline url. - From 0.7.9 + doc: adjust headers in tests documentation for consistency. + pep8: fix issue found in zesty build with pycodestyle. + integration test: initial commit of integration test framework + [Wesley Wiedenmeier] + LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm] + Fix config order of precedence, putting kernel command line over system. + [Wesley Wiedenmeier] (LP: #1582323) + pep8: whitespace fix + Update the list of valid ssh keys. [Michael Felt] + network: add ENI unit test for statically rendered routes. + set_hostname: avoid erroneously appending domain to fqdn + [Lars Kellogg-Stedman] (LP: #1647910) + doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh] + Replace an expired bit.ly link in code comment. + user-groups: fix bug when groups was provided as string and had spaces + (LP: #1354694) + mounts: use mount -a again to accomplish mounts (LP: #1647708) + CloudSigma: Fix bug where datasource was not loaded in local search. + (LP: #1648380) + when adding a user, strip whitespace from group list [Lars Kellogg-Stedman] + (LP: #1354694) + fix decoding of utf-8 chars in yaml test + Replace usage of sys_netdev_info with read_sys_net (LP: #1625766) + fix problems found in python2.6 test. + OpenStack: extend physical types to include hyperv, hw_veb, vhost_user. + (LP: #1642679) + tests: fix assumptions that expected no eth0 in system. (LP: #1644043) + net/cmdline: Consider ip= or ip6= on command line not only ip= + (LP: #1639930) + Just use file logging by default (LP: #1643990) + Improve formatting for ProcessExecutionError [Wesley Wiedenmeier] + flake8: fix trailing white space + Doc: various documentation fixes [Sean Bright] + cloudinit/config/cc_rh_subscription.py: Remove repos before adding + [Brent Baude] + packages/redhat: fix rpm spec file. + main: set TZ in environment if not already set. [Ryan Harper] + Azure: No longer rely on walinux agent. (LP: #1538522) + disk_setup: Use sectors as unit when formatting MBR disks with sfdisk. + [Daniel Watkins] (LP: #1460715) + Add activate_datasource, for datasource specific code paths. (LP: #1611074) + systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud + (LP: #1642062) + systemd: cloud-init remove After=systemd-networkd-wait-online + systemd: cloud-init-local change Before basic to sysinit + pep8: fix style errors reported by pycodestyle 2.1.0 + systemd: drop both Wants and After local-fs.target + systemd: networking service adjustments. (LP: #1636912) + systemd: replace Before=basic.target, dbus.target with sysinit.target + (LP: #1629797) + doc: Add documentation on stages of boot. + doc: make the RST files consistently formated and other improvements. + Ec2: fix syntax and tox in previous commit. + Ec2: protect against non-dictionary in block-device-mapping. + doc: fixed example to not overwrite /etc/hosts [Chris Glass] + Doc: fix spelling / typos in ca_certs and scripts_vendor. + pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed. + net/cmdline: Further adjustments to ipv6 support [LaMont Jones] + (LP: #1621615) + Add coverage dependency to bddeb to fix package build. + doc: improve HACKING.rst file + dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert] + AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh] + Add coverage collection to tox unit tests. [Joshua Powers] + cc_users_groups: fix remaing call to ds.normalize_user_groups [Ryan Harper] + disk-config: udev settle after partitioning in gpt format. (LP: #1626243) + unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350) + Add documentation for logging features. [Wesley Wiedenmeier] + Add support for snap create-user on Ubuntu Core images. [Ryan Harper] + Fix sshd restarts for rhel distros. [Jim Gorz] + OpenNebula: replace 'ip' parsing with cloudinit.net usage. + Fix python2.6 things found running in centos 6. + Move user/group functions to new ug_util file + DigitalOcean: enable usage of data source by default. + update Gentoo initscripts to run in the correct order [Matthew Thode] + MAAS: improve the main of datasource to look at kernel cmdline config. + tests: silence the Cheetah UserWarning about NameMapper C version. + systemd: Run cloud-init.service Before dbus.socket not dbus.target + [Daniel Watkins] (LP: #1629797) + systemd: run cloud-init.service Before dbus.service (LP: #1629797) + unittests: fix use of mock 2.0 'assert_called' when running make check + [Ryan Harper] + Improve module documentation and doc cleanup. [Wesley Wiedenmeier] + lxd: Update network config for LXD 2.3 [Stéphane Graber] + DigitalOcean: use meta-data for network configruation [Ben Howard] + ntp: move to run after apt configuration (LP: #1628337) + Decode unicode types in decode_binary [Robert Schweikert] + systemd: Ensure that cloud-init-local happens before NetworkManager + Allow ephemeral drive to be unpartitioned [Paul Meyer] + subp: add 'update_env' argument + net: support reading ipv6 dhcp config from initramfs [LaMont Jones] + (LP: #1621615, #1621507) + Adjust mounts and disk configuration for systemd. (LP: #1611074) + dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert] + systemd: put cloud-init.target After multi-user.target (LP: #1623868)- add skip-argparse-on-python3.patch: don't depend on argparse for python3, it is builtin there (as of python 3.2, so the patch should be good enough)- python_sitelib does not seem to exist for non single-spec python modules, use python2_sitelib and python3_sitelib instead.- Drop python-cheetah as requirement + Cheetah is no maintained and cloud-init switches to Jinja2 as templating engine if Cheetah is not available - Drop argparse as dependency for Py3 build + argparse is built into Python- Modify cloud-init-finalbeforelogin.patch (bsc#1047363) + Support user processes running in coud-init-final to consume a large number of threads. - Modify cloud-init-service.patch (bsc#1055649) + Start after dbus.service, needed by hotnamectl - Modify cloud-init-handle-not-implemented-query.patch + print needs () for Python3 - Add cloud-init-spceandtabs-clean.patch + Fix inconsistent use of spaces and tabs in various files - Modify suseIntegratedHandler.patch + Fix mode setting passed to function for file writing - Set packag up to build with Python 3 for distros later than SLE 12- On Tumbleweed we need net-tools-deprecated to setup the network- add cloud-init-net-sysconfig-lp1665441.patch (lp#1665441)- Don't call insserv if we use systemd- Do not set mount options for ephemeral drive, use the defaults that are built into the code (bsc#930524)- Update fix-default-systemd-unit-dir.patch (bsc#1024709) + based on work by Thomas Abraham - Add cloud-init-handle-not-implemented-query.patch (boo#1017832)- Require net-tools for network setup- Configuration split (bsc#1016160)- fix syntax error in datasource LocalDisk (fix got somehow lost)- adjust license (as of 0.7.8 AGPL-3.0 was added)- fix unintentional edit in last change again- Modify suseIntegratedHandler.patch (bsc#998103) + Store previous hostname so update_hostname module does not overwrite manually set hostnames - cloud-init-python26.patch + Compatibility fixes with Python 2.6- fix the cloud.cfg split, cyclic non-versioned dependencies are bad. also fix changelog entries- add datasourceLocalDisk.patch: * Fix datasourceLocalDisk module in case directory exists but is empty.- Add Conflicts for otherproviders of cloud-init-config. - Add require for python-six (used by several modules)- Add LocalDisk datasource datasourceLocalDisk.patch [FATE#321107]- Reworked zypp_add_repos.diff to behave similar to zypper ar- Move cloud.cfg into an own sub-package, so that we can have a product specific version. [FATE#322039]- Add zypp_add_repos.diff to support repos for zypper [FATE#322038]- Modify suseIntegratedHandler.patch (bsc#1007529) + Fall back to the previous method of writing network information We have to work out upstream how to have distro specific renderer for sysconfig- Add cloud-init-sysconfig-netpathfix.patch (bsc#1007529) + Fix the default path for network scripts - Cosmetic changes to suseIntegratedHandler.patch- Update cloud-init-no-dmidecode-on-ppc64.patch (bsc#1005616) + aarch64 does support dmidecode- Update cloud-init-service.patch + Break another cycle this one in -final- Update cloud-init-service.patch + Better match upstream intend Ubuntu networking.service is equivalent to SUSE wicked, thus we cannot translate networking to network, but need to translate it to wicked- Update cloud-init-service.patch + We need the following order: - something brings networking fully up (in our case wicked) - cloud-init.service runs - network-online.target is reached- Update cloud-init-service.patch + The network must be up an running in order to get ssh key injected- Update cloud-init-service.patch + Had self reference and thus cloud-init.service was never executed which caused ssh key loading failure- Do not own /lib/udev to not conflict with udev rpm- Forward port suseIntegratedHandler.patch + Implement new abstract interfaces + Some minor implementation fixes- Appease the build service, differences between OBS and IBS, and own the directories- Fix package, udev rules should be in /usr for distros after SLES 11- add cloud-init-digital-ocean-datasource-enable-by-default.patch, cloud-init-digital-ocean-datasource.patch: add DigitalOcean support - run tests on build- Add cloud-init-handle-no-carrier.patch (boo#1003977) - Handle the exception when attempting to detect if the network device is up when it is not- Update cloud-init-service.patch (boo#999942) - Backport upstream commits 3705bb5964a and 6e45ffb21e96- Decoding error (boo#998843) + Added cloud-init-fix-unicode-handling-binarydecode.patch - Fix dependencies, depends on oauthlib instead of oauth- Fix dataSourceOpenNebula.patch, missing closing paren (boo#998836)- Fix typo in cloud-init-service.patch- update to version 0.7.8 (bsc#998103) + added cloud-init-net-eni.patch based on work by eblock - Using config-drive instead of metadata failed because the network translation to Ubuntu-style did not return gateway information to opensuse.py + added cloud-init-service.patch based on work by eblock - The service file cloud-init.service referenced networking.service which on SUSE is network.service + remove no_logic_change.patch included in updated upstream source + forward port suseIntegratedHandler.patch + forward port setupSUSEsysVInit.diff + forward port cloud-init-no-dmidecode-on-ppc64.patch + foward port dataSourceOpenNebula.patch + forward port fix-default-systemd-unit-dir.patch + forward port cloud-init-finalbeforelogin.patch + forward port cloud-init-python2-sigpipe.patch + SmartOS: more improvements for network configuration + add ntp config module [Ryan Harper] + ChangeLog: update changelog for previous commit. + Add distro tags on config modules that should have it. + NoCloud: fix bug providing network-interfaces via meta-data. (LP: 1577982) + ConfigDrive: recognize 'tap' as a link type. (LP: #1610784) + Upgrade to a configobj package new enough to work + MAAS: add vendor-data support (LP: #1612313) + DigitalOcean: use the v1.json endpoint [Ben Howard] + Get Azure endpoint server from DHCP client [Brent Baude] + Apt: add new apt configuration format [Christian Ehrhardt] + distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen] + Fix Gentoo net config generation [Matthew Thode] + Minor cleanups to atomic_helper and add unit tests. + azure dhclient-hook cleanups + network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR + Generate a dummy bond name for OpenStack (LP: #1605749) + add install option for openrc [Matthew Thode] + Add a module that can configure spacewalk. + python2.6: fix dict comprehension usage in _lsb_release. + apt-config: allow both old and new format to be present. [Christian Ehrhardt] (LP: #1616831) + bddeb: add --release flag to specify the release in changelog. + salt minion: update default pki directory for newer salt minion. (LP: #1609899) + Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810) + apt config conversion: treat empty string as not provided. (LP: #1621180) + tests: cleanup tempdirs in apt_source tests + systemd: Better support package and upgrade. (LP: #1576692, #1621336) + remove obsolete .bzrignore + DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394) + Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968) from 0.7.7: + Digital Ocean: add datasource for Digital Ocean. [Neal Shrader] + expose uses_systemd as a distro function (fix rhel7) + fix broken 'output' config (LP: #1387340) + begin adding cloud config module docs to config modules (LP: #1383510) + retain trailing eol from template files (sources.list) when rendered with jinja (LP: #1355343) + Only use datafiles and initsys addon outside virtualenvs + Fix the digital ocean test case on python 2.6 + Increase the usefulness, robustness, configurability of the chef module so that it is more useful, more documented and better for users + Fix how '=' signs are not handled that well in ssh_utils (LP: #1391303) + Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing for list, tuple, set, dict, string types and warning on other unexpected types + Update to use newer/better OMNIBUS_URL for chef module + GCE: Allow base64 encoded user-data (LP: #1404311) [Wayne Witzell III] + GCE: use short hostname rather than fqdn (LP: #1383794) [Ben Howard] + systemd: make init stage run before login prompts shown [Steve Langasek] + hostname: on first boot apply hostname to be same as is written for persistent hostname. (LP: #1246485) + remove usage of dmidecode on linux in favor of /sys interface [Ben Howard] + python3 support [Barry Warsaw, Daniel Watkins, Josh Harlow] (LP: #1247132) + support managing gpt partitions in disk config [Daniel Watkins] + Azure: utilze gpt support for ephemeral formating [Daniel Watkins] + CloudStack: support fetching password from virtual router [Daniel Watkins] (LP: #1422388) + readurl, read_file_or_url returns bytes, user must convert as necessary + SmartOS: use v2 metadata service (LP: #1436417) [Daniel Watkins] + NoCloud: fix local datasource claiming found without explicit dsmode + Snappy: add support for installing snappy packages and configuring. + systemd: use network-online instead of network.target (LP: #1440180) [Steve Langasek] + Add functionality to fixate the uid of a newly added user. + Don't overwrite the hostname if the user has changed it after we set it. + GCE datasource does not handle instance ssh keys (LP: 1403617) + sysvinit: make cloud-init-local run before network (LP: #1275098) [Surojit Pathak] + Azure: do not re-set hostname if user has changed it (LP: #1375252) + Fix exception when running with no arguments on Python 3. [Daniel Watkins] + Centos: detect/expect use of systemd on centos 7. [Brian Rak] + Azure: remove dependency on walinux-agent [Daniel Watkins] + EC2: know about eu-central-1 availability-zone (LP: #1456684) + Azure: remove password from on-disk ovf-env.xml (LP: #1443311) [Ben Howard] + Doc: include information on user-data in OpenStack [Daniel Watkins] + Systemd: check for systemd using sd_booted symantics (LP: #1461201) [Lars Kellogg-Stedman] + Add an rh_subscription module to handle registration of Red Hat instances. [Brent Baude] + cc_apt_configure: fix importing keys under python3 (LP: #1463373) + cc_growpart: fix specification of 'devices' list (LP: #1465436) + CloudStack: fix password setting on cloudstack > 4.5.1 (LP: #1464253) + GCE: fix determination of availability zone (LP: #1470880) + ssh: generate ed25519 host keys (LP: #1461242) + distro mirrors: provide datasource to mirror selection code to support GCE regional mirrors. (LP: #1470890) + add udev rules that identify ephemeral device on Azure (LP: #1411582) + _read_dmi_syspath: fix bad log message causing unintended exception + rsyslog: add additional configuration mode (LP: #1478103) + status_wrapper in main: fix use of print_exc when handling exception + reporting: add reporting module for web hook or logging of events. + NoCloud: fix consumption of vendordata (LP: #1493453) + power_state_change: support 'condition' to disable or enable poweroff + ubuntu fan: support for config and installing of ubuntu fan (LP: #1504604) + Azure: support extracting SSH key values from ovf-env.xml (LP: #1506244) + AltCloud: fix call to udevadm settle (LP: #1507526) + Ubuntu templates: modify sources.list template to provide same sources as install from server or desktop ISO. (LP: #1177432) + cc_mounts: use 'nofail' if system uses systemd. (LP: #1514485) + Azure: get instance id from dmi instead of SharedConfig (LP: #1506187) + systemd/power_state: fix power_state to work even if cloud-final exited non-zero (LP: #1449318) + SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965) [Robert C Jennings] + systemd: support using systemd-detect-virt to detect container (LP: #1539016) [Martin Pitt] + docs: fix lock_passwd documentation [Robert C Jennings] + Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint. (LP: #1488891) [Dan Watkins] + lxd: add support for setting up lxd using 'lxd init' (LP: #1522879) + Add Image Customization Parser for VMware vSphere Hypervisor Support. [Sankar Tanguturi] + timezone: use a symlink rather than copy for /etc/localtime unless it is already a file (LP: #1543025). + Enable password changing via a hashed string [Alex Sirbu] + Added BigStep datasource [Alex Sirbu] + No longer run pollinate in seed_random (LP: #1554152) + groups: add defalt user to 'lxd' group. Create groups listed for a user if they do not exist. (LP: #1539317) + dmi data: fix failure of reading dmi data for unset dmi values + doc: mention label for nocloud datasource must be 'cidata' [Peter Hurley] + ssh_pwauth: fix module to support 'unchanged' and match behavior described in documentation [Chris Cosby] + quickly check to see if the previous instance id is still valid to avoid dependency on network metadata service on every boot (LP: #1553815) + support network configuration in cloud-init --local with support device naming via systemd.link. + FreeBSD: add support for installing packages, setting password and timezone. Change default user to 'freebsd'. [Ben Arblaster] + locale: list unsupported environment settings in warning (LP: #1558069) + disk_setup: correctly send --force to mkfs on block devices (LP: #1548772) + chef: fix chef install from gems (LP: #1553345) + systemd: do not specify After of obsolete syslog.target (LP: #1536964) + centos: Ensure that resolve conf object is written as a str (LP: #1479988) + chef: straighten out validation_cert and validation_key (LP: #1568940) + phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong] + cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273) [Wido den Hollander] + Paths: fix instance path if datasource's id has a '/'. (LP: #1575938) [Robert Jennings] + Ec2: do not retry requests for user-data path on 404. + settings on the kernel command line (cc:) override all local settings rather than only those in /etc/cloud/cloud.cfg (LP: #1582323) + Improve merging documentation [Daniel Watkins] + apt sources: support inserting key/key-id only, custom sources.list, long gpg key fingerprints with spaces, and dictionary format (LP: #1574113) + SmartOS: datasource improvements and support for metadata service providing networking information. + Datasources: centrally handle 'dsmode' and no longer require datasources to "pass" if modules_init should be executed with network access. + ConfigDrive: improved support for networking information from a network_data.json or older interfaces formated network_config. + Change missing Cheetah log warning to debug [Andrew Jorgensen] + Remove trailing dot from GCE metadata URL (LP: #1581200) [Phil Roche] + support network rendering to sysconfig (for centos and RHEL) + write_files: if no permissions are given, just use default without warn. + user_data: fix error when user-data is not utf-8 decodable (LP: #1532072) + fix mcollective module with python3 (LP: #1597699) [Sergii Golovatiuk]- Add cloud-init-python2-sigpipe.patch (bsc#903449) + Restore SIGPIPE default handler when executing shell scripts- Add cloud-init-finalbeforelogin.patch (bsc#978048) + Ordering issue, avoid login prompt before cloud-init is finished- Update suseIntegratedHandler.patch (bsc#971275) + Properly handle the package_upgrade configuration option- Add dependency on jinja2 (bsc#948995,bsc#948996)- Add no_logic_change.patch to undo upstream logic changes introduced during style clean up- Properly write the routes file for static networks (bnc#920190) + modify suseIntegratedHandler.patch - Remove suseSetInitCmd.patch + is now integrated with suseIntegratedHandler.patch- pmtools only exist on Intel architecture (bnc#928552)- update to 0.7.6: - open 0.7.6 - Enable vendordata on CloudSigma datasource (LP: #1303986) - Poll on /dev/ttyS1 in CloudSigma datasource only if dmidecode says we're running on cloudsigma (LP: #1316475) [Kiril Vladimiroff] - SmartOS test: do not require existance of /dev/ttyS1. [LP: #1316597] - doc: fix user-groups doc to reference plural ssh-authorized-keys (LP: #1327065) [Joern Heissler] - fix 'make test' in python 2.6 - support jinja2 as a templating engine. Drop the hard requirement on cheetah. This helps in python3 effort. (LP: #1219223) - change install path for systemd files to /lib/systemd/system [Dimitri John Ledkov] - change trunk debian packaging to use pybuild and drop cdbs. [Dimitri John Ledkov] - SeLinuxGuard: remove invalid check that looked for stat.st_mode in os.lstat. - do not write comments in /etc/timezone (LP: #1341710) - ubuntu: provide 'ubuntu-init-switch' module to aid in systemd testing. - status/result json: remove 'end' entry which was always null - systemd: make cloud-init block ssh service startup to guarantee keys are generated. [Jordan Evans] (LP: #1333920) - default settings: fix typo resulting in OpenStack and GCE not working unless config explicitly provided (LP: #1329583) [Garrett Holmstrom]) - fix rendering resolv.conf if no 'options' are provided (LP: #1328953) - docs: fix disk-setup to reference 'table_type' [Rail Aliiev] (LP: #1313114) - ssh_authkey_fingerprints: fix bug that prevented disabling the module. (LP: #1340903) [Patrick Lucas] - no longer use pylint as a checker, fix pep8 [Jay Faulkner]. - Openstack: do not load some urls twice. - FreeBsd: fix initscripts and add working config file [Harm Weites] - Datasource: fix broken logic to provide hostname if datasource does not provide one - Improved and less verbose logging. - resizefs: first check that device is writable. - configdrive: fix reading of vendor data to be like metadata service reader. [Jay Faulkner] - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614) - cc_grub_dpkg: fix EC2 hvm instances to avoid prompt on grub update. (LP: #1336855) - FreeBsd: support config drive datasource [Joseph bajin] - cc_mounts: support creating a swap file - Refresh addopenSUSEBase.patch - Refresh setupSUSEsysVInit.diff - Removed cloudinit-datasources.patch. Applied upstream - BuildRequires pkg-config. Needed to find correct systemd unit dir. - Add fix-default-systemd-unit-dir.patch . Use better default for systemd system unit dir.- Fix (bnc#919305 & bnc#918952) - Properly handle persistent network device names for OpenNebula + add dataSourceOpenNebula.patch - Properly set up network mode if interface config file + modified suseIntegratedHandler.patch- Require e2fsprogs for filesystem resizing- Remove Requires for python-yaml . There's already the right requirement for python-PyYAML- fixed syntax error in dmidecode on ppc64 patch (bnc#914920)s390zl33 1648835705  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*%%-.%012345%789:;<=>?@ABCDEFGHI%KLM%OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*-./012345678921.4-150100.8.58.121.4-150100.8.58.121.4-150100.8.58.1  !!!!!! ""####"""$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$&&'''&&(((((((((((((((((((((((((((((()))))))))))))))))))))))))))))(**++++++++*******,,-,..////////////////...............*01111112345667778NetworkManagerdispatcher.dhook-network-managercloudcloud.cfg.d05_logging.cfgREADMEtemplateschef_client.rb.tmplchrony.conf.alpine.tmplchrony.conf.fedora.tmplchrony.conf.opensuse.tmplchrony.conf.photon.tmplchrony.conf.rhel.tmplchrony.conf.sles.tmplhosts.alpine.tmplhosts.freebsd.tmplhosts.photon.tmplhosts.suse.tmplntp.conf.alpine.tmplntp.conf.fedora.tmplntp.conf.opensuse.tmplntp.conf.photon.tmplntp.conf.rhel.tmplntp.conf.sles.tmplresolv.conf.tmplsystemd.resolved.conf.tmpltimesyncd.conf.tmpldhcpdhclient-exit-hooks.dhook-dhclientrsyslog.d21-cloudinit.confsshd-keygen@.service.ddisable-sshd-keygen-if-cloud-init-active.confcloud-idcloud-initcloud-init-percloud-initds-identifyhook-hotpluguncloud-initwrite-ssh-key-fingerprintscloud_init-21.4-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtentry_points.txtrequires.txttop_level.txtcloudinit__init__.py__pycache____init__.cpython-36.pycapport.cpython-36.pycatomic_helper.cpython-36.pyccloud.cpython-36.pyccs_utils.cpython-36.pycdhclient_hook.cpython-36.pycdmi.cpython-36.pycec2_utils.cpython-36.pycevent.cpython-36.pycfeatures.cpython-36.pycgpg.cpython-36.pychelpers.cpython-36.pycimporter.cpython-36.pyclog.cpython-36.pycnetinfo.cpython-36.pycpatcher.cpython-36.pycpersistence.cpython-36.pycregistry.cpython-36.pycsafeyaml.cpython-36.pycserial.cpython-36.pycsettings.cpython-36.pycsignal_handler.cpython-36.pycsimpletable.cpython-36.pycssh_util.cpython-36.pycstages.cpython-36.pycsubp.cpython-36.pyctemp_utils.cpython-36.pyctemplater.cpython-36.pyctype_utils.cpython-36.pycurl_helper.cpython-36.pycuser_data.cpython-36.pycutil.cpython-36.pycversion.cpython-36.pycwarnings.cpython-36.pycanalyze__init__.py__main__.py__pycache____init__.cpython-36.pyc__main__.cpython-36.pycdump.cpython-36.pycshow.cpython-36.pycdump.pyshow.pyapport.pyatomic_helper.pycloud.pycmd__init__.py__pycache____init__.cpython-36.pycclean.cpython-36.pyccloud_id.cpython-36.pycmain.cpython-36.pycquery.cpython-36.pycstatus.cpython-36.pycclean.pycloud_id.pydevel__init__.py__pycache____init__.cpython-36.pychotplug_hook.cpython-36.pyclogs.cpython-36.pycmake_mime.cpython-36.pycnet_convert.cpython-36.pycparser.cpython-36.pycrender.cpython-36.pychotplug_hook.pylogs.pymake_mime.pynet_convert.pyparser.pyrender.pymain.pyquery.pystatus.pyconfig__init__.py__pycache____init__.cpython-36.pyccc_apk_configure.cpython-36.pyccc_apt_configure.cpython-36.pyccc_apt_pipelining.cpython-36.pyccc_bootcmd.cpython-36.pyccc_byobu.cpython-36.pyccc_ca_certs.cpython-36.pyccc_chef.cpython-36.pyccc_debug.cpython-36.pyccc_disable_ec2_metadata.cpython-36.pyccc_disk_setup.cpython-36.pyccc_emit_upstart.cpython-36.pyccc_fan.cpython-36.pyccc_final_message.cpython-36.pyccc_foo.cpython-36.pyccc_growpart.cpython-36.pyccc_grub_dpkg.cpython-36.pyccc_install_hotplug.cpython-36.pyccc_keys_to_console.cpython-36.pyccc_landscape.cpython-36.pyccc_locale.cpython-36.pyccc_lxd.cpython-36.pyccc_mcollective.cpython-36.pyccc_migrator.cpython-36.pyccc_mounts.cpython-36.pyccc_ntp.cpython-36.pyccc_package_update_upgrade_install.cpython-36.pyccc_phone_home.cpython-36.pyccc_power_state_change.cpython-36.pyccc_puppet.cpython-36.pyccc_refresh_rmc_and_interface.cpython-36.pyccc_reset_rmc.cpython-36.pyccc_resizefs.cpython-36.pyccc_resolv_conf.cpython-36.pyccc_rh_subscription.cpython-36.pyccc_rightscale_userdata.cpython-36.pyccc_rsyslog.cpython-36.pyccc_runcmd.cpython-36.pyccc_salt_minion.cpython-36.pyccc_scripts_per_boot.cpython-36.pyccc_scripts_per_instance.cpython-36.pyccc_scripts_per_once.cpython-36.pyccc_scripts_user.cpython-36.pyccc_scripts_vendor.cpython-36.pyccc_seed_random.cpython-36.pyccc_set_hostname.cpython-36.pyccc_set_passwords.cpython-36.pyccc_snap.cpython-36.pyccc_spacewalk.cpython-36.pyccc_ssh.cpython-36.pyccc_ssh_authkey_fingerprints.cpython-36.pyccc_ssh_import_id.cpython-36.pyccc_timezone.cpython-36.pyccc_ubuntu_advantage.cpython-36.pyccc_ubuntu_drivers.cpython-36.pyccc_update_etc_hosts.cpython-36.pyccc_update_hostname.cpython-36.pyccc_users_groups.cpython-36.pyccc_write_files.cpython-36.pyccc_write_files_deferred.cpython-36.pyccc_yum_add_repo.cpython-36.pyccc_zypper_add_repo.cpython-36.pycschema.cpython-36.pyccc_apk_configure.pycc_apt_configure.pycc_apt_pipelining.pycc_bootcmd.pycc_byobu.pycc_ca_certs.pycc_chef.pycc_debug.pycc_disable_ec2_metadata.pycc_disk_setup.pycc_emit_upstart.pycc_fan.pycc_final_message.pycc_foo.pycc_growpart.pycc_grub_dpkg.pycc_install_hotplug.pycc_keys_to_console.pycc_landscape.pycc_locale.pycc_lxd.pycc_mcollective.pycc_migrator.pycc_mounts.pycc_ntp.pycc_package_update_upgrade_install.pycc_phone_home.pycc_power_state_change.pycc_puppet.pycc_refresh_rmc_and_interface.pycc_reset_rmc.pycc_resizefs.pycc_resolv_conf.pycc_rh_subscription.pycc_rightscale_userdata.pycc_rsyslog.pycc_runcmd.pycc_salt_minion.pycc_scripts_per_boot.pycc_scripts_per_instance.pycc_scripts_per_once.pycc_scripts_user.pycc_scripts_vendor.pycc_seed_random.pycc_set_hostname.pycc_set_passwords.pycc_snap.pycc_spacewalk.pycc_ssh.pycc_ssh_authkey_fingerprints.pycc_ssh_import_id.pycc_timezone.pycc_ubuntu_advantage.pycc_ubuntu_drivers.pycc_update_etc_hosts.pycc_update_hostname.pycc_users_groups.pycc_write_files.pycc_write_files_deferred.pycc_yum_add_repo.pycc_zypper_add_repo.pyschema.pycs_utils.pydhclient_hook.pydistros__init__.py__pycache____init__.cpython-36.pycalmalinux.cpython-36.pycalpine.cpython-36.pycamazon.cpython-36.pycarch.cpython-36.pycbsd.cpython-36.pycbsd_utils.cpython-36.pyccentos.cpython-36.pyccloudlinux.cpython-36.pycdebian.cpython-36.pycdragonflybsd.cpython-36.pyceurolinux.cpython-36.pycfedora.cpython-36.pycfreebsd.cpython-36.pycgentoo.cpython-36.pycnet_util.cpython-36.pycnetbsd.cpython-36.pycnetworking.cpython-36.pycopenEuler.cpython-36.pycopenbsd.cpython-36.pycopensuse.cpython-36.pycphoton.cpython-36.pycrhel.cpython-36.pycrhel_util.cpython-36.pycrocky.cpython-36.pycsles.cpython-36.pycubuntu.cpython-36.pycug_util.cpython-36.pycvirtuozzo.cpython-36.pycalmalinux.pyalpine.pyamazon.pyarch.pybsd.pybsd_utils.pycentos.pycloudlinux.pydebian.pydragonflybsd.pyeurolinux.pyfedora.pyfreebsd.pygentoo.pynet_util.pynetbsd.pynetworking.pyopenEuler.pyopenbsd.pyopensuse.pyparsers__init__.py__pycache____init__.cpython-36.pychostname.cpython-36.pychosts.cpython-36.pycnetworkmanager_conf.cpython-36.pycresolv_conf.cpython-36.pycsys_conf.cpython-36.pychostname.pyhosts.pynetworkmanager_conf.pyresolv_conf.pysys_conf.pyphoton.pyrhel.pyrhel_util.pyrocky.pysles.pyubuntu.pyug_util.pyvirtuozzo.pydmi.pyec2_utils.pyevent.pyfeatures.pyfilters__init__.py__pycache____init__.cpython-36.pyclaunch_index.cpython-36.pyclaunch_index.pygpg.pyhandlers__init__.py__pycache____init__.cpython-36.pycboot_hook.cpython-36.pyccloud_config.cpython-36.pycjinja_template.cpython-36.pycshell_script.cpython-36.pycupstart_job.cpython-36.pycboot_hook.pycloud_config.pyjinja_template.pyshell_script.pyupstart_job.pyhelpers.pyimporter.pylog.pymergers__init__.py__pycache____init__.cpython-36.pycm_dict.cpython-36.pycm_list.cpython-36.pycm_str.cpython-36.pycm_dict.pym_list.pym_str.pynet__init__.py__pycache____init__.cpython-36.pycactivators.cpython-36.pycbsd.cpython-36.pyccmdline.cpython-36.pycdhcp.cpython-36.pyceni.cpython-36.pycfreebsd.cpython-36.pycnetbsd.cpython-36.pycnetplan.cpython-36.pycnetwork_state.cpython-36.pycnetworkd.cpython-36.pycopenbsd.cpython-36.pycrenderer.cpython-36.pycrenderers.cpython-36.pycsysconfig.cpython-36.pycudev.cpython-36.pycactivators.pybsd.pycmdline.pydhcp.pyeni.pyfreebsd.pynetbsd.pynetplan.pynetwork_state.pynetworkd.pyopenbsd.pyrenderer.pyrenderers.pysysconfig.pyudev.pynetinfo.pypatcher.pypersistence.pyregistry.pyreporting__init__.py__pycache____init__.cpython-36.pycevents.cpython-36.pychandlers.cpython-36.pycevents.pyhandlers.pysafeyaml.pyserial.pysettings.pysignal_handler.pysimpletable.pysourcesDataSourceAliYun.pyDataSourceAltCloud.pyDataSourceAzure.pyDataSourceBigstep.pyDataSourceCloudSigma.pyDataSourceCloudStack.pyDataSourceConfigDrive.pyDataSourceDigitalOcean.pyDataSourceEc2.pyDataSourceExoscale.pyDataSourceGCE.pyDataSourceHetzner.pyDataSourceIBMCloud.pyDataSourceLXD.pyDataSourceLocalDisk.pyDataSourceMAAS.pyDataSourceNoCloud.pyDataSourceNone.pyDataSourceOVF.pyDataSourceOpenNebula.pyDataSourceOpenStack.pyDataSourceOracle.pyDataSourceRbxCloud.pyDataSourceScaleway.pyDataSourceSmartOS.pyDataSourceUpCloud.pyDataSourceVMware.pyDataSourceVultr.py__init__.py__pycache__DataSourceAliYun.cpython-36.pycDataSourceAltCloud.cpython-36.pycDataSourceAzure.cpython-36.pycDataSourceBigstep.cpython-36.pycDataSourceCloudSigma.cpython-36.pycDataSourceCloudStack.cpython-36.pycDataSourceConfigDrive.cpython-36.pycDataSourceDigitalOcean.cpython-36.pycDataSourceEc2.cpython-36.pycDataSourceExoscale.cpython-36.pycDataSourceGCE.cpython-36.pycDataSourceHetzner.cpython-36.pycDataSourceIBMCloud.cpython-36.pycDataSourceLXD.cpython-36.pycDataSourceLocalDisk.cpython-36.pycDataSourceMAAS.cpython-36.pycDataSourceNoCloud.cpython-36.pycDataSourceNone.cpython-36.pycDataSourceOVF.cpython-36.pycDataSourceOpenNebula.cpython-36.pycDataSourceOpenStack.cpython-36.pycDataSourceOracle.cpython-36.pycDataSourceRbxCloud.cpython-36.pycDataSourceScaleway.cpython-36.pycDataSourceSmartOS.cpython-36.pycDataSourceUpCloud.cpython-36.pycDataSourceVMware.cpython-36.pycDataSourceVultr.cpython-36.pyc__init__.cpython-36.pychelpers__init__.py__pycache____init__.cpython-36.pycazure.cpython-36.pycdigitalocean.cpython-36.pychetzner.cpython-36.pycnetlink.cpython-36.pycopenstack.cpython-36.pycupcloud.cpython-36.pycvultr.cpython-36.pycazure.pydigitalocean.pyhetzner.pynetlink.pyopenstack.pyupcloud.pyvmware__init__.py__pycache____init__.cpython-36.pycimc__init__.py__pycache____init__.cpython-36.pycboot_proto.cpython-36.pycconfig.cpython-36.pycconfig_custom_script.cpython-36.pycconfig_file.cpython-36.pycconfig_namespace.cpython-36.pycconfig_nic.cpython-36.pycconfig_passwd.cpython-36.pycconfig_source.cpython-36.pycguestcust_error.cpython-36.pycguestcust_event.cpython-36.pycguestcust_state.cpython-36.pycguestcust_util.cpython-36.pycipv4_mode.cpython-36.pycnic.cpython-36.pycnic_base.cpython-36.pycboot_proto.pyconfig.pyconfig_custom_script.pyconfig_file.pyconfig_namespace.pyconfig_nic.pyconfig_passwd.pyconfig_source.pyguestcust_error.pyguestcust_event.pyguestcust_state.pyguestcust_util.pyipv4_mode.pynic.pynic_base.pyvultr.pyssh_util.pystages.pysubp.pytemp_utils.pytemplater.pytype_utils.pyurl_helper.pyuser_data.pyutil.pyversion.pywarnings.pycloud-init-generatorcloud-config.servicecloud-config.targetcloud-final.servicecloud-init-local.servicecloud-init.servicecloud-init.target66-azure-ephemeral.rulescloud-initcloud-initcloud-initLICENSELICENSE-GPLv3cloud-id.1.gzcloud-init-per.1.gzcloud-init.1.gzcloud/etc//etc/NetworkManager//etc/NetworkManager/dispatcher.d//etc/cloud//etc/cloud/cloud.cfg.d//etc/cloud/templates//etc/dhcp//etc/dhcp/dhclient-exit-hooks.d//etc/rsyslog.d//etc/systemd/system//etc/systemd/system/sshd-keygen@.service.d//usr/bin//usr/lib//usr/lib/cloud-init//usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg-info//usr/lib/python3.6/site-packages/cloudinit//usr/lib/python3.6/site-packages/cloudinit/__pycache__//usr/lib/python3.6/site-packages/cloudinit/analyze//usr/lib/python3.6/site-packages/cloudinit/analyze/__pycache__//usr/lib/python3.6/site-packages/cloudinit/cmd//usr/lib/python3.6/site-packages/cloudinit/cmd/__pycache__//usr/lib/python3.6/site-packages/cloudinit/cmd/devel//usr/lib/python3.6/site-packages/cloudinit/cmd/devel/__pycache__//usr/lib/python3.6/site-packages/cloudinit/config//usr/lib/python3.6/site-packages/cloudinit/config/__pycache__//usr/lib/python3.6/site-packages/cloudinit/distros//usr/lib/python3.6/site-packages/cloudinit/distros/__pycache__//usr/lib/python3.6/site-packages/cloudinit/distros/parsers//usr/lib/python3.6/site-packages/cloudinit/distros/parsers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/filters//usr/lib/python3.6/site-packages/cloudinit/filters/__pycache__//usr/lib/python3.6/site-packages/cloudinit/handlers//usr/lib/python3.6/site-packages/cloudinit/handlers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/mergers//usr/lib/python3.6/site-packages/cloudinit/mergers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/net//usr/lib/python3.6/site-packages/cloudinit/net/__pycache__//usr/lib/python3.6/site-packages/cloudinit/reporting//usr/lib/python3.6/site-packages/cloudinit/reporting/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources//usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc/__pycache__//usr/lib/systemd/system-generators//usr/lib/systemd/system//usr/lib/udev/rules.d//usr/share/bash-completion/completions//usr/share/doc/packages//usr/share/licenses//usr/share/licenses/cloud-init//usr/share/man/man1//var/lib/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:23520/SUSE_SLE-15-SP1_Update/2dbb1186f917c5af59dcaa11705d2216-cloud-init.SUSE_SLE-15-SP1_Updatedrpmxz5s390x-suse-linux       directoryPOSIX shell script, ASCII text executableASCII textUTF-8 Unicode textPython script, ASCII text executableBourne-Again shell script, ASCII text executableemptypython 3.6 byte-compiledPython script, UTF-8 Unicode text executablePython script text executable Python script, ASCII text executabletroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RvV ܯXωIutf-88c92aa6be651a797381d5f858690b4a20a1f1ff7f89ae7818472a0e74a824ddc? 7zXZ !t/9]"k%f1ƷmO3y7uC)!ɊLcxbIis"jݢ\i= ~.p)ˌ@,_rKqL+0Di02\⃹ъ߮hіA&u0{2,}̕\D: 6 7_A{2O~vx{h T"/C!#vn]xSUsoPLVN0όŧf䑃2pz$8ȰT$D{S(ƍvΦj'1Ά޿҃\|*|7xpQ恝ՙQew59([2>Ag@ rZ%o7y}rvp>i$Ċ5cGe3-CcvK obz,j,+9ZxǗEwXq̺a n cxPx򶦂5(]2fMީoE/aEi͍(w\u|.g`)8CE˝͋8J% EV&tH@'9D<O0^?^ 2rCk%*ZiKŨXFgO;/ò0νz 6GU V8o=ɹ~]%KՄ7z8gOZjO=毬"8֋jlc7^},3 ce+]N;vm7Rwp*34hj" 7gƱnGy:0QGjdSoæЕ7si % `M].nli_|KH_E qu6|ڠoI^k]\[V"2 \w߄AݝVVU̾(tJdݜ105'%|d.nI¸L&VvENMbP0lìvJeW茛`l %?萕s?#:r؀N&l;柧H:}̥P}L*^Z?/ ?Iy=\<]pBץ':rs:GMDd"Ț.T,]1q/@߀Hu9X؛9U툱!6BrT59V=(3t[v4>Qһ{u?fuWAq8,m_![8(DKʹ+\U$>BP⮘ %eih Tf^Wkf s^'"`Y[K9k59|/sShx:u??&@eT(ȨndkR6,̟̃C+)_P=h+잫>@sq̊Ʋxw,M͊byrY (QHFRK5Zgbw٘ x7{jCWE2T(0!bA\Bk8OǴV>jIC2KQ7HQ2Lr56ٞب :=oCXbj֯ w]8)m 7^R؝h"fWw' 'O ?:`~j,U v!'NAïp4psKhC_Cq8 &F_*+~9`}S, \C%Yz:‘p>Zwz;VӚn9p\mN(>`169sv-g:U՛cFx~&Q&oeG"H\ÿS u@iK `M5d ilBWw- g5W[bVRuTMQizv2^5 lGKvD7= (yʤfgVDvߑ Z*+0$6vG3hXlag kZn*5;|ĕףMtuG/e˖{.PAx2ؠ6#M56K.~©ߤDoC5tbr{:]>zle}HT?㋜g抩>AmK9'=(|ru;dx:o>AD&V49 'Bג!։ͦCmBi{7|D> Dt7{YJ8fjev| H<0G?xc%l%ђU?QܺK*dM.[JEWn;0a~u|ڦza|]ɡ#_ 4u/̚)DZMf0H-o1zrV75AZ*ql vӱơM#uO۹(:ডG"&l͌I1'/0#H.聒ojPZ]S;I\YOdEsat /6duOC,󄩰YR3:7Дyf<4x\%hk:k Gye#b jqsEOlԾ6-;|j_YL2cـ0w3Is#D7K*?!M]'.PZ DM`+Gw y8mXzK]-8N ]}q;D+X k ʝ/ ,kG6 ft*TMCt^5@ q;|,`,+iZjm҄CQ2)ٌEYlk iZ JG,BFoatyڿǮk7t3nTSZJ3"IN!G|2Rz%Kr}Ψ)y<7!7!)RXGbo0do`үZ{/0V\k^$yD(&D&^ݘ :zMs*} Ğp0"?~ s׀t`l:i8y[|:u^(Ϣ,@ǥD89j|ÍɸbB'듺B۝#O[h$q_V 8ZtR0PkK==q6۠#U^qSD0D-|G N.o"#|e}v yqt$}LLկJ牱]m>S'#gA%WbNKL[zh|mND7; "9zZ|b`F;\&k=%U]A~E$/)GWzjQR dGWdb37VI(N-!+)05ES@jܸGxtfl{O $. BCF _ R6MSs/%yf;c8)pZ#ʐ:-E5P_ڷ)MRzRm)r2g߂9w_i~AeQ]![ '] #߆xvx2iWóMO-&temp=pOO!v_Ң=S0}Wڠf*6Jxފ{xr"0~O.&Ns8Va5+$S4z{|K3^yP/TQfޓq ҌOX \xE|3} 2tOkȉX9($l3\MHLcejo'ڈn qݚҲeb0u/$)s~6M0'~Ce_fuDU$$P6$ t%l6y3V;bxjiW#6-2)!|mP`!^^j@No#w OOhuצC cɅ||b ʵ6hC߳D׹`#uǂ1D=̆=)=PC䩰AffeW%dNQG%퍸9&OBn2ª_= ~] #^bJx?7 ͱX,ɐc$x)Uˮ4!_AN%+Hh#B][Q-w䔿РEFhHv/jUNa3^Ĺ,=D{M+؈‚]3h 潒gM)IE͹^ڋT$r+ Rv Up}[:]{_r{.PvWm8 :CȦ-8V\>#zII'%xа3-RP/^Jy0GUgG7iK8_Wq$9GP?֒_:U@Oq),4Wb^Ar\W m+ h-LTζo_9}{G_ߚ Z7%"핶GfKnTWP,{`986hdj@ǼalmW!.[#`g4d_b:8֐R+K*ه'K)3΢ъJyH3T#uIV5ӂh#i|w+m?c譗 skGSQbHKPs/A[r*܍rh ztSw<[]$4ۚaӗkcUBʖliܛ s􂭘W$޳?GWTPdg7Anc,35X\b3ρa* iBۙpϡ,pxY~qQ\1>4'=/}Dā "bgԛ76{U1ʵ ]WLa@c.t "D)59rMJ_eOq!~E..'phn5|CQ%# I_Ja\RL_ )3jNbM?GC?|LPm:tp7ch(>tYߕ#kZ^<to̓$6^) 7˖.u/5$h-S.19/Z-+T :@H&Ks<$("p(9 EW[MO,b;? AvZI P=WI`0)`i'ֳ6C;EOěC""|R;5h뜧b鶙/㥁ٱP jp" k$+ovı9|9oH{zd,m<,oPci}@3jPcy*}2#X`Tƒ|ŸIXAوئ5mKȶM^k`gւ}e>4I(?f=)(5Ę9ǘw H eHg"R]g&p:MVg\r9߼;60[ iZmÅϢ鱆[_pk&yv"c:*yAIz翴mwd KGat+3 /ɺ?/Z-ۡh*;ʳG3Je.r5/GD*^$DVyAXF3 l|鵖%!4BnÜse $ٱ_Y_ux/[:ٓ2wtYO(=-AIu920˶Y". )zfu?qĬ?%2K`$ * (Ǿ%0 b#l,Æ}0['hއ!t+Id^IOMw\ 홯EN[m[6QQ^[o\ MUvomz sn(-{?E%jfVhEcQRiI#ucM@9c(= 4)(Lh6CrH5hZk;Ʉ{c0"?ݻ\|tѻ2= (R'm E|L'[53yOz33[*$Uҟ!-NC龝fQyY6МGXn3ptʢyllXQ*Y *LgL5^RK ];%s=k'H`U~d؆"H4K:zV|qB]AMp*Y\Tmfhd--LQv^r + ^w_ (ETfcdk'b1;Z $=:h <i}s[2b[~UuFҨ/[wӁ)ѾXʸcj1g7tJt{!yXFUCDhupvI3AeGAk)GaYp=A){]'4`zm4}ӺmX_Ae;,z?Azaly{W[-4qUG\8M?jt6n+aK2Hi(s_1@z!kϾő^Mp2M wü99/`M@ Q>Vb@j: ?ӒhF~騐N l0zNPH6"]q{_bU X/)~1 i35rmK ʯѽ/#w,6H|SxzĥqJKrj%A}%$$+REXKSbt TcCXg;zWٝ4>!L2ݲ?XIn[&UqSjQF+ߦ)7mŐ>8=u*Q_/Fh ;ԠeHK7 ą8`zpDA2*nǏW:%lgRZ){A {V".uƑ.{Idak³s@ry^Fj9yR# q,E(\sFn@M zbs0=PS`: "^Vm*+?1;<ąג$0|s+@9 =E?Obi ˈqk|{..zwl5'}Y`r=*$hJoxA{VAx<ǔ+#ڗzC%de)5@ (5,iKx^*<0U:Ƭ!~aͽҍElETSkw3J#:n6n2K ;ZK!V-7/ehw #;h:'<7YL*.xX&rb egtre"71 -H_zMq\4FW+N OuQ0̓ "k%L[q|G[;Gō3W;Eؖjw:%uMK- `.0'NvMlXQPɥ݄ڙ'cV Bh@:VR?]b?m HC; tCG=1S&sAd4fDϘu>Ǣ?>7[,ź_x_*[;ldi-F<$Er,6P;+wWVo5?dѦ)M.ʴ؞BKCpb@'|;=>ClRtKBYh~`t"TQgWҶJV:̦ H+pRy4K(j I8_!yR`Ȓ`zx-%, K |?앇uӔ򗾊|!`L Sm26= (/vSR(vtD} T@M{HdX#,aV̉5- ˧"̙kz@ Bٟ B^ Fk8Vafs %2]yz6 ]sk MUК!<ĊwԐmÏ^X3a'Ts{ ϥi[L{S>5=V&v 1E5_9, X| !O{.WpOҜ^K6Tnx̧'y9tHK &1[:4}\Z8[" Oq9:vMmq VNIhQ RV8JT+c)N= ձ#lZ &X+PW:1^StK~RjW]iG`P@SxRhiJHƑ/K诽^MqroxS/e6bFѠ+n u iZv"WdD)+B  9O>]!̈by]w&x=.z#Gٽ&6VAFmFu]79~d=Ys͘P m6m#-@R1̓'\-x1z􇼑$2 y7M,;} ߦ_hq)o{WAHq(ʙbHu-dc_HHM 0dE|:5u (C0Ȏ]GUzZN UDŮ/g\ jDae^Efq曭7ݬu\U )~eּ&)vGd8^)s|\jk(ť_,%bVJyѐzE`|TL[C tN%P(MhVp"Z+= 2Ay(w9'dPLg{eQ3SxmJ *^,wL6Vn>k ҈'0KGY-g^/w4Uz)p4=Ao>[, Cc-j*6 U6 @uwg蒼=gt>ə"T =# ja\M7ŝkaj;}1w 0P,0k+GDnZ5~ Fk q np~{,PE Ho /4Ʉө@a_H @?0!XܶGd9eiӃ$lgYP<NpT7ca폸 I"EqghsNj,(ц۟;Souu>,u/6*tw&\1ߺO'9U s<>@r@y8 YlƗ'`nˏ}_=_-xΙԹm .\:cUڪIVdljWAXnsn_.^̮эEn:YDg]._j|6HpC8[өqwDhQ;t@PV 'm ܌n:;/3EmU :r'ٵNPFv]vK^% Fxؖ "Ct#Hݍ9]6ƻ|fb+bD`Lz c俪rXw1"a=-Ry r{7WtZ,{YyZJ*jIf3_Bmmoi.ظT?>QYP/!Z1/xKV0ύ=g.oT#_r+2u X, 1kaS;̵3A̼{<{ejjqdᕇ` Y)􈻥h􏘙V¸.} cbJ/a sA'<3ݓz^x*XEw̡|\zgg7Wۮ~ĉCO3#Plì#\tȧl2=VJ._rTN}5͜/ O+,E3^N$k2!8↗lu|i;NLrRu*89K-~4L1REvvt[Y)kC ,+>3l7nˎZm9|{BOO\ (G'SpF)4 I|Ӷ~ps⌏pjV]e 9L` ^P&&#xgBGz-Am˾ HG 1OJ\ \Vag>DbvBdrkt?[=TC6  p>Wk$S$"=^, l!r,\tLaN)'Wq~y7 ^a>d76G8&1Nkd?y2~Sfqj^ \8#lGؾj!L^Z'xoR;╶j?7mX\5:j.XA#`veɞ~^!iIݰ* ejFL.a4ڌ=8S1tvs>^׮4)$6"ֱK%mB5[(8cK=FHsR/O LرoqfC{6 U i=9/eīaWb9`V_1?QCM_k8ߩ$lhlcO@IdeR}6rZ;Xw0xwߧ` Q2g) #o xNbJGC9R( *n؊_bb^DŽSg'Fǽ1K0 ٧ǩu4?jUl}4U@qNlԊ 1<'3Xi/XeGǘI\"qY6wzc"m05cM[֪Ys&?]lFz=xn=wnBtrYkj#̤%oDkfrξrC,+-0%k- Wɰ;TzjݲC8hzu*钘`q 8)իyV|ww1s}oN5OgLKa'Mjo U6 (ܿJc|.{&`i<|=}_X95':ZIK_F!7iIT5w#?`.&?Z@Gp#OZ`<l [\ĺ"B R@kwt,54JyT+ۧL8t@h6gzFB+b'98yj`eܡֹa0$O!me8ZT/WXPE;nCZ-Gsx߄Ln4_> %-b:6Z" Φ^IK|htQEMؼ`*h@ԑd"=ž֐]p8;3 !1Sz5|pjbhʐI-ix9=f>jL aJ $~kpv> 1KB|22f]ahie#;B?XGF30v1BY ^'(\ٵ!T{Hߞ$:*jǴUJi@ 8Oε& +^UQUO&fQYٳM̠FGS݂FPaɳs@=<@ "upM$t}\G }~e U_N"YBsjD6f]? =l^둑C7[%QD˔tW:Q_cUb1vb℡*_ alazh3OO+?7ŷN#15n>iy&3'yL4dRuV1VOYuĒFYH'?1!ƲV0onP {_-(5>hz/A>4j\IL#p!W`OQ'aVֳ Gq찛\W5#lGqpӛP_ݵijV c?$8xЖRՙC?4 cKtWL %8U#'ΔfoJQЧrUwSD/:Q1H6I;\Zf15&vBtHaRK+a!`:;NJYfX|oN鉇CWk#m|$[#"EY:rH@z~֕n'옆 Rl{ɑ;DEg&vޜ C,Ҳ9\)oZc٪9'B𣫋;]Ҏ͍*WAk˭co[i)8VYTiwi21*7g ]]4T=NٷP!y7SR?Bs!kÛucY^&3ӷ5sSP=gdR mt?< =Z&U -*ŕ =/`tbjjnQ YioT$ &N m#ZkBvDfK37FB3얭Pf1z.eo ggu5#MvYzUYfwD:҄Ů,AzZ9)EO-}3R U;VyH)}Z=:h2S 4Vy [bB&o5ԋ>2 Ȓ~ vյs27S t :~, D8w(; [}2'Ғ~ew/_a׆lկyg ؋1CsQb'M-\nSL[A7DI ` 4ݱє>ԓ³N?sԵ|*6握 Z W L_sEžB_=M㚕+rTKd_=m斠mIm(p|n$m fGY4s,!\qo Ʋ3ߴAG|O q)F}R6WK9!|:~T lmLx:Fm3S;9MH,~!2jI596Svщ_!0.d#42L2{ '?dӷH݄֐ekM2;ӯ5{* o}d~o끯>H$GRL"DXЉ8`M0kf3r\ 2f`3v=$C-uu"ikTx9ݕcAmtkAJ5D^y;R؃jGn|Z>dJdlΞt~?4Ѵ '.~ L> Ȑ4n e/h8.f y|^GW]О7V5H!jR Zx>`Uhh6ؓ<5H#)XNU Fn3s- .Ӎ8q&nEm] ޢlU qxūS64ťek趬q#LI[Tb[٫- g fYM[-!YpI*^ uH{˭u^U1o@tC X .lŔ2&$IԬF vR|ibËk4 u>Nޠ,YvʞEXsL<ТDzWA# sT;xmZ/p_º2Fo ˶,U^ƫ@=X{neztZ+*«Y4$!nVK(qVF/#W>8^:]kiww einhMvl?2BDWkSt rAg[2iׄϛUpOKE&w*P#τk[ڕ9qlt"c9{hOyxSXL>!~83YJtH O|dY i[ϸ{t8롧%oS[Q NxLf+{ Ņbx%QsR>%\ .ogzi7%(?", 80=.e4LwLv`oyfWՃxgAvxUN #-cT^)8kHA\g>gkN.V)Z3f]M{vK+vհDgg8LFm2}d;o9J4vr\ 0izkzPPkp(%y|M!\b,/?;u(qҫج\ve 8aoź(] ގ3T x(Z N.o.)8TY"HP)I<),B'ǫZSg|$b 5{@.mf ,@N^^\t ɦ(IM1 1h 3Aَft{w׼Jm<,y<_Se🈈pyA58Z FTL5f+`H*/̉8;c(gdҗR炗< i z[$I݇K}j1hu5!km< Of0XGR HN|%'X;&1y:Na{2P6Q*O$t[םߌ ! 3u_\d)!3RqP;c^OU9 B5„cTYV@ xuF';5?R7u(U +Bib\gz}Ƿ;t5w}RL r7`KBp"zB!nQEюF5?*RZd1T/yƢa30]Ow;$aϤ6V3LX)|~l͒N]Sr~7Ih3 񋼁N)Zd[5,VٞfZkl%1/bnUzW8Ppo̰Z%Ĺwcs3*W5P0qǥ+pN .d<[" %uxWzs#z' *m<^$=8"/) #kB6@=`4~i!}_2xl_T ]=W0lPn[֢hd+im--C^?0vc.@}>bM{䏻gvLl,zn*àDBea ϧ[V`/ݪǍ],唧fy5:f_-$E!|)%8> و.i\SI;2*7nf{Ueu+@/ESv t_d+/Yi1bG =GanRj\߇T,deOw]V!N`z]S ?2zjo{- dgu ,Q6sp ,@^_YHd'MZvKGE.sw{̩3"<8qgk^ 2+<86va#q{jq:撟'ydx5Թ0%(%eY 2;!tsR C"OKv 3(  _xSK+V(/&kIؼ`5iaגQ&4M1"_Mcp*[|?5u&vQ`uШ/PJeő%m<%.Юo+?P)5 P 2U~x< y[@/e]JhAMAte52/ȉ{7-zH`yg֗2hI80rd3+L`TyDGDYp&kA,ׂb,6ͲHyrA8!H'ŢHX.%T3jlڒ.V>7rVkmP^7EZ'u; 77j5αkn=H2Xdx&%sWȋ`wנ8#`.%AlO?ڵ2ZYBGkSjU{mdjCa{E,֔(b}nsZ ^0Ws6A3 <9!YqbĢlG,<% 2ț~I@EbfBԼh"QP;c1(nY ټSyN -ZF7Sz[[eDLs&.v4# 6ڑI#W/e0)z0o%߁Q/9y(B$O?ȡzzQ ̀JkTynTSkh˝CNv]\K7N!L'%m9DcyZ :yZ%lS`f}=랹6z\A~D| wCS|PZ Z_[%)a-NRn79&@ҙHsz:Ez]GW&U[E@/v~[g,Zxu,;$a.^.4_%@^`m]F? J',P֭ oTлK#ޞϯ,ewYU|8̩p/I䷋96 WMӘX}wK&k{3S8,8 ۯRz腒)#`H)0_9夾|[Úmq/K~D>T)+o,L @Lۖ eE=GMs+/y}'-+VrGj6oG[nY>}.T[m}"'C24RtݫcscBLQku hJc#X*+ht3zWj;û;t@UB${ؼ_*TF'/=@>\"Vug6a*)xc1ms,E% ٝ@NX/d6gX:(I:2A?:6ExԠES{cuiTa7}C؟@bQ(7b+7sJyeQ{t'EAaKwao.7n k9԰gF" S2f@zh `'e H0 GjQ8́$m #`{Z7hP#bj4Ag/1xЕ`}.9:as! J@7P oY# fFqc,(6L>lH\bI+NTӚ@Wb]Zkѳ[c3SIJo؇qo-޻7z04 ̔|rG}y#J38.[@.1nٿ`W879b_چU%gf\:IVEaT}NZYbD[H(*yg%[)oI(Co3 Zf[F\ۂunP.>G1'+O7(N3WLvRxB[Qa6bH(*XvY^i)0 #UwA<#X-|+! E+Q Wt!FNswU}Ur6]l*[FَoYzKf7ڠHG-v0ͪ(kJ.^6=g奵?,L/Rcx9Ц \/ΦuT$isF Db`R=$ y{Ocnm}7UK_ qQMNm$ sfouSlsVEBёafPG|jc.&YW,a#ҷ&O>r.ókH2J!c O[К3dI +GWv}K p?31.?г9w[Îkag{Ya3M4KA0Ãg|-a{\ea,oRte n=h2j*v!.j:Ab-ԓ5ih"rmpqhzbW/S.V[S}߿ǡ*)CaLVqoAnnED[NPlK:&4va okeߘkalqPW7~ A :%R8U G].E\Կk:eM@Ĩ!-AΞ'^(&a.6Q^`x7 $N:y $D~(U^|VS)`_$̵|L^"Lm EHvaiՕ)qX+4 0L8X0Ʉhtߌ~G>7yGn̑|OwD˰*7]NzY`μSwI X5Ћ -[opAZ7O!!4 0?N?SP|1t]ҙ!ޮqmkpq 7 Wp>Jd<YQgm<*IFrl })l}hKR\mHofx*Z}acDjAx N۵g|57FNufV!9D,i6Ɋ)X@OzŐRZfs`:]W,n=e$4"8|bfGg]ښil_2[%LؔhS 7@Qҭ t @AYhmQW gmjDԑg? O?ɬp%a~8ȧ6zxw>{ 1m=}yȕ"k$Q@ g6A7c G`仿jEªɄ܉?ޞbVk+O^(صV? >+cKH dpE( tێ6OXz8<4>}AydHtK[ШmX] NȨ4ѐ<ڿrhd1(-Й;4gC],bZ $UFդQu1F+"٨пNm,e/vR۬Obt8>;vCM?[ BW]~:1!K7;[:zze4R&WaF[iڷ ;dD o1 @)]C(Gۂ +M[\M3B<w\r=gk8U؍ Sd)gUi:_N\2=Nv[!N@N*D)8N*?(5S}ť[;<.>YC{`k35jrsȌggTW8|ܱ;l}= SSha &Gi#"7b%?%ۊ TUhU"qqL_1Y%5AJsXXۺ:־n8ᔵ=4`ńv1'퓥LEjy'Cpke >Fs]o<8K´^ögnGy}q;k')PL*,&D݅QuSo{c cjBtVtjRGF0AHHYdx!o2@3 .ŕ#(xvIsndtCiÅ|漛WҒ Z~v e:G+\ N̈́>P]\|~}ib~:x8p"E| hP knΘݻFBDmL6.KVUP'ARNI;-ɲF{ U/.F&Q Uy}yUno8B*Sula^pӹy𰋹Lx`^V; v\ʹl&@D{9RFDfԈyeI7QAi|KٗG Ƶ$5)Y( )?W Uh0񉰞?zsb=2‘&(1:Ġ!`4 |Qm!XnUTs>e:\4V51גs$bƵ=] U^l߲vͻdN,nX0Qg=ϤoWߙgWyVzޓ>~QWJ:M.~F ūQ/BH"?# pk :@(oMYY+FpXY AMUbJ|y%IXX9va-* Jԥf. (aFx)C%iuy-y 8"k't: jDPDxNm.*[B7IP @OOR B̖^c8BX=϶k{ϴ3ۛ#^42}iH}Cp¤pU} T^oʜH4˶MzDjg6*鍯h0GᖿijЭt#Ҝc>^ĭ7NZKPNbx,6z{`ܕ6МsGrpx&-i8KZX=3@kh4~&.~P@>*PE%:`#q兀 \D0ܲRIZX4@.D$M2Id |7e&CF{vS_GYV4Ly;8w`.Y6gxNI*>Zzkx53N`|NE6 :i/*nR6Cڞ5ߒ^O]Ee2=eҏ.(L 9pҼ..Vg\Z1])Z8) "Uv(YQ+|k[Cn9' hFeFǺYB M,z; 'F2~;w13h;M$Ǜ٠^&f`[ *%%=?a6LT0ٻ͖oʃzia'6LvRRصʋя.U%Wq”䊔 ^:N< :tlV{{k&0CO5gKrPC΂<ʏ`#IuD\dCSb}RH'hZ*"ռh] n{ub,In ,5Nl{u^݉{"⸲}bF!{Vn >E2TtcMkC>>! IGL8[ K:Qїx*#f(IWx8-7>dƎg4ʇfm0Q\92r,V*規}Ei!ȧu;,>[)6et#R)Yˋj(t kLA?AݔG%G*eJ aM}Tj3(khJ\X8^P[D$$Tٽ=bdBw$*|#ϑ>7vR?8鰳JS7Gm4ou3N\^Yr;;[ 1&T )~܆$_ytc?4<ʝ,jdh[2)XP9,Y{:2SBnh7 ܏ I~O %aϷxq[8jb%h]E`oL.e}YKsDN3f3Ժ?|4jI֬=RTCs\BW oJ4stmW;syN.W[ K0 "~ 8I-vǠңl?Q)P VcUDҷ{ [: c:]#{JD1"m +o-ܠ́HcBXQidoӬ;9atb vcܿZLWN/D+GOsmXYs40b6 0f&k V0UeáT.|c= s'J=ݬԐ꽴0ŔYBAXF;-Xo݈ku:51[Du*zv9>|9Dz[4iI#RHcoXm`"9$sI`FB6|ffSp{䮘wA!A*.wNE03M| *ΓqVV 04 3R7``yak*@w4O,Z=q8hUqbR6-It7Sq#{@[PȊ=c{\hX!}q , 缦 Zɋ}Ճ"pȩ g(thT A=P\$Z͑aQYDKNeS47SC8^|08ZiAuΣx|L^^zQ1$Bjaߴ6y!^q hqJ 8$\ YyoKyMY5wvȲ6mI~M &b5cy6x"ybR0S 4d^<|M6 Vztg3+"!\ n?M2;foЗ 1%bV?7O@}m>kN4K-g}|vWr{=؞9R rk2/Uf~VLkY{a%ɒWU'( Y 2BtymoSU$(nҖpRtQ7^RkGBeA{S̑#0OJ3Zl&{i# x| FBeF]C!W/vo`r?+4*DmgST"0  bMȩZL V xYWaOT;Pxd\iЙ|3ͫy@]&} cϪQbfpY'O'?lGmwġ H1xy @+hI dq,Gby0w KA߅C#Jj,!+4]Ǎ\g_} Zy2a iq:plOfgo#z,67#J?Bt"IJc;$3IX]AfQ9E9/s#ss1JG9h 6/i_2f/x.$ l\[5P pt~|{=f/dT=VseC,wY(٫c U7U9 &[ZE%mɡ :ؠՋ̸gsΝfe;h"L>FuWK;sm &I_*C:w/~jrb7D}GHnd0pލGo*z$]E~tiv׹ G>zde`S|3@DD9cW^l?O/p&I S}씝>`oȈ}kvEbAΗ3=(Oɬ*.b^Usצwru.HYb{Tvbo1P!ʇ epX ރw33{2ȑnMjh3fAO)g1DUu ׷K%PQu$8cح~{ıf-0IzeQaE?{tQ|cHehk^SfrgEmz̝1D@CP|'$?dV5TGm@ 5p3ShsdG~:{q'˻A35gs]XM1um}fłr2Ap@<5sv׫owhy.e`ayAL:*>;jF*6P╉!G/% qx2Pn]+0oWyP7fJ&9ʓ`}ri>izDJkaR@1a7l^v:jO0QF e*`i}(X~u&be<̩ r't%kQGSz&j҇<3 'UJ;kL[D\}W]0Y^FuMkaOQOG*ҁd'ӓ XpQYW[J>"L驰O )/ 'AGĎVE)ixu*:;-a\T{_# @1RBK%(?Ӯ8ȁ2u Y ) cxO>z?)OOGX( 0RSke͑iQ](vZb紁֊D{>jS'h@܅N4 =>ŻJ 8eyWCˆ@Td^*-.|dew^k-n;Y1ہ%]5Vv$@:Vݸ&a}|+zo Naz$ȈW%uK,|lz@LQhtO,M5l;Ii5݃oyj +>ɉlwÄ[}ާ1Y<Ϟax$rr ?Hh/.WpYJ2G"\a HޒTê?aBe}񋠗GwjNM]jԛ(2ۺ_Dp/ (ԴO=/&g'G.B@vNJ\[1( ;qDf\WJOń<ÛȜ}J96p%|{ͺHy4wT]LnM?["b y/A|Z!z$]6qzD+3lYtY=KѤDǤ֪3Xa|&!cOHX݅ 8ƴ+tEW~+%>67L|I4L 4@Rw4َצϺ_40B&$ŌXº~ Mq$k?=gi9=WRF+[Lc%b+P")Mq8~QS?nHőF_$ؚ=3? P),#Jr(-tYsGw0JӋL^70rm)Y/[="d<uU>Y~;Dhi@(]sE@Zjf}t'f-Rd,B0W *@dlyykɳ܋ϡIkiWE&k"jYXxI2p[G9QiN, ܙi|$U#ZLVa՘ Ph 5Xzn8<̺0 4&ݗC `EP.#~]v{z?7akY[b I? ..Mw=[=N\hAւ:q1c6Y5)57+eLȶ R!{ŞPk4'Qr( jB^g.mGed31a"1n목.2+r P') yJjTb΃/> Ve]A "Fn;I96ĈBy3ɉ?Ją <ٱe*nmiҝј?PF "a-aeY.O 8O5l.ub ($tW `G`a^8rx^1uP:>;CA9Y}]RB,&K-XMt-a3鄉I .U )h,[n~ % lFc.#Y%\8W O$|aB{1`s&Ǩ4d&!j: f fS54Y5T%*5=6S f0 qlH D.l<*԰UA͎K1Qs{ 曟ۅȀu\*2Q05Vڻ=^l/݉F~M SZY-Ŏp1@xG)c&X\$6J*nc֤/72c,dwr4j;NSr=,l:.QɄƎooj?<`=Q:G)V9*#)- vo18# l DmZ"\2vD1\+i@+ybzQ/6D6 dx/ qqo9oҙi x&o %>( = qD+0ɮ7K@Iᕵ>-Xŭlӭŋ#J -9\=-W)}|<В{70W8~ m_zaYʡ5 jiyLC+PU_>QY' +}pM&KjT[z>|jv//z3Lc1.{vܦlT75KK+Gesa\kZm<˞ 8Wqp8(mNՃ.o-9;/*@7Tljs c?I P-`V]"L_¹t.ZIVA2RO &@T]HGo^"<}нן_rapv-}aJ;\_uO Cʪ8mV;Nbk W}JZ'5K5}'qj:j;ޗq7mE =mi` 7S~Q$ e]pv"ٞPUY^ޯ;DZ#k 7cYr| rH8WO"ef Z}?(`+ްkUT,UR L}N̽*0$1Nmy}܏~KI*%X{oxǖgG߫7>#>GAJug U#ikk;ijV6en{\W:dK1ui( OFf r%H$ũ/{ '…vr.tLOAsQk.FBVAK i\GJ`" Ԁo!eViÍ.1z.D%c)Nj'&+z$ j{LÇ!e.sn]K0Z˹#7A]7 vZ?g<)qu,.7݈9O I~1.4!ȶ^Ս7JCӍݖLRnv=5cNq=e;& <^5-+g0g%|lE^ HQ\yԋ0qb)N#A}jMRvPpؚwC74zo|kϾ4f^+J_AL^P!.@ղ1my!O~ӷJ/)djQUd%c?,)[mb nXz邢rI+;avMd~$s._ژQdߡ26Bt!bo5zߖ )q #jlUi*H U\Yp!_1{t2U$ ø,ZYyQ0! 1PAӉxse { 6Rc߯tboƄã8h n5sȠA![zEWΉh;I{uڭٟXO)3sZ$#O-€q~Q]2[/踎<M} N 5mIC!$P,o+J72MХHeEeUY%(29]#?xҐ@6&`rI'RHw&9eRʻUlJߜEwH|'n,pE-me[s +&?ue.Xi]H,{n'6v? |&˟IW)r(B+|'ՃC[Eus-|yPLCox)gM`i!Hbf <<''9ԸGIȍs~OO8T$ָY[S=+FNTˬG ;PI :[Tt%VGiNalʛÂ͏Uvj; C+K2*-VV6q+z p5ä6`8R+!yWl NER:k JcBPn kRN xeѝK Ϩ0w*8aR$'9 e6"<(,2LY4_:y {+*hfFu!V$!!#`3=O^3aUq6R y=_mJ+H |L=s<#)y!8e_*~m!quJPei /pwǯ8̺* NjngUsa|NEs5(=53M;9#ןks׃- XB8U; pn79/}"N[ƛ#`?s]0QWc$Q#CI53rمaPH$k vjya5?=`qvyIDgxxB [8̱p@$3W}jdn'%nE]Rk)؋H* ,Z*׵X3fFe`m-+Oyo/Tk>&A,U"1Z8z4{,6mdK>"rddAeшLR`SZާyE)%;W_*sy:e 8f~(G;..|\[G3ne|'qh*e a[?+hAقÉHnwKqF)JLej2dHpBټ96KƮ|AN-G6iq6zgMLiJztqjN`Ӂ 30s\ݕ[)XtblrB7rN)JGS~rw'rϲ>|yʉZ#F :K͐0.]qdSeg:DNv&$L(XjYQeHC`&HgY8{~#c"p>if׊|?:IG~mK|y'Juz1/s6`p9Ƈ5zM*1K K^N[ A|@ɤ`c-^vpv/^J|\CT =f}~qe>=@O~+B4~n=_f]U7HRtyJh AX&>vJONx#hAHxGe8>.%ӤĬEpU@]^F`fr-h5@JZ!R ,W IltjŸ]#ǙG/e+rQ՟ofg&@yW~7-zsܜd!@˵ynvb[j6G /{ŮƜ}C EZX|و圩0}^;ڀuH`g;`-P80E,/Q%a1mCyH8AIvv>[oA&X nn-BW<iw~M 6BDQ=VSQKjq-_kT߉jm-A5Ij2$rP HKD$rTo5bL&ͨ9pY_B1Iy']SW$ TTli{VݙLW@?*MJi$aޛR3_rk̲6ըJ0ͪ,KlEwȲ08dIApNNG3N؏@Z쭕 $~iމ5b# f)^b\3e } TxOݿzIl)yW[0W2ar|֮1Dn7EOq%0l D~3;¹FR GlkO,}eZ|g\HT4[']̣0~e8 Zfg{/zyl[N&uWR"7t|B}NocSHwQi/# ryiBeO6)hU/e}1T8[rTtOVQ7cE4f&F zX+A y)Ahy@jK]a8sK 3V_אQ5ij|pH>^Y8=cx شqh^ْ,bu*M a v$N/pv(Ubg~{YqcB}ňܷp?1hT0427cG)]q[_=[(üs=]mm6^H(abKt>"xh$ز~nSAUs2ދkhMd3t>hLa7<*[onهdr\G},M )Ҭ\Փ7w>=y*A!+t|%=7ezIvpԾluX{f9t*폘(޲COpd3!xJU"FdPxVղY|f+C;LPDڇT]fWDK%elyY?z3&ʥ;n.p*++L^5P^¹+)?FmOG|ޖ A!%:e^Ol3T1O*Ժ+{ɚxP> GHL? vJub_:74Upz`aǜbź,oJk+;tgjgl7\{{,1!)OnhM\O/Ҡ;z{𛣄GX qFC1Eju:se4-# aqPdiw;Xrps0dQ:3Myȋȋoݘ\,^tTV?&_'50}.m="(@Ë /j/v%Z 1OwEs>M{(-Z0oko:z݀(p"9%" 4Ș964 S]9wh4S%O M옩ZWRS !f< =JMqS1XI BЖzơ)97M-YU9nTbx{ۚˠ<✑9?nsD&: ؙK8a$s3Tt:1A͛vM=12T.3#{pؑҖLxC-lh7;ZC!zشah{t1?; A:a&@ks ЬR:$#d{;+_&!nòv ցp~Vh,U`Y"6%o @w{59:.(I.. ptSGHM2 ULرhV($$X6dΕAj;/ҎXq㯪U^W$&k j̳ րLK!# }T|Us7}"?obls~Nk FS[ÍPh frw C M2PQ J5 c sj:ܫ]Y7λle6ԝڕ\m]Nf$Rսoz=0{=Y7..J4]L ҮRhG@K(֩:_|Gv rc ~) KBRRF@ܿw% Ȼp%799߳n09MdSZUrv;čB*q(]yoSطyshdl:p67z՘@+B X72-t+t%Q̺s]12H'mڍYMY0Z!$` X U):tu7F|qgUymGk3w {rɺ 垖.P)*N9#; 4P|w8̅$Vy&w';m^ x*:N@4pjZ%{L9//P AR"jϕSYLZnI;rGJq ?G}kUjE;v<ʊKXp(Xy1b@e8GL5I#>fՠٕ?@IybPg1|ݧ r&J,NK[U7uͣFUO~HHƅJ#\z8uGF0?ޙ7zW';x-wDx,^1D{8@zo+_s/見s_YPݜKJY}0͌Jq7ɠjя%B, /a[ו]" ek5ɪ4,6C>.m$+~A /]e0ɋ;ҪLMil318oF`cisN/0-%N:JKnu(S9f2DoI-3~Sש-H +{o4`wQ.}V r(R9prņݧAĞ~Wp?*PB1Y; (X[9Or[0mo ։@D_ M>!|Iz~%6Ψ5]W H!d 8q3Ayќ<㌄x]ÊO]^Ӱ ehtr+X|JDo* KUlu K$xw:,ӫlb Smt5x[ޔU.ӻ>h2&/$@T]I=ђYdµ7˷+Fȱi֙7)U1:"NVcDu0jwl{ҜO9fG 9}96d viϗƊpC0N>'.ٻ'&Ɋm#&r3;%| >NHWQkr)}o{o :9 Z>ޝO0 WplM 5^ Pz`e;b@]X Ͳ?ǁNe|P294w[4k@1|䊷 1JUW Q`|OC;D@רY6AAMVVf¾? g9OLnŧh?H,޼ p;"i>@3W]9er+joW")-dTO-P]P4^%1D_L`nkn%Npi$?~Ѽ8'3mW/}  }PPg $Ha򀘛Wu,#6{I~:Al36yi’.%kh̕ D/[^ F%:@ri_ 4P҉43oq%Tʝ|b LYVxus Btܘ "x+ a O|)˥!-娑;1sCtLnjEj<ӈi}?)) 3W/ y>8(/rH,աp|uI,i<LfѝZ tcKSk+C*V0F<,HDyXE>Ȼ8u7!x\ \tV6J{ $mY|;]|\)gG]-\XR.:hRl.L]LcZ&ddpIV0vP-3\PdG-ȅMz?ֽyS҉rr[̈́oRe?GN'8i2*?4t@=L*Ў3p)` gr=1 lp\[w^@c>8436 :[ju sAyZ` 4PKHt (^q F84tgލ @NKM$ϧ"`uW[>ҮwVC\L<$u<8g urfZಌU*d/M6N51h8lx@WZ =G⚢`w5<AmgFBusVK>Mvǥ\m۹L+g͋TI1IHgu, QĔ˹^eP\qA$%OO՞9^LT"/jdjr~ |5Y={%1KW 2=RT\L,ka.:t܉>}!, }:8pFUjʿ3)B+}9hHcwކD ެu‡:R9Nڒ 2ԟZ0\YBcm&3Xj.ꂏoԷ$%ˀUýJZdVڱCUdƍ~C.CxLJH'L;|0r2sYL'[3&QxR,Kku'EZkJvg\ A[zO 63NB߿,pT=AlCuK fވ-c(9Z`Ñ/'><٨ύ^0z|3Y݋jd<"ލ#@Kx;ʑ IloIEK9 sJ,‡W-pqyz`EĵՃ:"7W YBsv^!^OHDφԉX^OJ B E5\AXaCMX <~Wvj5SHW0Uv$k[5G ^ (*Q89N"#r(bG4޲CP.sZUyR,ϒ@5vࣱWz]O郃p_(Mpͅx~l{35*=ՑKֺXNp"(%csHqL#Q5C7}7}yeE$![Ko!?,Vv*,;o,VW|J(7ۡ!"``9gl +I// ZusYa ]ܯ] li}rO8h8HRH)MIE: u_w.+A7IzHY@X [/Yn;)fdmCͬx371CiTbaJv 6'N[F~8몯Ex7ĹhĹNWFe+,r}y%T%ѶTN4RPQQJ2b2s:2`U xDKpؒJ_̈́M=S8r}Z~K1zx閉S`ʫu*~۪ܴ@'v-+s_Z04M]O)jӕJ遉?~NxsV8*LJ Zcr9 n[Ii>0}{<:6%wn5lS֬.i],ANg'EF" iq|跛{Jv(;)בpd`:6C,EĈ>=[|RWEaiޗƿi5K|Ћ8R\0'L@|"?I ^ ֹL[3!Y݊ ix߉rRi[#;%N)hGvWv;q:*jI OVX$ &Xp_VC We*0uG"L[0}Iʳ! o2O2 1ewkNB5}9˶G/Hiq-%&<ҍ(E&n\ֽM!;ʝ(VPWg1vЕ`KnR;DDP4'=d7w!|`^ *®R|^ܶ;6Wwx-{ݭ7j7j _[|z:ؘň*r5L3Zɬd E Tnp֊pq1%xE:"QcNݧA0,tv8?zcN2wﯯu>cda:+ּ^.8v'lDɱQ9m%Up kwjKG$|ܵAUq)~ՊErrDQ%NnY B̈\|r2-T.5R[œ sM'wʔ8\yo_?:)E*d:za5^#HUwLś@iv݇dz%0/?g;2%4ԓIYi0O n;bT6M嚳U-wlXO9eRč3L ᔦp@Kd{a^ euo$ӟ+{WZn.ɜ^;sw]m:G,>K-Z l^&XaĤaC|4g؏gh\`ׄS0zn.5Οإk ӪۿUZ{AM Cgڌ\'YZ(Y 3*~~2>( \-pwpf[J ˙}=y@6YHtrȾ# (J\91oc;ɂSClPFx{뀨W;0zO}4X^&Im"zkY8 lC[fGb+X|̫{bqUkx"y Yi;k-YE*{qEY>.cztP0>sb`ъޯXUqc!i3+1H$XO1ᲔIM{1{oeT'* y͠UmGKͤ[鱬@O`v[_IF<$ -pds,2#(+xwHA*N~KL.a[P"8s4٪5 (Hל$Xhd; Cg< O$NhazL|] on*pnrS6Y"D1G&j p3˹D(·`b̫@S?B#EV5m"[l;#,W`௽"rmV #4l MȃӷHe\JrIqad`axΉJT,ˮ|m NqAo'8X(Nڤ@G4:ȣ[ f6WQ;H vb]0 .SŚC9+zHt z0v ;؝: ,$ Q #<]Z>@=ra>)*'G&ȶe$N72~ˡ$;z UςFryb/rjO$nɝ~sH4eH"LۑpaľpР8Uv$uNX&4Q R4ճFhGvF[isAVLT.E%Zj7V ӌoo9T|ZDp! cÅo2BEzҬŹMd:|9tֵ-G;X&4F1pX;n-%]t~ Eoq*̢! v.Tciu$s#Kt8D6dT*I[Ih (POR2Il\Yl)=ncX Rҗ3i\S`^p9z]P(vW/2? %8NڑV?bJə:4%-^_ +[pl'[p_;ZZ5 {NN5a_Oқ@+sbD&NjHi~E뜱Nuo:~ҵs3 B:C NA ײHqC1L< 5_OIPPjsf9/2?on K[Ս9O\ A'X&zC=ZMx_/tTUV~kM)N4E 1x RJ4֗nqpC"03=\AA?Bv]̙_/ojrK(^IM dVSO)Ң^٧1MDzM@8%E)ߌ)⡒_c>[CЪpg$l$c]OZ4<_vsw4#dJQiW9fɩX(KƓ- "WYRX,ۊ쯻!Cڜs0WRƌ[Ü^TJZj_-II:`Tmcle.~V;Ap S$L N@',tPQ?yCq,s!~)*IT1b=7ZF/R3ڝi X)=D#gYy@'~!`8Bi*RDdYQйcÆRc%fM.**FAv˂EC\>@'KQ_ucG^/PHPbZm\\ QPmP"U%r* -5gm$H D̫csjEZ iLZPsb:t3 >:_Y*ņ~2d:Fd[ r }%hM kϚdCshXp֭b\>/w>˝Պs3bOC (+! ")OL]cڔm 6 dY릅FwApF-Oi%d'bEUq̢6L,\GUDWKQV܍<` 5!MsΚ`=onS\+$v@@ 6m%N!_w1c8o߇aՠZ4>{:"T9lJ'v v6y3F-z W/x<_b@w8FD_-/5u`]8[5ε%vf*%DEkBo{񈖥C̵ d\,P,;f2A tJPW@QU`T_z/;XDzu"o&,4풾Qw3d[;smHQ <!w5Z K]H 8$tt3aSvIJuJ`+tqVzgvZܵ*n)xeM11W6dN8qo@Qe iOhTS#GVU\Pm3ֺd>]a$I 븚 UgL MH? pwQX).Р*f\-t@*]B5nɫ-uf;@\:D@zXħ@=ps^_ũi=FJ@:݊1%ԑjcW8\N|y,iPęI"ޜh'bՈ9!GZaɩ3z(*$AEȽE`!`%.j$E *ik񧳹ɲe\jQ"#u jVjN봜 GOhouyb}!\,5Y-뒶굁ZChcη0_KY0󴱰Cct#@xd˱C4D@Ĕ*Z3^ܴX`@\ DD h lSgClڈ<:j%82Ԁ'Ew|xu[~&&"d+kb 4XZ\=^"WcHnl)c$E@?~&i,2 =rFqAdԖ]o@g5l;aC@(ִWߎjmݿĝfTi^뒧eF2Rh mF219Nm4U;yhGy<=FeBJ(g,^Ah7Bo+hEu7D7Ͱx59ReW5&Ԛҷ!{ ;h{0lN2~ڮ%fHD,k.IZ]H'J[-qҧΰ,YiTB3yd*ݴqGHSkY[lsbMؒ4pM\[꞉u/}n4ď.oHs7+kSoBȳ`MDXQ5Gux O:ӱzM7?|˭Um '^7 qn\$/u<9Da-|O'%!Ωȇ}]_7%y ۬>p"t 5h6y1 TTqq#D 3GhAŔXԭ#ðw"n6 Yœx%NϏI,^/{F^#XlHuEDsQNJ^6=!NyQ1?|+/*C0u0tF7*y;>=k+EܬB H-% (YmGG_V 7k=AT2W4ċCxlj l홃L+1S{7I.s2&~`.9\r"wnlڢDcL~-HvG˦YZtH4T:Ԁ~ݲFcN6+kO#su{k=%gn7d.@3u2 OCiNnH 2FCwPaW*`<9ΏBH(q;`?2Ar4ňݜ`X>=@t‡6cSL qB:t"MU 2PBCM ςRI3F`e \ڃvkER^BT ΀V5Zxxt˫x+6;#Q3[|sƵ**d0rX)AU='CSg|DENS.3B7٣gdVd^|~9>-=naKVݣ4?kT-~tYܡSփ8㍦y5|nw+2!pLM݌rq׬ ~nqڬ_H}P!_єpfT0 5Yq&T'#9EQ`*B4PO(fqLWyÀ5`'õ@U)&ETL;X !"&4)&3U{]mh Y#9.?!LM~Q DpGgYzK",ҫ8ȑ"xъCb,jfyT}&:3-f8<:^_Ķ1̩6RŤwBH 'XMύ}V4paT R,:3]sO?ŧz킛;$C~'~-=ݻl x,g6? Wets_@tdW2hPoOwcC 6 E1*|11Bxϝ7q݂&kmX[kfeG"Sk267kЊ3#(:$Q#4aK6vD$kWwoz|f<03AxJaT@p_jӓد#+|Gj4t2m~HL :k-So rS鿔ct~JQՓݾҙ)+_\yEBG4h9㕸$N v1͗' 1`١岙OՓЋoB)` Wn>q0 ߜl_ER]O@#E>\\R+T&[DvmP= + AfFfOߗ6?I>|#[@\yҔ?wopK;#5dL̪K-MdL8ңz1 9jny%ӵiu7h߼zQOzWjڲJ`>e!3IFJߘH}3ڛc* C% sײo QoQ]I^Ň.~gL_Ao_][k#Ѕoy9V<0''\?Yr&ׁBly$Y̞|ኴ(dXp< PCLx@`MekdkQE)=ĥ.D/dEQD/ j+HYrOG~IݹL[ ] El`(ԡQ1P( 龹8 :vRX Ѐ}q1ڦwA"G$tl7C$qʤi̻i,p"J:=l+*d˸'P:bkc9,q.WLZYa^Gц.p)[ ?Z_hR2^ûBN6eGx%{X!u4]v:SOnN#RDEYM~VL (o#/$żB)+XW*϶T tsVɛn$w8}ۈҩ)0@A,mueN!l; jcI$Qz/kJ,j*;^դGNG̐t,E_/}hthh\ϙ"_~6 7 zȬr ڂ:k=LfY@8`dhqTٮ6e5M=%9"y]TC6;`zb.+o[b$CX|Jl86R. ̳>frt3*sM-v>#&~O{|=#slxt4WG@V6 Q=C_84T ʩKhlu-AK'"i/FLǂqX4y*> +=iMԾ>=TZ$ J5I4TuguoT]9Iӯp lK tT]4[9 RU,w%^2\U{8:j ثɼG>j֑nN@@,jrS |.U~X=.;B7*8x.cדذ^ܭ *oݷ]X,;GvʪB|@1o> ӆq _DZrȁW%;CsAtj zOD\y:w a;IOx Y Z$5]JCaRFu*HQ@7`yCofC#wr?%tgLx 3ϡ@>uֈS>_PY,dzΖN&Lu0[^if.%NK_Ĝwr:TLn)-8 5cJ<;7CS)|k([P[[a XWLkFaU~R3UZN5vtYy%t^Vbh1 SCǗ X ;pUFB+SAǺH3`ĨZ5Vj A:O5x3RQS뒻p;TrމN } r]KX"4Kv7I^SVDZTM[l,4B 0{҇a'|~n1$:?~9O8u>QLjƭI=V~ n/.]v";)״&xh#!2g^JFMCXQAGYE:mˣBb (ꦟϿu8' ghҳ2淦tn$h>h5sl{EO}|1h0|&"93&4NLz\R]Z+>7~ڶ >ch~ c,$0i_'{$ۈۅ>6SWS7V"%;G) ;r Sf)%Xt;yI|PȄo:XY{iOB0qqѳ/ 8wpoʺ}nc;QM;vƚ"KtGHQW1{S5,K ún~ھ~qjl(Ľ?cG;Yg#dN*I -p-{;ZSm?@Z>,@`GcQA~͟n 'Y<2n{r`l!gBc“FG/0ĨOQ$eɓ!m1!wL-\uGx`PWB\JW9;-(*MgڸߞV Au5CǤ9ZDy͘A5؏biGJbzl)D\LqBU^BL^ل_$Zŋ0P4qc߂S#% 蝱q J[GJ3(Tc#r4&9VkU#_Է9qlZ[xRg߁ ߁ Թ ?ٍ_x%sI{mjȜw~ Ru^aaCRuՑTg8PVTppa%cI/#d3+`Kg5bl8ky0x$pJܜβͼ֙@mw7$LjS3H,!&'f]2!sZ Fǯ%E$U9% No*Yto zh nZfaa3\!iɎ%t2O&+(_"2 rܡ8J޽ KO W= 2^NGIW!5ښYgOu ^Tm5Ҵ Ʈ |$w4G`6uy-XZRPz7"Kus>me_F]&QlLΈsc\SAT4'GvKjE({NJVUCytF0T؊Z>kQ$t><S-S㓝"EP !"uZٿBir؟8~I,!EU}=߆%:JS̤B.cE-.p\>?^Z[h u`c|M]BO&/AcXJëa$FΏq =FɓhZbR6S^>+QX/63 LMg,H =Kq% =t^)CcmK)) h~fI,nom1CUل#\ɏ/a3^$Ji߰͑wĝ`A.rW]N~8g;_TrjuU*dcȠ2XGF0ku6u6/-S%qHlLdE4SD7lʿQ pB>V }Cפb,xjϢf7'a/)/Y>pr [ 鳦v揠1ryGJ1 c;_. &;}n˭j(Bŀ Hث,I"sMȮIYIh9u&Do6mmR3 -]Ulybyk('_sYLZ(7dkd v+]b߸}l| me^EXmcfv;03ejT(T7}IڇEsJ@R>yh PC?cL.UrfDH!NЬv<<z-ٴrh)5zmvu'ݢ"(I}fh灃!Xѽboe|Z)m˸]U[=rIT{)P')F5oՠOR"{<5lFH@ ?g'F%SQŹJ-pː+c= IXf2Os׈^h=pĆ( 6+F͓`:]vm#M>v8rlc,mjEߺְYF^5_},V"ݰ*l/ixu^W@I~zo4 GX*)3zo_MGu}n[!=XFtB~E SYuX5K?^xq%bCA[댢yy4!Tf`1%lgF=u޻Zr.ԡcL!ebW5E BE==:-ɗp>khEf|IrRf`8oNLG]R fY8'9βTZޅFyJ@uPsAټvͱb 6[bҕx0Yl6$PȝYB]qiwᙕXt{쌗#^Sͭ&|W&ŨrUkOÁL?S(sT]CF1 U΃#=)q*Zn8L|o+ÉH l( ̓l@!޽z9"OD˯_L鱅mg/_!h h!۳7/MnoPD@]њ9A|<%R>壌(mV(8 7@DަAeP&8ά'Ŀ]s^>5 ;9IިTbza-(h<V|bSdiF q!QufCZK=B$B)`KjYהNbKmoμ\6?Qu_v "R:ܘ6j@E <-u P߰md8C0e]~z+gN2Kx5е~͔H6BVsTꞭ8n((FF.!s<5ˑW4O&4 ' qs߹zz.뜃me\Q&#VՈNaOdR#?N~⪻ baK28fڮ;-Z}7|(c 8omq^6%֮^]YH.(, `,f> 17ZVHv*lKZ00-1t@zu&Q[kq8b^ 4LjLBu4=5j(zs2?j;׆aAb~;V,nR+YQF'HW2OvC_ NQĵc'+D>璙s5G@ΈuߖH)D`^ڒafeѣҒĊ<(qtVJocx!k-Y%"l]̚:K+7_5|vmz _&ߤ![ ,F{-| VQ؈?~ sBBgw^[(`E-'e*5Fe Ajߙ3Q ,1f ZjM$рt|:X@=,'(ivV=QWٚt3V1:B EbPƝ.{7ђ#MJw@d XH(aD?W?i2A';ʚdl!/3I;.29O&ȟ-Z`Z.]\FkM|^]wq}-V ɻ} (aoIEmޠOS5q1& 3$$Ŋ kd>@ /p򤟔1"/Ms}t4ȽL:vBm&sAJYߎK -n؀W% 4]Qq$Q94M4R5 ekaڮU0ؾ ȼ++%QDE eŦͽ3@OܪX6ȓ"V FzPOuWpPpeMzeYX.qz9q( SH+$!"Cookd)u^p낵 ⃩a9nvzSۛϥg[[a$Owz띰;1م<tT"uJ Gkin5[Zu ErYá^`Z),рM"@* -݋Z6AyNm-ՍSe/#Q BO+xfCG+M,+V!g?ܒ5CD %$4)$n^)s;tU ,S+7 OYOJ);=zUV,|!h.ޯfR-6ٔ at0UyiΩ\i;_A>;$JۧP6<9`5`QQIʻjcI&POp4S OmI/,t؞9ϷW>}Dj"R7ψe-â% Hu=,p5a75K _<m]z`Fja7'Z9pm(TfLq& ѹAmD,a;;錧- i"-l(+ Ms[더~Q!Y…MSDt ;_7+d謨ktl 0VhQ)Gk[F)X@`/'zKG%Vy ̠i5@U&Zf.?YDKkD nRhj~`-J7;۲^nw(<];~}xm vʺZiBihۅj ˱$E~EM+}4Y/sAc_ <3oݻme_YB$cN{v:m;Im˲| qCa ,ժ+zuvWC-JZ:D&>x;f-42켏vt}DY.d*Hvzd)BqS/+r_/w9řjT`HƖO0k-moGǜ~Fɳ7Ƌn?ƙ{tyٵlB$"4-BHlc)3„N P&.Y zhGP:ov<jGDxsMHdLykZJSWJ-f栕p`E _-Au8ly34vh"$J7"aI ߾*h|hnḋ_Eo#9 {cBfr.gG.kZ9 9ܷ&d?Йޞ޴'E'MGRBA%2 j>’l 9UEAU6k&[Jj3\YJ1|rmv 46|75 lHvnSV²tc; C3tÝR9;#FSP;;ݎ*l-~Ia'Fg YӨ4z6'OݥH`| gvxڝ+9}t /WUح\)08/l[AZ 4%Ӣ+WM`նӁO79¸R'{|VJ 8 c&APN ^w,a,'q+(L-r@FVF~D f"KAAF;I`_ϨAV8k'G[,|&m 6?CL%.rUL9j5%.rol9yZ"Da"brZT8d< L8+ݔѥ*0i ~ea Ȭ󕇠ctjzz 4CY ΤWJHG&Z|jv2ԵPM% l61zMfu߻ͷ a5_ } _CGޢQz{>0P)1ÏP6+8X"Fըa#_XolC\$ L1aCUMi,'t2*fO[{ݟFaqX5gJDmvb",iI2H "].WT_Y)X<1ZF;ǁDkؽưV@օ|1fYf {Q1lZG?wTҫO1|Bko<ֹߩIqE2?9x,5kϭ[ aA 1$S>bw9 |Jl6Fj,ڪpwՉ[]A'\5Qzެ/'O ߁H;𐐨w$|"0ZG.~y}~Ӈ\&?eګ~L3TgcMZԽ< HO~M܊*,@Vsp|-$]Ƣ%y`KD3;bdN=Q7!4 %~-<{ԏ -g?o-NQl)}Wx[x7>CqQa'*YkP_B9ݳj>;d%Wik䍝SFz! xc&bk 24ٻpc'o)±2RdGHu IFv zQ-eSɷYig=/4j<-=Cm^98^EWN6oMtac}=nc&Y4b/F#l C;0YťhfS gZo8' Cd y$+6BY A!;3x upe=M鞏6~ԁUXlJ- ȅ}g;yX:FpˈR+ZrߢM?o4 ζT@_z>JES/oc>4]|=&U#[Nʶy@RY~?-֩PN>U `T[|18˽o <^a%XbqB+*htoc jfONE.5(Rp}|̝GOnxXS~EE)}C8ϵyQz}wFٻnguz悲يBIt~SӤ6A:H"{c:Ft5lmZI#w?jjvN1 0DfvS F$U6;ȩG\XxOvzLu8"H]n76m/pB58g[ Ldjs@tmk W'~.HUKLtF `hPFP9b |c Egb([ YtzV]T`ea4E6h+QtIK%_daVp9* Tw!+"t18{yzv'* $hoa%62@@|1S~CJN2n5lf}}Au f o#Iܲb0;eפZ96s&|QYs&&d,C#:-l?59#}d=$fnzrͥբgfFlx11 )4M~AY~Ѱ}w4yWgb u-pDz>K>OE`/ .-jD)<<[fbփ^- a1fbb|e∳ݨ*q@a$$L^`6_e2 6^͙ Qt]L6yhr8x?JKg؈\yQu6Y =p`t؋(!TC%=SA,&%7kàRdm(]c ~Wt8K/d}``2uoX{;|RxkSPDq~ZS;l>$;W̾^ #M'!k[B۷;um$kdV1-e@VАiP! `M_:с| of!a6vh'fhtlWmIv5({ଣP>y[` x9]Lj~ siOL[sY2}W(8* *<6@oHZ5Rb]QWkv!NG>-Gk}}z@Q&~P W3_dLG?ny'6rF&úU`wB?q yWyF MhLQ+K4({)ʼn t^:R3=XHĂj 5 78С]bʋV\XaP;Q卹Qϱ {(teC^uLLQb0(G^K.h#!ުGJppF9=*N I: S)Pg\y:Rيd \c:kvCoye YI?b)bH^aѺ{V}׹+&_i5H翉WJlwͷXJxc@:^qfuZsEW׼j$!9A8jP 3˟%`O@ͧMI')ֲt4x Xu|&.ݙYTʳēz,7ma"ߕ\㷯R-&׭br\g=^UE%, ~IY0D,'@t<(?mabP1>Z7m`7TngFFivT_mmC\1B288Oj&e[ ֛ =³&6LP.+,NAJ 9 .wa^U{mziESնL'H|ek"#B!4'{VM ~#]q.YN}J^./r+Z6YsM׸y<^=:R)Afp9K#Bޘρɱ]']OUQLma+\iyJf+;ꞞטsGrZ m\fB)9P}\[ Zͅ`sWtH% e귷|' *UpɳzBn=Wu{\#IHŖ|w$@f"35ѓ&9iN&@.^*Sщ[q! (3vr2'[<1_H]B-.o| _o[?jq) .zKt(B#:h)M(βۈ༴-J#xUeI2 in6vMLk 46Z `gB{ܿRIl icn82;/oe‹J(D2􍋳}`6q- VRdũQ.um.S{cL. TnljnI:݌1,Er>ʞcHU2m+~KAW"o3\2s#{!rgc/ws&ynMEA _O8S9@i݃v*ID֋d׋T "FXQsA#>#UqDIr jІ:=}P@nsOx mFdF9[[;UqN1hCSG2(`uyt2k[|?]8Z=Fe&!mQw'ʩg.g~{'ZFskEPDi$tэH C7 3Aco,آ)3 g*T/;NTjV6~)S21,grHD<9; c]o}7$heij}1}-:|Q?ʏ |hX%ޔ2'͝$c8 li:ˌP4Ս5wDV)jo  H(B$i`כfש*4J1I< dZE }~# +ďK*Y3LT0.l8cȭs+'V`U0Wz|sTNMd2OE\ˬYuѬLr$o8>܌ff[xPT GH7R̻A2?N7%OT,I]\%oqjD<}옽>MuHi6už8lm7|BXy,+@rbO> p}"KZ|UoK[bzvw;u.G*-YZLNZL:ra1p&WE}|woKhgdmԢs8L(hXr},RGΫKU Jjbn9o[L z% xJ5w<"ȟm 'nKS:(*1 pxhٽ)=nZƑDpYRgkckcN ͍t@_bBanoU.\)[" ~u}N}VH*S: {Њ%Tٿ6J{k";H;F>"j9{z@@֪Ŷ-&DR.ilJ˟‡%o,>`y)CсG5g Z&?+Z4խ+ӛQQBVu^YH>cr߃ObKmx2>2*[9Є.oxG`t ݆K9QIYXCBɴ\'.BH @^B)C: $6kY-A6UM?s+akWmw%[?T\2e}13zD\RG^>6!No0}%NN-8_φ *`e0,4͐I9O%>ףM}KN@3mlMᤘl'Gx8P+ Z8/`2쳶S&kbzYıtTーT&Ul$?H_<%bI!OWM57jչp*r:F=zuop֗Gv($yevpb@X{T>L*'Uw(E"BFDm:*٦T E8jk{+⚩4|d;x3:ewrQ2q9;jy{܃>,u0,ۑz=SU]EtPӕ;4>BP}09RVKB!8Jl Rg7h>wԜz jU+iis[PN$%b=x>z#7-K19i0 (]4W8P_e5y;79HYũ#Zd+OYCvu%N9 DO)I%5ڼE+ Էjk[e2+T%3yN S>E\2|R,;_ayld,)~6[ 0\,&mgP`ςWE7ܡۜ:&4_"E%,*,FVGtZ_@2 ԃ%WH5V=rkUAҵy MӋE,Dd:K]CK;Fů00*)]2oPw%d-5WFd8 H~8dZV0A},vuo3=(Eh4.A*2Gғ &L&U[21oӨ)˒4]2:2٧ &͠a y9!(jZq7عy F><̜41b9tnM>KԾa30ۥEpf-'69\{*`Z ?fo%R](j>іF'U[F0_BBL,;zTTAbfbFyb+T8 rO/#6 w@VQt#^DF. 8B]JkL+d|<ez8$?INZL6/l vBdl4ǩqpƑ.tӬ1&MGrLm_GWJjZ*y?wS<UZ<ԣMv-Fߵ+|αQhk裘TtP#^DPB~sW_zĦXý -*CYd 35,CZ}(knlfz4r|@fvS p%hɛ!;S2A] :Q1RfHV.7џSi. , 3(uD.mUS2pf3 7OD'Ӽ`ØFfլ*3L5mYm;"&9K4N&1qb/t"2}/ȮW/dt j2 ?Lv;"-\.=$&\u@*{̉xE.P/K|+\~=d7O]CZ%}gDwk+wuc@N$ez#)"EnF=0Bi&ֿ3}Қf+47L Y I9.zB;Am]c&mO(S?( a«ZSA ?(n>7lVZ z+s/hJq[Z9XtGVX+B~ K1`% Uč@,Hy] dSU/ vXhwӔd ÏDؕ{Cq;MMyʹ\/P)aFtqD.[ A,w`m44pP EDU2pr#JɀTF&b OY[-rOk{2*Ğ dD&ۓsN\\؀xthexRN$17#,DS-_d^yaTQuhH^8C]9X6BUt@ b?P:dCF-Akf^36rZWOYy7U,qJ/oXU]-8/g*`ZCke Őrg&7vsbQ|;?0ܒ R*lHDQrNzKީh\x']ά=uM#;@ &˹Ruj)'2b،\I^DՖ3FK =L-~|Fn". 5X9u^ X3i!0vk;{SwKҟ.RMdX-GnTa*X(-J[xXzX>17ZƕVO\YM}iuAbQoZƞy9I4)oů$E,Z`DhL*9( v{=t#`@K;P ۶GR)T< ZPBʆ}(¡juY 1oh6YxE#Z~3۱65;+_Ez4XSdB]2 2}ydYbzگ0r[{Orf9S3ڱX}6hoVqx{g6i7JX9jP+PM8Kg-y4)@C4x6;{#|]q4?UP}iv;K .g_ S%hrkذ>e7 WxZ}Ȋ]ag~ 3 ڵk/Ž*čI>Q xS@Km`ES`wb}4̥PT@߇T6Y#ىԖ@D*Oc+&&'"p]B Kj&FjWCP&P%p̯;G ÞRNAoFw+`C[WU]tQ- 0aƟ9V{Zmr_&=˛G;N7Pք`aG^!4%Q;PQ4LgByxgQ@;e6kx.p㸹MU˵=ZQ &yqr:1_R³RMDWգc0E5I١UۄNW_܊ƘwZ kӖt#is_fGYLׄ;nȅYaIT| ;i4\Hք}uE `(YBAɸLb9h8o}`"#yaeJO.wKAU{=x^./HcFB@0&Xx6 ϔf2$O1ݖ>6i6N1x?!?\./#Og6Yŭg[\F5̦W)D8M*ќgMSuTσ{};!^zyFacv5إ嬭-xij1&0; Z,=&{5CD4=ҥӱ|} L LU/?m!|;&kE`@ t|i)<5}ZBQ%T}sg{$,|7 [rn\?EVu$lk2qưZ!̗Se}*+o4 tZAdHK^6V@T‡mC]tf@фw8FjabjA R( |:lXT\1{d+ F_G0Dl%\ =dꙄi R똻°gr#M*MV </ȸ|drT [P,/뵀`2O&D4[{ %lA؋8hz Cx 6+^n5e&U:#͙]tʱ侊a,QZ!xšeXDA?/HvpU|~ Ylauf;^)l&(bO0C]Y3_>K=@ՃP-6i^8I*1%RVpȒ&or]H.3pNq #">u~C58LkzIn%/&?/vD?EH(I [hۈ%Zj+~Ssd yZɱ"eWMM:XV%5t oTnٛc,1;v)Kkݰ^Fm躙=F@ށޘGLO,|[IvwGlO _5WFʜܸS a~9Lry$)&ج28C ܇>nq'(W~/hKt~p&Kd a$VGV>:3~vfg/9 MsJm Kf &=+kMuIl**ӱF:˖3d .s0oUh^pp@N{g_5$ÛHBnx\=@_  ^-w[<91ў'dKf'*ȱ;L 5h}*{#>BF51kTd OwU^9J;B!c!] EUy>65lT[ޥ6!TnNԎ''7Ok^-2*Y:F{H[lhRr8L>BQm ?БpfKcNZQ L =n֦Gf;WĚдBIu4&ڸB*~L;ن`ЍZFo٢lvNq0xJT\B$vhPEmZruȺ2ˉCO (i@bA6RY勿z~9RkEؤKNT*e@ )aw6Aglj ]e8%1Y$_U4tIa7LObIw 38[F@!l\2#ԊS1ZY4d%BJRPe,*GZ~&6֓&OWr>yk8Q0]!!DN6 e(P5N?h=SҪǀv% B.EAfHL73""tH9}Mehe^$u$ղ;YR5#maih'9g=v]9*]-nY'`@^\=XV "GH&T }̱(z[yGÒFziZ  "ge+與6VN8`b-lG`rփ?2Lp<_gm .#F>i9[\T5Lˢ oZĨ2KNl}=^@'܀ww|)vb,ǒ]hpI۳"1K8H13sxzR\ 4GZS?w_#hM? h㴭U2P9xPzqJQmPEQ4l3Gߊ<9X=ӱ^;] չDLh[%+]@Xȟ95BdAP5/߫@$݁W~}pg*coHמÑҽ|,_jH>+y )N+iKدY ܭx7cԅN~"8b_ O$*kiAJct6ƫ8Qg߁F`6=ɫ4`E q]7G`ce &dE: ?$e{cICw?;DX1ZpH$3V#hY 5eɣLX@흾VR{M6H@趒kMSoaNt\'%OkǍd20?0 F6bƿ۠lLϜk [>yR}mK0Tsc F#9fEwGcTߝ'*6zĞ}RMigl+o.T80Q2O)XƝx]lZX͒~W%x݄ 7%~1Ba̻m ɸ1.JM Mw-?GӸ܄Sz` :7ZCV7KWjǵW![otxBxGe'ءue0Y(2>35UU#.7'W̞M&JOs2iDy1%9,$u% Rr 'fClgwLcu9*kw nb4#p͈fP&2鉧cޖ$bp@4lzD)' !Zu7cX5r&9e/PAݍ{KSAK#J9sC( 5FBO-߶2}cOa;8'ӴR?W1ߴז+NEU׭R3F1g;Xp$!7\Oa</VԄϸ39H#⾗OŚ>k@, ]nW擔9#ٌc,j!.^U.o?nsk̚L#Bh]98֓]P `"f]ryaFKdw췳F\֊0DnL(6G]7UxU7VKENb.2TSGW̴a9Fq_8Xb/km:F6ŗf`UMg {cįut&0QQ ` _XL^ID twȴg*yi^,PHNXTr}_*lOPbbMBYsb̖mmi~cйD? 6ŗ=˽橜v&|d"ei|FWݨj%vg۩c[`:A&U^UT{p2^'7ɕOl2뛕jY3r"Xl1J93wCt5-;(jZ4=sD4rCCXi&wLʿݸfp.m 3~aXZұǵd\o` k>r֙ig"쾷;dx*qUܾB}|6 ख़K e[`ơxI/p0cfeU^m{* [2N߬`!qTydJUd 3& ׋L I/ 5ŀ\b;RL:Zbt)u@ӔRAa&FGR_>x=O>O ކW .fvn2q+~k׿̘lk|l!~(\EpM%I㐱5*liCpRs3-ol\l6^Č Q@sgOj><5<'Th; V]ow3~3<$KmӟMlA\P:eAW Ă=i[ +d4z+ ֫ž UOr Vk,o^Yw= 36$mހ6`5I0Z F%W'砺'I~ƽװo\bKny \Bd:cq?Ԏg.SR{Jz ݋˗+I.TUxM1D3NnLy^&q*}OXVLՂ+⏶tr1 4Q//_z3 t_aBAWKbZ!qr>@-F5kUuJ)Ȕ7bqMgeY7 WAMNOJmfalxw+Sw\c"f22eVLfoٺ4cʈ=p7@húDvGކ&t"ָ6QFKs/'85{:/;Jބ2OwAZUhw9kD*5 @QqŊr6^C Jru +̽vwA<0.ҵ4_VōZjhf l%@rz {X0~ה= c} AY2f\փf#X%}$53f z_@:uf(y9A (mJr&x-E7]S2}$$R!uʪd\j5*2]dBХaT_tV hcZGptI;["(@ v:{/C0xmFb,ҼEí t~j75{j3O_*eUSXQAƞf ߩ?}gz5u)0:*n~VZ%@.K:^C4=B]M }|;z Ղ>YCD,o2CQޏFf@漺't?̇]ݛaN;!F5"֩_$耕2kjj~IX" ՘6}tj:֍HsT_M@| x p%@S|HC,f[~*|>rG?{m6_\o$Dz}`+ q5I &̾$1s^,wi][;krLSTZDoPcIإK`S+]]}}zf︆!+ZH_g3,zAdL6y|]j9xZd0TIA_gFwtFǢafM*Sf<ƨ beå7NmV\и˭N/Je`+{јUVhqKe&'1G5UsX8:6J+H( ̾4E J ʍxyBt RG=|#}!Bk]cAp oYCSZ RW캚`g܀ *nU(25L uw>bğ'M#\}JqgeTnVzHbeYeBe*Ɍ :{阧F)Yp@hk=:c1 >ȏ/S?ʥHq#*.).xs'hA(o>?hi\LniICZ+|oӣpTsnwze2J! C6oQNB~&/B.9."#=RK@Va_7gxL09wإTtjD~_r@0<ǵmaWgE,A7RC%%,nM$Yƫ=jFU^SDӆȆ v0W|ug]mmDYYbdyѝ Vqײ%*bPI-%u}sjFl$A_ ͙4 ?@cլPV@BXv!q*0%#g1=OQGd J(RνD\'~7;aJ/~lyz-(V#ws+19c"P]/+ۣ{994@ޖm86§{*$l:3PJE*vC]1(GVa7L}ߝZTeة/;⑎yXs]H3LI6Z 6udΝ:k)_Vy%y46$XTk~Q(!(͜PajOȏVmWp ;:}Xe5% ?=cģf5[0;yPR~2u!l*$1?x5J}Ȼ@p-xJZmQJ]|$f&)̠@fVVXR4qBn^]OB5r'+3d.ڳʰc!hb~XwՔ2f J7SUZʵm_I.$myh ȩqI4NO_zNN˸"hM +@քӆA‰ 8>mCwğ.[q[hT'ZWC5=˩;>nD&?R@JOuhDrw&/ZCJAC_yx7/I_ ;z"kn; )&*yZWVύ+KhD :*{Ѭ%dh'LJ!d  ^@N%OApD@aZ2R"M;t?IfRCV`y@׼u*PsҐ 9P~9D&HuKJf1Ww&Qg1TPDR*W)0wQ[lNs4 V?-krƮi/1N#.5?AV}ű3TVגt@.1~]7 ;X&@g%U5 p!s!vUz((nEAB5!܍jZ eXe450kqlE&_M8 8FrbfS}窧2G,8F9Ʋl|8k)?l; bf:2=ۮ菨aFzrfv2W,<{K4W;xYO#ZXm"i48A#8#1;gylg7iU"'@x ho/`htK -4ci,3SG/zr.x'c6O":El& SN^3jݲ3)I6y eY$HJZN9uiLSZ?X-kVGORcUGsq0h & B4|&NeIhJ] I ! b~JD+)?=Wq^B \ՓMek@9ǶB|q!5/49$ҷuۦͭ]V{˂E>_ò$G0 vPk8Еi8G6YG!au!P/0de2L-|!#oxФV\_%*AR6o$Je恏+'/}p;y)tbGڒZC3@t4Zqа Q}Ȫ0K| R`]V C6?l?Cmֽ$Nר˟4`<;9{SFQSMRyFy`{. bvވVb`{ Um@"Zye3Kŧjv`u\(h}RGT7ZΔSBԂ ;7볾_OƢQP 9<0ـIpuRPof˾]ӿz\6:@WMqW Mk1FL)$T0¢e< an ;{,L.Eh'|̝y\Iq=AN1}s[ֿvg ZD** xb/链sObu[lG134* |UPwdQc{d0 saXkqUfz%}vo %dg9nk:4[f92ɚ+7›gQ't!㿁0%C ixeެ2/٪8 6):uq  Lw#Rj, ӓD'(|hS|21Huԕ\f~ rugz=$4j˫A̵{ݩ`+dp ɁwP9'0؝Q,%XmZb5FbgNz\t I~dgcz ,.fNeI+8$BCw弝1O֊F&nwK3O<ݎ)P ]јf5?BtA@N >zjNϭ#rئ9ܵtw}=A>?#̪|a$Xn.XSn6rn]K!&Uģ-<5m*hz;.YZFiX|/V(bBo&x,6k$݌>)1& .U- W,r cڂd}qx[ϽayU\-{%κ0O t߈(KLs##, }eo/>% ږG7nx֠-wۆ½./XgEE:1qy"DahMC54,l=xK gYhUӭ"FQէmό,Tj^ŜgwamL3a(ޒ 45`5^͵=zil9fC;ά#yBd("~{D^H)ljƋ{Y=~Y0(jgbb~QlR}$Ƽ'ܩu9~=3%,G䚌ڧ@㇅3ǯ|=j>hdщ@n:n'!Tsl 0]'mEI ŷ/dzm\Jn x]cV%f 9&eVS8VDoE5daa?Ar)a g %~_dQ-o-|W&l" +RVluOM̒Et`[ILoĽ% <m=6μp7޿6[f^s.LSd| N&xY,)G$ m⫰Ne6ígW'$E*J_b #B_DIsR8BBy(=7N"V7"UM5ƝUB\[)g –숩l~"e؀啢]F qgW Ώprph'9)x(fU5%>c0Y)Eh%+逊Pa3-9tm =ܤ{8P^W{ibg%HHpmI?)Gv`tݫl y>34ڽŚX̠|}f 4!h}_-Ef37oD"NK&gmr,0Q2Cw=}um8Un*`ɣo,w4X3GJ@ sUH##ŧBO?Z8MMVжFxg؝RN}PYYܓ>H`cIW[t6W#:knK;a>o\BC"$:3PgqdW E5 bL[11p[VVN[ -=ARȶDnS$FP-~~@S}م-I!m&8y %d~,L'w{Ӯq*v62KkftiqjMGBBPe,T@]BqEX^va̰MNJuw7ǘ %ݥ Bl)Ul|:漉}&XO$tb9D9 o))/xUAX; ,.꣒YE3[xM#,+Hmn[H$Xk&V(ݲz{BۍxkXX-7;Te4_d0ǔ5>iY^Dy[怦i0ͨQT].FnV33#"pzX]<@I f/=xE-<鲎S44*"/!NXK#dc,l9aF_w_"z!% vȐܴ*=aEK׼ oG(մ4^ynCI}WD[DbA:/A]?"ǡ L΁ ƒ\lI<=_h&p#Aq5a+l;c5VuX>y w= !5b0JEHߛRwmqVZw2VK\FR,rZ(^U>kAs>iwʭSh^rsoB[%m+;p]过]}f1M[5/2Y| " E\]ryYvx*Y+n4g8)KXS;SqT~yyp-D5So9~O|ND*A0^ҧP@jnPueH3ir~W:U1 fldZ>QiB){!Pjc3e 0P:q7vam8vOљ;tmfRJo!*iZY~vu, $`Uݱ=vqiwz..8Vض3V7}/}NRϗVCj &AP0ǡ菪@ܼEKq#{S3%>aÀ)mi}E-R~kievL= Ϯ1ˣy!=Ud QFDzlo7'IH~?ֻTg7ZS?no mD:9!fSۨ5l+HiŜQ^e|t+a6>;Y"I/ +9:@'^/ϯdn0f̵ɽ\B]۶g%=PA`RN#\B3WhfYnBxa[REK%˻56. x1dݣr;>(D.◀%¡9oY&XOcL>]麼zʥx?r-w&8XF*u :!\L4"wq7 z ܹ%t!-}2n1JZ%stXis[o~Wqji:./76k|) s~!)da&3Kd8jjg!Ւo*;uвxWnj=.Il~RKS,sGTͼ8a# pH}Zz(Fc|Hp- &V,X,#֪Z: &N9"^Sb**.{Wם?d`gN~z.I{jMW5sffBZ7.myv jx`w)g*^_f_Vp1rL 3+Z@`yWlM|0Zuͽ/A$!vzY`L9]St" lM]f̱7Ґhǵ4-iRwj;<,&Np<:{h?[Fr;r^k<F>ַ*bupZ-|Wyke9ڳ%&waoHw xt> YhM݃Z>|xAŃڦP۫Um5,uqQZyo% d"SW u$3"A}{)K+ɚGH{޹B$Z.y%ܠH锅 G50qA6\^igtxDt+N#i.-Ṕ8 U:2ވ*Bء`o/~AM_Ս }R=?y6 QRcBIq(z-BƻJxA_*qJl4v80?^UZ5F)~c'P5ç}MA)*~Ѽkh)-\beM*3`⥨>1ث%[3,5hIE/'co}!PCcze1 NOn:x7(MHZ42> u8ֳRKn,Ȟ(cnl& n{Za!d:)S'- ݪݩxÇ$=ֿJpF^I}Y ӈD>0s6>GO= #]7S7rM[gMn3q;vaj1B͏SvZTRq+px$0 "sY4LWWjTa=}UVrF*?$o 5 yFvà.?6 )+G1}#YumdA>|c#p>|z`D~*t?D<ǰZ,"G$U`Jï7Yll`ߑzO[o^ r9Wpg9}0Qm]Wu ƽڨjզu@bD:93xU t1F(@Msv/%DDӀ֖#qspI57?mאV/^8E s~xkyE@D5"!Gh祑=) F~EL ӻѩÊ_bG:gNa`‰ HXYB֐{Wf^\bi]= w(o%V ӌ՘LS8-4Dy%K7,˨Hk#{eϧAw,MiVL1/kIP1i3*M"m[9XՉG[op^$ e9@[|x:2?žn:QGmT;,'O5qio~1(Iܜ"Um8~MH<'WoqYMXvdQqbDa NN2Oʭe0!kc5y-|֫=14dAiyԝL `ߗq;業5\q%vnUY^3ؔXkY*iѠ|A Q*oဏK<̱g1jr|\whTf WZQ ^Bud!mu.,pq)H-;EhߨyDX=݌?n d2?<%wpQ(1 SFQN>@+vpMI`y*hdH&}G3F/Yr%K|do_tCj?0Nﺏ*Mݡ[ 8Zo}UgZ# ovH]Id,_m']?hF> { *'Q.v &ߞAF{cdv cFgv~UVE/>)^56m{1z`v캊hJQ@)0~[fh,&t {,TҊ 'PS!pkgKJl67#4^>-F[" >nY#!"A"V?d~g@[)@cbR2nRY8UgH~RRDƝ)xiw;GND4E"m2mrUҺ_S3gk]G(;-GAMiJ8soSlVGޠє%%[/g洷u<.MxbJԁdˎų!z)gR;9ݬ{G-7&q\ X"a u`)R7!}UXu<ʰ~5 -̌;eUA¬S4'  :,IorJ&<& :|nwtoǔ(dn[jhz5qP{weŪCKG^CE%*!6 W[u:v҄2m') N]U}DȃMGfO`¶Aϰ=(/nwBvDԠ|(Qk\JٓMe9V8 d5Nl W/4pFKmW\R͏G7x)Gf茼VotԲ"X [edi\ }Qs\cr}Z-rUQu7<In?BL95lU*P4~AF ]҇ڣSF֊W Iٰ>t :j`qi}Y1:blN V[ r(.I00wGjv rop*O.rilv1<$F3 DzHhm#a_0)qOM")`/24pz޻Z/k,,L}^/RWܞɃ*Z\oh(<Sqך(r]-f. ~dYP qW"ȣTL$s-z׫#+b\vdJZ5\!=1K,MjGwl)·8l#}O裊#(a l֓di/p}T0ܚ <&p;e┧Am g =r;tx*DΆ~,"\ݎc]>'sxb4׬qx@cVu[ĒUd .4b~Wh{y^ԹmHani{̶A`ϔKn7h?v^)aB32fSw%oyF0GK55SuF9f;|6;_ Sj\7zr+hrcS 466+, S+3wUlKE刈 l##{xcWKYn!,Kos+8A -t*zIJD 7`>58t8 03K͏x$` cBT v@d]N*"qe<=K}!aerHs~Ca"㡵yml1Ъ}_ ~as%D]!l;ylo.'O54 VZйY8_rT]ک+.6'r?Z:f)]- f<[=c)x A/iUByH.# Ҟ! )ͽL2NWmELy0.Ȉ҅#UѶo&%Q9 ݋ ?3 >Bݎ1Կ*9"ڴcӁPTЈ4ZFp>Uvpv ;[FJ'-KvmlKmQGd &Q{\z[>+ߟ(̭k~b;OEˉ=Pq8KeNKq(&~5LA^M{S oqw΀sjY@2@!KFձ㛸-y߫!WP Riv @|9^ИuTϏYB lXTYDzJ\/"e o=9xaݠ[X#P7g ophFW?1p~.*cK @j$kT5~+ +z# J96-]op89 `g,lsa =#!8\RaLFE($ǎc9){iycQozPQ x/o|Gs(b"OYTm*qN/(r+d ظr@:_ D=Ƌ Xɱho O O5%Klw9`|j?}e0sʾI*SLF]꓁˘&Ap;ޘ^u쾊)G`f-u- UmBBs $F1-!bXASwUQBzq>VYu3No)rt/K1hz99-(>>bk-Ȭ ; $~!xeX;Yao>1SXH`H !/ɛkau~ !E).H:Ee\G9T Oͮb44/(/|ѡ7-CIZAUy}Ft4ikIR]V*\ O *hS!wGU&J =OS]K;M\ϩ0zb Ld!y9,,~]"W:J"jՇL79(N$ᛘ-sCGKvK{BeSsH t~C^ɠf @G[XQ5%q(ͧWЊ;0k^ЩWܫX_4B/w`w^ĵ]ō~6ZߵXuъcpmnƥI.'Lh*ˢQ [<#9WGn@~X/w5Ɗ[)Nk–:$J?ї앖(RT:4G/u1ЌS-OhKH3EF[(Gssݮ$e;Ofz݆*>X q2u+bY?Lr=#` [%'չS;0U51, A}tE{# 6NXLmS8虼u>6½%{Ksم=v0!OnFs!\I #oۣ#BCOWfjC t?zvNΒ ؄F >(c|0:?)!BP@ bLSzlo>R-Qv,ZӀ_Ramt*[7o73H 0Z^lMٰt}Jq |"!@v!=RCt-,TԔ'JNB%k]scrG{#ƶ!X'Z~F#I9)).Yʒ*Ri:yS(or2nł2h}=e'szOc~!E导P86N֓슏ՖsBfXˀI iǢldPm0^MVDpd&{AgsCV)($(uP6ChoNxYW($sPV0jg4 nKș3q/wOS 8D0|Qۇ<=>0;d))hːp x_~;Z tv֍&A~2hά[rkԝJ8KT*2+kS|?ÛƍȎ)r]kG ؑ(5j# ݧLO*dy~UЭ{[/>Nʹ,`zh]+l\}2-ss}B1^J# Zߎ4t_j#U~@=ujh[Zry0Е4DVag(d5*Nyc/'p'dBǙS5'HC"Җ4;-Ȕ D^pHv m`ݩ_ D"?%aj*M0;)8ޘ&:$uLV;&(řB+5h[$N2V!YGHIh G,,&k{\xM/ GoI*ӝ G , ŀ}wؔT3#L a ,:Q NF.4gr@>/hnz&{&sa<}qLKxÞev#4P@X?"TǮ/\;\|ݜtXCWem 蜩b'09jr| A@!B+&Fy^A8˪I hiv]JM^3XRˋK?m~1iNqS#T݆ݏwp#n>+kԳ6DI'Ü:ü# ]L~1}A(ꇽq` p>R0Vl훲M˨h{bS{u&~^Y1^6M"둔MEӕ3b':$~;y* )#HsT_cXcv^~Lc ٤/CrI c&B(27 OĜ랧m`\p͹HN 0\6KuGM7`>JD2O:UB+GVFj./]hETyՃ< ǏC ̤h{PqG 5KS; ֕h m눭ҁs[HN*nn8E ݯ.I3SU^ G5 X*V€6(-ц81g)VV6+DA=t|u19ƎO!1Q cٝᱵ4y'JTos%dk巖KG!Ld2# )-nƸ7GʐFIWlczGa ZN.&nK1VZlZE(`}z\:M fS2 ds!Eڅ> @yx&M2CYQӓDh+Oʾ'ɏi[eoëp3jjRw[ƲM>nf/0Dz{+Ws7%6ypy'Z9+$a&>L"ݲFwB4 _'7XfnQ6t'-3'$Kk%!ݗGt}{!wmmebIvjܥO;.|B[Dv%_j b@1}=, V?O Oh+W>;IR zEd#OZϑ1.b@<Ώ}!7^a]UF@ЂO&yx~2r+rZC[IT 8 UG=ͬpxW:OiD0"vMsK9:(QT*DH/Y|t1 Y~LOF +E#=޴0_/lPuORY/KaYΐfF.(p,wS FٔE(jݤ䘈3rUsrm6b$, |P-ubvfnwf>o"JjIx8MIz}-1ߕuX&qP zS5% gso uǫ 8*v$)} < /Ze |*֡D.VqĪ^7ad" gMMՅ+ oYU7RUwhg͵?rcT^3è]8hv蘏nЌ8FT4`&Ka2/R)̟+8jD=ZYfJҧT?p$S>.aE宫XsS)H N0a{[?o zBRbb8 e2E5#.n-=ԯz-́Ḟf ziV9Bd[ (a բz2,}Jk!j|WڊV6rO3W(Bl4d%1鷟gQl AJ{&I2|J?%.E`jty?-@~۽1(12pp8"_(QVۋ5!~P*nIRAy:7~Du/[F,xdM||A"v3|FȪLΒJEcJB4Ru `4+ ΐ[ @ -] fs5_x+?&Ez;v+?c-ZfUd…1J ;Vb]ۺ/2|^HBgxNIG?dQt3);U;[EϏ TTٜaE9v[u@z$ܫv{/7hFb@-rnRO<}~J '\ CA59v}6]JL|Yo+|[/JV fa`1!UVY&tvgf V}:=P)d4IQ+q -Cj[gKޘ[U :rm-8GC7H `d)5դ~Y}[ %0d ƖY_~q ;2{at+ZǦX:8mqcǿFH``t~3#=J5Ezu}ЍЊ"eji&J\N $7nB==uT =u6F  4QBw p7*c | G薬hٕko9%ʄ][a̴׫W=K1d0|[Y}jͲ`}r?=)[;k^o3`QI}+Q"H$ .9EX9E4<=޷E,ҼUΝi#v3Lcbo-; 5LsӋK?5yߚ[!=EAJSL%:AK սtׇ@o8[-';KD-{)dv{''"UuTUO]mP*407V| acfhµ4ukcO b?V{%h"J z99`S˩R)|\KR|ЎxS9 hbrt~̈́&HعQX4i9uiF#uw%+2 <˙iml޸Ev폚:3Q }N6eT)#^4d9lQI̥噅 >Az)ދ00Y9xa7D2ΙЇ G`ؾg.lLNgόT4+eFOr28s%פKR[+>:mOAE!['IډI}%Ch1I&3bF&'&CE5i\9WA,fwGXݵ ~,/ Rڔ^JݣAI>EFdr~dB<9E>i/"-"mF̯vCA!KFHJA{3n3w~BROXKu_aKӿ=S6΄!ɽ'Dd5G~*>OYb|`R'߻94w _')7-je|!aԶ3“p.{eq~")VJ&z7N8/^M)҈s*k؟\KHj܍ӓ[r=zC[A0N$Qzb<*t2_l|s%$}qV*@!DPa\*%퀴 TD^ CD񰝂F_IRLf+dQ\IL&)s]G@%GTXvs>׸a3® v@-MZ63V|CWqxJIH˩F0XA"-1NJۼ  YZ