From 64f3202c9481ddb336dd2ae106919ac24376d72b Mon Sep 17 00:00:00 2001 From: AKONEKO <50349884+akoneko@users.noreply.github.com> Date: Fri, 14 Aug 2020 01:34:59 +0700 Subject: [PATCH 01/14] Fix GD "Unable to init from given binary data" Fix: Intervention\Image\Exception\NotReadableException: Unable to init from given binary data. in /var/www/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:115 --- php-worker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index f3c8166d..211dcb40 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -62,7 +62,8 @@ fi #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ - apk add --update --no-cache libpng-dev; \ + apk add --update --no-cache freetype-dev libjpeg-turbo-dev jpeg-dev libpng-dev; \ + docker-php-ext-configure gd --with-freetype-dir=/usr/lib/ --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/ && \ docker-php-ext-install gd \ ;fi From f640027bcb6baa5d8c308ccf209b625cc6c5163d Mon Sep 17 00:00:00 2001 From: Colin Pitcher Date: Fri, 11 Sep 2020 15:12:51 -0400 Subject: [PATCH 02/14] Add aliases to ZSH in workspace Updated Workspace Dockerfile to add aliases to .zshrc if SHELL_OH_MY_ZSH is set to "true". --- workspace/Dockerfile | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index f5a88468..ad86f111 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1413,6 +1413,36 @@ bindkey "^?" backward-delete-char\n' >> /home/laradock/.zshrc \ USER root +########################################################################### +# ZSH User Aliases +########################################################################### + +USER root + +COPY ./aliases.sh /root/aliases.sh +COPY ./aliases.sh /home/laradock/aliases.sh + +RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ + sed -i 's/\r//' /root/aliases.sh && \ + sed -i 's/\r//' /home/laradock/aliases.sh && \ + chown laradock:laradock /home/laradock/aliases.sh && \ + echo "" >> ~/.zshrc && \ + echo "# Load Custom Aliases" >> ~/.zshrc && \ + echo "source ~/aliases.sh" >> ~/.zshrc && \ + echo "" >> ~/.zshrc \ +;fi + +USER laradock + +RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ + echo "" >> ~/.zshrc && \ + echo "# Load Custom Aliases" >> ~/.zshrc && \ + echo "source ~/aliases.sh" >> ~/.zshrc && \ + echo "" >> ~/.zshrc \ +;fi + +USER root + # #-------------------------------------------------------------------------- # Final Touch From fbeabd03b047b62d9e0565c0a0c3ba78e0f06e52 Mon Sep 17 00:00:00 2001 From: abler98 Date: Wed, 16 Sep 2020 11:10:24 +0300 Subject: [PATCH 03/14] Fix protoc bin & include permissions in workspace --- workspace/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index c0279b0d..922d3d9a 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1404,7 +1404,9 @@ RUN if [ ${INSTALL_PROTOC} = true ]; then \ curl -L -o /tmp/protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v${REAL_PROTOC_VERSION}/${PROTOC_ZIP} && \ unzip -q -o /tmp/protoc.zip -d /usr/local bin/protoc && \ unzip -q -o /tmp/protoc.zip -d /usr/local 'include/*' && \ - rm -f /tmp/protoc.zip \ + rm -f /tmp/protoc.zip && \ + chmod +x /usr/local/bin/protoc && \ + chmod -R +r /usr/local/include/google \ ;fi ########################################################################### From 33ceb11e8e3bda63d42e4a0895aaf01fd2475495 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Wed, 23 Sep 2020 13:16:39 +0800 Subject: [PATCH 04/14] fix variable is not set WARNING PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL. #2698 --- env-example | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/env-example b/env-example index 2796e476..95fbba58 100644 --- a/env-example +++ b/env-example @@ -61,6 +61,10 @@ DOCKER_HOST_IP=10.0.75.1 # Choose a Remote Interpreter entry matching name. Default is `laradock` PHP_IDE_CONFIG=serverName=laradock +### PHP DOWNGRADEOPENSSL TLS AND SECLEVEL ################# + +PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL=false + ### Windows Path ########################################## # A fix for Windows users, to ensure the application path works From 561eba6204449f6c74aad9e98c37bc4f2e80713c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=85=8B?= Date: Fri, 25 Sep 2020 20:33:31 +0800 Subject: [PATCH 05/14] feat: Add support for Adminer designs --- docker-compose.yml | 2 ++ env-example | 1 + 2 files changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index d0b0dcca..5beb5c0f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -813,6 +813,8 @@ services: context: ./adminer args: - INSTALL_MSSQL=${ADM_INSTALL_MSSQL} + environment: + - ADMINER_DESIGN=${ADM_DESIGN} ports: - "${ADM_PORT}:8080" depends_on: diff --git a/env-example b/env-example index 95fbba58..50059fb9 100644 --- a/env-example +++ b/env-example @@ -428,6 +428,7 @@ MINIO_PORT=9000 ADM_PORT=8081 ADM_INSTALL_MSSQL=false +ADM_DESIGN=pepa-linha ### PHP MY ADMIN ########################################## From 80c4e620ac6c4430d6d09bb7bac1410e2f52bab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=85=8B?= Date: Sat, 26 Sep 2020 02:17:15 +0800 Subject: [PATCH 06/14] feat: Add support for loading plugins and specifying the default host --- DOCUMENTATION/content/documentation/index.md | 8 ++++++++ docker-compose.yml | 2 ++ env-example | 2 ++ 3 files changed, 12 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index c51a05d1..c3e2638e 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1077,6 +1077,14 @@ docker-compose up -d adminer 2 - Open your browser and visit the localhost on port **8081**: `http://localhost:8081` +#### Additional Notes + +- You can load plugins in the `ADM_PLUGINS` variable in the `.env` file. If a plugin requires parameters to work correctly you will need to add a custom file to the container. [Find more info in section 'Loading plugins'](https://hub.docker.com/_/adminer). + +- You can choose a design in the `ADM_DESIGN` variable in the `.env` file. [Find more info in section 'Choosing a design'](https://hub.docker.com/_/adminer). + +- You can specify the default host with the `ADM_DEFAULT_SERVER` variable in the `.env` file. This is useful if you are connecting to an external server or a docker container named something other than the default `mysql`. + **Note:** We've locked Adminer to version 4.3.0 as at the time of writing [it contained a major bug](https://sourceforge.net/p/adminer/bugs-and-features/548/) preventing PostgreSQL users from logging in. If that bug is fixed (or if you're not using PostgreSQL) feel free to set Adminer to the latest version within [the Dockerfile](https://github.com/laradock/laradock/blob/master/adminer/Dockerfile#L1): `FROM adminer:latest` diff --git a/docker-compose.yml b/docker-compose.yml index 5beb5c0f..cb056aca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -814,7 +814,9 @@ services: args: - INSTALL_MSSQL=${ADM_INSTALL_MSSQL} environment: + - ADMINER_PLUGINS=${ADM_PLUGINS} - ADMINER_DESIGN=${ADM_DESIGN} + - ADMINER_DEFAULT_SERVER=${ADM_DEFAULT_SERVER} ports: - "${ADM_PORT}:8080" depends_on: diff --git a/env-example b/env-example index 50059fb9..477b63ad 100644 --- a/env-example +++ b/env-example @@ -428,7 +428,9 @@ MINIO_PORT=9000 ADM_PORT=8081 ADM_INSTALL_MSSQL=false +ADM_PLUGINS= ADM_DESIGN=pepa-linha +ADM_DEFAULT_SERVER=mysql ### PHP MY ADMIN ########################################## From 363e973f5cda99267215bf4ecc0fe1b3b3116060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=85=8B?= Date: Sat, 26 Sep 2020 02:22:21 +0800 Subject: [PATCH 07/14] docs: Remove the outdated note and clean up trailing spaces --- DOCUMENTATION/content/documentation/index.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index c3e2638e..cecfa396 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -874,14 +874,14 @@ run from any cli:
`curl -X PURGE https://yourwebsite.com/`. 2. How to reload varnish?
`docker container exec proxy varnishreload` 3. Which varnish commands are allowed? - - varnishadm - - varnishd - - varnishhist - - varnishlog - - varnishncsa - - varnishreload - - varnishstat - - varnishtest + - varnishadm + - varnishd + - varnishhist + - varnishlog + - varnishncsa + - varnishreload + - varnishstat + - varnishtest - varnishtop 4. How to reload Nginx?
`docker exec Nginx nginx -t`
@@ -1085,7 +1085,6 @@ docker-compose up -d adminer - You can specify the default host with the `ADM_DEFAULT_SERVER` variable in the `.env` file. This is useful if you are connecting to an external server or a docker container named something other than the default `mysql`. -**Note:** We've locked Adminer to version 4.3.0 as at the time of writing [it contained a major bug](https://sourceforge.net/p/adminer/bugs-and-features/548/) preventing PostgreSQL users from logging in. If that bug is fixed (or if you're not using PostgreSQL) feel free to set Adminer to the latest version within [the Dockerfile](https://github.com/laradock/laradock/blob/master/adminer/Dockerfile#L1): `FROM adminer:latest` @@ -1220,7 +1219,7 @@ docker-compose up -d elasticsearch ```bash docker-compose exec elasticsearch /usr/share/elasticsearch/bin/plugin install {plugin-name} ``` -For ElasticSearch 5.0 and above, the previous "plugin" command has been renamed to "elasticsearch-plguin". +For ElasticSearch 5.0 and above, the previous "plugin" command has been renamed to "elasticsearch-plguin". Use the following instead: ```bash From 4e5657f5d2d3e1b080fe61537427e5feffd0bb5d Mon Sep 17 00:00:00 2001 From: Gautier Date: Sun, 27 Sep 2020 17:05:15 +0200 Subject: [PATCH 08/14] :arrow_up: updated elk default version --- elasticsearch/Dockerfile | 2 +- env-example | 2 +- kibana/Dockerfile | 2 +- logstash/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/elasticsearch/Dockerfile b/elasticsearch/Dockerfile index 7d77e070..2ed98015 100644 --- a/elasticsearch/Dockerfile +++ b/elasticsearch/Dockerfile @@ -1,4 +1,4 @@ -ARG ELK_VERSION=7.5.1 +ARG ELK_VERSION FROM docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION} EXPOSE 9200 9300 diff --git a/env-example b/env-example index 95fbba58..2c17a89a 100644 --- a/env-example +++ b/env-example @@ -920,4 +920,4 @@ GEARMAN_MYSQL_DB=Gearmand GEARMAN_MYSQL_TABLE=gearman_queue ### ELK Stack ################################################## -ELK_VERSION=7.5.1 +ELK_VERSION=7.9.1 diff --git a/kibana/Dockerfile b/kibana/Dockerfile index 46ef6539..adce23cb 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -1,4 +1,4 @@ -ARG ELK_VERSION=7.5.1 +ARG ELK_VERSION FROM docker.elastic.co/kibana/kibana:${ELK_VERSION} EXPOSE 5601 diff --git a/logstash/Dockerfile b/logstash/Dockerfile index 1a1a753c..cc862b21 100644 --- a/logstash/Dockerfile +++ b/logstash/Dockerfile @@ -1,4 +1,4 @@ -ARG ELK_VERSION=7.5.1 +ARG ELK_VERSION FROM docker.elastic.co/logstash/logstash:${ELK_VERSION} USER root From 2467717f178c705bba56cbb6a5ded0d0585704f4 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Mon, 28 Sep 2020 09:36:54 +0800 Subject: [PATCH 09/14] Fix GD "Unable to init from given binary data" --- laravel-horizon/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index d89cb705..7e3cfa30 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -56,7 +56,8 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ - apk add --update --no-cache libpng-dev; \ + apk add --update --no-cache freetype-dev libjpeg-turbo-dev jpeg-dev libpng-dev; \ + docker-php-ext-configure gd --with-freetype-dir=/usr/lib/ --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/ && \ docker-php-ext-install gd \ ;fi From 119a2a36ed3712517963e087273a49f596dca01d Mon Sep 17 00:00:00 2001 From: Lakhveer Bawa <44654385+bawa93@users.noreply.github.com> Date: Tue, 29 Sep 2020 11:06:48 +0530 Subject: [PATCH 10/14] Update certbot run-certbot.sh to allow it work with multiple domains Previously, running docker-compose up -d certbot would overwrite the previous certificate stored in /var/certs Now: the certificates will be stored with the filename containing domain name --- certbot/run-certbot.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/certbot/run-certbot.sh b/certbot/run-certbot.sh index 26be75c7..c66ba2c5 100644 --- a/certbot/run-certbot.sh +++ b/certbot/run-certbot.sh @@ -2,5 +2,6 @@ letsencrypt certonly --webroot -w /var/www/letsencrypt -d "$CN" --agree-tos --email "$EMAIL" --non-interactive --text -cp /etc/letsencrypt/archive/"$CN"/cert1.pem /var/certs/cert1.pem -cp /etc/letsencrypt/archive/"$CN"/privkey1.pem /var/certs/privkey1.pem +cp /etc/letsencrypt/archive/"$CN"/cert1.pem /var/certs/"$CN"-cert1.pem +cp /etc/letsencrypt/archive/"$CN"/privkey1.pem /var/certs/"$CN"-privkey1.pem + From 1fb81c80f7c275f1a2b3a4ea35ad844b885d8a63 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Tue, 29 Sep 2020 16:41:34 +0200 Subject: [PATCH 11/14] Update open collective links to differentiate between sponsors types --- .../custom-sponsors/apiato.png | Bin 0 -> 20730 bytes DOCUMENTATION/content/introduction/index.md | 380 +++++++++--------- README.md | 361 ++++++++--------- 3 files changed, 375 insertions(+), 366 deletions(-) create mode 100644 .github/home-page-images/custom-sponsors/apiato.png diff --git a/.github/home-page-images/custom-sponsors/apiato.png b/.github/home-page-images/custom-sponsors/apiato.png new file mode 100644 index 0000000000000000000000000000000000000000..bdef27eaa269f49e048e8dff9db2ef15964b3e6d GIT binary patch literal 20730 zcmd?Pbyu6u*DoA`dyrxU8l;7m;_d;0yA+oq!QI{6ic4|#Qrz8(QyhxBYjHSye{w(P zk9(ar@LX#pnc3NU&u7bAqhShi;+SY8XaE2JQ&Iw|1OULr{PRJ9f2B0&_dmb>5Ic&h zJ1W~4JG$uG!vI1?HU==Tq?Nu2ObMoMT^$jgxj$i|riJ3J&yehDQIqHL5tt_n_cwG4@|D~7bwfqm6krMnb7Do$y%724WmsJ3Z*x19s z>$jr^n&B(;U$ihPZ%0choX6>l&N^k8z^*!@|nS#KFbNLa)za%tg<}&168&WoXPy&t<^E%x%cRW^AO- z^j|&yn>;J0m=GH`3$rj62b7svl=D@Us1OGWGb;-RD+fC>^uMx_)((#P)`qbEwr%#> z_J3rV{-3fuBK9zSM;m(;8yn02W`TmKjiZf&sf{gIMC6~SbAoAQ^$pFe{~><-Cs6;k z8w#^GbA}m-+1prw|K({Ov;PGJCkG1)GZPyNy%851H$58{iy=K1%;2?Z#07h`#z5bY ziHq_-@<#uc2mhU^uas9yZ2t?0hl`b)$(V(enVyNs5Ju0;%=zk17z;PO0Vj-&g~JGD z0D~D(GQL7&{3m(-uVnf!=`}`;Tck{;Fx+Y8^UA%wIY`gf(b?3!6P2@M}g%^zJ_HVw?cE@$U$k{dSu%4_R+1W@3@RX2UM*+C~ZMNsdatl z>hkXC?Bf3S;z{?=!NcP-uUxaRdixjK!OQChn9K0!?D50%iN>U;S1u&Kc6&rkaLKi>OEv%5zUEVG{j+|NSh509X`5U+Psp7c zoH~JOcFe3@p5Hw3Dz%cKzD5_8DE=`8&UH)jfLTn=mW(wVP9> znM1KnOrt}^dN4R;PDry8qSTsKxhkyE=KpP4&Ad;=tgCbQkXycmPpt#yHXy3eA*9;2 zx_{#uG9j$f_4nrC&*l}KXd^_ey?*e3Prij;rCCh7ExKsM$a_rIs7unY*UEQ@U%f*> zv6VxhDRu5;*UVBE~=*2U%D2Sv*PZrK*^nCZu- z=ZovR(cdRZCSB!iJCX)H-!f;1CXPD>cc7YWYL;C$4^ONz%`Z<+ZDYqwVvS~=gL5mV zTyjlMPtU>{E!;BAN_GQ+sx4!4XPnZ_B5Lj5ix@nkc#W#Q3k3up2^BBd@jl-N)+NxY(QW*ZNI4&BmrmI0FhMkjr7vjszmqt zI`R~$9P=xoqaWh@2a`HpN3#}(lh#fx^|K8YM=)*oy%tvPMt{==9gpLOQ>Du+lMke+ zGQud_NZWTuCj&t-BO{z0yDl%}u_a3tB_jvuN0nV8Wm7GG{)9FE?i(YKth{g<30GJ| z#vN`wSQOclPr3rw9iw4k$+-sUR&_SL&wcqDR?^kAdJWjWci+khIT`=;t9wcCE177? z{(IFyb{1lxuQQ*V^-~cj;?1@Un4gx|!mG1|J0vZaMX(EQ0CvtgD4F*N;-4Iqf-rhe zhE(||Da*DBMCKe+qsZb;4_C7^0v^2rg3EQ@Brc!sorH#l-bRKIZauh-iBXR5A@rIVpke6&R3xuM^W|+FuM*${w=0i% zD^~a0!afNzs45=^Z9j*I{RQkN7=!kWgt3?I%;1&v-}CcK3;;6pXr}Vib}GL+S6~dQ)DEG= zC0vn%oy$uCoq0rLzJ`a!73VjKzYF=HnYSx@gDDurX~<%hCg)~w;KC1at?PfHug5PS zFr44t9(Xb)V}__zCiphEsLFm;KE`X1K(q3SI)XEJ|CU};q$uZoUe@W_M}Y}1y04}$ zb?9fpGRvikfs{0qLPJOesw$j%hliXDM9n_@XKQ1fanM{*1q4bOU1a+lS&rUXW~V`y zPSd@n>#eJ*+U#0$d`-C%J8-Qm%!sq}L(_p{_G+WV-hSQIB*nT`l`8jn{hw`F@T#mA zWxXf|^}>*(a(41;EVt0*A!=%B*r4ETcN+>dKSR;UIwz`svG**- z#$Q2`2$!cC`PF-=M0pYIxMviHC?u!#<)c8Ca-K;P>6VA_dbdrc&-0yH>BNEb%VAm& z`nWdvRkzxtT7Va&WYMZmk6n6bxg~i{4 zlK;MBcw8-P)+eF3n++`?_ltv4tyM(sR0={RlJa|RMy4zD=HnFie^6^PUR3 z`XA5nK{bvNsCLs*10n~~xq4izRts2fj8pxOuX3l&-F8BF#bmUI2#*`d^qCManm@#* zI)#n@L3oW_#0;5MQHA4`AAT0UyJEqU}`j zZ?$;<2VKh5ixEaUr$tA}j;G#(MK zVqsroYWtaqILY~9qy>u`Do8GGcvCT7@P{aL;W9h4wvH^MygiN0d?R`m8XH1T(C>`z zb(uhA&jOh)KlfGJkOS|R?@}c9j_;p2zx(WiZ6k~0mJ}9g>VA4bjXb3uuv1e?J>1{{ z)VHEzX7+Iv|7CcvR?7UTiqkYDHMERSHqEf(dbBtO``VuD?B6)!%CQ-TI02xR3h0 z&g?g@R1(=oL0P8ltKlMN8nE#(MH-IL3sN5Pn=kGXK9oFv1bOo`(Xe6{fAb= zU1Q@Y%|J!Sd;}$dSJkxj1U+@y*E}s@q&V_HBDztFhxsl$W1Jj7x1Pa9T@d!72#X1& z1>gaV5XDdjF4rg~L*ehXdLoJAH&J~vCZI9j?osj6N(S=#Xp=!3H;&ZQO7V)AWPZ}U4W zu|%WjCQGfv=^!K4rCIxTLU8)6*dJBdf6qGkyzqQL{^Rs9G`FvweaIIl5S<@48K7_2 zf+iVL0cETkN`QWD%Y}c| z-H*sfZyrU=li7k5=FwoqR2FK*Ur?VmKwvDk+h3{YxHwq^#FG`#k|chZ;S!o=-eFuM z7bZ38P>9jBf%i4D7}Ci}0dc$$)&1M)$ok-U4RWM7f!O-2Ef3ec<4Rps=>!*Ukge?i z@!K4gRpVN21UCYd3&DhonO43+0Y<`r79YjZ_SOPYq?B)xeizP7G=5CaA$$*H?Pn)5 zb5$Q~89#rzd{pDOLWvK*ye0)vziVvuRm=KD*WKAxZFG8mbH^6=p69qGB0Uisv7?RG z9-4cR2?u10&|OQ8rTAn5gKnjJ0z^r&1dC4v#o$j0-gnGoaa!Uxscz>-hNj13GqY!$ z^86BvTUF-sRmy1`S@L{$N7LQZsJiP1zEe=UziirV=bc{D)iSsy)}_RTGDG8*v5Y=e zGg9k&`je>8BHgUuN{ba-2KhV$Qti4LG^hDx-^aOs4qil6%hbk??OBq#`)i)B$g5HL{-D+qP##J%?WT`!sJfh1 zCdm=iknINHFZI^UJP`m_U5O+!u9aBJyYUbbuiVgr0J!k*w^yM)BvYmGEtnGAa=c(x zq%#B=qPsInP&T}jug4(}P)zR`Z!>p+D)L)+_I)FA=&TyD@0DTZJ@lA3DP+#qR}=DQ zDriGD9s~#_ZQs}0=cbKGNL(WTOUHCYAfDg86AIh0Ola^81ZwMiY=aYSLk^ts>>-TC zMkxy0D_w>QJfA=>b0v)#4x>lTbw!up*A07vt6Ot1-}=KCKP%*RP*Sr>{I;1~g6Eg7 z>CQ{^fFPsg=&UD5 zyBj8dUT4`41SQc9Lw5Pz{Bf3u3*1v8b;x&KKpavEj+0Cn-P<-41XE|4v%$eu%i0JG zXEIPlWo*&_?xFFtuk5Ea7+6Y&RwCn!wEXwM`q@;!!ec$BA1(W^@%f+x?)R}{_3QLO zMQrK{H&8=ha{B!TxK>OAU-wp5nn3m*^FjG<#v~$bO|Tq353qc`jby?vMH}c=F|u%Z zo%I$;AHDolIJS~j6^w!UuvU|PIrWA<+Jg`!@$M8qGmKIqifb#13mA9~`Jhfn@&1cF zUZC!pT^>PYyWFrfX31RlM;J1CD+Yo>7+)6#7pWUn^cFT5z~4U5Ad{rL$h*qC;yPF! z#c_UJ6`l3d+>#c-akS^M50PF)lHpxXwBLv@cZ{&bLCs1H1Jil9&Ch;$*!DqPK7;`3!-_bs zPFW{{t80fLaSDpp)`y^3%XXlsjits$TSq-zIVK&4`#TBx*d9C+8FT0SPwiA-nM4nL zZZ$vCcvm{_*7bt2jq8deA9zn!!=M{KfYgr7aTIA-GPlAT#)J88V6_pQ$VnG->l?w9 zGxRFupVx;|kj$v@Hvmv}ryGfhcRnY50ZWNA1a~5Bd=GY$pg2Z$-}-s)@y z6&#*o!R*&vKPKkSvW;J4&UdAxh#3A> zD^hO0VUGgF0AGz(+=Ue?{;oHf={j#Q;3FH~@FALaJ9HF<#3J~HHe?|9R|g{RI*c1q z45NZU;HbLqagz#qCfPxOsWWnvX6MQu{Xo6|4UnFUv{gs5icyDLY#hc;GdRAVHV_C6 z+l>;%&t74Q47~r&v!f|U7mE%b`kltdlq=J$BWV&VhMLrO#MOG%`M`~relK%}LWecM z3agT$BVC$A9cG~Zm)qLk0}A3M2_*&L24WnWQh}s%W`Ud zzDL0*f-^2;8B7e#HDc@{qb#d4u4MCzdPNv|dXRi&IKatUlr^=ls3$tQU3^5}&^ zxr(9BZqZ?#@$Mp7ztOY_KOum#C+3>vq^WC^0}Rjymv8`s4|Yydjo0=$fD*)Ch3q14 zgP8?TQscC(M);SrVQ=`f-xyB+0U?0SDGymC2nZ+K`Rn5$Kt+pPeQON5qJWQ>?ql%A$`PTK<{;U} zvJ5*RJ_ZWJ5^mxnEJ(N2Ljf0)b=Db?Y+#@!eR`^w0$7W{iX@|Iit^iu>iiTXr4|Xa zIgt(wFCUJG0Ch7Q1vvC(1S&E&h=_>ToV){A5V58_OV%mULhudCukSU}G@(Y)0ifS3 zTsGA)03cAf?CN}Er+ls_wT#Yo`pT_}Gfn8FwlIrBH$4~O&yn*h`NR z8Vp#PRWPh~AJ|EK$IqZ^Xzf28cXrSG8olsqRerS1>f5@|P_=+%C5PRQa*X+b@CehJ zj2&#m)vLrkopH%pKFXe*q|tLd>tRaScqkxn4VsxK*80sWGR1NuIlM>sVN#MeyCpw8 z+E{E%EIvJ{SeFgM8KHk@n1=VdpAsNNK@2s9zB|-hMH8SmK%|bF1vl^XEYnsZprC|S zuVruP&-+SA)CET#9{U#0VQ})&I5CwIb-c$1gD0h+7__-T4=$f6xahx%ro%h@AQ%cn z$gf(Px~`d+P(Z%!S=;s4u7EhY9yqBAo6ZQh7$Pzdfj89Ya8l#NEd1KZfRf<=mDiUx z1m)EcTy-x@n}O39B6fYwe$Lv}FvMxS;@{?&6EUQQ_!yu}+=M|_OaPU!6954=)%QN# zKevnuzZ;mV@8O8iQ+rm0`Ve_-Me!A8ConzB#)M|<{zHxnvPDyY^(R6^WTR=p2}k}z zhSrF55-(5WoH9>78wSh%<#!UUud>G#&ar>}r@h6qn*{Z*fT^~=v|nl}+#P6gqjv3D zAf72Q_xQttj}Eai>X1*=9dX6B^<9uzvhgpo4VubVg43g?X?`(houcaixPw2F%e|pl zx#YeyN5ItYqUeKmW2=}S9Q}a?tqGn-YlY~G1!_2d;FPOLjL@*PMsa5#{MK6LJ-x>Qf+_5otAA%-+~t6@y_^{fSB@mJL1{ zh)kcI&QyuG^eUw#|B=4Ttkss&!?(JwKxWXm^LFj)*IOVr6M-l7z^Uw@#|Ntv zeA&#&3IyUva`^X{1c|R589zUF$FSS>Giwn();T1<;%3 zZrw3xjekjIiY}oCu(sOnb$c)>K}5`dUNR6=1?;_Gt!DM(kxi0f`cglH*Mu-^bi+~V zvV~O^phecg8Lioqf%G;pk~%);As`|oAKyh*JWa+iWfq+Sd~2V2FzG+Mc=hqTMyVA1 zgRa{3R2Fa|zmCj;`-Dmp>13o#baX%uz8))A$KkgexM*HLT8SCSk6KiB@$XNB5 zKAGEJg;GT>$aDlQmnO8O4CuQJf9E^Fk;JydA|`V$?d$u`?7RlXY6Oh9%B=m=KWm-u z;auG0kr7DY7Ih-Pk%K2M;gq@rO-r!QHwpV}SspNy#O^FWDJ%i825c6rU~cJ2&SL7( zSKa;Ts0}{`R801yYO%Tcef15UbC9krOebh)sDUPNB*C6y^tT3-gd|bkYR|FAB2QG# z7dkfzdGde%LaBKHJymkKsc_jqRZLv=Rh0tIu8iSo%&Ql1>&Gw5KolTnBO>B^HvAVX zgEcMD3xDsvU&vLxiPWSgo$yp<;t5ne{GzRvuRZmT)S^1gXWjc-_o{4P+Qh!dN&R9A zQ{QjaZ6;M|m~feTF*%(2-GYe+qJLz4iH-k@4P~lUO=q)bGaA1l!x0 z6`PMSyh3_9ZYvqx$h9Ja2EPWcz%}(G_6>{$4sLSGl-ooaTWM0BAsT%P6@VY2lwR6@ zkrF5|%Fh#1?$>jg|7IRTdHt9F2&!JUetB3b&KFOue?r%|>FJ)sHp5E_mKFyn91nkV zWt>JumsqcpmvlJTx14^TH?^{3C-|j4WAHfn;#|&0Es}2I6-@VAw}q|=n;=SxS!dNwv&EMm)c_WD zbOkiQ;bgDh`((oz5XY#glywD*u|MsrpO4Qz>aTBVeJ~W$?Jz>{hogK5emmaGU{f)U zTeqlw5Nemsl_c|;iZdqUn5Ja?j(u<~B^L|a!ATeKJuZ%~?}6xTIRH_DH18qR68s%r z=|HtBaq8K3O$ms(h;&c(fw@1`6LkM-7=6E6pjTqZDnolC6`*;clM@E z%$?N>Q*{~v0YR;Zf7#h;*O82Oweje1Tys-Q{~;((1hP(hGJ!j3Lyx0JAVCUlIz>( z7JeO98>B}u$DNS4?o8`&8TZsnHm{Q}-m2qFb~ARYn7j_G3&L12$Wpz=@=&85bP9M@ zL<9s{o0DT$=A;6AL!uNqDUp0(p6y1#xg{`j<+#7u=DST%R{TA6k=cZ;j^SS@)R>W) zzWai7ykVB^b+Z{@iwUyu$7E>;rnIOM#+W-_g_T)kgyu*O6bhQsZO%Dh!efrL#Yc>rI%B+zn#dB z3|W*6{qXCns0=LxLO-Y2ZbL)v(6zu8fCYh9~3@fsz8SNq)oP;OFmz zDY~PLQna$w%NFKK4Gkmw#vbF&4;?6D;NIc_Wh+;ePD08uM?L!KW=8s`u1n!hvZm(+6O;f=0Ym2Zg(%R#lrP50|K?!^eP9*~l7u%#SdF z7FbUB=LP66&)o$X5Qs}c^4lPOE;h^S$)3h{Z*LSUZl_6Tvxhkc05`L}d`l_EJfp!D zqn3I>FU?4e3=fP0jb^4=F46NGb0Eojxp0YTXWgw1(Jpq+^7Jngpn>iV(`{8914(Gh zh`?Q@>YeJ*;S{gw&8XWaC&4})6Fc{Xljoc{r%}$Sv9N1-y4|e~N$tRv0)TV6lg@DD zkTAPg`ID!2QQl>Y-jNV={vFd2kgrdau2k5``=!)Erp?>mPIT}1M~(}*?n4Eb8cNnh zJm(06VZQVNBtroSb|u@2`(q`b8-RW@f9*~HpUaNl;@FH_#PH7d8(x0W=E82WpgB3d zj|a0Y%Z3olEhiy2L}RX z2-82^a(kq%p`t^R44L1kJ~V67LTt%0=USqT(A_1T8oAqe+IB|KXVc_`tX%D+5xuoQ z5EQxD2_`H=c_Og)kP+JCDuJ zqFbNMW4uFOaat{bYuf`D7j*MaA?zHBKbQ3t%=0%pl7AQ`Jxcp$t_!s#~eg88Nz^yHh4V!eJJNgWa zU{^e@9T$ubhQzi3n{C;*lFyQSq58#%@QQa+A^#d0dDW;!y>1)QJZ;VmD)7(4wgXtQjR_lcc)ZO(27HPWh z&vSMn5fZN(TcOMjU4{y$!Z;M`XS|$mg86%jdEpjemF)+9g2TZ@=k_55$@NImD(%FdEE?H~GD>cmtl%V>ox$u?&j~~JZfL`+< zqqMOGMT023vS4Pu{EUZi8>pxy8|3c3Du_TzhAIj9{fyDzE5JTUOrM3LG5B&^bG}D3 zoE%IJpv1F_?ta@miP3AnhjI7EW8)uUu15byzWqAUQDCfI1B%1lQPN+)IRMmWEmySu ztvH(mZj!Vi)K+g)>E<8u^^5)DjL8q)L11hJi@F$@2leahv6w8K+B)mbo;9ZG$58PN zV1Ih*jeRs;*h!JTA4vbFxNs|g+Abf)M3-HR7z)GrQyyCTPs>2ummbN`z+rW8%C>0- zGF34-I1_L|fh@sPIwB0=dJ01ao^&5USJ?K@-+Yl7laZoZ~{k34eq%w^YC>g4uvh8u6=Xoa~cN_TWX}h zQjC%O@3io>+HK2Tu^Id=tmO($+2)%na(@J2!?_LO4&uf}GA4Mm#w^GV7J^eV5rNQ3h#>!^#PZ?;5Q;qqhRu^0HdF`(9y?6VW`%vTsO zg=7(K{g2F$IQc7lZddZqt31K8^t&PaU)L6^+M@SIC$GT+tHKZL=CI-tfzdxpNqWuR z;Qw+1hI%5HB=t-fJ8b8=yV!c5hH1|#OC6wstHaWXjo;#q_RSs;6C9(^=qA591pq4h zy_h2QadJ)F+6TpPXDfyroS~cgg%1K0U3^WerHj3oh17r2r?*tUD1AR$m_PVBiAL(f z^%ar3(eQmRyiqwuV6|*kxKMCrq5L=abu8YJh`7`iTcMi1MudyqUUKjWvar|Duw+Oe zou;pC;a?u!_*!I%BH!r_h^G9BmvDkNCRwxjc^Y6&ehP1Q)yY#suK!VlIfqH?U&Tr|sWR1@Mept8CXNkifbWXqf<&_p zREEo_B|BK`4K}isB8Rs4ZC%XJuVhggM4yad*vqDhV1ou&4|oZ*N@L^|M3#7W7EUi* zBa$+%m~{dE5#Pw9ug7?tkLCsB;Y%X7Nzpk7qcFdQoX^3Z`#VNN4t@v<@mmIDf8<^8 zpnLum5fBI@`akCQ6vsx5prwX)gPFgC_dkDQ6vos1bq6y}?q7uF?} zjB)3XDPEz@j_>Yp&A{$XFi1ScwL$TavKeLu7SI4ld>+_rU)!hpCY(5c#V_WLH#os= zE)UG9w>Lh|f>f=jEy|f`!6r-3W=^E!Z8TgSTR(xBHWhwM20*59(&OT<;%1c>{S7N{ zPgd!Z-H1Xr9N(P+{k&ZqGZ9#fOPx${_`1l`2*sD$=EStbYE&{24I-O>ZOw-J>wCCS z$bPgOb{{&hi)drm6A>@o0rJ!Fp#FTHDK<=YyJqoyXKOyEd}EC{`_;FU3Ge@BoNRFk z1CsPjLwL_crgoay=WK1gH;SuMI$kUK)3n8PX1-9|NUXa;Wyob_o8((Ua^MApizx() zr*p+q^Qv*u?8-hwcMLweWbb1>(QM)qd@wBD zjAt02FIX<2ETva>O^BgB2ogQJ8XcXi5CACoTG#}+N8gFv)?}q&Doyaw_P2<%OVz5O zB~l{wdd!qoT_zmm`SyH*P%0o&eG%9TZ3!MFz;O+5NTeBq>tgJyS&-4pLLNz8&y3uF zciI4`i{u_Fq5J%yy&g#_@Q%Vekmb(*+6rO?Wm27ZCE=07Q}Vlnvsal$33y_@aqo$T zoK2C!Q;`p9$vZP-&$xkG-u*;iu|=v7F4gqQUzSIogi61^uo+Q?M5c-hzMs^uW3NRd z@sSMkhzY4CAT+7;{rnB7=d3l29FEd0e$xUI5kFMI6w$yPxhXhla<*$MGTZJXC*g!z zlHP-QclRybnbC_xaMw;P-Cey@(BfY-1`aefKr;2_H3r7d9zKSI92a8E67 zsLVJLQId&@yL&#t)Lm6JV@#SslJ+kfeY4}Rvsjq+qaHt~ZN@f0_| zX?`e4C;GfQvN``eW%#q-v)$RVbl2r`fs*E5ZX*U?4)2COiNuqY>f%}#Zir{usICMZ zXe$g~6ARJ6_;=%5i99)t@2e!PFP>$<8z2aTH%oH!WG`&)*YY0PY?@8anEwW4Gfbw2 zkNyTd@xc!O)@#eXzFPlju>7__2Yi`2WP~0UgsZD;ybBukdBl3f9k0l#5~q!ZYK{w0P`Yi!dr$)2g2}?d&Shc$ zF(h&ZZ+;}9-OsY|N4HQOXK3K_1RwT-`iQ$v$8;NnCE206AwJn`UR%NgOiM$ldsceg zsK?h{ z9*3$4QfRD^QHJHf%bl8|d4 zSi8)~oZvNF25>P!@2Wtt`)I!^AZPEshX@xIcR@(7cAvAa7Foy-IWs8?CWL!RwcqO= za)6tb#WFhPlq+;4c)`UyWoBhC3oVGr5-v|j9*#VJLhcLQ!zf=`Ig2}X=mqkT7ZS=8 zwMbS4f^|H|ZWei2l>^B1MnfAMK~*l7=RbbxKn2pV`c2l6G{|{(s9HzpMvHDg8V|YF zys&hQT%yh=K;Lo=+NY(&Jv78b5cTZ4r0BUMKLs)=@{i6l-&^kL)^^Dn}Fiz;>ngbg}$^e z1ugN|l194IFqFdweEX=wQ(PegKMOIly`3fT2N8W*~B6KyAewZ>I4uXUW;6qk`V!e(_4_?!4G^* zzS>13+!Dv-GXA`^q?0k*P}}Lr;Mvx;#FN)kixJ{Z>|OQwf5{zc46nB@nvpcX;TSHF zC|qNf?i|;hYn}c*1N!QF-mmpUd=EqT#u?nHzA_b1+Y?~V?pi8Io=NAzFIi#k<0A^ zc1U|isl!U)BZ^eoMcnqlSui(uoB}UXdK8b@R#UZP4VOE%QU6|+F@JGMJqZ$%@r7|6 z;ZPjMTKRx;dOqW**y@{5Pl*H1DLgaoxF-;kP8f^*bZ+fL@u0VZ+fUb3$57wU&X;fO zN?z-EbgDz)1TDjNVyW)J@ZsCexa=7FC&Zs)ccT%DN;1WIxfgJg|F1CXMjq;2UDcu@5;{m*6|N26araV*^kj7*#UMGJH03|Lo&2a+c#tt2D zVMA<#wVMPHw{=D#vP809vEJs+RNmZ>AIq%KI|->oEQxcPCgxRgunv;{QyLw3ySUWE z78xRgDgm9fmm(vR-Tn)xvNF&}9FWamL~7nv;|1o5_7%PF*rZleO5}$$BL%M2gFA)x zz z0~4`XLhk+WcI!~{KcJAMTci?9ihrAUowAaII!^8-@V~-9^INgKW zU;|lls6jaLOYYcE1VQ<3)e`4k26g{=oJrAE&W2e$`D*Z41HA5p9deHJh*g)1=o!Yo35Te|f7y>0w{ z7ij!m*XEfE)kdz=_gR3J;h3>WfMb=>=;%6*JsJPk+cCJ$sH8{|#DedK#O;o@YAMxQDy}p1+S1PV8T`&l525|Fb7}^+L2GmS{}E zi=Ce|xE`&cgIigZBV-8_(uA_E+9xr3mh}L_b-)`tIY^C4l=bw&4=(1Z6ihy%Gv*Gq z#BF8jt*}1bX$Ma6yqY#xUm)?!2uiS&v&b0 zFRLZ*G}dn0nfb{h66_)UdQQmXzRz>x-?&MsXcl7fT1!tJHlr_NS;E2I;U97^0VH))!wFn#7Suo@)o(SF%7Qkr$!bbOi;pUAvg_Q{7>haCEa_TNc@PmQ=Wn^q zKQe9URVzx%FS#~XpoLKuu8s`B#bYlkPSA}u<4U)?ke8RdMe_2#-~8^79KD?(oo=f~ zJ^lM(X<{cJ14t?RfSo+hiAc+E>ulnepLcXW3zyEBrn5&1BAq)H9AWF}RDMXaY*%V! zjMrt^u+g(A>_B52<1%d$Qn9RsN5Jm0NfygtWI^Su^j_HMpLac5>k5}1`8<{3b`c&P zpjwYN@n-ioB@ae)w4jTO=Thifn}~0325gLtj7>7-kV%npWwZzB$%8ERquw!gOlW{* zoONpGG8}XdS)yLoBSA%Sw+QBS?C!TibtC>*BUQj{!IOZVubrO$HLwMET(pG5INcFn z%Zhc#dB>5rm~jWAKIU@C24UW`_f=h-?X156Ogby$Tx?~MP(OoQKp^X9Y0XjOH!PY_ zke1058JvIhVRkAn4Qz|PiWL`VopG7RiRXp+l>T&K`;ZvUX-)jHV*ws||5P8sgOv{n zc^4s1F@$7AMz0M+gNZ}3>B0TW%9wj;zfa$}E;R}+-+mL(%cVf}F6q=q%`tjvVi-j1 z?;t-y04W0v@9kSfrcOR)*NaFzWTr;4p|oN5FiNvn$?BUMQPL<$Iq!PKv0+3$jS?L& zfncI>I#NS~A&J1k$%L*h;8);&W=wL>aYYZC!dI$9o zBkwL*X?Bbl1qkYlFy2O`J9zkUNYiRAa}9Q4l4bqNhFH(gUCO!T9Al zB_*Y`^(WqyTCG}YXLkdX9EL3mQ5RZv^6YrnE|aDDush&#wqP66dC5c`|g`ZTPG)WXvW-EkHcw zF}uV6C|bIb zz=pIPsMKNki2e!n4(vcp_!7EvW=y^Gw%ANwSa*dbJ}G8kM{N_3oc#35vGQh-u5i`r z;hkW?Q=Z;%V?2eGrTQ$v>;hzqgU`yIM53GLuxFOy(K|Mm72?RlXI$a8^V2Q(X#02C zBw&KBk4xSZe*BM_Z!nMZ$<59ovy}B?4>`zi2e_!po<7*5lI4N+aTRXVz_y1Nb)mt8 zmA*f(W2LAysOZ^_59)x)@`Iwax?JEY>3YK~Y7!1S^=-2eZ7a}+!m0_WkQY1fd@igQ zV=R`9!%(x;!=p_umV+?PC}WlTy?xW(@!DJzN#|zd)=41yJ-P`i%k$}aOdQc+$`5|< zDnUrLqJYDVdBRf9_*9nN>nZwi>~}Ir6f;Oj*xIjyyzv~mqHRP(cOOG{4l|z_9Ps=R zx;9)YFOfz!Z?Nh4K)FBvY9BZXc)t50v@x7py-nIVSXpL%AhC!})k;)+P z^2+JUL=FMW0J;A2LLrql`A5an`n*;wVAGoP!(q6Swu#ZQd)Owf61tHhFE%OH#KW)o zDnsnnNsl8xc>T5pVCLi7IMD6(V@Cn5LF>8dE;SS{TEOtl(}^Lrw%aD!({K$QvHtcfRs+FY21vyT8|#r*<|@HC)Zkc%7oxOEFC%EP3Z*R#ftee)Qlg zI=ccMmyUz1mWdz|3`XlmEg6{&`sI(PO}iza!|sbSAp`9fP9yQJD*aO(w*;vK~qzf4!~y zl~&SMvPzQJtf?)!G*fH6=u~b9E@f<_V*3h@_Q}7qOb5|`WF(>IWl;9F+7M|Hh`9}a z*W3K=7j;INf=YN_U8fTSlGiA#{gEN+7t=TTEMlQ-`I$e?!omrhH-Cj`3^3;z``!u( z!F}a%aB@YguMiT%5YYb6{s$*!mBVg{cRh&OQI|*E;D9Bj%&(ZNEIjS6`yqeS6a~0p z2DX5>p!LvpORAYAaI+jSN9`&k&Gj^^h~q z;j0-v?qANuyKMH1=+U}IZxgW|Cfq3N0|{a3!_{gfuzYS$NL2gc4|ryJp(Fwv`z|<} zKpH2*@{_s4OFf^A2eH4b=$S%?9YuM2FE6&0A_ym+z&TUZ>wByx!`}U^e;@7kdakhh zcQ`Hxo8}WiU`E5}6mDJ)`8;SLD<y~q(tXt!AZL@2Iu?dlt! zl5JL_K0)S{ZF5_k6O`&eRmwt~=6tx$r^#^|CbmjAYqub}VZJ zD(MauW5C!_j_k&VUmP9@&-3yMC|(jJ)#UR-A@jd%c7m#kI-|!{>k49MwaLg?79m&< zbY>{L;=}1);Q5XUc{N>aUjuclGg}Ola5FfA3haSt_qFTgXy3Kl4AATS0PlM7m3!$& zPPQ>kbP?0bs>wHy$mF>3T>WRoclE^u6ZdaRdnB;SY4Mhps#R7mmV$Doc)hQXL_26m z1s%p7E_I;+ZMC(Us9pJd^=t!FwP^ZXc6$<356tCba6-%#g}=DqId$})jz3}R)%;mG z`6?1JElfzy-(q;Y$Vhc48y2e%K%j187-0ui&R^`1o-0ts+3epyC6~LOCx5JXA-Hfp zERD13b_}L`)D{QNi|+o+R`OYYn)IwyfCcbzDo9;RwOib(G z9&R5gd~2P|J`mkGW|YmR{W9xYC&tzOlKIkew0YW)A7ixmi*FeTdG3(SVP^8ZD9-t| zquR`om-sM{_@Gq~!^%)`_WSK0{)4_>Q{G z5v1Kj6{F}UAC+1BMI#e_A0M7+bIaQJFgjRSV);4h<^kw4Ht(@`H)Gy)Mxd{#_}umF z;p6Gw=I^&tC!@<-z4Jx$nd|7O&fK{r@8*qK`=z9nx8AirAACbLvPW&!nK%W6$sU5t zwN~fD52{q#15)|Y8@+q?eq(_IzfsV3t4jG%`p0j)@jsSjKB00}6BoyMuLK?Uq=bK2`*|Ln{V`v@3 zL7NWI)#Ap3A09h)@tD|BhvJ#s zF{Kxe#b|K;9qCw1=`oF+QX$#`q>&suxA&PMQBld>;$w397Hl}bZ3D5+_&{q91PyG6 zo#kpECe|AnVD*7#RMcJE(ssLIUutRY%N6z;EzB!1C*A7tL=KT44`ivy~GLVp@t6yCUDJd^matoFWhB3<3*W^ARCLdZxaQW%KTYdIhuM_t$5MtRl9v;5UsI$M^ zlRpGR-(ah-*1*0h>R#lbI?rQY!4Kx66i8Nr+kwy?J8e}^)qk=we&N|~ zRQDhcg3lj>Gq0g4#n?{sa0Uny)dH$fR*6c|=V_Jt9>YN;20p;Uqt7z5e>)z*>KYJM zMpQ$rQ^(|N;@%>nmVYsol(Y%c8U)7S?Y4W?Ahq&+zpZfu$!VS;8jbE>_(gnW0|T^QP;h?DPXdFA8qZjICa zx$A&1G6G}^=JA^3IhBgLZoA5Pgck=4DU*XP%ZCequ(4mwi~)QX896;mc30_kVo|vd zFOCagg=!bbhbw?EGNP2%`=8~z&<6wWqWG_r*ffdPx`LyRV^UYhhf9F4GNMq2E#bS= zBbR@I%Zp^)KHE-wH2W$)j+DVO82jGWC6CfIK$vEO zlEUuoC8~+@Px0e`=|d{z$kHq~2?+=*BS2A^&u^m#`^RG4ci*C9i+uUFV`zwuZ&tfb zK3oUHBa)nYoI9}+pVxz-v>w=Jo>CE zM3IQtCwxqT1Y-6`#EPhBTX!((7os~Mp@_7FAK1bH7hfYN7kMA<0>VbNnpD?@+q#K_ zH$T>N7ZaG$?0DUlZADvG`Sr{W9GhSgFc8y7#@do^4GOSvA14OC{xQ)lkjNxOaXvPA zOo?YL`THL+2^xsmBN1caf46ljuMR%HLoRqEio&8nkv4I_q!PBYrrg!f&*eZ&>2X=i z_iIMd5}Qc+Z;}Z+3M`Xd8+6q+j&W<78Sw}lX%apVv$dsE6vqE(djlS{DN(ReLMalL z`CqlE%VFg31&nFpQtQf{K+M(_AXfW6VC$yH$NO)p6lBm*O~{LqqHRkDoE23m2QIg+ z+zW(_{{n?9e2(oKTk`I-zhnvx2}OML`d}YBID-93SZAtlf~gw;F{KCMtd}_C0oyl6 zCM;YeDDPcDy!OS&6LxSkJZcV;X8F45!MO{F=>k)=r4(aD!|mK4eCy1JM1eRalw37p z;a6IFR~z8Fnl;&%Pc?NnAT3o}v`=z;ik*8TqX)nK3*mh+(Ga)J59$N$uHh3gRy^X; zP2CVkizZPMtAj?{yU)lE&MYG|RJ}KS^2BQkAAHq5j!97xwm#NP+QS1tT6_{UHa{uF z-o27nr@v{`U}7(sRkB}R9~^C;28>=igWav%;CpxuNJ|75Xe6SQb#`x9|CVpyqFjZi z)d{6g{jxl0mJewk$JFu#Y>S0kd=F0oX^CzDS$)ow4!(ri2mLqU8V@=rYNGHjMdkl5 zr2`s<;J9#e3fk3?D{lZX=Mw3=&tCgz2S{Mbtl7(7%hjmeFDR5+qxwa3=7V6^;Wfo2 zD_G^>y1bxQfgpQ}Q6*Ar_uAiec>j?P_WxoGATq^n6%FFnm^TM~@6+McK%bR?TUon2 z){VB6hk=+(Qrtes<1jq|d5Ba-8&jUtAzc6arvK_gELfu7Kq0-a}S?-Sarj3e= zKH}Ji!{E5DPH!lba)y_o0N!&wD>qjzp2R32^cr{OwRI?A0?_VnLFgprU`IXo`r4I9c?CfB$#?@Kvzm za>3$%a_l;l*bCC(4Iph&qLV2~!X~A_POlW7tI?0VJLvM6h0j-2RZUwiDq1#T{mJzs zmKBMX2huwYvAp7F{B1%&qApXh5gObJQ$uB0gj zFVaYVCun{>p$TPayyE|z*Pe_lbBJ2(q~zx<89OOo(cdtI9;H z1_ac32u9>Mzp8%CEwTZ!V&g`7{c(672)%+6UJURQo7J>j`Aty}gs7#a-^5X*;?vjjwL&K`BHCHRtLXr((0kM=5AeCVfW65>@ z4Zm|WlqHYG1s$3J3fn|OD6%0qAdH+m)M9r5U7A|1YF-d{JY>#5A6H;Wnc8Rg&K%L| z#LQO7KsMDwBL(#cgaw4PyI$$rmQqq=ViG*!=yl)eb7ng4(0?*_L;oS+B@t91CTmL# z$G-B4w{5C!0EG2VXpNH93WZXO<(O*Yy5&_@!UoNYp6YYLG1J(P;uA1#L&%WhRpEP@ zRTfz;oYoo-JtD+g7bXy-Q7j~dNi-1{R;a)uc27vo2}|lfc;(Q)&z;$4^yI0*E&gQ6 z_{S%Y-aK>4yu};(_b(qC6@D};qFzG(nM~ZiJ&2Kv?*w|^f(2rh6k4aWSYPJMlbV(n z4WUx0uxGdIK02ab(L^Tb&PL)V7G0aaU`APUBK>QbhDl|$N0F69>kMH^M)v^1=oH%e zdZo?&YFDyAZ)FEt(^71%ib+<9rF`vjeP4OyiK)TCLcd?Z18K9r7-_MTmyQ?u3nUc+ zv!%K}5N2tE>9zD}W{ptVClScJYE(MZfHZ?b^rhX07*qoM6N<$ Ef?3YcrT_o{ literal 0 HcmV?d00001 diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index b95858ef..231fe0e1 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -215,18 +215,26 @@ You can choose, which tools to install in your workspace container and other con - + + + + + + + + ## Chat with us -Feel free to join us on Gitter. +Join us on Gitter. [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) --- -Laradock exists thanks to all the people who contribute. +## Awesome Contributors +Laradock exists thanks to the awesome people who contribute. -## Project Maintainers +### Project Maintainers @@ -344,199 +352,199 @@ Laradock exists thanks to all the people who contribute.
-## Code Contributors +### Code Contributors - + + +### Financial Contributors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- - -## Financial Contributors +_You can become a financial contributor using any of the methods below:_ -Contribute and help us sustain the project. +Option 1: [Paypal](https://paypal.me/mzmmzz) +
+Option 2: [Open Collective](https://opencollective.com/laradock/contribute) +
+Option 3: [Github Sponsors](https://github.com/sponsors/Mahmoudz) +
+Option 4: [Patreon](https://www.patreon.com/zalt) -Option 1: Donate via [Paypal](https://paypal.me/mzmmzz). -
-Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz). -
-Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute). -
-Option 4: Become a [Patreon](https://www.patreon.com/zalt). - - ## Sponsors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

Gold

-Support Laradock with your [organization](https://opencollective.com/laradock/contribute/). +[comment]: # (Custom Sponsors) +

+ +

+ +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +

Silver

+ +[comment]: # (Custom Sponsors) +

+ +

+ +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +

Bronze

+ +[comment]: # (Custom Sponsors) +

+ +

+ +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +--- + +_You can become a sponsor using any of the methods below:_ + +Option 1: For normal sponsorships visit [Open Collective](https://opencollective.com/laradock/contribute/).
-Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page. -
-For more info contact support@laradock.io. - - -## Backers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Option 2: For custom sponsorships email us at support@laradock.io. +*All sponsors logos will show up on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.*
diff --git a/README.md b/README.md index 2007e774..6b88de96 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,6 @@

Full PHP development environment based on Docker.

-

Supporting a variety of common services, all pre-configured to provide a full PHP development environment.

-

contributions welcome GitHub forks @@ -18,10 +16,10 @@

- forthebadge + forthebadge

- +

Use Docker First - Then Learn About It Later!

@@ -33,17 +31,16 @@ --- - ## Chat with us -Feel free to join us on Gitter. +Join us on Gitter. [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) --- -## Awesome People -Laradock exists thanks to all the people who contribute. +## Awesome Contributors +Laradock exists thanks to the awesome people who contribute. ### Project Maintainers @@ -169,189 +166,193 @@ Laradock exists thanks to all the people who contribute. ### Financial Contributors -Contribute and help us sustain the project. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Option 1: Donate via [Paypal](https://paypal.me/mzmmzz). +--- + +_You can become a financial contributor using any of the methods below:_ + +Option 1: [Paypal](https://paypal.me/mzmmzz)
-Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz). +Option 2: [Open Collective](https://opencollective.com/laradock/contribute)
-Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute). +Option 3: [Github Sponsors](https://github.com/sponsors/Mahmoudz)
-Option 4: Become a [Patreon](https://www.patreon.com/zalt). +Option 4: [Patreon](https://www.patreon.com/zalt) ## Sponsors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

Gold

+[comment]: # (Custom Sponsors) +

+ +

-Support Laradock with your [organization](https://opencollective.com/laradock/contribute/). +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +

Silver

+ +[comment]: # (Custom Sponsors) +

+ +

+ +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +

Bronze

+ +[comment]: # (Custom Sponsors) +

+ +

+ +[comment]: # (Open Collective Sponsors) +

+ + + + + + + + + + +

+ +--- + +_You can become a sponsor using any of the methods below:_ + +Option 1: For normal sponsorships visit [Open Collective](https://opencollective.com/laradock/contribute/).
-Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page. -
-For more info contact support@laradock.io. - -## Backers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Option 2: For custom sponsorships email us at support@laradock.io. +*All sponsors logos will show up on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.* ## License From d47c2d258c53bde0606658f953cbe355c5a95b42 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 30 Sep 2020 22:29:30 +0200 Subject: [PATCH 12/14] cleanup open collective links --- .../custom-sponsors/bestonlinecasino.jpg | Bin 0 -> 5402 bytes DOCUMENTATION/content/introduction/index.md | 337 +++++++++--------- README.md | 270 +++++--------- 3 files changed, 257 insertions(+), 350 deletions(-) create mode 100644 .github/home-page-images/custom-sponsors/bestonlinecasino.jpg diff --git a/.github/home-page-images/custom-sponsors/bestonlinecasino.jpg b/.github/home-page-images/custom-sponsors/bestonlinecasino.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85e15a53f1a7702e346da1d223065bb6644c7f03 GIT binary patch literal 5402 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 L|92*RZ{+^~mGP9C literal 0 HcmV?d00001 diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index 231fe0e1..dc9f93e4 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -11,7 +11,7 @@ It supports a variety of common services, all pre-configured to provide a ready
--- -### Use Docker First - Then Learn About It Later! +### Use Docker First - Learn About It Later! --- @@ -223,16 +223,89 @@ You can choose, which tools to install in your workspace container and other con -## Chat with us +

+ Laradock Logo +

-Join us on Gitter. +

+ contributions welcome + GitHub forks + GitHub issues + GitHub stars + Build status + GitHub license +

+ +

Full PHP development environment based on Docker.

+ +

+ forthebadge +

+ +
+
+ +

Use Docker First - Learn About It Later!

+ +

+ + Laradock Documentation + +

+ + +

+ Laradock Logo +

+ +

+ contributions welcome + GitHub forks + GitHub issues + GitHub stars + Build status + GitHub license +

+ +

Full PHP development environment based on Docker.

+ +

+ forthebadge +

+ +
+
+ +

Use Docker First - Learn About It Later!

+ +

+ + Laradock Documentation + +

+ + + + + + + + + + +## Join Us [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-blue)](https://gitpod.io/#https://github.com/laradock/laradock) + --- -## Awesome Contributors -Laradock exists thanks to the awesome people who contribute. + +## Awesome People + +Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of all these smart and generous people, from code contributors to financial contributors. 💜 + ### Project Maintainers @@ -354,197 +427,117 @@ Laradock exists thanks to the awesome people who contribute. ### Code Contributors - +[![Laradock Contributors][contributors-src]][contributors-href] ### Financial Contributors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +[![Open Collective backers][backers-src]][backers-href] + +You can support us using any of the methods below: + +1: [Open Collective](https://opencollective.com/laradock/contribute) +
+2: [Paypal](https://paypal.me/mzmmzz) +
+3: [Github Sponsors](https://github.com/sponsors/Mahmoudz) +
+4: [Patreon](https://www.patreon.com/zalt) --- -_You can become a financial contributor using any of the methods below:_ - -Option 1: [Paypal](https://paypal.me/mzmmzz) -
-Option 2: [Open Collective](https://opencollective.com/laradock/contribute) -
-Option 3: [Github Sponsors](https://github.com/sponsors/Mahmoudz) -
-Option 4: [Patreon](https://www.patreon.com/zalt) ## Sponsors -

Gold

+Sponsoring is an act of giving in a different fashion. 🌱 + + +### Gold Sponsors -[comment]: # (Custom Sponsors)

- + +We thank bestonlinecasino.com for their support + + + + + + + + + + + +

-[comment]: # (Open Collective Sponsors) +### Silver Sponsors +

- - - - - - - - - - + + + + + + + + + + + +

-

Silver

+### Bronze Sponsors -[comment]: # (Custom Sponsors)

- + +Apiato Build API's faster. + + + + + + + + + + + +

-[comment]: # (Open Collective Sponsors) -

- - - - - - - - - - -

-

Bronze

+You can sponsor us using any of the methods below: -[comment]: # (Custom Sponsors) -

- -

- -[comment]: # (Open Collective Sponsors) -

- - - - - - - - - - -

- ---- - -_You can become a sponsor using any of the methods below:_ - -Option 1: For normal sponsorships visit [Open Collective](https://opencollective.com/laradock/contribute/). +1: Sponsor via [Open Collective](https://opencollective.com/laradock/contribute/).
-Option 2: For custom sponsorships email us at support@laradock.io. +2: Email us at support@laradock.io. + +*Sponsors logos are displayed on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.* + +## License + +[MIT](https://github.com/laradock/laradock/blob/master/LICENSE) © Mahmoud Zalt + + +[comment]: # (Open Collective Tiers) + +[contributors-src]: https://opencollective.com/laradock/contributors.svg?width=890&button=false&isActive=true +[contributors-href]: https://github.com/laradock/laradock/graphs/contributors +[backers-src]: https://opencollective.com/laradock/tiers/awesome-backers.svg?width=890&button=false&isActive=true +[backers-href]: https://opencollective.com/laradock#contributors + +[gold-sponsors-src]: https://opencollective.com/laradock/tiers/gold-sponsors.svg?avatarHeight=80&width=890&button=false&isActive=true +[gold-sponsors-href]: https://opencollective.com/laradock#contributors +[silver-sponsors-src]: https://opencollective.com/laradock/tiers/silver-sponsors.svg?avatarHeight=64&width=890&button=false&isActive=true +[silver-sponsors-href]: https://opencollective.com/laradock#contributors +[bronze-sponsors-src]: https://opencollective.com/laradock/tiers/bronze-sponsors.svg?avatarHeight=48&width=890&button=false&isActive=true +[bronze-sponsors-href]: https://opencollective.com/laradock#contributors + + + + -*All sponsors logos will show up on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.*
diff --git a/README.md b/README.md index 6b88de96..37f20dc1 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,6 @@ Laradock Logo

---- - -

Full PHP development environment based on Docker.

-

contributions welcome GitHub forks @@ -15,13 +11,16 @@ GitHub license

+

Full PHP development environment based on Docker.

+

forthebadge

+

-

Use Docker First - Then Learn About It Later!

+

Use Docker First - Learn About It Later!

@@ -29,18 +28,20 @@

---- -## Chat with us - -Join us on Gitter. +## Join Us [![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-blue)](https://gitpod.io/#https://github.com/laradock/laradock) + --- -## Awesome Contributors -Laradock exists thanks to the awesome people who contribute. + +## Awesome People + +Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of all these smart and generous people, from code contributors to financial contributors. 💜 + ### Project Maintainers @@ -162,198 +163,111 @@ Laradock exists thanks to the awesome people who contribute. ### Code Contributors - +[![Laradock Contributors][contributors-src]][contributors-href] ### Financial Contributors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +[![Open Collective backers][backers-src]][backers-href] + +You can support us using any of the methods below: + +1: [Open Collective](https://opencollective.com/laradock/contribute) +
+2: [Paypal](https://paypal.me/mzmmzz) +
+3: [Github Sponsors](https://github.com/sponsors/Mahmoudz) +
+4: [Patreon](https://www.patreon.com/zalt) --- -_You can become a financial contributor using any of the methods below:_ - -Option 1: [Paypal](https://paypal.me/mzmmzz) -
-Option 2: [Open Collective](https://opencollective.com/laradock/contribute) -
-Option 3: [Github Sponsors](https://github.com/sponsors/Mahmoudz) -
-Option 4: [Patreon](https://www.patreon.com/zalt) ## Sponsors -

Gold

+Sponsoring is an act of giving in a different fashion. 🌱 + + +### Gold Sponsors -[comment]: # (Custom Sponsors)

- + +We thank bestonlinecasino.com for their support + + + + + + + + + + + +

-[comment]: # (Open Collective Sponsors) +### Silver Sponsors +

- - - - - - - - - - + + + + + + + + + + + +

-

Silver

+### Bronze Sponsors -[comment]: # (Custom Sponsors)

- + +Apiato Build API's faster. + + + + + + + + + + + +

-[comment]: # (Open Collective Sponsors) -

- - - - - - - - - - -

-

Bronze

+You can sponsor us using any of the methods below: -[comment]: # (Custom Sponsors) -

- -

- -[comment]: # (Open Collective Sponsors) -

- - - - - - - - - - -

- ---- - -_You can become a sponsor using any of the methods below:_ - -Option 1: For normal sponsorships visit [Open Collective](https://opencollective.com/laradock/contribute/). +1: Sponsor via [Open Collective](https://opencollective.com/laradock/contribute/).
-Option 2: For custom sponsorships email us at support@laradock.io. +2: Email us at support@laradock.io. -*All sponsors logos will show up on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.* +*Sponsors logos are displayed on the [github repository](https://github.com/laradock/laradock/) page and the [documentation website](http://laradock.io/) home page.* ## License [MIT](https://github.com/laradock/laradock/blob/master/LICENSE) © Mahmoud Zalt + + +[comment]: # (Open Collective Tiers) + +[contributors-src]: https://opencollective.com/laradock/contributors.svg?width=890&button=false&isActive=true +[contributors-href]: https://github.com/laradock/laradock/graphs/contributors +[backers-src]: https://opencollective.com/laradock/tiers/awesome-backers.svg?width=890&button=false&isActive=true +[backers-href]: https://opencollective.com/laradock#contributors + +[gold-sponsors-src]: https://opencollective.com/laradock/tiers/gold-sponsors.svg?avatarHeight=80&width=890&button=false&isActive=true +[gold-sponsors-href]: https://opencollective.com/laradock#contributors +[silver-sponsors-src]: https://opencollective.com/laradock/tiers/silver-sponsors.svg?avatarHeight=64&width=890&button=false&isActive=true +[silver-sponsors-href]: https://opencollective.com/laradock#contributors +[bronze-sponsors-src]: https://opencollective.com/laradock/tiers/bronze-sponsors.svg?avatarHeight=48&width=890&button=false&isActive=true +[bronze-sponsors-href]: https://opencollective.com/laradock#contributors + + From 89c9cfe09941bead05d63ec3c0fe9b9173ce0526 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 30 Sep 2020 22:29:38 +0200 Subject: [PATCH 13/14] add Gitpod link and its config file --- .gitpod.yml | 2 ++ DOCUMENTATION/content/contributing/index.md | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000..a612ef0c --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,2 @@ +image: gitpod/workspace-full + diff --git a/DOCUMENTATION/content/contributing/index.md b/DOCUMENTATION/content/contributing/index.md index 3dea7fea..4a39b2de 100644 --- a/DOCUMENTATION/content/contributing/index.md +++ b/DOCUMENTATION/content/contributing/index.md @@ -4,6 +4,8 @@ type: index weight: 6 --- +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/laradock/laradock) + ## Have a Question From 67dde45d243c1af22768c685894d6cc7497d8f66 Mon Sep 17 00:00:00 2001 From: Dawid Makowski Date: Sat, 10 Oct 2020 22:39:43 +0800 Subject: [PATCH 14/14] Add BBC Audio Waveform Image Generator --- DOCUMENTATION/content/documentation/index.md | 21 +++++++++++++++ docker-compose.yml | 4 +++ env-example | 4 +++ laravel-horizon/Dockerfile | 27 ++++++++++++++++++++ php-fpm/Dockerfile | 24 +++++++++++++++++ php-worker/Dockerfile | 27 ++++++++++++++++++++ workspace/Dockerfile | 24 +++++++++++++++++ 7 files changed, 131 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index cecfa396..ad75e90e 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -2031,6 +2031,27 @@ To install FFMPEG in the Workspace container **PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise you'll get an error when running the `php-ffmpeg` binary. +
+ +## Install BBC Audio Waveform Image Generator + +audiowaveform is a C++ command-line application that generates waveform data from either MP3, WAV, FLAC, or Ogg Vorbis format audio files. +Waveform data can be used to produce a visual rendering of the audio, similar in appearance to audio editing applications. +Waveform data files are saved in either binary format (.dat) or JSON (.json). + +To install BBC Audio Waveform Image Generator in the Workspace container + +1 - Open the `.env` file + +2 - Search for the `WORKSPACE_INSTALL_AUDIOWAVEFORM` argument under the Workspace Container and set it to `true` + +3 - Re-build the container `docker-compose build workspace` + +4 - If you use the `php-worker` or `laravel-horizon` container too, please follow the same steps above especially if you have processing that have been queued. + +**PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise you'll get an error when running the `audiowaveform` binary. + +
## Install wkhtmltopdf diff --git a/docker-compose.yml b/docker-compose.yml index cb056aca..eabce3e4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -151,6 +151,7 @@ services: - INSTALL_POWERLINE=${WORKSPACE_INSTALL_POWERLINE} - INSTALL_SUPERVISOR=${WORKSPACE_INSTALL_SUPERVISOR} - INSTALL_FFMPEG=${WORKSPACE_INSTALL_FFMPEG} + - INSTALL_AUDIOWAVEFORM=${WORKSPACE_INSTALL_AUDIOWAVEFORM} - INSTALL_WKHTMLTOPDF=${WORKSPACE_INSTALL_WKHTMLTOPDF} - INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL} - INSTALL_LNAV=${WORKSPACE_INSTALL_LNAV} @@ -245,6 +246,7 @@ services: - INSTALL_PCNTL=${PHP_FPM_INSTALL_PCNTL} - ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES} - INSTALL_FFMPEG=${PHP_FPM_FFMPEG} + - INSTALL_AUDIOWAVEFORM=${PHP_FPM_AUDIOWAVEFORM} - INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF} - INSTALL_XHPROF=${PHP_FPM_INSTALL_XHPROF} - INSTALL_XMLRPC=${PHP_FPM_INSTALL_XMLRPC} @@ -303,6 +305,7 @@ services: - INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE} - INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT} - INSTALL_FFMPEG=${PHP_WORKER_INSTALL_FFMPEG} + - INSTALL_AUDIOWAVEFORM=${PHP_WORKER_INSTALL_AUDIOWAVEFORM} - INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS} - INSTALL_IMAP=${PHP_WORKER_INSTALL_IMAP} - INSTALL_XMLRPC=${PHP_WORKER_INSTALL_XMLRPC} @@ -338,6 +341,7 @@ services: - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} + - INSTALL_AUDIOWAVEFORM=${LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM} - PUID=${LARAVEL_HORIZON_PUID} - PGID=${LARAVEL_HORIZON_PGID} volumes: diff --git a/env-example b/env-example index 0d4ebe6c..3b52a4b9 100644 --- a/env-example +++ b/env-example @@ -174,6 +174,7 @@ WORKSPACE_CHROME_DRIVER_VERSION=2.42 WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 WORKSPACE_INSTALL_FFMPEG=false +WORKSPACE_INSTALL_AUDIOWAVEFORM=false WORKSPACE_INSTALL_WKHTMLTOPDF=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true @@ -244,6 +245,7 @@ PHP_FPM_INSTALL_SSHPASS=false PHP_FPM_INSTALL_MAILPARSE=false PHP_FPM_INSTALL_WKHTMLTOPDF=false PHP_FPM_FFMPEG=false +PHP_FPM_AUDIOWAVEFORM=false PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" PHP_FPM_DEFAULT_LOCALE=POSIX @@ -269,6 +271,7 @@ PHP_WORKER_INSTALL_GHOSTSCRIPT=false PHP_WORKER_INSTALL_SWOOLE=false PHP_WORKER_INSTALL_TAINT=false PHP_WORKER_INSTALL_FFMPEG=false +PHP_WORKER_INSTALL_AUDIOWAVEFORM=false PHP_WORKER_INSTALL_CASSANDRA=false PHP_WORKER_INSTALL_GEARMAN=false PHP_WORKER_INSTALL_REDIS=false @@ -300,6 +303,7 @@ LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_FFMPEG=false +LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM=false LARAVEL_HORIZON_PGID=1000 LARAVEL_HORIZON_PUID=1000 diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 7e3cfa30..38b2a695 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -126,6 +126,33 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apk add ffmpeg \ ;fi +# Install BBC Audio Waveform Image Generator: +ARG INSTALL_AUDIOWAVEFORM=false +RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ + apk add git make cmake gcc g++ libmad-dev libid3tag-dev libsndfile-dev gd-dev boost-dev libgd libpng-dev zlib-dev \ + && apk add autoconf automake libtool gettext \ + && wget https://github.com/xiph/flac/archive/1.3.3.tar.gz \ + && tar xzf 1.3.3.tar.gz \ + && cd flac-1.3.3 \ + && ./autogen.sh \ + && ./configure --enable-shared=no \ + && make \ + && make install \ + && cd .. \ + && git clone https://github.com/bbc/audiowaveform.git \ + && cd audiowaveform \ + && wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \ + && tar xzf release-1.10.0.tar.gz \ + && ln -s googletest-release-1.10.0/googletest googletest \ + && ln -s googletest-release-1.10.0/googlemock googlemock \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install \ +;fi + + # Install Cassandra drivers: ARG INSTALL_CASSANDRA=false RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index d05426d3..1837b452 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -857,6 +857,30 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apt-get -y install ffmpeg \ ;fi +########################################################################### +# BBC Audio Waveform Image Generator: +########################################################################### + +USER root + +ARG INSTALL_AUDIOWAVEFORM=false + +RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ + apt-get -y install git wget make cmake gcc g++ libmad0-dev libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \ + && git clone https://github.com/bbc/audiowaveform.git \ + && cd audiowaveform \ + && wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \ + && tar xzf release-1.10.0.tar.gz \ + && ln -s googletest-release-1.10.0/googletest googletest \ + && ln -s googletest-release-1.10.0/googlemock googlemock \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install \ +;fi + + ##################################### # wkhtmltopdf: ##################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 211dcb40..084e2dd2 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -168,6 +168,33 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apk --update add ffmpeg \ ;fi +# Install BBC Audio Waveform Image Generator: +ARG INSTALL_AUDIOWAVEFORM=false +RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ + apk add git make cmake gcc g++ libmad-dev libid3tag-dev libsndfile-dev gd-dev boost-dev libgd libpng-dev zlib-dev \ + && apk add autoconf automake libtool gettext \ + && wget https://github.com/xiph/flac/archive/1.3.3.tar.gz \ + && tar xzf 1.3.3.tar.gz \ + && cd flac-1.3.3 \ + && ./autogen.sh \ + && ./configure --enable-shared=no \ + && make \ + && make install \ + && cd .. \ + && git clone https://github.com/bbc/audiowaveform.git \ + && cd audiowaveform \ + && wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \ + && tar xzf release-1.10.0.tar.gz \ + && ln -s googletest-release-1.10.0/googletest googletest \ + && ln -s googletest-release-1.10.0/googlemock googlemock \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install \ +;fi + + # Install AMQP: ARG INSTALL_AMQP=false diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6d059bac..0043dd80 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1305,6 +1305,30 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apt-get -y install ffmpeg \ ;fi + +########################################################################### +# BBC Audio Waveform Image Generator: +########################################################################### + +USER root + +ARG INSTALL_AUDIOWAVEFORM=false + +RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ + apt-get -y install git wget make cmake gcc g++ libmad0-dev libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \ + && git clone https://github.com/bbc/audiowaveform.git \ + && cd audiowaveform \ + && wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \ + && tar xzf release-1.10.0.tar.gz \ + && ln -s googletest-release-1.10.0/googletest googletest \ + && ln -s googletest-release-1.10.0/googlemock googlemock \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make install \ +;fi + ##################################### # wkhtmltopdf: #####################################