From c10e6e29f4d880951ad995c5303aaf11b048a2c7 Mon Sep 17 00:00:00 2001 From: nick Date: Mon, 28 Dec 2020 00:02:16 +0100 Subject: [PATCH 01/36] save work --- .github/workflows/hugo.yml | 30 ++++++++++++++++++++++++++++++ config.toml | 4 ++-- content/consumer/_index.md | 1 + content/consumer/consume.md | 6 ++++++ content/whats-new/_index.md | 1 + data/menu/more.yml | 7 ------- static/custom.css | 15 +++++++++++++++ 7 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/hugo.yml create mode 100644 content/consumer/consume.md diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml new file mode 100644 index 0000000..2f0f19e --- /dev/null +++ b/.github/workflows/hugo.yml @@ -0,0 +1,30 @@ +name: github pages + +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.79.1' + # extended: true + + - name: Build + run: hugo --minify + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} + publish_dir: ./public \ No newline at end of file diff --git a/config.toml b/config.toml index 8f0e4ad..adfc930 100644 --- a/config.toml +++ b/config.toml @@ -12,5 +12,5 @@ disablePathToLower = true geekdocLogo = "images/logo.jpg" geekdocBreadcrumb = false geekdocRepo = "https://github.com/php-kafka/php-kafka.github.io" - geekdocEditPath = "content" - + geekdocEditPath = "tree/main/content" + geekdocSearch = false diff --git a/content/consumer/_index.md b/content/consumer/_index.md index 62845ea..a24157b 100644 --- a/content/consumer/_index.md +++ b/content/consumer/_index.md @@ -2,5 +2,6 @@ title: "Consumer" date: 2020-12-27T22:09:37+01:00 draft: false +geekdocCollapseSection: true --- asadf asfa sdfasfasf diff --git a/content/consumer/consume.md b/content/consumer/consume.md new file mode 100644 index 0000000..d46bae4 --- /dev/null +++ b/content/consumer/consume.md @@ -0,0 +1,6 @@ +--- +title: "consume" +date: 2020-12-27T22:09:37+01:00 +draft: false +--- +asadf asfa sdfasfasf diff --git a/content/whats-new/_index.md b/content/whats-new/_index.md index ffb7f3e..5f9679a 100644 --- a/content/whats-new/_index.md +++ b/content/whats-new/_index.md @@ -2,4 +2,5 @@ title: "What's new" date: 2020-12-27T22:09:37+01:00 draft: false +geekdocCollapseSection: true --- \ No newline at end of file diff --git a/data/menu/more.yml b/data/menu/more.yml index e82b14d..2bec72b 100644 --- a/data/menu/more.yml +++ b/data/menu/more.yml @@ -1,12 +1,5 @@ --- more: - - name: What's new - ref: "/whats-new" - icon: "notification" - - name: Releases - ref: "https://github.com/thegeeklab/hugo-geekdoc/releases" - external: true - icon: "download" - name: "View Source" ref: "https://github.com/php-kafka/php-kafka.github.io" external: true diff --git a/static/custom.css b/static/custom.css index 6768120..e4bf185 100644 --- a/static/custom.css +++ b/static/custom.css @@ -1,2 +1,17 @@ +/* default link color */ +a { color: #e500ff; } +a:visited { color: #e500ff } + +/* site header */ .gdoc-header { background: #ffffff; border-color: #404040; } .gdoc-header__link, .gdoc-header__link:visited { color: #e500ff; } + +/* page links */ +.gdoc-page__footer a, .gdoc-page__footer a:visited { color: #e500ff; } +.gdoc-page__header a, .gdoc-page__header a:visited { color: #e500ff; } + + +/* site footer */ +.gdoc-footer { background: #ffffff; color: gray; } +.gdoc-footer__link{ color: #e500ff; } +.gdoc-footer__link:visited, .gdoc-footer__link:hover { color: #e500ff; } From e43f829af9b51a6d731c3e6d41446f60b1aad8ef Mon Sep 17 00:00:00 2001 From: nick-zh Date: Sun, 27 Dec 2020 23:06:09 +0000 Subject: [PATCH 02/36] deploy: b83b598cfc3a9dc6ea9ec260a76d73448204a7aa --- .github/workflows/hugo.yml | 30 --------- .gitignore | 3 - .nojekyll | 0 404.html | 3 + LICENSE | 29 --------- README.md | 1 - brand.svg | 88 ++++++++++++++++++++++++++ categories/index.xml | 1 + config.toml | 16 ----- consumer/consume/index.html | 4 ++ consumer/index.html | 4 ++ consumer/index.xml | 1 + content/consumer/_index.md | 7 -- content/consumer/consume.md | 6 -- content/whats-new/_index.md | 6 -- content/whats-new/release-1.0.0.md | 6 -- static/custom.css => custom.css | 0 data/menu/more.yml | 6 -- docker-compose.yml | 8 --- favicon/android-chrome-192x192.png | Bin 0 -> 13669 bytes favicon/android-chrome-512x512.png | Bin 0 -> 39700 bytes favicon/apple-touch-icon.png | Bin 0 -> 7269 bytes favicon/browserconfig.xml | 12 ++++ favicon/favicon-16x16.png | Bin 0 -> 879 bytes favicon/favicon-32x32.png | Bin 0 -> 1500 bytes favicon/favicon.ico | Bin 0 -> 15086 bytes favicon/mstile-144x144.png | Bin 0 -> 3975 bytes favicon/mstile-150x150.png | Bin 0 -> 3979 bytes favicon/mstile-310x150.png | Bin 0 -> 4298 bytes favicon/mstile-310x310.png | Bin 0 -> 9623 bytes favicon/mstile-70x70.png | Bin 0 -> 2549 bytes favicon/safari-pinned-tab.svg | 38 +++++++++++ favicon/site.webmanifest | 19 ++++++ fonts/DroidSans.woff | Bin 0 -> 92812 bytes fonts/DroidSans.woff2 | Bin 0 -> 72676 bytes fonts/GeekdocIcons.woff | Bin 0 -> 3572 bytes fonts/GeekdocIcons.woff2 | Bin 0 -> 2876 bytes fonts/LiberationMono.woff | Bin 0 -> 174632 bytes fonts/LiberationMono.woff2 | Bin 0 -> 123712 bytes fonts/LiberationSans-Bold.woff | Bin 0 -> 189564 bytes fonts/LiberationSans-Bold.woff2 | Bin 0 -> 134780 bytes fonts/LiberationSans-BoldItalic.woff | Bin 0 -> 192500 bytes fonts/LiberationSans-BoldItalic.woff2 | Bin 0 -> 138004 bytes fonts/LiberationSans-Italic.woff | Bin 0 -> 195116 bytes fonts/LiberationSans-Italic.woff2 | Bin 0 -> 139304 bytes fonts/LiberationSans.woff | Bin 0 -> 188280 bytes fonts/LiberationSans.woff2 | Bin 0 -> 133308 bytes fonts/Metropolis.woff | Bin 0 -> 16336 bytes fonts/Metropolis.woff2 | Bin 0 -> 11292 bytes index.html | 4 ++ index.xml | 1 + js/clipboard-af8ab36589.min.js | 7 ++ js/flexsearch-ad47a5e1ee.min.js | 42 ++++++++++++ js/groupBy-62b30ac391.min.js | 9 +++ js/mermaid-71505ed73e.min.js | 32 ++++++++++ main-bed196f5e7.min.css | 1 + mobile-2eb10ce87d.min.css | 1 + print-16259ad7b8.min.css | 1 + sitemap.xml | 1 + tags/index.xml | 1 + whats-new/index.html | 4 ++ whats-new/index.xml | 1 + whats-new/release-1.0.0/index.html | 4 ++ 63 files changed, 279 insertions(+), 118 deletions(-) delete mode 100644 .github/workflows/hugo.yml delete mode 100644 .gitignore create mode 100644 .nojekyll create mode 100644 404.html delete mode 100644 LICENSE delete mode 100644 README.md create mode 100644 brand.svg create mode 100644 categories/index.xml delete mode 100644 config.toml create mode 100644 consumer/consume/index.html create mode 100644 consumer/index.html create mode 100644 consumer/index.xml delete mode 100644 content/consumer/_index.md delete mode 100644 content/consumer/consume.md delete mode 100644 content/whats-new/_index.md delete mode 100644 content/whats-new/release-1.0.0.md rename static/custom.css => custom.css (100%) delete mode 100644 data/menu/more.yml delete mode 100644 docker-compose.yml create mode 100644 favicon/android-chrome-192x192.png create mode 100644 favicon/android-chrome-512x512.png create mode 100644 favicon/apple-touch-icon.png create mode 100644 favicon/browserconfig.xml create mode 100644 favicon/favicon-16x16.png create mode 100644 favicon/favicon-32x32.png create mode 100644 favicon/favicon.ico create mode 100644 favicon/mstile-144x144.png create mode 100644 favicon/mstile-150x150.png create mode 100644 favicon/mstile-310x150.png create mode 100644 favicon/mstile-310x310.png create mode 100644 favicon/mstile-70x70.png create mode 100644 favicon/safari-pinned-tab.svg create mode 100644 favicon/site.webmanifest create mode 100644 fonts/DroidSans.woff create mode 100644 fonts/DroidSans.woff2 create mode 100644 fonts/GeekdocIcons.woff create mode 100644 fonts/GeekdocIcons.woff2 create mode 100644 fonts/LiberationMono.woff create mode 100644 fonts/LiberationMono.woff2 create mode 100644 fonts/LiberationSans-Bold.woff create mode 100644 fonts/LiberationSans-Bold.woff2 create mode 100644 fonts/LiberationSans-BoldItalic.woff create mode 100644 fonts/LiberationSans-BoldItalic.woff2 create mode 100644 fonts/LiberationSans-Italic.woff create mode 100644 fonts/LiberationSans-Italic.woff2 create mode 100644 fonts/LiberationSans.woff create mode 100644 fonts/LiberationSans.woff2 create mode 100644 fonts/Metropolis.woff create mode 100644 fonts/Metropolis.woff2 create mode 100644 index.html create mode 100644 index.xml create mode 100644 js/clipboard-af8ab36589.min.js create mode 100644 js/flexsearch-ad47a5e1ee.min.js create mode 100644 js/groupBy-62b30ac391.min.js create mode 100644 js/mermaid-71505ed73e.min.js create mode 100644 main-bed196f5e7.min.css create mode 100644 mobile-2eb10ce87d.min.css create mode 100644 print-16259ad7b8.min.css create mode 100644 sitemap.xml create mode 100644 tags/index.xml create mode 100644 whats-new/index.html create mode 100644 whats-new/index.xml create mode 100644 whats-new/release-1.0.0/index.html diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml deleted file mode 100644 index 2f0f19e..0000000 --- a/.github/workflows/hugo.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: github pages - -on: - push: - branches: - - main - -jobs: - deploy: - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - with: - submodules: true # Fetch Hugo themes (true OR recursive) - fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 - with: - hugo-version: '0.79.1' - # extended: true - - - name: Build - run: hugo --minify - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} - publish_dir: ./public \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 58641b2..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.idea/ -public/ -resources/ \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..81af66d --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ +404 Page not found | Documentation php-kafka
Lost?
Error 404
Seems like what you are looking for can't be found. Don't worry we can +bring you back to the homepage.
\ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 60c7e70..0000000 --- a/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2020, php-kafka -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md deleted file mode 100644 index 41e87aa..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# php-kafka.github.io \ No newline at end of file diff --git a/brand.svg b/brand.svg new file mode 100644 index 0000000..e20f9c5 --- /dev/null +++ b/brand.svg @@ -0,0 +1,88 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 0000000..1f749bc --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Categories on Documentation php-kafkahttps://php-kafka.github.io/categories/Recent content in Categories on Documentation php-kafkaHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/config.toml b/config.toml deleted file mode 100644 index adfc930..0000000 --- a/config.toml +++ /dev/null @@ -1,16 +0,0 @@ -baseURL = "https://php-kafka.github.io/" -languageCode = "en-us" -title = "Documentation php-kafka" -theme = "hugo-geekdoc" - -# Geekdoc required configuration -pygmentsUseClasses = true -pygmentsCodeFences = true -disablePathToLower = true - -[params] - geekdocLogo = "images/logo.jpg" - geekdocBreadcrumb = false - geekdocRepo = "https://github.com/php-kafka/php-kafka.github.io" - geekdocEditPath = "tree/main/content" - geekdocSearch = false diff --git a/consumer/consume/index.html b/consumer/consume/index.html new file mode 100644 index 0000000..f521c58 --- /dev/null +++ b/consumer/consume/index.html @@ -0,0 +1,4 @@ +consume | Documentation php-kafka

consume

asadf asfa sdfasfasf

\ No newline at end of file diff --git a/consumer/index.html b/consumer/index.html new file mode 100644 index 0000000..a4300e1 --- /dev/null +++ b/consumer/index.html @@ -0,0 +1,4 @@ +Consumer | Documentation php-kafka

Consumer

asadf asfa sdfasfasf

\ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml new file mode 100644 index 0000000..508007d --- /dev/null +++ b/consumer/index.xml @@ -0,0 +1 @@ +Consumer on Documentation php-kafkahttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/asadf asfa sdfasfasf \ No newline at end of file diff --git a/content/consumer/_index.md b/content/consumer/_index.md deleted file mode 100644 index a24157b..0000000 --- a/content/consumer/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Consumer" -date: 2020-12-27T22:09:37+01:00 -draft: false -geekdocCollapseSection: true ---- -asadf asfa sdfasfasf diff --git a/content/consumer/consume.md b/content/consumer/consume.md deleted file mode 100644 index d46bae4..0000000 --- a/content/consumer/consume.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "consume" -date: 2020-12-27T22:09:37+01:00 -draft: false ---- -asadf asfa sdfasfasf diff --git a/content/whats-new/_index.md b/content/whats-new/_index.md deleted file mode 100644 index 5f9679a..0000000 --- a/content/whats-new/_index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "What's new" -date: 2020-12-27T22:09:37+01:00 -draft: false -geekdocCollapseSection: true ---- \ No newline at end of file diff --git a/content/whats-new/release-1.0.0.md b/content/whats-new/release-1.0.0.md deleted file mode 100644 index 2fd053f..0000000 --- a/content/whats-new/release-1.0.0.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "Release v1.0.0" -date: 2020-12-27T22:09:37+01:00 -draft: false ---- -Initial release diff --git a/static/custom.css b/custom.css similarity index 100% rename from static/custom.css rename to custom.css diff --git a/data/menu/more.yml b/data/menu/more.yml deleted file mode 100644 index 2bec72b..0000000 --- a/data/menu/more.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -more: - - name: "View Source" - ref: "https://github.com/php-kafka/php-kafka.github.io" - external: true - icon: "github" diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 1262e8e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: '3.8' -services: - hugo: - image: klakegg/hugo:latest - container_name: hugo - hostname: hugo - volumes: - - ./:/src \ No newline at end of file diff --git a/favicon/android-chrome-192x192.png b/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b78c721c0de5fa9d479bdb84691891216cd297e3 GIT binary patch literal 13669 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 literal 0 HcmV?d00001 diff --git a/favicon/android-chrome-512x512.png b/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8560fd980d6a7b364bba8d2d0abcfb661bead6 GIT binary patch literal 39700 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 literal 0 HcmV?d00001 diff --git a/favicon/apple-touch-icon.png b/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..af863dcf03f6c0cf1fd65f0c3b7f50c7e623a5db GIT binary patch literal 7269 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 literal 0 HcmV?d00001 diff --git a/favicon/browserconfig.xml b/favicon/browserconfig.xml new file mode 100644 index 0000000..49656ba --- /dev/null +++ b/favicon/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + #2f333e + + + diff --git a/favicon/favicon-16x16.png b/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..59ba91154f673d17d711105f6a79a3f3fb81ab81 GIT binary patch literal 879 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Y%i0U0UtFV}9k>)d|Q zsr{rw`zeR^(?CJjj#G)VK(fxQCxB$q>H}wx96n0dmhcf;67+ z?mYuiFyUO%?8{DVr<~hQfpuN2S$E61#iryx)?a&oLA4;!2a_<(`we-1uFjk|G)o=4Guu>xt9d_1v6+@ ztk|o?R(t7E4eRvp(;C0k>t4O(;d1**-4)lXwX0U{ziDB-cmEByeXCbhT{8Vsp?M`N zH07Uq(~rg(br;UpvZ$4;I=He}HTJG-0?Yj}J^&UI96r1s;*bK)MEm8AbWu zJ^?b=OFVsD*`M%;3$id6Y_AOf3N7?>aSV~T9NPa}sL4T~IeZrDIj%)X%-rAZ?Oycm z_x_1@3LkvkBj#Paby?1~ zEpPY|>VL4GxR}3co>F^8PEXZ7mS0u7Kkw~-e){vh`TBe7GmJF8c9sh^0v)Sb;u=ws zl30>zm0Xkxq!^40j0|)QjdYESLk!KW3{0#H473dlf#k*s@xTO#q#-vyB{QuOw}t~} zpZ^7FkObKfoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`ukRY*ihP-3}4K~a8M zW=^U?No7H*LS{ipG6O@!oX4MdI10lwG*0=SKI8c`h=Ey|TQ8YgSXtP6vIw)Vf=h$R x;S^@&%^?b>Z(KQX7eL5hW->{Sp1ABUh>a0New zAPx?K#*!c?pbUaMm=#Ssw?UA#eS8c#%mTPNB#@i=4JMAnn0c``Mf{K_H}MKc}Yczs}zOVu`ys%p!H>HTR1R+pY6Y>yXsbX!8v@cX>0TYA>QKaTIn8BqbU>=fQ z*~^!kVv11k3gQEN%*h^0Aqw-yJQ2Ra#HrV_>I{|~K<0TC46Rz1D%J*rqY$Brbp(+L z&?#cw!D?MF5Xw`hS7}+b23DOB)Clk(Re{1B4OD~(*c0+pK!qnaQ$P?A0?o|<47Ebb zlbXU$Xh1_!#2Sm%zg2vcfUg<^4JJ#M3K3A_(RyR($MTO!j5%^Wy;cvB0TgDf9+nQk z4aUQDhENgcGs2e|V7ZAa>Dyu9qFjjqt{M`^%!jIVq4}0>WL)e8kuw|3e3>~F%<@mHQT~t88g{ zGThWEUgLbGXLzXl=lQD z=CkcTB(?9kZQ`1n6Uv{ClwQBl^b8(ry^}^$rKWcvC-U3=xK=vx{4DzLUZrzYFI{M$@@exEfXs%8gaYfpE}ar=@EWE|cztXDg7l)q&_8#D+xb)Cq8y&y4tv1^kRJ%0Si+s*A690{p&-4|Q02wv-2e$MqY;VsS= zgI#wa>U5~MB>JH05;4f*6L->0Nm=lGpQx~ieRkQtSA$EcOV^T%qGSDXLNYx!O-rmw z!%3=D8Kj*X{M|^QPMhSCA}`J0of@&1rl9GyXgoZyWtO*pyPHcqhZ%7=JerJ5u;X>!enS$)uZt5Qz!`BKl{1zwFfRaT84#MN`IKTCHKl}#r z`pp5jjR83PI^6mI9B$Quxb*)JG8rkf)MNioNF=?{0m2fC!Y)QCo12_Pg}7X2b$+-)#eBD}F9#b)JoG8Q%JRLXAUa-}^AM^s1oLt`F`*i#{2 Ql>iASGAxd$2uaHQ2SHoW`v3p{ literal 0 HcmV?d00001 diff --git a/favicon/favicon.ico b/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d2f7d81f2b2d8e9afab3333e1d832f68e26bf96a GIT binary patch literal 15086 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 YAu2PI6bp#1icdVmlJ6Bnb*S$D0O7Dx-v9sr literal 0 HcmV?d00001 diff --git a/favicon/mstile-144x144.png b/favicon/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..da1b7bbb72fbaf95b42c7ca8a85efbfbca4d3600 GIT binary patch literal 3975 zcmV;24|wp2P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 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 literal 0 HcmV?d00001 diff --git a/favicon/mstile-310x150.png b/favicon/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..3161f5d1f40b4cb304978797b23f2661dad454f1 GIT binary patch literal 4298 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 literal 0 HcmV?d00001 diff --git a/favicon/safari-pinned-tab.svg b/favicon/safari-pinned-tab.svg new file mode 100644 index 0000000..0c88193 --- /dev/null +++ b/favicon/safari-pinned-tab.svg @@ -0,0 +1,38 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/favicon/site.webmanifest b/favicon/site.webmanifest new file mode 100644 index 0000000..934736b --- /dev/null +++ b/favicon/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/favicon/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicon/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#2f333e", + "background_color": "#2f333e", + "display": "standalone" +} diff --git a/fonts/DroidSans.woff b/fonts/DroidSans.woff new file mode 100644 index 0000000000000000000000000000000000000000..9ffe2f38fc6784e8a2f85ad2bed5eda2be5afb44 GIT binary patch literal 92812 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 z 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

uKV$Td6w=! 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 Q+17$$BT6N_Rx5!209wR%3jhEB literal 0 HcmV?d00001 diff --git a/fonts/GeekdocIcons.woff2 b/fonts/GeekdocIcons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..856e619936f7e29c5184cf65e859f21eabcc7316 GIT binary patch literal 2876 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

09E7K+> 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%0Adx?p%dKuR>Vai7z_%yDOkd0 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 literal 0 HcmV?d00001 diff --git a/fonts/LiberationMono.woff2 b/fonts/LiberationMono.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3f4bb063748877e99d5c2c91c878a834ac9dab2f GIT binary patch literal 123712 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
    1}B266i$Ihu455O4z84sv9VxLOM;1&qYX;Q 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

    Q}LUWZ{wbP=EdHR`_!hD3&pD(c;;cV!gg0oKU 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

    ?!q>cpMI?MHx2w&>L(8I;f*87C*Z4 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 literal 0 HcmV?d00001 diff --git a/fonts/LiberationSans-Italic.woff2 b/fonts/LiberationSans-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..86f6521c04884f81c9a48e50e3ae383b3aaa3ddf GIT binary patch literal 139304 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 -i+FKf zhIJZW&6{@!KA6Eq-e6ZO*LdtaFCJrZQvP%eqY|Ar_|nMUyuXGU>UX5P;ai;Z5b{iE z@Am*|KUJ$uMyMOGQP?43V7+W%B}$!r&4L7A(CZR8nTH8NIYjZ%HkKOaAt5SKM78U? z)|KLDTmwKf8h8}UrtWCQLdE=&Ph8IDJ8~oS$|;yH4+K{pr)GnQ)N|rlCfl@r9XU_+ z;VP%#Ao3xp?RbqNeAV!=?6KaviqlJ9Hc2h_X;`q1ButB%bIc+nxx+)nu68SCnHZ7w znmW;P4vs)|F$aUKs1)|Wa2YZpvhy-hhh5C}BZrZ2Y^`WuX2LdYy4c>pDi_=a*w&X3 zm%hLa#NClx*c7a`%8swF?F#qAF_rjr5#|djXn9C23(1Vx3-dC@ID`UOp2RZeyOClf zu$`dtMjt2U2+E|CJR&=>Vz!$`RI{Gx4|)||Cy{_K_XI!5nPwbkYknvMcd%uCE&tZQu#M|04FjA^Y{6P(zW2r{HwoEHfz)Pb*7ex zjKrHE`yfpGMwN3u3Au;=g!l7W!m|;evKcjE5k;!ux$g%cdQdZFIQ~!-2YBUL@>m#K z9e!B5T9L=8`XO@b8p%oRp{Z(~C88vhk{v~jBc=Mh3=?ygA~1`KDHC&%YNjY|im+lL z+O4-L7*LTpnR|9K4kbciMu2Umx+BSQL+)#&K{hLaD1u+s5hSL-I08!a7X;u)4lWWZ z5Tc|2*8=i?DFFSys-f*3qej|{D2f{`i}@1REI~N^m8#o{hl3PsN>)u$3M58$FpJv} z8E2R%A3Idv)Ux7kN~l;2d>#l}Oz4#M5zK*qqczw9GYF=adhIJ!J*<;5$fr4%IwiOcG}RlcZI z?&q27nqiAvzf(VT{NeWF?HN9B%v$deN_flj6nMXIlR6Z@{f-&r9GcGqB4rP%p@Uot z0)(jk0?AbW!cZv0JcLeLxAb&|ZiJ#pkH8;jN4RGqRXBv0t4|c)8H&nFmTf5Au_rM-cJcLx0Z9R%oQyUvhBlp= zV#6#5Hgy2*!+hu-7JH4dAA1eEmLfIJxSYXaV&|8r$wgQuejqXdLrtE4%P>(dGE7Sk zs+2hIuC$_3$&+`SvK+PGLI(X%7WazksJ{Ay65l%WRe8tk{}wiNE+L2 zzt$h=lTzpw#l>F6!36KM>FK78$(U9_0UMlI!F-&kCIXs->d}j(Pg~|tVo=)-deQp} zy6Q@nf?i5Rfn+z=9>-Zbx8FqzN2TuZ-B*LI#mD2>DAfeBTxz>SiWT1}h6pOxR#+>= zw}yp?@ou+M=hwYjpTe@DXg@Vn!$T~+xbyEeU+wfB5AkwW_W9}=x6&FTq|92GKsiid z^3Q~zQ3|m{B!R>7bOEDCtR{!Cs=$QoZkMmv72OLk{;Ka=9P2`$xriigg$kT|(h5GR ziX+WT>x?+mcZC?zU=&)&H<@W;bc80CBIiB?;&tiw{u=gim4pJ`Id`&bQ;wBHj2Jnm z!t=3411SMXrMJ$7mA!Q5?(-nDhP#kP5YLWk+(bPUl*}tN)!M?U+m zZ-*O`y*FM=^pO1A)qvgXSd)>5a<|NSUd3;{xW8pzY>?CPRYKnPzrnZTEp&LBzAacc zMhsviBPGqq0O4i~a^{@7Hu%mdp9Gwqr>+vz8WYRKQ#3#{UnrJsbLAyM$M?DI9hvKe zLP^y!LjDjWM3jZJV}xAni^ys_P)wVVRjZ)qVu@27{Mx78FdJ?ktj4NzaN@lsaYD18 zcuj!~%?%bxM+~ihCafzK@t5u;UL!2IwbVFgt5C=s51pHOk;+uIE^w@3dFCyW z8qCE3GF~0PMVQ2XFcYvGz-1mp8VYmi6Po#ji^HQyK3*VAj00o)aTX5$wfuB(e{g@E zDo&gZIw$Oe*1tR9ylh@6hCWB^p30xvzUNBJ_E z*lphG!k1uwv6d&nrt4ITdP;GZ?|JV z__eY3u6P{R<3CnuFT3J@XTaXmA_PkNB26BoB$1x*W=mo}t8~*LHFSHxiwIH{zFzgTwO`J|b}!?e@#W(oU=vdyEQH z6pp00S3i}dJS!g(JCq%Hm7Gc?L1b%qaLO;;+S%`mI@_1W$c`Gc|2#R-%9@_rX|%l| zK$lo%>0w_Ka!*fL={CIdW;Fd)q+`YI82+WRBt9)t?X}+MR_x^s;fM^@$U~{) zw~0%X6h8WA>g)qY=r8~!Q5a!$JC=(vtq@_sH8*?iMa=ggcb|@m1E;Z6EEAjUeB!`+QoUxpWvn5W7ri@|7kcU! z_$~)EL42P|+;NM__vnI%qDh;mE7laxyORMfQa`ZlEa8JbNv+9qjznf@YQy7enG~aJQ~mJ6BM0HPl_p@tfX~Oy_{azyxl3C(~}w3=hM^K zMdkGL$!z3w`IsKQ z|2yDxnr8pT`1rr^xubcqNO)~+Y}FWUdg*H%_0&nWjG;Y#d$7EF|J{V)%`hDcUN`?1 zbRp-y1tC?}LBU~^C|JXGw9XgiJJFvP$AsZA+fF?HShI^3Ke%v^nZv)p3}P?L_UAC? zY--0_einxKIl@1*r^<=HLV#yGe5S*Vv(r&1&%AH|^@-kOIvTBj z^;!R47~wyTtRubQ^&THSK|4}3+^{#A5! z`xHkZ-c-SF8i%&D57~3(+Kzb)PGQwra=!BZ3i!~q0XHVkdyNz{W~C_FHkyezyY&=mqq z6F|vrkGdR<6A>8fv+j8<{3ykNnbrv~G`ssND(OaCy}uVWno^Z3#B+g zCzzwy5#i4QLxdNiup!G+Si|}`EZBz|El4B=SQ};UIiQ1f8dmw^b9ko{KWM5Wcj6w@ zYxR0fE&n-!E9YFRXHI4O;lK$SQhkPsS7?dU9`=zanNgkdlz$5RfDpJT{YGnYD<^W# z&Rb}AV>&KXzcp0(b{Irv+SK!C8~_Jqrt*&PR~6~&;!_igqJ|4jz7!nl)JOFRof!qF zFY9>ZOO2HxS(Ym%T>(vdWNy;>0LFuQ#QBy^JFn4VHFE99i3>EXgI&289R)2@#y8Qg z>Xd30Z~HS?C@58>s>QZfUcX#tRzY_`sB{RvyZ^7BmdRbcbie-e5T{CoSqy=ACG-@U zd3{wk#9w-vl|#6mg3zqR{oX@cmeX1tf+l$LBwXx9ELU(oU)&JPc!B1&fNETx=#HKt z=mgyu*@A7;s&FzL^^QEB58*?6Q5A^lxIh)zwh$r&M-T~N!0JG|tqW%LkyL~YEz1xC zsd5b0l?_2RvUmGXb*V5)v79h3GT^@mIK-_+19F@8FlTrw-Cx8;Zpbg06@D0)3gj_X zXVvwAMMedEA;4gY*t zDUNH{`wzFW3qQqP0U3{qR_S<0{i0{*L#f2y_aEAm*bX~E26q!*lgg3Y*GR<@B+{O0 zEC^MdJ>Nzm%Ck+?J*R`ehx`YcKgT=(O6`@Xg4g`6SI<3tbk=&a?Lbp!qaSakJ|St3dZzM6HShy^AFI`xGHBWYAQA} z-Yffc(rl(0%k2XX-~f}R&9q&|ZVS6x9-JnHoJsjK?6rW0grvKA;5`mCA$vxXdcB+e zKTUWJv`gu3#1?8I8cD?QMj~p(TLcs>w)B*Gg!Aw_-mB5x^v$BijBi{0<<>B| z)z__~2J*GZpS&*j)Z~W#q90Z|l#BH2XTBi}2~r9q#Y7dCyDQS%;C{)eXP(ji9DZWT z80M8YuM1r)GS~0!@1c{sNLGL!9=hzkcOS6E)K_@#MeIxC$kP=9rQGfn99-DjP!MIW zCX7H={G!Wyvvj21w)%N@#^@b!b-o*8i?8+bV=Q|bMDR1S(-A}%`DVfoTuMRRttM|` zt6MTd?YVl6BdzRppj);W#>BRvVMvwe==w+sBsYjk%O2o8 zKqJp92}D=wE)RLHq%I+DQ3HV8K(DQM9FE7Jfa(_}gBBJ=F~{T08QvE({SvRz+g5LR zq2aH-Ci18XeBPsPE(N^$O^6#7)kC3QJPUD?HyYw5zI^_%g|L>$WwLY-NHv3&=(MRi z%R@sg=CHtJEV!s+t-w{~Np7H8s>MUTygcOPOa@|t85alY;%?j;UK${QqWH*%!<5p8 zI@HW3u)Q4iw$%%kYuHD;INjCGQ)P!$l=2Sy8a2M^l+fEUU5}>M)}N%S$|ncn|P|;psje z7Q}FQ!Wbf|q>w4hq8ZI<`@(#olwjtP`U|g+n;Mp@Q~1#8iK1gzt9ScFYD-@+`A*l~ zQ{OQ38~;`>!2G`;RYF;gSqq^YMUiASmy3|aA`y%A<)J80Bo=21SgpUJIUToEXjQzba+URY-CJy^^QFL#StS(k%#<-pGL6~7VN^dp~u^)y!YOU46v2IAR{H zMnT2!Zu8x;izs925f}Gb(2ilat)2<0Mr*5I@65G&#PyBN>ib%4D(?;Zm1RU-^{{XC zrjjt&rf*9OPHzJRc;kA=C1*;_1{8_wnE*4_Eaa`ZiA7d^(61GpR|{#6=J1NZ$D*T0 zu)Gp`PT{zTS!4#yf`y%#S-}P+OT?2{eO@LigBH%(>=-aj&~lgD^$ayvD+4|}M5ht? zUqG`7zysIJZH4C#uh*Mb+%zR<&r^-kPzrjJWtC?}6T6)eW}yhxR$m$(lapZ!$h*2+ z)_O?4_kK4|>s2pqiVA+lOYwwhn{hvNzw`0W(Gq8=_d#RI>Ba;B0RaI40RdUAqWP@% zX*|Kf!NI}7!NGl`O{`!ldmn^Sm=n<2zm(tgA4(Q4Qgs%1e2Yy@JlFTE8T=dCVSq*N zSJ`NZuz^oPjMOH%!P(4s(>MJ%Nc@HAWUdP(R8q5{CaERD;@2Cg-6pl%b_lhtV|beK z8zCta-=% zLc9y;xHEJSPALMIsc%v}i?)ITTP@0X05cqchjH5+Bh08;Iww}w%I*MIIV}KP-S>EmP2IV z7T4LXjIq_bobvT|yAg4aTmEgaL^Ncpr>*jt&FOiA<9I2LI}Sm}0%Ck7;H8z}lMZ~& z#QOz*dO5`NG}ag#&8-Yc5$S3kOOgK)ylES@xve{BQ6>prbu&I^V5f;j9OoNOjwGGD z)7ikq7`@*lw##Zm8E>}*Z8Frtu^R@O_r&GAYg8ad%mhDvMI{qwxP`m z>|lAbvYO0iA@){veM*Q{b=h7jB2mMd&pTBb$!Jb~XPD|#6hnKPW@xXs9PK{C^?lSS zzlK3zAPBCKTZ9#3_KqV~uV6|TP@v&IsygIW{7)B4H$8#H6z$Ix=>d4%vgYtt)E)=e z>~kE!kHYiU*Ibh{Rs}~Dzi54~pycGePz4N6qO2IhAGCFtXPO+6IF(^(l)ZTjs2O$* z)|g^JMyN4=M#*4722(yrF)_6FP>l8jL-0M-j;=0wYM%l4B#e7s>KP=S0nk(I-(S zn*wA%h5cN!c~!0W##ALys+WfIhn<|KXVZ;2e8xWQs~e?)ZF+YjMSg=ge~qmjZA%*> zX5Kre2)0&Q1r))z!uhK#1Dfn^`A%tOeCk9%oek&t%43T)lJJ+d!l z(_HO}BpyOg$}sF4*c$-Cp$ei+b(uSN8BOPH(e6q|ip_)6lRTK<>;1>gv`y0cf?{x} zX%rXD06xfIcz8FDwl*?c&aA=?>Fz7fk)L!^Zvon9+-bd+QNA`UQ@g#S4r3gmDRkm@rbA@T*hQ; z`kQ;SYEYGW<omq-_|kLIK9;D~eE?M7r{gJlw>*GrL&QptXWXZUMoq3@(q0n(1CDMRw)1m?v^IO}1^}hE_{yExWS) zMQfwx9(FaRf*+PH*&=E&F1fhhhC^E!gEc|s>ajv(?63fsY_zBYQgUoK6Y!!u=Slb` zD@#+**su1JDy~3N5|tl%shTvqH>f20pi)>8?-4g9F>8w}L~&m{ciuX`>U`Oc_6PST zqsP%JR^UBro%HW<3`1W|o#*#K@U-c)pEkx|$D@td{_^$Ht?*tyZjJcFHW3z$C zkLi?`a(vxe6p3VYdJvR@hxcREVcdor^D;xkw6#vF89O0R;gY$vqF@!8IOk2=$2def zSIxFOrU})&YcY}MlNDP&q-T|oAS^70LiA~)ZQhz%fv_OJJ42Dai4Zv`78GH^0f(0? zPZBey+Ul${4>jvj=lWbHNo=fDiomaYU@QX8hFbnl75jn(w3gaP>rq5N1}$j|V@fMM z%2>^ne?=7mhU3P)Ob8xGB?JG5JGglYV7L%oH=O;29<)`l$g@JMeF~&um582aZlw{{ z3lI~(5Z1zw4t=ppR<|oeU;Od0L2V>_{v*PLteY;+upU>d<#L?3D*hOcyJ_05eS4!u zmm<$Mf*QI`qB;tno|uUWOtb<{n-oW4)UB(M-g*h8yGrDwtfMgjW=U^vuZFhaYr(sH zr1fKtP24PQ7#%5u$woH+V!xDkiE1@6@8cGGisr=Qt)}2Zl;Z@uiK+dvM-U`u!Zj)4r93qE<(sM9GiCoxzX5w}A=(WH12HCGaux`q(= zS_HTxbW8eCO_p7(^nj={>_a!UyWt`U3P~pgbzhetR}6K-qn?yMnPc1Dhy2EpCT=3B z)O%8(s>V_FQnKn5=7^eLTPf}dk?9ak*u8a$M>>T_Lc|gKhzWtnEE_9Ed;coxZj@0U zF^<48Jbhm>ZXE39J(i>sO4+UYVSxN5e}4}J-S_=G*EePz3S;mMT}1FtyquO1s_?Wc zilxA^Qq?B&b|aTn*t)9HiXxj*_~=tA?>zDdNw*F~?10?wRsKpfi}L@=SCYnmIUe2G z|K95k34HwekyOL41vxB^m#nU?HK%dKZc!{NspJdJD6Y3xk`{tjK6Jx=kQOu zTxD4*sM8v-__Sq8_x_0hfhx}@(V^(oYl}yb*tRCvWYRHu}xfCOOj}8<*FOCG2RTUo@pv1-oRp{eML&sbY1T%ls?5XpH_9{jow+!L#SkWCX=IaHjaHAMXmYf2ry_z zL@CSDCKS(=E8Mk|{rbv=>j=N&Pe-3V%qIH5l#h>Fj-33rU_fotrbn_Rwet>Sl5*Yj z{c33X=7w9s@(m5(wu+h%W*P8Yz%9W(*ix3PBPM0qvAloY4sC zjVFlK-I-Ma-^p#=F_T_lR3FBJLhg8Sy$om>`wUFz|Pp6zH+Y@K_u4f_fa0WjIna)qW!T?y$> zc{Gw~9Sxo%x4gF+MS6t=tw)3sm@Z$4?}or6$ejcjQNzC15>c+0bCu^KfaO?BByAl+ zz{bSK-Z+8V#~0)QBR4f-(LaA*JR$WQUzNi6H!% zQ!<4w5SOVXd?U1wt&!Cn&gqkkXizT0$+kFA8B^JuS6ekIRTL`C(g_KwLgRQ*V z)rzR-kLC5NSIZ-M)LQw(7+!bXZMXT$Kcn{txgJ`NI#y$F0)gGQH(u*WYm9 z*57ly4vN3Tj&Y+5vC!H)STMnd=dn#=ubx}zPM09jO#(w1CdW|iW*_v|W3J&*hKnyL5BLRaNZ?9&rH|MFEXLCkRvmF+HY>d8N#@ zVTMI)zMoH)hk{+m=aJ7Brj~~V0p$*9q$G5XU^z7pw4C-S+h15IOl!%8l z#%@q3qkH}DTOFXrD~g6;YWch@n^|OAnzSN}kPQXN5)I3{=w%sRAq(>@6Nb{uP>v)E zs)AD(1T&c#ab=j{RrZP@j;i|DG@=^B00JX_*aR=B0}bzb%W@O_0d5tMg1h5A{b19N zcY|%49E{H}il1kHJkrxF$NK`8X~z9dHx5GVcE%9jTkxac#mBn}o-K`x9u?i&JaU32 zhwas_ZTC0h^V^S}gXQh3dkWk4k=nkS`1ZaR_bQ)mKNAm~v?7qbXxp0-?3#cHZo!X& zoBC|(LOYG%9f-kpw6Bd~3w?n&j%$<>N8QmT$4JK&oMDGuDT#qD~ z>l3C2-oK6ToA*RaZ)YGv??}KIicsJCmUoV*IJU|ZLOg8PQ4afNW1NKVi}kru$qXwD z;E&3>hm&Q5Jz~pNRthBOeRrVF6esf$hxZMynAcn+Au7sSWt|eg_c~vfCUNHCm`cgO zj8%HrQA5K$)T;-^KRSnJj=u-HcUU0$i})O81KB7Y*WuJv;SONggi5O)FVWB{_ODn}NaQfwXB@wuIbuuTNqz;Xx)!yE&HwN<4g6anx)9EnMQQ|rI&<|5eQ zKllC03azpjt##OEecRbkNFAw|H<*qrayww7#iV(kedQZ_=I`*~XFqGiG&P7XGy99$ z*kG^9_gA{I$svCyqh~6!f=E6KoHksMNwAW#5PnhTwOMW#@SWIH)w1i{fgTZ!sGSJE z_`yW$X*|6#jyd?dH}blw1?3Ojz~;?gr`G$b4iUYh6yMkX1>CtY+>?EG7DVfmjhzcW zy)+rz!0H8ne2l~b`fx?xfHbQ0PS5tE^MjIUt_fx=%IF{mS7}xZ--Pd-Xht7BDI8Pv zb1E%z;4Sc*(gA?OqA1d@Mjn?X#!#G`z8IJqbAmCm#kacC37$uT&U!uSh#OIeiV}i| zMAR68Xo5#T3f6JM!|tkdri$VQN;_bsv)X|Rou$5)?*NnRKe+x_9HJyeTZjk0a!5LpC6>Trnw)5}sW>_7r>{m?@ zofTqucSZAM$YOM5O^4s8lXJt$g&F3@CF!VBn@*_=I|6sGsVrZwz_ zc9BTVUEgP0DlDX}8$EJ2Of-=OEl(ja8^*$MwU`gMPSb%^^6-mpc|iQ`|77Q$R;0A; z&#tu2ez;;q4)WayUa`jCxW5}u@96am@A3ZI%zrG3{Hr7K@A^y~tw=NQ=_mAMz+8qI zmrv1?Vs;ZN`WyB-dF~?TX$8V-gk*gY39Y=J;*kt&xM7RfCNM;YpsGxxP+3SA{P79H z6^Sb5yp~#Ff#-vE(ggd|Ie^}uXXApqzTeHkv0mQj>Sv`!gpuq*6_p%*6tB3ou?7b@ z+r$sDYv=O+ch%xYuQ?6E=Y7;$p)-K43n-l?ZG*g3n-&@fRxQFXREsN!gHTOsLr{}E zrri}!c8ycg?5PGTR~DrtniFSvh|*h8WdUev)g*MVk5B{H>)c1z=qsspYPldF9MehI zq|u0|2}qJ+B7&^cBKQOD`H_c@FKSDv%q>aBdIQ0`lb&Jz=3{-ro7KUmx7(F4wGF7( zo(a1}(wM+yk&L)z(^D$_&fwC{xT@;FTGQ4=SzIZ30RvYUn`r0ct4wG`vn6+2I6plP z9WdylT36V<;UPlGeG>GIkYc!(TIMz!!`bB^2}rRxuYSQJ;O|GA4^LpPavOC%4>RXg zgSBYJI`{in)d*E^+E|a0H_A6l|7^P9FEL551E%jLHxkUkfZt#Zr|VsHrJYqc)}GW_ zS!>fZUm}bs(stVVjKse5nb9G;d?ad))h6qL?uKZL z0b1F{5G`L)tV+_W5&?D<`LX&Bt$&0}v7U=5U-7%O%;LRAZnoz!8tdX%we9_>7`MEN z!>8;+32?pIUpcR~UUbZet{zY1#)dcH4J~$_shZeCF-qqsS8ZV~-Kscv3>!AlpI3-| zKq=`fk`gH=Q6~dbH$ni*q_=IgV3~8}6vz#UzTSE|B%xHMk+x;o_+#Pzi~P4(Y;eCUm(;Q@$!-wCUM%TIYnU>b^czelNSirE5B31y z>?YVvZCc2eKJrn>;^AC^g?Ma48Im4|DLs{0PbN(wQVtcH!AdB3a#LX&8wIzTSZ|YYIVS7+V zO=z9gMM|fl2DQ;|7%*v!s4^5oJ$w;F+XDcf6x^h$QhBf_8lGh_y&NP{QNI zqvOh-(G-{lZEQe=8vjo2S@cd4<3qIeYv1yRJrLsrE=3);i^Yldqy>>?MV&)Ymxy>C z>8!EJDjrq|N5ifKUB_i{2m#)73WeELqulQy2+KKmbT!HfY%yM-0+rNNFPDzb{U)@SKt362F@ zB-lqPGrez*@7WA5x5QML@gLJM)t=o*Jac|VS2q6482?9QC{u4dk_ z4S$Ci3x3E$__WjjzNc@YAfNncVmoI$PeYkDlvM8t4X;1vbCdUFgReoUhk?r33j2!i z0&irLJCKWi70mkyj1ED}T?1FJX-15hwC%>;rzl@aXiqA|8leI{l(E)5@8_wku9T(D z9J2PgSh>fKD8ZWYWpsrW`2_ntdpyj65c|1dSnlje6|WqcJ?yV6nTHGkhl~qdHdh8m zsZv7griF}Y^qy;MJ%7J-$x(3G<(Rd>9YMSu^NGR?l9Bf7U^s+HLm&EZ9#G@?Vw6+f zw=Vh6ihZ|#cgorjkIN4P@r!rKrl$2P+kcp+D&OV13{1v9+7J0~iV4Hh=xBsEh6}7# zLyZr+E?p!>5{uUEiy32jc7@_MJiX#-*-_Yl)_?ZKZ%Ui{4qNM92#fWMyKVABm{_q| z0LKNH9c1&6pt_Ckw%tZ<{N3~ur1a~<@|D3e18dy}N4US-5W+k0=$3A34bjt1=ftPQ z%FmiSLgKnJ zE>Kn?OIBx^3vnMF#(nf99>09QC_=V5?smuH=9MGgz!ja#>eq5XQU%YmGZ$xI$GYQH z7yx=3)KMKPA?N6MIL(_Yb7P~S@;mE#X?i6kvbY-!Z$+P)^sHZBgpOz(6036egXJJC z*fRn^bn&~Bj(~Agu=3$ybOkK8wPKN=Pz~yG{PduAx3q+2X zf;2BukTwPwA%!adYRo7I8yIQ4i?oT`7fjs58dheqhjQFP=A8MonxO;8eCHA)6$i~; zC4E}?9iuLHHp4pHwyjHW+k@Z{G_ZxNLge604fzyoaC4=puY^;BkrY6J+c+PugJHQo zDWT4AGgSVwqA5!}TIZeze1ESiaZ2}m-ZSa}7bTq&jYr5dMx1f@M7@E@HsQF2?S8-6 zY`1lW&!>F@p}uW+)Ezj-LH=`!7E&T6p9f`!+xw6A!^g_g(fU=+v1Gxo-p!AcdV1Bg z7q`UH6>(3c(%20alQ;2^teJ2rrh7nF>EgbLds7xg(#&SVLX(_^z>j%W0|j^09xGEW zh%z0!7MV=$GP(TNncCG=Wu03Ryx(LGle{vC&Q-j%5q%X+gbfu)mqbm?7`W%c2N5cf z@)#8c`%B9*bPPoGPMp>#mduHs0B_c2Q}`E=&bla)TGJj0o|*|Rmh5Xh5aLf07A`L} zl`VUU)jzvp0jN?ui*38TJ1&Z1RR;A+Ul~`fY}(4XfiMf283uYnRVr;`vUR;_44X(` z$3n7w zTLQyO-pAX*LjEXgKNQJYwb6W~t91x9%!Dcp0(P;?Em(8JM)Ki6zZT((^owJ3nDW8iiibhGK5_dhM+o9A(6Cp^A16l zr$eXp=RypL0GJpJbZ*w@&v+!1hBH4}GLXF7U2wuE%kUVZjd90)S|70^qLQH|r7qg? zIVdegO&oAbu-ms)cE4<4zuQ4}B>BA(9BeOR(wtY@Wy;H0RtaKTiD2Zw#g5D{UgMhxD+#lcdm2vg zo$v0@v3{olUR!$T+IHzkyIIfixcc-2BL}c6s1@AMXj)EW#8R7rHGjzRj*8mDC&UQ__~mU3h_~FWP(VMkK5cj6jtr zWm!d9ZH!GCOG1&UfapJ-djOTc!c(;Gka}95_Dbu5Yp^w4nnw!e(Mf7+BUQkFqUJ&v zMkI0?2W;Vsm}r$I&XS=JFoLTaEKV+xRE%Pftp@+DnP*j#}&023<2h*Y_5vJJ7f5I6P;Al z6Mb}he7MOAXVnDy+_|3MSe1~(OZwZwdgYVvRS>kLCePz5+7N7Tmyh+Rbx{aTHW2ZD zn@BnVa+TRy>#UC!0L~n{-I7zgZeJWKcUaUkO=6}C(%RC}^7bdpjE~(Tfu3R>JLpDl z7Caof#A#>f&(gY^{oxD@*Rpm)?uhd>Lu``1^CQWR5n}*SbM~bB7 z1-Jf?e`4^Qln9X#tqn8Y5p{9)2qA{qD9mR8xIT}DigYnN6DzIfeAA63;?g#MMhkff z%M~gFs0eAM^p>Yu+WsEbQ!ADv80j8Cgoyt-xuNKyDd7~z7G~Rn4At)StT4if6f_d{ z$}6l)een_PO^ahbR#o0%cb4+LZg}$wCmTtT|86rQsr0mb@}*ytUFUCEjN2O5xH0oM zwIhr#R6zPGK8tK29|>v%2CV8WkaszdBfWwW7|ZF(i#_k=nLr;?1q(SyA(oSm^rFX2 z(*$RH8k(mDHR6O5mLtjEdzGiIM&(P%( zCrJdNVI~sp3a@CbQ8w78Kvkb}-t3WcanRLN<7uRa6AnZF%TJ2bLszUMj$r!x?|M?{U8X4>X>w zno1%GhNUn@hsg3g+LxBDA7xoBDSCY9BY-h~$MZ0m$PeRwBSwn`V>B7F^fnvmeIM3= z?+-*Gv_{!JyGzO&30NwRz7w!(1CLvCJENPN0&JhOM%>^+qYHe|Z?;+1@vcqa_<7@* zKcBftF*eO}3%_4{hHuLBHZvyiG=XX!X1cB-%y#T|C~>e78_%{sw5Im12(7~Ik3ta; z9slo&1IabbL)ov%k}h4B_HoQOrw4d{(jG>8W+YiXlYzC1{4fgN=_5?JQw?I$Jegvu zQkNZ4{Q=k8#D(iM0Pc#T?S^TRd23MIg%|s+Gt~=ZF)G9ja^<4r*^Q8ts)R8B+*!uF z0OnyBOA63iSS`@lJyDtxBxF?-57C4vQP#UGI^2F>bj|cZ)p?wMQ z^$X?NF6eU35)v={mTaOngPTm|;Ivq5R*lE@JR8Gb8DUb444+2IS0e7BKD&p@`f~X{ zLSMeS`{s0ie|Y7-@z@Q|*78?YkX<6)rcaKErb>)v1fgaxav_dgDfTON8Rf|%Si*l5 z;9SSQzU+u$qYi>!qI3=h8Nx`;f}J&e0Z$fWPrhBFPD&{(lzg@&e_6)Uush?Sv(39FiBdJ)^iK;C`VyKH!~ zbH`XT(kz-crhRvf!eXv^mG70FSGZp8c$w{`*4s#m7JJKqW;M_Zd6@Scu5GhMo-YN2 zp0^?FpHtm-F_t{o;n*n_juJ@;D)dA?62L*S&)XeOiZsiX;|!j?Z!Du$4l_!`NARJA z%hlML-Npf0XUS#FK>^TpE1e{9z;i1lwST04rUR)-R|Q6u`==Lyc7-MiJmYz1G0!bi zYnpWpbr{2EnUw+wdyomjmes0y3oorwLO&zr+E0oq1si8VEO%PG6-ZDn+9@cJ{G0MM zi)m#RyxHqB?RNeOq7~KrWl@ALiar#26zlJMR}q_k<+T}Hhw^sdX3>FV$TNWx!~ETG zVNR5Oy(z)gmvHN+yS+K(si~}4?48;8{2K@{GwgjhZZUmsRmYZ@` z-(YOXShU7e8yaV9&T#>s40SnvkI)s`#E%aBmQDw5QNucPT6*oylIgO7TK*c|6>dqH z+)hm^tArhPTjpFMTYD2LZ2B-w&Ei}Dn}8TS#$y7NXl*!nZ{&z4X4=0q*j$kYUKf} z8{seFqQR%jxpJ#80Thw?m=`Zo-0Ym{v&=cYrOdEh?smUo*20ldu7-5k+#B;WwbZ_% z#0K>ju>lXDX&AE26}uxlv6r}RbR))`_2yV4A7O9jkZ)5{Fy;*Qdhj(a|My1ivuMx zFTg+ayiFUy<&%ilv3A;RB;U&G#<42PpR>lG{4!^M>nx{vn#`h2j1$loqE0rMq9(-GBNVoj5Brs)X_GRdR?cV|<5>^v<;TxVQdN^Gx6g_i>4L2Ur%pxk${{DYJ`P8Wv znuvrVMyXK;kH)|NHY^Tb)7ujn(WwX*uMuCRm)lKEaM4U@m;ZvyWXC z#;J5bhDt;zHt<#P$)rG=V3)6YcKgRr7sN{RW(+cWLBi`tE<5wn$9EzS(CumeSDjt- zx21@fArhMD%cXa5qj!*=Aip>`DL$B9yPnWrcig`VeTEDuX}X&B+M|2(wJAP3CN2UJ zs~{pxXFw`(70|R5q+*W@+<-y?Nm(KQA{CK{1OgCyB#8*vqs&h758u4hCJ8{&e$wJb z8B3C~%G>v(+M7ki@e^ap(o0D2$uKeoy7w;Mdk17qyJ+c%J`pC!mfcU63!je1Zkb5= zT@^%l2#&@M!$b9Iw&*LisDRp`4477R-U0hspv_7gr%A^7vtxzy#rk1l!6y8az!-`yCJn0w= z57pIC!Z<{MM!t8&f)s8%YX6Li1W1D6JIoxJ0WOGnt{Ja8sgZG%jjto-?S`5Nv`7v_ z)r@gPkxxDTO3VDjKC|vU9*O+KPkDEHMd~tvmU-Jw)uau~V`1FbvgZ6{muD;cl&mtm zdvJmmx!T)6%#_MFDHJ7>pgm8ymwvKOaXIcdg@*pr#LH z98)b5bq-qw^qK22!zB9goLc~dMsnh^NJotlh|ERd z$s+xYn(rIX{7q{Ss09iZ zrhK*EaXIq;bSX9Hx`|qD_$AwO+6R+ximF%P(R30M=&hN%g0L*>-&r^w;~a3>I4FK} zL9DyLSfe#LQO|OsGn;-CKLihwl-aP4X((y4LKBpeC6@XmCZfOJZrOPOs@ z8?MdvX^0|l98JwKE#Z72AMEj=eE{~+c>{}n!1<2Rg52F_-HG8$_asV<84y7Nlv}H& z!!(M-IMb=VvsPYEGO_iacN)Rm=`-JlZ!MACb&O@UuV zb_O2}M|!DpB^73 zpH}q`_djN7hw00$jq4XHLV(CFv2LJ?0ws2-r`}I45|TZBVVWGZ&Zoz;R*^KDk5mOijxiF_TMk->tfwR8 zM5FCP`9ak-){4-Q&ZkQsSgcZJLwH^8zqdf30|X0K(mZ>t4v{Kz}9$_#YC!TnhPkh2Uir^hiD z_=xpI|{KZP2|+f#{-SN$e45ZxsaYrDrzS4N0=Qt92!p$FY}UFSwNhdk{B*TiDWpd0`1- zfSf!ezqLPSA%SLTFNI~f1t{F_oO+rmN-%?J54p07<5&%c2!t_1hI+9OW>;cqBx0xT z7N&ixpk1*YMk?jHb)+O(sm9u6)3753eAsEXb#MILl-+ModFO_!VsxVL-15|8Nc&N1 z2Lo>MBIt1x01X|el;c#-gO|KFT8Mb4;!4K2ZY!o`>?u*VWK|W}*~YZO7Pp6%+-~!+ z?z^^=zE))#(!tOLm})VxZ0TSVKJCVTR1eQV8l3_U@-{#7eOJcD-MxS7lF&{E+ciD; zIR2kpd^(K`_o#nt8rRwmuj%C%`ziaS$$M?)y;Y;!O=aHiBc⪚)=A6l_-KZ@^(mY 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 literal 0 HcmV?d00001 diff --git a/fonts/LiberationSans.woff b/fonts/LiberationSans.woff new file mode 100644 index 0000000000000000000000000000000000000000..bb582d51fb75d2f4d125f15e6e089d319af6e7d5 GIT binary patch literal 188280 zcmZr$Ra9I}kj4pa!7agqyGw8g4grF@yZeyf?iwtC03if-cL?q-gAYEyFbp~@|L*JF zd#d|Z)mL)rzI1oBpN4`00wMwe0us<4f$()kl}UIV|KCSJ;j`K+&iGYH^&dI<;Uy@_ z$txfr4Yt1WPOlW@%^w0))YQ;HKpGWBKp5fER!AR!>AzKaPm z!xM)h(Y|>VARzqvc>n#sc_Q`V__6Fc9n%qg`IY@o`JV-X|C*J#wYhoABWPrMqUiuu zZ>DQ(fc=rcx|b0LA-f+<_CL@o5|a{98{sp8F#_6a6nq4(*DnO5Uq~njD6d*%lw!mb z1k~5OzoYWK!YTi6MxI5mMIwBIiiCxRg7n{mvWI1?rltNQe$+caPnrj z??X=2Gg);i+q}uX#qf16Q)u=CYTnK2W4trwCz~XA*=Bs9lD>|qY(Q5L+tv{69c%YJ9RneW{)&gyLs=Ft60>2Tbl6GxT2?GepGU~)OR#) zq524~(`*#-Y1mBt-t!SqQD0(1SK4^m4;Bl+eKwgTxcj^v9y>)eH~AsUF2f+SDOaV7 z>KA~63>(m!&ubVBqS%7oN~Lj5Ezf-e5+y#Rc4Y-XN{}xQ4E852O`vng`DkOE=r)-` zdSd}_q^CC-Vnw44Ym)vlXa)(=G*We*QfLmTz6zw7b)1CUKqO62hQbSCgQP?5(RU9XRt)j<X7RPtdd6TEzd|F?P>VRZdg%d^3qP2(9e;%~ilc89D+==oxts0MvA6PoIo5 zIuJBwS%$V6oNBjf9;k=vczJK~ez87L<$hdCQ~;(Un^j*^Sf|0VkBGa?IHQcBOcv3Lg?zx=fNPq^CGLHH{OT~Q-_b6Hp?S)AS6k8s+s!HQRl#vY zBB(ew0+~&rPKT|MM?^Kbex&^&7AB7@H5BCfc_9ID7eg1e)=#PVKlf^3;_#2oH4;o_E$Nv8F_ z-M!UU?PuR1=N*Po9WA4g|;G3<1sO18qPS=bHf%fg5HF;|0?t zb~l}v>!Wg!tIJkFdXE=BAUgq#Ne9m|XswjB;7@!tG;jtl+mlxMbHFwF%idWaw3AhR zxP;vXw!VILFY-2Fd^LKq`y8CkdRC2%eWQ`}%{0|Gt07cBuw`2%DPjxJq0&?NE3gqc zbE<=P&R}|FS%sh{J3uP4$UKjYT{yZVdNQE1x3LnNDa;}vq)H?^=)k;9p8DuSSJUiU z(idhp{xeDUK)~kU83m^?+kT#=^2K6{oFH` z0~jaG>1k-rWT!c+lDI-^wtE4Pi#&zoQlMdz_2}w7V?Y#QV<~JYw%<&);e1;bcuzs) zX`1fUhd`Nb(Lq99}^%$iIHzY!~h?O4^d?{14s7&QNKiCf3ch#edP#2m4&?p^{w1YAUc{i#;XO z&Yg8STt114Wb`kpMy%Z9_RCLaz9*U8yg*t*_z3|hl0;8zK84#bJ=Uggw54a#Ie=o&nLjf`oC144_uiVOUKqdTT*>H8 zVf`hj8AxemE&1(Or#p;m7pCHCLX@X?7|^>i3qBKlLHVb{TNBnI9kgYF{KtQokXNH* zz^zwp+bj4;hKR3UP%%K(CDLnAN9>J)ycz0xaky*VQTlfN(fu}c8_Q)0=nBT64BweN zn8;y}bqNmCB3yUOx0%{k*3Q|dfg|LmrTZNPH1zJ%oF(?DwkboBw)N{3rtOH>P7B+l zSvLjpM+JB_yf7QeH4i1sZ+~c7VTFK~zK3|2Hk(q7H!(EpllZxGx;^+2(*DgVy(qeW z7I6tmX_zSoYOr=9YVW$G8{SG=798R5WnBo>X7SkKOrs9slv;Fof4+6i^xQJpIZsU$ zvD?5S_li5TIx`sWig`Xo5@8n3<+Cm@mQ`&a$YqDxrOzMd3aZd7dPPA^YcApGKF@iL zjCO5n9j3#r8Y*>ShEsDqolQ)`6?1$FBVPJSZT*E(Y|shbYtyh`J=(-^>`KW$Gt+=W ztv(2DdW~uWkH>F2{Rbw8bk3jZ$UZbeK7#j*p4}FU_wJQqE>dQ3HzJ)1qJ+yP&L;@- zuC0v@8D1ADiOSuM-s(ltu^Y~wlg}CY|DsYP2N)M>QY0;6k7XY_)IqWx%m~t7s z)y%FJHT&1%n^P~U0s3$_;Z%^WPyGE#B>|lAr;Fh9X>t&6AT~KWrw(&c+?B`o8s#Fc}8|uv0GS3MEaP z$3Dlc&TYv6BoQ}P=o*$HUDs4qdLemsubnCXwhnF?`dwUMs?`u$BdSTs9r*FZ_FQo_ z9P1f*Zh(^BF82#=Km_VhQ_TW#qb$gb2#9{B*tLJdkj&kdc=Bg>AIYNMk?&87JFbUW zRj`>$v~TtoQxvIc0P&NMmFXzl%HUi)xAFloXxXtz$BNBY-Jm&yvHKU#M=u_K!NY|o zrs(8U6=V+@4-LKUth_|6x{xL*C~u$KK&*+efnR0h6<26EA4A1u--f`solDaEH~@8kYc{4aLtSBM7sdcOm?Ifb0*=;F`G8BVg)7 zYmYq^xNc{nkL*E=!cohmZm2l%U~}-3--#Ibb|HH-=xo1je^m|Z3X#YE9ewBK-_SB_ z2>+BbJuDSV@_2&{`6>1Kml_~W(csX#_;-^;EmM|$@uz~(RK5q&{UaQX;&MFTwS#i?oqISmeKcBXqC*o^$uLq;v4SexH?7<_q+mcyTYmf z@3MObJTDHJPQF|OKioIma6kTdu$AvL^8{>_HSf5_;6Co{VDQcq;CF$xm_e;Jjcn=F ze@lykx^9$p#{{OdhdcBh#N0fWvj4SR;9cHR)-Ly5sf(Et*$nH`8HN>yh%+z3rBIK8V0!$HbTTN}-f zv;HF{6X+lTDm=n!VGGiWop8S(h!&OI5VNU;r1{?n89~rarn#Y?V(K!n_QQUu3v2I1 z9npA=7*KSPEhu)}brElB*9Wb3`Y9tHw^e?2 z{GVg{I^iAf3h|Rg$BkNI3?Oo&!`LLUQ`{_p#-W3zRIHfi}N%MKEC=h^Vt+p;ZIAFi349Svf(<&{G#( zJ~NOkkX3tC(>6Y87sS;@XX_RSJ>J!!dZ#e1PXoqn zsOXqr5)SG2`<|(7zK1+8+U6}Td6@rqVhc+!0FUDIlNDM6?MZ=pW-J~}oYg)Pc*N== zG#|#?&ukg~oEJ3R$;_>v7-_0WDVj7j?R*>Ji5EmQwXEfd9whGSO}mMbM|CNd5}b{3 zky02yR>m!2Mf66rq1-piyY=e|C%UrhDpgpAgI~+9d6Qq%M-Jq2(QmI{+z>TqCu|QZ zxyrY$pW;5Q84Y|%#HZ%9KM6`av7p|ow%XWAK<(e;nYe$Z{)l#bsl3+s6P`YcIO*0y zG*50P>Vm6j=Aj>EUqqK0L^qOe+?lyq$(n8~I$Ex#{)~5W1zu3WErt=ln4Q9_+dy>i z;T+ba)s6EeSI;d!B_VFQJ0y4*75$b@&~OZ{IUg)c!d%Fo`00&!|LWCu0L;^lXntZC z=(R>=gc6rin>)vI%Nv`6KrN~H zAW}~T<&{2-5?fZJYcP4)Iw zJr(PO*p0CLuGmOBqC8wiG>PfK+(4;uJ}(Ccu=&kn_r+fLdBBEbm+TU0M!H*7mQL8R zO`hNPqpo1K8}lit!Ls-}C;X0r+HFosCV1D}FJ?DFL5ymb((;2soh0yoHIwbyX z{}|5r)m*vh{bk0ag~nz3_-mtlaHS=a{nH#Xr!iqFo8@ z4ITz(5VwKhTh~O0(JJ)9IG0oqRkZOySJZC}`XsCioCD7lP;<5Ze;jHBBc0i?$CUd* zKcd4P1ddHB%*sLKaEZT4iI@yfX6|pnu5U!3s9U&gSyW0rdoP^aqA6Z8K0(f%^lbyA zN8RCxi(^+1`Bh=wSgdq6i~O#AXN$nUZ&9Xm$x2&VOaU3?LM+-XaW9nJl@U2tj32^1K zPv2gl5(}Ja6AF}=swn|c94zlIt#*ozR^vS+1qcZv(PmkP^1ieX zg+z3QVqdtI{S((b+!zs)=aB4vzXrO^tX4O;!B9Iq_;JQ^^Eg6q8#9o;>&AcvUYDq5 zDX(^^giZ>jhp5T+cu{q$?5{sx()e2$1FS9biEKS!mY>#mCMcwUkYaYPeWX2M9GKCz5!$?K&YWv^he0bJH77-ChsVMT(5Skq#WRh zp{w05l*s1})qqdao13?fL=&BWX{xJnYEg$$< z=gP0IWX4~42Pg56@~FEsh%iV4sUf-!r1kRnvFC%{DeUhHvT!8?-+%33;Za9Vo(%mG z9E8gSlIyN89$X*45UJ&gjj{jn=FM+&`(0ukdID|7YeI+bhrbN8ex~)kS^SM(h7@Pg zS)ObAQy|N}G>MegE;*l3wV{|IBynDg4B+q`{?*qOwhD^gT%G2Fup^MWGzd}MVis|W zd2LLF1b-H5wnPoCqZ&U54oK}ZHf1Cor923<`#OLA)W3S>>_LlXK&wsQnT|prq)bn4 zjhU-Z|IfQV;f%>=U(7T0N!3t^?OfI8@ z+Fv(m3G(%1S^o~}iT{2juBU6xazDs^FdNpw)ev!L3 znw(GCCd}GuSjl<)X-j%b&MnO^M`%&3T415w#lV-Eh4movTDz_HwkB0*v^-y;fN@G^ ziqf^!$R(5!@mQTjnR##hneQKFeKr-n-6(8d{~8??+VV``{f>HWr$~)-Zm78@N3Z#@ zqv?^aQQ0u-oa^G!ujyIhCdD^2N%FM12p%6A9Nm+nTkk>*-)nx!KTifNB^ljG~~qKL13`&+B}RI{p?c;Z`oiH56BMt9>>m(wA>& zrE6_v=Zr=3&@#pc4T*T@U0A4z$E^>izr1NWgf){Ka-FG zB~c=VLVKz$woqE49Q{%ZZ$FM>>m3K2*=?ui@-!cU^@LpmV!q=6M9>~S`g0VGF+)@( zb4ISoB)=*OFbFUhucR0iimgD~oGL4abx9X9Mt z#B}cOSV>@YmKJC(CRwkg2JawuCgas1chsVH)REF!(Bke|1&7Iw>9Y5-@9!udP-L0Y z7YDKFb0_euEvjk)#<^`Eleqt{3R)LvJe`H>V979ZipNq&DiI%IPoY92$G(R_a)3W+*c5R!QW4 zXWTxz(>m)4Z?}liu*v9j#<&;XSGu0{n`e8cHGllz>@vFIGjEB_$95!5$7B__n;~0P za8;F{^pef&$s=;GCi@aiwPqy3w0zT*srHU<@r@G@2DpH2aXLO;zMFXrI^SHH(vXsT z_<0{v(rp6iay$@gYPvrk7CLpRGz*0ukizsOxw1*5*hnr$H8wl2yaFDlCTl?1jiJVjRPbKcjJgvFq2GwWnP+rL?((7n|h)bK{emHv5< zj>oR+SW(T<#v!ZeSawmqJ7Drda{UMfIDD<_G z8l(u|6)?zL+#B_bWlYy;&F?2>ADfTha`kMeC3%JpTCO^LiWh^H;GQ)$f<>w+GgNSL zQVX@}{$OBO>5>V(AHv9-nv&NJB$fiNpRpKE`B*bQ7z`*ybYI2Lj`YX^$g_T-t4za9 zdkbh~l>;T&brudUdn%`bgMy;pnzicTKBl7Ci0=W&tbWyu2O#<^NJgG+n zJ~(=iDL(sk(SL9zXKphNKB3=qR|Me9`)5{!fZI?mZRWHL zc?zd(u$jPitE`9(o#-v3!BWkVEN)LlimFqi1B>kAyIJUgH~uX@3mz#eh4+NUMa>Vz zx0VCy;`6FsQp>rS*_Jm;>z~q_1v!z0aw?IqXz@DDhlD_%?mUi488z8g=d#cGI+jOe zcRKxhY3h6F_wHHM4Q7*lKo}c11-OMB%rat}zY)Z!ltQRxR^H31)KK$Leap?1*mNGZ zJ^fgNi>XZfmQ&|a>J5EUdQ=}`g!6m0#)AYDdwcqKj;$$~I8TvRG9)j~3>!cATQhNf zwhcrreL-W#cv+!bNeyN@VoB6#l1va(pc}4Oq84(WFE_5&JsHJ1vnj;ZEfrl8Rl?? zG=~fZgLKNrR9~%s6hRW;IrSebhM z%`cKr_%}eR)sZcLM=O$sDm#)>kn*MKu2?qw+G!?n;43a=-pJDS__uL2=k$$1nPE@v z56NuYjBF8Z1l^gtRuRd2G1mb}7ZPXBxbEM-%AW70zAbt>9=s*?VeM66Y<~Ihg8l*a z{=;j#%YRKmOGQ;j`fb5uSra_1k5&)IRBeI38`ZE_TK>_T$CBHDO`UE?lY|q8F&8uy z!4zlltvl_rU`}r{%P~UVl3Z!KH!`KKBOCnkabb}7{qzTX<~CTqh~Gt9Zth{YHIdw# z-Vb!!8=}o$<$VbwY!iQ9VLN=CH*{P0eL5J1fLNsuVY&P3!BX`Rfcg*9If--No6Q|1 z)($OAKk$hKzRSe4DYqovH1gWaB)x}#$6>Khp(TL`aW{qGK)4KlvPwb)hot4Ua6wVMBBI@NWjEegVz z{-kzC=ZjJ#iT4wRVmY*B*{&3CI(i+qK0t+)D$|(4dPA&$buaVojx4ZzxNPCAjZR7~ zq5!fpnqd9$zeX{&dDar_(oc@2vk$=xZV76?F-rJ(q%0Ps;>39sXk{FN0UI%g`T1H! zDhIY+rc*HUef(jCcLLZA1Kbm*mjGX(dUo5#diAC8hh!WBS%ttifd!3L)>JGakR$?X zRopVPW9o|?d#R0XA1W7e=?bp26Ni2p01`|_^UUE*+(%?$%A3UwAC8JWR;i?dSUpwy z4T3Gsr-y)G3)X6#l}~v`@__|gzW_oP2Ftrq#8R{Ws_u61i{krG0SHD-kO1lcT$>9| z`pKVyohr`AOpg7kWItYt5a{A-8BVPvhffSLN^=IrCak{2EEy~4pcJFbHEl=JSu=69 z5gE+Nr?ozH81{k7c=suqzk@u2eT^O)GVTH9M5p*(m6hcfQ2;=|Azw(w{>2 z;h~n?76HS(k6_FJfNj8!^<^GsR40dsV;h+Hl;zs+;Ef+|3Sa7b>KGz&H>Azg@w0y) zWqX(YrS-k*_oT>(f}6qh@w^{h%(2grqJ{$yXujx^zt$^rIUqmDX94XJ2ocvA)uv~S zlVSZ;oKmHo!6>h^RL_-rCX<*JQOxebnmN{;?K0e56W(Wj7IYf|1lGWMVACxcAjk&n zzTlv}+Uvpt`2GnTs{2wSe_G4)eo$MswIuM3pC0B;HHx5k1hxz>ztysAYllSMz*KY! zk5uK*ob12P5v36+28ryEt2_7?x%mBExvR(cy9d^~EKY1p7u}Z5_HR~iCc7CT9-)Ch zWZvM#1=O0o5!pYOVY3tQeHRgZM{^j|N|{F@_x>@p%$CLb{qS?1 z7y(5E%}=d^~@2)58~x82rydn@5eVo zlo6UT>aic*XACxEJZfjlvUJf!@LrFL2Js~I-4JeY?cHOt0a+rJ&42$^kSAlE@A%}a zaLW4dnHX~T1Ai+`f6~Cm!>!Uxr|SEK6BK)g+OFwfA*!W05ZwP%-6_gn86ISkf0C;u z5dhu!)AO}r^J_IuzR=COCKxtx+$DGT6e0lZc^(J8xm9o!DmJ3`p%imU2(|KZP7Cjw z9W)^7W;zip4bbUo!k%1kJ}f3L_?~OS_njZ)l;nj4Cus?FSP1K33{|-^`m-L_G&Qu~ znrP+JWJHU%gB-Lt%)U0$hVx8xsXoKjhfQ>;qJ*_0yB7R~H=^0Milf`*c$p--xwUbi zw4lqGxw@E`6Op5mG}FIfGyn8=K|-PdyqV`=JeW)iDyXGvzAmS0XFa)lspjc7EaLr{B@B zwz+trKA(ILngANPmeOKQ6^w0E{-st-6Kfeb(-pmW^3xPAKWO`@VykHPE?2T>XGJHu zu<+aT@nu_KQOCU)fzPVDAUEYaD3i&sy4k(U_We`SgBNnVfd{PF54HiA4LmnVn$1H_2_^zU@1G?g&pQ`2fY7>U zDD77WLO%L$C{8f&2#V7U?1xl=tbROG#4La8L>r^D??Ib$OL+*NFvmARtKcJ>>bv!; zrKVP$?sLcfX7vV$4~>eUl<5I4JmXG-Z*(|=xh~K{0B2PF8kf%~%bLql^9OcUJ=?JO z4YTu=8q4U}Z6UA6#EYK!D?DNNR|nyZ(6JYtDYKiW@q3`}f!h`RggXkg!im@%ZesBj z%UaS>XrrAAHjUN!z!%}+3X#I*y~W%gFu6PCT}g}!Wk=PrWov=*yMo<-d&Q@o6L=-? za}ba2vqSLwkVg3ccHlIBP3{R}MK(Lrs_B#rpt-QYBi984>XjU!I?P$kUx)eHCgqDX z7OKRzS%St2*Z|c91uErjH#yPk;tx|Lv*KPk$&lb2(10ND9%+T-ciYD&B(YY_#7JLz zf~WWe!+r1sT_@>!@(?$B9kL44@Wi>Iq12xvvjsca#g{iuPW-9EN$N!6!!Pqf-sYC}SqT+n8XE~s!-3p1tr#*YyN$f|u5<#7rc zj7dOnuStG_M0noeyDRgY!}sdYb`j^&Q@!Vw-R{Mw=3KB~SMyG%+J+#{`lLh0DYY{* zTnq{v>RG3{{oSza)jCaeJJ4lTgnag63;p=6s6Yy3z(SPPH$-l;3m6iwp4+D2T;6U^n#Or@ zTba%Cber2>%E8CDU(Lsl^|nQqVK7X&`c+{>si}~-xfX{^l85uiJei7x6y7F zO!JnG+$b`}FHNZo@;!<<%HsG|fSY=D zvQaaI?D3aU2h^wFtP!)%GP*sn$|pyY26N{`3+43pVvJO}`1Af+$y`ikUrPY8oem0& z*)JfWyB`G2@9{Lz?v3Lu@9D_wWB6lb;G~8*l8zD4Y3%5)JkPI^2T%WgPFS1X)sCon zb0NP^qFcivQ8?a<7V!_l9|-V|c?&t+WYkvevUDdYG4n8v-_xW@B6Q47F+-{$Yz&e< z!*cKXp{Sg%a-yGx#u#0VJaZdKo9TENqJG6uR9_@lYC~I)d-032k>ZblswovwUZAQ6C0E~D;A75WO7*({Z zY}#qcEU)(_#N>H-5&|7~uT4-Bcg=dO-(QhN{d>QgFe!7VCPBwWOlKAMvsMeHr0$sp zF@>H1KAqb(JgQUZ4(M*S=v>)eebV_SSHFqUt^b;-3ixZ>h~K}Gs)61uchBgygrcBw z#{j3u(ed+qrKs`ZxwKDC<=$m;yW8HAUDU4VXHkKpeCj{AEIX0WL|@6 z#{mh5P6BVgBt3w8Kd*6i$v-*OFM@9|(&Own#OTQKB<>3pOVj65RxGa=SV5dO@>a3Hi3H%p zR3?9c1Gh2Y0$gBxVxl@%bn@&gY)Hw=P^etZ%VTmVz%PNnTnkIUaC@WQ*l2s7ns-hc zpdxNKS63S1h+(7xv1jbg1TG0T4YvsxZ!y!;wz?rJQVOiMYV`8-0h&v7j9S-ob;SbU z&WdY$>xCre4#2JIMxhei#&dIh(W7}SSH+;ES-5v+NR26Tj@WE%`lEUa_;`hUiu2~U z_*T(9WWOa3a#8Cy(jdms5hU3G2~iE#ILfuhBRXCRH!Ygm=7SaWZHI7Pix?M)ouWcW z0YRtpMnzm#;1WMGs>irfP&+N>))1Xp@M1Wj+oaJefm4X<^OCM9XfQbe-|}- zD%9CUFAwJi?d(SHU6+f%OTlKAFM56v_et(jGKmC@)bIU%+4=lhO^UGiwMipCqIE-F zHDzyCvO_j0MFHgT9O>oPEAZGI-h>}ef<(xoA^tuiVny!&NJ&H!HpP(G#vCP>@`>7< zQ<`b|J#%~!(umY8h!*tH`@}U_{zpRhyuz|9E;kPLd82Htq~g}`yMbDHpZ9dHHCGgO=5_B zIcJ`tX?e^*rLu|t+Lg$_4y0{iga-?>qkMAZ2I6>czH_C=c6e|t9%X`TsRB7}nN7~U zgPJpOx3uWi7uKt%art1TgsZ3nH0|K44*dzq;M<_G&U8847^$z*h+_UTtD)Yvri3CB zp@ZT{V|ezuo192JgL zYcdEbHtF6MX~iBPw$on~fS=xUTQCW^cQ{0~xOX+t%Y}%`(K8x2#wb)aG~y@fT6)Rw zSKGyGX}y;N|D`DQyPwqLlmmCW(97^!p)JM4jx$Kd7z98yFL#>1*hO^CF0o_l?Ie=u4Ik&iE)a)Kc zod$_jHCD`rH!9NkSQREQSsE4h8GuM=NT6nnrwDJgmrm6-8mb{;oR)9M9cp@5?oJDIdUfd`0-8^29ZJ$@slnb=~t~ zyh7)~Kc?F82qhFBeXSP-CZx)x8ZC03cFqEagE~e9n6pH$6HV+c; z*vc-h*@L%B67N+0R+Ja}qCEMjvBKGmHP6UK^m84XuKjhCsN28FKl-{}mvEwxdG&5o zn9+l-PWkt?&-yK*rfzu_IBUy4ba2`iG|QvD3y4bzO#Uv*?HbTG>RPik%u53IA4)J9 zj!blw$en(dHsSGEtYI!Me1O`U;axlkFP7UOlToZS!R)UJTVc?kBDBOaFM3$wqT649 z6_45=zYlOBM5n7WTP|;|A=h*g>V|9NMP)SeGjfH5ySb6Fs-CaQXaI^RPTRYpkSOTO z)E5%AhS3O5aitBsShKY~X&UG$5Ir|{)p)@@@lIJ!1&YZvmgKARU$B?Q+db0rfj_ml z3VVBPZdQjRj4=Cxi3A9tstXP1p?DioO?E}!*X>$^(d;z%j$$DoTS%K^*TR{Nuh~qO zkaL#(hX$CId%RcY$ldFTJ zcJ8q_!RT6G)LDWs zFF&t(-0y_ML?;32C9B?|8ZhJO8NaBWNWSen#79-bsfZ7wkSqqN*r`!l9+e4aNFIl4 z(*49vp2~8-!!+N>y(34j-_M*#N3MM%Ytwl9<`v-Yp&Jv+(5&m%HRoHr7d^%7SzB_6 z?D#7;U+=aq1KbhJpmwBe;tPFYGv%7hlbS&bM&PF>z5Zs*EZy4bT{HO>T~Gb>?8RGK z0TaE`CW^yFex*JE`IooffAwbew+wUs{RyRbTAHy>T&>}WZn`n9d@<}=TAOYPK3yz-&zqgBC5J4HSn1)#R;8uo^ z!3P>eEwhtyRtfTxW^R6yQw@Pw;ELycT3?cP013V$6DK)sG&-lPk|UEltvP$QyAhp4 z!OS<}KbJ84)pxzpz`s_De%&imY3zhxf_1p_wND%2o6<_E11;1?Z*;oPA8WF*W3;r zHD|wjsvzleRjb^dN@2W8t#R=rWB2$jXAmc6-nxxf$KONZFV!oXY)|@^J^i7PFMr_r z(Dpwsy4{tn#wF_l9?KKw-^tA&on{TR%R{Cue#;iE)wez?)$?$)F4s$7?=u<@XTz;G zXdb>X_);da`T3LyAmq_~u-ZBlsxoa9+;SW7<=+%*9g1L#n$_`HV2u2AE#_Zh$}v4| zxINEO!j-&^EPK{BV%tRnyJ2vbFo}*7XA-fw&k92GR}u45<=mb8g8vS|q>$>Tv!2TO=& zY4s#LkweFSn=w6iW{>dh6e%aFKG@)5k4y;L4m0v?Bo_X*nRz~nF`LXV$u?NX^!C53+`cTe zXJ^~=#IjY~=r6uG4SPA%wm{^%Gf(iy6`&0^-eq=yd^I6Xqhx(2`H>QcS%>c7uelNK z?eC5$hHojde~6za>zu?;rl{U9J(^8)m>;-r+@BP^B6}%52*ZD-DLWnr1f>;WWgB1a z^EMa<9tffXN$WNo_XXoOo|3mAF*M14u2{B`=UDJm1B^j!Ask#aot;yVIguL40O$lr z6nKvh;UEZ_fLhh=>x=cAK6zi^5RAK((}05V!5#t015d4O67NS~a%UK85{Rei-l2pS z%oZWq6X}+P3nd6$m^lH6_oxf(wV)R_)J0BvJ=Dq8cjA%mAFMATCt6ZyBF|=Y3Y*F& zjy_yP?r>~y3>Id=_iBkigLMS`Qx5_u2-A ze{D$?uL3B`C>pN{@GD2b9q;tU&wv(9JO0aj&((%LL(9;=i%sc1=MEApr?V9_9H$-C zTxEzTn;hwc|6&~ z8v)e9=D}=D-M+U1Y7co9p*_g%Pf=i_FX(I0(g5`J=)OBVEr^&Q0DT^I7wiTE)Q(7f zAJsU4{~FPJj+(n6eF`ldsd2<^5E`(*$}4!pi2_3JHff%|O}q09?7-6%LU*r8yWrX| zH-C89GteC#@@P6q;GaBWglhIgL5Akj|V?`1hVqMa)>qC6J6G@A6Y69%&2y+Nj9 zDU6ZPUFK7X``advTU_DG+>sfy?1X0#`nj`whdU8>-aOB>dj6_FdY-&?@<)?f(F(Q) z-;vOK;RHV<*Kzu-&^&O3p-#C`JuT1LSNSlDK?noRAe?^o6I}X*5UzZff)ejm{)M-C z)HD5nX{lI-uc53JYYwJu&A-vej^zFaK!JI-Mqj zRlVvyRrW~5<8?M=%$Iix;G}_==a=7#L-O5(Km)>N=cv`BGfs%zSO*+$8)kq}^1Gy~ zCGxknJXNIeW=JE1{@F1G#Z%gCDkfY5PPyb99U)ayo`#RU@f^#3k$1$6Uw)RkHLrZ~ z(QCggATc@!Y!a!tg;_P_y!Fw(QTrBvQ?N9%F7(Bjqibo-k3;?R>_{|}YpE~OF{$D( zXRN1C@YJD)rX0u7&AqEHSSW7wjS9t?19#bRI@&T*t6%`GAjItusM^Ef==>8zvQ|FN zThM*%=sXl!Nnr%tuytL(*|05Jzgoqu1Q)H~O8Ct z%-lm#nMm)s<{s19Op6Z~Da@8mdDS@QcjCy+1hOl+{ej6QLXVU;UB?04u`rI{&XSQx z#P^(O@#k+mX8$M-7O#`}ZoJz)Fh=dZm7znadVa-QWY@|+z1=iSN%y@>#E>?^A;jxpok z-|k+pjo?PKI>){s&sx)$zxGZ3c3}j+)xAb|I_bJ7yvRLntC?W1PE#cuKp^53!G1^n zmOD(Q_YL-Y2D-5wX<<|X*;Wli`4riYawr+H2{FuX{An%sgF?lUhn`I8a&G=1jCaHlm_*Ps|N ze98SvoBNe3<6X*ES|6>jY{nJNJ_-zyPuyx@c?_-UVM&C)RLrw}7=%FxgE{+x2s>H( z8VJST_i1C;DsiiaQD8iLn$ZpWfg*{4O*qJKSB_H7C|vl}jJeMeEwlwimvEzhZ94s3 zWM8&%+IB}X@sd*NpF8v6T2@0+ZzTu9-@R-0xJtD~VTpvQc4{ryVYn1U=0lCnxhPP= zg-`g(s!BqgqE|Y6lE>w?GV4WpwRh8Z;{dqOm(L`abTuQ_031|p@_q_iY(xVF)wq6j zvZgt&{d3vc4CALR_>op7DO!5V)r7E_jXXQbDGIx0_ci@Tq_V%nlBOmpgGP=zC+Nu` zD|KeM%?oWsoj5hDUE8{eEesK@JWu@lvd2e5|Lk!!F+n>%=W{0cM)>pE1^KePITM0Y z)qX)JTNc?jfgRDHP6aE&_U!RXN;zt~jP=sokLnr%^zi~i2aN_Cy!jbFdwg5HIwjPEb44b$@e3`5fxQzD4OwXN?XQGxMFX@wf}!Th03@N57aCMe^tTE{a#{Er zv-Xfc$aQ@^(&1ErPy5&L+=9XjY%(6RFB#hAoH=9?spuN}h&}J{%1+>a2f+SP(A^Nz z9B{~Rywo|ik=VdQc@#pKs%~u`8PgSuv~FgglDaS)N`&h!{jA z2DxmbBw?rjRKo&x8Cp`sFck4Ii8Z@fg=rd#Ynk8v+Sr$%!H%x1{19e%*Vb;xv4l_2 zz1A~zzlx|mhr6+){_A&bYXtAR=i*b8wk6-eV|?!^c9zdQKIrbh&8bK-q`UlnIS1d} z-?!L?2JH6fCpQ5P{LQbiDxA~ zhAl?lC5#NaK3Lt6g?q|AZpoJ6`ahTq*q$A08KhNtr!eiro1mNKVQS=kmOPkMnjMs&Vw|>CnK>`zfzw%mw)R7gc4jKN~ydnlrv@{f-@8o& z*B77Ft+i8%nN%iFi2U}oPF|fKf9RArfAoR42CsYpmcU}4w+%N#6v4W$_vY-z;6Fz+ zoV&=L&THt|AtoD**MGEhiEN3XlxvOm>wNUd>PCh#EeibK}d;dqC-8d6je?$-}@tnV&`hw4i?LzN$lKsI|&-yNVXS_jiqUR6ta)6VqiC~96FpD z`yT*IK(oKW*7_G;+x6=1ov-hDy%9Sg1CG6SQt6<4t9++)I&}<=Lpp8WNZSv#wof>N z9&viLeMEehw+|Mq%POW)6X%9qHY*O&4qn@}`&G3Ai*iOOeD6c}0NnK7haVhM!pfKG zngEo6_u?3xw+Y=EDKH`;NW7ls3>#^B#h6lu7;4yEa z=sBkCIx6MqKuW2su!hx-mC4m?H}BRNAh#sDgr~@R7sQUr-(J3d)%yEiSN`4+48{fA z&{1=4`n?=*Gb;b}rg?Wm9vjz4)X3e)ZJ=xQhDZ+GU<5*B<8}z*DFVKCfx;m^1s4!*7nl_uEHOrb<D+8;lvvsRffQ}M`0VTRVv}RN8mZ7 z@)5Pq{mSpqfIg@DS!Tq_@kr!Fy#evtszkJoenM=iCpN`wm3^~{i?WKKA?KRu!-ssn zZS2E67CiL1hSw@MiTmR^%1`MLDZ^x8kN1O`zsIGNM+maNgn2~wUSwBU1K1#) z5C&McK^f!V&;IUL_v(t~@3|~~6~(I?T@!KG1S1lVCq*((j7mDxepZvm#2OnH8Xwu9X<7k~b{=|b&;0G} zIO|@f|Ai>tOBg+Es5s)a@-~dA*Z{i&aaL|(RJ2;bAP7KlUPi|q3dfa*Qf+y*E>M+e zoj~zSjgky9en)IHp8NXS%5q#NE31nw@FSEdZ$jA;vajjphspiIaC_|gJ`RT8ffT=K zbPTCzc%;Z?r%Iv&*>!@)POD z;;c^@Bh+SNXVT54iZln(P}_=8sy9+CQQgwGH077?-ultMuk`yBTb^EW(?ex@LL?(L z+c$aF$zR~TGtKC^r<@<`UNd(~rxN`08l}h3ixhvO zufsbz>TnQAGEIz{jmwN!&l~Ad^|vlnRou0Vxs7_pSV3E_DD1cEa@0pge_fL1!KM88 z@efTPQ1ssVT+s__w|Cw<@$feQ4|;f1K~bcpnRGBobsh|p{nNM zCu_Do+VIrL-3H#Ha&J`S!_T> zGiUts-so%JfH7tuPjTm!eaa$bY`_sGpm)e(A!skoV|vSa|p^ zpS-o`H3#Qwoc83qN1mD1=;mB6WBL5l`=`}Ujy27myKIJXda1gOYUvzpbdGL1$I3{j zb~ehtlzjyo$<8rmm@_E-&FN-rB4#sjI(-wPP9_)JI*7CH<#TM|g%%y5g?DXsRUN}@ zmbN5j=nkAs`Q@jl-w8ffyno#e?wUiB-Z=N`>F<6#vVQigRjX$9n|BL7tvseYuy~zs z5BR|_^j_dTJsnfF?A~$W`PFM*xN#Pf32YzZx-c6vH)1C`9fvqcWQPoN2dDxwBS|QE zo3YcKjj-MA@L_WIi4#qaoj9Sk#r9>|mV{)~DUu>1BK za$m7aTUA?F+o=zqSkJcV6L>xC0MMOiEmzL%pc`SgNG=iRKy@NtCe#bd1R{`pT!&|3 zf&rPiGHx8Vkvl!@^uU!M<;J&rW@Z*fOm2|D=vVAra4UBZi@Ox53$%c^RPvNoxwp6oJCQ&Yx z{OSJnRp~|#$i$PH>a2;Ta@x*L=RzruJeIfVll97FXrl6;?gCleb%{NzI1n!2=q~2u zaytyHt|;#fyK!#!eigTL%U-u+$rjUoFL0ln0Tf$ym=pU>8QHUI;l!T3Mpu-Tmi8Xf zb;6t_4;bJ6=+vd_jvl4se^U8IcOTW6%1}S_P^7m{mv`-rW?dxWc6%}q>g+LJ%lEI~ z(msxIoYC0llc@cMPoi$S*_dv`24b`u?SC9wKNtR|E724=}bcajAgf2&QH5L`(KvpJ)oemopE(lO#iOb3i z;3A6+WfV|pq2k8`nrJF1*4;Ppc>Nvs5aIg6f< zDoZ|k0`lHo0qr-HtWb9D`j@i$z;Eyh*!~5>Uyf~_bKjj$46V6i#>s2k_}{N6r?w0k z(tG;!V=rz2@78^r6k$tr_@W;leF2=0eWKj^`^B%Ra-!u_`I0b0aptn3@Xfm67V%DEF__TW2Yq;e%d-nT<>>W$s%#PMPk)?a=5* z7lU22`+S^9q&u<5k#xVo?zMYsqV|9t-(t1{>23#({UeeDCjLD?~5N1Eeh_`qb9` z%tV@!(ZZoBgQ`bA#PhAv1m^#PYaUxaSb6K@$I8*C;2yaCOXzgti=98?epgN@zbi52 zEy(V-?~Ui-rY~UtJhW$Lx9PLA^F>M<{!U68iJCSYB5pIUM?7*k1yfB_AiSAk-sX3* zFR*uUUIxC`bURCO8UU(jXUcMstce^FlEMUlBic@YG# zUwVE4FdVA9p)lR1GE%@(y+%)TRNIkxu_n5VhgW!*#xLZtnFo_ckwpMYjZyCc1hJ)fr8t}XzVu9!l ztSjJkI!Z+yp?EN;-Ce1{sv5T11J$yfFpAikemFq>!F?0ExFPly?MUO5QIuCUF}Xe> z(p4wO$nNn7PSt*LQQ?hT;2|!TkN7M#QJ8;ou&G-j&L*mQ0oW3UtO+L z8&OT%%XO|c=OGFH$kI56%C92TM%UP96x6{j-$J1OzHXb=a%}QKyrbD57*bD8n8ZHpwtkhB_H)WvGxrrDx&{ zJ}!*sm z58C<{v?C?$kb#c+^#iJ)q+|3qe@{l!FX7p6L7>|G9fC=f7W-VJp zdaZBDI{sapmSv2Vg%KYzh>}WAgQTZhw5-xfU#?SRfR0f^-66Pv zvE%zGIiC44whhyNOJe6JO}gVlvGq+~C)Qes_Qj+0h)Jc1prb?~>T=eWa-7r}n&_fE zfZydCF8S7Lbp=f8dSPJXya#zLvdL>o^%1>CZ>GARgP3f~Q(;aj)TP46ROp!sg{k0A z1xG4eOofxFa3mGBFn~#^P@4*s48W2KTq=w@$BG+MVI?cBVD$s6j8^`L70pR%S8G&j zaWSi+HAmq~Xj|_kwWT#=NHp|nqM^QthAySTxkOttQvuhp{v)YS#>S6QTO40C|AED> zQqab^)#}x9tF9eu(lG&BQ-vjz7FiI2boIm_4DG<(9ZDc<0UN7r7 zj+c3}$p8Wo5tXWDIB14FX4qtgnP#XnL#-Jq%s}5K2?OSgx?Bn*2AWf(%7HF16VLDX z0{?D&j@xtlGfhJ%+ms&}Le|r9V01f`zn@b1YeHU>AMrXxGZK+6)j)L%1IKx&ZegFv zkX`*pdtJ-EYtyNwo+eij|LJz+$futvZ*7GM(C1U=_RL}Bw+lZizk=bP7lFs`oK_n5 z?txprpeFu|XO&mJ03CEt{!At6FUnEqnAn4vexyfMYFYTrbO$m}Bg1Al(;dicraO=+ zz605T{-@$2c^4{e)f1S;L-(NqPG?c~WIt7ME}d0I9KZwq3EV+tzcLqQLxgk!5n!>y)f=Zn1q%7wT5T|^k{FFEMu99xmx2-R*H#KK{?R#zxPQ{st8o08=5x2*P?R1Nxx>-W8M7Eh8sPll| zqwTH*WmiA&iJw%dj2B0;Y5)UCD3;t3YLVV_0I&W5$V*Sc@?W2MLg@;}S3iw!ioL`) zeEh}}pQOf~B;QYOi2b@$m4(&K-*dlGoOeVIN79WbEj7y}@VqOPO2|$|i``XzlQC)> zVi8i|4clL?_QrHRSst(6MMuAIHDX95GWkWlj`&Bui zd>4xieA$2Ug_n<(P1sQT%+8V2v;}-Y3BQ)UYwh;Ey=EQi(J*Dy%|Z376Yk2czrTKZ zuR+)5xU&0HJ<$KfBac3xQFmwExE{B44Vu$~T`DI~ymX@Lp;5JKAV2aM-F~o+NTTYK zP{{?h>4~6%fCQHku? zF*whPHYVaD%GgUJK?yB5DZz3HX0oyh2|}#kBx_|k>sotH8}dtFVbK?7St!FM2B5_; zl(Evbp$ygI|EoYBpIlJWTGo2<=Ppfh#yIiGHiK5*paH%`5=Lixq<(1op}p=sHh@1A&vjBHx*?60%6@kn&7-a^MCqVAC# zok*1{f-x@=z2w(d=yATjR=-?-P=7(shxDMsga=Ipq2n2!h&j-90&1Otn{HLa^mgpc zqcE?s66PGGdy)UQ-^kfSU%Gj;uM}vCG<#A+_58=7vw~;=tA$$2IxrBOtd}I2bENP- z?_wYL4nA04Uh0GPK1lI_-Uq+=;9DPj=7T@^V80I*`quci`^Z!ujPXGiUmxF4AIbB9 z*9S%)jE?!>dmo(k!7(4a?t^E2u-*r>)dziWw-1K-psx?Q`5@?nR38|8(By;feDGHv zyyt`067XoL59)nzuMcW`aElK@zA_(9^MTn1wEgp}{S&PH-9C822g_9089rRapu75@ zBb|m1WFK66$p`=R!RJ0W?u(3rSADS42kU%5JDAQo= zf=yrsn?N<2z;!-QE2R7Avh&sZHu?_u&iI;r0`h_Av2YS`$TEm3)hM0Ra1t2KB6n*3 zC>ZBz0XZ!}K34~C3$FqMTeySDHzZ2`2<0QTcRZJm>>h;IlW{MWTQ{+E91rTtMYd;;bezgDEE}Pv6b>jd5*kN zZj_J6=j4mB*j0vr3i&wi|NxS4|HH_qZ8Q-sisdQ0rdY!866IC6j z7ML2J0;<3n|Ht~IMv>u3i!!dCNsuL}MuBP<3{j#=#VPDjtfycB%s8dA!v;J$_Bj44 zemeFk&WnwRrKxzNyEv0kBJ7DY3ji3a2gaO85h)-d5)UaS#7IEo=uR+243IID+~dN`toJ$l%rhn0G$)5AzTMD$R|KplEOdKhz259bn~je6Lk zhvj;hsfS5=sMSM-9(wA*&!B0;6qvUAQKH=~tldeh-AdMUK5H5=$Rn(&ISinZwG&9R zQ>wMHg%#H&>TBcDx}jq_7zwi>X^m**TJ>|R_N%M`S{v80j;W9|>)}c(A$i3N|D%w& z|F{Ngl57Xn%cvf`wr&EdQpC>N=-$J~O{6zsUwsHW;n@#yd2Bx}C#A95@kX{zdeFW7 zDR$P;v;+e`!08KBkx6$XeHAZ|o!zH1hTkfd9V*0UX2S_t&G_K>*A3CY8{I* z7@kS=k98cVIt@?z=V|Fx`!5Pxv#0@Y`NuzKYl9nvi4DIl*4onJCka(3kpLx;aXiNY z3yEq@Q6$nunGEZD3{wxwfbkXm3iTlL2MWJ7gSWKVQ zqOIa5;@?F2bqf3XHwr7Luxf3s{B4o`>~B8!LV4eE^>5_n>wA@RqC@N{R*GB1Mp2kN zNu0x;J`&G~f?A}0IVWCJzf{u4iz3&fQd~)26ZI`tK`O;bB4?rv&V1pvA!@@jBOSYT zFUO)yoFMKM4~ZX&Lf!S^KyjA%h`3qg)q)YUh$}^6t%yeg74pNYC#dfF;Z#g%pXBG^ zly8o=b=*o=)fk9fc~5zNGt|8Y6Y!IGT5LW(8`J33{G~F6TcmtPY3z(hTJXm!lvk)t zpi!Anc1!2BD`RHOVl)}cJ&$etImDy9h(}dqsMabV{8*J4g^=nRI!}vGs5;rKl%ObV zcS57G@5E=^^WaKTzI3n{Qfe1W#LH@ivoz7`8cOt~>^l}BA(>w#BX)Zsq z>hcCebvi35GlAJO&V&ubWU^Wf6;Wzp1=KLIg9Wgu0G1cP%mSz@fZ776D1dzSGHFRC z!XDU3A{FAy3!sH>wDqf~>YnPuErW#b$VQCC*dc8FCjSy<^aXhzbTcf~roikzJP%8vp zeO~EQF+f*m8B_P*sQE*mxHZb*{E-8O)M{teb67mWG32Hgs*aSj<4q>nLoL2QHgCmF zr>`RFw8%*B#2FP)?AntJW!bPi8|tzlJsX;{;cPY>%mz&aPMDz0KWlFd-( zr1?2j$A8kqUnx$ z$1=wm2j_5DEPkO*m?@kT&I(j~S%g~l^&owrlZYVb^`s)Iccr)WCyZB*irbzIgXYe1 zGZ!@rHA+}@U|+DXw!ys5dG@)l&tEvZ_4Cx1O%ui}n~5|3d~)Cde; z4ITT2MvFmo{O2hx)cA@)k8~Ct%wrW@&MEYAUy!h z0XQ3ggMl~|l1}j{+m*E?LUw$ps{I+xRjJ_4>O>{Jqcu!~6fv~J!_&7EVB9D?M|82j zOr5`G(W2E0rtKO%6dd5e#Y0C-gEuePw-;L`wTHT|k9>6I(|3=?*PDmZz(%QXf26nF zD(F%WG8%PO;`0hr?MOitQ8|TL#VIM0+3c!_nk^DVx8yqMgM&WUU3xQR z6oiOCXJ8l1;7oUi-2L4(?t1q!_eQtQ>@K5^yWI!eXWZxAx~?_!32SA=m<8`enHSsF-d4Y+u~7%4VeB2d-;agxt_kA` z_dFJx#UE21x^9-9(sv;p^mRnEIfvecwu8>BkzCix!=!nT`s+iaP#|AZ_~zPLBB+v z(-V%PBF<_vn{{-b)%mo6ov^_H8!WQ{vcb6XHaN+?l-Z!!2D@#rk$oMP@ZaP!7tR?Q z?6JWn=8f;qfJ3bQb+pcTR(yg%(BhdksIx)34a}@Xt>^%2TB}T7o@KorOagAJ=U+v) zzubOnIr@&fVG=7=MUGXC-^wj=vqPSRjZ>%IQqaBEwHmI5u30247RpC+Piy+=BC6vP ziZcUR8W}~kY`vuCkU>@PIoX&lm&sWDRUt()Fj@&w^yjGqmZ;}tnCuRPO zYV2y?IV4-Cks65?o|P}ik`9AT&xvNLn>neNqdRz+yA+12Y|4~BP2?1)wn^!gjw+I` zJTj-T5k5bq+yw8#5BDnd{IRCnv8;q*tF<{mcSiRqkpYC-2&$Ivyuia*9?m2@gBy96 z$^3xnJeZkh@Jy1^a5)eCd1z);PO|qcz<)%V%e;h(8u??t7c!hKKuE}j){j89D6{bX!ug6`x8N_Q{1J<`o4NqXefdwr=k7jp3xQI|zF>yh(hDjZCO zJ*jYk{ccW$v&`SAz1+kcqHTqEVvcQuct(=&PM#Z`OKJOI(OIh+@%<6U=8 zDcrlEbq00S&mW70G@X!3qhr=nt*|`O!OFZ@ZjWeUil9SP1UGqLxd$}AORWbgJdp2! zGoBV%{l{_g8JBC{zyI*hAK{x{zkPk~6C0K;er)q%+)g>Cd%(;H_O$6OlOkmkccW%ZHM0n@m!;@3pk$3-_Y>x+pj+`_wH$B3)ak= zt{M-oiJO%uFFaGsb-v3!vRb*Qoc`+2&;x5e{?l76I?)A+YgPZA7pZiMR;wkASV$nt z;xk%AJCAs(dGi+JSM9+_0Q>{OpII-F)fZ{f_^Mi5T+ zP=r4OJURz@nknb+KMU&YFG4=r|--_oaVr*7@D1K0Jr zU7cfk^94*-E^?q=k$~)Q7|dpg<6KS?FH+fJFiT)0QbaUko4OWex)RY=-s9@IdLrUn z(-K%fFr7n@s@s=@ondE|b}WF~N2~ulV@}c3ci#<{1$v5}pYVsXfBbQF?6!VoCQVkKekdo@N@l3?IWT%A8{~tvh3b$2Lt&VtXjAljR+<0uL6}nt0 z;kYibflS8XiA_6OWgPy1j#)?L@^5s^dKeb@6_6n53C4n+7>p7&3*cO5ggHj2HA1Bk zdK$rR1cwngBb+tDM@BeegiS_R*%n3v7^M|!WyuAfv-euNRqVa5?fb>-eP8z8V1yD{ z@Lt=3vj1%$EihLC;0hyzj9@VWGR9q)HUD9I{o}}#s|Tip%PzZNk)b(i%D^7RcYdtg zfA9zS+N|844^YxXu6b+n6nqFlbBwBI$0#ivuq)CG$f^^JW)rbXMq(unQRkqxwJ3r? zbP|)Dh-NTaiOxC21$Vii(gnR;Q0#&L6*?~9TyW6^e{;bR7wmPx78k5?!Mp@yPX_65 zf#8BMKfB;77kuP`w_UK0!Od~OBnFz?qL65DA8T$UYi^7S1|^!K0Owrr3G0%=Y<0mx z7ff&g)UrMUY*5!;WL+I$ZOml-^mRc#E2iVQ#ELel%~LCPx(i0K)(c(WbHN4H!Fw)f zWZlnUrDZO_78f8F6Yn*D=!kCXajyPDhr#fxdhA%Fky}-`RgXcn>K!MhmzD6PULNflQ8#|p{tu*U;bF}5+7 z$sak$|6?YMn*ZufzdRp?7XA?r9!!$c_RQQOy4#llUCPvMpvxFc_&}e6oKD+DSe083 zp5sk7livS)L#e%C(o$uxVZQK7kSmJqFy($BzlEQ_^!Co}x3aZNf0MQ9eIytWX~KdI zfCwUI&p3JSZDyh0UQRPGU1{D z&KiKiAN&LOo(w)<0L}pC63uR6U^A}<=3tN|7a6oRjxDUkkqn4qUA7b@cc}qrJ<&1Y zlWb6XSZ~Xjzq5i3oQ^s<)5(7|U9Xbiq%BR89jD3B@d>x7^Hy9Pdy80NoAJbjBxmu$ zroY5}jhV_|ynsK3vZ!v>#nrBzfmkz%jtgX`h&oaCQ`9W>7jZ~DAf6D3Sq#x{=P9{} zD4LPkMvD>3Xye_CAA*mckbG$)e#wEVVTC!lMcsk^E$#|VrmAa~1XUjseS@KX;h6jG z9XogS{IaTB#tw;&xuvR18N7BejF~)Ci;;b9UB;jZMNCl7@@1lU>4M?4(ip^=9zJZLZ@S%9~Lr#2dl zzR1HlR$RvlS}JSjKD5rtM76Fw1QSu?_(IY-P(2Uh5|QJ{vFO*HXd8>3o(MQUn-qnv zRXESinkf8%L^!&3xI_U$iSsDk@T)M$)wri-{P_PtKSLpA=&7#pu=S;_N;&mB9iZp^~^Im(~! z9Se7kSm3~p`M1N!d+u&{e5tZ((j=~)n>1Njy=Yy7I*(yEkEkwm-OgRDEF zs;9d#r(3y*RM)pVwVeGmIoRJw2gz8DBKAmLw{p9|!0(Kv8~PhI8pt?9J^i!WaKdoj z&}`5dB9dHgK%pSJw_!OF^qvj|gGYjiJO!$^fH_o)n8~LF&r;3k=3XmqY8Z0Eq#olQ zFRY)HKDFbl30)@Rybj)ud7)*M-cH7hVUM-XLCwu5{$mjkVdnxrDlfx+?T#oMiZrXb zkRXT>5+XWbeU;8E5Rk}n31+eUQneBcl;HYAJ}R38IFXO)qy&dpKB~Y(tlyoz=D8V__ zvPBrWn_FS7vqp) zlv=Cm}#xvKLhyIN|ou zwG{(L-gW1Mh0E?8bJtz{)^43RVe2#F$8W>WEt)WL)SUw>ZXZ)Sc|Ls}b7#MbF=OtU zuw?R6o2N|P@{|@UqfpvSq5S7U^CJDRAes$Mm&@ajI3$WzS&}?%yUpe%W{Y`1RA(?6 z21L0KBOE1JUdM7|v>5%yO-9b>KxWHs3l=X}z+w@dHll`(va}Y}!>hyL_o*#Ypwf%c z3|cre%#_@{E5tc zqg!NDU0dm+IWM;)2{=e&N;twaimhAmA);^k`O*?%X!=RR|HS4>4pIDv zQ3S1v)CAmaj*vpBbLU{Yw6snRYnPxkczus)0k}H=!vb(^03PcO^Qa2h9a2g_Ujh%5 zK-UtA%#{-EP3>2UY@H(y_Dcv2G{GWyvo}*l#FQLy;MLcfdFA{Mh%T@5>nt z-Nwy&bp4?FN7mi>e;F{I!sGAIIj2L8Xh9;nwlq60FY9PDRCF|25Hjc0=V5bR zI{mXOZ)09_o`6DtLY7cnXl7`6=t4-4NM0x}#2Jl_ccVs*OMN%W+1t1q*wufQkTBRr zc54D4>9SU#O-*cI)3v?jZ_8%K((ZUp098zCBAtKhO=b6+Zz(%pJp>hR9)bY}hiy|n z-?2^k>$dHXxqUn2Y-?Kh@Qe+8CwAXH`L&bpzJ9TGf`8J@_4Dyzwc=5@<@GnA;?QAb z@1gCGv17aP*JtQw+cpS1yYAWbS<^;;b?m*m8$$5O!91olMJxr*uJ>$FFCkR$So*VL;EP# z0(Z|tPpsS9d%z6?q{l298&<4N&9ZwsXWle`<8E3xw0_Z)O1yZ|s7ViEuG@e^zXq5bmdZ9+=`ZRe)1e;7Aq=^_<2zPv)*LYgH`10Hi>fB z`6{ECgvdBjuclKBwKyM=T`1X51YtEvNJip;Oi^~hz-{zbWo)*x2P&RXo`(TT;odTs zn64~QR-`38Ci0@;AE{_hjmU_{yr3g^XB3eaP}#9y%f-}ecCnW1YuZJ=ZiMF^i5;T) zcRVK<)xRxNjBst%L`PJNW=Hy1P^Y{+f5(gt9l{;MSy=&(Cg7R=44&&MUQmRW{7ilM(Oex5#b09}*nl44QTJ`6m)-NChrF;`bXOa(vY^81F z0o|49@-OLrnJjQQFu$b_Sh=Xpje;g04##q_u zzFPj-31uJmyaUqHly6xZOO(Ofz0{6xhXzLq+(?Y zn33;Uf>_LD%FAcE7tU;+I5GCvZqj z%!qgkkJU?J91;FX)pR(Qv?|s7j9MNTX5zGjDOzd^f&l(bR>p zw7WHZ*+=z?Q&g`|V{dMZv`@s|5C?6W_(=t!ngdZ2-kpm|Uz|^b;Dp%K=VWc+>T=Sb z9D0LK?b*HU`Mu9V)niqo?-^Eg=eS{Cb8G!4eV zq;zFzneu4MBjp#$Btk#F!IFcf{~cL!bus)KLROu~ll`$1$QQAI@qp^rt~J&f3Bgtm zDl00YNU^H?6t6$|%KB&$`H|Moi=<$4$UKg+dQvl?4uH*SLn?BuMfAVU`D$A?v9T;w zTOl%{t!bmM3TSdCL}i5?QEmncszr5(gt`G>Au$}S4T{s*$`)=AlM9)sCQ?Yb%Ab*e zJf0Lah&_;HOBFLBnHlS=GR>qlM_4GeEESJSJ&}r2{Q;=fGNmRGYiUPLrB|H(bj~j+ z><(o>_k*xW7te;JB_aZ6R?+MZ1FHwzcxBEorRkG1%?OV_T=0h}!??pokE-}!d8~vB zwj2~-G>Jh!igeFDY_;+^*tWm<%SM}%(`5%KG1Sl1>L{QlZFNM9Sgm8d+3HACNQPHh z;G03cOyY{j*k+>@+{kTh?I8iL6B6(ehT(B|HYhLl=3EIc>}`PuxQD`fBWA)X5HOC`V{(-h+^C z8;$ahunweT z3}0v|!s5x7xF5=5vnU=$EB(|wS`-gCY)w4?3Z0knC1}^Bo!25|Cuq)cMKPLR6X%mM z#wTDj@;Rz|d`F{fLHag)a(NvE&S-oBY8~S>MsuPjVn(=ofKsj0L=2AAP$?I8ir=1>ry!<$KC3hZzGsWFg$)iLdDsRQt-#;b(YA~=12b8};Q znpQ1AZ1pb5ms~nGk=i<05eugmM2wJLB(f1vqXwmf#-s?BMc|vvcjChj?)_2uRZHnp zx8h$1p|6^V=DtUMd_#Ht?DD2(tDqy;zj=(@HbnWeiffi{gVF!mIL|EAWQoH;SP6 ztWrmX!Lz?vY4o_XO0BYr-OFd=>J}f@$@sV=+KtphGICXauhj)J!`L-eU}qfUhDNKz=8Y)M)j(F!T=tOFUBDvPH)8=hP$) zhTW}ZW~s!EHy6wSML z<>JQg{{F_7>|^D7H(sou1?iE!lWzdgBN z*{Jf)X*pd>{SRt-E4xd~pQCi^$@bP8&}*8E=-kE244{IJlxBW2Qb3xR$by z#dXbqsLN&cm!*L@ZCn~P_0rP(es4w8Z!zarM9nTeR}nq0gPBx>>hvy_*D>j0VVeut zE$82*mzig+in^_|#guk3zEf|L`bpxTyUnF-cd>fIG+Vo*&2r&pYqw3wyLi=-_;pj| zz+L@6eB_z!Km2%M+_Zi8U9oPp7QZe@%`85qZRz3-`m-DuUZ_?NYTGEjquR3Z=bl zO#fE(EOf)BxXx!~I^Utob-wvjn1+(zrP-P-y6BAlP6t3^Wjl2vkkXHY1eX`ais3`+$~|O!L-< zv~-iq!{aV3V3$iYr%g^SUsRHl8+N&~&ET@7fdwbuFu}zDYCx60fB*H@^9zUHJ3~43 zmwV@aP%#t=;MB9be(Sb${SzyeuXyq?2jG8SRJwjPVeW+CgKrF6Kc{ZkdS&e21?7_R zZ}{op&RqxI*t?tIX$chuKQdW0fNPaiDrQx_fB+xJms65x#_m5cnhlKe>KTn!-EN9k zkIJhapU_q>yS&a67!~JLwT}BHw^wMRD{Ank67ZB)FT{D(B6ghzt zjIt>0iXyQ>#4-`NhR_8>?5ziHn%@yvVs`rXi*2!2$=9)0 zwvjhpdP&**$RkSqOD{3qu|xA;xJGUmHDkRf6U~V9bG7r??Z`*Xoj_Ka)8jY#snj)E zh^Hbd5Z48E;b}R`M4(-P+LL%QljSL>4M0TzB8huamj~=zRqIUH#q7EoQ#p$)ag9@_ zX`IE`n#L(`Lw^6^@RX6y?7tPhIXbcGnVkb(cPnW<7j9l0d%*)=-LPcCQtc|+h)JI; zI*0SC#vGk{ps%SyHAnq&3|U@-Mb~x_kN%M^8@5t>A4l`%GB3ot!K^})_#?bUs9 z#}He%i@3$gJhr08$h+Bo#&fXqM7zhMmPNg!6HFlZH%k9o8ItRW+x8&>vQHn6C*77} zuv5DvD%;rO~4dNxv2-^n1tvdC|P^U((+S-cs5Vh9cyJv*@Sz@wER!x&KR~vp}s$$HC6~+Z}ma zS6SD|9TTEp2wl@N=m{_aSmS!81TZDzN=kUiVr`K3SoSknRA8N=gItO4ydU(yI!Moe zpeir}lgaK>IZH}Cb|(!qv++VeC>M|u34#S5H4V}fHPL9^xLIo)su56_n05`Na7`(k zB4_fJq&P#J;+0ak1dXn<5FI2NkcI%O*T@Nv{{@&vd;^xY-*nTT!_(Zq^!D4Ab`<9z z)TDikZ7Clk<^wliK9J%2{CB%C*DopQr{ffTcBP`vN=h^GX6v)k7(Xk1Ocu6g_*eOZ zo!_+c&Thx}Tp43C6f(!~F}_GQWBjPhV+%Zr&%5I>$sJ3?mBFNVWR?DpDgAGOgEDn^ z#*>$=!|%nsL!^ABNaiz5ly?w!%ir4VcD+8E&$uX`k^0^W=SzGha!~xKJrc>}NjZLD ze9mWNtc~el=NIiJTeoYIwkKM_*BLfT9%1--;T)TV)(N2F^pN?@`||w@2Jt`z;er5g zX6k7K6Nip5T;@0L$m?HGfd{DpHRa~KjP_FhKd1V~d;A}{|3CouA1(~{=%)YAmHsz_ z({lgis@~o7|6{6u%+G3Menz?v6b3@6?qyy;`#+}izlGvBll>*#mxJ=kRQK}w zh>fI`Ik_9gP#Z<5zW za{dF0fz@UE5+rM>YyvIWi`f+oETIv?CDe^T3rMCyzEZI7AsLTJ3hg6oj9}Zbmn7kl&6|%f zolk7q^h6Sp>Iy8}{5k&L<};nB=NoUxScEdhP!MzCh|g^{JM0#<$AUtda6H@;ZV97! zcu|;H6NVrRG0!Elaao;1^K5q8n1tJIcV?gw5l@lUFcgvcRVkPuxuhK|p@mSdHcOd} zGWFfT4#{(o!n3pChi)3r+_}p7#X8G+m4pnQ`<_iySL%?d2x$m)EjArr~IW^%Gtpi&Qwxtc@UomR-0f!Qpv*C`Tz zrL{UJ-;ma03n-NN27TQEtV;28&~x`U{MWT4zXj^zho#ycJh11}+$<%5OG?9%61$}A zt*bJB9nbjP+KgPU%r=*2f4}$p9Q=Dmiq}+{;^ocw&OG`Z+%=;$bvqq4eKCP=lWEWBPe3=8cHzUn8jwJPN)@ zZF>PRni(1>Xeu-e1Ok9lYHH|HGyV>#Q*xa0#-1{7td)5qc|V8F!%j1kwg8#VP2xnR zoI8cjtpmE^&*M94Hd#$N9kQy`E~nMLell+@w>DT8TEDk)T4dGmfFg2(-t#mDr`KJBKu(~A9t+_j!u0af4Lw2&iC}!Cuj== zcLw*((;lT?9id%IU+$y{xhHATteUmp`E%J^Dm;+s~euCm>GuML`Hy#&j{26_+6BzXw`Dd{`H z!Or9Df`QG@cUFjv1eXi9ZIs(KDs8{XY@5RHB02S7K)e7LX@wuHR>vZP-nfWDaG?ex zlpwe?9M2Nq6)bwp&N>n_6SMqTftXy}tt-R@Y@g)M67H6)XO&ZXu3WO`z=PzRJqA_y zl&KDOp5Lz00yeE5PR4u-Q5ig1dK0%cN?Zd=V0J{7f0V2hsXe3geHt#4=C3>0nQYgo zw5V}@Uzo$ECOAQg~niR85(VNld8ODw~z_tuDVb-)l=`>}_te`$xa`#3{ z?O{IF9*X0((L5~YxAPzJXePgi#1R2J7!0NdqhUm|x)~GeOm8OF5bmpLR%ud`kjGk= z9t*cS3%A3wU=PCa?FvVw`)!l!@)*J3c!2>hj8@GdjyI{G*1!sCsEz|8)FP}1=@7?| zvS2BXZ8(?KF5c%#9ZEcKa!nO&_(d6#+ z6dxJ?^#sL?8x}9osP%f5!2-pI^&vIOjMhMW$N;c+QsnbzQe~q8#&m#VUHO#b5)BFo zF?sY_yV|_sh8x;%ypiz_+BOIY$w@=E4@usT*7<%&#Q|tUESe;HnuGzEhMCN%Fo2p2 zU+}+DzF=@IyeZRnc7fNQas}5Y_cKWMs!~349nzVz5Eay7l6#l>78}t|)E=RI1j{0Anq_CE~9p)pLf3WlI_WXREPC4BW?8fq@n!5w!gMRU#F66daZ8lOb zu)ysDK2vkT$2ySJLW)|k1TecQ13N1#dVrJbsM17m$^C};2O=O&q*kTHO#7W_XvAX%?^e9-T(Q=sQYZghtIxh^v(z1S#Lgj*&`QsEMo`3ew!~? zyjm2+&&Ayzd^$^xttIOXBA{;sg7Pe5LFT!`emAE)^G zSAt(Mef=)r%6=P=`u|yp31Q(E%DWft-w*uJZu+Q{Dhpn zxCt>d*p@8MQqUKS)Vk$w*7 zOcsk^a9XWS4u!%db92IEvg&Qt=7i0nH#8^oNaJlzXjsPHoM5aA!!QE@vum|#68vV4 zNl73fRU`4Ir`(>MDx=SAaF+`SG(ug5K`MI#atszbRoAj1l4iCwRr*tKcFPRH?LGo|+Z3 z!<=%0vIw_Gb53Iv2MbjxoMLCM5P3;XS8j&VLo!>Yz!r=Do_nMC&39*#KSB4L1(1dR z>}XiAedq14$F8+Vor7ll_~Qh*4?3ZH|Ni8&uEO_EzWJ6o?j(%M(8e4S_7mJMqi%#wv>j@0y?k=LKxNLI23e94w&$OS^Nr=Wq{=Mz)0Gs`W(i_wL zD&^UF`k96f}ob{y8@te>#U=vJG&xYy*^+;{mEI)n#1fy_fnwmFk~a4jz!( zmzLrIDnVsQ7N3}c^|RlpZ>N_W3viDl|Eh|rQaw|;v79`>j!@{nfySHQcIA9|s>g2V z#cMuW9>0t%NQJec*I&}xD(RlMeF<5Ro}gzei{3I!Z#z9FwKBcuOLQ1K1`SHn5x{38 z#+70@I+4D!-_QiWrg$q!gDfv@E}l`$eZm(v6pyAqFDyP%tWN!k5M6P;8`goO47Gn z1q-^xFAj@eL8nv=3$t00+PxV*pQ?$K!a&RebK-H8*J3p4onEiU0il)G>wSLS5B0zg z&B$%Gn6V;YG#Q%`9^N$C)NDcmGMTgvTin8HSpo+y!y~>Lv!ve-sPl@Js7NQPXBMfp zD=9Y=Ixz!2F=mHN1TvA}C(f4;6klf8-y0iD%Ur+0z*1O2a1_OpOO-f4>a*%C$AYex z&n^u%#0pq(RvaM3T%Lf( zucYw_8Sm0!dtUCFu{6fd${bj@FLMq~;0$y##^=fyoAFkq$M6%Q&Y$1i7}Q?uEysc# z0e=TI@j?ayXNz;DbCL50C+9>A^jzwJQBN<=U=JGSneAcZNXk_3{S@hameN3D%O=VF z*?=5H{?0aW0;#1Wq~^MnA;nFi`|;9yI^D0B>KF6*-tyYe1vQur7MLmXq<&8+{kDR()cTw01Kuy~1`Eho zf614`n7LPg5nL26R^v|~Z~C5xCwX{+lzn}eXV#FauQPdu=ix{E4?KfE=gCWfBU~`F zfmVdYztJI1*F@?i5sY8@s(}xx;)s(&ZwaWRIbB-94*R#Ks!Fi!aybcNE9m7KG67Hm zE{j(>)NB-=1T*JDr9HiNox^0cVm;dGP-EMhLPMAs6IP^w34Uby0soAtJD@cTH3RlUe83z0%*QC=o8;!M)@Wu#yeIe<;SupL&4C**=M=@K&w(S%fS8Lsa3 z+n3%Z*Od8EDKvxLPF|8KFhgw!%#pY@Qu`2uKo4+Uyj*K?+6oK(el~2gdGG-+p^{Q( zp|8-_oG3ID8d!5wWmdH$%!u`4No)ZbxuX<-AqST$qco~qftF0dsg@EsgJueap{|yS z#4F`exi;~;Uy{%JMxABZVt!yV1KvnF{W+3cmxjEv;p4w)NAa& z2Mww0Z64ll$y)Kg`SBt1lGKnk~nhe~;&Az^7wET+mu9tlDSJo+NId{-OX`s61h(`o4I&&*vcVxE((Tja*J+|YP|zy*T_-s8bEM+>c-lX3cp zL{E+vWxdH=0Q5%Xp8*k9Hu+AjW{Td0WI*E)HPO~47N z;~pO9Z8kLrIJZlWEo!}<(<086Vy&re767uFQSau#vU`*$R_ZG#29;RaHuc=z4% zBJP}bcpCb7cj)Ehfw!Nz{uWX=7tLp%8F;jc#LMk<+fS=y*P#Mpt9= zS0~@k?t;GLs4qfH_xCaLI_e;db-9boTdDP9e+nH^$~$FT#pdJ(=~_>dvE09eyA!Wo zpLm|#X44{G%e&lmja_5GOtU#*u^Lp(2?LvhcajBRT~I~b4v`=#?3EvrToANWFLUTC z$cR6GF8*^v+ay?f5}pO8i+74g#QHUl^?YYJ>;bjd^6n$P-+17#c)j?bxKCUPr_^7+ zOwxld>-<(VOx1)>=ID5lMyri@?O`N@g~F&C^8mNi9B#h03RZ+xd=6TroKac}I_S(Q|D!I0$n~|@0r@Xr(H(6Q#TQP#DIUEWUV$fJ-Q9Xa zud{jwhxC7}@?G{1@s#+7m=s@t1$Z9&;joY47`R}WbHz4(t7XWjuj=P5k>*2UFII5~ zi#Cg;APs!rUssF`vWzhghxph^&EGnmzQJ3P&QkLB_a&{fbtYc1)oVrYo zyh(hF zYju7sBpGz!e1cv^eo&2p+_!K;QiIv^y3l+fFh(aQrZ(pqtasy zCAqBEDwlMM)=&ba=q~~&AGBtKfQ^0j_zki$(3G%v`8>?=u-Za69>{cG=A^<|L!`6-tRa+RZpRU{oHUo~51(e#Q?Gh=+POdf zbmj|j5S-faJ9GDv9e1s0-7sr@gZO1);zN@@-wT~khi~C$$sgU~TQ{M%{_)K7@4Rtx z!Xa|+5_s<)B6V;vj|-?6Mh~={o;4b1aZe6tiB+#f0H(8zvwf^GE^R1f!p+yZd@hh3tJN_deKf@wL}n+`0bRWs6orVbl{l0qlGcpUvCwep~Q< z`-vZi=Lzb*72-XBP$LLfTnI>GY))uEc{kgg;kTg`rYIx}$s@lMSvtO3v$WsXNG$&{ z^cDMA@|SJNfonF}+RR(I@7l;&dq!+T&vE-Oml=pp0H@OlCcWP7aB8WOMrAVTtX5`B zg10WTK4e8!9VjoKlBuTWJXn%zz{8k2f+E&PZLF4Zb+jwiw?1z5oN~V@wu>9R8+?H~ zmW>|F1^MCUw=VtT6xVa<#!U-tROVcYW$5{;3$TtoDP9)wgC0E$W|hmun^9>=DB7F| zd3o{*2E05;)%SW)bHdBow9N@yHOzlwh!KUCZydaj=TFdXp_ zoCvR<=TAviqIcoF{)O(fAM^FFR^v80bZQn^1--$5H<=9tb!wx71$qqvdHBpqJ06pA zc%*rdEFJ}HtUs)!z>JV0Jd&rPoeQNslk@G%PH({Pna)|RSyk2i`qd+)} z45%O)%9KykV`O+J+7s++*F8b~9 z_N(UJaK&S9+K#rvvp3zCQS9#c6VHi<+UCw}V;)Y%+K*?|8*{|9Qalp@uldt@V16tZ zLiD}7G;Sx)ex&_RhkCS^D{NJkNzu0MOHu1YH>&2?>D;N+DX?12nQ0WmCsXAn{t8^9~8d$3l|A$3B($TUHR8zroveb0} z5>vwnBKHf=lpw(t#+Z_&LSmoC~oWb+1ev}4HK+u%U-_?b)AO;|T(f`m`;+-)Y(^)o&Bek?Xg`;%?xvXthS2N0;ZdICM$@ zH#=sO4cP_R6!^FQOGP&E9ClJSaRg_UrQYDVJ1r`9ll)fxt?EInKgqs`pvGdh+dVE5 z&;Wc&TrCNc#bjZvNbkdzJ0%ZHc^#v)C-E!6%%A;X2gVWR>NX zjI{8s_`*E|XWDR%>BII+ zpZ9pb>DS?-Tq?eUrPXiZQP@+;2jLK2WAg4lBp&gq^maQi8O>%JRu4mAy-9CEJTK*d zAwS9b$eBqN_FZndIft{CJPjUpQ+V#p&wMvedhYs}Pj**+?&X&UY~C|{@iP@e(naX- z+KZD^Bk|f>F&B@=gKjnO;t3A@Sdjs;*?XGVu-ZwD`ODa#_mucpk5<8RUVp;$gcMd4SpM(ITH8@&aQrsq}hF zQ$jDONK&PP1j;mIlbdaQV)8PwXE3=?UeH<;W$jPbZ5l%sb?hB6IH)9f16k2{Z&-~l zaYM(wg{9J}mIMa;Vd1VO3+g~+wv>I$-9hiUkI-qddNmrY6Cte?`2$`x*0juCv)19! zJM=9H2htMpnC;QbuE$oz+9g+JmZb~@VkHOBu75*TJoAxw;Sq;yCZl=cK>|bpJZv3F13Pf<*PK$8BQl3^wdBgC%A)OW~ymhfAS+WMB}+Bt$7P4J}l#J_yUu zLd83HsW@L;dgMvC^E-$hzYFdbf8MiIoC9y)uv>hV`A!_eE#Ca*;jM4wb#$<|&09=- zgb-Ya?W_)b$9jOiabJPf?kA-IOH1;#eoIkNusKm=HCZh9C|KAu3?^CH3=M{QANn)3 z{qf}r$$>e!sB9W4Q zWp|v@V%u3BVz&hGp#9xIb&~rXeoXDK!-oz&)pG4OM z)D}0^New7kkmnea$jjpquN#-(y(l~;f#9Eb0_Y5S<)9GPPzI8PWIu4m`8VIxw@rf7z(|ipu)FRTcG|Wm<(3BCHk zZmS_C2M+38Ro}~$Q4?{E__=w9<*XsIvPvULF}Wm0!c24r$Y|9D10x`-MWaHz~W?vH@Mies;#oepWBBsGC={$*~YUF>fMLDTG%-!}^^j z))WXzy0uHCR^jzf^GsfvD`i%B&w!6rNIu$a`O&NQ$m{(C< zUp2V@;+5=YZEb(-8#7YaW?sLXyE>)YF2dtbsjOygR;N=idRcEED0o^Df=#diJGMT6 zF0I#6oiLbq|I(+Kz+}V?!yLaDh;%~MEKiq>B zcdU8#oRzN2dg|Dq|-Jh zbO>0oEr@J+?)3{Z z>d_~^d*{9Ho@i%A{nBgm$#=xvb~qYFkHYb@^=%(Di=Q6+QWU>@9Qs;5YSYgW?|(&n zPu!off4C^cSMC{islMjT2Iug`{l(Pv8%N*JL>n%r~ z-T(4yjg$LSsRuURwf7eBJKNGT?dYP82VedWu7{iNU8~z__~>1+Rh;rFp@YOIBrzQ} zY;!sU-e5#V9@!mc{I}5pu)YIihi5~EEhv{MkODLbe;}4`f5^f5Wqrqc&M(NX42oAD zPJZ$hd;pHGy`H`P;fASzR6xAg!U`*!>0djpmZUy%SeT@k68mHD7(rL9! zFl6_POV}X~+2o5eLrzu5FQ^I7I3f}!GIe$h? zIa~=1$=gwH@h7Y}H;bP!Pj<|MdEzI`G&p!=t9WpkxMyW64Vxk72pf%C@%nhc@OTt* zoI|SuW=0Tz7Ug+WnC+QWDtxxAnAdXnvXj@F3|>oUs>=!%j>)PVp^25C8^ig9wU!XM zkNG7K?u5T|ypR46$^QD*h=1IDQv7Dz&TFCju~)_9uS1yM;CF3zi4KeSrufr7@%uaP zIWScG@tZf_{!*fMFsAnar59_@Zo8euMxIWucL6i&&9l25?&gFIwj^{mo5_JpSVWj4 z^T|?&3C-P1dLtrXmH@EH50r$FfC9osLJ$oY@{8DU(L=MK``Vr3#IH|?o!H_mfGSaq z{^)og{=!WE;+>U8uYml}1NXoI&~^sKeDLeL+C&Sbb&5EF&1d^!U4L*qA9_4$hnq2B zZJBXk>&eZINtm#<;q}6%gqOGAEw^M@dflumHh=7Li4o-qQu6gpu z$E@6FdBoZI_O0*CdFN?y4VsPiiSySU+<4yo7hb=_@Z>X#|F!bjq#IuOh_t4ScufQN zOcr6eQi6qE5iogOmWWNQws-;Cqu6P)+nN$Cd^#g0mkZhXB7~w%)G(#OpR8@x;%3Sf zjyR|ZkqVx?Ty&85d}USC5ewF`fghGD;{pW zpnBDEXgTZRE%%LVJ#X|?jU_$C^cmi7CG4^4I`Ob^<#l7P7+Ml88&EN9tXvc8Tzu~h zSpUxljq##98*9dg#2WwsGuA*I`5?a~VFkc%@_U;Tev8gzQnw^b*``33+a|~Ggu0^Q zW241{)a3eMb0Kst(=>e8^0~9`Fdnr1_O~}bn|G`D?SPf@r+SzVJ0=%gvFui{iTUpA zRim$2G=G-)-j|OaTDN|ApP4hSY1p)I;+@N{mgrAl`z4CcxfcwI=R1tRWwxqSDr_eD z@|;$Zz~C}t6ASN#4Iy1i0$G)qi>^CCJu@JyzIX}d{!~ATRk3VT{Oy|~zlR@<+%aqY z&Ij-Q>;W`f^fZ0}5&ZC5@$}#Bw=bB}{=kkM@RhbU@wE<#zA|i|G~+YlCVW)`Ogd!e zY&K*u6Ni>lVL_nca~3z}cw-W)LlKE6yM(~65X{^szQ5-IWDw8l z_4f~6dusn{;eE!%=lu&#cnvOJwMu+^=Yxmuy3a6W4xuX_)3uTN6kFG4#ltRrA%yus zbFf&?mh^~15RPDT!(}Rr@FqLHZze|y!^u*oV0}0<+;37bA2zp)4^vns*95C2QM!{u zV@EE%WN4N5<=5oe?2D%7550Ww?nO&)dh`%_{POXGdRoFgss@g&-MEJqW^bBQ+0Y|k zE!o;Se<_^YC{A1|`3BBmz3eC;VD8pCp6AqY9Nuvi@aE}FPAA)xaN12)EExnfpXp`E zMa^Vbju_H%$$N)d2oVQje}?tmA-*Dh*S=TBmhPGP!l}cZV9nZ>znIC)+$H|-_Ehmr z?qAc+zM$pTFX7nZZzO*n@yNS)Js-x4I`zN3OFW!7))GJxe%&jgR|-nN_cKzo4zUjeoc^?PGImj@cwU@$`?UJWBaHoMvitR#a>&kKAr zL3P6aF-8lG^O3xH(!I?V-RZ&>QZbECW~lhpaMeDzTD+S4*(Y8DSBclKD)^$tZP}?(TlO=lZO@)c+r7B$7c|BfYZfHOn_Vd9uuN11 zX)M0<`6%{NIR|(mvZQiC$>#)PSn5YxPW!2p`XTg5{is>mUiy5L{P}XM|J_ADA0zia zwL6@3Er1tg;;h?{&C?B*R2n<9HH8C8u|um5cD_%rq`X;i!*5Y+0|nb!OCX9AY-=^E zHbRuuz7@9*koDA7NqIE*gCPebSVZ-~&Y$9C^eX|He%r~jqwzmXfQNu5skjgG&+s4d zsxau=DqJf4-(WyuUPlU#pU%NAdeSTuu&M z4$dzgW1SRtOJRPUBWII@w1Fa|pUXL%aZOk3u0Dj8;VBQMM`C5}g@c z6x|VhII4p$6He;9e9EjTa*TN{ZPgjHg+i3JfIi^+6WTg*X#>~7y_mLQ{Qd3G z6H(^B(NWVK4K*1wf`lm>)CnsfWrW&_+ITIhrMSi9 z>v-5%bX-~kg68KemuN;GP<$}P;h;&8aA3PL7i*m28`B(}z0!A>NfHl2{rchk@9*v3 zU@26-A;q@@u}&QY)8loppunk7=}^>fHb-@+s8AaP(Ut_3jo6AF4Is}#J(m7}HQH=g z$#%JHtTBYG$du!(JhPnNl$>m?%y7#P4ReXvBX(8hj^ z(Fd}^V9tXFF5e;kx+IZ~aoM)7S7rc=8KmC5E@MYvJ+c?LEZ)1)!5Vs?9(mYO$j?U( zRNI>cg|w7uzQG!|RyQTAajj{n)e3^VyR0eU7HFAzZ{|Z|xeRbxr4-y!R1-^Gssf*^ zWRjYtwKbC4%`DKuvoUPu#jqlWSHc9X)v2<(Bv>YY|Lgw8Ec2#LyWWMBm>mogd*r$o zpZfdXXWv`KXxRHz3s(i+88dXr_!SGTTfJnvIC147&xkRT&RbIR&Slenges`{W7-A& z_3B>tbv(6X+jjKxwf9YKf9a(MUhIlThUL!NnRsMjf4B&^{sNDzHH9}$;mE2Ec7E2L zi5RBj^ES{i%H%QP88tWfgPj}Oc{``i`VNf=QCm`2CRzYq2DZ%a9Pj#_3&aWZ4V=np zf#fq?A!CJ2An}!wEGD0myw+6vRNg(lm$W_2eS1yHt3?&~MpuA}^6WYew7*pTJ^3E# zkKX5>r5qnrimz8GC@sm(ucf{ivJM1)Q^~m`YfTgh=vVvmv#=Tm;WMfyYt4+$z?UQK zeLgJU1I9psQI&4rxlWwO6p{Auw4?{EOI5tUt%Zq#LuJU_7u|HK6Bbe(uU|?hq`GYS z^C|M@lHMxgI+D+2olrVMKPZ@OA~Qs$lSoV$Yz{`cIYa+SogplzFPC*A!uFVosTG;X zZIJ4~&(Qpq3*sJ?)(Lor#bUMcT5OCuu$kQCfFC(X#`MSWJnOKzj#dZ5JD>(R99EYN zSuF6=retezZqQAW5Ib&1nQOZ<0?3tqcu(VWLVIeP5Nr0U2K=8q$A z#qCQLuO}g1`%fNw1V)mxxy8u`$Yzl@)QRjS%u7w!*6S1ZIkni<8phu=N7_O|9t=j?=$`_SF* zihaeqhl;+_-;y8^a4}^`z zVrODJ&8gL5MCa*DckAa=hQbf3JAFqpA%G58?$q0Ti-Iq_uO5{1v_74 z@+)V0G zhQ`s2=tv_3jWZh;HU7}ZHX>&5U?Iv5^9&n_JO#7}!W-!#2=YE*bq^~Tihl7!O25#E z=wA}%0yaMwI{_-PyI4~ib3xKA{*}@#z_rXnGViO$ysv&(eS;;M$@^&C7ux@3nMaI} z+ZSLSTQIDkNMp%tPqDsf|4+y~;t{!h1os~~KN3|7UFv_S8x{QF*O&|8bg2deVXlZk zFdS@mJ2F+XZfapLufdN}wIk}uOqjZZoj11E^^#1~9NcDgzB1k^<{>;D!L=kdVIG^8 zQ=d#4=Luz;Q%rwpeeobn{lU(6+v}@SX0U>zO6OA~&*vIxJ_JviCJ`U(+}Un3Lw(oz zWYk2!^Z6w;pMnB1pYXxXr`y8;LkC>n1y!%0^O5lXUISmJ=EL)3K8AyxueKYsl4-Bd)rmP1bFNY! zfqd_s6s|VUo2BnP-SvC4_CXV!k2KyXSSsxgk^XilnL89*u-2N;&pP%LSemP$k zj{5;;a^4~Y8aWcos+=MFtHP(|qB&_^M*J|0>WS{p(^{J}}`0XCWOCkVRF zb_diFya@p|Nkg186OjQ2QY|-LVE6o#*!`cvu_;=fDBC zw$9$#f767Y_TF-0R__V%CU{x$JF)Yg3t-g?!)_|N<+cZ}{$bC}t>dp4y>{s(Ph68& zabEqSg!Yhl4k}|Cv2+;}4~7jUOE9PfCN}~oS`aoF49Mql`FwT)Vn!;a$NmfD1vbFd z^haGuXQUS{On8}im$>55BQxX0p?2{f&<>3)7hily-ahZNJLevG^6IMieJ8}XCU2>j z)O_ubA#;3}4On0Q+HF@}e9q+1h4XsveQevp;_Y2Ama&aTEiP-6-e;t~nvFdZe>-4Y|&axR#V^ zk_6_ko7uA)Zkjvei?L5XIUI6#e)SgafBgLQgDxC<249g4qtE+R{Nn+F)g_+8UBev% zA-+SlT zl~38&g83J$*uXAf$Bj>%zi{pq3%QQvH?G>aWHHH4Z^m;j_tTW{us=)`E zIeY$!F~f$foVRf1l8s{Lm!FFpm&{l+Z{@IIV_N60yl2aX4V#CpMAMhgAG07bYtX)# z3-<-tz|l2te(~iSYhS`Y?pri--=JBM1!ET6vUE@D*1LALO2oLYnVs1@-ZO z3P6t6={N?kHak#RNs@TnYRL&4Y49A&arISJ)XGsTl-U&0vl<$J&Lu%L9rrLd-gJj~ zi)F~Dj%U`e=d`UnbI;NRqeg{E?i!_`vQv*vv3)QNed2yz2RRj11~?sSw-Fkeux)SW zXf_T~9-*KApD3tg?jV6Q$?5RO?KfMu*oKTsu4+Zmm8~7`&73{toN#4fL%s6m^`oNe zZ-Gyeng(&BR0PAKve>$L^E#&J`di>|$wx-r8&%}ZtExKt&5L5!iqz*)M13naz~ia< zX{3gMK=o|;c~yq~S)#m2#ZXZ3ffI!d{}W_`vQn7g1E+c+^+k`(@qzz@HHCt>hb6MP z0gGx@!16YZ1uq*yv_M*xA3S&b-Y74H-&jc0#X?XR>kjkLr`oFc&9-HXJsbq$c2r&k z`KpGh(N)b=Gpe{MiZ@B!;KU1_ft9IXO)^`UUh-b}{lxGR^8DRkSsqjL;4Sd%%=#5B z=<;;MvdoxQEu9zj?~?%#69S=drc&Q^P4O5bWdHt8DgVA7Hu$&u8NpxSkNc6I4xZ)T zmoSOiQkX={N_er1zeRC+^gwS&qaG=kN8=RCqm|&5Ow1!U@AjlIj{wtouXqk~6w59% z@R2%7xRqeQT7^m#F!>QyBMbsUIy2CDn-WHy7c{(>iZ-b$F+<|bj-{)0nR5h?IaBDs z{)74|VrJomaF-%nxMP3JcBSOWqvvqHpKeXdk>y0TVtuCw^VCb?bw-UwTkdw}7Zv;c zMNutV(<{HojlAJ-Ra1fw2g2LK$cVybyT;CvG*1KXEp1A8y&94wSDr55sZ_Xj<|NEX zk5Yeom-la@88@B9^tScN;3`7-;uN!ChUF*2R;=hl(DyjR7Eupj2x z27IqgIsiy0hPQpot{jR@WLPx)O(+U|Bonjn~>-<*rf}(p} z6z^5$uC@q)K#|cvw6CBW_3ab1d$Ho>bvP-tv~=F>QF zqUr^9Bwmj)&<8ZfYicaTUbRM3?$T+)0B9|!Z+!qyIUu;atbyg-ybWI+o51%bueMq* zQ<|H3MDDv&is0?C78xl>wUNwqAr(cs<{=eiEQacZR53NSdc#exJ_A?J-&(^yoSB)_ zy7879l08;zXubaWTed7`g2`hvM+ts=@ud^+!Z?^-lcwJHaAuy;%P;(N>e#UlKYspQ z>Syk}gB#0zO=}UmK_2EGwa6)G)K(Xd1s87>3>>S|8}+P;_4(Zp+k0-4DX%%<)T&J; zm0E3WN$Avw1*BAQ>_yD_r0Zj;tIJM0uw=XxR8>}lPzXk9BQWN)#BI;`nHj(P(#Qb$PxJLOx*5 z*Xtab!l)ORBdiL@9ACGMN(XjeQ zRv%p)Jfshchik{k&_LHrdSNxx_JkGT(lv_`YhevR0utbAvEMm+O@qpkWf6)IR3HvU ze}DL5=04qFs_%Lftp0|0fYoS>P^H)EwI*JTO(zl>2lR|y)11&-7z7#`xZ+ui zJ8LX67|yf$2wWr1A~^l4Q4eNf^4>Pl)W)nPYg^WN2iuO%nSizIk?~@KnPDuXECi?0 zsgRLm#ewF8$*LuZ8)m3xS!B>56~Z^>`Gyzq+GXDq>UEHAiI(OeL?DU8!>1-@C%3~a z9yu%?*$F=t^U#g~JL3bzyzSfB&yqhUi{M?!Uyz;Y+cs@lo7e$K0?-ig9OBageZkmx zajDVh2V5-XjDl#tdVdTR7gsbTdKL=?BnaB31lD7)4&y>{=qJV4Ab=0CZcQ$^kawXo zBjUOoMhi1SY0F`mRFc-AAgz#~QG^bBaWXXcIq%uta4%m=?@N1cUU2KMfus0kb<5_o zE}V4X;w?*upL*rdQ+Yf2rB~f>O~v^e)+`uS1WPvEqkG-w$_vfv+hgkPAodTQ|7k2seV}jL?*UG?-sklB16~ga zEZ3P#nx=%w=>#NxlrnVT`L0P@_$*iXVSpAaPX(3}q@WTgg=?SbKjy4K_xY-V)%9d9 zm5pcj*-*$%(%?#zzp|B_)fhgjB-hyiddGd7#ewxy z1F#^M6WLpcNvP*}O-q8O!J!ROV1z3x8<&)*!c4?0JESDgGaI8e!>6l9!0`{Z-*m6% zv3#gK1vzNz{0HMQ!9_0~nscph_W|)&@yyramm2XVrN#wnqIu%jR@LfkfE5IwLv{zW zVigGjqgHD)Vim+FNDz~X$1Il~S*R-k;3`bbg=_A}RD^c-9ER#ccExx9?C_WGc)8aK6SH#b87JbBl^?k_e`JzHi#O|hfDGmVa ze8k?Ih(vgX_cSMX3lnZmFkRrXGVXR=b{bmBxrc9g3WZTlYA&cQh7^c06Ob`l4Lujv&+FIdg6ke`_Zhc5|5hhfj6<^gJqNCMEZhKbscZ|NGJfKiso6`P+$? zW-og7WqdBQ*tQyl>DAyf8bAyL99EP#2I;gjbg)7P%XJXwAcr&-0u|8^tD{v%%$Cd? z>=?z>fDvZsi%i2&@rLo^#T$=ui~m@NK01B6BS>|!y`4c;#7YFI{pJPh;}Z-T0lGbQ z2d4rm&gOD4R=j)+Cm>&*S-^bMqQTshi))Ypvvq@k22!oD!6$5RuC3L^@HVJHHXF7x zoW#AtxSA7y-oYsP9p?c6eFP!=6{NazSK7K@;w5$3oxwb(|(-AmwWvqdOB#v4P zZ#33lDo%o*-U2U#2IzOd^=7CRI7BpXWz4!+zhEKI6_ip_6@o(VOfoqnmS@9!2 znAB!_fYw@eVI81QaId@H%X+kKhkYDoT1YSpO$k!n&C09wO$oJENla0;NwVx> zDOfskdq`q%+RUT4IEAFxcfT1kWP@+!%=Y$nX4p2j@jI9Pa&iHF2>1kdET9d`zjAAf!A?9YD`e}nqjV+NXbnl{|_ z@?>~3oIs#VM)f|!UWy)^D!wiLEdD4S2THu*J}jGppcD*?M?)qU40`N^8oQ>fr_a@t z@OdG_m^ibb%O@CrT#u#%mkncL&O|7bla&gxtuZ-*Ff%7Q(=4rFnO@r#5)*9Rj$Vw0 zeNf%IHd;|N{Kmz^_L_?=?#jiNPlgU+aZS9~e>>Or+m0*73^eRC+;KZ|KQXvIef~W> z7eL-_shsnG(eXlj7%T!bI-LkyUS@*?6tVXAJzK@T@c4$^%&_F+%&OKuyGV_xBg8ced9gjT@KVSFa)hiAbth_|GTPL1aCwio_Kz)65 z{cI%ri^1Z-YO(1#Gf7=FBdl;BtY^0*Ou(Yksjy;83{x7lR+ko?ia}Z>-7iVau89@K zoS4BwYlyw=_MgRf4vX*pv~I)ew=-3@zn)zBq_~{jvQBIu>AvvUb)SF!dGZ2SNNA$| zM66?aFb|&;FN0ppqXeg!^H}tDk3B!)=AC}5U^;EcY$J6Nyn@Z9aqt==wy4r9psr5N z&2gm|vy{o5K_@aXkyKJJ!t^36d8{$m07FhcgXYfI^Vz^_ZcWIE!Qbq>Z22=w;F39q zMSk#L@rx49G?MvjUGl*P?;S@IgPF#4aDsS0oY1l2g;!>n3O^uofy5t6>poS0iSe@H zphjae@q8IVHV>+-^0~$&d_u8$Od?cV49q5z*{mmtYyjUpAf&NXCEc(tQ=VqPGE=>f zmmMAw(uQ=~)HPB#Z-3|vo1jm^=ZG?I-M#Cx?|zU*|!`GX}sAme(W?p~!E$40>mtdKS zi^fiBkz@4H_jsNTyl4I60VDAF1gA<+nLTv9eNAIvj? z9BA%_62s2?vUv5ht4)V|@9z2NhwneV|6}_BesRl+TbS@CPftJBwBZ5qWAS_O-{Qwl zv>C3r>@|t^jq2QmUcmGaT>h!?-VRPH@O*w=UJnt6x)EAGigl)B->LP zAhl%}cT*Pni~?s4W0uT-U@X?%Fw(_0O+CK%hu zo`c6;k~4#XG>&ox$HD(fz>HZe=PPn^*-X9zy#ogK={q;sBQ=i?>GjQ+#vWM2@3pT_ z-jJRKo(GLrl=GQJ#0#tzi^`zayGca0$6x@w8#E={ZY|RCWHXQ>hYO`mjvQ2BE1_J< zX_D3MnnEeSWFq|MS7*-rAnv_joBP%|w{Kxoo0r_OmWRK&mGo4n6oHBjZdFQswnQ`5;H*NccHx4{|3WjE^ zunl}<<&M3Zgk$GUXgu%MmWh)t`q1>?-rZz=HF$m((fQpF9~=?9_E5+GJYKI_1yqGm zPzZG>VwUVYwV-ZM<4Kw!Z$4rE(2OUkHhVl~tS$TfE+Phzw#&O(_9RK9z1h-bo>0!Y zcccIdYGS!=HxiY0(HqY^eoEMHd-IBGW?s{B?v$C+&VMlQsQs0l`(OUY+(j_7X7}C) zO&^{=Wn#;%=QWOKBQ9cM(pL~@XY6&jOJ5wIdEk;=0@W6}eU;%m%+b*p*5 zedESdRiRT$(c>M%madm;3(Z@aw&&l(a(&ILwN-WT0gnz{I&Q^+Yu8M;X=p&~O)~{y-+h-&gBs{1 zIJna;fR(pxK>B+ujf0bOZ#r`E%O8F4x2aEpRNfXl!lEL1TX+x7m+g-{YFp=N7~W*^ zV6D~Xr;yt`;5ivQlyhacGrE&hmO9CeWs;IUvotlr^=cwa96mJS?HhjW1ZO^zb+b*& zH*Q~g>1oC%o=^kWUc1jAGzJO26yuMT{l?2{VPe464hdBFf|YeR?1h5&1_Xh?k^ z6J+yzNCj-H9_q0IruVYsw8R>6Vn$M^<^>X*xr|;yFmIgIg(;h3t$5ut*ktN|M7(0* z{L81$cNY9MaztT%LE)WfS2DzW*fHgUIae-PbY;>1W9>Ttq$-kzyI;RB`Mt?IJG(o( z%qDh$g`JJ09ijw*B`zaTl0?Z#K$a*-Q~^ctOn4}#l9q5{0QHO@>Y2{-lsmxyh@R%mMA%pT?Kv=Cm?Yw=YY}<@v0V;^LAL*j7vAELfsh9;*vfR=ZV>`@1A7t={B_ zV0l0v1vWzCL9*ar1#CIOI*IoI)Nne`GS*m8fU5xoi+j=JZfQw(S#Ritxf{1u&B>{$ z3AXmG3Jsz?t8KT++d5d&xy78StvB90zh$MzU0FE)Lw8Z=MsM4;C26C`>tjdGEFDo^ zuD(0^u7Oh*Et)!P<0#y=ynICI%#ma3ZoRi>&wFPKXK~!sndCCx0eMmDu-m0LjiOWZ zrMVEXOER%Ga$G7UG^&BR!m5SfON6xx+MzEs9d<9-zvpn#*r7B|JI_BmW9+`Sxp$+3 z=FBYHzn#1NN*P|cT%%v+cMNMdfGWe8nRdIwAW3NsLSvlOM%)+?gTu{mP!c%Qq#hMv z-D4=26vsI($!21gggdo=Y*_*uoYA9qdDq*GWX06+``(V0aL+KDqAU4>xKMfAxq0lJ zHQJceF}w;;*Kn@W#G#Cg%*>$8#J4QW28|&bb7H33Vh4rD&!Y0Cq%vvB;jr$u0$5Tf z4i@41I@r2#HzQ%ls$YeMw(m4Q1!ca^oi!BaYtN`3D|_7ANKO;X86Bqq^7~kvbQwl8 zLpB&JMx$c4T4=&6$&7$-L4V_nZca{0@~K`5m;)SL$YoaG^R+U$loa~fvPZs4Zi zch!I#R1J2HoU4{94?{2$=+v&1#knWN^fw6OB$V`mIiC5~YF2v8lQ;r&Vcd z^>PEw8`#tQun8BEAi(Pm$n5}lW{SOu9upBFU}CkHC4&T_oQ!w^+ac9(8c!rrgEfcT zIV{I#jys57I}?58?YFr>XEtu!NP-(SFq)$S^&rb_)jiz8mY!}#NOHL{B&Lx&or+?T zB*Ij3lO-NlUSHRt5~`cyxZPimu){WiAk45A-ZNWNh;3%}e}fY3U&&1yQrVzn2hzor zH;oOtxVH>#OC~QBxW&<~VoBRMbA;$3Hg__+XZ0+I>uEGzxW{0(5F&GkGY}sr9u|6n z%G>#Y5gAkwi=9{zQ}mJo@-zuur^Q}lF-oa8+X2%N$|+|YJ;dGgWP>na&5B7#V9ehJ@Z&X9Gk3yjT*KZt&WX;WK2Pb&vAQP zU0GSuqqX`~!`y-0n{?ue>&xj>Y=eB{3K1 zvn8FO7J)QeXqP05$y691Ma60MjFyIMIRh9(hKG4YdaMamJRZrkxr&vP-XbXyXd)nJ zBEl(oYS^r~YY*vukL`C%U$P~GR6R6%_x6LsW-VAn!-GD!X#d09+-py3&W>|$8aHjm z*n@9T*8AY1eUET+*?g{7>%=VR13kqFN@lYOx5)7MT9`;)uEXL98q#G?03;@l%u@~5 z?Ej4(G+yUO;I9Q9|83L{RBpfZw~)S)$qk=2yg9-&zJHw<1R19t8W?WnQxto)BpKQj z7PdCn`O;8PNo}Oap9|!et7Q8!?U@#OA;%>f>?~bFqkMOrGugOi&UTOd>o}r%oAGU7 zHbwj3Z_Nbd+@(DhanDfnqnqgO{SP;~pT=i|G4b7wZ7hGnBXqBU{1;@iF^0q~}oTz|kBuu&gJkL+|yT;pkE{N_)xR85ck z5)9%uTz|>s`JG#ZJE&hZ_wt>)P1$XOjiTf_PQAJ;@h#A`g4%@LG!F%`*<@L=JBV2p z6xkp%f(SX9BzUC$Q66srOF}{I8uSpSBYxMN$M4;vh6;0}CxJ)@XZ2ae-FNj>?s)qf z#&wC_!nfCaK!@q)943%%(@@`VOOMTl+_DU6e7esq(~Mzf+@HHalXJU?!QfzL0p=!W z0dY+(1*yjD2o6kxm1JQj2#q;ya6Bu*zb~ks?Hf(eqoxhpwr)0ay-jPA^CGC|ypwb;p`fv$bx`9<^RQF}N|+gKiJ|nw@JDQm!neXJhP^^Yh*5q^M=K#}o7h9n=<- z$x{=U*Gw~jHt9lINs^*b-Iz3--Rx;}s_lfG%rlDeIHnGkD~QaWHD}?JRhRet{_?6R z3+K!liu>WEZysB*H`D**ilcAg+qiyXUw(G~@q5qBoO$lv zw=Kimw>S^?XLsA`Sk6tEWmp&#Zmn2cMp;f5k(cL@g#@x}Fex^V(MgSX5)%DX@Wdb} zD9bJ9`y ztOY=OUnLI8Pc~c&qLj8WQAIdIa5zwAW||o&QSftq_h8taj5g?SFanP|+4tqxRBxt_)J89Z$M- zQODf84)rgLgn`5R9tDV#o~^(7B;`kdBi|Ni#0og|4(FLoMvEweaE~3LNyLOE&yzu= zm1XK~QXAo9Gj=C=W;D@gG`lU!xt*gqLgF9}`fyGuHS6K74fyS2A8)@CkN-q%cpW?b zI&T`^e)nA~_WINsd=y_%HyklPwP6_LAD4ta=m}3vIJCpDS?)o~u@e}pIJGcMks9M^9ZPVxeRlUru!bjB_-yiDl z+70V?z=)B@)y<5)szLUle#Pa?5?WML=C|3(+%A`xo7<+0R8*F>s*RNTTZ(>SFDRga z&I>#=!QwO6+AO6_8wf?t#hrfE~>6y1x7q!SO zhJ7}(Zs33L8t%OF_Z=SEVtG`MUzzTo%2~8R5M4y;KoR1 zOuy82Aw70Gs4mF~*X=G*8Bp1=x}uZ+-g~CCYS*=2-}}@$=fi2OhEC?UJbl=)$3Lb1 z>imX%T7IsVq1`*6-E4Z2ZnxP27~vdQYLS+cjcOy=ZWd17ZwFGeyV+twNxNeLp@bOM zu5D!~1)CJ(ZD$&_S2%g!?;@oXuf2Qkdq79^yV9&LWs|kZuD8C!4ZpsT-P5Poa*i2)~ry#TyewBt$q7;ZP%*q(fiY?%Bnk7s&!8t zCDv7w{CgZvK6CBdq`FpV4?EeKK2#nA;_N;>!MU){b!9X5R8bDd@nS+FjRFUI4v`Q0-1$vdkm#tdlJ zh2<5AaYgJtewT0y!Ch^R@Ts1vDbC3?j*SUR-pqpibw!$Xi{!$8BR-P0U6~ zX07XU`Dzn$g?6xhopdfKEvqxre&(mqmam>C=p`}?i~|Y6LC#a9I{xl$ z_{0Y6y?KFpiMA<$Vn)v!j8rCMzUBs_QQ(N#BoJcMlUCZBdIyDYkQB(61n~nO;PoeB zWx;}9UIZ!ZRqmIg^A|)rYcwtbt3Ju(Kbj}U=uJ!GjU?S?N^{#>Jh8ha3ca+(Tb-1Y zjRJRiyfxTK+n`s}2+b48+G_jmzVviwaQ{2F;NU)EfRwy+^2K5zUbGGO!P71B4@5&6E+A5nAA~Px(k+UMVz(P@9Pjnmkjd_5nL%)33s1>U z!kCbZ6UgAs9OhL<4@56eETQ&4%6EA z12eS3SQt=#*dd4pL^uwK#AM_JPIKc7RX4fSp`G2>af5oxo46G&e@z{Mk8vwi2fiF# zqW0C`wgZuB4x^b4;cOGKIh+=Y>;P?5@F<{BD>8FLawl6L<9manv9U(yVtaXxo)001 z94W3W&+FFy`)I3p+yUiOtWgN{s zQ1msi1wS$I`I{H4+jw8JZHo<+>X`)6ZAvEee5zm1iVb^zx8#;Zi$@RXG+)R5=)g&> zDhpauTRM$h34QR>2pJ?T&7aP3F45{2NoIzRkTi<731|g$N}CDfdE{p&hPq)r;qjiz zrFFR^)w-H=+>CSPk-6%MS3Y0x@y3r;??LDN>()Pd^szyBeY6YT{-AoF@9JwC&Mkl8 zxMj`4*LLq}*os%u@t&>@N^^Ta zG{wOz3lEqBOQg38O+J&4cw|IK&Oq&Mvz{`eT90L-U5!ihA&E$ELDK%5=mDJrj{~?Q z?9!!`x|xD}wRGEGmN$&q`{1)5I#28zgzt!UgPyK={_kBncZ=>ieDgEAdk1{gQwegO-b>F~qznnSAWjS8^=&#ReUV#_Y z?|xK2SJc}nE}$Ne*BLJD!&zpN7uk6pnTRjVg{g-kk|Z0IfFuo-B)Uk&gx*VSc4%zJ z7hih&yT9wF#aowexVuvuywZ-de*`YzW(UQG&wlWRBl-_*?N?J@Nrp=(oNni_$K>Gw z6ED(n@LarMG{MA6ehCmLegXQm5M0vp=fes}~p= z$3OY=D-N!j=Fb9|@J*0K{ir(Zw^2_Om)q~o$aJ~VXo8kBVycZu5GO_#OLbNKYze3rs4p0A`;In%VL>k0nKE} zS$;oq8;~J8km1kpn|U)R5@w!H8yw+1%~G8+)Z#Z)QZmRolGDcKm51D^sbfFF9rvW< zjEz3=a%$SxKd8@smYObh?_dAQY@^g3`xWpXn!_>&%?i83bds(pwk$$iCYz~6ux*fr zayt<&%nJ6BgC)VwgTzS0^tAM}fe|?!n@M`QO_qIBRkkTKUDI{FU#N3a@oc*zB`J1w z+&x?i-$PYYXPig*;*`Oaz5e=~87o%&^`zRZ;nJP67H&EFas7-*i~05&SB+Zgmh3C1 z-Sar;t9^%#nm8E0q@L(?)1VtQUAlMdTXI_W;TaSzLRq4ilVkSC8J>*7f-IxO2-1yg zgf4)Zm#ZC4XcwXXlLHUC;GoS>S#!6u&bU$&jLIr?j^!ZA=11bLXLD!FUD^5hpRYdm z@vk#y{Q3A7zi_SIKBGIHjT|%f)$Quv)w56D^J&W#vxjfqqke(n{v-Tj0zn1z#(|%D z5h|i5$754SOPH0~NS4oLt&RAR&jzID^!W&NLUICQayBQj>iAt>%v?3%mtJv-4@r5l zgNe7%Mw5w2i$;HvMn97sQ;n+@l$7Nbcdg{2aj%l~$=)Wt7O%GKP;Th=9y_Z9nmfFtFh6%QJN#$bu3xp}#>jHh_R%f#1CPD*je=LhA%!wT`r8v0gG@Pa702&XnBl zYzxQ{#70`=WMvMHWFf0p1mVFXi_o+vB7=+^jRDQI0Le`*!Njk0Y1(i6NSCT6)Qg(s z!=xikPwjEtLr3p^@cD*y>jrFFHEiV3eq9Fs)S%XFSa$mg^69nQ4SC~sMK({Hme#Sl zs*Bh`yW@oc?_0@jZ2UThvrO2`(eVTE8JPvM)go~mplYP!1afrEt2Mg7)g&W5^P$9* zY?yG+h~LMzu7+XC`!hbOmcmduX5bZ9%E&{}AMv}~6r|4^7ln2OddAEH9+Jq(mQUz^}sM9Fgz^`-J8EEu?Tllm0f)YhLfguXMTM_qlMkp7QtCL-^?K zX(PDK@f%(7ymkB8xj2o!gKTLT88|ata=9{XBs&KMXecv~;s!=|pc0!%p2gvvaT@3IiiqqTc`=@dx}he#-d$qMz7U(kO>b zb8Se?U~pXz2h9_Sp$q@6FN5Techr{~)Wf)MGcf>n+PQP*l3STTqF|3M34lPN{t`dm zlj@-#G$v3X^rbxAK3MjRbB}i{cNSPobcxZqG zAhkwkmE;>W&2lH{f>blde9f65C&ew_2)azSCVu%1WKMJ#cjni7;(qzuhuofMB-J$^ zpHy!JEnx$frTgYbH;~-8KjkpV0DWzTI-xtmy`6=HRl%UArM=3QnUP^DlI1qGQc<+o zJ$y~)%=9+S0_H8##_cFlil|yY)p3w32YoN)U*9}mO2L>sI7v06? zIzfPR=^S1s{QcvO9sl*p6n9l!^TOYke7Zs1I(&C<x-e2Yrb5Km4Xqqr*|>MC0g3#k`)j1(qH-v#*oG?D@QeGRrrPi(HRQKa%*JEs;+L~ zDtB~BPj|R%q7d%lEDM&^MzVwMtoE?gy1f;(5wE?R9=z&f*_NFb7hUJ>Si+e$o*=ks z{%5EnpPKgiBpcXFf`AV=XN;8AP!SB9#^C`3ldjP$`PF-N1-d zHXDtwlN%Kt29R$&qoy`mlpK4cF_m;u_>r81;W4NAA%T!|giy)MlEQ?~{t|tcnI-YQ zJ|ml+5~#hmEY?mC3eSdWaPd9&{mi|z>W3ffO^yiu*0XQ?_#o0XIOHVUuVhLDD9(Bs~C&3>9fPv|VAlYyoa#@i5a*l3^tM zRPwcOZ#9iqkTe8TmPnZHlP$32sYeb3I4SKsKByb?hey}|e2_SUSdri9gHZe+qS&LQ z+HRY49>G;uNoI6>{~FfM0O&N!VUF9Pj%aDP2Tc}ll=2l{b|6sRx^;&_&g+w;PMtG= zp=M`iD23h*9M2aQSJg&}i;>B0G#Lj*Y!;Kk!*?KXTh<%|zX?Pv4%yl5Vc$&wOqeHjg~8j$K{5VcYPo zt_c(FSjxT5l8{fU>t4R;gXBAGb7tQB^{_Pqv`cJt6MNFVG*hh;?iStzjxr%!Rhpfh z7tBF^e}=ddU@718q?MaLd+&pe%cu*H}>CwIjZyZI;nh zR3z3$iaf26%SB@ixs+hfIJ|D)ZyyBS{qzkTXKH&a&8hPR^veMJy<<3F7DQq)0k1OBO!v!P7qO+KIVBTEj2IJ-(@xgjYNDDmCLE3HdSo zPf{L)HCwi=d2#95ol72AbK5J)55&j?qkrRGj=s)S(eEqesm~PG@gQ`40Ju^+diQV( z-eM7~pvEDC)u7mI=D`sx*x;XNw7Nwyn8xdfTex*6*k-Y%G)*n>O+I)gdT}3_qx~f3 zagBNse|4oy`^{*tKpnx z=R@_p<~G0lN(R#Ls}pYm{92+e;b3mDTMA^fY$?g4s5n2THj?jeL^BD=rmpG#Lo8kK z3xDNJ&|PxyX${>MI`qoCxpwcd6s%wQO#Qo#_0@wvx*qbreL{~Ni!X3bi%5}3D|{!? z`lG!wp)3>*2Mtn&qS)+2s^Ok#}5Vt$o9P-RLzHYU($ooqxt1mvB98E#pSk+JOH2`REa7ZESDW z8rFO~Jm>`+h4#`=ML6B;^0tpUHfN}T~aIms?A1!!H5bPXgju1sM zOKuNxp3|LQE}C8EBId8JMM>#BPY$}u0|)WSfgG+IQ9d+NX`Q;9yE@gg<(oSP3YwLq+1)Jm2gy$!j*fy?Cj|V7qtKih$LzViCTGFBRP0 zws-Vv?n?B^pz4m?(CE)=JNM&6%`fC<^aA$;;9*DY!d@#-w%Oq{8VnBWMYDte4IWlp zJhOXsO&k*ql}e4OD>2{zh`_AOYZt7p8da=*y6S;$C6BCB&v#k=f?*6ld>;32^`^Hr z;4h=XQ}v7oOeU}5Y?kBKq{Y`JuX6S5Szz?CoF}*!>;XoU9kxmWyfqq4W(od6C8xA2 zNb#sf&T=i@PRPAHuXr&H*L3&I_jFso>}3jP0l=w=!{G&F5DXLysuxg6`l+P5Ow8Mp zg@p)~;~EA?I28v3vIxK#%;02&Eu6u?!-6q!9N?9N4zoDBgG>SKgmJ&fn8mGfg;Ost zTi^4Z(RZ_c{lbH?Ap8h42>6IrVzQcSvWTR5E8z2Xb+U(|Q&YsswItoY6jfFh4VgG` z2!Fb&UAxMmlj`bj0eDvc-k~@=6On*P(fE`ijB-T2pQ1cjm zAeLqoO^MV^Uhlr$wSCs_c5hq_jBlLvo;xX4C zGlQ7K6K|RmpNlx1NHW7rT7d({@woo^7%q<|4@+F+W`|PUR&U(>yV=`Zx4YL*u8T}5 z%EA}^ZGPqP!zbrXHmzB+`Hp+6>hBnBPDJ8InV%|Sd1;Z3t=L$MoKEKB}*IF*F#b}ngZZX)a6x&<>Bj4RJhPHNd?izjx>#S-sd!WDNMm1cJ-J?A zpcv~*H}w)XIW`T-+Yi&Oz#k>2llw54_CdWw`>+ryy&hYUzy~#gZp3FQ;G<5B{;g2*vMNFdA zWR-2#=X;gc=X(bl*&gM40Pj#7-hbwMdB4H;MmDlNj2=Nxa|W!!h-8OtB0&Tb7!r;X z7^$9O+aBX7)X-ec;%##Vb?1`VOP-#7{=C-56d16Ai2yKQ=}2r&PL(FXz%*`o5T@S% z5b!Pd?(^rT>o6YU3>?)ATZLUFYA{Ct#$q*z)Lw2p!Dd%KpGfwa)8OfN0Za-ud)cz- zOP6Z6Wnw3{2|vu}5SBB~QSOvXhnu2Xxmnn`31ou5!P;LadS5O-rpCqWm>v!?@+@BaZnQ&p(?v-+hQbuy@1GotyUn zF1v(mT+8@@H*5k}0*~-k1}?sesMx%#LCAiJ-B}6oTRE>d7x3|-KH(DBi$o;)(v0$^ z$oEDp8v{lTv}O_}?oAPyl#m)SfGj5ukr&B#z_cjSU^1na|2Szs)GuCF#1neP)BJjA z;>gVt#&4NUQ%2s{q5X}*O8R2r#!VBd`uDG@95j%PX{|aGKLdX`QFSMQziV-1ZI3(GlT!5BK!pig*Lahc)=``S2?~+~C8z;|MMA;YqAK zAcWicaJCOCtU_gY9<*_m;q(f_3F>TPZOroFu|8azgcD*2or@QK*oU_!VKXFNl8-kJ z1-PxOe*mk-hf91o;KQ;HOElms{Tf39zb1dpN&OlfFO>M2-Q;V|^=e$FG%6`&lzf`4 zI9=Sqx@^~mqn5}ZO(d4Z>Fe)O(UAT(1S%_xBg}0F*0dVZzem;t`$+o){y<*qyw25= zrgVbe3%4zzu@CqI#3!7CeZ-7%!-{C)K`^&k3>@ONj{sevq%Qy<_1$W!U0m>yD7t+#caw#v?r@vw;H!BGL@#7K2&fc%wwcrqJn9 zZ^Ea-%febn1yVs}L8Z6SD{*^Q(lWtcm{xKSAIB0d%5=nNH+K9l`;x>@XTd z;zqIv`@N9KffV3IBH{UT3y&{S51>XZEtE)4K##wvF-*T6!F)EnH18W*=27+MmGAv! zg?hQD)zIF32KTwcnG^D-m2pG3yP{V(F*>u?^1>TOjJR>gx{ti!ZsRMn^E5sVIxPB( z*&;k)Ba8&>ycd}Cn_!*L_JrH;1>SQN#vir9pK%-bA5j4chjSz`+vQKUAe8PB`NEdj z7BBH;o{RXsmxu|(X!1?+eTwFHeD&x#bfV~$xPnH*sm?qDIE&*pJg}vHmv6c$uVXAK>6&>&Rox#)D8tWsvMR%p$%fxlU+x)wWP|9ses78wd4zlUYzNEo=nEmeqqL zbUM`3;i9+dTZhMxSy3ZOswXjBmg5M;8;hbqW!zMpv7WvgAZ(g956{Kx)rDl1x{S>$ zQipRpVz((YvpV{950g!)#VXr zl2BQsLSJcP-2y2HdRrc?`Q#w=p}l*tkJf!%9ftoNy8?By!WJHJAdeU%j@L!vr128m zlGmMAj{m-Qulkj!foWPF7%Ap3XrUZyzDa$dys`l5t6%NiyHD!^jP)k9j?0X_&*U_i zv$&k*CiSvW8{=dcza@QTE~>3vv~b{{1!Ft3Zr!nC>((7E47_z_ZSAeM*0!#!Y~8w= z<~2f_u*_Mxu1xRYu_UJIZbr;>rG4sWXAWQ)dotC(yV%(a>_;+plGQU)967Ur=dA_{ zG1f!3=?s-7Y+P|LIqWAlo&r;ENCuez%*DO}xGy!rh3&{_v?7av)U(Yq6)s8IJADVv zsGmjY4=gv?JHJtwRl~Eo`u}O~SEo1I`;X(h@$F0=ryNK| zJWnLaV5CMjjt8l=L_1hX3JwF}IjH>Z<1fGbG9Nv2=Gyi%XPAv_DVNRk>GZIPasyGq zLR|MrT%ycz1OMW()k`b!4q@O2xK=ysORh^m>JX*4YTa1ZnL|Um+=+LrR4)mq)cqgm z=Y&9a*|9xPH!Ez_`PXuc_3ERN+qQ??wC$-Yu}iJPwI4LE4~&MY-phqJ>Z6j|r}41w z#4gal)%QM7_iOEEsdYqw`iy_`SYVt=!$8!Q{ixDZUdY1J5G86`hyT8wBJ#!?P|2$f zCvqGQP9TCLatsgLq#xc8_0IBc;ig0lk=O5_IJ5^IIvec*K35fXa1zz&O=d1^ReEt8 zGD_6X(F_lgq!_b7T>@1kR8p**E=}0VU`6J5gOoC*9B#Hc?2ofP{BYJE@!rEfV!sXh ze?&NXO|-=NNkPERbWmS!akGT_-H&HhiWc20fv~zA%6{3bEHg)_+gG0XQM4rNFzR9c z0Pf3dP0C@y8|$g2#3(%3OojV4H&ex8aXm;8x!*BZ-}3Kc2eTcS8>rcc8mqJo0z2Z? zA}AOAgBaw7h>x>!2ybTECq*#F9sL9Uq!?VelFhC9DSrg#3eST4YHKj@^%7gmr(kce zQ$<$`76{92(S!07%lI4nfEeSrpFgr`VTax~bh_68GD2!Yz;a9P(ZK0jtZ~FHz1T;su)*@q`14RvubzRM zrhYqc#H=1|#T9`TY2&lDcNl6eT|~6AuPTs(Ul+$Qo^ET9jrDG#v2wuaH#qp~%^0|_ zyBP;9b1DS@!C?Ml;cboC8u4-CK-DJw#D|0 z=TZ8^8htuJMrj|nLvpbQl-Z;6MOy=vJg`QXFqTk~madpR`)^tWwE-%n_Q`S7P)~58 zTcb)-cNCnf9y#+D*iqmo)Jon_IH0>jI9HqibZ1A7BR0iEblN*zT3XVS`Up&B3I%31 z@Q30wh!5y~y(zRTp?WhPpGiB&@IfueYp^q3_<&=IJg(1;<1JI<-wDsIU(&f}?+yz$ zX|((Rxrin(c?w`i0$bUqs!J$2$4_A<<`*s*J)B&8V(R8D>u&#R^LhqD;`jx|JRw<4 zVD*GkzgZ7BS#rJjIm_tbqn8xs3#a~i`?~O5lb`tCwKqbYf}V=i!~EHfAf&+VNQK!^ zP>=Ds{?z(9CC=uc`~Y<-dYIW?o0MmJymTPN^a|x`)G_GM*kPckoUjvQd>IEYC*c!g zq?yukiAcbh(@&2c1;QvLN6n=7=**vfnyHSNJ9~}>V>G}x8HXWooGb+-PLfWH!87r4 zOeOb57!q@3at9fVzH?^J1v<9TWw8WVdDXw7ldD#-vz6C)WXa;8{h$HWb?YF+X{6pq~pFb>6@ zfPT8E9L=#ERnYfjeLJQG&qK@(tJZ0TSRCsI^%~;!fQc@ri%??q*aqy?jjs*N_WFuu zdWCv@q29sRbFgwV!!|4kCK1;BOyhEGzf3>PQo6HwX*9MT)NHNl`;E3%^$qnyTpb(F z_&q^eBBXH-s;0_``r#(lo}IRb9)R|gBL;>f(mF@up*H$m9n|AVJ)oY`{HAdHyayzQ zNA&t+xd9uJ>o>+&I=HAu>Clk+)dT7e+Z?+UT!=H+-gzyiz7ahXo3BVlNA!E7@#Jp+ zrY9!r`w%D*=&p!B_v7pALuy@oAA)@X`trIi`#X-hW!f8E>Yokxc>l+HMKfU^$9AgK zXk6@fK!fhENdhL1jEX)dj1;|bN(_x_RXBh2@Rv{3%`cg7(;hm;ebnyg2(!^Tj#%t= ziK|zbJgUiauJ|BR-(jgTBxT_v>gDR3c6s-7>Xnh%Wm>`L(W?3^KTaH0Si~KfKn81c zITV4i2AtV)NapH|3?M*jH05fcf-3jwmfY~*WIJx|vaZyMi(}8jn0147OptPvu3RoI zv1&U}x3z0wGDd4ObqD;pn8}zR9k7J}LY^jC(v@4zq-wl)y&71@{h-#p@rEW>s}HJM z@%Y#>@u=T zWt%oPj~qQmy_jFVV)~8U`t<10r+eS&E1;b}0)9PWBVdj)!?GZLPBE0|{RB?pSxXdC zwk;Rv+w#OyXD5FK+p=2soqNLuH{HttMi&OdAGQ(ka}IO$%(^cbDF_`xTqFeTxeJJd zpG`h{N}Wz2e8=`Ubq>yrEuisD!baHSOfruRItKqmY*XhX#I`1I%pmvy3o{@JM-%_t zzrAJN*|=k3^?vBnEx-%BC=gaafBT$rLKn5obCR`jU>H-pjvDviZ)tILO|&>B`>M}j zN34U+cQz;U9VYv#&*`$SI)xjeUS#DsvN^(~$iC_nP4?x0kJSMm+ohiq%1Bg%Y@w|{ zl5``+&IR54qH#C+{Ry+au>PZe;#+W(a)l!f!DWTjqDe8dV&(r$m;c$M$5?#?JMb9b zfCL#1u=6avvty!Nxfifw3+?OEID;F8cQ!4<4ZB*$KZ!GzQ5;e19BkWPKpD#+L|Ca3 z77?xhbLiUm@#I0W^4hqY$?u@-m$AR$fbbQA2OPMhgq90p98ibfg`X6@`t=vlM0vzx zYJW5`_6E?8FKiW&Y{mPmFIqV(+lSuP#*L&LbdHK2bgGXfopd%``%To!Mr{%=PSGYQ zPwo!<<+<1yotH~8+dfHxCxbSfL&}5h=hSt0(U@nU;v)5{XP?#Dd{o_zN5@veyk&+h z$ZVE5qtPw`<+AG99YrRiXmL-OY7t}}Xj;s~YxX{s9Y=Po>|-Biy{Z4K>g@g%{l{3< zPx?@v(Wn1SBSM8Y^@nlF>vPwG~$8n$Y6-RjlD zR`ah7UAt!Rnl(e$tRAf8os8YfPe)V4^(YN!&1JAF^@1+pvgPHnVX2(DY%{ZUrJFM8 zEN)6k?ci4JGJ~08=C*DNzXVgenp{&qF~7*$uDoN5?)|Md8gg5um6ms4Ya;rTXyJxR zZFQYM!lEt#S8EF>k1nF8_$MiKiIz!|UYImV8_z@h-q?4-OH3cu&**^wK!_#f_pe{{ zitv*9lLZ@Pwy!(*y|{nVve->P4aWUnS+rhwNml=5!4?X4H)sx{gy)ePR;XDKki%g{ z^#;nRN=wqIes53VEsn-@wz24jE?x3ULdJ=i&$Q~@y-V&0d6GPZKOV>nlvQI6e$7~S z8ynYMJV6uxvn)NanFxr8`Un0D9xQx8eYdF3-BIRuWn#1&V$u|az*$Qw4302Ov*_}s!a23^Ex^bZVmcBk2LTIFwE zeJ#f;&NAP3H(N*idm#6=U^7RgByFzg{>i_m@1LA%g=O)5>~=Qau(Kf{z~ikv=Idn+ z8#t|XoeKgC`mI{Y7uPb$7ni0^eSYdxx(;su++Se(Je5dIg1*-$E#kO38CtvcpW3dk zK1z3f94m*qZ!w#YaztP}MxS?%XT2)m> zN8DQ(GQ>4Jd;0X;S(aUe^X9c$6kff$`#SRjBe!iEd*6hO8z*nA-MzHFtYh!tvvw_7 z_rQHych}eN-g@5y>lW>rHN1DnGOK~_^H9IX=;2i8)ly*fCCOjOci8?1f0s611I0|W zqaq1)#maL9Ta=fDN(=PgPW`u6|BdzEQj=%uPXqjbDVX@blx_N)*QBj@+j-PAEQjJ| zr(QZ2W}L!zwE( zDzB|RI|KLQ?@$k&opH@r0bksm^yiN9s;ctnljT(vl|lN9-=r1Q2(9xgt-gc4RkzNV zL2_w}(dX1dGtTm>KAkaR#k2i^gH+ys9_=g`Kleu{fvDVy;r z_fbWteYA6VdFB0OWz}4^UOF19tStW$3aal_l~otP#{l!%+!-@)?@u+FoyRXjo5UQT zS<4|_tmoK~66OEwBxw^pND>z5CrM0x;uoQj%&!&JhFEW9QsdjDO>GAwukXZ4?Pnk0 zTyZV4p8+T2%`*H0#*a#w6x_-KdDHQHcTGKi-^>OW_k>ar%=4X^XKcZBRtQxGQ zLhZ=wc`Z{J=VyKoJ|s+}H(U=8Q14E&j7yq_FesuwR}~agRp%E}38MD93fk-feSabL zGE8F2u#>~sWF|%t2+C}cUIdkd&Mj4?Qohk*Q>#`TI<#ul315i+^-KSWy?amW z-+yASUK9I=D&Tdeije-Bj(Zh<3wm8F14+W#fQd*GWxxG5I(Q^lnd1yeuaB7>jv@FV ztWdu^gwqc}oxy6Iur~H4v$C57fr>4swKG^QC!2)mO}N}jVeL23ccN#$Su+~V&uWANBBNM z=5kg>{g6Bu8>;D7q)8d|L#+(|vam*o!4Bp)B01f*dJ~Bsi9%^A%;e?ji<+t;fLf)n zrgg*Go$5F0*PBPr%UaX=r6rNmcVT(&{nbM3;d_S-9Wrv;V}-4U?MHF=YsCt!ucmqf zPV_aH4}f_PqjR!_wQEMJhc8`HkBnY(fosc^@GsMT;)FdK`a>@8Ew_Bw@T-ulc*E&%(Q2?A;V~xn`e>y@D^GPR##@ zQh-FTcoEg;26&L4U=!@Pc=2L(w`e?fH7Zaze*`#v7@RpY*b{^O3A}4b{cD6pI&7?- zhIje=PfX{NW%s#=Q@$h^joi72@tZ_MFnV&OBmx5J^%l`Cv?BraQN_v@j_=GUus{^#peu~@7Qe~yj|TcDkVu}Xc+_d?qdHs(vzqk5l@ zz`Ftbd1^Nen=x;ac+MbPM09zvz$&n^%{YkJ%}Rn_d-b)|SormhV@K9s!A7XsUVRm> z$8*$=aiO|J)#O9;EB^bLVf)OjbiLXn7sEA)GOonx2C0hZ@_`3#4b=7u}0)T6c{xs z1lwA(R61G%dAf#vrN{BZ>c=~9*B$)+96T#e-4VbsNEjrnQu0wQ?K`QCO^+=_ ztq*XnV=+_M?{W!3UP&6RP1~QwwM`qFwl(cU+V^P!=Y&nH9FLkkiVg$x_c(q5-_G3+ zy@-Wnf&`uu@cY6!;U|Fz)RDovaA~hW!Z={7)EpTW2rsw;0&CTt^E=4F@69gEElE3%An9x6eYdlBJx5T-!Oi$}rm)|6|06F(p%S{bZj z^sNpn4`5Y<-L=ko=flqZ&J#|7fkm>Sft6($W)Q&6L@%N%`9P#z3_`(CgJ|4Ry{8`um zv{ibIK~^sVqm133$sHlr$*ty7IB|Z$-S< zpkT9CxkK5bkQ!5sCX1kR4SAO$`0lC%9o0` zYMAmW{3fE3udIbvuPOrlbC_P@i1LeK2-9j6$|QKVRme>X0O#>=z5(>F5_(O5{{6X+-!1#j!0+#T{7m0+A4f~?^N|@_*jrMNhynRPrtm4gcYJ4ke75g~;@`%rl~Vn1=?Fg6?4#_`p8KE1b_ z%l3dL5aKVeXBN{Po-tn{tb~0iGi)O~;w4ew#zX`{9I3e#+|)yuFNs#YD6HId)i12j zVr6s!`0322*@ilYb41V^Og2FUb-laa172=G6V)bcZ#Z}9uO)?qX=MhWx%&FIQC;FtaJ{2OJ zm++6V=T7m@1??_#G244n<8%%P7iYO;S&!3+vd3m~X5!Bp6OsLZyWh{7&5kiFYA1BT z*(@|0#*C^Du!+S-)B(`dP!C+pxJc zAuRNVxi!Gdd{@hxHb3Rug9^_<{5A()oGpK1Q^tWy+|Uw#2XFBh>@}0xYhWukv9_~6DMr;UfLqy zLFb?Zs|A^Cj0v5i$134(j*2hxi}CX2(Q~oPi*oU=xC2pv~z~*AnrN**#wB@6P-HLghw!js+tC#5A2tkN%5%b?tln zrs^Rx9_6~>tB>qbyDg1=zYA~yD&QL!E|qLNT0{R^vgeL$PUgpc26<%zJ^O~0b9=Z| zwl%{gin(?v4I#-&S{5}Foh#xVF2cD*-HRp^Z7brHBFv#8ER!NSP#Gp`uZ*BEI5r{} z{rO7%*oaFp!avbLL`Q1YL+vLUM|RgLvGN-OeA#d@rj9!-)-%ds?mO8?QgT3rEUn0+ zaaQfrW^;M@<%b9VaquITZ^vGYd;ReS%wg{db!*$IXP&(#J^M^m*^wjM*`436{NjsM z-`;l_OGl2V|NbYQ8TFhve*6S?p#f=QBNVf-=)mUbE}-8mn5Rs%G+gcSDw&y9M2%No z63F5M-2^^R9!NvaTv7AV@VuPBP`Z^7FJ)28>)wRp@U=Rt`2_Wrf3wq8MXCOZ<5~Ej=r`J|5 z(d;w3Wp{dxY$7=%H&4z35i%>yVi5i5eprU-4g|~&c8$iEb@VGGH+fQQbj&hsNi~>i z9~F*r-JIs|Qe`B7X{1NQMR5rp@zJ{jm;V$!bm;iyk3YHmY(w`)J= zpS+M$dGR3dKnqgvVUQ**iq#@oExg@fvRQ3+MT}Mv5d%ph zy$G=oY@j!k7C7)Y2Oi?UJsr5hfpZ<$Bns2@;iw)>W8S@8nxf>=Fcm>33#<^= za*6Q;E_(JfK8W|9j{Ztr-MC)SV_Yv%9le=*XfgA8qj|Vvm-vaI1iJosO{2gx9)v4w z;R@{eTtRw4k*F}$zF5=id&Vx2sjU1hT6y%QRvtrnT+q9q$iyd?pQ;Wgms$BKI{a$A zd^(g*pOBtuO-nAn9v0+5R$h}$tKX&cYsVnvQTDHZu4J-ODQ{F`9h#d%6}v#4g{+PC z=rd>|Cu|0}(Bom^VaBo8KN~Vyh$vY+)N={)6Z!ri<>aHG;npCJIh_`ilT+vyy&ln1 zP>2e#iJ%;(g;zXoMKl_Cu{XZ|QTTLkvQPlA~!sA^OUk)r%fa&%AHpy2anFTTBB{;tZU= zcJab_Q`OVs9#&7?(rHT$Zui+6U%m3@_utTSWT|z0Z{ZYjqn0QVZtV=%1E!1&6tvrs z$7qC+EG}|p2eJb+B%zJi@@peDWb_kXW51F!0;MLJ)FPT{avVK72x_)W?c_ts!Z;DK zzC0dY(9QS$_S2(xh+@OJfBfm)&$sQp_G|d@ft&7o`myD+7vFl%3cUT*FGkN9u6`su z1?7Gpt;;;6K2Y55{yXm4wb{SnwsEr_*rV}k3FwLDL~)>g;Y^d+VUc7SF;9`qyvrGO zVdQG-8tdBX;$3u~vAWZHStN%;_M1#Bp-D*%<P}Z^1(w6z3||Mt=rYu{kY@eDeYDD>_61#g|F0;+~4p=bvswpg)i@V^7#fn zXi%S9`p~{xzEFR{;#V(WZ!I3YP&>QR)-uq3K8?#NIgwryZXWmh?YC|-bCz}ES3dN| z;Twkb88P&Zf?<8@^q7mo)Q8Aen2TIABJ9p+(Lyl>P`WWaKd%KNc;1DM#l8;*oSt5H zpnDPbNjiQq{g3Hyq?2{&_oZ{LbVMxKFp(v6RZ|XJY!4+*Q$iSvCtjn*TkSG2U#{SC ziRRrfVC-%?YE8w=o7(4=-0saT8eBhj#DK~G*J-)Bhg+$Bre48Ix(zN5$}OsgcW*Ug zKviH+MsC~OEPsA^--%uETJC0^U$tEQqZ(v=Vtka@r2B@)e(>-~6(A0t0j zh@TR?!|Cni^V{7*SGTDr51eCK2nCGs!xfIqBHhf+IO5%p1QyclIKF_q)&4qAjb1=--4D zTQ{#1xuCF&`poU_BU_(I>RO|&T*g(bl-h=GqKQniCvk5#u z@Ao&7vf0g^nK^yV`JQz4J_%%o=KjH`#3QMGLb7k3g+2+#*zrc1zb-H2U)l}zYj~o| z96EE7Vs;{iiQgp>0tOOk@oK_HJksk73k*jLXAP*rKpSSYyjm?tJjLxKfv%a@HVU+B zNo}MLK#^TrQJ(`9fmSZ<6iI`_{$_bpJ>WII0G(EB*a1$i_Os!X-z)aWs;1dOwrI4n8b=O)!$5{nzLzuXoAG( zb9?-9uW2wk8pVl_@3>^_z}x*izkmO{g>zT!Q|VV^&m0kHpVuF+5MGVVeQ4|chq;>@ z_SEOH9tpC4&(e99&>Q(!L(WiC34#caWV~O3izQei!E2Mp8h51q0fiP<2uPB^_H%eR!H|ts`A8lZ%Lm? zstO7I!#g&ksO2xYDhU=zkY(jXogj(4GOYrRN;uG|uJNeUpPLCrbG{%^RuG0EU^8OT zvnQY1h36cCotgoweIMU<_He7zmOOyEJ;z(K5{!(q%e=?rwhh%r94AnYts z=3Y<}k~cDsS^88zDj`iJtY#!`4a-YKTE)q#dZ8onwWW<2`rGFlpI%*yujS^Pe5LQI zmiQ0!0B%gPejeEeKYa>3`V&e05;QJHbFbxch7_Gpi)#`xG zpMJ^@{Zy9Ii2a%GhrsXm6Y*9_h|W2aOj-}}w)A^h>NV8>G5%_j={D4zx6n2qzf19V z`3`@)GI@K1=j(p|;NEZNz5L{A{Gam2ubaP;)Uemi{1s;Ze`3uTx@E?!9`!k+} zU+vcKbi!ZR%4X8v6fyhFTHdL3W(KP>;oeM$GTCh*AzZXMDd$PfbSDRR6VI7dJY`EW zdCM-qqGu&>ppPF z@Y+`=f53R^#z&rgtZ)C?XQqtZ*kwjFdU?*@vuhVs1iL>PXQ1NB{NicPES>V7-J{B` znRR2rAAXn3u=jwXh{K^W>xe7h^%-m$8;PK#)JUVbb452go(|5TeKK+y6iwOGMIna2 zj4#HQ&s}T;Fdy2vc8{(f(BshD=)w13?xqLf`QPyG&;>=PfuThze)gAhK;x;i$MBe! zXVfMQ+}qKnc&|*oPQY*F?1=s%Uy#{QRc0@bsRd-jAbb|CuU1xLYEA>Ml2H0r~rvQ z&pP0*4p`%W4n`5NLXv~fXK68TQt^{g^RCUNPSP+;89Rx8`u@zZeYf4U?#}M{%Gk-z z@Q0_rQN~W5{A~d&9Kyynb+mH3)XGA@4=n*hlW+Hes}{{iZ9}ijQD1_Nk=44`#sF{FY|nQ@PlJ&?wXfR ze~S|rh|>ABCW`w z+f7g~LA?h+10W;P!WTp67t1>nphe-L~CA} z(5M|OKNIBA@N+N0gS&cl&GI-hO1li5P<1axl|W7?GtNm4a~KsKShN2({Kqc**YEpQ zAKW#IyXR@{uGrk)KH~5MxPkldcW!ZP&aO2a|GFY?gNW@oPxNsvm=p1)Ycfp;^3UXRAm5)K$wwL_=j1rGDC7)PMa@oox<;$1il%AV zyzF=xS7I(gLR-@jSISZpz-LxVmndb-E+=ucQeP7vOOs^1Fr7FRMz>BMH+|aTIgW*g z#-2Pp?|}?H=j-2jarXlatd8IW*?>#J9f>>^xMe#4zKBM-ujHWdVB;rsMt%IcGLec+)g(GCQEr`!fw;N8MWIi&z2L<<2lHy9NismzBhkmi%w=pnbu zOF^-wmt6_~q3lRN^OEybl5KIwGL%xv8n3k?55NvtLhhk4AO3j$!^ggu`1hqzo1@RH zdSv#B+S(P%7c5)}_l@Y+uQun_RonU8MH^=H9(m^N6JKwH9bqQC15W8QW5Dz!v7>A5 zyMOiCja#_K$~yJz*`Mf54OuhAgv^hZeIf6sSxarwaPbZOZAe`UKp4avHLwG%Hi7 zYP49xOres;`KlY1{J0Un>vXnnUE{o^|H$!9*TC*KJvizO{MGWecfEFszoBvQ%y)j~ z{_`bXa|G&Jj~p57*!rHbG1rxh99dG?>jBu|8Fa%_Gq=>?kMUV}3?I8=QGC`V04j}e z53qs4h{Gi54aguN*{(H{F9r(`n=VUe#MEqpZ(?AD2kr{maB%tU!aW7yWzGU$aqP)t9@{vy2jNXG0OAtiZBsT{1m`mDENP@!6Y*K- zMDf}gMkBo!L5t`!G!V{C$d%VCC~~!x$d!arB@%%uVhi)gnM%ZK@DZ=Fz@)cnB#B6q zgXe)BrKcHfbfTliO1&Bps616sl?2^v;F||DO(+De6rh=~U# zB9JC~P7ZQvNX(nlYnual@Y09cRoS3U?;oe#OWi#-?i8TfQ9K@aBvul@Yw-35b~8StbAq?=oyjWuMe;a}5%RfKN0!&?2=E%Auqd0joZ0rY;Gk%l#{xL3 zq*D!w>LgB14hd-2@{r;S)4+hmoFZqO=zswgCsTX^vnc`N-wDzn&QgwM#6H3Q`el}{ zZANA9xpT@g187RHsD_8|@{@%F7x_RGi_?KQB@@&K_ z>%TYPAMnTehYZ&YxY4-bv6awXNzU*FV*hD9hD4aEB;q#d2tyJE)FGc&v{pw&9=fWd zMrZ}Z`46|8h(oz7lRDJ2*g`e|!3F1UL9Ek2y6w7`e)k8opZxdq|2``mB=(SGqd z3w#{UPs3yRsm%*6lJg5m{7AbrKse&D@djYj(42+aqcRiGFhK{=?9dJrSL7;$W+@py zGxZRg4JZ8kg}33kfB*FM%cqt+@ZdcwHaxt7P{};4 z|L~(zlqaSWpS6nYn~Tl_Ht1czCJ01qJ#GiAjyenu1JGzp)lm(rVrWvmSIh*a`qYvc zF5wl0MOm2-mz%lAcj3krkHXO5&tUMnz2P(K?m0CD>MnMIKK+Kv_dNg&Tb?-3b>7`m zUY>dEBZPY~J{?X1!FR|W<%13ppAq=8WLfQ37Zzj#Ij9TfRz-szorMIZIul545um27 z=@Nzp(Q)|7=A)g`kdiN;B3P=F5npUob<-0EhyMKC&M$n=8)x3UX0bE>ni2EcO&V7E z{>LL9DVeo{iMeGmH_kLUTWP1K0+ zYlK>$BYWzDqNvvKNKFC)sH%?gkcV{4CfQP?zG6#L1`E^iqjZRBkWT-(iF;{Z>_7GB zNB$h{hS$6sn<3P0W$(2NU&oziIm>ntuK;*Xt=8}wgPtSaxWEaVMyrK%^r!|DUHMjt zXqT0ul+uAu0q#8R0~bE{?H+Cn+Jn#FXPRV3W~g;KvR0inQQOVJZDo3FGf->hn{Wz{hBAGI=m(WZLT*|J zkcn^F*55cu z+HQOJncJXs?5M39#_8^aKkXjUzkod0Yx#m%`1mmRgR-U)a#mV$RvMx;oT5sl<~axv zvBz4Sny-qg)trhdz@qrXf#x%ZNVsARloHQ4z-#e^SAK}uq3x9)xSzO&7|*S2&Ak?T zioQo7jtcvUjZ6dGA{l1AC<3R6*8#zwuGOgZlF_U;Bag%3@z`pj9-j8OBnK@dE>u#6 zLebz52-!qmm1e_im_Q313F`|)htzmO=;F)+5jlDpH{Hnyaan>PHzWOB`f0|R{`MCY~O`YL7SZOiiZx+L{<+tIt7Q^B@=G}Gsj7>`#FvDRSgNO1r z3#WGdt6rQn?fKRFp!&%nuf@WY zj>qtIsyoS9<$(c_+{}O%=886(R+}pY`1}Idm!794RwKJ6nr@X$HBpJgczjLNWlfzo z!*T*)OEcWtl+iPZI+`s96)Y#NA4?XnaBx4Y+%S+jOOJnF|@hYx?T z|8IQZlXnN-9_HU{^Z521b!C~{+n45X@*v3n@XMv_EXp(Yvb&X!i4WW@l4TKH0C>Fy z5&6>Wbmp*IvZvcgXl1tpH_%FhqFM-=+#QymZr9S(#dnX`V23g%xM_$MY8QTV?%tiy z6&}*Q({0MwEH3Bzsy*+(eXx~jr@S7|Ris9TfX-AW&GX!zwMpf znffYP5(A&(HHe!GRy?)+(K_Et#pJx;zo4;n%7N5g!Bv*%bZ>#gZR0LK3A%2B6vARzWE%|^`9 z)x@w$`bl@hH@F%x33?Sivw$SV~Ztbd(OuJ3|;i z=&3#rM#g1y?~>EnHWzkicovq;wU*>`=@uLpd9Y9Qj8=T;(MC|g;Ida=z$1WM;+pg|2dUj^pcGtr7IEMDtjF=K0Jqo{zC#_fk z*TQgV*68q*5j8U>J^AD}O6|`LZ2oI4(X0W`JJQPR^{Vu&@*yK=b=5@8z-qD*C2X}K zt=3Q-)gqK$6Gc~)$+ydER%ONfpa4;HCQD`xIUAxI#4_?TN{NYt`S?-%7JdOAycZTh zH(Y_|K6hk}^I<5%3fTYfH$VUO^^ZUNe2&Y{Y*$ulv~cU`$Wao(flygk z7L1(Slzx+7DK&C@F8=eUUt+KvcDesf{OQY&UHicHtqLuoT5|T<#?XbY9lu9VPaD}bON3LTpEpCYqVOmfCR&wS*@4# z)lrvhCLdY{(q2(y-F!$lC7H-H8+%70gbdl{5VJ~6@zQGauyvjBzOwqVEyi_L*sid? z7`8>XS9VEn>s#0$qw@=WZPU9{Ler&7bRJ>jZz!GEVlya?I88boCujvTvRd>Iidqt{ zn6wgAIEnmqv)MNRbEuR!10t=M7btEAN+;3D&ts2X>x8X{mrtbd>4vU1dQqqK&<`KH z(SyHIavtQ|9_2fOOwchBFhV|Hb$A`Th7&?rX|6%hH2Z(ebTo@n{wc$e3|#(eVk7>* zKP5HT1MytOXgrK3MvM3a`E;U#Up8a|wHg!_xXo2jx7+S9=mZ@JgLSfynKJTMsbOl@ zG`Oo>m>C~SQ|oLt#k)y^jv%$Lg$TxLn-~v{E}Ql8ve>V&zrLNLs@Yd}|J{}1HdSW- z^~+woqgy%(Ropps$C}mmJ-!Ow@EcS=G64UMf4~>;g-v&D>zO$;YPV}TO?==rxOV-) zAtz41_wMnOURxFIwQX!{d-3QZY9*lp5%sH zVwi)hruGlAUp7!0@zD1)n$0GaNw(WK9Wt6_qa;cy50v8*haK%&=<`4jvf6=w)lMr- zY3`!}BI_3XlIm&b{Jf3HUidjQ>_!4Qu(ikKMZ!0+39D8;bSJmr@=@;e^jn#&(Z*{W zXua})NRHoTle9*oMe>m4ODMaQ%7Gkd^h(xbwHhK?Ei$6aq|T;MzMBGnG|Sx^coQ?8`UrA<9> zs%K5{*TnAtu8HKD)t2#tW+cgeNn=z(~GLoesU;44==SMwvlcQAT_;CvA{}Jn!=(pG9k~ zj#e0uo=?Q0WB9s zs_JMpTE!-=k)KQs$pa0@<8e4h%;(^hp4lq>YW;ToS^Y)5T95R4lSxw@HCaKkAx(}V=Lfh^=I)J6w?N&8>%Qr+^#=UzdmrFq zkHCqr@+(-_V_)k}_)D>K_npHR*RSq-r0yBm>nk__&fB}Y;~fjx{){BH_TNkgm9d{& z_7?u1dvC~V{KSTgXMaPH)uDDT{giS_#CW^ zJ@wv^*|nHk#@0gQO?;B9#X?q770K0!qFQn~^}LnHp&EI8lA}5*NlGeJr#8@pF>4@= zFNO^*PUKgwqN><>l#x92U&=DXC+RZI#9pbd=Q`KJp>fh*hCLM0xqD)_63zY;H#mi0 zNc-JXMTA}(7#rybh+-8*gW9IH%iHaH?MLiryZx-4`_&GCy~e)UzTHkyK6o=v7GX96 zol(o0G?6;q51A-VP`cSz;q~;C{xD{L802VNdIM$>SGu4uZNZXjmWAkWOD$0>is?K>vXc`AB*eD!HT}L zTFLW?UVFCAWQFQx`m&tJce>b~yyi4}%_TSrUJL9I1GLdMv5R)EPD;Ll*kn9jaI$-W z9+6f8rvoaD25?AkFd3lVuz=PV6E8=DMB3xYaYA*Jvw(Q9nzJHakCM`up9> zjP8JTq#=43Xo@x4Nr*-Q9bORBtgqFQB3I3One$S$Pm&eo=CZ_p$YcpU7z#6fQc+z@)+3RdkG%;u|oE<^|Xf*%`uWsf=G2YN5xgU}oVt0M!_JZ6W}>GP_P z082o$zs6(=nlmzjTDI3gFA8NAg&-$|paz7BLy^$-5KpXxDh;WS6aW&aiCX4MdnB$% zf|A5LOd1sQ@eFj4WrvGKP7B8`VCa&R)|2Y^LQ`9ol0_rRh)=Qv@+oX3F$4KEQHQMg zhxTwAA&CUhz|a&I9`YrO6)(c)-aIj-=DObXy@!vUaN_T^c^5u!d+5c!_~N|_mdso~>y8O` z+_tdO?#JJFV*X=($DYNneh-p;<@i0`7$ezG-XGsxJ z2IL@H)YXR>N*1L2+NK;n{*;>g<;z{Fm|LiAxN-V+{^?8e(c^O#Umo71@0jj77S~;C z6xAUcCbwXpMC;|o_a>oorPNBn}kE3pK~&ySJcrwO%Y z6&i#A@J1Yx2Kwp$Rhk;jRLugSarbJDXw)O8jclO_bC z?M8D?fb^(3YAm7%1EQHcQABjmDUGsHFb0~p!!^4*WcPFE;{E%3eEI3&g?DZE>+oUN zkm1~SkQ*3#<&KH1xj!$>kLMzGvppCRX{{!UMT9^dGU(46;A;l>q5&>8z^Mkv5$(eq zAdLX26U1OVEXf;)INpoWKc4CZg_Ax|*!*}s{P6|ye_}_d4-`KKk@~I@7#1nkOA2#PLqc=;;+bRvf zgr~(Fgq6g>qVCooxRhJY-AY`o4`6u5R#fobVG^mF+uGnxge62)>3K~ebZLoRaFAHt zOq^w%Xfio;6n}^)RTt$Tr_R_@l&Yhm$P2P8Ae)WnO>vhn!Nb(b<|SLeTEr&JV-gBf z5qAmeTlj;U>lK$U8I0hsC{ju@KbCABsEmYkM6OLF6tr2VP;QUds%*%B5@ezzfyzy4 zUK~IuwTGo8W&W!X1tUp{UYorL^NQTv9FOcTesUN8g1l!%_hQoRp!;^?dG%Qi)OXnY&KdYM7R(U5dgGuttCKWle0aoc@S%k zH(Rh9I0~x42mOd;LO?m;hpbHQ*yc|Q_Vs{;U%^T^@nQVdM|kMLt=+y`^8wUZW7D~N zW!%VLS~|1i?!9;+-g5@;e-_T@w{i=VzPs;SOxf?o3*vKRjTAfghDck3Mx!N5u>mcy z_5nW#5biLOm6~}22@;4ftAU}|u-!l+2LrJ=NNeGJO%O=&JN8j5xpQSBL>vdnPyVtJ z##-oo4~loWT4*!GbKCLhH}NOn6AonY` zsUG*jYrT(df+ui?2X=DR-VYx*{K2L9TrUzVU6_9lr><3U>-?=Ow|)(y{dV$mh43ZO zu^B|eS-n8=t5n1<%M60dy_uX@>64-j#(Gp0_3QN(FYxU3T=Wp}@K`jomq$r~63WA@ z$e=~%W)g~1xh+8P8wJ`W(3uO#yb+3>AzHY2!?q18HaxWQk1yZ5^vmBr7LLCEJe-F| z{_93Q?>PMXc>ODHyz=Uc+(-B_zC?CDM) za#cko$!MZQ$Ss4_X~|Z$ylE{RQ+D^uhA1k9@&U6o9FGQE3HS!C&6{sdpHy4>*~_?V z-G${-XRSK>@q$U?X7lY=E*d#k7R?JMtb3Gi-_U!=$gzXqEBHvy;RE|9x`M2c+e6kE z$4n#9izskaQ9(lTRWQ@IJ$PLm-+oa;FY*$0-Zng*U&dZ<1>GZ=g2f_=Drn-Vl<7!R zEZf+Xuw>!&8huq%BkNSDk#1^va#D2!NMK75_2bbl@qxpr62B7~9)Z8X?vFIQ_sFc? zlMA`UYtaFG5l>nZJIBIZ&z;--dRMQBQh^M@b_cQ1zEwh*ie)r7e8P*I2jA>tIWxR>_z z<><^k;{h`^0oA8F<$d6xIU)i%mVO?5ro61*T`gmjz-tZ>=$=bzT2fxs(vBXvR zmceen-ZC;1eu}e9;SsO{esP&Ewio`U)>A+O2wFE@K%@A6AQLQ)4AiH2WV@Y5lE@p2!ST$+$Q}KGOpJ*>P z;p#jcgnFb>33|aO?Ujy5rzEsjx+rl|r3KP<_K2WG21&)~6K4#QNyMfU8B#*xvT|}v zu%j0K@%mFD!m1;D``BK59*wrS z?0P;WHeODiznt9@-WX|T)NyJW8(VEM3y<|g2^Yzn7SZ6CoEBHX_2&@%(#RnaM(eFs zy-X~SxocWeth1K}>S7j|iua5OFQ+oSG!obRzwPq_(7*pj1 z@@g4PmG{aVkp1kAhd!n{+&e^l^uZ^$UTdh;OeW7)!)}+4#&u%+{;+!_i{2d)Qt36KN@pVB z`~oG(Twy0p0cR8?vkt1*vD0&>*^rUVAZz~57mBfb!VoPk6cv8_g4I{w6iI``+u;a5 zY6ZO^VyH6I7*NEpz`y|mG$8}ENCB&(CsbEO_rfEDv*8|C50L~bAg6{AcGaiYnFYFqh+!8M{m^OBJ$>!kD>!{+e6-aG3#OI zOWu1>GfZuE&rfI}T!xl1S~^5Bkcv}@NUd3*ffX9aCQ}m%bcmOc3aADo8)%f2Ofs%g zFd8WtL3AU2ybeFk%pW>H-cP{8Py^qdyx#~GuMEY*RGo#lK?sz92zWShQy8?*&rkDc zvurjkK$TqtL%NF(qF`B7G-&bxdvR6NZZhW(p0;Z|s58C)-BAhGSHi`Wa7HD(u@Vlh zgl#I}XNd=uM*~laUSyL-hqE$Yn^eUVR)RJhFFOPQunF195 zDw{@*3}VI-N54v$GGT;1<$_t&`T4r9`>TXqf>5|&$_vlINmDlz2*NHT6t13rVE?5L zCe2(p2hF-`_C$X2gxg2mQqIk(oi&-uz~AEUUK%zCN8!#%UB?fHR_Nl&hL7F^AHgHG zj*sGB@z-A+ef>k{`)|MV#iz$d9NOYIR)2z>u|v_zWY4dU-}R5@$1%BRAMtU5pjL}e zD{2jT;`1Ak09n_8tVVIYmeglgVRePs39Elmx9*XKw}`*gi*g(FE-1%AFo(SNR`RVG zw2k-#nin;xO;(GRMC#0AN=F<*YFVWSS0Z`Q97UeZN@Z^)#@o*eADjGGU0uJm^J-TS z>6-j-5hoD&I+51){(Ip437HZU*&h}OAi%OWJV1KGlLmOBVX=WLHbBnLaux}T?yZCO)xj-wiS?rcR4c~!S~ZUO!($>H2n|M~LCK*I z#ccY_4C~CWhD4AYM^3QzMjrBj=pKE&{-hpJr=`Ch ziAb*(wX|_rD~W~yQSmA+I@`IHk%-dD%F-MOZ#)ko!-@AkK8kO`2VukUg}2XG@)kFB z-M0I7paY9=8J0$j88wXQ3wo|4gyuwkqnNnNB9d$l2RS&WOKT-$YU{NpwZvUb*Y+pc zlEinStd?w|sEZS+9IFz)PP^hRIYC~yi8z|y;Ib3~>lErx$2x^Ts@)a(uz@ODicd!f z{U}c3Es>s-LgLgSn>=4`lsW2B^p~f|tK@C+9{D7BNTWq^B$(avzYwpMl9VS)+o$DS zCBJtS%DJ|T>LGQXQ>wpcNis;}n$cn6uX@0iNTpU3?G(8g0JR5Nx8W_guH zkTfSXXEccBK3!JY(*U3e`e6;63KtNwd5Rb=NLePslhG4Gmz{d_Q>6LQN$TxM5ud-O zBw4LQ^sUL+5qU~(B=4%pk)}Fqr7DExLX_5`l$jFc`%O!3ti4x{$G`{FOP9arf8KlM z$?yL9>xXB)g&p)0$3Js;(V@p)Gj7<4&yv{Z0{*%#jw9H3LD)ssZ3aGy0&M|KgG#Sf zYcwi=($gfF;-^q#1W8Y9o?frfN*Wn?QqWZ5_fRbw{ZjC}vV$!75hh-?rCDw3uJdP3 zf1~-buI@|#?)dqmL$|NIcmBL3Yv*!lM9u#M#Y@yxAa28#_y_z0ZTb83{dXD7=D4pw zWp+>`7a$}HvQDQp3j*Y{oWqWY3pOAsv1G9gs@28;QMIItI}2A!aHPNNlc zG>$YAuLc}t_wihMx;cyU9&9{O=S|mJn%&1Muel@nnp?oX0jn@UoZC%dF4Ooluil(e zVFGEr7{lJm0e3{YXvLfys#raC4WH}JTa^bRc~yBec_@;%Addri#d(oDWI{$uj_mSP zMO_{(hd3fu2w4P6h(w|E%2Cw!v`7M=PI7#&5_lg>@)V~z0T&i8FC}`GjT)y#Wh9VF zK+G}p$WjMwE=i!!-Me^k9n8n4MTpuza_8Qix8L5kq;vN&)@#D=U$k!BqV=5?YHt~{ z=beUkw=CDJQ1u+o{lA)-X}u?n{RMxh*n+ z1n&-~WU(M*b|SAw@)A!{qMev=30)-#5)sog5)p1m0xA^=7}B*x+WFd5+A~@~OJ!H9 zRhfXpXctt#zXJ zw-myHYxBcje}4bum%iuy@2$8?4Y%Sk7O1^(iD|$5tqrCVH%Nkkog0j=?R;qwUUSnV z{eAmbPdr)se!e&Hd4?vjSC#tJKCGUVa2FS1{Pu@}VewYHW1iQ--&FYwr_=-HL}Z5mtyZ(fq}Lnh?TgP_8AcBvT&0L7-S7Gd>YxP_<*TKt_fu)@5%^~SmorB}N}^RZ( zrE4rHxfbFJ$K&xnkwRW1ZVv!j5gGK&+r6)yLtulFE>*}b_ z>QYrlT~?#TqOXox_#{47q6alDjO~)WkBlWt7)P4fm5rG~5HKGlahH>=3M6Va6(vU= zx3Cyd;OejaYRN?y#If@)%%9Qsmt!<6L*L?~M5`{Dd18 z|Ng+zulvIicsHKbXDIAIQ7vKq__;m0(2Ji>@w3l8`|Pu@-)FSIvrCV;eceal{2~EJH((_)A+EE=9Ex=L}<$;=fm^hQOI%=|T zD7E{(Ih0IOYh_%7n(kHOx2k>_uB?YE@NIBY{A%?{m| z3d>#{^;$*Rz@-&=s~`EvE*Bw)$o~vHA`zHV32c#ghAlGhO+p!_cYfA52#!*|?6=bD zWj{bc^P&3VGQ0ui!9%O|m7H34`rk4)Cw7+=a;IVDs;y)2rzi2dc$@W@P#fC_Tf=_% zk&g4`H+*;B_xN|1+4t3F;7C|X!A>DqM*R5OiJubyYa+w7F0yjA>U0ZmxriM4ol~6) z*kT2``Wp7*5%PejVQVLTzSk}qC@94g-F)3i9j~Qj9VWUB0}|UHvD9hmHY7d&_)bhq znbo0;JWlR|GUxIN*G35tmen1Q{`~Oj4$d>5{bAfsELGmGmzujc5d4kPsQkohLy1nc zfk?zJsyJlUYE3$%(jmL7A<;k>Yr(gNsyxD8)dzieQ7 z-biU8AtBK7yiw2y0GUW6Y$P$2L2ERUfJ%TG`JZVDFlx+$x5Hnfrlot$)6}8KRF^P$!q{|BF;s1qn zYbxnMGt|Mm>R{lT$Khk~tzCVA`(^Wbx}{ttiS6QB45#5$@ZZWNb6_^{0dvS6JBbe% zjTAU}5X1e3}7KyVXZNB%94!6}3rfD9KGrXfi-oU4+8Ii6yWsaFC+m!T^Q7hXJbqcXe2{ z=!v<@JMY^62|kWK#&53Q-4}1h{Xgu!dd)RF9su`r+pwy8cl^1HQ^hVBCmh{_ZpQP- z8V(UY|C^ja8qs_cBIP=j)-Q@=?*lw<@d{3-3#Abq;j(D?V20J?L%y15It2k1ga9o9 zhsb5oC7Hh2d4yZSvNbyuMF0XnVij`dhSbl9JpJ`8STWY&<=V$LgIIjE zL&}{SyNAQ{h{*bu5gwaK&L{vf!K6rAmBFCT5Jjui7UX$by5M$usF4F6o1V`K$rhrn ztD>380)sTU3?+}vkPwakd4cAX6{fLOU2%9s-UHTUbzEigypm_wwj=%oy+;m@h|i_O zd3A4olK1V%!voMBa)uDp;9>k!)p;-&tc~>b+Uz-Y0cA-hQ(5mW5lt4z&(DhV=7$XJ z+NnAUx>T&onblg_sZF*U1rWC$nK30ieLc$t6;ztNM%i%P19i0Ix_IENE4FW% z)L}>a31dbUjGDChTHnx#^SUm3c<|PT)=eB%5rpfSYO(L$>4t;wiywDw+qZL?i8NC*WOpV_$EEclDfMlRHaBd#H0%$$R=q{IXbhf<*GGBYm#v zs%~xcJKY6t9m=)IaytNWTX*IA_v;=Z@ke*E_1(MoF69e!TG}qk_txpMyY}wgp(@%t z=yIiHN8FBVn=L!rJRq7a{nOURH@?NzCpSIrHaOUxan0}Q%l^yev%7mEy!!6@doEeN zctX3T`~1w)FE!uz>!&WG*ZTvXdTwg}+|BJr4D45M{VinMyA7Lo%^eSJ>o=yO&05f> zQ}WvXcs`6a?fEJ9s&Vlmfa)bxZfkmB=8W{r^gGA*^#y$!**efDXnwHfHnm5#i!bFXoWV*_{H%%N9X%qH}KLQoaS%P00S;PH^?r?@EBRvpcB zRY#>v!j8F_xtY99m&RrjN-bs+#vw)Xu7F)=KAaGiWR|NG%ofoOtQowhxT-XWEzbg1 z&MJ&u^C{$5A!v4PXELeVe?} zyk6hq2L9Gdzj#_@WQGFmeuJWN2dvzO11)fYR-j)bH^ZPJ#+dk#Ik|4)ooCWY8CDaP z>CQxIb$V4)Z9=9Na1B>ma*M$l8KQEDz?K{;QHB$V6r_yfeV2au`FD!J7rVV%C*huZ zH?7e0Dr+;W-?cESqLc2fRd=s6cdjVu-@AW2MIRtsN0Iq{2)^^`-sk;+oIrYD|I=Hx zrv+LC2ybbK?HWqX(FU?2HpFo%BXP%dW_nmE$RViI!6)wxSiM6S+8q@THVteSk@0Bk zWFqe=vF7b7-qUJ#lv|UtYD8}A2YA+zUkq)peX{b%z0(JD8C=-bLu^^3)$8Xu z?c3Kcu4vPT=6=}v#6FfRItSJ)a_@4J;CLm2>i5%*P~XAE&UHRFXKaq;%V?x|CO%7f z9eg{1RhpJYGq0Y5jRWdDPEOw(tMmpuOudrqrw%v>kMxh^T2vW1;(y~eVP3l}iIiEbtfc92aoB4#1r_XD8IOn2!7 zp;b;sTF?>nOAg|SIy~%l$AoMHnoaDwa+yt~3w~u`sh3e#EE3)L`cXW${`gxj?in-v z)|+3hDFIU#M zLN!D9gXr2~aBUpy>hMc&q(JGb`Y_nH5i*SLy*k>Aa*X?sO7gZb_(zuT{O z()mk;Zofp_)f}HjmhAainyf0iVpGbBn-9>6-}ADO8kTZpWp)cq#3?Jw;>u0&1uGK| z;tS3@d(t+rO?aT~gHOJG+cq#99$-85)uCT4L&{1AS?`!}>mAm?rR2NcxU@fEnya9^ zJl}!8yZi?}jSeY=8k%BK?>FKE)l)1Woz2CC@& zTS;D@?)^c3CsK7xw^;NlG;lz-l9G=7`&aeuSkg2mOu#zjpbmZe=Y{K>etRHEe1ubyS4>Rl1)vhsLZmScF#WMdT7A55CN z5c8mdWu?JVp=ZC917QT-@-TkuG`{%YcKrJX_^pTFEif`@W#8UiZz}z%5kTX&^UrnZ za&G>&(Aaps&G@eH?{UwMoql)snM<9u{xdteESf)M*NE6gojr8Rpnk%zpcgN~PoKs6 z_D-7g4D7=!qc^zT@1WUPd>Owov|G2KumbWlm+SDu7fah#6i%ADV_$BhU28Ntw_}_3 zqkG(=^mq(wyr7z;S`R`*maYNwBHdeq{G#kaR9NKT)g9axwWWKv)*Xt9@<6evn3GU( zhrGNF#i%pixqLuW>ilbGPJ=o->?Vn*O3AJxv69Y?cvAxVpQ(>TgQbIRz5=FKWNtpq z&8%!c9femChepm;v8r;it8x+tkeOVVvb|T?ec{Esx2*qk>aX9txM<1q-~2lDlMP$$ zUcL6ZCt4RgIehKv7*=)>$yeE8F5|t|HrD=UKmHkiHE0mM5UjggyYaR6K6}hz)b@hZPk<7K~6Z`bcR&Zg%Iv^5;S=d5uMR z4L31<=i&F8vtR%O>{>46&SN|tB1|N9%K_R%JUXodn0X#(k;^F>+0)Dl9K+CW9B>c@Kgg9{bGuym9)? zTkhSmzEdF{2DcFt+CW@<7lYk>^}TmLvBX|i>R8XB2H{iMy%t zBnTzFig@CZPBe?4sK}C3fmg9=Vh9Q3U(gyV7udfrLJc{1TR(VX4!(cELo4xPIdDW@ z{7??OVcxd8(VESp@cHV^HMkW1F>>=LD397w4PV7F-5dNce+R4)&H))1>eR?;q+N9< zN|b4k0R?-Q;#me1P)k_Ts}w)lwXmeJS1G)neif#bbhNeY7-^$?VSn=_{w>%?c$uu# zc7QjVbx@ED%7E`|Wl`#6-wJ8y&*g3675Tn-xqG-hN@!gz)q} zYrz$-Q>&Z3jzp78NJo1^v-(Aax7S`fsr`geFR<6e-WNJ>g+%XIfoY%0u)s>3l%jBn zn{Cfkgqkb7int1$n~Na;>V^>Bg+3Dw5PGa6>Y+0gIuNVUAB>Nbb`PfY?%dVivuCJp ziKH#pw`pT;*Gd2dHW!zhD;D+c+PA!2fvc#UwkZobk_T_5`K_=@4$I7cAdX>aI7AOr&I-ywM9!52 z3fW>dB*&dyPGScKA|43MO=Oo-L`8}O>JYoRy*F0&W}jlW%(-S{&UFLs=bwsy(`jgN zk+z4_u5@xkH}b8fJNb5serW4Kt$R#tUpg7RKeTvo>mHNal}_rwUQxA`|1$nf%**~} z8}=FhYZ!TA_epKZYee>%N%U`aR{lKwOUs6~E~M{NHc9D!!{daHMOusM0V5)OLxL@P9%(VpZ5=!y-JT3akPFWI+E775IP+?Q9xF!8Av+G=cUy-Dzn8* z!Y+$QJ|rkviDxB4@ITS1klA$O8!Sy0=-gX3YZlbA(v^xiuu!SW5vaT9(nw!46yH#iKELuc>Qdwwp zC0MSc)!Yo%%|d5ADM+e}N;BJ6BHhT81IZ6W;vHptt65Ls(e>PbpCLbV#)Mn(LA(Sm zn%DQ%iR0|t#2&HFgxW8UZ<~B)4g3L`W2Xz|-Y}&M#OK)s_`Zab>D-Rix%mReqfF!j znHGb=2#iIA8oTIrlMu;mGD}8}z~$ugd3+vGJylU&navxg*qImt+b$JbIROG|A_Qlr zOmfZ+r*X<0SS1Kfpc1pi_(qMsan!Kcmxc;_o$6`G3w-f|wQn9hG-t_#*%iyST-SEy z*yTRo>%aK=mErYUJ~*B`|N8Nx9a8jbPrzqvG1>#NZu(A$*@(6Crw})$E=M^7-m<@`-0}K>jLZ#KJ5yfcK zNk)wU7;2&_az;7}gE2zMy5nY(f-UXXd!Tsr0_*n(!Y9zuSX;OQkEnkFWpN|6;>fz# zByOETzb)Q3X&^pdIub>_R-jUDlvFIIjwn!;fg2DtNNO20UD!0eE9JP<^? zIGr9M9!Txrd0lmscM#EdEe^?Rp9C@W)tHj26#n?qbS~d!#e!;(=TD% z@!5ini(Yx>nSJf2-BNuRZH{HV_%hT$3k-aYUwmTKsk@Pg-z2 zeu~k5524>h_RLRF#*Dxt%XUJ)oya<&-)E_cdVD@RSx!~dA*t28UFLN}K0L`Y`-cUD zY)X!xJU-I=|8e#n@KIFV|M0zYXJ&V{&Cc%5mL!{Gv#CH5APJ#o5d>_Q(3ct!5kU}X z3P@8CX`+CDh=7Qqhzb}mih@|MV8O@!Sg- _#P%QDGQce-t7=|ZnXNu*v4~~v?CiWe*qV8K3Xn*7GLs5*VZ9;JXP%g{m*!D1 zH}$_`K{5DxY9(-Wbm(IBrN8R_4i@UOBRPv^&KT5$!V7DA2@gDZUWBN}PWW#cICg5D zE(;wX?xuCY6=-^-o4X({D;Ts|$^>s-p0lJxKo-8Ts=)1X!=`q-b4*!TIXQvaXpXZ3 zsKgGYNIMhFQGx)S+CFxnm}ra>cQH%ydE`|_v3F`aK8HB`49Uh51o8{D2}Vc-w(RMhw385E?RR7TG?ba zgPr#|`~jbfQ$ZPUE>1y;ZERF=$vPZWY8M=o>_c#VK&q4-o(4*_Zc0O0E3j1QyO;LR zp2%v0eQ0o`t<`1bD4jlk07!Mp4oASJa%x?abHQImYF$)OWmBSRPM1%n(?bb>~u)e*Fs^BEPmmj>qGMmpQ`TcH_leR#YolXz$31oOV2n_3^ZktK+OBRdd zhaU+<<#o-fhsu<~cxpsST;NK!t`+ra7FLVb6UQ;XfbM^E?Qr;Tr0tB*?AH^hU$@QR z?smrJQ3lI+jrLm6Zd_(ye@)g_>OIPh+G{VPTU8~m;x*YF4wuVMiRXQO52d>{ssP$twDl-FB@+UdOdN0pf>~x?ebl3vO_?Y&9=mYvfXhyurwSG`CQVjF z^SIFv1|uqH0jH*fS@hBhrrHh`yl71=aMgGp6a&FPzT4#r zntdR%X0zQLP$}(oKs(~>GKWwSuU9XXgD-JPil^aWCn%>rL-WFRC2U#LfZJ=wTh_NP z61uEidrNFriyC+S0MK0mam@+Va{wZ*G`u>S8xgP1!Jz7_9Ea>~mx&;CY!s0cT-Az} zd4vY3p;p)%D&ZEj!d$JURmeL2l&;H*K^`t=dDQ(P`IJUVosSZV++H6Cp`lKnY692X zXf>EZU+NZ1C9W9;8jw3|25ydHD2>e8u zmn{?t$8P2cVF?%It>Nm%q5H!r<)mT$ikNu#F!$Htr44J6K(l9asNPJ}yYj9klJc4AjtR*TaDfis4`BJWfkW?n~3(P7Klwo;RpPC~Wrq?BlZ2AbxN=RB|? zrIMo`7xy_R2G$o03#dmV*KS5knIH?19VU)}NlB88_HYvj(lubK^Jka{#@JN6<8$X0 zYLVpJH=oT+)Eiq^Y||r>gRNGZi8J$N8*#{X8Cz)i3o+YNB0`vBh(d+YLMc^H^|ETC zc;3Jez+Y^lf*HZ+fR$i8y};&?tio6ZQI3hPl@ zREFArAbqx_tPpcuo{)Fc)|v!((C-{LawUP74Nl2PctyRm~pYY??U0z$xAjZUGkXr znfB_UZ#LgL?DFolcklk--R_qUn|$P<3HJ`VW>k;fqx)%>4ZCVW-Jr2!i@W#ef#>7; zkMJeCs+Z(xM}E^j*FJIAU!G4JX-dBniFiKl=2;H8T$ zisV*JnzvQ@Y9HK}h853lrDNL5xM0A2 z2fZwYS;~T)CvpFOCXwSY8U``V>k!ivqeYQ{iqjd)4hueu1qs=Fo01%5p|V;zq42rE zX~9Lo7(mzNsQ;9M}o3eI7- zmxsRm==j8IZHphzykUSI%CP>B6De*hveNrqEE3+ri)P+tM`p=PZ456mtE=M{I*-<* z<*?`ne&IxmgOz*l(c2lEJxDF8-n{^$FvKBCSv^HnBvZ7SB_dfdj3HUAVjb-ygE_FN zoSagq<~*7@hz`N7#~Aaphbbt_%mmUEW={Vi^vv?d5)ttOyUX0 zd<0h)-Mvmg%-{;_tHu@F`a@dxf8fH>Qe5;8uD{W}`uVFTaJ`K4k749bRO0lsU=?qim<)UNTEHe1aPN&=B%oGt!&cW)xtSt9D;X~J?ja?B+&ej-x zJnoq~Y54Ai2JHo~K#6%T*S^F#ak&#NV1C}^kv0U05^olG9&;AE-3G3*jk7rw5jGc} zaQ95{r7TZE+oaw9uoPs503fkUFiDR}xxHHLyPRKB-o>}$`R{7kc+>3-ow$jyjohc) zgRu{}lGwP|bGiqJkq>0`SB7^2bWtFMzoU!ZnE+jS^QQl=bYV^VkJ7^P4T^PT5Mnb&ZELbfTfwLpQshD{?KQ?N$ zyJ(vrBpbnmUbT0$S()JV=hSB}Zpf~QcAl`kVW##jF2%bmuWOivy{|2~qECJ&{N=f+ zDfr4h>Tim~=JiTGhs&iXK0^Efhr2%Na7ZemO`dI%kDfXB2=8*qysk!!69+w#ZxJx* zw%A~k5B`mJK?P5f8}{iZhvqJvcjH5c4mC`ghhKQ|8Oo;{uO;|Bt%D_x;w|HIB^K>h zl!}|g=rr*ubn=YOIz}fr-nB_O1(zxd^8ZSw$sjb1PBo05@3eSz!^RE<;sV;Y(E10e4pvy(ukLKK|xNlQ*qH9Ww(Q+Lgsjvs%hHsH* zy+eyvX%Z04lJIoHF1_)*#{^E8DO5T>Dtt?CCvwnX=P6wAUkWJOp=Gy0B}vZXKuLGCX{*_S~EKHQXBQ z_wT>MR%5<=41BF1$_J@vmu(8>BjmGrWZ4!Zg$2m&wbw@Ty^2?nGBQH+=2R3ViPT0V zZ_BB+Qewd_wRC5R3*~Vz&BQEej-{d+DL(kmP3vZ@3T(MTd-&TwER{`kavAD>-ou|g zBj367mU~3}pJ!el)4#L{feS7E(4!~J=*u&)BmU)&-uJ{k$msQTjICV(YKNvox&%C^ zq$JB}wY4#Y!#1afFD*k#CMc#7ITMyI)0^qF=j0UDM{~gMiCFBSXt%=}+TF=gn+)fh z|8*hLmy$|f{{Om~7iqt}c$@Zb?IqX$w4CeqIJD1jz6TG&S?6C=%7@q4n&v>%G&xf3 z^(ci11soPD2y$*tj@6;?Ma4+=gJ~$FLTm#eu8mSoMI@UDArz^L+PvrCLMsPh%@>*# zt>pjLr5>(*a+@~Yb^f*f#;1LX3ybj=&6m5CUQ(=gim9!uki4SfMsTBXHNNwxAcpDrjnVHSYUEtz=PS*BUq2V&n^>>1L6MSNUsf>aa3G)C?J=87 z9^}an=lXoE`l!#Br4qA8zw`B^-1%1Mt(ltnA@N>Z1!-p?Rh9W6<9IoKvdAO8>2B@! zormaYNZIBE2j2m)`Tdo{i5rM%l{gbuz4NSg;=Z+aW{qD4}-{VnXE-F$B@6%c;EE=2i*N1%8=ZmK@-cN$~NYC}+U& z9BoDxrOO>|1wOTckm#xfEg@8Qy`a5@t6PHX(5xxrery=SGWVgrkudW4EEK8TA&QDc z@dsFbnq3Cp$>Q;V3iMc-OK$UZ?$BOfq8dm!N_CG}FM%a{@P*y0?noR2>p6CbvtaP^nP2OrU1zOk)$7C<9DOr5`VL_%br!vz zhzGn{k4upZPd~%&d^63-PIS#`*(n5k{i{}_IQw@uY{R3PwF_bW%Bb%OG2mu)Hv%yS z_E@X}xPoS@hj@KNsf`jMiK;9CSF9BL;mwxLehb`Bx)y2JpYtEMwi)^-1vAGN8wj9G z7Q~~>2K0**1iW5fNDw%TP|!!h`FSMhl8Dz&>|PfqL6eXd>k|h{i4?# z60UP+iY?fwvFUh2r%HXOWUV6YZuBtoTl7A57eKu60>esvIHl+6Z}C2@FyGBOW)^Lz zisi;8twHuR>(i>^9G;Hj9KxJE29GGrAr};b;UqF5{Qj7xGr~?`y;H<>sTloEk;`P? zv!7Fb(4RAY?2XT@sEG2Tpt0%KhJtWVO`lr=Z;`%-@#J*;xloAmB!@ni6Li_qpJToo z9Z&b&B+N~T*Kf9MOY1&M8k?FLN{V!cEUoSne7JdW9}Z2zlabLuv~62j_gR9|AA)CC zPdPT$tH#_);?IJXWF%+&wCz@+Go5iZ&Dvq6yW6fr3$Co-!|4XGXIYH;JZ4|uay{nk$l&*+Wk?q9lO?HYW?<_ERwt)K3@<@hYh%Rb-} zS}C40H#nvL<>q)lIBo^L7hlBuV_ByC;E+>EcE3zuy$yeQ$672vP6xDe ztyIoq$A5m(zUOEB{MjeJrq#+Tpr3$dFT?|?EQ?6Y2&i%$7zAQAyI6(1wONIHD>SDR z$5U|KZ0x2GRb@C?4zGDPt}?~;n^tVRW0jrjXT3GO{ykQC;FUv%$?ylC-1BhS+R?u7 zZ0$bR*MTQAxZ_Elke7SDwc|G#Yxh_D8Cq1w6N>#Rra!~_H8Gj|+!*JsxNOmJIGoqm zbh05Y*J(+YErxZ>WKuK6+8ci^9HufEqOu&yLEaY62{~+!y=Uy18;w0iw*dCKyuM_= z*aSA>pg1-nw*tLt>@mNeVk6oE8B(gA*WbS{{(hLx!noeb%%t-P_yWcV2_EQU%!`i! zb9puXj9yEhWz8~1Nj#&E^GjkJf^UjHlaoWoQ75X|t&VdtF_*3A!}v3Kd2}5ARDY=1 zIP9F2&F3RyKGWjQWMt5B{5HSWq@+E=&OF)L{9(-JAMs}b0XmM);!_oKn(n5#gfx#` zLS+%ZAcE|Rh*&KWM=#$*vza71ud&OwluNPrjhMoh$2zardyjDQ=CjYRUT-(+c`Phf zoxPWs1=wF^VzEkGT~w0kd+VZR_3z(H)6!=?u!QzLctZ!oH~LIYVSM@2u%CT&`Qr)Y zKTm>L#ONEY%H|GrdxheUaqCcm>bLQ0NXr4dV3d)}VJx6v10@&hkcm#s6 z%|tRYT)weUm!0sWK5F54EQ%5>4Z)7FQJmhct|Glxbww&Z8_U6u7Xd(M88R-Pu{!0E zL_I)M`=;AP9WR{6tzD~^1!!haBOf`pxz;gX7iq&7zXNDYq&?8+^98WW6)@XuBp?Jb zGpv}ypwu`nzz1x#(SYhyYopFg-c%RmZ@ z4AQ=-xTr(V1!Gwq0WB%e?lFkHYc9Kc8zx-B{DppzLea0vE&=>$pA~uB;36O;E7MD4 zmtWMcppy+M}v>&Jb;N^Q*WM zmp(9ajdPpYy(W0kOg#>iVvE~g+uENjQaVirYWH4{XP3|5MJXCU7tiB1#((e%0y zMK-6M6&c6{2mt1XYf<1Q{#<()57RC+csd9V(4N6>vHQ)tHgdxmGaud%801{|7j#4?K8^BTI~(oUOQ@V^JUygdle6+cb)k38vFufqtG?vLkb^R?&k!;6nj;R^m*`1u>!Ph2~s+j8;~iwXNNT1GaVVfU_9 zR7kTqvqQE(z-uyvkSpXWF3QiWkLJ5`a#R%*k4;r&ACW;9$;md4U6S_}Nw8fVs-7KT z_ryJLC{JW(Z~1y_KG@W8Y$$qUfHQaAbJG(;wA**=Al#+jKJt|o!@?Q7`taEW*Y7`d zXyp;SVabZR%~SW@qCGNh*jEP+{ev5Pu3CHf-mUm9?ZW53ypGKS<|WP(-atWAf`&xe z1v!(?=W*v}+wJ)rY1>9cCW{-QSBoqc(Y67WP;J!W6*6k0Ld%>cDh4$v2Z+XWDrj~} zZc+1&GVGwfszCpr-cRP}{;!_b{uAe#lzWN%K<$73~JmGGbQC*}>z-G%K z`9(#f!U0_E|=E}{;!uudG&g~;k2TIinOwW1fqN4-&b6C>7^e- z%^H8~vqK-ZEVH<0=e(P+dHoA4Ez3|ynY+nw6^}*m57t*<8 zahxiJ@|}W|&leYg%A;E{FHaPaOO{J z)n$&g2b)z%+&NdW+&n(E{|67gGL%F%xg2Lw)WYC$^M@7*S3Wu}DM#C+umR7SG`FhRTKIRa`6-$IJ4BmEK4AA*uuI$?dmtbn!f{CQ@VTKZ zi^TfHz|L^Hy zOcJ5eue5Smp>JXxEN;y!XIibF><6?Hs3Vg&~uTS9I z7Q5Z;BY_O8)G@M%zc7j&=Cd=Mt07L?M$i3FoA@~&`H7xAa{0Qi1V5k2Y9zWuf)?U*yUj%8 zy*@=jqQu-JFz@zsb>5X>z8HZ5yrLKcT_-hA#KX|hLiecv?B z__KL8XQ2$E#Tizs6X|RMzei2&5!af~xf6pYm{n!8jhnTAvFgzGtbJT8wsninrqhSH zLVeu^0u2j6R~DiXky0_kEISBny|UQtM|>!r;r%Tw}_+g=uL4{Be|5N-Et#;(oXNZSNj&5-hBzuEx&Gp53O;=^|L? z*`PlQAPy=wi5a5BDa(0buf-B1VNz5m1~LNRRRjVE_zhfk+MRiM2<4`BUHPxGN*L%) z)m3`BbR4Fg&LvYvDcf$FHe&RZ>mS&;^SY~EtJ+$6)br^2 zYuDO2X~~s~@7FX>Ur?;WhAf+K#o!4$+AW^1>s5$9?*TatqHd88a%Q<)KBtM#&T*o# zQ72I|K(7jdWo%S{I7y)ELao3{=~t|{^i6m!*>(N4u-m|(}q}>JcTD$%IQ@d+} zW1DlGFkHX?9me`;W}&J`(3WWd*E!S82eUJ6b&@zOqntinDsO?xKyP&|O_)Qa-t zgW5MeBJKKAcWtRR7i%9mHamOQ@g1A%O}5{!(B{*#N${g9+4n;sj{BM2J?Lk?5<;fi z*xf`|)|Vy*vC|u@$KME6-`_`Dhz>O!Lmm{0xD~BH8ZAV|P7w^0E^nAA2t5d!>7_I3OAY~E9Z0cfpw4rsFOMIsye4H(ko zgFoTwBKWiRUifd%Z2IrL;<=%T|Mb{t49p1`bIOajrRLL-)s*R^&n1=qdZ4y_c{sO> zYoD9jzC4syCQi}Gr{vPl%5)yq!+5V4<7HAF28jRf2Yt!;5_RN~W2vb$fK=il#tzDw z+)z2?-7D86N7tz-E5lQ@HNdX{ASdga9!DnRe2O66$#XoSvH^25F>MA$kT#fO1<>t2ExX>U><7gcYB|3vig!w)mutM`Rk+*Z5=g-~w9u4Ex= z7W|QY*k`QEXuT|w!AMY@<1-cNr5ipY7p17$m{w64-kep?C1c9KUgdRF#nrj&o4TGI z2UWJ~Aa*G%hqk)x}-P**7J#dJXJ!QO`Dvjz*9PBrb$Gx}PF4pF`(pPyo{; z%$M}4*Ihqx)8oQ`Q4^A(iY+in!Z5-GVjGaaD`@|7FAc6@CA47+jr-a+QNp0 z2E;X$FdqI&-;dOYWHRv)f{8*gz9>*od588sm<9D$g_NaQziZ1?vzt(SjRvmTKIxiK zHe-48@j*8F8+7w}t4y8lH!0n;NgGwwk8heVLl|(^wkcPQrKleIGft6zkIFNhyYUVg zWkqZ@tJQduS$|bWco*B1@z;e?UaMWSdvoIDtGB~H@J>GVyU>lZm`V`M;iolEp@=g; zNO^e)E^${?Nwr}dM&+Zat$As5i!EOSVp3S08qInPgcf7*O)1c%BNjwQF1TrQx6wZhoOUqXWr1cxTJH}qQb6}fSX2+m`@2P>rvdfb20pd{W1#V?_qHhy|IDq%=3~A zi))TcU>6F&<<`fcN0O@U4Lv+;Sf1~yt1O}Rh2o};!zWlK;7ga=N~=4fmik>LqIg2U zNQelvLcPEXZe8|9>-ybCL!)pN#e=I*7t;Ydg^Drq4k39s3F5Fc;SfKJXYTs#a@He-hSSne;ZLWem`=J$;|J**@8R zXG6oC4f-~L-qByt}Rzjr|+6P0`}Hq-7by;8a6lm0q?UlL@>qzofgn5 zR8e(VNd^) z%>ir_+Abadep~nQIAP;bSS}1;ET`)Tzq?vo3csuDr(#Dq!<5iTCzeuN%GQ$V51rpI z*SF9<#A1=yE}<6m=PmHraqWG5{!JyqJoF*VpV}?w0hMkaS<)3ARjDZ!K4sf{xFAY* z$jF;+pj)GBp}uA4hjhC7c7b>Af%(=p{m9gD`oe3qCG(SC*bIAK17Nnx|tffFprz0WM%S8BAk}Mu2dy`aHbTe#QMd13Bg8lq`d^?Ng>i;zJr<1xgu{+Poal zK?*A~_n{z;1h)mbpke*ksLa4ug<<6IdB@&175AI8z4_qUndwueOyAdHd<-(O17zd^ zSVQw(CKl;ZmkTFE;gI>+Wcv&MI4BrP;HoB)%A5j&I|3TKhkP@p(y8 zjR?GZA-p>-Q?Le^31LbZsHNpx(F(_eamN=V%Q9n};- zJDP3*S+F$_6DT;Uk6=iMvv=VBTI2jly8Rdhyr92lLgF3{l_wXd>N?zivbJN^q)D?F zpM{4|t=O0O(?n{-HK041u{utS@Vmb2+EblrJO?`K7sekK@aN~IpAG(GM(nCAXJ+aQ zGPZR`7n9IbF8I##^^ftbu_ZqEw#2?MgykZGnEvs70(0T6N43PkWQIsBWhSmRxI?=1 zmBKTx0iUWFKh1l=ZD7wpfK)wI+i~Iq=+hZ z!lmyro(o67j)(D`m!CbN55_t0UwJ7`V4Ifla*s9%_N@88@7c!qp2cVr zOyU@S3^ZG(h*fmR4#g(RPTthZf+LLVF7P88`&u@pP@_YYFwhVEE{mPjIIv3ZeK+-9 zw{`K-iw1=7oY>pk&yBA~cXhqx;n?_U58@fn~mfG&vy9RWMCayCq}j%}cVJ+@3whLv+rE$lf6toKZOdgX-6te<$huP!FFgXrkdNmzj zLuOFc#FK$3Ym7VlrO(smw%MG|9VQM=#^LIoq`HiwsdW4m*YxR9`S^kB2Vd6F8+tD6 zFYABpijI{%yDa681q4U_z{n*~gbihf|~~l5BZ8)`xf81GC-5_882RzYg9mnB8iGD1Q|^zOj*5pT7Gktqi{p{3XG2Uvuv? zZlvthU@{@7W)7jy*>I*0!ZIba{rIvCl8 zopu>ym7;B8Y<4_@J0mltkJU;W!bs=d(YT&eiyRz7(Ck!QP{qxe(yh$XSa*fCiw_(w z$mw)Rm)Hny%cNU#XB>*t$8Q7r?5H$ivD<92Ac_vVNY~p0?4>+0CDuE>U-gz#I@Tza zvM~8(ZKL*jBmNn9@HF?%flX&m@W-f#b)aMHXo8)`p8x@>iP#mJX!HBCL_#t>axYyY zcwkO+DG`V>{T|_N#@T&BMd(UG$m7^$Bz0Bw!o(^aHN=UywM{=auHE_4p5c=wj2*CS z*?pI2KYGBfTDf;)70>Mc75k4L>9wcF?AYttJ=$JY6oW zade!qB5fhr4!>_j;in+#2i;*3pG&X^;~pqUFe`#h$O+m0G%#ox+k@Ide&B&kx`bc^ z9y@sv-l?EU;6EWQGeT~M-B6njOf7=G45WqHWQl<#xGF>gMPn?5ycl~!JA!*3KJe5b z?Kxb-RdR!4yLY|!UeWvS?uzZEWA<%&mwY19TF~l<&1tuoObTzeyO6V&gu8=qbwU=H z5gpSKU;31_r|VGNDc@C98D^;mxr!4BM-F4x>hCqV5nqb$(gtelw)guOqgy}W>a~lt zd$mtB_s#mb-Q%pU?J*>R#KDXugk&?On$wsuM>z>J=$fvT8M7=0*m(+5Yy4|xPk~5y zemr*{w`*-96FNNb+%m4{z$UiF)iB;CAbWlkjd%sOmw0&DsX9HLfQjcb++MHX=_SLM zPP#8)`|IM@8I*v?z7`TRP%f}kVVqK;r(@T$njKxw=80AucGC`EzMhy^emxO;2ya`k zVd>)+&p*1Xy!@|^=MUJ&pU^(m4#$@5!Uz8S`MabR}w zoX~)amoDD6w$CokwQYH~UD0Dt!5UV;etsLqa-wY1D^@yH+i|xi z6<**E8eHs>Zl#Q*Yvas`T5VWU*u|k-q+n6eqi=;qqf5FKHEt5Wtiz!rbQGmI}3VPP$5X@$u*WvIBW*GQDR1g$N;the2U{nRU*w;!@AdK6nBozr&PYIx_ zqZ%5giX3=opLXUqZ6JOJgDVAEXEc8J&;f4ObI&k>w0~=-2ZH8#_kD(O2fFipo}Pn& zU9*7p6lJH=3qFSG;Vc#`i_aufD03?+(pJJyr)8K_xV*leTn(-u4s7C3W4j5vKi++% zWz@tftLI3j`_&UvM@R2Ehz0HUuWsvg7a2n6Qtgp>? z$m6J^#xk3t_$aZob+e=oOai6x~*o+aUR)hRte#4R?x=X zV9WM^V8xx{?Zj`}n=KN>$D-*Kpp2^+oK!f3Cp1=Y;(v~7d$q6L`Eu6k*smmbb{xM2 zKfd=3?X*^Mfq+*=zC$pA7ZiUl7|k0O$ckq5 zX08MPcLj4X-L#EjwY!3F4h+r}>$+IYZ9bGESB#&zzJvd@Usqn{t2q+MnSNYbtL^^& z@Vtwz9ctx|X^lJYuFDB)TKV{=Uf}GpzqG$%D{46Y{n#>xf6f}9y$8t3*DPM>6>&HM z0TXt+Gr%9qbbDYk?Teb-)DyL14j)X|t+=eTZKg$VSa-&at?Y5=O13AcEb$Px0d!mA z-A`*@Lcn8H`qt)wzY0n%)`2>bv1e%DQ*rGSdgceVlZ@w&ISU1dPn;$}z#2;bTuT3( z>znquL_deQeaMSkf3W`q1tHSJm?IFqVy+Pkf86&mJQ#>?>X$A17Jh#o$SXX@i|jcQ zc#AGx5Cs!F3+sv{vw%hY4Ha*8Y<82azsVhc+lR}ReM8?ETf)tY_m(GL^HkU@6nVuY zN@mGIV2*;#YN4OhWM%)L-wKt<9SG z1YY-W-_09vm3EBp8oLF*sa3$30eJf!RtM@vVy`Jq-*rS!G8(JS3m=z3`DtXp!#a=J! z27yskVPQ9g^yr@7nc_+mRnvgoR zjXDyz6VCLeUP=72IF~7-Q?Jz1k`(kMuHr&^j#sXmwU$vmuvke@FC7z4sS;SbR2|S? zFD9-g-6ic51FFEoajyxN|6|S0NB;HO&)3aaaJ~K6jL%;F>&n?DwJ_Q9;-cFx9Y1=) zrlB#5eCN`IYelZNg0CObzZ4^_Y2~cl>mPf9=esSvu6C4i_v#fZxEg;B&y|lGIP8k( z#$hi#df%h>>36xX_IwGfy$3W?A{5 zm+V{-Dn0tT)^Qdt!Hzi-re3f8`qP{V6XtN^@JCzj9N%|&_UMW=8}Uclo`D0SgYd`N z-XQ}A4%O=fDZZOaM19$wS_*RvvOVQQ#Slp%JCAsmBG_odWgaA&R}-^Hwl#1f=3Wz; z5lSiJgW4(WH*F1`$`wET*h`HEpL&Wb)&8ZOhMn~9*Y}_M>=?VFGsd!lmt7kvQB>86 z-I7g^gg}PJimbI!#bBevNh*k&$~jwQV_F|QqlG{`!~nv=1v*{y_N`;5rIaY0yrpD3 z5ckV3l)P#9_1JHeM11<9*Y|5Lz&<(#IuH0kwlW&~MGAOCJ1KyX!*-h}!R{7;I&c8M z*QRt~OLBWBscW0)ZIBE^;#-<*J@+lw6x+|`$3Er8$M-M8v!Zp5`~Z}X#zi{Xvb}O< zrj)08y*$aIP%wqCC$nu<8}P_xLw;5D`(3qBzY~eIv~t)(h+ynSXZ9s0sAp*-VHcKX%BebmfgEwnZ42YnH ztK2lBu17;d!|C0-h1|18S>hZtat%+tQB+$@icTt4O}yuHzbgGJ*byxk8MdQV0zG%z_(23byF3sd#_eaAOgs9!iHf`(Hty;1t2>%A8BXB*aq@1*aU~X zM}A&DE|Wd-&oVbnUL);kgD{fBn5-b1wC zkoE()3dUcTzb1$F8ba}ULZ-6@GJmB9?3Fz%challwW1FEHu4ASv04~$d5FVI%zmG! z42p`#ItT*wa-;WTQiJ8vmO`K~D)WW-B`$0OZYs{gUhM?9RmUk#$pzchrq%7Whijwu^Z6y|r5Pz1y(w-; zLg(fBI)x|(GRNADQqMz|1}7~;F&vMP20#}09j>`IVfDwe+ArESvleLQz~4BseCzhL z+6O!CJol##p~UrO5K0(5^%NB)?K|z8y?epSDEj31`yb%Pj%&{+akF}ZERSdPTm|UD zNXSW$>ha{-GZ4x&*-eE-yfYZ_`z;wB*%Gd!ncs;M^^7;Ww3^_G6B<06ObM-^b5h*S zM8*QSY}K4w?>YYbk>mH@IA=xUgi+6jzPfh$%&AkZ=eyq0=;yshR=s%qABR`H=;4D; zEnav#HpO~l+p=43UU@sy3q!eVR<~?}9jAyUWHZ_94rEF$2Tl9zn7ZTibcrynO;$)f z-AB*S9mQqSO~zVpe@Wj<_d1si`Uc*M>>@D1A&Yhk_3w?@H+!$XS`~WbGj`L>`5fJ@ zT=oYa9{(&}+syi{fzX`+Uc(m9>!=WRidgihHVZYYVAie7tgGj%qY5RPdJ~B3J~U zmw>jfi+Vhqne~5`t(=;2tscCZE>^)JQfPk1aCq zsY`f*X^{76B(Zi^AaqW88s>|WMBEKp?b{#ysXcrQcRLrmY4VLXe^1@7vq#t8jfD#Q zq1I_WP&A6kRTyYm%KXu8kvv|&0wQKgbG)+dm@> zJ!~YNH?V~Ba~F}Pz;-Nw{ie~pT5Gh(X-uZwtmsXkrIbT2NF?u;v<>KVoZRf-Lb+>!`h{@xY;gS_gwHL^v8#c1L znqEymkhU!LA0Md-W@qzG73T4(tLr%$V zH-RnnCJ){brB3hB&EokM5=IYdQi=-Vb|#(|M*SJ13XOAiyYcFAgSS=f$~m@S=L?$_ zH~SXvuC0pUb-nnm(Sd$>r6WSayUZ9qY;M=;>MnCU)ipDUD)Yj(>>GJ| z?=|;tUE6#4h<&$&^D2vG)KvEyIb_I){&8QL)x--Z7;(_H4x&lm>S&y8SRCA?OB`}Q zhZ|^MiYs12l#pF+K*BeFh3U%Pk+vKbz?MnoZPFg;d5LV3zL2Y;r#$EvXrW4y2kx0laI06AH zQam0ckc><}w&L2Tquh$ER+mlGdl^<#bSWR*3P>r1j@1Ex>2)o|Db(whXu}k4@rHjb zd~Dy2y$|kt?4~oDai?n!-GHyu-ne%Uw=lN&(QUX=yKl~+N!sfM_8*HAx`K5d7^&u9 zSGpC6c+_d?BK1y{OjGx$98z=D_G&%*OtcdP*ssVYh~P}%0+_sd*G0B-DSs$?;(mLm zm0CJ7v1J`dOB}$nM-kU_4u4O!vtEx5iu!J~@yKLyf)IeUKNYQ^tm4hWX~cgUFD@UQ zdOS>xtA1c9!As$*LgJdD4Zm&;zI`*kSu3~ZEW$(Qg)sO!+6nU2xomP(-YD%6+-o4% zc`N>2=mcZag_s=aW;HoHoC-1rJD+tIaS)%^15`-1Q&HK2L0D|WBY7kwIL(6jR8%+( zRM}5O(YJ})cBa-0VAj!XoAv3?y=+!FmwKM5;;;;)b1Srsx2?hNk{+=bZ8FDY$A*k3 z_uq{>#i^gEy*^!gd?uN7b+z_1*vKm2T{h5f2m0w9L5VvfgLjzCUc{s994qaD3WU3X zYPXvg1Q(+?<5ZOYww1G)^!h2?gA`d)S-omDex~KF)Q`4E_Q6NAd3YoqI%LRoGhUu} z#anN^R{ibiU#3qc{H^QBSHE38&#&BqCtQAk_Lg>fx3+ya%a8jMXug8=o27Bt@JKt0 zNyw!*rP!G%2yUCx7S8utTnLEGg?;VhoW4_0=eJzWsVH|k9jYV!&`?RX9_ymF>&(>; z4dcycg*f5HMDoW_;`=_k{8BoRFVamY$ALq-um053vTQ)<<|B1*iK44r_!0Q z*rX%OVJhn@?xJUdvS0z#<@ShAOoAfZRKo`?p%6q$(!P*gJkN=kCtnjaQFXU z>5jt(cE7f*k(}D}&0O+T?E3?UW8Ayc&cawlFqRdfpnO4+kcmLRYO_=MlLc5>dfblr zQ&D^xNl8&`aqJdXD(>W=o7#cdH&E>9vF$-Yqf8y_F;(^m~rN$dPsvNdCm_$XuM;wf zqTBCR5y{T+s;8n}lh>3g?$QQq2X~w*g!I!^r@ad1LE1tMP+c{tqcI!2% zz?)u-Hx-e986hieykzC=HWMfd+IA^TU$wxZN-5^$_G!|pRro)vVT(gFLcY?*;O)Q) zjIPArqhDYQg1iw4Bg6~bY5Z+!0t39`mpksD3rA^E@Tc5R_@7NODgK_@4C4wY2mA%#jc5YtCrK$xcnogJXSH+{{)+PH+?tt; z?n?OP1U&Df7Du+(>?%T_f$YQ|P)`$!i`X5fO~_7(PQ%Ddu3%*~7@IIDEb=j2OufB@ zLdFt4)HMEVwn7%}M@>?elzny&(7Iu6zIt`6AGhPOK3ihf!0sOCpA@=+dps`lae1<# zvWO}I4`FB7c$?i}!n`F_mbx?(B?;@}GYC`eUd=8n+=l-U7sLBHZI4|GGk$sSC~igb zaqOsF#A7G4n}%dYW```;M0{GJ+|x5Q(?@Z~yS&p5@3?G{i2t~Mk)Sy!OJlPf+ex=` z+1$Dj{m;D)y0IP@agrV zBVWo9DZYKsxW$9|4ZY%_CmwsSepvs3i^fE+oN?9l*IzlEe`(RQYqw`+J~HRIhW*dZ zdpPL3Z~E-HSFXEp?ULK?ym1|)9b}qh!rE9^CR>Iq2%;4@=W@$b;mV@P1lGlLTKx8W zXE3_8W(P4QYUx59NoK<)?O&_##)tN-`uHry@A6w$?bH^MukK&9gA%5-)juHqHeKO?H8{ce%iUP^bf8NMov^Z~YtwTpA^QE(D68Qopq0-uaLA z#VY*DLwn|3i{%6FYwzNUvD09iZ_*}^uQuK`WrL~>;a+@9+ccKRY#X4lFY^!cBQDH| z98Vy4=BXJHPIEdp60Wo1tkY;wTd6gYEMfS$HDF~8n^pv}N#CW=zTzUW$wYR!?YwR{ zzl-N+rif({8`!`MzvnE@?Cyql*ccdp&;J2q zcu--)<8fIfUiCUoTU|i5TRM%+2~DUg6&f*u8WBzG&Yfxzx7X*cAiwO`>2*7@cJ9#r zT=%*^_|R=T3zS#af-ad|d-J$yvE{I}_g+5>?C6F&hLX!*ExWKassKx=l9 z-Mr^+N*j<$2pSVOD|EqiIAxVpw1yqHh@lsmSO^kV9F0xS zM_dl2f1Cl|v6-Jq#mH%!*ksLH2GThqLT-Arp8TU8lJm|8qy{2|e%$cq=_Za^x#PoTzt9{Vs z^(sD55%a^2AFRks%%IxLX9#FI57o96DIQWyDg<|;-Hi^yR9RhNQarwJVHHlPW#h`j z*9~5IGjg+meq}(IA+Y%qXuzTU0n0RQG7?Q3oH8GuC=+UbDKI$?q9b4 zz6~o^>i00E_*4EKSf65+d$A!>R%I@>hr3n!{kU6cj@#X>m~`(^Ty-*9TwGu+@qtcu zhC{}JIYZfWsq$c{va>^>%#+bjsGy+p$!NiM&h{sx&NC(xM29D%)-$c7UnGG1Kyr=S zj?~tdsp%Iq`9g04!47DAEz>Vxg%jBqxLNiESIJ#HrnX+0T(I%FkNZ{Mapm;sn;(7P z(t!gnw=B-petooe-6riIck_}(SNEyuJE=?Tob`&)L$4Ib&9<9wy`Um@?2!Fe4os|k zr{1==#*M>wD=J3@4(M@VuWP$6pEGsNRAwVaz`DO7BIHN;6pcg?a&jC2h?@%vU4obM zW}S?B&&c0%c_*VbF23$HX?88X?9LF~nH~qHhM8tFRj@gy+FtGr?bpHAg)zsG+5B8W zm=r9EFFcv7U0-vdt0>P;I$uTRXdhe)g7Er%tJZGaaK}m%mrJWbSbT3SYhXvQXm=6ZB0m5M=k_6t^2v9DN?#BLF;QEqi%2y>LP8x z)_U9-;3T;1S(%_QNd`I@&7dNgkzsK!J= z##6z`*?j$uUAwm7J_|rJqE`##vRm%}$ru@Z_0{KI*Cs1hFbPP~>0()RA-4&>2-sY< zj7*pNWYi_PL|Kx(C!_Lr5|AgIX(cvF6@s|NHVTtKx{b3wuD?!KsCzpPp;8N?~exg1z|uJn1`QN%pn*%OaP3@m}wm$R(z!*5gvb5ZH`gP!4K~#z!i1y=HS(Mvy0@P!7ta?E*ijl8fhU z$W}t{A zL|qnp`u_X5M^ng4ubx&Qtbt?EemU{cGhA!8QcCKd~f)}HHqLhwV$8v z2d4zLZT}oGcP{RIr}jSX22Ss&%d}s3Z)^sht~F|x(Q!wE|5ysLS3uA8?Pjx7fPz_B zNCGF(A37QJpHXSgMV_vT^#>G`^dL2%Ia~IY(Af+W6jk_CUCsL{m|W@ba`cCsrSpIR zqvnzs0#|s|rGu~VaJ@HAyJ}A7%Lj}EB2P{pK6i%JmmB^-eRx3czL(s!@D7cqpWZNA z>&s{c+1d>>XQR%MY_FoYB#6mfBqul1elnVQ#^>_<;QE#`!5aK4k@J~GDUDtdC`YXj zta7^#m$b<&t-WB_u&d`$GTTiVG;bNWSS-?&z<>_t>~_oF34)Z+%PII(sWDvoEm5Lf5f>UZ z?so42b^UesY=2E4IGqEnm z6`pKPZQZGPq&rXM5(gYxj=p!*F`mlk8Qtg z!@V0;t!8JUC-AMpYKZN+M1odXHj5A|^8^As(F7XODn&rmxRP{cyp`6NOy>%$Dm`PX zsIE}yjWaV=_}1=`wL?ba54`>MytWyo_-AD|j*Z^6YqXYA-A-cs9|`>51-eZ|9U>sb zb_@1cJU*}e|FQNZ@KIG)4FRz(EEq9JHx5l~P-abXh)xS>?E zN^#c$`YA4eI%;ZF&{`G6R;~SPYpqt%Dxj!X+gkJHf9}2Sy?HYU*ss6;FNDD4EO$BQ z+;h&o_gshGbJ*-~@Fa}UT(&4Gb6W^ueF+?pk?M25$I7&tzl3M2md;qSl>bBuEj@kp z#ps#-2X|~Zb=6rj!C%es~?q64^V(h%Gi{=x<$bTw@uwf+QH77BB)PzZ6r{F=uAFsF!Jwxx0AA@ydJItGbiDWH; z(O_bY0@AaGNiG*plyV;g;RFDL9i(Z`j^obw9lUu>URD9%vrR%I`4q=zXpX z^gDy|<6eW)VCJ}Rn5(Ral|iKYc__&kyf&U^Y(;(usmY9sGIwZ?`@`hOi*yIdq_um# z1&_53WvuLzP1CDKG>>YFjX$rucfaT7s?-%m778(rDe zyLA4!D^@J5ojZO_S6wnZtuf)L>6ugQ0$ra2x_$`OR5wI}GqZIOr^oIAbuYKugD^go zRnZ9cVr@}m=Au!~Vo8B}c*yVt2fm|{HPpBt?Z-K5LkbMx%j^!hL%Il(U){nLu;lnn z^stBSzj;j$&#$@jj*UOLb-~5`U#Bk`anAh9mUT^@Hfi20PQUq{F`M7!nFsG!f9Yc# zp3Of5(@T36E}QR~cgDER^H<{QfY6^iVQ%$IRo0~kYX&yo2xi5Ac!52P9VU`ZExyc> zg8v5*e)-udeY@ec*EdLCJdbMG@B6Q3FY6bica*gY#>oiY+JtP93tG64GbH-K9gF(8 zSey$6J>ifk3@&K+kO%Cq=kt={m)gB#dd0Fiow3qzmMhQrz&NU@%nW{#`_z+8yX4vn z&VFTgQ|r5DjZQwc_0HXQ-TMdh4c9tl`}C>@FIssOw@CbC{^FJ6xBs$l$F(oFADz)d z{K{d>^W0?qJ6Q8#prIK*V=*|LLWJi9o53J3TzT9Bal7Y;#e5_J5em$t__;tvM%K@c z0h^?9HWPbI#Jh*^n>;gXSB$yGF$!^$AAR7GZ4cdgt@V)w3*Wi$s`bNL=Pg~pt$g7v z1AaSN-2eQ~|JOUGLi*R%8$@(F3ctSlx-HL33xwOT4l#S#7x-_9O$)p1497d&Zl96$ z+Bp})vyQ`N9fZ(FJnWb9OToms!}X7$fn+qf1R?-aK&-zZ9QDwnptKz5@3|lMqMA$U z>q1V4ue`qfAcRdiG|imYwj;{8rsr)-kKzM3+nM{+IK4W^A~QjUB_jZ zZT*|&dZ;VWuh{i=9eXLm$e+#0FJ^bM7u$8hN=Bfc<&Wi8vfIgLYbYGd#XM;)dzjly z^s6gdOY}<|pkTIWG|HL^8m1@uMUMj47hNVO(k@xOQvb1f9j5BF`i?uVz2UZn%lp4h zUe-Qu!KKT(PMtAv-mI-yyPo3?W9{0V_1yIDKxSFb0-{|fO$O~Ewo{tJZey1-RwkLX znapM@qu1LR8;{I71Pe~RY&{)vrB4p$PKf~(b&1wC%Z3NaEnMAw>!p7T@ouoxv&*IA z!qK+d(R=+>n;x70OS)$;0(gALt|!%6CT24ZyWKAsBN1?KQb{*<7QyK@>U1Q?)46r5 zgAL054n9On>f+LqKt(Zs8}X({mL)9umf~B*+Lz`aywRCaIkgLufdb-E9;7b(6F4?W%ZGzrObGgZEFH;6l_o>-* zfQj+E%Oco`(j^lXv)Si^z#0~Bm|RX2!Q%yQrM_NG?$V=I8beXoN6=^# zdq02pwri}@XU<=^=zP$=VQrv&h{M|VFQgM+*|+T-?;PjWYqo9%?Yr)0ukWGScL#mj zOq$HTz-|E9U9ZaS)%hdh*ZdTig(~KP>`=GE6s(FcOim>wbr}JgmCksR*>Dx;}jgI8$%{rd7$m~+#`PhOrI_$2V{ofDsUjeV08`7fLx0;+LUXgZ%v?gGdFCw&6@~$L(Uj{m1Tr#wt7fsceTBY zF?!gx&TiIQ;t!KlgL0>!$f`CC$o*j*X>m~BAN*ur3oXdk)&vTk!6zrM^X%j_0?UV` zny+>CKOR|N4IV?g0NM7>^oeD6=rz z?6)vYP3c%X9!R^~wW8=wbHmyzJa%6)>+&E>vGDz;^FB5Rh5IYfLq>B-;iGP?bp3y4-F{B{G}C!7_`brq=E=az4(bgRe?+ zB{Q|V(iTgBN-&|asof!)nVi?s9{Dep4CQH?CP&fXMTe%_35{&vc!j3fJhXmplLswQ zdz({7;I`W~Tr;V;HZgwG@3^O>CA5#yJoF*$H9GCe)mt{0uhUOBYwnc{mw$x;9~E@I z9&}&~b4zw|Q+0K^yei1R)Qx0@xgpXp2m({ZjT;+uN2@(inCz&%uAu>q7%>b#2|cW` zrY6yt8rG=SHx5hje#W20m%nWI;2<6Wsu(`pcU*wANB|s7%FQHAeAc8sXeYlT=}6*{ zfMLM7#^y{@g!L&o6!IgC=-x0Mt`vUUU0(fCUO|=>MtbwcC&q7BGHa0Yw;dbi&3=5R zbO_bnj8EeB-}nIXpK;+OSE5ITStJYk%0F%9)$TtRpX>cDdHITaebVFTWJ|NOf_1c; zKf=d+MN8YNyI1ZZw&e+i;h%?b%`i>OdD)g)hDk&-6>go*ZqaA-EzSNAlSU|3BN_}9 zc1w*tk+9cTcwHzo1i!fLw&_khdTMm3jF>!BbsQcmSTP0+mO4tv>+|~Xb2@lr+DC6# zw`N$brgp>Xx!U8@Q#LG{+dpIWL%Tc3QEN2WSW#DNmHg-%)9`f9we~+2PG$cixpu|f ze(5pxLiflH%X{Zv*8BwYe=DhVJ(;OvhBH0chI*zosdKwyA&AC-0G{(U)8bk_G{K)d-|+?`y+a+Rr<@G)?uCE zxmO-&<%cYE&F_)EmEQm8#aVlA|NU#frgr2W5QdE)2UXZZh&ZaMOge^1`nj5Fhqa0` zW@5&en1nA+mB$m9-tDnlZL-pGxwfpX~QQfD$0Cfu(dgEVS>!i_A;;A-P+t>X{g{LTm-Cj zdBo1)sb>*O2gpDfw(|Nh4{`Tf; z@5S%+-PC*Cx*6y8o_f8V4 z>Kme6Q)kQ=b!s>js95xPWy>jB?!01?`{c=|OsZ_Fh&nwLk){V~Mo>9>JpUCtNvMIf zdrr0?=B+97WHL^hk+0$FYDG&TWCdk(q|d%!Xzis=+;#e9U{61#8!3p{2@&zu5#^FEh}GrRcK=AoC?F(rjFz|z5nmX zE8ywlP|KCyd~>C=ktGVIV;`N;VU^FhF%0(h|+~kB%=- z_&r`vXSdP81RX(Z6utznO$Qp>N#A=Rfv#36i{DRGLiF+sJ`>!6R8eg7(VGv7q_Q71 z-6ws;{_=-4sA*^@6WPEnJH6!!#P{FA4VC`)lq%9Qv^yg`x#>Ez!h(AhLnAj`C;iOT z09~T@+QBx)Kt3ZdTa&WsG-r<*eZD}*9;&OgRCacI$@>Ebgr2%9pe^#^U5#xzj5)- zI^OuO_{7OqPQU(&%WgdVs+0Lin|cG2rb@rw^_KKc=@aR%($Ph87fx?|h#QVx{bATu zdl$U=;a^^aFb*;E(0lAo{z0-=6DMa78F~a!$3g&yLpPmHG;y5iGlM}q47!Fh@8n>> z3D0H@kse&J0?k~B-a})h=h!!-KcI?!T>D}&eru4tM^l6Mi)~d^WhSSS*CoviqbuX; zYWa9)x6{J&VM`d|lyJ~ywwOD+Eu}An6s}-4X%ePw*h-P`tAk9xfc2TjujrBpQgh^N z@)du%GFDmL{#gIRTuS`yQuqUX_1Ect$u3Uc)unlS4tb$7Q#t zQfZUbT9Y~9ln~O95>475>J@1 zroZ$Olh3iJXPfk1`}jQ%JXtm8^mVuA4hP33$94BiY^d9|wstuCHdgrlU!qIdPoyi( zMtNz5ZTD~Ry{YBPn)m#ye*^kK+L^Xq?GKKl;}d|t9wjvp8nb>A0%79ydW%^{N;H7^ zXAK@)l%a#(17uW3+acGnXdYQgU}>dkyG=tfSnGa3od+9G;h?yilsf%Ua{MLhUT|3O(1c{1X3 zLX@YAaIZ#!1$KKQ=RS$Pd~(5pj}Gkr>$$9R{R+vsg3cA0uQgA<{Oi6o(k<6-nmO}^ zjnG~rw08rvHvzMBes-uilks_-rm8BJP0#begn;6~cwKE}S%Lwx>NUyDj);+DXLrQw zBCodDv8FT?nTJ7o0IGv4Rm!D3TrfFp*hE+no(G)Bg;~LK<@30iL^-4Fl(ENq<|65z z=;bLZg6!nriYe$7=^y8w<(+*hlD;|kSLv%$*x@%m*ni6d?4qeRF5I*!{XeT$J&@kC zX~B)tu68=#lKK(zPExw{`FqXgd!MJdv#YS54KaI?X<(*jYf>R+b#<8@pBpG+${L5T z&Ing-E3W`Y#~x&S9$OurB>_AhLG#Fr5@jgWL6ktF5qsA<&AX-aG@+cgz$cOi%TSz6 zpI=?uak7%B$PLU(NMGJ4N%T$D6>d32!G9rjmu4l%dx+4-G0;bB>$|e`Rwk3N+e0B| zToipyF!fX;GCifmS>tYCDy`k1rT90)ioxltoiwhFPcI~I2NDk{Rha1%_A-3M`<&r<`fucvnqO$Jq1y|@6cthGEL@7x*s5FB&Chj7f2+;r&0AIo2dMO$FprH=mv}YAk}b?R z+1A=vth(Ia(!x0Odb7d6q|5m>_^`9P){_K3I2okb5QpDm@PH%lv72p-fm{(S9JU!K z_?m25yl|3bki?OvL^)(wjyc|4?Rm1IpN}&|$G!CZnyTu`?Qhy|{$%oI=#*?_lIJ54 zHs-Zh9M+h%B2x}RP#*LKtN|F}fZbuUdiY48yp^)!+EMyQGSP6_bkz^j_OsAIu6*sn zftTiIsbVqseS4)R$~psnP>N{;8(f#Jje5LZA7{~7n1GM*H8-)&D3`D&VA>M)fXx@Q zH{f^qPQ21IskL{MwZ@}9aYhy!+1WWk0_Sq+FrJc;+157V@Ej*?BmHXAd!#F4r(S3w zE{`A{Cuu|92j58E6`hz(LuAI6v8+8T@OC~P3&K8%9+9c;VvYmnQipfhm)dWY~h^ka_E(`mHCKkEJB<$Bf4sajF~(MJ&#ugyng(3%N@;4dB$2j zbqRkXn&;dRT-5u+Yh)R?8&-?gbGuE{uIi*S@ZEUE%Z$k;Of2iQFixve^zwe6)8et( zc+h%YH@%y;SU|cg^7FJWRm)pw#n&lQTALL|c)t~2Sz&MgQfb$N(u#dwT81Vv-|gK5 ziyUdqN`6>>w&K^9UdFyCzby`J`X1WkV5|S6TEQ+O7uAA`-CLY|UJN8`_riP3=y4 z;-Sv&cu;JZ+MULieLAejW?g1wP4u=;XSc)7RFysmjc@cj$Q$IE1+CcDllBWGcYU1n zt`CmA-829PN2ut=4~uX7+_U4p_rE)K;mTD@P0!Y$s}B68ClJ4^qPDJ5`r_vXas1P> z&bg!e*XypFFx&me)(3MUKm4lY(`GqP@|TZEb=!1b-fFyCk1AG~-njhSYiHdJlFByB zpE`36@deM|{|RGK4&LDGY-5=@k%-3)2A-*e0I{JyY%jBT9o{s4eOU)fxQ?CPt#deP z@KcwjcxSiCqpl6Izz?`2qv?C0hlz~p?Zq|DUQc;)^`dhDCx$2tRuU|>KwqeEa^Up+H^OaLk+Gp#Y4CGlK7+exN9N&NEB~` zDi%qeTHNQN0HmGQMj$9Sdcv^bt5#>LIz~#L4IYC$fGTVcdbWK3*Dba?Y^Z|0R|!F| zTzBywz#N7liaax0CpsKvy*?6Rl1X34mrmh5|0EcuWYQf7#Ib|o<{;Ga+F)(B1qVFz zJm?jSChazVp-(NM?64O$_>r4#@XMV!Z`)V@{`cplTl>=Ov=@(!LlG1}W)vxG>?39( z^k){?)4Vu4yu7wHsl$~~VQH*LlDBP>+>nN9n49Y0ATQk3F$3PX1@F7~mD_>Z>1;20 z+xo{IyVZ`siJrZc2jQF(J$@_QNylR62>PZ>7dMaeeQ~zUm5%rl342vI5@8Gmp$ht) zcDvlrQ@1--Uu!be)>^>X_J+f;SO6d9(18in1+{ib9RkOI+lPhY^**ILWk@L*lsInf zPFPVtk^6OT%l-w+9(X`g!SlYiH!ogu>pT0dIcE*+6*|A>z6GbxU0A5)`ST6uTy0=2 zH!s=x@Ccd%nF;aePUthv(ap&YVNxl--|X`_tx;Xr8qTEs(FnK*=13%H2$qAd;PpU+ zQlG}m{yv(&15pZ(MLsN7%gckf7vXG#k3N&k|* z?;j^?MDjtwUfQ`&0O(&S+o>9g6nGjRi@Q*#giR;=fT{V-QLgc~I8f8-HdM;v5o4>=b! zA)69iWtQ^th>J@lsnzp)8OG~{f%JOKX1m>h)rcvT9<8$g&TwHPLcZ@u_bM`;!f+n5 zt)FxKwd*%8T5kPC_>T{K_|?&mH!YOM5ly+^ytm%{=()wSthYXbcO|4Rq`#iDOO}{l zVW07*Fm5NoxW!@AVj+g{=sk&YSb)nN&{Bt^%v1&eRvBXg-@z0d?BxKp_E3skJ6G<~ zjzqH0SjeJy(1^>|vGv1o+cvEm(GL23>n-OKXYn_W?lg@V2F<$umWTYADd%zrE!F!-5i)L^>5>Vle^Nxb~YnyZs)w4d=FuHe6J$Z z*KVh2$NDXq;>=YFy!#NK%5>cy?@uVVCxxC{@#pgTMt(&g?pB;VE&}IFn za~Dg!=)P6&UjN(6#*LyPbl}QMH=nzCeJ?uwhOJUAENwpb@dXz&PMkzVXf)BiF7zJz z8h?!OfE10+#=T<5W3@UhHqn+SXH1+vsz2Br{lIzH_8C`pu$wzF=*?RHdwWksPw|v=*pIj+@J!4rp%dX)s)uGEe@%_n#vrgw1Lv*^$4?fkdk&(~#rjM*ugMSq#ibFkZGJ0gJ5IM{9YTvOb?a7Dyr zFTNRx<2u}=eb0sdk2ivhl}!k;|Y?M;g;@Aoq%ljC5w&2)r`9PH-j zK)az)JueqxQGdO!y*N8d?zd+|{3@=tc^j+{)T8%@wl$Bwbm5NYeuEo-<+j=5H*FtzcKg|phVY~- zn`m93_u1D)FBsAcGb>xK4~5D+PNRi4yIf`Fa;}W4tT1{kPTu5l*-fGtJ=m=W|Hyub zNfn*+Z>J|a{q==1Z*tO3du1OiNIIiyX-k77_}V-=uQQBFZso1I`=JMSoSi-8j00Ob z7T(z0@#akzuGv}9vt;S)dGnUdNAExR$iq)o-PYODIi_W}zoF-}(Tk){AK{r;HxiF?sCxOFgSC*DqVSaqG01Y;OLgD^?rt8Q(E--2BmPt>bSp zEnc;J?%D?HJf*e@x>t}GH^hnw2SPfYby--8$18HU?1IzD;43P~XtW;eHXcGnWjwU^ zX4I2K4sF6bBj?NQYtB7)=2`9G*7~X&`Rn@UviF{K`gv#R=ZZr{kE3-$YnZpt-TWue zj&a#?mzi-m1WsqxdAy7h7e3)Q5uXQUX*<}%Oh^5o&1llpej(SCuO@E%P%#p zVDsoxDR7qbjogg>vuIsB`M#-B6qb;7%|VCQN63Bf_H5K3dTlP3Q*`?LW*8pkH1llp zGBam3>s+7Nb%*Ht6!ksr)!INzy$7x>$$?AKuq~C#W~^Ag=A@}J7p_?&avLX)TYD3} zhjYnkYtKV3{`(NJUl<{EU15&u$em6buFhvO=u9Rves^h-MwlR^nE@$#Jo@L zrFydlT(3w#l)75W3FypUh41?G3xmK5{E6X7zX0CEv}QxNQ@BrN%LzMFyf>}s3+;!t z7o=`mp4rQ$VC?K*oubT)Y)we#@kGr=t2Gucb7i#h#N6S_<_#PmRx?$`RiBr^sHJveAL?JnzsL0 zy?1VR_bm1o{U^-}EWURBGZY9WQE?r*VU)1Kj}_?5d-Cm9SN8Zb_b4xy$;u5z2h_aahL&{8`^Wig^i8l zUoKWJ^m32kTXd_)U;M=)zF|Clu8SLc*M;-01qJ9SMQyRu3!A#C(K+KI!R30iTD>p(s;B=W?-h@7I*al-{vw6L+I(k1heIXYJ zqT73Nq4N`52TVAQcNcJN`()_A%JhOs(0VqusO!S{tMEto-sF-q@IAnP{}DZK>d5hv z#!R_lGwR2ml52n{{{q;;T`(6>W>_{Nc)g%OR!h_pi~GZ$bo;*$SnFp7C%&GG?Xj#X z9iy$e4Pf0!PTFm?3Lc9El+R!0hK16Noe?*=1LS6PItRH!ZY;V(PAh;6I8UZt zC@(%T!@jOuDVLsDc(zWuST}qAIdgRA2Hlz5BI)8^y@ocuEScA=U%QSyYt7pAD`+j9 zHn73365HctLg4LI`*^p(W-9|9&}?RSE*#MvGPppH45AnSGjzmVh9EewqR+7jE}Sk= z)S>9^4~;kRy&roDKErQ<3J!1wGmcRxW%q$zpmFPef-D!_bd_{u%gLusnkX&1VdA*G zC~kk@X*55H?9x}(Up*~tjYuD`JAZPMrGJ<0rt762lI#?>Jg@c4K6W$sfc34W>Zu=4J@f93CoDFKHxplg6JjMq{DY(}te6Wac^6MNO?0jZSa8b;hU*F0Hz7fquFEO=KnK zV0XjX@Kcx{AJdo(*}Y!QVDOh&oUks~;rkFHz*>l_6e=rEwe|_>Hmb)Z;l0Cc98%Q~ zOIErTESwlgRJS(nwOr(g3_F!;Th(j6%r&X|hXdc^u`LJQR|_|RE>Fy+d`8AoR_3(x zR>m5Oy8hxPUbe?^*c3Y0ZTg&)V)#;XRZ4yVSaaG|R_%nkAv)Nt^{XGLX-Fj#Rfbzm z?{;0cGaCxw2i2lc zpVwt@CCbf~h~DFcm{C9$FV-}#*Tne`+d+QqpPN3D?IJ1E*RGt38sxz!Qs7i}Ak@3= z*k^5Ws3)QR7j>Q5hu3UD?{B^ry(fi#^(*wT zl)85__Pv1i4ibk{W?cr+VYM{!+Tyl_2gFvxo2-+S(CviaE8yA!{ipW;%(xW4^e{4 z;PRbF{3$ZY_w4yk`UUj$1I=UmKcKd11kl??=(S`6I*u{05U?6eBFBSm;twMoqtjH& z>nO?C;(E98W}jySdQs|The)H)d+5*{wte25{#WFf5!PQ98KYCO8JEp$6d14UVgRL>F{{OGONXE3yU@}7WX(^_!74dN0Bzy;WE1ymp3sR zZFo(7iRdMLiM8l0GI@%znMO)=lWK$$D+#%YsdAlMM>9EL-I!^!&OYyvNZ{<$Z_x|V zEVcofyJpPPOPd?g?5V4k%{+O=8NXLfgx*f9U1P{4DDf z%PeNm91L(?++qV`fN`~03}3KiL`4s)d8zu6s+yVvf-8<|y?F+t5m0;z+b#Y3+O5yr zweddNs>p*2man;RC^AXq{3lmPu3b0W`Qml!4UccSbm_VU$WGVr5$GfK2~i+*KK=MD zHIL0EdWm+F1w7C=n+KUWk4MkxVVw1cIMYFG$<&hK$^}1zm3Q!*C62}u_uYBR{b=NU zTcv$-yLssbZsxqXGkJ6|e>(Sf>6r9A;*pKDOaJO0{laT6yvCjX%>Mn)Ks%*9{EMhl ztOOUxz*v}I)?_j;dOgSVf?LGYH6!TMzP??3eYo$^Rq)wbl_o9&248xv7v#RaDey)kz9BKBfopL!dAO8J?Qmc_4Jom) zzFAMiE93A74Cj#Qdc%kji(;u*7_4hDoN1J%WbJONQ8eg{cBjqbv>P1mhWIFd*k#d+ zdb8VMcbN@3ot-@2hoqhS$EZj6J>z1WPa&t%*b6}-bm~B({3?VMUx%R8a7MAi5$Y)) zI%m$g*(KMk8`IuAt7p;JgfJ^ro4R^Q`$-iI6_n=7{5z;dcn233e_CLBS#EQo(hd+6 za7h(ZBYiFHM8l2<=WXewZ>34^0NyZy=gnFWzq#ASMY(#8pke$wTQ2A=S8X)zXn=qe^LM`=Wt0IV2^9b<7_!O)ux3&r9&_ncoeU~szSno_T;7mJo?BCc&fR8O};8-8>Ie1;F+R@TN^K^Ls z{bGI!z>bq)+u;|E$2qpGFaJ)iZ3q{n&;a`&!|;d1uK_kiVDCitpcLbOiYqS{(p;=B z|9UP~E-)CL!QU9?DtgZyaK_6xHv@fRj?H8oX$*zwO8fakq`ic$!O6LCdmqCja|M!= z9>8ko8Jz4l@C)dWrQhj6KbyF%GkuybWx9nh^vc9cxBCa^Je7dE9HlL3;)uoQxab zClL6{(76Pj1>sCb3-B<;!U8hJ8F{=8kTGU`J|WF|`tr}_JU+2_jL*m);f|8_pCse( zbc_=T?HCIS$arMrF+Q305lB8&7GPnVwRB>%_3WaArmD}IY0PP=Q7}Dqn6}MlAk@i%}?LQ{B$7Tci7Qtc@Od5Fn z2GW-Vev%A-g$y4GLHh%(fsjk5r4P0!M&`L%wngXDdA9WBzsjk^>HA7xi@qd!I7zle zvYZ9_^55oE!ipY3yB}BSB6LHs9y2itw3rEGZ7d8Z3wV)C zL}o;h0OzN$4yb*wi_Gc(ZNml9ltO#)=YLmZaJjb6>{sl&v>&#<{IQ(PSKR02+CBs9 zD55VY#DtPchx7UTlTsJEfzYg>I)H-eIOcPfGQ_Dg^OpncL_+ga3d?*%bc ztn&l>6bjGW2^#Ky3cx|^U=S|KX))w^*e`UDF{_hhZ?rmQPnXEv_26r8WXz_>vUi^f z`$`EcUI#UFVQqVg!dmaF+Rp2w z{b&@Sc^ZX7t0_$Z%YvZO$O5HF>_1;~qagbY`8R>?-^Fc|E`~*G zC~W?2GzG)z^=!e%cvjn1=+`3J27OKuHVv*@%m?*JK3YiJ&2KB2ItzWfh4lTb7U3?s5c)*7hnup4DrBQ`X2S}1A@ zXk-n3D<*`40N+XdH}+{6zP{d(M%8Pp>&&rY8w&KlR_L>LvggP)F%rS_`A}pK`Ue#H z7+$7dTZ`#))wRX+rTrpH#-%})i?3xHA*hsbKQ{tgf~=FBGTfIGt{SNnnIfA%M7H5y z5WkbEo(&6;%^_NfbZH~Do21QCWtdmacLnlFySXn( zyQj*!_Ztcu!gHw-R&`H97v%0E3TyAnOF4T9-DkCQ0d^RL4dX6`OXzkL(LKukLG?$D z<~+7yx?M$dk1BM_`|{uC%0pVZb7B2{m)O`w(zjQ+1pLCEwQ_6%TiApyQLkrIkBw2^ z`WC+joN2@txraF{+sI9fk*UgtxOL6C$$;j7xRn^_^o$1d4sX z4|9p6o+)16X}kZSwtEw8H~864f}dTNjSb>w)A92&eqYh}T{PJEy~0Yw=jPZXZUsb1 zALo(@%?zHP4VR(W|5Y1kEROA0lPm`~##iD*7ZzrhS632?ll$7(hE11wFOmJgsw(gU z(?iphW~RiCrSX1~tlzKDSk&X8Jig7jJcIH$pzr{ki)9`a6_|%VT~W$IIFImXk>OvY zJOTmW0Ri8hoIfB8usiHV!sB$=U;eplckqZIkJaPjEG2g5Jfg=fvfWvz#*?oU$SZaS z-@j96gWU6=^sKfY>@kvWfPQ$fkKrxq zM-Ry6Kgk@lmc%PVhJf*}_tg&(v~$*;Kf*ml#{Uc%UXaJXt`1sW!`0M@TKFFDH~uMX zRp`U`jH7E%J*!g2?Pv#^{}ew-p$p@3BZaGBRElbQbsm-8Yc%G?{(4&*_VXJSH?#^& zk-tvc{0EixYv_NaUs0UqW)MtN+g95o7UNJp)heIY*&Rwe(bRr0i_>*(JKFA{K}My_#aDK9)m${c_!-HCE2MaF8ZI<|w(1s*eHE(jjdjNS3)1iVx} zNBFhLbGSyHbCU`97#M>|(8g@h{8wz1_(y>6l65YHEZ9HrgN$RL`bW;|*SU-2wGR4} zBl6lN&%2(^r-nL)i-JB>2{j6B@G-xoaNeORO-k=sEj?JfFQhVU#OBVZlB6`BW#<%V zg8WaRG<}u6Vwzn=G>@_cpXA>;n?Xxc5B}vA4b7uyy6kgRhP)b@_kiC}NoWowaGw%? z#PK+bsG|A=yP8wI8vKUC{4ju>DZ>t{=I5+xe~mgBbbC@cHRLF}&wJqpReXdYE!7VvLA2mdCZu_yPy`dCTyW+?SWGx=fit0bQ!tpYcMNtA~pDcsK>ZJpMcp?nOm?oHN-z^9$GkwtUq znt`04Pfo!ZVfETIgS>GqJO}XIWc=@8c47T~61hRU-MBaI7;BUWY*znq}&gHrSAVk-6=bZO081){OmfvsI?c$nDl$L;Q|mWPbYD(ZugSc)iBM+LsGP z3}sq7K;M!le#b28ccGIhj>qF5wqtwFTc$6z9i@CE_8;>2U_OCKfw014a2}Tt`NZ&; zho{HmR~TsNKd#U>Aodz%4I!Qfim;IoWue$;na3KH$6~Zi!NEOY@tWSLHhX}q6F|GiJa!i{T&Q%w*!4g zz+qywxn5W?xI2X30elakzmd70j+fmIJ zNZoJ2O2R7Zm%bQ}&Mm>Cb9)!_w}Q@Nys#YQ-RmJXabS7FazOl~P9=}Rl03@4ayAF6FU&84mvDbWi(r?j1R<#Q8eb=l2D9t-ng=?K^ee zUgw&n*Ku5#&BDaB_2u{G+SG}Y<-CN4;Rp6nDjyt6-G<1*h>O<^ln*hj@G6hya--L2j&Iw$f{h+FfF^m z`Xv?mRZ)TYRgSC-4BD?tRbC=HM8TOj5%W65cgnCI=~tedJ0LhXkmT4hRF)c)&ry|+ zj_@IU0!ap(v3>d1a$}nZ^a;xuvAap^r-9v_Bg>l{FR^4P@i9K9AQtWEfy@#6JC68w z8=1ezviGix*V>8&glTK!wCik1-;4~qOX(ZVxNvNM3zQGqx3AQ`=?i@uG6eUn8OwR| zkIk16{TI9p|0OTBz>9A8xH)%dFkS?Q@-qIHytsmVP+lpNYWxxTF#V^zhGO`!7fsVXmb;IkE~t-^G0GuUPZn&3%sqi}0R zWoc_l_MNnQ+t7}))P0O^z(p$F+upC;+Xh~LqI-2gQ!uREFE8Hv2OIYu^(BHq97Es( z5Kb>D_Pxm7Ke3A^%Q(}(E@HW_tb~5VjIpHIS&{>kNSsn3$0^q+el_s$u~%y>dt)ipnU+F`+H?g#+e21sTY=6k!gTToI&j1$)z?ooyIbexhNAd z7q8=`eEQk93O)noWADpv&DmY0XEcV8vl0bf8k>s~ny@DHum44w~hSh1}AiC!YZ>C<(!s8Y;J{Yb603&8FYbe7C9NG1+gjChb7zRr<_Z5%1> zPX8SLh5n!W_xQi^>+vt~NBF<{@CPv!;wJd7uIHlVXZPT9wTj#u!7=-#XtJjbjg&7s zCVj|^%eInm0~r~@H|oFF|A9a6=TCzlY}Ah!AlOTIeCQW%QrQU?Ee8(TF?d$mk1j9l z-5Z?fQFXue`;z@yytg~Duy-%-?Sefh$)n8$oA)lsvo^}}@(A^(LfGvLMfAmIy!bG& zG1KI+e_73mf0y$Iv}d78_B+_u`Jw8*0f<=K6i?~3xkb9yVNz&=jX4R%4ty`HoopC8 z=izwC8Me|rl^?i}BKw&PUK=XrSA_M&IaAE%6r!8cWINEV;NX*Q9Gg5RSyqx~E#=cs z_z-=je4>5%+j7zJ(mkXU=~IE1KzI?nR0{KgnB(?bFeaAZmGYAc{c3E){F;V0B?swO znAm}7rM?&5Z06X8u??{w=~uqMXZUb|CZ*~J<#SZ!qw&3>QOu{ZFaP&kWne&`u$<{Q z%8S^6R~bQ-H@qeipS+wY4*^FmjioQ0(KDrXfXE=R1Jh(X@S#Q)F`ZC|p0Dyl6S#6L zndJ#_03GPN_$c;$&^$R;)K2%ps;i+HnZEpQa+xZfN9>A zt7#aF57s%#r=W9W#{tIR`dp@ZP(Gr<2bPT2X>3~$Z0h^+TXOZo6*etuU!GHW+=FwY z7#{B)R`um?%~iE3ELy0Xh>v1>B-2;z5j1CWE>kJfR%Aiousx!*)pK5WDz3?uCuO>F z-g>__Zw+*ps(WUa{o^XAzmWnrkQd zVw0K|SH>OTEmai937U8+P`rN$e8gTNM;FQR>Z5#;N#Fyn=zY0ZLhzOH5kf?cmdo;b z9mT1x20j@qubHZp^Mri*(JT!gXqzDyPyPs>v3R#tPB~QvGg^3kQD12u@}Qin5}C1!2nN~U_G6dRA1um4 z)~Y%<>vQn#%)EMagigbcsFyT|0)`S7;-V{SoqfyrAZt@c|&g<{FqMC31h34DW&Y z!|>R!p)eng7q^el7uEK$=sfLyhuIn7i}pKc|DRLo-^08l!-I2(Vy;+?p(u{PYuN&^ z!I|cW{m|Xa{F#}LZBvbdn9O%`H5H=0$d(nsA7Fk1@L(_TaVvHRKD0NaMzojO*dm;5 zga`JSiFe+JFF-WPT(svtv^cw%R{@8tu}w`Fs|}w!Y%5@C&a7zhwj)1oA3h^QnVA|Z zMf<=rLRy^N1c&$lGA~nGrIwL`qpMMIb}(-<6KMO!k0-tc&c8H_9JGD9aush6;EkYo z6DFJhkK_P|FN<>kqV8reW4gy#2g7s>`uhX76#u@8VZ1IK(`pMnNF@R}2rMHh(_3CD2IDBlP9}0Fp})3i4Envupl* z<@5u_YQtD<1uS)+y0mTEnV(SERoDrQl_%x}vP*DCyexAQ+A6iI0LKQh@-ms93eYMt zYI*GS>K;dCMPBp+U=9p`@xy=5pfK!AIyztC`C(CEo(ID0`VU~X%P{5>!0a9XvsjwR zeM!b*kt_=z$+7@mIf`1NL5p_pa{&AS<_lRC@U0D$bS9$~%^u?b_-(`{VQEO=k%k5P zvs_B%q1drf9Mz7o#Ne~23S(6jupEQ;WjktBWPvg}GZoTs8ni#VVG)yMLFQFo6|xlV z%~Bj?5#81ZU__jFSL&K#0FEB^rJNXAg{?ws|z?`ES$lRSz z?fcz$6-Ib7*oJRT*-U)VS-4X819#6?cSGHM`GYyPjo0j-;$uA`Dm_TN2t z&GE<_RCyYJv+Fupa=l&$-DP|&7bsw-OXAy9pXFS!0c{(Aw@1MvY24%DVfkgp5m~4ym0w;X zza=mS2Ec$!aqm!=68SY~<*o!~*M9(`$S;2anBAo?ST?zLh-}uB$ZzHZFnda2j`xoj*;!H#cr>;VNC3V#@2>by84}N4g38cp5*FGOI5y69+wOUck}#kutCPOle-t2C><2n4>h) zIA1GOY>-F{JwI0hqevB-D!};jM|7`~xo*U#3{<(|*y@5j41n1+D9pJs%uO1(Ix)=d z0WdhemxxZUkmccBA`d9&Ajh4)%msZqrYPntf z$GQwc^t)VK=Ay_$DUN16E-%MeX^fRFU^xcw&vx)gWvfP+4UhYE%)qmGTAbYkhgde5 z*YLDoS1b<%hpeqD2@M-)1HwYz>tg^dgm; z1`vY=e21l>CTK0lO)2~Vw2R6O-d@B9jsKc!X;2W9b2%kA+XxRVH+Tyhwc^t$tuhxy zZc1@>5ganUZEYB9IK~=Yz;X=UpY5P|vfNN+>DF2er$O7do8ZXjv!GN_Hi8RKNXR@0 zQgBKzQWRI&i7%^@eKO#YAFnwJY3|G4m@{jM^Iph>*)yB zOYpbDvZrbHiSvdfxVwvReBSk0@^UiSvjh_ayW4Wqg+}%aEKbErsT;j7Vl6B{!Qrr{du8MK@6pizb&H2En! zyV#>4lJH1rE^7enf#bsZr7mrr3G2?61X36=FmE*gcGv#_c6$k|`2?`Lj|ZE7AHx>% zSy*>UU{fc6-E%xxW;%?S>i6Q +8L?12-&V)@m?2n8MDzhVZ&0Rv!noe)+NGZb`)|H*#J7p4_8+Tf^)4cx2yIIWO(d(eu(IMo`a57u~O*@OP>A zF*c#|XbmdX>BPkWSeJVcc%1?dvC$&xdASR+Ukn4W(DfRKfpra`PrKV6iB}TDLjS={6YqBDAq-w^LlcH^{hBHkKQ#)#AOc@`U?>NgbpMNY>n;O-= zaM4Kkxnj#ohGQK3uh=`qeef?GdBY%J7X`!$tRon5gkteBOVHhG*Xtq5=b8GZHyRt| zYOclQe{t-Kz1ybgC~zV*7&sCdc?eteC-pF}_^4h2Y9K18LIO|2Q-w zgXIl~4la^)_Mq%DCjbXmcNxTIR^W-w9@OwUK3+M)h*hEv?dR)E$iz+`3`=Sx< zVwo!bYIZ5;hQQdF#;n&WiY6P!*cgY?W;61<-Pp^rMv$!ffc*e2I$U_)Q`VOR*U}U( zXbrn``E#F2Z&KCaA2FkdwV*ySzm)}kJWDvTHmAd8GeN&hy*zIkgrEFQ3~KUli55XxV5Vd<@jxJwNF-ApuQvsnn~aA&9>IcZ z-dikAMh`k{OQ1v;*Ube@st3OH)$r{o=rnychxENvw_CAt>ojfqrl9Bb(>iKS?>s5e z+NeLve$E!T!C!`x;pX~Fz9eM{D03cu+t0&g*8Q|TsQ76DsO36? ziTQIbn3i{Pl}ZH!_cg$suj^Fn|J{-Q0xia)&GSMU>F|YLom{C;wM`KHutP{aw;H*Q z+aJ*s5|`t`wMb;u>T7h}25*>skmz}hY70)MdahISysHF8S-EA10Xp80_3%h9igsjo z0ztDNh-Of6^B^iGYn-g%3Afjms6!(W)$jvdbs)k~s^Rx1PHk#kddB1u{l>gl%!{SG zK)ubq9Crd2(EZDQP#lng#qz0v zeau;kcEv%v;`Q;<;>+T^E#48|9p4-0v+>UOocM+D-nbB_ha^DW15BVyv<=j*f0eWZQ8n#>TPxf);& z%P=oe8}Vo<40ekjC%K!Zl5;0Gc)?Iy{t*8r`-1Q>_@ej?fvT)iK%ikpy~$){&1OTd zNkpV@`)}Ioo5*^pK4z0>Y0?op0_xqwzVPUyhc4as_;Zgw%D?%{qZXtyOJ6)Q7=4k@ zH&FUQuStIb`YB>NbTWPEXOHi@bOd40ZI=FJu{;BD!0Y^r=mSxQYx;wo7IhqqRDIwL zVuFAOc}oFp+5g+|02fP1e~znp5}lf>Ap0eDIai_lo=6|0%wE(1=$Pn0mLpiZL*!(9C7YYc;)~)UC@sm`2GrartH5;a^14(`l_H&6K_5YYyOL5P9a7Ti|5pZ-?Pvi z+wfZeb0aSNJ;6Bw@!-=W9xTsVS%ZK;Ax&nMWk}h7H6U~-9XTj-#V zY0<(Fu7pFEY0I?v+I%{nE>ksQUE9u`@}G6mQK7rH?ZF3zKJ?Jg2OeyrZ%5?cm5!n( zfW8sGTM15xPA3{Uk0S!~`@A8W^vb_Rp)@J^+&F6lmKmYuny?f9P5~ zhYb1^znneQDeC@0#$EnDjMI>8Im7Z`KA!2ep(yG=ry;%`ek?<~(FaIC*>v^Ez^}UJ zqH1|29W8MWza0JQy6YH)mYz{)vG|$J{~Ikmb39rQN&iQ*5E<4YTF~bwz$v*C?5K#Y zBs%j~X$pURekXXnW0+4sukg)~=Yh}vD&9>ojsk-9+HN1LI_)$ zMF>J5VQ)i7Kt?v%_eFM8M3xB1j<^GgD7!0)xQ&81zK)`}jmtYajyjIxC`sRZRdu_Q z4&c1+_k7R)cXIpQzPE1GsZ(dGs#B-3*Z_wW(qS`v20zlQAx(q|afnzi&JdT2A`&-? z6ciq`ipOZCa4sjOp;BB)rK6w9UPYlMou!4)U6YrDkf75U^g5cCjvS=NRe1sH({!d?njlnW=PnsL`eotA$(urV zE`5dPrCxzb^fJwh(spZJG#^>Fr&dORc3EXzlT~oa#$Is3}ss!4!y{b zrr7j~-sO~SdfOfQJUUp#hn z$mlxb&6s98d$7)ylW}D_oyZxM=L? zv+9XhQ`OxwfCAIVT1>+;g-5-D>v@|oc(OP=yyeVx3Qi0Vo!w@qO=xQcClCjYH_+Ow zt?*=B7ao6yczA;KTl!NtHfzmJd8U%$rk}Wy>Wr`dNOi0HHEQ9sa97KG7T*dPP+2I= zpimPSXUGBIv=PBdWxL01 zcf1s~*w5CQjPz_eTWgVZFNFp9Y%K$oaaun4zO>^~Sep#7iHXKkNPnX3l*WADVUGkvVhj zyPxls1#YUNzeOMMaYq9x3b_qBSz!Ao>xj`Lf}&G)(~9btJ*I64*tSz`r;ff-#v9rp z<(_Rm^U@j>0c{^-o6nU$3@!_+m_iz&>7y#DkMg2v1=h^G z`&R0ssnsgDJWN612P@Gi+1JQg4eV>C) z|GtOyG?U9THz5sNL)5`6Gfjs?KUPWpGqasgS4T^O4TQghT8gsL zvQE?@zywHIT5hhXUyrgLCu&1wR@o$4xTtsK$`RWPs$DtHP@ z6@1Boc(Mxc{wmm11v9Ilz6wHBkX8k#3Up)Zv`;-fW@(>#{yn?(6HC&T;;IDkDPl=b zMMXtHbm!6NcT}8fmPA2xD{Px4;n`2hM}7!q@eTVlhK+9i%(ti%f9F2@-u;fd$*#T4 zJMP`IqjBrDMkwktWO%;;Lk14Osn^_s$ThdbmBv#?k3aL=(G$nj?Q0hg`I30jSqYb!*JWeH5R>&;@ z=tQEYX2cJ*77`#c$a2P@fx6g6+f;!;DFj^#xZr^LBve1DJ_R)!U|I#tNmK7u8&g=G zVVdXASe`@&R3_>biRCE;q#4q3Ns!v-=`U4)+B+_Q129y5@)4S43biTcrl}h$Xg!~% z0=GY_C*tvqsQvjm?-Lpb)&+FHHt&VH($YF@Aqlj+D1M6nCJkq^Lnn|30%m*5MeR|x zqa*%X^LwN~{B$0bpAA&mkLS2|oFXhO<#D!~y_T90nELZpGOLj$p&tP~OAA;=b)Y8q zEvPb-ZPZb)EC!hntIcHG9aeO^!zS8!L82(^4vX}K-C>q#>o$qy-az0QRUD+cfW#fo zzN~#d`bhZ4M<1!R^awNc5GO}1C^=+8Is>s-1QRWu%TgPcrXD6ugEl|4zWr>&SuRn} zQNeufTuh=;u^f}B2)E`*H0i8Ef*|UNc(rsUHcdS5Wt-*IF!9XtQuo5qRsjtyR+`t3 zG%pcZPSD;FVO_ooZ5w;Pjrd6Z@K@opS7~1;8>XxGptyJLLK4+Yv}`Ogy%*C>tjHvw zul@LARH;0z_SfLH(f59!{V|F6R;?1&i!!06zn*|j;C-^7J*Idy09c=_EJya_4}ax{ zA6^;0Y}qmjiFo4Uk58PKHEU)(eoe?5G9XDICX--j(^PG^jmNCF6|w4`HoPJ;4&r+$ z@#v8i4GtAqBuq_qvk0Qyh6J^rAOAD-< zr5O=zQ%l;Yj*Eg&$_Uj(B$>7j&RMNafmPdQ{OIcO8hG$mM~}|Hg^~AWVNY(o`Z-LZ zyjhBK@lpy;3Yr`0<4B@HCJ7Y5Z9*QW)8Vz-B?oe(r6yUw4EL3X%M)Z$D$_KwRZgd9 z6=i!;5^*{`Uxl5QiT=wl`MBNgpXKHCW0__sXuq8>y+Hgy%(luYWBXyVn2-Jp+3%os zgUokc#Y?x}wP3e%tzlTG|HztwwcS_x;EFoiky6`vRU_%MX8Y`^mhSyW)YXjW4*xal zUx~g(F2f3N30_F+WI*{Lr%n*r9-fNHh!nl@Rak#nV0di9AJZaizSoRh{t|l`lLre| z-dehL=^?cQSBc5zKK`#cyP^M;S$t2_LW-|d;zq_5s3Y4Qx-dOo%FMK-p!|HJC&kmL zxX`DV74w&2i;|{bh0FXr+sg@p-;a)efzrh4H`1Iy5`1>yEbp!TYqEUntPY8+BUTB(6Df@ zU$>rp`h~iw7dH>;H*C_x|DySJ6O_s*)ZzbC>7lr>M43n zHk;0gQVn*y!;0AwAlg^?WqI+A{qN9?68vnW^XA*7*qa?v;YY01| z(m&WL{wX2YI8PVEbqr#diIRawGpM6SHnx@6*~ansV&Sp9>+ar(>(vpkMqLW$B6t4u zgZj;$i(%$}QlDNAZ&Td|;%^`}uGaSWoz${PTqNmG2FgW6XknZ7?z3uiu#~!O!!64}9+n6z;GJj+Fj{YaoD%4NGanGJn>MIwGi5pXg z^~>LS8(5xy8=tyir241Oh*=+wgD$T?Z&+fTJ74GC`p59&-3Rw*1_LAxKKVl36jSOp z(&e{Z5{Z?&$=74laClt)Q zB{M6t`^@=Z-oz2}p8Cdva4Yow9E$p%=yXZAqQ0wMc~`yE5uTiV*XgYFx9A_%zjXX* zGq@>Ao`M0NLk%o@@^JSht0*3*StArtxoSf*Lm}FyRm?`2=&gFI-Jvs@j5T2~%>>8< zI%0wl2=#4af);whIs%|rEEG8wqS#SIoDiI)Z4}I|isL17c`@4$mrDmq^X!kQ*U}*U z1rza+NDbVhPCtI+2w5V0t!D0hZ>9PTcvg~ccJp@YO5v@h?N*3(ghm!-rXzn^cDB{1 z^Ljk_DBofb1RWxQq71XeTocaL8}v0{{}BTqgVm63Acjzy#gb+TP+*xs<#Z;^30u5i z5WP-W%op^k7pm zZ16`D=&Tue^G0jU1iY`fOsKX!xjE7=Jn|X(xo~dF>lshDX7ryu6LzSR*fFLGzIY-9 z%I>{?SJD1O2`lejx$5ON7ELP;4V-h^UG$f{;F-K9QFQF4i{uwWl;>{_l@=jnR}_;z zp`ZXdBqk;K{TUg_9rQw=V`@%yI4P8BEwm>Px85yQhuv1QrNEE$E>v+L7}OfkQ|_%u zybv$C+L)V*FcC^yr8}kJR2&uX9!F5-3XI)n%Ae5IC2$+89yxQ)?Z>1;wD*Ha*L!bW zvN`3`eM|CF9@=(v?RI%jXke1Zlb4&5?sO(VR*IOJndT!dtKMv; zCcM>U%`eDuSUg@&eK7 zn&6+0Z=|2E)k|u{p-r1Mkuj)6ouSTvhQ_x^#@>U?7iTOWKfxw-7CUzT_inWS-ebq^ z|7IU`nff!ydx3KGzLxKF6S+-lLpf+LtPf>dL{aL~yLT=!q}#ivW@IEKcmhR5mEF60 z3`8m^$<39d>LHbEB(6RN|hiOI={6&A3B6kDYwF)a~Wi6zmJD9N(9J}eW-9;$|p)sS8d z)@nf2aIqR*tcEA6VShDju7(xWFtZvOs-e0XeyoPi;u6Ha)$OzY_$Do5Q#CBFh8gW& zlgGx7M_fHj(S8skCd#6Uynw3mfTqoDRI&%TsjCfQwCVh4f3Lii5@LeE9zSHw3}mVR z*;rb!AX|O3@0JeS{9{B>7UV?2{W-JZ4C&I6BFJI;$+w9TWqN0RTe-8}kqX8#q_CUrS*|AvR%_v=UY z+dXR4>|48&ORs+y`AA&($y;EH{8wacjsSoF7ri<2MkF!&e z)k*(MsYxE9nCzT88EP4K#@I8;mBDt`SJ~k_EImcC9CZ1JpYWqJm_w0ID5pC30l_k# z$c`v?(tkN9E7NxMzO4Rw$CoSAyHjjd?8Yd%LY`yl9$d_ z+|c>Zn28g|M5-rrNf`I3Ya^oiBeMZq3$_Z2=qt&>=NE9QrRcvXtdK+P< zO|~O8!9q{iKx{VTawX3RC%9x8%?T4Zftf6=a!9kjW(O1BqH=3iyv0%;FO;JGt9)>d z_CP&sp9W0)Wx<>>`elzZS!AE=qn#BGJ*5IZHesRp>C}&&xD-i!EO#Lx`*T;O|N7C9 zk5ZmCFPgG(y9-{(Rc|H&oXb^jbw99dLallC0gymgIe6r9fTn}H%(WAqcy773XKwb& zmrpR9rLlc?sf=)FzsX7jdr)oVsIj7eOM=0DIH*wy-hop(>_Vt z^oyp7Tg5K-Bj7(F$jmOFyeu>2o3`%E6x`$U$SJ%z@(S+z_sCoRt!LJeLOeY3I6L-7 z=HLypB44tNh(Oz`jKb$ZRiRwOW>C#$z0G9O6IoUiy-V*V30~xIQORYrN?1@_nk`Jr zk24jo{$mDkmP>TegMuWMW|h)|&5gM5Md+_S&5jqe6FriJ+l8;xy^r5_=wW)Obr3qZ z>#;}Z0k7@ZLv5ivb+Y`uGzZzKh1?H~K=o)_XjpAZzGq~Wzf+L5=`d4XKPV)Q9T!#-?T#T0VTYac zZ3q*4n>2ZqQyf)_iPrO63UlJqOvme1J2qMC&&VO%J-E!l4MxbIs*O=!bUw~gmI!5L zkV`vfl~KBsK1iuCEq7NUf$VBPs`t8Qp(CT~kYk z${r>Citk*%;I;W@BNIad3VM_m&VB!o4>>ckw&*_@YH;q5k<_ zA-`!!eqN_eg?tQAR7VLqDkptZN>+vPGpu5wqW}viH`(J&NEVS4C~_3IyanDgcUo3M zI8AiA?K)FKScd|<9irAsR30+Ka}$JhN1Vi=O^4)^YH}~ffMq`7s+j)~kmIJ9h?V|PaP zvS4p`Nv#FP6`ZR68T!I^n^)|(cXnyNK3xW@%U1rCkEt_Ty%*)7M3j!QP(C^ux+M`H zDG4PIf^z)+6+wS}@hwvJh$ ztm-V%(G)UOn@E86P;FLQx{dbgvP?FcDU0YGj{N$tgXm*@QV%oam|&zIN{W$sK9 z&joR!BN*r5eige?gTZgs6lAPt=VJs`G*Z#I_$=VJb#wV(g z2@~Mr&73YKwsa8pOMa9}u{Jr>MXx9}w^>R|%pgfrY$iF}LQb|hBRQi!%nT=YveQYD zLJ7$Z$y6WK>m`Bs>%#&OP{nzTUHNz7c`i2#+OcUcu5ahCqAaR0-F)mJ$3|JTlnsST zg6#5_W+De0w~+8esDaK)UjuRA$RamJvp>Ff`5XKiRKk4A zrcH*u4|JY#tEuT8-Qd3Jel_uyrG~R-9k2#^|E9j}5T;wyPqeWs*0CGKWo;75Kr=(# z2u?TXgmiG(nbV@vX|;*8TWho#{h3yKg6u)GFPAJJi-B8?i8^OG)gw+~vQxUEBA5v# z)|8rth@QO_SJ{M7d%aUf8@K;lKGvuXZW}t7QJ#lo9|W@lAWN|F?4=jrHuX&H*M}Z{ z`ToeV2VOn!_%~zJXGxv9e-yT;tG>Izouv54qwt}cz3uaD>IB%sj%}ZR4)c%o9hN+u z=@biJSNCUXEw2pqDJm^h^eN5~Z$QZRXC^ot#A3zu=NP4iuu z)-9fKhvQ`KJ1@QagR<^I?wXx5`{Nhj%iO+;)~{WbrSAIlr9j@ciZPvB+X{NkT()qU z@7TWcFBTSV3-r%V%V2ariPHTdDIIyKbuc#6(crKu9#695rQ*WtAii`7bE0 zzMy`rJ`epMeJSj|<3zy=Ye2qx&rtO*XO^mCzIf@ik8K`UMX}Wr7P&Uu?Np!cK7F;m z=^i(j2S4_l;VjwxH}yi2Fwvua)Y78vChx!kX+P~DnbgIQ#%1FTEk8>a#k=`jV-oEh zEeutfEk+aVocl6zGmh3K=ei{%9j&z@WHDt(xl-p+F-eYrwmJ8BPpVceOl_s0BVOZLgE1>HyWN16 zbn$_Gd+yu$$U{4ty0Pi?ZB@0kHA8Ag552Pc+zn$58_bWaKKRs=2bVqI*rXpe@YYdq z^!@+-{Npb_{VFn3T-n^|*!}xXKKAgV_*M1r&{4|b9e@4s{ckqRH&l*zh|51m%XfI0 zxQ*>Zh6aYRGZPanMkU4V##Gkl||U~&Dd!SC(bd*ALONofPplJUTMcJA5yf_iqy&$rAMoKtR_yg(I0Y$+OT-{%n0 zu`yO7m1?XPJTg?2?KNekI*dq>fDl1Y93~+zH;@NOZi^m7;+)6vS$#ZlT^?<&&<7r>nSzkbdTnh@nNH$ck-3m&M>+52p)8{TpE_yNq7! z?f81w>%fLL!q|HCY`OL$e#xe0zp#N4X229cLTpA6s5!_7$V=>*!D7KKm*7l)hJam8 zyAUkSwBs3fz)fooKCu4XKUR+(RfF$-Nj>t?E9&8A&qDP}XQAfBF$dI-4joW0A2_PAyI;dWLlpY5TKqjTl z=kQ`VfwrrIa_x{%fy-^u>kT$Udk6+MNltNk6TE*6TMQyX?sRvxdxcwYgDl&O34}MO zE%+9-J&KF3V=S}2frUBlwcL2%bW`r_ zE%+|H7*BPlN8W_J7o4`pGenM@&wmm2HvfiqL?+=KGiETob1T)ar)it{DK}-MCP;<^ zgUe#k6IY^-__8uny+)msl$cZ>HYC~+RW-DkV?$hgFeR=V8ML*HAEYB2Wt|FO{%*`9 z*C@{JVeW5fz~_O89Rg7M{yR0xe~uhG_U!i`eE9t{$0NsnUS4zY1E>}6Ri9End_#SF zjwtQQ61{NRW+Cx%uwd~{Fn!I8)2Wi*1k_c1_sZBW%m)IFX1 zOVN&X*#x1sA_&Rte&ac0R8TQ zUh1MHzly_7KC>EzpQ&khcsV$uW^(<8>kUjFLXr; z>Ksav306cA6RbDr7 z@~w-)driJNDffTKcldwGw=pi?=iB8g--1vXo$6WvTo(=9DC9EnUnSntkJcyFVY*bLc0oX3wK3(TN3m{lJt5~9oAb> z+w3gu4~>m2iD(tParUm=X2or;EcmCD8z;{;Kb>;v(a(PT;fu#Ucb&AXY`E(Vobi|E zr`%-T{5cKog{~xGyrXSP94=Dj18R(QLscoskDCXf0gx z4{>|^**T@mqh9v8@XGR@mCHA6T3*?+oO}#$rAl zy=YfY50zzJi;lJsV&x-mg3)7k+1oc%TeahifcO@R!$Vx#wO+)xVFb5bBTV6_oVT`XhSuRbk@k%pzXz2SK2y_Q zxfZlZ)xzlC0gmhQE-hb?XT(>ijh~Ogp`b^XVzt>&rVi;k6nLD8&g!r+y(VliQaPD8 zBk|KjVo5xch!v73=2VA8cc25*Y29Bo?#&!73a;`*(iX8f_1ZL>rtCezGL6&A=r23r zT^Xzy$#(Kg<(5CMx&QIy7nTiQn=S~eR+cU)%A7Ux<+tCpO}nAy_E9$t9ehVUIkZo` zL;Y&Yo5vr4o)6tTeBQZta{XI+s(+0%jh?ecZCW$u_U&Mx^S5YrFmBjjA!Bd6-u^WmNIeAQ=d)vx%uQ7;U#sj)cD&BIr!^&O%Lp%d3EGI zfH#CPWkT&B9o9<}zeW=gXvXzn%>6+Xq)@{(-9*Vk8xiqVl=FePCAXMU?C=aLS6$P!! zEPbv&kS}lp?HbX3e$?mKD#;NJ`?K%@EW^9#`~HxVts$Wq?B>oi7($k8ZAD$wUzlaa zoP*(o%a_@^!Iqzd@zQXlLl1>+l>teTj=S9I6upR#ge@ZIMG@p<5**RPWS2=}X7CHE9)8rr5IqF+Ks%V_Kj`729-h<#y?9&CUfaZ9I}&?GOWJO-d~EE8Ha{K+ zGSA(ybp>%Ul;V~7effd*QXCM()2FCkodokw@We_p@y?437VltVe525tVjX!Ox%g=J z&`_te1gn@Kpj-no1d80BWkHrX`G*215EC-20;$k}E@XFAB3-o(>l_v{m=Wy>UuKhA zp7Qf`#cT{WMyww0fy3-t(l%6~%`;?Wu&D&i)D=0uM^_Ql9bNn8n!b;XUjM{XcfPTr z*Wqz@A5@R^ThJxAplaB(X=*UIVDRwClScJhhzCFNF(j_t^zM_7eV~4|YRjL8EnBr> zMdPfgTdu5Fv1P{0jmx;)-+_?SAiPHT-5XLcTZAKH+T4M_`PP6<%u03nV8>WtN>dl% zwWjT3>3i-LRX8N*Xn!&-WOA@|je4icA{v-ud2t|qoq%X7;h~El=42zeY~Y^z&Z^b# zE|_?3{{t^#jPCtm?V6vqstDs3zWmEs6=^=$`_#dBtM~4ywK4L>0Yq1{ZQd&FMR2R|MJ2)FC6#6elKkH0$$;T znV}pnG_Me;hyY$fypTdJhXfp$>Lz@qQyb_xMTs)}#fq zn|eQfis@6R7CMlhDSvf9uZB#ix_rCNURdPLIUG(s-SXmbfA`8%H@!IKNv`B)tCOEY z8H%ye9m)&kb+63x`H~KYXZQg5tUhcYK0^pu4~N+#{qdacl{yrCA4T7fIt?2uQOM5T zw;K%N;jqQA^0U>OIwS`20vm=W78!kGwgk8>jC!FmAyc$czMLHDWi*)dR+;v_ z2wheOhq4z`1MabF(++T{51hd%Fk1Z-d|Tnx zt&pi+-l}fhN@eT>^s~@ksE)2-85Jrq$W%E};xHK*po$`ZKpW^u0W3m=Fhf`_2u30> zrB)4~`FOIG6}(CKwAod??dVbqs`MawOdwx0r)URxZtK=am#tf20)+*${l|n%;cdQt zV?Zch#Da|U7-54^rl82;5UF0;BoT>(a5Y|m84|076#^De0+sVYD&6USd`Ca3y@9P! z5^2%BXt9rwo0^lT{#|e$*6&ges0Vg_*Vw4pm%ZATk0l}_MM6@vd=e5^akTbBP(9j2 zQ6`BD4k|%dhHjSC7!@1Y2$fM5FWnZG~lCQXl53gw$O{vmePx7 zaF*6C03SrQ;K_0&eaCYQ6M>ut>3A(s(G@-uKZ;ne+O@fY~kgIDEk;C z6k3XOvKGstiU=K+`$=dAi0srjre3^({v5q$QF_s%?FE;$n&9Op<|-L9a1<7D!@a>IUfs)to~7#^;Q(v+U4(y zqJpD0R*VKd!Y#kREb#=H!gWPahcK@g}*YJ!b$)Ko$%)u2RF-~l1^Hpk{>a;~U(iO**94TZ<SE?V|j|aoF{^A`v~&P)PgYdYvi}jzXykD;i@(u7g6Y)l0QS z{Cb8wDwALqt>cwE@=1(m|HSdv^&0$z^tDJ&u_j&1Ywa;eVnG6^%)87Gs7XDIXt7pC zEB*{RqmGw?h>`GC5){R#*YKy0U|HqFd^9ZnKK|IqLn)hVEcKB;H8!8Xa~stZJeN$l zk|*}#b!%ia$asa)w1Ub{P`cx_V=_*sGw|l3*o(x3T~n*DD`-!E!Pv@|sKnERadQT( zCa1rsJW){TG0aP#l%eDJqg50PI+p**FxE9A=?Zs)END-B8q3qNNUuitqB*nieJ)Z( zKNG5y_M&yraHr#PMP@Bz6glnb1;L~<@H*(4cx6sdQjj!OZC{=E0;AuT8p*)sOv<|O zMdWU|^2#%f;`_8}j4ognm*pDmVLfi6J^9N2E$sz0+M_~^(;oTcN?ueJbD6_v56OC& z*G!{xfzlr6b;1=1V`x(x*P%Vo3SbEQ6RpY@8u>+ukIPG5Mm+xFX-@%YrM)IWx)Lib z^838Y%JT&^+H1}v0~=MjF>*J2LF*>=YvKa6O}`pYuagvg`lv!s81VKlY_A;;? z4YumtsP5%tNM%J-MsdAnKo!Td;+SZXB-zLiOI49zk_{@-U2Q1@TM=q&Pm^43* ziD`QHxQ1wZpPG?c98Vew>0*AmXNj9T}SJK$T<$eHHK&Zb+p@LtJ zuPDIfaqv218jM=8+`o%Ws&h+dN@L^uTuO3sjcid)P=amFP);zCjk7-}22L=VHR?4T zOo^6i;drt&Ttl{TblZ+_{jH=MqupNyl25d??!QEJCc}A;D9+^*wbU$Q8baXO-yo^F zYmA>Zl(#d|{0s)ap3*Sarmd!s=w}Egt>tO>9&%FB>lK4lBWO&l8bQk@lhtD61Z{~B zgBnwRO-SJK=Xz8flXQMP96>D}6mFukjy-yhkF$tX5 zsEpN7lq))|v6ZHHb1f2M<932J-e`;3D3rh>lf^R>>$Hu@Ck!KTHlYE9P7qToKMSo? zj*OCC)m>vAUL`l;%kyi7qNe(zref6IBCT~4xyRQqs{O4@`%^|X6Jiyy6>};#>2x-W znTvW$lfwHa^imQchA5H8)|$pwIm&Gu+d+-vT)t9D<_y~!rQ^9*deK(@gyBGZpUal0 z4H%`n-lvdGXB4qf>j}sPgQ*qok$97~=|AC}GZ@D^H$0=}A^C(d7B>;w>}G~{T13nS z(hAl{T_#tQYfR|t<2^cUM$6*@8@^~2+1#XNc#qS27BuvfVl-NHt;8-`HTzDmSZpRE z$F(UUa`nrUt-h&E*|tY}TdmvlV5yJQoC~_h-BF5HQ^Ye|yb3cY!BYX>7-#1@&`lwe z!D4Zl6suLj4yS|3855H;PCJz|MuA%}r^1TZWYq}qSlGlUKekx4tpgB~IkvcNKveX! zt+@LLExJ7kuAc9ZRvUbj#JV6)wcLI@h>PRqUrIUubZCFqtf*F&yjq3 zXzB5LaruLQ#B0;jyj#=fqluA!iH}JSw#L_SaBuI}3c&yhqB7JCRiHkoKN^UJpkZhf zszvqaW;78^MKjPGv;ZwZ%h76d2U?Fdp)F`T+Kui*53+q196^^qD|(1=*Yf}3zUTiT zJ^Y7j+jWkKlP1AFdhDM#G15rS_i4x56DO(-lP0O-CruJe^gK>G-fm0%_I2<6P9AT! z-EBVGcHQ*Pwl~?i?IUK4XPwXiOo0tKcs?v@oCOZ zoJbySpNRfXye6}W|BEzD|NP&;puIZr_rBRV%4OrP;kAa};k)0xKd$Yg@#EMyt{fM~ zo9#Gsd_12v#JF`_G;?~;%-BzwoF+n)8<`GykMivRRE28L2oy$jXdLkiQ=ww&dsE@DscqTB<<jpzUExaXx-r9}V7(r;->?9q!?Gvtf0iU=v#685UY##Z*d(Ns1_=)_LKZB1_rooJcUU^$*lmT;dZ zgIJSG9a!DD)FS7SP@O-_z&8g zv5t0FzZdr-7U!;0$V1zY2s$E3qKp+0i+Y1Zf3r})74c52HcxaZkY9nIB4GbewG7@E z3U8`rbsvm}2K+XDC(;R*M&68^#XV^`kD>>JA|a2*n4q*`MP41!rTd)5WP#Gk<#x0Z z^EqM>Au@`f%*h-sdIFCckzs~M7rwJ-@t+ngdS}Vviwj4NfAr?@2PcewZ2Y)`H`0sB+?ZxprtCQ`d^ z0k!!MIQQFVS!xPUO!(rL;})l5Hg!X<**8pVys`hpez)Ax zum2yIjb%Jmw z=-&wvIzgvk7fVKc#*7T2>k?ATl^IWhFv=^eV|?dD1njbMX{IpSv|9Eo&OoOCy@Z}P@L`LIAiNA3(E zn__aM0^7cYhe(jvE-q%w0tjU1$T?-%EZ|aSw!us1GEWpiWz02~tn1zT=I+lFo*pT^ z|GsVD=}spzZ|qsxd(njF3Qi8TzW=_l`grd1(`Tivf9d6Q>l|c}InIrFaAZ8Ax8P-Q~4-%|D49|YP4}kDAqO}TLRq<$2{PrPfW3Rk>&r(j>e*v>*ZLBzUNz{7 zaD>*Y1L}f$hI}162x%mzv(uO3EAQGNEkB4dS7hSM!p#OSSn@%aj{;-s-l~hrgVuc} zH81My9LmsTor4|@Ww6-A7(Wf179O!hZi}%_YbVEOoV8%fmI9q5>3n^=jn2z7StYAc z5X_FOOw-?oADKJ%@WI9XhwTb4T{bGbc&UI23Ph7m5d@pbXin-resC~dk)&QX6@Ond z?Y1W#T)gm5LHgow{ruZTk79AuyD`^!;cetY9YYEBWP`^dNuFeq;a4mPX$gS@qDx4y zF}E`2o8I1=4%l)=@NoaNRGbFBvSJpbF&253D#G-HhV2{r;Z>vd-b{u(xJK9fS83_v zqi#ABUKPH1{TkuzhJ)*ut?A#e;>>-Ij8(F-#y#F>KC@y>_|BmVo?&{oI~CZ1@ER&X zT|z0?Qj$wWjzuW#oLQg?IMW3~ngQ$vy8)7z?XD3H!*m;zojT@0Sx-`$qp2|lRk4S+ zg64TAcP@)j5?6Dn#3S@;KB>E7L47GMKN_xD+3%jZo)fZdh6iTN-G9Syt2<|M-vN8( zc9~z_L+mtd`D}ku=Y`t_1s2X9w5)2*J_z>8&B|VM@BXPH$LA8=;6ZceKHO>Oy^ zqO_1vFA;=HW}??iyg3sB!B{kPwnPhgBqV3!?3~UB%ax!k?yFuHmi6@35p#hEuid6@ zU)N8aytO}wXKq;sVa+Z&hf+v4${Pu&DCE+M*lbR4CWs^{(S)&1hdi8a*dpPp{V=H{ zV@PLvxs+t*#QP}1H-mOg8yhH}9ojOryz6a)I}`~kC%m-f(7lUREL^zHph`=&cP^@$ z>)^a;ZFx`lLAV1YqjV~BoT)}5O0ifHU5PRhGJNKg6jSQymd}_sHFMJrIdz80)YN2q zdQwtavOZk^LGaqC)CscQlNPn4JWx;&4BFZ+A7{F#ZS8}{Cbk0Xp}(>qt5g(z=)7b= zdHLeO9rGg}uA5Wdb?K18Li|i*GtQ2D2z>|78s0fjGs6xqZd2#a+g(~XXd!XnACIaN zx6Rw3*@VR{UC0ITEk1TTDOBc7vrCf2ASb#pPIeHPAd`X=U%JQYPO%$JNr^(5PEmAe zLSmB1Xisrljl?OlF5J0*rdC=%!FCo%G`K;`5@Er+ShOs;w2U7?TNXXaT(Yf9qz}l2 z*BjL14X@Kr0}Ntk^#k=dJRhdIv&VjQH}nkO7lwbaum0+1`(cdwCcRb-;T7<&{i=b{ zNCK5F0dXaAp#`D-CY#0Ja3B`Xo$X5CBp$a}lBI^Qopx#)!WI&8xGNE{5==q{i<~A0 zghe4zLV+K#KbQO@Xz@~Rir=R2O3mYj^I3w~2Jw<-z^N9bXcn$Gbt^Gq;ri28>)s94x zl8hC_ZgIQC6?V2~sohSsFG^^KwSvUA_;SraJh~VNIaKGcExbMSDGy&0qCD| z(keW4c=nm(#I!_d)lCh)Wc(<8TId*^38FLzvA~cn~()vAsUb0?=symdC>F6vV+7jK+TT6$>t> zpv8>JvgU!-py`Plan0XBP@6te$Di3KSk=?&T1t)&!D+$yQftz$JMy%+ZWIXQAa`EJR|$gdlafU4Ee!W>GMd9?r1nQHJY zq3SY!QIXeWFA0K(98PD7*JL&m+6U}Jyrf6>V17=1b-1Ks*N!z|*`L$3t2HkKIqvkN znsB|ZEB)NC+B&Ts|#9m!0QD-Y>NdNHPe!S8v#Lw zw))%dEA}{o#O;d1OOD?R1wb4)U@qtt8!WYPI3`kK=ZX*s9(UdUVOH*krD%RY$|2-rpWLE2z*(8|_ zL~j=)3F^aAJ3MjluA+L4?^!4i4kuTs%*g?7$7$=I>KQqIn&Rxy&q+#Tb>wvl*nztv zUsBZd#Amhr=+sFhLh)unHB?gS^+p9rvQB3*Qe8ug#Aa21_OWG?#iFkXTU@e5K!hok ziWutRU~1bKBNkvU3QG*OvulnYhmYP>2f)N}4+h}-Y3g$Et>$sqqz2SPhBnQv>qXo0 zLB1}yYbX_vsOSli6eO683e|Zm?zEsMREh&LI9_dw(BIz12cK#lLT+mQ zfqdKi2wBGhv2PMa?pfdT2rsV_#lcCTEBDP$!IGp`WWHUmQ6d7V4paFpBe^=PXWF!V zajlVa_+~)S(r8sX;cbyEq)TK9e)hq2Bzyh3<_{wu)9PU~uH`$iRJ@n#rmmqBk3@}B zvt&+80s}G<#aSO#1Y)UYp}y>K&Yo?Zx!7)Wl0Th=Iiqr|j9N{_Wi~44*bQO+$wTVX z>OC+UZhU$Fy=jrpznwql>wl>K21EZ^xE)5oP`ItC%a!G8Cz8Vx)c4hYs{c^Wb3DjY zZ+;;Rrq%2i^0HN15|-R%kI_CXY_S-v5?~9sco04oc#yk;#MU>mO_v;QPX+L$xv@C2 z_z&-?3ts%*)WzC$WB%ev4>wH7>z0{c>=C*~Lb~RQLI6H}$Q$57)Aa=WAMC@^zraeQHaYZz#axJ zj*HtX-22Yq5;<`6qWaF!Q%Z*a;!DpLB{*;Q^cge!#>J&mQY#8NbhhDV{^oxxawElY zj_=TB;*6x7yQ?>}jGk1~Z^VSc&OJli-Y-Om{3hH$snAcQQ9+`TEL&1jWrc{yPKYSF z5y{FV_GCNN*zW&R-IstzRb*}7Q+1c_&eBWLNoQY4Adz%P6GA{tD+I#6BVi2^kVS={ zfPj#&4eg-AD2OO(R9t4<071YtD$Xd11LLmffPmw;jKtA@z7f)u|5V-Eo$jQAxXkl> zpO|#tn|t3nb^0ZVtZwLes>g=X(tYIRzjYtqcX)PTzFuGa0sVG{h)Iy|DcieIW2aQLq@8O(2i122eGt>WqMAta*dW;B%I=SMI}l ztz~ftA#^>y^=tVfc?=ppT`KpcCrGJgYqWw*HqFe4OBz)jXEU2@sa9egRZS9tE7&Uv z!=oF3EelJ0PX`ZXB~F^*nstbQ=p<~al&DmRjObc2}Z%k^3n;HzUz zX3#+6CyE*48=+a|(T(wk%=5oby73?KS@ZqP{_pV@@|huYpS0IFbIq|&@}lY*WPXZu zIsWh!jMxQ7pnZ3aUm;(+dGqrm!T%-aL3`-`zy{;J`2Cs&Xu}5JFP89gytrrOW6~Zc zY+#!&hpXAzJC$0tc>-L$dh=$9uy5q);4t2|J*8=C13yX5!%x80*X8rLkl^4!q}Y9T z%F~z4z}F-QzNbjhduRiG@OQ);=qBtNczC7%WBG&c*=AJB9kNE}XiKoZO83TaZ&Rox ziXX9Q!rpv&uv=re89(j|=p1%(Gdl^B?J!fd`2BL=-Dx(JjRrtw(?lRDfk#lenM?)-l5N40{&zKC^P?O0rEE`S-v79cGI6@K=$q94vKC%3g;C#n4GKCB?AW|AAM1WbgFwk8LriBquR&dJwOzk2NCBe&hkE{8OB z>V+3D-_J^iU=>yd#{9h`%h)+LnH9c$+wBRCg9QSG1Wpp9^N$?yPdjo%*r8VXo~9am z`t&sbL?QwMf*65$-M|KJa=>3j4v_b@Y+>nJw&=cAOR6DF_<8((%FnFlHqa-o?Z)B4 zr5;Et9qoBq{>pz1x%E@yJvu7Zhl8<7RIJIIYqTxT4(xgfXXyr0HzGK<1y@J|k5lN9 z^Ut|^w{2VVo1s0s=Tu(u_HXv?-Anhk45s_nF5j{y`bN{hDKpl>+{Yd}dxAGOT-RLY zrH0Jdn{dVf3N1uVB1y?99VAWYAZb{4=Dad?kZ(gr=~@OWhtKxZW3fE}c`#dk!;z<$ z`MDhO_h4a9p>OX~9)cn2DJe#Z+o$sBVZKAE0>yfBYDq8 ztEX;xZ0GNWPpuguurH>y@*6fCJ73|OZ+IGKh=t_f-@COQmoLM#RmCA>xeQhCwYb)0 z>n8Ta^J^-uv9QVu#I>x)(?h);6xUJWdSL6@^q9IDucP(6;q!;Y-($ozHt+O)aqZIM z<_UhvuakvOP9j9km*?=k#8{h9%1^z=hMxdA0GB>l4e|jf@gJsG2EgsnL zENmp?8F-BEoyRmht^Zc))q$wrBp&Ne{#N1f+@tqHx-~u5YU@&HFYWjo>gZdZTjTz{ z!Tb66{wRU-J$<2dw^ZOwA=3+>fNU>-bp^1Z0LI}}2)3P1NtR0Xsihs#$k#ErOcGyc zo`KwCdOD=T_HwskqPOCguM9 zQtW=H$${b=$U$Tw+ZcRqwRjHn=iqI8!LpYJrLr0FSD^j6i)V=bjC4pE#<51`f;$&- z16TpS$y2C-Ro?+C;7fUmY{<1*JVV-^Y2}kPdf7nX?W+8}MMsg5%m{_xGjCu4UnYNo zw{DPbuI9Xx=1?G5=jK4UV{+Goh43oX(j1KY}>$eTraOiJ0wC7`HvF`Q`S}V=qe{G!Xvi@R+sxSg%3Gk0%HwsEkmFMWA1z|wKf(P}lxsz=JHR5|6=g~-)XNm!{~r=kZ;Ja- z`h9p;+!y*2_v4M{FBA3RC|-tDeg@zWZz3N)u~@MR2D{A`Cj&UFsw&$rHA5eC05g>H zLj!?_73{^2uC3q)_}V>fM+yaIGUIZ@xhuWm$~;;u!4CE}_dGKJ4sK0Nd?C?t@ysh> z?w7KgjA29kn{NVg{Mh`*w$5fE-cHLGa+4&hCCIxhPnz`zi5xFm)^d8~W_e^J4Ev|8 zzaCaWj7!3fy@auanK??K=_>dBN7bMkTvfw~|X>aSlvjqU#m;h%b8%@Xlm zON;!9Bq>L+EwmvLjcPCnn#X$pc6|X6Kdl6t;hJ3oC)Zu#xHa?RXO_M%pG)kPSX8oU zWvN)7D8GWe;Gc72F7`|uHE@2xEK8w9ayYKfPA)1cwC3j*#^&Yaq!bn| z?V1^ncdnT;XVAst#`PNnDbcx8#z*B0EWYB3sb$wCTr?;pcYIFI>n^(Jx}G`Xb5jPH z3auJVO0t>c)clONLOmw=pG%Ch?(A)ocpIs>dJKeKp_3ZZ&^Rf?byY<$sTW+nZ zo>Fu9q$yLYY5wAy=oaPd}Y9Fd(?c$xvZSA)0IQmN6?>5dh^3~4;^~<(L3&ZMJowV( z^WDW0itfVl_nEwl98{Xod%JjTn#mMJi3PhI*gO7RwZy}m@i1Q{X#bKx)NtzIa|s>- zbsZ!2D^H0HvD=qUl zm8uVqu-BEd@h8(hG}ca|JX=+U`R(aVGn$;TTJcar*~F^+(Z6<=j-GJ_&3xA36!?(oyn5v`QR zo=2?xJN$1ysGL23|DjKQfjIj#73#`0#2DA8bu09&wZed|fbZ#Gs6_UgpVB z#iJ`O8aJXcz1BX(UaOq#(!I+i<+JDZ!_TE#uGhy&GL^H`s(vf>u6FmPT4W96=onMb z!fKd_OOo{vmx)0md&KX|KcT7pf70!JD(xfwqql|sz{$vsk}>re1{sq%NczEkK(!t1Td+j#90_O-G@tp{5dWBD-c z=EFk980oir*`dcCy8xa4h|K~vaH!;sNY_6q|1Z35X=R7}ds-LUG_%9sED5gMvJvl9 z824__@16UK9cpRR@3nkvJa+`2TWdV`qVe2A_}nDpx!d)7?bGyM%?`0F{TVh*e}=6? zJ@?k{p|3DtT+bidt z@!%zIbn&raH=st$*biq$jN*= z{EzN{JN?H<7v)J_KcB5PaQ`51b>2JPn;Najnyf-h%zPEpbpXu(WEUKT6F@ zWd*!!2GR&n3|<(eA50)ZR$_%+H@$9=dyz-1R(89^QXHp}Q<`WrIKmrkj`)%X~AK*C|-GQ6}Z6azdd>P$mUVD9s9KRG?V#Dx;KzN`r!Z$S@Td>z7a- zXAaU3Y6vrD4Lf)8pF6<1LtSNgG@7jxf)MtN@*Kn&K9KKClC9cwjqKD~HKK7h&@>pu z)qokVE8#9s=g}*sGPM8YJ6;vGf9}A6=6b|>Svd$50xJcXSZ<;z(^hQr+NjM2@lmn~ zTtHv}sVBTql!-Sfy^8QC*`7K#kLd2M^B9A3G+U1XE86441f#zJypUGnm}j2@CN%EY~>?EQjo=6f9)U|(0V zM4=C0^Q=(53Pr3xsR$t+Svhvm@vwX7ejj^)y$Q3Rz(?AY520>3BeHa$ZUPzqm~~mx0yc8n+xl$!M!+EE!))Osc;ZtZy$_bpX7l`a(X*0)Nfw6Y zUCf7HNZ!dpADcD_jfC#rP|H4mt{kuQm)LzT8#5mbgmz!%e~+9V;Xh8YLNLW{$Toda z6*a1aA&cRt_R5Du}vXG%G0T9{efM7 z9n^x!N4ArDs{HqpX^7c95+?V8^I&q5CF+>>u$m>XzJ(7;ut zOm8gq5r|2XWz<3&XlOwV_-WEow3yOwz_~l*D|Nr`9<)8m7qC6IyefApU(ocG*P@-s z1ahiMSc&81{<1RP?*`rWNiCnq)g>*T&>Y0<64YU_Hz82wgO(3fq@z6SRF^jRQi1<6 z>$wUh^1|QfUoUqpZTSb8{iLpk4r%DN|0!wc7Td%6uYhYI74^b)%T*;UE5SkPL>l?O z%)f49Gnc_yi1xu~%1T-$(m(LI+@QWwz0oQU<7UCCK;>}ZY7TL#1FWhZ9)HINgJfFP z691n3a!?21zQF6i^ZP<+&=>lxK)Zb>PtlDg@X~^^WqYmMYG#W{sD_!P4&(Ih^3EKg z*Gd@9>y`Igx+$ZJTe{KrbJ#ylppv4rXXa1$A;{s657iTSY|(aX)#=3grR7oa+5pYnAD3Oqb?b={(X5WoQ*j_&Q#?MhFE&b@h zfKJ+cftLi0j~fytqA%FdfWjAEo(6aM z;3L<22$U$j1v-?Nq4nky^NG7JG?I4r}*?A8>0~%sON{7oJJ{7rv2$zj z!33Jr&tF1!gy5QZ{iyo~Uw|24ULE^jiGkk7l%;UzajYb0pMEWWdn3TTDkAal4(`#3 zcU-;{N_^0rUe?e52rZOCxeTv&9D#a5<%dye0lL9gWS2+w4x}0@p=W@9nTuQM0&RO~ z`?gZI8_`saFK7+NKA&HVSP2&gIGDLd%j6Cm%)r;{p$o^4#KWSxw-k2ZVeRmBcvZ*O z6NrExnTuJvpL@mNV!cASPk@W@88@Ac1w5kzA1mg7+fVp7)@Xx|l}6xW2-Vh+Dv!j+ zhSy^U2Vq*4)1y+my74FSu}|5f3t%bdWB!9f$?}MNOy@E`osYf6o>>s!W9cj!;Un;| zUzo;jc5Fd_k&R_uOhYiTh@3AZjUVBBr6DP7XWuR`SlMDW4HFQwEUf(y?LO}ZcgD)v zYKb81J?xtW@Hl5>W7s^7s?##WofFQ>B-x~0053bU02+MqDt7U3ZpBdfE}Y--W^(=r za>^$k@gJQNz!?~s+fv?GsvVhASPh#Ws9|4V&t3uZpdN`1+cpKZ7<_M7NE?wHY9mC~ zRFw~T1rpFhlXxzK|C7~0{!c1@EFDc&F|D7HPOujMNx@zK9VvzT1hz%!6NJ~vL{Tv{ zC5%|K)jXnP(;)cV&#r`PVWAHzjMG!#<(3EJ+%Rr|+*Pz4vKYfrMZFU?E*9Q?)$_*x6=S`|C~*P2~h5nC$UR?oSb#S+hqmoT$2*g2uB=Q(SrQ? zUu-7KhHgH32lGK6$d!K0KEd7W9hiyD1?0j~ANv!%;}>vu2n+`vf*V0ap6X+=JPGk8 z{9Nv?=&kaL?8@n2hB}{|>$k(kX^hSgI=KAT=4=b6fdl6FXoLTGSUZjVhb;e=r&IlF z_YoFNMv^heN3O!Ef6Z+6E|ic-Vfp!)eS~f7_gBDBC`85vS509rB4d+6^l!AMM6dId z@Rqs5m}&lWvfM{roaVnr{*&%=Q+^qjziukHeVFl$v)Eg7BjWXr#MO|F@CqovN7}d1 zZCvejRKPO2cX{`Hs`3PlgPqB~nH14L0{R2v9OUu1)BztuDzZw@+O3Fc|~;dB6^*u z^R>2K-ruGPcrxsV*>Ju8ZF!{>HunBA{KDSG=gAhq=Sg8ZKA$Vv6YP)5L{maMn1{-V z$mox;VK4^z`RMz8?4j*A5AVJ}PEUg*`3$Rp5quOVmzDU)HKJ0AfUStJ_zS`gA>i+^ z?T~?;C9;_v^uY#_+M!>At%hc{0733%awxPzzs3N=%C5;+f`g3G$G(#J%C*q`TnL}% zN~KzR-V>3}i;-dpuz~I_Uoom0fUh-V=n>II0mKk)^_uZnS9<;B9TVg%G+3*s5w{< zcI7l!3Q;~-GMD{P{vkML8Oqx(pl`qn8Y1--I41(*xNUQ>sorSbKAQzEkvq)C2N~N} z?CRCc&)Ayf$&YmPYAxf+@T7B`x} z30sSyb2HxXMzDR5m%YQr*24kb?!Nq9OMDr&PJ^UQ)`}=%tqAJT0PJX=Hcs|Eo3#v{ zg0Vh+D0zuou5+@sH7+HgTuF>`;lEJm@*iPjr`gRb;Cbu`kUH!MtSphM*lsc*;yM~( z|MR5~*$duhcdvr?!Q=Zgnb&f(RQCE;V`sVD8Y3}|rgL;6W{pB;H_F?!ykWlZ^bK&3 z`$A63Cna)q%O`SDCu?AgwwHTv0Ju{=c3=e@#J*9BuS9-vlhkgVmhcJA`$?O-MjB)N z{ZjI|PrmZp9Rrkp!8KYPeL*i%L3MT*Hw$L=KkTX{a4%fpqkDev4;)BdhnWy7MO^Qu zbN}=DSO^3A54-C+@WDi6VE$QE)e7jT|OJ!q(>o#_odkmMjPH&f`^w+0$1* z9bAP>i|w5O*BWDY!z1;}_32DXRRP?F9MS48PZ1hG8u88ySkDg2uZFLEjgWuQ_Pft( z^+|BQ54y4sYN3JN-EIxFJuoj%WQ{7aL+^rBgwsI?&}{6{+yb$%+DD&j8Q=@>k~S{f zt!>?yZuc<6NHn-K2y5eWD|sy+`Q&a#+v64*{5`hr|lk?;)4SAo)4y=R{5T=GWi8KBx3yWy(+vPYHo-^#-99UNlCd|1P>Iu z6vYo5n$*?(u3P*}QdS?Fh5w29GroV}1F?TW5i7G@L@}Kq-Kd4=Wpnc z<$>KOT9z{_kMBg;OuG1wiJd6aL5*vn zi!{5S(Y4b>yslBM1{ZbleSIZjdq-W}B0fcqeL74n;{FKA_n(y3cd|cX+sV(@Cko4rB$IXqAL0QUXFw+h1#@C z&8v;lYP1GTJ*u71nl*YvgBoq2MtBfn(yT$Fwo@bgp$3g=l983VMV>bc>*`9}o^p4g z5x+9dI6(^{X6~br*u>C_Kt<}m&n5a3$dB}-g3qPBo0egvhEV8M* z&FWE1bND_Pv>{|}*iii85w=fVb0d2{9x~F{muSDIl#gJj&`*q%u}?B9QN(LPH9Tdu zSD8dyf=>#Q|KicJfmm_Djj#hYY{)mZ!m9V*$adf1nug>Gvd-h@*Z)p}+7%ystJJ`27NI&k#S|Q)s!#325dLbEqJuYHfV*4Eh zW;52@rsxUGvpA9{Q%VR4OdxWvaCFJh=CV;P!R*9od&Q^#xnshQ9aqeX(zIU#0KQ z#C_twguC-s#(j+>w|*GZZ?QL1rtZp$%8`{#m2yL6b0w)H`S}8|Kq@F{L$q_q($Yva z({*asbZm}EsJpD9Y-CwencPs;Tt>>|-n|88U#V~Z3&VWkzks>(mt(eKx1Oj1b3S6` zk&X8YZ*AR%+U)Jkrz9iYojx+1Hl>3ty&?VH^cT~c)0K3vSnPR}K(rJcBP(IR!cML4 zB5rO6-1}P}`-QmA^MeLD;6Bm1`B#wF(*bv9>$ATQm+Lnwh?|d^y<4}L^mpB6K-|d{ z$s?1SlI4cv=46sgQ&Q}CKuNlkp4SdC#AePA%=>>O%uqR>_%F!0^Os{v>s!C3OkgfG z>Xo;Q`t`M-r3%~yBMWF#0oV!}3hpgXFmTPhMZ)&n04c|{r= z8%Rc;J8xtjZOQ{%UPIo!c`xQQ=P7x#Ygd8YP3l%~f!I%QdH+k;JEi9T8uoqCTSlFe z8nj_v1!6bl$qfif@+hxw!KiPo7huDno_|fuC!`mCbBRtT8Rv4&fqxj6t#HXvt`rx)nC#l<+V0Z&;=S!I`i={}cY%vG z#-nZH-SG?J>*E{ao8phepNThF@kT}b^!QD9*&46$ul(B6#m6)8D*)lEVLZ8oUk-o%ofpjK&%uStlTg=b&D3^H{@Q6rcdP`_~pm* zrdnd&``?!{t7MJ-k(?Rzn59F$uoerk*?r!%@`CL8>`mEC*>VMbG-gw4c189`yw`~L z)T7zZoDJDD!|8S|aMn8;olVXo&NEI^g>w^LP%GZA5cd@)s(gAZNU^rq%-G^sZ>++< zcwhNUbQ}F2$Vsql7KXF~Z%7Z> z@}+swo2}1cPNJ7d(k}02xiGhH?)=;pxpGu)N-n>coVzi1d#=_O?`_Ye@8rVwxsZ#! zO!PLF+qJ+|?`m{4xsJHbxJ*{OQQ?~I+Ju*_E{%WXf8XrA1yoz#wlCb4wzN=4fda+d z3lw)K?k>S;(c;A+xD=P-4h4#9a0`?YB)Gd34G`Reef-b4=iX!Qp8L-C#`wk?^Tz(9C1-+o*LrZ_IiOzkp0p z#Q$AKMuh+ox0PiY*TgJ8axP|Fz6L6D)0%qk#1~IFqc9x5a)=3`KAI#P(>g%&5LNXa zEyyjPY7*SMLl>3=_$r|dpGfMfHC4e$5c4J8Qn`ZW8%4C8I^{zrvF{Sliu2tf@ zC*$$paSQn&1s0`qTBe%_9uEyi#p7S=c`&+f&MEO{g4FUb+1TTeCR>#|5u#)1msch~ zl<$H4!_!*xjW=HBV-;!I=0*(D=@Q0-Ca&GD88*98Hs2EFtz$XW@#&6A*i8Q_RzKni zJ@F`DY>=H5G;ZM=-}nOU=^9l?OOGeyfbeT7g*&OqW*RbgJ&RsLq(9&niY6Zwa!@&)WMqYumN**HW(yVa5wB7TC zN@$BXecem1qVeDI(+-)!FjA8kxge6HP0^Q`Jw3GfUiP`ONS!*72fXnBKU(xCSq#dW|hGnw#a2}=_wI2?YN3xK&W zK%Vwp7PlY?CYL5P zbsUuujW_&>X(FYYdBzgszY-1{lri8U~mosnw=Fb8#>jaexfnxbjr_7WM^n_;j*9g7Kr|Xn>#x2KwFdq@lGiE8SxC(gb9FO zM=st9f(Mk-*Ox=HV*d&lO8WkYf#HZ#_^8He=&f6~I#ZmK68*+oLe`1msUitY0aXiw z6=(1Vhl#{gf)|kDYjGw0Bo29;<{(mlooTrccTY^K>C8r;v}WXxe#Ud3`ragba7 z?KZ~~3gGe>I1m}Lorc-Kx|Eq#zOJ1S>4vGoIih;&>h7m}a63 zl$IuvWId^+2T?KD0xvIBIhz|des8FVpmj4)zlyqhxwx;}a<(7R(5hBX;W8Hr3**w1 zw`($6f!}EcqH0C^J(K4VYS^0O*_R=#H#T#P3C0z_1`w$583$4KO<{Z!FZ@2ZxTF9x z<^E**v4V#uZ8&8kc9WLWTD=}7aTC`RWG6I1E|-sOp`LsA1Yob+wY60>ewJ8oJAAVLYq=^Tz#wrv~bAo>#J7P+u62)1tY6Qe~rhM=6>Hk ztPzwTGt2j<5|Y#qAZ6mB)1#*z9l-!99xbMGFRF7`!F%U{lgoUd88`vp=DfSFkBB5M z1e4U|B9!9G?7}nj%Ca;P#jAm zkGGxXa({+9vGqSeoiyg2L3Jx%9BZ`gd1tiqd^hx$pGOGBc1d40?1qvEHeE_C45^ z4daSaK5UBiuCXnv;>a6mzq?$ztl~)y13KC)U8Y5V=%U@}I2V)I47^#GaO6d;GHjxT zLTN`Asz$jLFiQXU>#$6;bBC)57;3`hwybtO*fOfZ$bq z)U27_E~zexyZ%Bk)mKz58SQ8n$-DUT6BehFl23I3=qxb$>fB?kdk{RVyppqNSLfAy z*ZkNFa&6SkA3)rv^p&0-wYVcZdxm|`@Pytes;R?kqKuR)`#n#3@$@Tmam<=N3YcfE{pF)JCMvHPH0ao7#1u|9XVo%cYI5Q0r`^pZ84sDl7(6#r z9itY=$r2~?j$bzE6tK%x(=pe`dF4vnIN3)+!b9HOHdejna}CS8`I3{V{NZK5hfeA| z3Kp#w`82O-HxxQy!LNo0N)YHT(80e3!#$I}UTVFWA`piVSRRdz(&`M=@-%)-h!~F9 zsmW)&m(*{~uflCC#cRAwU^r|3nNK*LuOC6G%m>QSQ!sI0!#S<0Fr%EZ)++)E)h-~; zz-!}n3*Wexn)n$ke&*k*NzK#cZFxAMg05+ucp@3!79i4jTo5yJsXeRMt1NA`f;b}V zW3ApCk;n80w60vr2`87gaYfv@3jS)Bn=u-MR)#Y99Y;4t{Vkt9zE-B7ma`582d!-5 zN>PeXNs}L=tu1!aZQewMEJ84MBftnFVwGeJrJ@L$mV^Kol?1M=&tUM-dNB0z(b8{h z&lY~M7*Dx*XgTRrC8x*7vxsDjEPa)-vmUe>~S2f7W5>hbn@O?qMq$s1qSbBRJpt zju`%9No9%qY1;TFxsDV&L$g>RNP{2`N+HZ{s234$Q)E1SAF<=pd{W7Sk^ zb7c3!>YZjo@$tYbzQFBGnZ?$jSLqSyBVW0EookyO&+qy@1u4dKyp|ov zeEXh$0%H&3#TbzlD{sYg-L>h6#vJ((!R?1f`(8OS%puVlC6H)W59t^)JY=+lCi4vm zR)~&g-f=HQ9dJs(AbMvl&j@&PRi-xwu@cCnp1cq=5C}5;YxUeeP(qc4-m}e+_3;N8H=qeB>5}cPNK4?dJr2 ztF8Wapxb-FLb05gGyD;ly@6|Hj*n|*f#;2PSzY95u5_`_m%1n`yP~CPZVnb;y3U=h zDE^J_pMKe-?#0R?Y_ia~YwXon^a8I+k2;m_eKssbx$i0^fx^tg#ALPh$B#&7Mft*@ zAG?K?1XtL6jDwC@Kx5Qb0X7N4dz+4g)oreWw?LzZ3+n&G;kPrzp-8HtD4&%oCPtIk zbF0?EX)EPOIr)Crxs;??VD4va@qIUH4NHvbjKQyR!us@6z^3@X+@s!GouQ1Ahzlgw z`_H5cZz#XdGe0#oVr@q5NGiM1QemAOSnfPYsCpZrJWLr!CZBoKI@ubOLP5cn$-8zX z`d0Es?H0|CS8`6c7Nq6ds(kM}4(-j2GC15j4oA_MIA$onC|84|&JQbQJoj=TOsquu z_dSHJ*!5zgA}hB?4f+BUG#;n9dUOCiJ@qMTq%P9p+$#z)Y)@#RUt@1O>4&_XW?88F zB!zdXgIs8IG0DFN2ogS`e&jxvsR^+smVC&%>=aiMpAyViJrdOSco``!8a~EHR!?QH zPM-|L7+ly#>_J-uN>ll=Gs43~{L#>K(V*=g#3fOfZvdQ}FJ2y{H#iN=vPrE>X88)7 zv~5C`J;f!+oUL|LuH9soB^Poo_^q*6N9u-rpa#v8SAwgOy*?%c3V2oh;LW?t4y_XR}8DAKYb;=qI`@lc~?oxUD_ib+HGl< zXl*?_Ssj>mX`Y^sx_s_Ecg?t(ehS*o3kAaW$6`)HIirq1t@bjiQco(O4Nv7@D&lme zIwe0#zH^l=b==#|{a|hlI43u&G7>Wy5&wu@e#kUik&}jvcz3e2abEAA)x&$P<4Xd6 z`R+%RXw0d$=dF|(WxQed1Sg$V3_9!7n1HdTleId6fP*E`{j-fp+3DOwn6{6*p`D&! zNR;>XbXPq8*WZsR2|EtF1_FXFOJJY$Vl=E3UztUHeZ7`K%UctKDFj@TWq9mLo@rd! z{W5?{)VuZG*t;jcWGDgG`zSi^o^XaK$))fiGUq&P)>BwMu&pFNpAX#~?28tNdrU-_#X8gphO@5$Ivm8;KeBstrHn{g|w2NXs|WUpab2 z>I5%T=uS25t4Ar;>wn%D`V17st{Y8m0-2rFCtuL_sl!ooXX4P5^`uttNfQ560(Ldj zdAFn6st_FJP75i4d~=~S%wQy4Z&Jc#E$9Qi{IrIyaeoH2O5WylcY;akH#asc9a}`7 z1r2D0E$uZ2wY{j>X0PuRQg$;|d zBMFx@+}5Gk1k1&YS~;rcL%opVh)&Fp-m7WwGNJI(FZ~J~vBB_TC)F1$rKWMU(6Xvs z9qukr*cSCr9h!#?Bzko{?U?wT(lF-LJQ@4#(q?YHGikcQp%seF!)JMp)Ngv-zFPDo zP7o+PLO-iaB;5f`R1m^&RDDo<% z(H$4t=uxR2D-zpGy$v*jn6I70ZzFyR%Lvfhe(z>xyeH+4!*Jc^D0#tCiMaAS8p=;vvA*H<;J?)A3@Wk zD0({~9eScclS2d+eI^^)&0363pOnmajbGC6vPAKrNyDNf-BVeSPDh&s=PF!c<^)5L z5~P$u^E}Z2<`jf!J5z$C3x>*F;3) z+nliuq4_DFUIxrv-kYOH64IXB_*E-Je5`q5z~Zu}Oo%IMY@l{oVpG{ZwP&NGv`KqX z77^Sy_uLDE3w+^5wcEvq{%I()y{uu*8svAKgSno0r~#-W7A6P{e9k#5871*X8@~qK zn`vRwVti7GJj#9;)onrKC7pHTEs6v;uOf;}5zzs5VLx={sJmm|@9w!@grCvFcxjvQ z%zb`pzKb<5{#QzBacRCap+I!4%Y0NFRmeSK$2`t4|U~17c84d#J?)aCcl&K*D z@|#pA@y~h#Oew10>jb@%!=s9br|FF|WvJ%V34SM^MAaXU+Z%35Q_ZgPwMgIYupBO)Wh|X&vv<+iWUSEj;VDE{o3aO$+~rW9f^OqvTV=_@|I zNMh+|+O0Sy7)?TaUJ*HJd^{{>ozC%H;`)n{-j;P#N7AP78!;c+_PB`Nx^>xO-lk{; zI@|T9V@g@HG{;Xp!UdJHD2C&bc}lyOf35_ z&a%fl$Fq!yvykJmN1Vn9k10QgJxW#F{Kg8)GG%2?Mkt=sTz?bj{c7r4O~&U(EYn82 z9M@7*5UiW_U9mRxM*J>+4erkGuS9*XDz=q#GIm9ue=`0I9^g#T{N5mlMGikNVw?sZ z=ge>{a23d+n4Hr;wgEqOe%4HB5LTf8%qbn4gzq?G@P}2%-ceVM!Z>AxcGRWSITblL z<(-_Fo4E}_D&(iB$l_w)NN1F^Lgv~JdX^u=n<*AUm2!y272yTW9F8bWv35#@W6ba* zXQpPZ#bBkp`LVrTqjmdZwyPjJWw-AFW0~+FXZ&WS#i)Iy2xorVyuDfpixJE@*?wmL zf4u9cog>d)4(^=1MXWN+qBiDy{4u|b#WEwEF8;VYJpYs(#0Lp5l&#DKj$6a)PWeGX5dS3^`&^!JJ$U&;Fh&7L;F9b?uG_dL z9C9iQ67lvEmLbapj7!7wPT7#W-T}h0*}2N&7Vw%=KBSNdpQM7o8{%sQv8TBD`;cLO_rX` z{1eX<9sG5c(nhuZtzHImN0O;LIDeMiMyH-wFRT2gmMIfBahB0Wvz|~dv%G^A%r$G8 zWJ-FHYQm6YPLO2ASC6NcUf%hzaS(hq`~2OouC{+&wcl48@p`QEU)<*DRf@CbHcs4$ zwjB>ayTIkM+%|;sNwz)p76Mfyvr0A=_2~17d)=-UlH8efU{@_;4sFz3Q?q*1bXc=C z&+aGOseW^?@YL}08S?bO%_^Z;{d)ZQ^u5k=vup6}>|?|S*Vh6mB)>4tLcpD~SO^){ zHv(xSozZ4J;I-M82nkngfz-@jN@j)N@mYe0TNO_rJ+pJjYzurc`wSuG`Y^L#@QcMP z8QedMi;#20ZAmletT3Af@6KW%q+D@YQWt;OnKgjtVY}-nuBaaIi?DrTw;InG2twFZ z#M4ixm(&YF|&qvc~0#aE;N|+X}Ef8<^=KVobsB?GYm3d z_^GmbdS(}aaZc+Q0U2ESbWnXUbB#bbr??LF9uWSNT|GRrg+PC}W5c}%+deH<>lqm_Q>cPD-?e-;!yI+*vp~qsZktjSMp~6q1lzAmq*(Zqu5F)aI^GK^UBK0 zrR{k(bb3ABBhGVSE4t7<&B8rt>r&UtwhhxLxw2<^i|A0${`a$`J`~bpj4LTGwB;20 zUpyP>M}t=yZO@kD?7JE^=MOEt^x8<4vkrc`tqUAwUa@!q+lZDk@voehy5~K@hF3^h z2rJT+Nl`jkC{lk@)Pc;mxf> zrz?*eFQ3Ql-;AKFo5_drS7tYkKF`|YjJhf}rw^^KTy8)L%l288&@CH z_W0$lgUyRW&nxd6pSwrC-$bBfn=yydS0*je{bt}JJSgK=vL zIc>NHwAEOctzG-WJ9<29^ax34t}z?9QCsXCLlU-pgc-Ejm=D~lEm}seh0PS92`w?^ z0yk@mD_~oP!zdX9f1}f>Q8KerGC3MEgX^`W%b2Ecb|Ww(3~NIJKI8ho=n6KbVw1Fa z$BmU9J_y}3E}0RtVW`K}i?D@qg3D)=Y*-)ewD3&mkTE{EbVd=u5^mi58D}q-+B_6< z^kL%{fKA;w%x;v5F&8+1?VW4%DpZtBZve|Pyvdjq+%O}JU^>USjzEF>uaY}d@k$Ug zV&a5EP(fo?=^bi$rHGlLae5+fpkb@j4%NJp8H`Feg%KRk)YW$m^}NyQ~txQWe2N3{h$STzl_)@})Q5YvXf)$#)%5+qBDdok~hO-<&28~&zJF2;q zykYdgX^#+rX0NgyHC#&HFx|yVsKKa{#pH^ABuVL}ep9U0iH={}c*>_bM75Q80=wFH z;wakmO<$XZ5Ly@sh|WVmck}C2p!|})s>QD zw`Gm^Q{yaCV|7yFtzmT={Eh}qS^7qHm~>akF%rWEwtk*Ip%^B+uT|YI)aw zQk__cV-h0%*6{;o->hTwg8ERRCk(P7>}b@KyXTB$BuK;Z zHrS4}Ju(Chv&fYb=wR_1496NCX@Uk1woHNrtY(AnSl=T{(8!RSH31(Mu|adJ=8@W} zZ%9#@0DRb4#C5Fek=bgvL~ftJ154jvKGu2|RSlLX4iem8EgM3|h923iM#AJ|2>@8g z2Gz0ZRf?CsFhzEPGOTce<5=e^!^^OZ+$iBbo)wn7!E~&7mF8v8MzNe=4{O*EI5xP- z@-p%v7fB$4#ca?Wt6!zw==)H#Cm6vhH+YWqt}<^7@5p@iKrICFl z8M^Z2zE0jbabIEsI&F^A$Idd|KszjxV69rZrbxmm{^(uNL}9iaGhc@^jVelG};9okuR;`DIATFjYfJIwyYbym0x!FGo@yt=dzvHgUA` z)Fqc+HnU7gwXkG-VteP6O98)pX8DlnR>{f4)y@-_oMst=G8Wb3lKzQ}9WC-!zQT?(7!7t8lmFG{W_Zg(D^eFw=1m658(l=Muj z?Yunu0g@9c&r%&O*_t@nd3KhI%m&Fq$_!O2OQt7wcQDQhK=P3CCDntHi;3$Ul(QV9 zjCYx^YIe!+#MTb_Sw2$EySzks^?2)N{#F~|WDWT?iP zpFGtMH#>6#c{~_?s+B*0Q>AdtGb@k_BslBG^hCUin&;fKQlYc1g|pVysV>MC5^V^q zES#Pug16d@K3gn7A$jP(6exU2`@u|{Oy3?n(|~+kQnSx*n3{)Mg7hGnONIyE-6jOK zGtXE+KuG$M0sfiuV!^zN?C=OlvwHFwDX3t7Y_VAy=v2(IuZz~&&s=)a5^&t z*+XKMfCq&a)2MKiGg0J6?@(b4vI4-gG@R;875UjaQdo(=sZooaTWOohc&C zy(8K*mkaEt-QWUe21q;am^R>Y;lVTjj(R4J{B#@Yqajj2HmwY&J5xtm-bVUpi4Mu?oZ{BX1C!!n(YNf)An$lGd-m3ZL|-ty>NN@At3pgG}7cY>`ueCKxEno&Uyw! zTHi+9Y55kmPm93G&XkcBw-I-m_XWPwzHpHE)_XH)bkIDWo&Zyk%O zmw8?5_+iN#`SEMM41L>#(eAg_*acyN=4pex99av}`#d-U5{@ycJp;OpYIVBbStoJy$1e|{nM>Bh>CBcHYjKsPP7V^9$LWkKaLcX{ zEc3>*TgJ2L#B*4u*1_1!Nop!|hRf`^-+PQ3qZLd(rR5|_iyC-S1D=K2SaDNXqzuAz z))kI3Q{_l$ljGtC@XX~MF`F`o?dvHEzo`#SnG-)M%Z5_e&W`k>{evr{nN zc!t>!_g0G2pvR_{lYi5Qz9|cLa*F(**`}k@*QPOjvkLC%6zf5kO^{Py)98Y!9d|>D z-k|NKt5ZnR_=4F!_eF~5p!cTFiJ!-apeZSLOp5fN$)>|ekjI#ySr+$jip8MQrpHNu z$LP&)tEnM(WeRZ6deh}3*kioaY>E3I#cj}Y)BD8#YQ)P_m^(W~dC+3h>E!Fxn3q`_ z_k*oD=(g#35_mOwW9q}*o?u3s$Kb7S`9iXJ_D6+bn44b9;nE=~5e~i6g zS1N%nI~yKw`rII5)3xNmWw30h)|xB8FV?TS^xP_w6EFn{8|M z>P;%2)uCsRYCQS9yL)G5(%a}8w0`o&)&$%X7)|Q6Fo_*_!n(KKKg#S6Y zXO$3?)Cy1&GEaqwJ*W4q73wCnj;VRbHGl|va5$=ky0Wa4YYOK%5UJClMJQE`EoYAum(rsv6Su;IPgot`@Mrt5kOIG$Z4f6ts%ySmc z21w76^+Cz*&u4}!!g{`w|hUf7S5$C=S&Pug+SDTel zP31ffBK@5Cy575|&3d`!U><-7dGKApw@@D|k(%szRz&hS({Djs2)%>`L7`B= zFb|v)noZ?*-?ZO@Rg8Z_DZ?ajB53fG-^FUH0nQWXl!uh1Z0Ztc^V{y~<&47I0JNHJ zO%MqC_lLj-^=)!7EK;f)g%^qD$r@l%=eCEf!wiEHUG&_zbA8^nfr}i?a-Q6EQ3*I- zt<<~f>(z!oCT7O(az_M=-RgPen)vE|L8eZl?EW}nLD516TwurF0b&@d2C9Z-SAbnKNoS@PK+pR$>`W{LT2drOWP+B{2hUwvWdH* z${jL&Z(#|asW(3F6nr1vps!{isyQZAB;t90{+5Bqer%>RHII?RJ6}y12rh&y6mT=w zV_+s|0EIa1=iK#y;*z$6iYh>%P{qlU`bJvbdcg*tb zB)Jq9GvVY%psxgsn~?x|DGcemtsR`u5Ky^P>vOpJ{tDziEh&MC+a z1$eEu$G!4*E~4br`E>feHhvZsDk}jPm39tgfN~l?XNyP?AE2ry$9t`Zg#vva&Ufgv zvh{P&KOKb!)edukxRLLR)5_*w2$lqO0VeOs)0%UExul+ylaE^+LxGv70svQ1gy4)v z)qfCx^;&+XFF~^bNA-S-Ph8Pwm_IiBBlx($oO1AFv*nS`{@j%cr?B|1;t4y$H8T>g=BN-WKW^u%7TAa4FrXx9=^vRz5Fi`zWguoncHV821y<; zo?V!rgI4lTh5xp~6#4@97Y7i7Rz^@lNO=eRI$!Y~l3ZeXp|+tc`#;PQtQ7uK_RoGI z^2`VA=FKI;q53}|I+O#mpNnAl5Z-WJS{{zC6#hM7@pITO`>_a$&-0sCmjs6#EB`=r zzI6Zcgfznsm2Rcue*_INy?CDhqJIWb9j?3({HL&$_)^BTRq*o5Gg5tjRNzVnuKPcS z9)~9@4SoQNl@0>;FV9Ic{89fm;X{ufkrMl%qONp2{%@h=#dkRAo5jFfPZeiC_`c|< z5PdW1|2B!<0r)QwpC1Kg7?j8@JL^rK>K3;RXCr1oN@G=B6a}xxLkXaW#vwT~a|e)_ z>zdAAed)degf4QngijYjvaUy*$Uytz!?)C+*a6DT*Bv3@*D4NVjQiqU-bIZ7+>4xt zL^@nRE=N#tDZ7QK$~Q+cwSDnEZIX~>5aaFITz`I>nr~CPq5OIaNFd@Y zm-$@dxtu}1BbX1q#|o^uK$_#c`gos!CO4?w(*Ll?Q`Jnjvm>l{F+Upq-J@@^QyOfV zNuw)=BH8o_yz_&L*SKeg)^MZOmcNun6$Pdk4uMG4S%N)5p0T#vz1(D`^T}MjHWBR0 zB{h@{EN;&DSKM8qQHF=i{Qa#ex3jtJ3xfGMs5oDKstBnPle#+Ce@lNKqM*poxF8q9AdV2_fN}5EcKww~G4|Vmd=X z;3^YL!Z{^sLh{%8jA$SU=O5Kyk^dJ%yLf>GS~r zU1dEuw;Jil$Hyn&Y!-m><;x>X%%2^Pd3hf_jL$2Nh>86I|BsU20#IZ+9{*T*r1s?z z1Fzp3;tyz;Ej%kAx9~fhL7z{p(ecNZ4VmA4vA+_jzA{Op0i)kk5dX~+ zeHacS_Wz?-{&f?@Ui8-j@--1*R{JU$qeeSL&XQeAJC#EPAO|gQ3-1W4K)?5fj^p?C zoj$YM4>}@J7<&~OIQ~VWNv&yIyxw2F8`a?p$lYdEw{WWLd|T|&=_1Ij~aD^3Uc z=E@C!1XSJ?-R<0^X68R1K1xB8>b84_Zs}5<#z# zQ-V}SC#h2?7}pZ_wWu3Ja?@znSp2v zVakTRUjAW0ZFLO)Jz@X2{n-uPq2AB` z2K*B<{ZDrL3#D~f++$~2zoDlisgL+^K3F_~D?G}4`JLncC;!b0!k#l%aaX2381~C` zR6g2ir^AlNIdE}^fKhTw^xwX^O+Pn7vVe1|Dh#n?KJ4lAnD}&?(uT+~bGr%)yytYx3IfWM|`O^qc~5xmr|$5iH+1kKNHL7*ksr0H;|lnhX>5ijzOW z5cQgpKhgnor=5*y*N{RjAaAnIK1S-W-rn1WF;JN>0r2+{e(TT!k_#}C89ObMN%&gW z$6AVya)7Hu1>IY@*x3=qCWDe@WlbrB*%5MHECtbQ_=#+rxpz;#oUWRh{m@?4JrVMXYdR17a9@+m-!`#fR<&mmYw+>zwZ=?EWdpD!E5`&I*_W%k_tjh zyuDF7`tY#W{})XaLTpo3Op@D=SO8TCyt?q%|B~(Y*3xIccexL9bh&Q<{`GQ>i#f;w z{r9Yxd;ROIe+SmSCS?wiM*lr3=Kd#0hyEKT=3f0e>s`?Q3PLDIyHS<#e#L)1G^G&K zdGT*S?H2&NUx8l_KT-((2|9f})Ta;xz8J>+^;gjP>!J21t0IF_vMk1+LbTt-V(ulc z{|~{~(vaRs@%0@F$FtW>piq6Gpb)g*Ib!ZbuSpsI0^bWjJKg`D{Hy2x6aG~*5*4JB zK)^q={y(HoU-N-NiG?JhNhzfPv3ViAqvGpu3des&Z&Em(yl(OcT@aM8BgOm4?5Fpr z;gQ|r1+6c79k$OJa2K==bvvw|RpPe(85H7XXnlF|7l~y3+5CLvujH-8BcDIyh2ft> z>BZlOGXR=Sy#1Mr7E4HiZ1g|;#&^b;Y%wzd+8=BriC6#lSxlC=hMhKcWVw1V)Ov%a z8+8H`{nZ9dF3ytY99|8b{XG7Qh)o*o7yD{fPH1h5GPTv@3(Yr&FKUMGG1Vu}himfS z@5%oj;Cx~EdW`&ss0@GvpL@9I)%h9VJPFyC*tSWqF`J*$*LY{Oeg@cq`HC?{bc1b>*{|-=RDe?5cXejC272Qtl@@DQi~@VL#N@-A%wcinV*P}O z%03I`N7eY)_dt`6j6(VTLykr*Bq{2}_()q9b?;UFbX5LpIrw%l668YPjDP5oTga$kFw{KmBw|`s9WhE=nFnXh8 z*4eA!wWRe6q0|kV&wpqd8`ntV(#|rtB|fW7G_^3RYUiv#j_#E>PYCM^CHhP3t(08v z5yDAWlqyA9PYz9II&nS$lpTcx!R1mRDUwhh!2Hp+@>S7wQQ;S#b>|YSJ!z#vLIOMwEE9mhyS%Xb)ZDKbx-+zN1yYOjnq^qxCFw)0{Kk+0mWMjkGf0 z$erQwLw@kJ07IyE+g+{)K(!ow1_qPpiZsano)a^`a7Zbb28(1AXz)pB1jyq0>Rbv8 zI6KdxcO6uzE30Bc*8V_CNf!IuFH}|uzO3XFEPFzw0aG$#+my(Sd>lGt)(uDMX z-v$ac5v&615s%~$XGa8-Z;x%wh3fBaAHq977GPqm-=W8dLgv%-whSNJjGSXQi zOdn~`w8Nfg<@zPk|8uyqqy2Ld{OvIviqi9pSG)vY*jFT$#yh?Dyv%w3b}mketuMcX zjiBq@Tz@X)PgSqA7PBVyXoT^E57+a-QK#L-9l#}>#(jqTqy*?Yh^<8EHBa5vzEj`i zu-0vuXZa6)`MU2GczGmeJ-c;kCnHqnx?K~b0n;%=^g|T~<@K$4_R}AIeVg(Mi_c$> z*gvJ-*#J3YAq$Y!PiOeRpX9v*%Uz0=CMC+>Kqys~XABU`!`0*RD5Jj>&+wnARJaK< zrVpuURMkY(fLrdKJg&!lMe?~c9y_rc08#QI>C7)c&VcLqza)U3k7_%eT8U~9gt(!P zMCFL7-)=m~;42MC!l~O9cQ8dm{8UL+tUDQ%e>?ejda1gIS(;hPtQv2JL+!x8JM~DL z8fp^zI!01V5btGaQc3ae>zsNYsxNBu3vFR%2PZs;w8ESPpeL-=bjR%jEk=DRaxdBH z(?Tys{@f-AXHsl@By(%78@U%_^+{}v=h|9;^7Nw~rByw$ST_0%BsMoY^vfAaaKw_# zD4B@Yc)rgFyo9HDhb|X$QjdrQ6jsDjSB^vYT(dNWsCgJ?*Pn=?Knk=g6<$1Q%F~=i zn8R}li+V$ZDHHRCgQ^Qrl;x3Ubyt)|q$wX&!d06|R7b^8!cCY&Bx0pT8&g3m4TOwp z`Z`ZWRTQL2O<6dK^UbQ96ZW0?Pqkg@MdJaCR!Y2K)@pj-hMcU(NpvuBJs3pm+9p!6 z|BT`0hsl{jSyt4f6ULb{bN9}+wh&IKg~^$|x;W&M5$%+#dE{-Xwh&P%PyM314fmAm zLvf8<^_bku)zWdXfVS;?}aaX*pWpwJy7z)rL4M z%+6f>QM8wymq3$UrBE3o*8%QAqnYXZM=ITF+_Oc_m4WlkIq8!LlZ`d>g+IZ;K zAIg*#C=$f4H4NQ(=nr_W+ld2Q&tZc2Pu-*jT>nQgA-Yj zv7$Ayn=fY{F+ilh6j?R)>FT&%4vw5hEcsk+w$Xq|I?-^a##J-pGSI2~y?K?-I<(f0S>NB<5 zHk;e;S&kDUK{N6sIL4J6JkLw* z(kwXbPeoPZCMLP&UB4Qk!R*Rd=)=Gc`R~s=! zl)G8KyaNPD99KX3<3M@z;?a{wSdSjx-#t7Vhu<0uaB=0eNkd4gztq;3#`TxvbYNInYUxwwl%Fm<5G*i-3B}liiIyZ zgpe{vKu&GqRhcmLjPc~p#iNoTIf6+8cejuH+}}QXSihb>rDKC@_6GIvejxL}war?c z#a%rocJA;a@Jvm;%66;%iES{6-JEdAFIc`RJFh1XGR ztxbMUFT(o@Y_Y`W@CBVNx6p-o6x;7pQ#m*?jg$}GkorAM13wo9>2L>zPucW~MW!x~ zWpqIY7S6j;C`s-nU}u^#O7O0nm2b=^6-QxKgOC-88=J=<>2C z+NGagp{*0H^jqXm(Xw_~ro91^>OHB;u@?s$s_o|D`yf z?25UqlG_UYm6E^;{vVoQ3zobkD$MPL4n;5BU_z+tg^T$Yq%Yj$&il`m7WV=7V-{Ch zQ~rlUI@f2qz9*LQ0k<8ZKYv28IC5^LunPtfK84Dr<;bMPE24EOG!=i4qw7f~rUAY! zuQ4{|a;&gWVrSrBPn-Ns2git(a-zMKe)36r#=q~2^d+uRyvOHwr?@40Uz;+Dl&|V+ zqMNx`iYdh&1#d|Jj_{AT>z-$R*a!uMwUE6wDZ9Ug_Sk=I~f$n7~pZ&=# z_mced#~Dh}hLZf6>)WE?UP@uZ^x#bFY_(M!Ij@1)%TP)(wRM#6R^`|W`ePQ!rJUaR zHy-hndi2N7B@GLEt>1VgQl`_7Nybu2qP>|dp`3SC<1X#hW2C$%k=WY3Ze>FbBr5NX z9=8>35ZN`f^|Zy;NiU;9)JP^vhBZSB&SQ^J$(!t&7Q=pCX4-( zv*j8JOp)#zo22{?#7S{BayUVsr{rI{VC5z>Czu%Y_~IIPH74o!s0EIO#TT?;B^@ zZw?A=4Wv2^4P;*L3kJOrGYw75)h)^vsj1Lkzc*f_iV4#(iz(Bm+f2Ggz_@a?*U@&b zmzmP29eu0TAAf&c!Bm^^1fxvv(zMIqAxOPWgVZ|PrpR55OH7#T=S1VDd3VYE>`xi= zf+W(uNbuYAz0sl63zEdF*oyG%(q}VzhuseqH%`>1;tm~LZKwieyBiR{9?S)v!oI!g zS9J`?ptR`q+|Y+B;HzzlRlXS`K!MP6EdAW#OxQE@G!Hh)I_<*}NKuXw<~1KknKYqX zDg+xNkl^VP9{23y;iz;WyOT!srNRK&XO)q|WbNbe*{_fLWKmm>?SUN09A*;<_yrkv z-3a^E)2NE#lfwPYDMWE$ftg}DN4eMBkR`^rodRn{n=vwJJ9gW^4e!upcj%WuvI%j~ za+9hx&hcGn;l-U>tK+_IrPs#-;GKF?&&9_aqoq!^SO5zido4aG-b3Q5jC;ZjDeGXD z%Fk~$w3xgZ`!vCmB^BWh6g}W~_U7pHTMKvJHXA-CF5Plu$@C6vhuf>Ku4VzS2-u5_ z%p>Tra^4{zBFKvzjO=+E!%@%S)9o&5B9+1xa^xCi+{(PT+|*vf>=x3}sihAHvouc2 z>^^(dta?(L&6M~c51xX=0 z;;04VXxcvJKc5S2bam!DP7jix!RVs`_kLAd_|^B(!^fM?b=}V`OCf9oYlqS+I++7% z!z`WQjZ3Yh&RU<#!`ZkGoP`3}#xJU+l7f?k?yUw+ymvg**C>`_2-CfMEp5yMcRl4E z&am)+Bx*4-nZVO4=JPsfmw{}}ucN)&_C%sJFJG_nY0@J_y%}wPn`-fTlfrod*Mdy5 zkUf3RAn$bVmOqv}ZOuPBci-~fLfQH@4kva<%P1O05IaQ+knz)HEDO+OswIiyS%ve@KgcFn9YzRT#8g0={~j@6NRMl4Fv@IW-sdclO`FK#D244eVYCa{w71a1lHa`$8;~9 z{e;S1A;;{p*t%my4;Aj-yyGB2=J}1nYCXe5o_GC@WmSn58+!3&3|cu{{b{y?b>U@S zr;HyK4L)g0F=-ckB&m{Y^|7BkBXYmHgNxc$cI3TG#BAHl&ycXXIU?VDyLR9qCKEe@~Kts9XvoecIi`I$zOO){#V&k^vhNCC>J`?egcgU11gAJVvkB> z?Kr|lpy&Sy;}9J09*LPhj%R%(&-(^*=JU9EgK=ps>Z)oKmR+D{xSS_d{RCuH_2biE%GJ#Te(YC$-VM5`MQkAw`HAdl+E&_Y?bF^m+X<(WS^z1 z3@g_fWffR=SW~ehzQ?-HnrF?oimfFW<3rZN)@o}l#$pbyydzUh6su3Q-n~q%kysCew79N%ztmdVm(tB3eqzsgzbx zIjy7hw2@w*&9sePrk(T(?V){CL$&lK9i#?2N+;+vwbQ56O;_oLvXrC3Do^FBNotBJ zRI}7g=(={rdFtxs!Xj>PpW6tCiQEzMZKhct9Gd>wO75SUROF2|8CFMaSc@= zHodwod%0f5^)g+z3Ye#W>m^(-VV*Gagt=bD^(yAs9_Tddas1o3zHMOL)NjgCmabD) zf}VL?pU3>0n154(o@8~0>rO&_Cf8>sjO!Y=U*md&>yaV#nDu1+n!ZZr=M?-CXQyeK zX>%&|B(aO@>lWn6aC0LrABLL)e?qK%3q9;LupvNCn~zCsNHWIM?;s=8`|1PLpbn|S z>WFGq$JK}G_o`K$Rqg7$`a<1s-sA6I=7WksOF$){hd>X5R)f}po(63I{R;FV=r^G4 zpdILAH_B?1=d^vei)h@-wko5=!`&L)oeAw8=Eb$F3GSMqaIEgH<1_w$9sf$}xQ^rq35 zF?L$P^>VJ?W5^yc(Da*=0vi3swHtbT56?`nKL!89*=gE#WO(R%a{It~>UlDV{X^%8 zmm6aY^v1X})v+hbfn;%y%Yk9W+8j%q9}GK9{c(Aoh)W05Q(wpPRlRCdQFT(as8i}A zby|I_&ZrL6sXkSosV;RvT~wD;xB6UNQC})IV|2!tjIkm=r4?NGE4aWjufS8Uz;my_ zldr(DufWr<5ZW)tL8m}xU`+?giy-a0>-;F9_u6^DyF^eQ4E5D>)O`~gEohv>I>i8uH2B!F2rv`pvnC+@IBgL1Xzp zZ$UEOTjHL$EV})s*)#Oq(j&RYAIZWLH71Lj*Uz75W0Fk&3N{Yv*TBYwqTH}?)K`q( z&2uH0-?arR|11^^o-0H3`xhJepwavbjC`=z``;?>{+fTQ+|AEhCT=n6bqOtr?RCa; zTX#ac$zPYGuPsSh>XKl0LOs#uWcF+^u5L--Ool`IB$+q1q%ihmqkeesk-EhJ8d9n6 zB}p}@Hgyj3LWnTmNd$I^gFKJ>`Mc}uoxf@}f5-EJ_ia;9rw;EsC&q@L#cZcZ2Cf~P z$Jg1B1Ya1~BdySA^LH7l*!%t|0Xu@aX}{lYT4m_;wAnR*ezWfBF)?+Y4B`!=_oN;e za@5}UWIoTNB%=#3_58KeF?9m``n-~NX6UakXD9O$=mLInEMmMCd`BT_7`wUUMu1+s z$_@Cf2)E1*(0nqbj^LSBy~gzySgM`tlZ>a=YXkLonoaby`8`e^Xmg@Hi8=?t$pbNU zpCt9h2{W#Ymae0;CEpy&MD`#^Rd(Bv^(dVF6WYd=Z)S-Oc0aBbS*hZe^PZZ zcH9EZS8lQ9u3M)0!Y$K$>6U5k{tB9PCf<=G6Ft4d*XUUq)2QEHhjvY$$xa1{4K-eKQ&DLD+d1^SXnL1 zi~?U`tfBFv{!1~Y1L`1&b`ha=WVCKxtcyEeMb76^p)w`(t9#yX6(yckhwbZ#mtv7 zcV<>+wq}L1=4CC(+Lm=R>qd4cyD)ohc6s*8*}Jp%Wgp4z39Imo@Y?Wi!ZqQ8;pXt^ z9Fa32XKK#;oZ_72xC>2ow~BAMEn<$_Lif8{sR;C4&?3+>wEYP5Q&-0^&n*+_f|$Qd zd>eG1TLZZ=@nc+H4qD;1q_yKSi5z#l7y;7S(;!o0$ds|n3bzKlTj5!PWKQ2TF#pAsi^gZ_&Edeca%Mh(HDskUM#LDOqMDCZMXLR&%<$%bee-wKW;W9+H404r-av5YR zAyY{|ad%NEKL5M;GbH z&^q|>X?K_Y28y$m$BFn)MEv!5BSr*T{0Owb>J~(x1(r{we+I2|7hwbw;kiZh3zUz# zt2r8LQ2r9OK7qEUKo#y{jAkM{yOo~BwGGh!JY+Va?O)wRVqCwaxri66^)qqn0856> zg-7st=zMsF^MRo8-F`1+U^M$7zaMefj~M(OGW#L3A2R#l|NW5J5C88Mw`(i^?AfX4 zarC*)J&Smpg@@|JNLW+>JuT2tfl=*+Wi`;%0_%1`UkmiWdIIz$=qb>8&~u09^!KLfd7Oy(n*>{1W84mFUg$X^5KPk7GR2T08+4(ItHD6?b7x(tY;8stn&l zQO`rT-VC3&fV5xFAwMs%S2~5`dm-k_D7?_gzC3|C{D+m%^tRV`EwW1UoZ+5FBNIJ| zPES8b+tlM-g|9jhztPAj9lKZrbid6gkHarsUs3oZ%JG7Su@lVcdmby<^H|BESjnRB zZe_oB-vd|RVPmYE4N*TEs#t3q$FLORuEw~lsn3nVn-SbgV)k%Wf-9yeih46=LM3dA zAQNgipY-U?!;2V^nApGjdEBjrZPk8$Md&?nc^ae8R>e8x*-?eaSHq4q4Fa_S}hIhLAz2jL?<$I{g_fCW}{20#% z&&Ov#I{(_i<9Vfm&f|IqTUAA$qW&4mF0@}jc@d;@vK!@PP!H-?QGNmX1L!))b*udR z)EVV@HNw3|p|!a`!nM#E5ov5&Z032k)%qD3MHV0C`LFZ2tv|Cdb9faA8#xs5y_RF2?w=%GhS8;FE)IDK+LVTg)E?z4-wC{~I<8xoPw#VXD z?M>nyv}V2HIEIbhcw(Nv>U&>vH2GI+2VUh-D~|dlV};6y&1v?%&I|TC)>zMD{%F9N z3(mX2dAE2T@@@WF7)Xp}2`@_LF>gFc?Sno)!_xXaW?CP!ExkYbF@FZpj`=c*5e&Er zFP-y0^|JRq$1J#pdE@zuy&a3ce}}!=Z%@plG0Xj{+>_Nm-n9NZUa<0%V&y6I@Azl2 z4<&vUT*glUEx3dHC#;Bo^qt;YPa}BJd=z|nc>bRz{$AWI{y}_8d|TWn=7(K7E(IN8hJKv;!BPyZg^b`6it)enoP381Bt)(Yu9sLWQ z%Gc8~^c-!ZO?=++zvwM`n|?>{(7SYy-lIDDfEwr!9i}EaO1S6IF*;5k(n)HekLWag zOl@?A&f>ZL6FNudse?YFF1kRM=rZ-t=hRDA=qi0d*Xc{@BUk09@1&hgYftOc?~t(< z8VmHliTEpdV^OM4-_olZtxa5ild*$;d(_MA1$;txc7R?xtsRK!wE%tD%|^SYp*TQl z4$!+wD>T}R1F6JbJlp&pO9$GVXpg7UtB0xr{bt?MV`54^*?Dts#CafL?8!!LZRhqI z24`^+Z>$~GZ;xWXSX#RV;?E_EqCiRJViaUun zOb-k)_GF_D4?Iab$m!XoU*VMOS2@!&7Co#2XJ^n1U}plzU+K|4XOfb>}P zNcEe-T9EeYL69EDQP2s{X^?)$`YA}ivAimzJDX3Xrht8~C$#7ON!Wj4w(m{W|0-j% zMt>f^{&kM-_2MTcqfjBugZChg#kia9-j{iur5HUxW3+q-v&bi z*Y*Fc1iiso9o-iCvOV_Kw|0;>&w1Yet)zcjuRaoWxL@3;g0002Yk?!djR^NO8 literal 0 HcmV?d00001 diff --git a/fonts/LiberationSans.woff2 b/fonts/LiberationSans.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..796cb17b55771e8282b4554a86f145a6193f39a5 GIT binary patch literal 133308 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 #*I7^s-J}Y4IY1hQvRfTBA1kd`2zbAK}odo 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 literal 0 HcmV?d00001 diff --git a/fonts/Metropolis.woff b/fonts/Metropolis.woff new file mode 100644 index 0000000000000000000000000000000000000000..6b1342c2f125825ee1967d00c5e863ba5e4597e4 GIT binary patch literal 16336 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 z(fDocumentation php-kafka | Documentation php-kafka

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 0000000..c93089c --- /dev/null +++ b/index.xml @@ -0,0 +1 @@ +Documentation php-kafkahttps://php-kafka.github.io/Recent content on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/asadf asfa sdfasfasfRelease v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial release \ No newline at end of file diff --git a/js/clipboard-af8ab36589.min.js b/js/clipboard-af8ab36589.min.js new file mode 100644 index 0000000..28650f3 --- /dev/null +++ b/js/clipboard-af8ab36589.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o=d&&(this.u=this.g),this.u===this.g&&(this.cache&&this.j.set(c,this.o),this.F&&this.F(this.o)));return this}function S(a){const c=B();for(const b in a)if(a.hasOwnProperty(b)){const d=a[b];F(d)?c[b]=d.slice(0):G(d)?c[b]=S(d):c[b]=d}return c}function W(a,c){const b=a.length,d=O(c),e=[];for(let f=0,h=0;f=h&&(a=a[g-(e+.5>>0)],a=a[b]||(a[b]=[]), +a[a.length]=d);return e}function ba(a,c){if(a){const b=Object.keys(a);for(let d=0,e=b.length;da?1:a?-1:0}function pa(a,c){a=a[M];c=c[M];return ac?1:0}function oa(a,c){const b=M.length;for(let d=0;dc?1:0}function T(a,c,b){return a?{page:a,next:c?""+c:null,result:b}:b}function ha(a,c,b,d,e,f,h){let g,k=[];if(!0===b){b="0";var l=""}else l=b&&b.split(":");const p=a.length;if(1h&&(l=0),l=l||0,g=l+c,g=this.m.length&&(this.C=0),this.m[this.C].postMessage({add:!0,id:a, +content:c}),this.c[f]=""+this.C,b&&b(),this;if(!e){if(this.async&&"function"!==typeof importScripts){let t=this;f=new Promise(function(v){setTimeout(function(){t.add(a,c,null,d,!0);t=null;v()})});if(b)f.then(b);else return f;return this}if(b)return this.add(a,c,null,d,!0),b(),this}c=this.encode(c);if(!c.length)return this;b=this.f;e=O(b)?b(c):c.split(this.split);this.filter&&(e=W(e,this.filter));const n=B();n._ctx=B();const m=e.length,u=this.threshold,q=this.depth,A=this.b,z=this.i,y=this.D;for(let t= +0;tp;x--)l=h.substring(p,x),V(z,n,l,a,v,k,u,A-1)}break;default:if(g=V(z,n,h,a,1,k,u,A-1),q&&1=u)for(g=n._ctx[h]||(n._ctx[h]=B()),h=this.h[h]||(this.h[h]=ia(A-(u||0))),k=t-q,l=t+q+1,0>k&&(k=0),l> +m&&(l=m);kh;d--)e=g[d-1],g[d]=e,f[e]=d;g[h]=c;f[c]=h}}}return b};return a}();return w}(function(){const K={},R="undefined"!==typeof Blob&& +"undefined"!==typeof URL&&URL.createObjectURL;return function(w,L,S,W,P){S=R?URL.createObjectURL(new Blob(["("+S.toString()+")()"],{type:"text/javascript"})):w+".min.js";w+="-"+L;K[w]||(K[w]=[]);K[w][P]=new Worker(S);K[w][P].onmessage=W;return K[w][P]}}()),this); diff --git a/js/groupBy-62b30ac391.min.js b/js/groupBy-62b30ac391.min.js new file mode 100644 index 0000000..808a440 --- /dev/null +++ b/js/groupBy-62b30ac391.min.js @@ -0,0 +1,9 @@ +/** + * Part of [Canivete](http://canivete.leofavre.com/#deepgroupby) + * + * Groups the contents of an array by one or more iteratees. + * Unlike Lodash [`groupBy()`](https://lodash.com/docs/4.17.4#groupBy), + * this function can create nested groups, but cannot receive + * strings for iteratees. + */ +const groupBy=(e,...t)=>{let r=e.map(e=>t.map(t=>t(e))),a={};return r.forEach((t,r)=>{let l=(_simpleAt(a,t)||[]).concat([e[r]]);_simpleSet(a,t,l)}),a},_isPlainObject=e=>null!=e&&"object"==typeof e&&e.constructor==Object,_parsePath=e=>Array.isArray(e)?e:`${e}`.split("."),_simpleAt=(e,t)=>_parsePath(t).reduce((e,t)=>null!=e&&e.hasOwnProperty(t)?e[t]:void 0,e),_simpleSet=(e,t,r)=>_parsePath(t).reduce((e,t,a,l)=>{let s=a===l.length-1;return e.hasOwnProperty(t)&&(s||_isPlainObject(e[t]))||(e[t]={}),s?e[t]=r:e[t]},e); \ No newline at end of file diff --git a/js/mermaid-71505ed73e.min.js b/js/mermaid-71505ed73e.min.js new file mode 100644 index 0000000..8d71a81 --- /dev/null +++ b/js/mermaid-71505ed73e.min.js @@ -0,0 +1,32 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=383)}([function(t,e,n){"use strict";n.r(e);var r=function(t,e){return te?1:t>=e?0:NaN},i=function(t){var e;return 1===t.length&&(e=t,t=function(t,n){return r(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[a],n)>0?i=a:r=a+1}return r}}};var a=i(r),o=a.right,s=a.left,c=o,u=function(t,e){null==e&&(e=l);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);nt?1:e>=t?0:NaN},d=function(t){return null===t?NaN:+t},p=function(t,e){var n,r,i=t.length,a=0,o=-1,s=0,c=0;if(null==e)for(;++o1)return c/(a-1)},g=function(t,e){var n=p(t,e);return n?Math.sqrt(n):n},y=function(t,e){var n,r,i,a=t.length,o=-1;if(null==e){for(;++o=n)for(r=i=n;++on&&(r=n),i=n)for(r=i=n;++on&&(r=n),i0)return[t];if((r=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s=0?(a>=w?10:a>=E?5:a>=T?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=w?10:a>=E?5:a>=T?2:1)}function A(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=w?i*=10:a>=E?i*=5:a>=T&&(i*=2),eh;)f.pop(),--d;var p,g=new Array(d+1);for(i=0;i<=d;++i)(p=g[i]=[]).x0=i>0?f[i-1]:l,p.x1=i=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t);return o+(+n(t[a+1],a+1,t)-o)*(i-a)}},N=function(t,e,n){return t=b.call(t,d).sort(r),Math.ceil((n-e)/(2*(D(t,.75)-D(t,.25))*Math.pow(t.length,-1/3)))},B=function(t,e,n){return Math.ceil((n-e)/(3.5*g(t)*Math.pow(t.length,-1/3)))},L=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a=n)for(r=n;++ar&&(r=n)}else for(;++a=n)for(r=n;++ar&&(r=n);return r},F=function(t,e){var n,r=t.length,i=r,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(r=t[i]).length;--e>=0;)n[--o]=r[e];return n},j=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a=n)for(r=n;++an&&(r=n)}else for(;++a=n)for(r=n;++an&&(r=n);return r},R=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r},Y=function(t,e){if(n=t.length){var n,i,a=0,o=0,s=t[o];for(null==e&&(e=r);++a=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function ct(t,e){for(var n,r=0,i=t.length;r0)for(var n,r,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var _t="http://www.w3.org/1999/xhtml",kt={svg:"http://www.w3.org/2000/svg",xhtml:_t,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},wt=function(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),kt.hasOwnProperty(e)?{space:kt[e],local:t}:t};function Et(t){return function(){this.removeAttribute(t)}}function Tt(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ct(t,e){return function(){this.setAttribute(t,e)}}function St(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function At(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Mt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}var Ot=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function Dt(t){return function(){this.style.removeProperty(t)}}function Nt(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Bt(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Lt(t,e){return t.style.getPropertyValue(e)||Ot(t).getComputedStyle(t,null).getPropertyValue(e)}function Ft(t){return function(){delete this[t]}}function Pt(t,e){return function(){this[t]=e}}function It(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function jt(t){return t.trim().split(/^|\s+/)}function Rt(t){return t.classList||new Yt(t)}function Yt(t){this._node=t,this._names=jt(t.getAttribute("class")||"")}function zt(t,e){for(var n=Rt(t),r=-1,i=e.length;++r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Ht(){this.textContent=""}function Gt(t){return function(){this.textContent=t}}function qt(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Xt(){this.innerHTML=""}function Zt(t){return function(){this.innerHTML=t}}function Jt(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Qt(){this.nextSibling&&this.parentNode.appendChild(this)}function Kt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function te(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===_t&&e.documentElement.namespaceURI===_t?e.createElement(t):e.createElementNS(n,t)}}function ee(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var ne=function(t){var e=wt(t);return(e.local?ee:te)(e)};function re(){return null}function ie(){var t=this.parentNode;t&&t.removeChild(this)}function ae(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function oe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}var se={},ce=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(se={mouseenter:"mouseover",mouseleave:"mouseout"}));function ue(t,e,n){return t=le(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function le(t,e,n){return function(r){var i=ce;ce=r;try{t.call(this,this.__data__,e,n)}finally{ce=i}}}function he(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function fe(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r=_&&(_=x+1);!(b=v[_])&&++_=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=xt);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a1?this.each((null==e?Dt:"function"==typeof e?Bt:Nt)(t,e,null==n?"":n)):Lt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Ft:"function"==typeof e?It:Pt)(t,e)):this.node()[t]},classed:function(t,e){var n=jt(t+"");if(arguments.length<2){for(var r=Rt(this.node()),i=-1,a=n.length;++i>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new qe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new qe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Le.exec(t))?new qe(e[1],e[2],e[3],1):(e=Fe.exec(t))?new qe(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Pe.exec(t))?Ve(e[1],e[2],e[3],e[4]):(e=Ie.exec(t))?Ve(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=je.exec(t))?Qe(e[1],e[2]/100,e[3]/100,1):(e=Re.exec(t))?Qe(e[1],e[2]/100,e[3]/100,e[4]):Ye.hasOwnProperty(t)?We(Ye[t]):"transparent"===t?new qe(NaN,NaN,NaN,0):null}function We(t){return new qe(t>>16&255,t>>8&255,255&t,1)}function Ve(t,e,n,r){return r<=0&&(t=e=n=NaN),new qe(t,e,n,r)}function He(t){return t instanceof Me||(t=$e(t)),t?new qe((t=t.rgb()).r,t.g,t.b,t.opacity):new qe}function Ge(t,e,n,r){return 1===arguments.length?He(t):new qe(t,e,n,null==r?1:r)}function qe(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function Xe(){return"#"+Je(this.r)+Je(this.g)+Je(this.b)}function Ze(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Je(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Qe(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new en(t,e,n,r)}function Ke(t){if(t instanceof en)return new en(t.h,t.s,t.l,t.opacity);if(t instanceof Me||(t=$e(t)),!t)return new en;if(t instanceof en)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=e===a?(n-r)/s+6*(n0&&c<1?0:o,new en(o,s,c,t.opacity)}function tn(t,e,n,r){return 1===arguments.length?Ke(t):new en(t,e,n,null==r?1:r)}function en(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function nn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function rn(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}Se(Me,$e,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:ze,formatHex:ze,formatHsl:function(){return Ke(this).formatHsl()},formatRgb:Ue,toString:Ue}),Se(qe,Ge,Ae(Me,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new qe(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new qe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Xe,formatHex:Xe,formatRgb:Ze,toString:Ze})),Se(en,tn,Ae(Me,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new en(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new en(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new qe(nn(t>=240?t-240:t+120,i,r),nn(t,i,r),nn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var an=function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r180||n<-180?n-360*Math.round(n/360):n):sn(isNaN(t)?e:t)}function ln(t){return 1==(t=+t)?hn:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):sn(isNaN(e)?n:e)}}function hn(t,e){var n=e-t;return n?cn(t,n):sn(isNaN(t)?e:t)}var fn=function t(e){var n=ln(e);function r(t,e){var r=n((t=Ge(t)).r,(e=Ge(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),o=hn(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return r.gamma=t,r}(1);function dn(t){return function(e){var n,r,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,c.push({i:o,x:_n(n,r)})),a=En.lastIndex;return a=0&&e._call.call(null,t),e=e._next;--Bn}function Hn(){In=(Pn=Rn.now())+jn,Bn=Ln=0;try{Vn()}finally{Bn=0,function(){var t,e,n=Tn,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Tn=e);Cn=t,qn(r)}(),In=0}}function Gn(){var t=Rn.now(),e=t-Pn;e>1e3&&(jn-=e,Pn=t)}function qn(t){Bn||(Ln&&(Ln=clearTimeout(Ln)),t-In>24?(t<1/0&&(Ln=setTimeout(Hn,t-Rn.now()-jn)),Fn&&(Fn=clearInterval(Fn))):(Fn||(Pn=Rn.now(),Fn=setInterval(Gn,1e3)),Bn=1,Yn(Hn)))}$n.prototype=Wn.prototype={constructor:$n,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?zn():+n)+(null==e?0:+e),this._next||Cn===this||(Cn?Cn._next=this:Tn=this,Cn=this),this._call=t,this._time=n,qn()},stop:function(){this._call&&(this._call=null,this._time=1/0,qn())}};var Xn=function(t,e,n){var r=new $n;return e=null==e?0:+e,r.restart((function(n){r.stop(),t(n+e)}),e,n),r},Zn=lt("start","end","cancel","interrupt"),Jn=[],Qn=function(t,e,n,r,i,a){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function a(c){var u,l,h,f;if(1!==n.state)return s();for(u in i)if((f=i[u]).name===n.name){if(3===f.state)return Xn(a);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[u]):+u0)throw new Error("too late; already scheduled");return n}function tr(t,e){var n=er(t,e);if(n.state>3)throw new Error("too late; already running");return n}function er(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}var nr,rr,ir,ar,or=function(t,e){var n,r,i,a=t.__transition,o=!0;if(a){for(i in e=null==e?null:e+"",a)(n=a[i]).name===e?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete a[i]):o=!1;o&&delete t.__transition}},sr=180/Math.PI,cr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},ur=function(t,e,n,r,i,a){var o,s,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:_n(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(a.rotate,o.rotate,s,c),function(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:_n(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(a.skewX,o.skewX,s,c),function(t,e,n,r,a,o){if(t!==n||e!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:_n(t,n)},{i:s-2,x:_n(e,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,c),a=o=null,function(t){for(var e,n=-1,r=c.length;++n=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Kn:tr;return function(){var o=a(this,t),s=o.on;s!==r&&(i=(r=s).copy()).on(e,n),o.on=i}}var Br=_e.prototype.constructor;function Lr(t){return function(){this.style.removeProperty(t)}}function Fr(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Pr(t,e,n){var r,i;function a(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&Fr(t,a,n)),r}return a._value=e,a}function Ir(t){return function(e){this.textContent=t.call(this,e)}}function jr(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&Ir(r)),e}return r._value=t,r}var Rr=0;function Yr(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function zr(t){return _e().transition(t)}function Ur(){return++Rr}var $r=_e.prototype;function Wr(t){return t*t*t}function Vr(t){return--t*t*t+1}function Hr(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}Yr.prototype=zr.prototype={constructor:Yr,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=ft(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o1&&n.name===e)return new Yr([[t]],Xr,e,+r);return null},Jr=function(t){return function(){return t}},Qr=function(t,e,n){this.target=t,this.type=e,this.selection=n};function Kr(){ce.stopImmediatePropagation()}var ti=function(){ce.preventDefault(),ce.stopImmediatePropagation()},ei={name:"drag"},ni={name:"space"},ri={name:"handle"},ii={name:"center"};function ai(t){return[+t[0],+t[1]]}function oi(t){return[ai(t[0]),ai(t[1])]}function si(t){return function(e){return Dn(e,ce.touches,t)}}var ci={name:"x",handles:["w","e"].map(yi),input:function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},ui={name:"y",handles:["n","s"].map(yi),input:function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},li={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(yi),input:function(t){return null==t?null:oi(t)},output:function(t){return t}},hi={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},fi={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},di={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},pi={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},gi={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function yi(t){return{type:t}}function vi(){return!ce.ctrlKey&&!ce.button}function mi(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function bi(){return navigator.maxTouchPoints||"ontouchstart"in this}function xi(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function _i(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function ki(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function wi(){return Ci(ci)}function Ei(){return Ci(ui)}var Ti=function(){return Ci(li)};function Ci(t){var e,n=mi,r=vi,i=bi,a=!0,o=lt("start","brush","end"),s=6;function c(e){var n=e.property("__brush",g).selectAll(".overlay").data([yi("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",hi.overlay).merge(n).each((function(){var t=xi(this).extent;ke(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),e.selectAll(".selection").data([yi("selection")]).enter().append("rect").attr("class","selection").attr("cursor",hi.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=e.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return hi[t.type]})),e.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(i).on("touchstart.brush",f).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function u(){var t=ke(this),e=xi(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?e[1][0]-s/2:e[0][0]-s/2})).attr("y",(function(t){return"s"===t.type[0]?e[1][1]-s/2:e[0][1]-s/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+s:s})).attr("height",(function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+s:s}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function l(t,e,n){return!n&&t.__brush.emitter||new h(t,e)}function h(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function f(){if((!e||ce.touches)&&r.apply(this,arguments)){var n,i,o,s,c,h,f,d,p,g,y,v=this,m=ce.target.__data__.type,b="selection"===(a&&ce.metaKey?m="overlay":m)?ei:a&&ce.altKey?ii:ri,x=t===ui?null:pi[m],_=t===ci?null:gi[m],k=xi(v),w=k.extent,E=k.selection,T=w[0][0],C=w[0][1],S=w[1][0],A=w[1][1],M=0,O=0,D=x&&_&&a&&ce.shiftKey,N=ce.touches?si(ce.changedTouches[0].identifier):Nn,B=N(v),L=B,F=l(v,arguments,!0).beforestart();"overlay"===m?(E&&(p=!0),k.selection=E=[[n=t===ui?T:B[0],o=t===ci?C:B[1]],[c=t===ui?S:n,f=t===ci?A:o]]):(n=E[0][0],o=E[0][1],c=E[1][0],f=E[1][1]),i=n,s=o,h=c,d=f;var P=ke(v).attr("pointer-events","none"),I=P.selectAll(".overlay").attr("cursor",hi[m]);if(ce.touches)F.moved=R,F.ended=z;else{var j=ke(ce.view).on("mousemove.brush",R,!0).on("mouseup.brush",z,!0);a&&j.on("keydown.brush",U,!0).on("keyup.brush",$,!0),Te(ce.view)}Kr(),or(v),u.call(v),F.start()}function R(){var t=N(v);!D||g||y||(Math.abs(t[0]-L[0])>Math.abs(t[1]-L[1])?y=!0:g=!0),L=t,p=!0,ti(),Y()}function Y(){var t;switch(M=L[0]-B[0],O=L[1]-B[1],b){case ni:case ei:x&&(M=Math.max(T-n,Math.min(S-c,M)),i=n+M,h=c+M),_&&(O=Math.max(C-o,Math.min(A-f,O)),s=o+O,d=f+O);break;case ri:x<0?(M=Math.max(T-n,Math.min(S-n,M)),i=n+M,h=c):x>0&&(M=Math.max(T-c,Math.min(S-c,M)),i=n,h=c+M),_<0?(O=Math.max(C-o,Math.min(A-o,O)),s=o+O,d=f):_>0&&(O=Math.max(C-f,Math.min(A-f,O)),s=o,d=f+O);break;case ii:x&&(i=Math.max(T,Math.min(S,n-M*x)),h=Math.max(T,Math.min(S,c+M*x))),_&&(s=Math.max(C,Math.min(A,o-O*_)),d=Math.max(C,Math.min(A,f+O*_)))}h0&&(n=i-M),_<0?f=d-O:_>0&&(o=s-O),b=ni,I.attr("cursor",hi.selection),Y());break;default:return}ti()}function $(){switch(ce.keyCode){case 16:D&&(g=y=D=!1,Y());break;case 18:b===ii&&(x<0?c=h:x>0&&(n=i),_<0?f=d:_>0&&(o=s),b=ri,Y());break;case 32:b===ni&&(ce.altKey?(x&&(c=h-M*x,n=i+M*x),_&&(f=d-O*_,o=s+O*_),b=ii):(x<0?c=h:x>0&&(n=i),_<0?f=d:_>0&&(o=s),b=ri),I.attr("cursor",hi[m]),Y());break;default:return}ti()}}function d(){l(this,arguments).moved()}function p(){l(this,arguments).ended()}function g(){var e=this.__brush||{selection:null};return e.extent=oi(n.apply(this,arguments)),e.dim=t,e}return c.move=function(e,n){e.selection?e.on("start.brush",(function(){l(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){l(this,arguments).end()})).tween("brush",(function(){var e=this,r=e.__brush,i=l(e,arguments),a=r.selection,o=t.input("function"==typeof n?n.apply(this,arguments):n,r.extent),s=An(a,o);function c(t){r.selection=1===t&&null===o?null:s(t),u.call(e),i.brush()}return null!==a&&null!==o?c:c(1)})):e.each((function(){var e=this,r=arguments,i=e.__brush,a=t.input("function"==typeof n?n.apply(e,r):n,i.extent),o=l(e,r).beforestart();or(e),i.selection=null===a?null:a,u.call(e),o.start().brush().end()}))},c.clear=function(t){c.move(t,null)},h.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit("start")):this.emit("brush"),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(e){pe(new Qr(c,e,t.output(this.state.selection)),o.apply,o,[e,this.that,this.args])}},c.extent=function(t){return arguments.length?(n="function"==typeof t?t:Jr(oi(t)),c):n},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:Jr(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:Jr(!!t),c):i},c.handleSize=function(t){return arguments.length?(s=+t,c):s},c.keyModifiers=function(t){return arguments.length?(a=!!t,c):a},c.on=function(){var t=o.on.apply(o,arguments);return t===o?c:t},c}var Si=Math.cos,Ai=Math.sin,Mi=Math.PI,Oi=Mi/2,Di=2*Mi,Ni=Math.max;function Bi(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}var Li=function(){var t=0,e=null,n=null,r=null;function i(i){var a,o,s,c,u,l,h=i.length,f=[],d=k(h),p=[],g=[],y=g.groups=new Array(h),v=new Array(h*h);for(a=0,u=-1;++u1e-6)if(Math.abs(l*s-c*u)>1e-6&&i){var f=n-a,d=r-o,p=s*s+c*c,g=f*f+d*d,y=Math.sqrt(p),v=Math.sqrt(h),m=i*Math.tan((Ii-Math.acos((p+h-g)/(2*y*v)))/2),b=m/v,x=m/y;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(e+b*l)),this._+="A"+i+","+i+",0,0,"+ +(l*f>u*d)+","+(this._x1=t+x*s)+","+(this._y1=e+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,i,a){t=+t,e=+e,a=!!a;var o=(n=+n)*Math.cos(r),s=n*Math.sin(r),c=t+o,u=e+s,l=1^a,h=a?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+c+","+u:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-u)>1e-6)&&(this._+="L"+c+","+u),n&&(h<0&&(h=h%ji+ji),h>Ri?this._+="A"+n+","+n+",0,1,"+l+","+(t-o)+","+(e-s)+"A"+n+","+n+",0,1,"+l+","+(this._x1=c)+","+(this._y1=u):h>1e-6&&(this._+="A"+n+","+n+",0,"+ +(h>=Ii)+","+l+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var Ui=zi;function $i(t){return t.source}function Wi(t){return t.target}function Vi(t){return t.radius}function Hi(t){return t.startAngle}function Gi(t){return t.endAngle}var qi=function(){var t=$i,e=Wi,n=Vi,r=Hi,i=Gi,a=null;function o(){var o,s=Fi.call(arguments),c=t.apply(this,s),u=e.apply(this,s),l=+n.apply(this,(s[0]=c,s)),h=r.apply(this,s)-Oi,f=i.apply(this,s)-Oi,d=l*Si(h),p=l*Ai(h),g=+n.apply(this,(s[0]=u,s)),y=r.apply(this,s)-Oi,v=i.apply(this,s)-Oi;if(a||(a=o=Ui()),a.moveTo(d,p),a.arc(0,0,l,h,f),h===y&&f===v||(a.quadraticCurveTo(0,0,g*Si(y),g*Ai(y)),a.arc(0,0,g,y,v)),a.quadraticCurveTo(0,0,d,p),a.closePath(),o)return a=null,o+""||null}return o.radius=function(t){return arguments.length?(n="function"==typeof t?t:Pi(+t),o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Pi(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Pi(+t),o):i},o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(t){return arguments.length?(e=t,o):e},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o};function Xi(){}function Zi(t,e){var n=new Xi;if(t instanceof Xi)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var r,i=-1,a=t.length;if(null==e)for(;++i=r.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var c,u,l,h=-1,f=n.length,d=r[i++],p=Ji(),g=o();++hr.length)return n;var o,s=i[a-1];return null!=e&&a>=r.length?o=n.entries():(o=[],n.each((function(e,n){o.push({key:n,values:t(e,a)})}))),null!=s?o.sort((function(t,e){return s(t.key,e.key)})):o}(a(t,0,ea,na),0)},key:function(t){return r.push(t),n},sortKeys:function(t){return i[r.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}};function Ki(){return{}}function ta(t,e,n){t[e]=n}function ea(){return Ji()}function na(t,e,n){t.set(e,n)}function ra(){}var ia=Ji.prototype;function aa(t,e){var n=new ra;if(t instanceof ra)t.each((function(t){n.add(t)}));else if(t){var r=-1,i=t.length;if(null==e)for(;++r6/29*(6/29)*(6/29)?Math.pow(t,1/3):t/(6/29*3*(6/29))+4/29}function va(t){return t>6/29?t*t*t:6/29*3*(6/29)*(t-4/29)}function ma(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ba(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function xa(t){if(t instanceof wa)return new wa(t.h,t.c,t.l,t.opacity);if(t instanceof ga||(t=fa(t)),0===t.a&&0===t.b)return new wa(NaN,0r!=d>r&&n<(f-u)*(r-l)/(d-l)+u&&(i=-i)}return i}function Ia(t,e,n){var r,i,a,o;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&(i=t[r=+(t[0]===e[0])],a=n[r],o=e[r],i<=a&&a<=o||o<=a&&a<=i)}var ja=function(){},Ra=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Ya=function(){var t=1,e=1,n=M,r=s;function i(t){var e=n(t);if(Array.isArray(e))e=e.slice().sort(Ba);else{var r=y(t),i=r[0],o=r[1];e=A(i,o,e),e=k(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map((function(e){return a(t,e)}))}function a(n,i){var a=[],s=[];return function(n,r,i){var a,s,c,u,l,h,f=new Array,d=new Array;a=s=-1,u=n[0]>=r,Ra[u<<1].forEach(p);for(;++a=r,Ra[c|u<<1].forEach(p);Ra[u<<0].forEach(p);for(;++s=r,l=n[s*t]>=r,Ra[u<<1|l<<2].forEach(p);++a=r,h=l,l=n[s*t+a+1]>=r,Ra[c|u<<1|l<<2|h<<3].forEach(p);Ra[u|l<<3].forEach(p)}a=-1,l=n[s*t]>=r,Ra[l<<2].forEach(p);for(;++a=r,Ra[l<<2|h<<3].forEach(p);function p(t){var e,n,r=[t[0][0]+a,t[0][1]+s],c=[t[1][0]+a,t[1][1]+s],u=o(r),l=o(c);(e=d[u])?(n=f[l])?(delete d[e.end],delete f[n.start],e===n?(e.ring.push(c),i(e.ring)):f[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete d[e.end],e.ring.push(c),d[e.end=l]=e):(e=f[l])?(n=d[u])?(delete f[e.start],delete d[n.end],e===n?(e.ring.push(c),i(e.ring)):f[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete f[e.start],e.ring.unshift(r),f[e.start=u]=e):f[u]=d[l]={start:u,end:l,ring:[r,c]}}Ra[l<<3].forEach(p)}(n,i,(function(t){r(t,n,i),function(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e0?a.push([t]):s.push(t)})),s.forEach((function(t){for(var e,n=0,r=a.length;n0&&o0&&s0&&a>0))throw new Error("invalid size");return t=r,e=a,i},i.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?La(Na.call(t)):La(t),i):n},i.smooth=function(t){return arguments.length?(r=t?s:ja,i):r===s},i};function za(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o=n&&(s>=a&&(c-=t.data[s-a+o*r]),e.data[s-n+o*r]=c/Math.min(s+1,r-1+a-s,a))}function Ua(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o=n&&(s>=a&&(c-=t.data[o+(s-a)*r]),e.data[o+(s-n)*r]=c/Math.min(s+1,i-1+a-s,a))}function $a(t){return t[0]}function Wa(t){return t[1]}function Va(){return 1}var Ha=function(){var t=$a,e=Wa,n=Va,r=960,i=500,a=20,o=2,s=3*a,c=r+2*s>>o,u=i+2*s>>o,l=La(20);function h(r){var i=new Float32Array(c*u),h=new Float32Array(c*u);r.forEach((function(r,a,l){var h=+t(r,a,l)+s>>o,f=+e(r,a,l)+s>>o,d=+n(r,a,l);h>=0&&h=0&&f>o),Ua({width:c,height:u,data:h},{width:c,height:u,data:i},a>>o),za({width:c,height:u,data:i},{width:c,height:u,data:h},a>>o),Ua({width:c,height:u,data:h},{width:c,height:u,data:i},a>>o),za({width:c,height:u,data:i},{width:c,height:u,data:h},a>>o),Ua({width:c,height:u,data:h},{width:c,height:u,data:i},a>>o);var d=l(i);if(!Array.isArray(d)){var p=L(i);d=A(0,p,d),(d=k(0,Math.floor(p/d)*d,d)).shift()}return Ya().thresholds(d).size([c,u])(i).map(f)}function f(t){return t.value*=Math.pow(2,-2*o),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,o)-s,t[1]=t[1]*Math.pow(2,o)-s}function y(){return c=r+2*(s=3*a)>>o,u=i+2*s>>o,h}return h.x=function(e){return arguments.length?(t="function"==typeof e?e:La(+e),h):t},h.y=function(t){return arguments.length?(e="function"==typeof t?t:La(+t),h):e},h.weight=function(t){return arguments.length?(n="function"==typeof t?t:La(+t),h):n},h.size=function(t){if(!arguments.length)return[r,i];var e=Math.ceil(t[0]),n=Math.ceil(t[1]);if(!(e>=0||e>=0))throw new Error("invalid size");return r=e,i=n,y()},h.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return o=Math.floor(Math.log(t)/Math.LN2),y()},h.thresholds=function(t){return arguments.length?(l="function"==typeof t?t:Array.isArray(t)?La(Na.call(t)):La(t),h):l},h.bandwidth=function(t){if(!arguments.length)return Math.sqrt(a*(a+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return a=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},h},Ga=function(t){return function(){return t}};function qa(t,e,n,r,i,a,o,s,c,u){this.target=t,this.type=e,this.subject=n,this.identifier=r,this.active=i,this.x=a,this.y=o,this.dx=s,this.dy=c,this._=u}function Xa(){return!ce.ctrlKey&&!ce.button}function Za(){return this.parentNode}function Ja(t){return null==t?{x:ce.x,y:ce.y}:t}function Qa(){return navigator.maxTouchPoints||"ontouchstart"in this}qa.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Ka=function(){var t,e,n,r,i=Xa,a=Za,o=Ja,s=Qa,c={},u=lt("start","drag","end"),l=0,h=0;function f(t){t.on("mousedown.drag",d).filter(s).on("touchstart.drag",y).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(){if(!r&&i.apply(this,arguments)){var o=b("mouse",a.apply(this,arguments),Nn,this,arguments);o&&(ke(ce.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Te(ce.view),we(),n=!1,t=ce.clientX,e=ce.clientY,o("start"))}}function p(){if(Ee(),!n){var r=ce.clientX-t,i=ce.clientY-e;n=r*r+i*i>h}c.mouse("drag")}function g(){ke(ce.view).on("mousemove.drag mouseup.drag",null),Ce(ce.view,n),Ee(),c.mouse("end")}function y(){if(i.apply(this,arguments)){var t,e,n=ce.changedTouches,r=a.apply(this,arguments),o=n.length;for(t=0;t9999?"+"+io(e,6):io(e,4))+"-"+io(t.getUTCMonth()+1,2)+"-"+io(t.getUTCDate(),2)+(a?"T"+io(n,2)+":"+io(r,2)+":"+io(i,2)+"."+io(a,3)+"Z":i?"T"+io(n,2)+":"+io(r,2)+":"+io(i,2)+"Z":r||n?"T"+io(n,2)+":"+io(r,2)+"Z":"")}var oo=function(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function r(t,e){var r,i=[],a=t.length,o=0,s=0,c=a<=0,u=!1;function l(){if(c)return eo;if(u)return u=!1,to;var e,r,i=o;if(34===t.charCodeAt(i)){for(;o++=a?c=!0:10===(r=t.charCodeAt(o++))?u=!0:13===r&&(u=!0,10===t.charCodeAt(o)&&++o),t.slice(i+1,e-1).replace(/""/g,'"')}for(;o=(a=(g+v)/2))?g=a:v=a,(l=n>=(o=(y+m)/2))?y=o:m=o,i=d,!(d=d[h=l<<1|u]))return i[h]=p,t;if(s=+t._x.call(null,d.data),c=+t._y.call(null,d.data),e===s&&n===c)return p.next=d,i?i[h]=p:t._root=p,t;do{i=i?i[h]=new Array(4):t._root=new Array(4),(u=e>=(a=(g+v)/2))?g=a:v=a,(l=n>=(o=(y+m)/2))?y=o:m=o}while((h=l<<1|u)==(f=(c>=o)<<1|s>=a));return i[f]=d,i[h]=p,t}var _s=function(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i};function ks(t){return t[0]}function ws(t){return t[1]}function Es(t,e,n){var r=new Ts(null==e?ks:e,null==n?ws:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Ts(t,e,n,r,i,a){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function Cs(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Ss=Es.prototype=Ts.prototype;function As(t){return t.x+t.vx}function Ms(t){return t.y+t.vy}Ss.copy=function(){var t,e,n=new Ts(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=Cs(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=Cs(e));return n},Ss.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return xs(this.cover(e,n),e,n,t)},Ss.addAll=function(t){var e,n,r,i,a=t.length,o=new Array(a),s=new Array(a),c=1/0,u=1/0,l=-1/0,h=-1/0;for(n=0;nl&&(l=r),ih&&(h=i));if(c>l||u>h)return this;for(this.cover(c,u).cover(l,h),n=0;nt||t>=i||r>e||e>=a;)switch(s=(ef||(a=c.y0)>d||(o=c.x1)=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=c)}else{var m=t-+this._x.call(null,g.data),b=e-+this._y.call(null,g.data),x=m*m+b*b;if(x=(s=(p+y)/2))?p=s:y=s,(l=o>=(c=(g+v)/2))?g=c:v=c,e=d,!(d=d[h=l<<1|u]))return this;if(!d.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(n=e,f=h)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):e?(i?e[h]=i:delete e[h],(d=e[0]||e[1]||e[2]||e[3])&&d===(e[3]||e[2]||e[1]||e[0])&&!d.length&&(n?n[f]=d:this._root=d),this):(this._root=i,this)},Ss.removeAll=function(t){for(var e=0,n=t.length;ec+d||iu+d||as.index){var p=c-o.x-o.vx,g=u-o.y-o.vy,y=p*p+g*g;yt.r&&(t.r=t[e].r)}function s(){if(e){var r,i,a=e.length;for(n=new Array(a),r=0;r1?(null==n?s.remove(t):s.set(t,d(n)),e):s.get(t)},find:function(e,n,r){var i,a,o,s,c,u=0,l=t.length;for(null==r?r=1/0:r*=r,u=0;u1?(u.on(t,n),e):u.on(t)}}},js=function(){var t,e,n,r,i=ms(-30),a=1,o=1/0,s=.81;function c(r){var i,a=t.length,o=Es(t,Ls,Fs).visitAfter(l);for(n=r,i=0;i=o)){(t.data!==e||t.next)&&(0===l&&(d+=(l=bs())*l),0===h&&(d+=(h=bs())*h),d1?r[0]+r.slice(2):r,+t.slice(n+1)]},$s=function(t){return(t=Us(Math.abs(t)))?t[1]:NaN},Ws=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vs(t){if(!(e=Ws.exec(t)))throw new Error("invalid format: "+t);var e;return new Hs({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Hs(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}Vs.prototype=Hs.prototype,Hs.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Gs,qs,Xs,Zs,Js=function(t,e){var n=Us(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Qs={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Js(100*t,e)},r:Js,s:function(t,e){var n=Us(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(Gs=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Us(t,Math.max(0,e+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Ks=function(t){return t},tc=Array.prototype.map,ec=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],nc=function(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Ks:(e=tc.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var i=t.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(t.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(n)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?Ks:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(tc.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",u=void 0===t.minus?"-":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=Vs(t)).fill,n=t.align,h=t.sign,f=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,m=t.type;"n"===m?(g=!0,m="g"):Qs[m]||(void 0===y&&(y=12),v=!0,m="g"),(d||"0"===e&&"="===n)&&(d=!0,e="0",n="=");var b="$"===f?i:"#"===f&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",x="$"===f?a:/[%p]/.test(m)?c:"",_=Qs[m],k=/[defgprs%]/.test(m);function w(t){var i,a,c,f=b,w=x;if("c"===m)w=_(t)+w,t="";else{var E=(t=+t)<0;if(t=isNaN(t)?l:_(Math.abs(t),y),v&&(t=function(t){t:for(var e,n=t.length,r=1,i=-1;r0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),E&&0==+t&&(E=!1),f=(E?"("===h?h:u:"-"===h||"("===h?"":h)+f,w=("s"===m?ec[8+Gs/3]:"")+w+(E&&"("===h?")":""),k)for(i=-1,a=t.length;++i(c=t.charCodeAt(i))||c>57){w=(46===c?o+t.slice(i+1):t.slice(i))+w,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var T=f.length+t.length+w.length,C=T>1)+f+t+w+C.slice(T);break;default:t=C+f+t+w}return s(t)}return y=void 0===y?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),w.toString=function(){return t+""},w}return{format:h,formatPrefix:function(t,e){var n=h(((t=Vs(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor($s(e)/3))),i=Math.pow(10,-r),a=ec[8+r/3];return function(t){return n(i*t)+a}}}};function rc(t){return qs=nc(t),Xs=qs.format,Zs=qs.formatPrefix,qs}rc({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var ic=function(t){return Math.max(0,-$s(Math.abs(t)))},ac=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor($s(e)/3)))-$s(Math.abs(t)))},oc=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,$s(e)-$s(t))+1},sc=function(){return new cc};function cc(){this.reset()}cc.prototype={constructor:cc,reset:function(){this.s=this.t=0},add:function(t){lc(uc,t,this.t),lc(this,uc.s,this.s),this.s?this.t+=uc.t:this.s=uc.t},valueOf:function(){return this.s}};var uc=new cc;function lc(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var hc=Math.PI,fc=hc/2,dc=hc/4,pc=2*hc,gc=180/hc,yc=hc/180,vc=Math.abs,mc=Math.atan,bc=Math.atan2,xc=Math.cos,_c=Math.ceil,kc=Math.exp,wc=(Math.floor,Math.log),Ec=Math.pow,Tc=Math.sin,Cc=Math.sign||function(t){return t>0?1:t<0?-1:0},Sc=Math.sqrt,Ac=Math.tan;function Mc(t){return t>1?0:t<-1?hc:Math.acos(t)}function Oc(t){return t>1?fc:t<-1?-fc:Math.asin(t)}function Dc(t){return(t=Tc(t/2))*t}function Nc(){}function Bc(t,e){t&&Fc.hasOwnProperty(t.type)&&Fc[t.type](t,e)}var Lc={Feature:function(t,e){Bc(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r=0?1:-1,i=r*n,a=xc(e=(e*=yc)/2+dc),o=Tc(e),s=Uc*o,c=zc*a+s*xc(i),u=s*r*Tc(i);Wc.add(bc(u,c)),Yc=t,zc=a,Uc=o}var Jc=function(t){return Vc.reset(),$c(t,Hc),2*Vc};function Qc(t){return[bc(t[1],t[0]),Oc(t[2])]}function Kc(t){var e=t[0],n=t[1],r=xc(n);return[r*xc(e),r*Tc(e),Tc(n)]}function tu(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function eu(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function nu(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function ru(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function iu(t){var e=Sc(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var au,ou,su,cu,uu,lu,hu,fu,du,pu,gu=sc(),yu={point:vu,lineStart:bu,lineEnd:xu,polygonStart:function(){yu.point=_u,yu.lineStart=ku,yu.lineEnd=wu,gu.reset(),Hc.polygonStart()},polygonEnd:function(){Hc.polygonEnd(),yu.point=vu,yu.lineStart=bu,yu.lineEnd=xu,Wc<0?(au=-(su=180),ou=-(cu=90)):gu>1e-6?cu=90:gu<-1e-6&&(ou=-90),pu[0]=au,pu[1]=su},sphere:function(){au=-(su=180),ou=-(cu=90)}};function vu(t,e){du.push(pu=[au=t,su=t]),ecu&&(cu=e)}function mu(t,e){var n=Kc([t*yc,e*yc]);if(fu){var r=eu(fu,n),i=eu([r[1],-r[0],0],r);iu(i),i=Qc(i);var a,o=t-uu,s=o>0?1:-1,c=i[0]*gc*s,u=vc(o)>180;u^(s*uucu&&(cu=a):u^(s*uu<(c=(c+360)%360-180)&&ccu&&(cu=e)),u?tEu(au,su)&&(su=t):Eu(t,su)>Eu(au,su)&&(au=t):su>=au?(tsu&&(su=t)):t>uu?Eu(au,t)>Eu(au,su)&&(su=t):Eu(t,su)>Eu(au,su)&&(au=t)}else du.push(pu=[au=t,su=t]);ecu&&(cu=e),fu=n,uu=t}function bu(){yu.point=mu}function xu(){pu[0]=au,pu[1]=su,yu.point=vu,fu=null}function _u(t,e){if(fu){var n=t-uu;gu.add(vc(n)>180?n+(n>0?360:-360):n)}else lu=t,hu=e;Hc.point(t,e),mu(t,e)}function ku(){Hc.lineStart()}function wu(){_u(lu,hu),Hc.lineEnd(),vc(gu)>1e-6&&(au=-(su=180)),pu[0]=au,pu[1]=su,fu=null}function Eu(t,e){return(e-=t)<0?e+360:e}function Tu(t,e){return t[0]-e[0]}function Cu(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:eEu(r[0],r[1])&&(r[1]=i[1]),Eu(i[0],r[1])>Eu(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,e=0,r=a[n=a.length-1];e<=n;r=i,++e)i=a[e],(s=Eu(r[1],i[0]))>o&&(o=s,au=i[0],su=r[1])}return du=pu=null,au===1/0||ou===1/0?[[NaN,NaN],[NaN,NaN]]:[[au,ou],[su,cu]]},Wu={sphere:Nc,point:Vu,lineStart:Gu,lineEnd:Zu,polygonStart:function(){Wu.lineStart=Ju,Wu.lineEnd=Qu},polygonEnd:function(){Wu.lineStart=Gu,Wu.lineEnd=Zu}};function Vu(t,e){t*=yc;var n=xc(e*=yc);Hu(n*xc(t),n*Tc(t),Tc(e))}function Hu(t,e,n){++Su,Mu+=(t-Mu)/Su,Ou+=(e-Ou)/Su,Du+=(n-Du)/Su}function Gu(){Wu.point=qu}function qu(t,e){t*=yc;var n=xc(e*=yc);Yu=n*xc(t),zu=n*Tc(t),Uu=Tc(e),Wu.point=Xu,Hu(Yu,zu,Uu)}function Xu(t,e){t*=yc;var n=xc(e*=yc),r=n*xc(t),i=n*Tc(t),a=Tc(e),o=bc(Sc((o=zu*a-Uu*i)*o+(o=Uu*r-Yu*a)*o+(o=Yu*i-zu*r)*o),Yu*r+zu*i+Uu*a);Au+=o,Nu+=o*(Yu+(Yu=r)),Bu+=o*(zu+(zu=i)),Lu+=o*(Uu+(Uu=a)),Hu(Yu,zu,Uu)}function Zu(){Wu.point=Vu}function Ju(){Wu.point=Ku}function Qu(){tl(ju,Ru),Wu.point=Vu}function Ku(t,e){ju=t,Ru=e,t*=yc,e*=yc,Wu.point=tl;var n=xc(e);Yu=n*xc(t),zu=n*Tc(t),Uu=Tc(e),Hu(Yu,zu,Uu)}function tl(t,e){t*=yc;var n=xc(e*=yc),r=n*xc(t),i=n*Tc(t),a=Tc(e),o=zu*a-Uu*i,s=Uu*r-Yu*a,c=Yu*i-zu*r,u=Sc(o*o+s*s+c*c),l=Oc(u),h=u&&-l/u;Fu+=h*o,Pu+=h*s,Iu+=h*c,Au+=l,Nu+=l*(Yu+(Yu=r)),Bu+=l*(zu+(zu=i)),Lu+=l*(Uu+(Uu=a)),Hu(Yu,zu,Uu)}var el=function(t){Su=Au=Mu=Ou=Du=Nu=Bu=Lu=Fu=Pu=Iu=0,$c(t,Wu);var e=Fu,n=Pu,r=Iu,i=e*e+n*n+r*r;return i<1e-12&&(e=Nu,n=Bu,r=Lu,Au<1e-6&&(e=Mu,n=Ou,r=Du),(i=e*e+n*n+r*r)<1e-12)?[NaN,NaN]:[bc(n,e)*gc,Oc(r/Sc(i))*gc]},nl=function(t){return function(){return t}},rl=function(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,r){return(n=e.invert(n,r))&&t.invert(n[0],n[1])}),n};function il(t,e){return[vc(t)>hc?t+Math.round(-t/pc)*pc:t,e]}function al(t,e,n){return(t%=pc)?e||n?rl(sl(t),cl(e,n)):sl(t):e||n?cl(e,n):il}function ol(t){return function(e,n){return[(e+=t)>hc?e-pc:e<-hc?e+pc:e,n]}}function sl(t){var e=ol(t);return e.invert=ol(-t),e}function cl(t,e){var n=xc(t),r=Tc(t),i=xc(e),a=Tc(e);function o(t,e){var o=xc(e),s=xc(t)*o,c=Tc(t)*o,u=Tc(e),l=u*n+s*r;return[bc(c*i-l*a,s*n-u*r),Oc(l*i+c*a)]}return o.invert=function(t,e){var o=xc(e),s=xc(t)*o,c=Tc(t)*o,u=Tc(e),l=u*i-c*a;return[bc(c*i+u*a,s*n+l*r),Oc(l*n-s*r)]},o}il.invert=il;var ul=function(t){function e(e){return(e=t(e[0]*yc,e[1]*yc))[0]*=gc,e[1]*=gc,e}return t=al(t[0]*yc,t[1]*yc,t.length>2?t[2]*yc:0),e.invert=function(e){return(e=t.invert(e[0]*yc,e[1]*yc))[0]*=gc,e[1]*=gc,e},e};function ll(t,e,n,r,i,a){if(n){var o=xc(e),s=Tc(e),c=r*n;null==i?(i=e+r*pc,a=e-c/2):(i=hl(o,i),a=hl(o,a),(r>0?ia)&&(i+=r*pc));for(var u,l=i;r>0?l>a:l1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}},pl=function(t,e){return vc(t[0]-e[0])<1e-6&&vc(t[1]-e[1])<1e-6};function gl(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}var yl=function(t,e,n,r,i){var a,o,s=[],c=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,r=t[0],o=t[e];if(pl(r,o)){for(i.lineStart(),a=0;a=0;--a)i.point((l=u[a])[0],l[1]);else r(f.x,f.p.x,-1,i);f=f.p}u=(f=f.o).z,d=!d}while(!f.v);i.lineEnd()}}};function vl(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r=0?1:-1,T=E*w,C=T>hc,S=g*_;if(ml.add(bc(S*E*Tc(T),y*k+S*xc(T))),o+=C?w+E*pc:w,C^d>=n^b>=n){var A=eu(Kc(f),Kc(m));iu(A);var M=eu(a,A);iu(M);var O=(C^w>=0?-1:1)*Oc(M[2]);(r>O||r===O&&(A[0]||A[1]))&&(s+=C^w>=0?1:-1)}}return(o<-1e-6||o<1e-6&&ml<-1e-6)^1&s},_l=function(t,e,n,r){return function(i){var a,o,s,c=e(i),u=dl(),l=e(u),h=!1,f={point:d,lineStart:g,lineEnd:y,polygonStart:function(){f.point=v,f.lineStart=m,f.lineEnd=b,o=[],a=[]},polygonEnd:function(){f.point=d,f.lineStart=g,f.lineEnd=y,o=I(o);var t=xl(a,r);o.length?(h||(i.polygonStart(),h=!0),yl(o,wl,t,n,i)):t&&(h||(i.polygonStart(),h=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),h&&(i.polygonEnd(),h=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(e,n){t(e,n)&&i.point(e,n)}function p(t,e){c.point(t,e)}function g(){f.point=p,c.lineStart()}function y(){f.point=d,c.lineEnd()}function v(t,e){s.push([t,e]),l.point(t,e)}function m(){l.lineStart(),s=[]}function b(){v(s[0][0],s[0][1]),l.lineEnd();var t,e,n,r,c=l.clean(),f=u.result(),d=f.length;if(s.pop(),a.push(s),s=null,d)if(1&c){if((e=(n=f[0]).length-1)>0){for(h||(i.polygonStart(),h=!0),i.lineStart(),t=0;t1&&2&c&&f.push(f.pop().concat(f.shift())),o.push(f.filter(kl))}return f}};function kl(t){return t.length>1}function wl(t,e){return((t=t.x)[0]<0?t[1]-fc-1e-6:fc-t[1])-((e=e.x)[0]<0?e[1]-fc-1e-6:fc-e[1])}var El=_l((function(){return!0}),(function(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?hc:-hc,c=vc(a-n);vc(c-hc)<1e-6?(t.point(n,r=(r+o)/2>0?fc:-fc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),t.point(a,r),e=0):i!==s&&c>=hc&&(vc(n-i)<1e-6&&(n-=1e-6*i),vc(a-s)<1e-6&&(a-=1e-6*s),r=function(t,e,n,r){var i,a,o=Tc(t-n);return vc(o)>1e-6?mc((Tc(e)*(a=xc(r))*Tc(n)-Tc(r)*(i=xc(e))*Tc(t))/(i*a*o)):(e+r)/2}(n,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),e=0),t.point(n=a,r=o),i=s},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}}),(function(t,e,n,r){var i;if(null==t)i=n*fc,r.point(-hc,i),r.point(0,i),r.point(hc,i),r.point(hc,0),r.point(hc,-i),r.point(0,-i),r.point(-hc,-i),r.point(-hc,0),r.point(-hc,i);else if(vc(t[0]-e[0])>1e-6){var a=t[0]0,i=vc(e)>1e-6;function a(t,n){return xc(t)*xc(n)>e}function o(t,n,r){var i=[1,0,0],a=eu(Kc(t),Kc(n)),o=tu(a,a),s=a[0],c=o-s*s;if(!c)return!r&&t;var u=e*o/c,l=-e*s/c,h=eu(i,a),f=ru(i,u);nu(f,ru(a,l));var d=h,p=tu(f,d),g=tu(d,d),y=p*p-g*(tu(f,f)-1);if(!(y<0)){var v=Sc(y),m=ru(d,(-p-v)/g);if(nu(m,f),m=Qc(m),!r)return m;var b,x=t[0],_=n[0],k=t[1],w=n[1];_0^m[1]<(vc(m[0]-x)<1e-6?k:w):k<=m[1]&&m[1]<=w:E>hc^(x<=m[0]&&m[0]<=_)){var C=ru(d,(-p+v)/g);return nu(C,f),[m,Qc(C)]}}}function s(e,n){var i=r?t:hc-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return _l(a,(function(t){var e,n,c,u,l;return{lineStart:function(){u=c=!1,l=1},point:function(h,f){var d,p=[h,f],g=a(h,f),y=r?g?0:s(h,f):g?s(h+(h<0?hc:-hc),f):0;if(!e&&(u=c=g)&&t.lineStart(),g!==c&&(!(d=o(e,p))||pl(e,d)||pl(p,d))&&(p[0]+=1e-6,p[1]+=1e-6,g=a(p[0],p[1])),g!==c)l=0,g?(t.lineStart(),d=o(p,e),t.point(d[0],d[1])):(d=o(e,p),t.point(d[0],d[1]),t.lineEnd()),e=d;else if(i&&e&&r^g){var v;y&n||!(v=o(p,e,!0))||(l=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!g||e&&pl(e,p)||t.point(p[0],p[1]),e=p,c=g,n=y},lineEnd:function(){c&&t.lineEnd(),e=null},clean:function(){return l|(u&&c)<<1}}}),(function(e,r,i,a){ll(a,t,n,i,e,r)}),r?[0,-t]:[-hc,t-hc])};function Cl(t,e,n,r){function i(i,a){return t<=i&&i<=n&&e<=a&&a<=r}function a(i,a,s,u){var l=0,h=0;if(null==i||(l=o(i,s))!==(h=o(a,s))||c(i,a)<0^s>0)do{u.point(0===l||3===l?t:n,l>1?r:e)}while((l=(l+s+4)%4)!==h);else u.point(a[0],a[1])}function o(r,i){return vc(r[0]-t)<1e-6?i>0?0:3:vc(r[0]-n)<1e-6?i>0?2:1:vc(r[1]-e)<1e-6?i>0?1:0:i>0?3:2}function s(t,e){return c(t.x,e.x)}function c(t,e){var n=o(t,1),r=o(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(o){var c,u,l,h,f,d,p,g,y,v,m,b=o,x=dl(),_={point:k,lineStart:function(){_.point=w,u&&u.push(l=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(w(h,f),d&&y&&x.rejoin(),c.push(x.result()));_.point=k,y&&b.lineEnd()},polygonStart:function(){b=x,c=[],u=[],m=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=u.length;nr&&(f-a)*(r-o)>(d-o)*(t-a)&&++e:d<=r&&(f-a)*(r-o)<(d-o)*(t-a)&&--e;return e}(),n=m&&e,i=(c=I(c)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&yl(c,s,e,a,o),o.polygonEnd());b=o,c=u=l=null}};function k(t,e){i(t,e)&&b.point(t,e)}function w(a,o){var s=i(a,o);if(u&&l.push([a,o]),v)h=a,f=o,d=s,v=!1,s&&(b.lineStart(),b.point(a,o));else if(s&&y)b.point(a,o);else{var c=[p=Math.max(-1e9,Math.min(1e9,p)),g=Math.max(-1e9,Math.min(1e9,g))],x=[a=Math.max(-1e9,Math.min(1e9,a)),o=Math.max(-1e9,Math.min(1e9,o))];!function(t,e,n,r,i,a){var o,s=t[0],c=t[1],u=0,l=1,h=e[0]-s,f=e[1]-c;if(o=n-s,h||!(o>0)){if(o/=h,h<0){if(o0){if(o>l)return;o>u&&(u=o)}if(o=i-s,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>u&&(u=o)}else if(h>0){if(o0)){if(o/=f,f<0){if(o0){if(o>l)return;o>u&&(u=o)}if(o=a-c,f||!(o<0)){if(o/=f,f<0){if(o>l)return;o>u&&(u=o)}else if(f>0){if(o0&&(t[0]=s+u*h,t[1]=c+u*f),l<1&&(e[0]=s+l*h,e[1]=c+l*f),!0}}}}}(c,x,t,e,n,r)?s&&(b.lineStart(),b.point(a,o),m=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(x[0],x[1]),s||b.lineEnd(),m=!1)}p=a,g=o,y=s}return _}}var Sl,Al,Ml,Ol=function(){var t,e,n,r=0,i=0,a=960,o=500;return n={stream:function(n){return t&&e===n?t:t=Cl(r,i,a,o)(e=n)},extent:function(s){return arguments.length?(r=+s[0][0],i=+s[0][1],a=+s[1][0],o=+s[1][1],t=e=null,n):[[r,i],[a,o]]}}},Dl=sc(),Nl={sphere:Nc,point:Nc,lineStart:function(){Nl.point=Ll,Nl.lineEnd=Bl},lineEnd:Nc,polygonStart:Nc,polygonEnd:Nc};function Bl(){Nl.point=Nl.lineEnd=Nc}function Ll(t,e){Sl=t*=yc,Al=Tc(e*=yc),Ml=xc(e),Nl.point=Fl}function Fl(t,e){t*=yc;var n=Tc(e*=yc),r=xc(e),i=vc(t-Sl),a=xc(i),o=r*Tc(i),s=Ml*n-Al*r*a,c=Al*n+Ml*r*a;Dl.add(bc(Sc(o*o+s*s),c)),Sl=t,Al=n,Ml=r}var Pl=function(t){return Dl.reset(),$c(t,Nl),+Dl},Il=[null,null],jl={type:"LineString",coordinates:Il},Rl=function(t,e){return Il[0]=t,Il[1]=e,Pl(jl)},Yl={Feature:function(t,e){return Ul(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r0&&(i=Rl(t[a],t[a-1]))>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<1e-12*i)return!0;n=r}return!1}function Vl(t,e){return!!xl(t.map(Hl),Gl(e))}function Hl(t){return(t=t.map(Gl)).pop(),t}function Gl(t){return[t[0]*yc,t[1]*yc]}var ql=function(t,e){return(t&&Yl.hasOwnProperty(t.type)?Yl[t.type]:Ul)(t,e)};function Xl(t,e,n){var r=k(t,e-1e-6,n).concat(e);return function(t){return r.map((function(e){return[t,e]}))}}function Zl(t,e,n){var r=k(t,e-1e-6,n).concat(e);return function(t){return r.map((function(e){return[e,t]}))}}function Jl(){var t,e,n,r,i,a,o,s,c,u,l,h,f=10,d=f,p=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:m()}}function m(){return k(_c(r/p)*p,n,p).map(l).concat(k(_c(s/g)*g,o,g).map(h)).concat(k(_c(e/f)*f,t,f).filter((function(t){return vc(t%p)>1e-6})).map(c)).concat(k(_c(a/d)*d,i,d).filter((function(t){return vc(t%g)>1e-6})).map(u))}return v.lines=function(){return m().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[l(r).concat(h(o).slice(1),l(n).reverse().slice(1),h(s).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],n=+t[1][0],s=+t[0][1],o=+t[1][1],r>n&&(t=r,r=n,n=t),s>o&&(t=s,s=o,o=t),v.precision(y)):[[r,s],[n,o]]},v.extentMinor=function(n){return arguments.length?(e=+n[0][0],t=+n[1][0],a=+n[0][1],i=+n[1][1],e>t&&(n=e,e=t,t=n),a>i&&(n=a,a=i,i=n),v.precision(y)):[[e,a],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(f=+t[0],d=+t[1],v):[f,d]},v.precision=function(f){return arguments.length?(y=+f,c=Xl(a,i,90),u=Zl(e,t,y),l=Xl(s,o,90),h=Zl(r,n,y),v):y},v.extentMajor([[-180,1e-6-90],[180,90-1e-6]]).extentMinor([[-180,-80-1e-6],[180,80+1e-6]])}function Ql(){return Jl()()}var Kl,th,eh,nh,rh=function(t,e){var n=t[0]*yc,r=t[1]*yc,i=e[0]*yc,a=e[1]*yc,o=xc(r),s=Tc(r),c=xc(a),u=Tc(a),l=o*xc(n),h=o*Tc(n),f=c*xc(i),d=c*Tc(i),p=2*Oc(Sc(Dc(a-r)+o*c*Dc(i-n))),g=Tc(p),y=p?function(t){var e=Tc(t*=p)/g,n=Tc(p-t)/g,r=n*l+e*f,i=n*h+e*d,a=n*s+e*u;return[bc(i,r)*gc,bc(a,Sc(r*r+i*i))*gc]}:function(){return[n*gc,r*gc]};return y.distance=p,y},ih=function(t){return t},ah=sc(),oh=sc(),sh={point:Nc,lineStart:Nc,lineEnd:Nc,polygonStart:function(){sh.lineStart=ch,sh.lineEnd=hh},polygonEnd:function(){sh.lineStart=sh.lineEnd=sh.point=Nc,ah.add(vc(oh)),oh.reset()},result:function(){var t=ah/2;return ah.reset(),t}};function ch(){sh.point=uh}function uh(t,e){sh.point=lh,Kl=eh=t,th=nh=e}function lh(t,e){oh.add(nh*t-eh*e),eh=t,nh=e}function hh(){lh(Kl,th)}var fh=sh,dh=1/0,ph=dh,gh=-dh,yh=gh;var vh,mh,bh,xh,_h={point:function(t,e){tgh&&(gh=t);eyh&&(yh=e)},lineStart:Nc,lineEnd:Nc,polygonStart:Nc,polygonEnd:Nc,result:function(){var t=[[dh,ph],[gh,yh]];return gh=yh=-(ph=dh=1/0),t}},kh=0,wh=0,Eh=0,Th=0,Ch=0,Sh=0,Ah=0,Mh=0,Oh=0,Dh={point:Nh,lineStart:Bh,lineEnd:Ph,polygonStart:function(){Dh.lineStart=Ih,Dh.lineEnd=jh},polygonEnd:function(){Dh.point=Nh,Dh.lineStart=Bh,Dh.lineEnd=Ph},result:function(){var t=Oh?[Ah/Oh,Mh/Oh]:Sh?[Th/Sh,Ch/Sh]:Eh?[kh/Eh,wh/Eh]:[NaN,NaN];return kh=wh=Eh=Th=Ch=Sh=Ah=Mh=Oh=0,t}};function Nh(t,e){kh+=t,wh+=e,++Eh}function Bh(){Dh.point=Lh}function Lh(t,e){Dh.point=Fh,Nh(bh=t,xh=e)}function Fh(t,e){var n=t-bh,r=e-xh,i=Sc(n*n+r*r);Th+=i*(bh+t)/2,Ch+=i*(xh+e)/2,Sh+=i,Nh(bh=t,xh=e)}function Ph(){Dh.point=Nh}function Ih(){Dh.point=Rh}function jh(){Yh(vh,mh)}function Rh(t,e){Dh.point=Yh,Nh(vh=bh=t,mh=xh=e)}function Yh(t,e){var n=t-bh,r=e-xh,i=Sc(n*n+r*r);Th+=i*(bh+t)/2,Ch+=i*(xh+e)/2,Sh+=i,Ah+=(i=xh*t-bh*e)*(bh+t),Mh+=i*(xh+e),Oh+=3*i,Nh(bh=t,xh=e)}var zh=Dh;function Uh(t){this._context=t}Uh.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,pc)}},result:Nc};var $h,Wh,Vh,Hh,Gh,qh=sc(),Xh={point:Nc,lineStart:function(){Xh.point=Zh},lineEnd:function(){$h&&Jh(Wh,Vh),Xh.point=Nc},polygonStart:function(){$h=!0},polygonEnd:function(){$h=null},result:function(){var t=+qh;return qh.reset(),t}};function Zh(t,e){Xh.point=Jh,Wh=Hh=t,Vh=Gh=e}function Jh(t,e){Hh-=t,Gh-=e,qh.add(Sc(Hh*Hh+Gh*Gh)),Hh=t,Gh=e}var Qh=Xh;function Kh(){this._string=[]}function tf(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}Kh.prototype={_radius:4.5,_circle:tf(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=tf(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var ef=function(t,e){var n,r,i=4.5;function a(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),$c(t,n(r))),r.result()}return a.area=function(t){return $c(t,n(fh)),fh.result()},a.measure=function(t){return $c(t,n(Qh)),Qh.result()},a.bounds=function(t){return $c(t,n(_h)),_h.result()},a.centroid=function(t){return $c(t,n(zh)),zh.result()},a.projection=function(e){return arguments.length?(n=null==e?(t=null,ih):(t=e).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(e=null,new Kh):new Uh(e=t),"function"!=typeof i&&r.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),a):i},a.projection(t).context(e)},nf=function(t){return{stream:rf(t)}};function rf(t){return function(e){var n=new af;for(var r in t)n[r]=t[r];return n.stream=e,n}}function af(){}function of(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),$c(n,t.stream(_h)),e(_h.result()),null!=r&&t.clipExtent(r),t}function sf(t,e,n){return of(t,(function(n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+e[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(i-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([o,s])}),n)}function cf(t,e,n){return sf(t,[[0,0],e],n)}function uf(t,e,n){return of(t,(function(n){var r=+e,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];t.scale(150*i).translate([a,o])}),n)}function lf(t,e,n){return of(t,(function(n){var r=+e,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;t.scale(150*i).translate([a,o])}),n)}af.prototype={constructor:af,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var hf=xc(30*yc),ff=function(t,e){return+e?function(t,e){function n(r,i,a,o,s,c,u,l,h,f,d,p,g,y){var v=u-r,m=l-i,b=v*v+m*m;if(b>4*e&&g--){var x=o+f,_=s+d,k=c+p,w=Sc(x*x+_*_+k*k),E=Oc(k/=w),T=vc(vc(k)-1)<1e-6||vc(a-h)<1e-6?(a+h)/2:bc(_,x),C=t(T,E),S=C[0],A=C[1],M=S-r,O=A-i,D=m*M-v*O;(D*D/b>e||vc((v*M+m*O)/b-.5)>.3||o*f+s*d+c*p2?t[2]%360*yc:0,S()):[y*gc,v*gc,m*gc]},T.angle=function(t){return arguments.length?(b=t%360*yc,S()):b*gc},T.precision=function(t){return arguments.length?(o=ff(s,E=t*t),A()):Sc(E)},T.fitExtent=function(t,e){return sf(T,t,e)},T.fitSize=function(t,e){return cf(T,t,e)},T.fitWidth=function(t,e){return uf(T,t,e)},T.fitHeight=function(t,e){return lf(T,t,e)},function(){return e=t.apply(this,arguments),T.invert=e.invert&&C,S()}}function mf(t){var e=0,n=hc/3,r=vf(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*yc,n=t[1]*yc):[e*gc,n*gc]},i}function bf(t,e){var n=Tc(t),r=(n+Tc(e))/2;if(vc(r)<1e-6)return function(t){var e=xc(t);function n(t,n){return[t*e,Tc(n)/e]}return n.invert=function(t,n){return[t/e,Oc(n*e)]},n}(t);var i=1+n*(2*r-n),a=Sc(i)/r;function o(t,e){var n=Sc(i-2*r*Tc(e))/r;return[n*Tc(t*=r),a-n*xc(t)]}return o.invert=function(t,e){var n=a-e;return[bc(t,vc(n))/r*Cc(n),Oc((i-(t*t+n*n)*r*r)/(2*r))]},o}var xf=function(){return mf(bf).scale(155.424).center([0,33.6442])},_f=function(){return xf().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};var kf=function(){var t,e,n,r,i,a,o=_f(),s=xf().rotate([154,0]).center([-2,58.5]).parallels([55,65]),c=xf().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(t,e){a=[t,e]}};function l(t){var e=t[0],o=t[1];return a=null,n.point(e,o),a||(r.point(e,o),a)||(i.point(e,o),a)}function h(){return t=e=null,l}return l.invert=function(t){var e=o.scale(),n=o.translate(),r=(t[0]-n[0])/e,i=(t[1]-n[1])/e;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:o).invert(t)},l.stream=function(n){return t&&e===n?t:(r=[o.stream(e=n),s.stream(n),c.stream(n)],i=r.length,t={point:function(t,e){for(var n=-1;++n0?e<1e-6-fc&&(e=1e-6-fc):e>fc-1e-6&&(e=fc-1e-6);var n=i/Ec(Nf(e),r);return[n*Tc(r*t),i-n*xc(r*t)]}return a.invert=function(t,e){var n=i-e,a=Cc(r)*Sc(t*t+n*n);return[bc(t,vc(n))/r*Cc(n),2*mc(Ec(i/a,1/r))-fc]},a}var Lf=function(){return mf(Bf).scale(109.5).parallels([30,30])};function Ff(t,e){return[t,e]}Ff.invert=Ff;var Pf=function(){return yf(Ff).scale(152.63)};function If(t,e){var n=xc(t),r=t===e?Tc(t):(n-xc(e))/(e-t),i=n/r+t;if(vc(r)<1e-6)return Ff;function a(t,e){var n=i-e,a=r*t;return[n*Tc(a),i-n*xc(a)]}return a.invert=function(t,e){var n=i-e;return[bc(t,vc(n))/r*Cc(n),i-Cc(r)*Sc(t*t+n*n)]},a}var jf=function(){return mf(If).scale(131.154).center([0,13.9389])},Rf=1.340264,Yf=-.081106,zf=893e-6,Uf=.003796,$f=Sc(3)/2;function Wf(t,e){var n=Oc($f*Tc(e)),r=n*n,i=r*r*r;return[t*xc(n)/($f*(Rf+3*Yf*r+i*(7*zf+9*Uf*r))),n*(Rf+Yf*r+i*(zf+Uf*r))]}Wf.invert=function(t,e){for(var n,r=e,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=n=(r*(Rf+Yf*i+a*(zf+Uf*i))-e)/(Rf+3*Yf*i+a*(7*zf+9*Uf*i)))*r)*i*i,!(vc(n)<1e-12));++o);return[$f*t*(Rf+3*Yf*i+a*(7*zf+9*Uf*i))/xc(r),Oc(Tc(r)/$f)]};var Vf=function(){return yf(Wf).scale(177.158)};function Hf(t,e){var n=xc(e),r=xc(t)*n;return[n*Tc(t)/r,Tc(e)/r]}Hf.invert=Ef(mc);var Gf=function(){return yf(Hf).scale(144.049).clipAngle(60)};function qf(t,e,n,r){return 1===t&&1===e&&0===n&&0===r?ih:rf({point:function(i,a){this.stream.point(i*t+n,a*e+r)}})}var Xf=function(){var t,e,n,r,i,a,o=1,s=0,c=0,u=1,l=1,h=ih,f=null,d=ih;function p(){return r=i=null,a}return a={stream:function(t){return r&&i===t?r:r=h(d(i=t))},postclip:function(r){return arguments.length?(d=r,f=t=e=n=null,p()):d},clipExtent:function(r){return arguments.length?(d=null==r?(f=t=e=n=null,ih):Cl(f=+r[0][0],t=+r[0][1],e=+r[1][0],n=+r[1][1]),p()):null==f?null:[[f,t],[e,n]]},scale:function(t){return arguments.length?(h=qf((o=+t)*u,o*l,s,c),p()):o},translate:function(t){return arguments.length?(h=qf(o*u,o*l,s=+t[0],c=+t[1]),p()):[s,c]},reflectX:function(t){return arguments.length?(h=qf(o*(u=t?-1:1),o*l,s,c),p()):u<0},reflectY:function(t){return arguments.length?(h=qf(o*u,o*(l=t?-1:1),s,c),p()):l<0},fitExtent:function(t,e){return sf(a,t,e)},fitSize:function(t,e){return cf(a,t,e)},fitWidth:function(t,e){return uf(a,t,e)},fitHeight:function(t,e){return lf(a,t,e)}}};function Zf(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),e*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}Zf.invert=function(t,e){var n,r=e,i=25;do{var a=r*r,o=a*a;r-=n=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(vc(n)>1e-6&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]};var Jf=function(){return yf(Zf).scale(175.295)};function Qf(t,e){return[xc(e)*Tc(t),Tc(e)]}Qf.invert=Ef(Oc);var Kf=function(){return yf(Qf).scale(249.5).clipAngle(90+1e-6)};function td(t,e){var n=xc(e),r=1+xc(t)*n;return[n*Tc(t)/r,Tc(e)/r]}td.invert=Ef((function(t){return 2*mc(t)}));var ed=function(){return yf(td).scale(250).clipAngle(142)};function nd(t,e){return[wc(Ac((fc+e)/2)),-t]}nd.invert=function(t,e){return[-e,2*mc(kc(t))-fc]};var rd=function(){var t=Df(nd),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)};function id(t,e){return t.parent===e.parent?1:2}function ad(t,e){return t+e.x}function od(t,e){return Math.max(t,e.y)}var sd=function(){var t=id,e=1,n=1,r=!1;function i(i){var a,o=0;i.eachAfter((function(e){var n=e.children;n?(e.x=function(t){return t.reduce(ad,0)/t.length}(n),e.y=function(t){return 1+t.reduce(od,0)}(n)):(e.x=a?o+=t(e,a):0,e.y=0,a=e)}));var s=function(t){for(var e;e=t.children;)t=e[0];return t}(i),c=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(i),u=s.x-t(s,c)/2,l=c.x+t(c,s)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*e,t.y=(i.y-t.y)*n}:function(t){t.x=(t.x-u)/(l-u)*e,t.y=(1-(i.y?t.y/i.y:1))*n})}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i};function cd(t){var e=0,n=t.children,r=n&&n.length;if(r)for(;--r>=0;)e+=n[r].value;else e=1;t.value=e}function ud(t,e){var n,r,i,a,o,s=new dd(t),c=+t.value&&(s.value=t.value),u=[s];for(null==e&&(e=ld);n=u.pop();)if(c&&(n.value=+n.data.value),(i=e(n.data))&&(o=i.length))for(n.children=new Array(o),a=o-1;a>=0;--a)u.push(r=n.children[a]=new dd(i[a])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(fd)}function ld(t){return t.children}function hd(t){t.data=t.data.data}function fd(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function dd(t){this.data=t,this.depth=this.height=0,this.parent=null}dd.prototype=ud.prototype={constructor:dd,count:function(){return this.eachAfter(cd)},each:function(t){var e,n,r,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),n=a.children)for(r=0,i=n.length;r=0;--n)i.push(e[n]);return this},sum:function(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,n=function(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;t=n.pop(),e=r.pop();for(;t===e;)i=t,t=n.pop(),e=r.pop();return i}(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function(){return ud(this).eachBefore(hd)}};var pd=Array.prototype.slice;var gd=function(t){for(var e,n,r=0,i=(t=function(t){for(var e,n,r=t.length;r;)n=Math.random()*r--|0,e=t[r],t[r]=t[n],t[n]=e;return t}(pd.call(t))).length,a=[];r0&&n*n>r*r+i*i}function bd(t,e){for(var n=0;n(o*=o)?(r=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-r*r)),n.x=t.x-r*s-a*c,n.y=t.y-r*c+a*s):(r=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-r*r)),n.x=e.x+r*s-a*c,n.y=e.y+r*c+a*s)):(n.x=e.x+n.r,n.y=e.y)}function Ed(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Td(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,a=(e.y*n.r+n.y*e.r)/r;return i*i+a*a}function Cd(t){this._=t,this.next=null,this.previous=null}function Sd(t){if(!(i=t.length))return 0;var e,n,r,i,a,o,s,c,u,l,h;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(n=t[1],e.x=-n.r,n.x=e.r,n.y=0,!(i>2))return e.r+n.r;wd(n,e,r=t[2]),e=new Cd(e),n=new Cd(n),r=new Cd(r),e.next=r.previous=n,n.next=e.previous=r,r.next=n.previous=e;t:for(s=3;s0)throw new Error("cycle");return a}return n.id=function(e){return arguments.length?(t=Od(e),n):t},n.parentId=function(t){return arguments.length?(e=Od(t),n):e},n};function Hd(t,e){return t.parent===e.parent?1:2}function Gd(t){var e=t.children;return e?e[0]:t.t}function qd(t){var e=t.children;return e?e[e.length-1]:t.t}function Xd(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function Zd(t,e,n){return t.a.parent===e.parent?t.a:n}function Jd(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}Jd.prototype=Object.create(dd.prototype);var Qd=function(){var t=Hd,e=1,n=1,r=null;function i(i){var c=function(t){for(var e,n,r,i,a,o=new Jd(t,0),s=[o];e=s.pop();)if(r=e._.children)for(e.children=new Array(a=r.length),i=a-1;i>=0;--i)s.push(n=e.children[i]=new Jd(r[i],i)),n.parent=e;return(o.parent=new Jd(null,0)).children=[o],o}(i);if(c.eachAfter(a),c.parent.m=-c.z,c.eachBefore(o),r)i.eachBefore(s);else{var u=i,l=i,h=i;i.eachBefore((function(t){t.xl.x&&(l=t),t.depth>h.depth&&(h=t)}));var f=u===l?1:t(u,l)/2,d=f-u.x,p=e/(l.x+f+d),g=n/(h.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function a(e){var n=e.children,r=e.parent.children,i=e.i?r[e.i-1]:null;if(n){!function(t){for(var e,n=0,r=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(e);var a=(n[0].z+n[n.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,n,r){if(n){for(var i,a=e,o=e,s=n,c=a.parent.children[0],u=a.m,l=o.m,h=s.m,f=c.m;s=qd(s),a=Gd(a),s&&a;)c=Gd(c),(o=qd(o)).a=e,(i=s.z+h-a.z-u+t(s._,a._))>0&&(Xd(Zd(s,e,r),e,i),u+=i,l+=i),h+=s.m,u+=a.m,f+=c.m,l+=o.m;s&&!qd(o)&&(o.t=s,o.m+=h-l),a&&!Gd(c)&&(c.t=a,c.m+=u-f,r=e)}return r}(e,i,e.parent.A||r[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*n}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i},Kd=function(t,e,n,r,i){for(var a,o=t.children,s=-1,c=o.length,u=t.value&&(i-n)/t.value;++sf&&(f=s),y=l*l*g,(d=Math.max(f/y,y/h))>p){l-=s;break}p=d}v.push(o={value:l,dice:c1?e:1)},n}(tp),rp=function(){var t=np,e=!1,n=1,r=1,i=[0],a=Dd,o=Dd,s=Dd,c=Dd,u=Dd;function l(t){return t.x0=t.y0=0,t.x1=n,t.y1=r,t.eachBefore(h),i=[0],e&&t.eachBefore(jd),t}function h(e){var n=i[e.depth],r=e.x0+n,l=e.y0+n,h=e.x1-n,f=e.y1-n;h=n-1){var l=s[e];return l.x0=i,l.y0=a,l.x1=o,void(l.y1=c)}var h=u[e],f=r/2+h,d=e+1,p=n-1;for(;d>>1;u[g]c-a){var m=(i*v+o*y)/r;t(e,d,y,i,a,m,c),t(d,n,v,m,a,o,c)}else{var b=(a*v+c*y)/r;t(e,d,y,i,a,o,b),t(d,n,v,i,b,o,c)}}(0,c,t.value,e,n,r,i)},ap=function(t,e,n,r,i){(1&t.depth?Kd:Rd)(t,e,n,r,i)},op=function t(e){function n(t,n,r,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,c,u,l,h=-1,f=o.length,d=t.value;++h1?e:1)},n}(tp),sp=function(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}},cp=function(t,e){var n=un(+t,+e);return function(t){var e=n(t);return e-360*Math.floor(e/360)}},up=function(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}},lp=Math.SQRT2;function hp(t){return((t=Math.exp(t))+1/t)/2}var fp=function(t,e){var n,r,i=t[0],a=t[1],o=t[2],s=e[0],c=e[1],u=e[2],l=s-i,h=c-a,f=l*l+h*h;if(f<1e-12)r=Math.log(u/o)/lp,n=function(t){return[i+t*l,a+t*h,o*Math.exp(lp*t*r)]};else{var d=Math.sqrt(f),p=(u*u-o*o+4*f)/(2*o*2*d),g=(u*u-o*o-4*f)/(2*u*2*d),y=Math.log(Math.sqrt(p*p+1)-p),v=Math.log(Math.sqrt(g*g+1)-g);r=(v-y)/lp,n=function(t){var e,n=t*r,s=hp(y),c=o/(2*d)*(s*(e=lp*n+y,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(y));return[i+c*l,a+c*h,o*s/hp(lp*n+y)]}}return n.duration=1e3*r,n};function dp(t){return function(e,n){var r=t((e=tn(e)).h,(n=tn(n)).h),i=hn(e.s,n.s),a=hn(e.l,n.l),o=hn(e.opacity,n.opacity);return function(t){return e.h=r(t),e.s=i(t),e.l=a(t),e.opacity=o(t),e+""}}}var pp=dp(un),gp=dp(hn);function yp(t,e){var n=hn((t=pa(t)).l,(e=pa(e)).l),r=hn(t.a,e.a),i=hn(t.b,e.b),a=hn(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=r(e),t.b=i(e),t.opacity=a(e),t+""}}function vp(t){return function(e,n){var r=t((e=ka(e)).h,(n=ka(n)).h),i=hn(e.c,n.c),a=hn(e.l,n.l),o=hn(e.opacity,n.opacity);return function(t){return e.h=r(t),e.c=i(t),e.l=a(t),e.opacity=o(t),e+""}}}var mp=vp(un),bp=vp(hn);function xp(t){return function e(n){function r(e,r){var i=t((e=Oa(e)).h,(r=Oa(r)).h),a=hn(e.s,r.s),o=hn(e.l,r.l),s=hn(e.opacity,r.opacity);return function(t){return e.h=i(t),e.s=a(t),e.l=o(Math.pow(t,n)),e.opacity=s(t),e+""}}return n=+n,r.gamma=e,r}(1)}var _p=xp(un),kp=xp(hn);function wp(t,e){for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n1&&(e=t[a[o-2]],n=t[a[o-1]],r=t[s],(n[0]-e[0])*(r[1]-e[1])-(n[1]-e[1])*(r[0]-e[0])<=0);)--o;a[o++]=s}return a.slice(0,o)}var Mp=function(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e=0;--e)u.push(t[r[a[e]][2]]);for(e=+s;es!=u>s&&o<(c-n)*(s-r)/(u-r)+n&&(l=!l),c=n,u=r;return l},Dp=function(t){for(var e,n,r=-1,i=t.length,a=t[i-1],o=a[0],s=a[1],c=0;++r1);return t+n*a*Math.sqrt(-2*Math.log(i)/i)}}return n.source=t,n}(Np),Fp=function t(e){function n(){var t=Lp.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return n.source=t,n}(Np),Pp=function t(e){function n(t){return function(){for(var n=0,r=0;rr&&(e=n,n=r,r=e),function(t){return Math.max(n,Math.min(r,t))}}function tg(t,e,n){var r=t[0],i=t[1],a=e[0],o=e[1];return i2?eg:tg,i=a=null,h}function h(e){return isNaN(e=+e)?n:(i||(i=r(o.map(t),s,c)))(t(u(e)))}return h.invert=function(n){return u(e((a||(a=r(s,o.map(t),_n)))(n)))},h.domain=function(t){return arguments.length?(o=Up.call(t,Xp),u===Jp||(u=Kp(o)),l()):o.slice()},h.range=function(t){return arguments.length?(s=$p.call(t),l()):s.slice()},h.rangeRound=function(t){return s=$p.call(t),c=up,l()},h.clamp=function(t){return arguments.length?(u=t?Kp(o):Jp,h):u!==Jp},h.interpolate=function(t){return arguments.length?(c=t,l()):c},h.unknown=function(t){return arguments.length?(n=t,h):n},function(n,r){return t=n,e=r,l()}}function ig(t,e){return rg()(t,e)}var ag=function(t,e,n,r){var i,a=A(t,e,n);switch((r=Vs(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(i=ac(a,o))||(r.precision=i),Zs(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=oc(a,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ic(a))||(r.precision=i-2*("%"===r.type))}return Xs(r)};function og(t){var e=t.domain;return t.ticks=function(t){var n=e();return C(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return ag(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,i=e(),a=0,o=i.length-1,s=i[a],c=i[o];return c0?r=S(s=Math.floor(s/r)*r,c=Math.ceil(c/r)*r,n):r<0&&(r=S(s=Math.ceil(s*r)/r,c=Math.floor(c*r)/r,n)),r>0?(i[a]=Math.floor(s/r)*r,i[o]=Math.ceil(c/r)*r,e(i)):r<0&&(i[a]=Math.ceil(s*r)/r,i[o]=Math.floor(c*r)/r,e(i)),t},t}function sg(){var t=ig(Jp,Jp);return t.copy=function(){return ng(t,sg())},Rp.apply(t,arguments),og(t)}function cg(t){var e;function n(t){return isNaN(t=+t)?e:t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Up.call(e,Xp),n):t.slice()},n.unknown=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return cg(t).unknown(e)},t=arguments.length?Up.call(t,Xp):[0,1],og(n)}var ug=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o0){for(;fc)break;g.push(h)}}else for(;f=1;--l)if(!((h=u*l)c)break;g.push(h)}}else g=C(f,d,Math.min(d-f,p)).map(n);return r?g.reverse():g},r.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=Xs(i)),t===1/0)return i;null==t&&(t=10);var o=Math.max(1,a*t/r.ticks().length);return function(t){var r=t/n(Math.round(e(t)));return r*a0?i[r-1]:e[0],r=r?[i[r-1],n]:[i[o-1],i[o]]},o.unknown=function(e){return arguments.length?(t=e,o):o},o.thresholds=function(){return i.slice()},o.copy=function(){return Mg().domain([e,n]).range(a).unknown(t)},Rp.apply(og(o),arguments)}function Og(){var t,e=[.5],n=[0,1],r=1;function i(i){return i<=i?n[c(e,i,0,r)]:t}return i.domain=function(t){return arguments.length?(e=$p.call(t),r=Math.min(e.length,n.length-1),i):e.slice()},i.range=function(t){return arguments.length?(n=$p.call(t),r=Math.min(e.length,n.length-1),i):n.slice()},i.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(t=e,i):t},i.copy=function(){return Og().domain(e).range(n).unknown(t)},Rp.apply(i,arguments)}var Dg=new Date,Ng=new Date;function Bg(t,e,n,r){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e0))return s;do{s.push(o=new Date(+n)),e(n,a),t(n)}while(o=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(i.count=function(e,r){return Dg.setTime(+e),Ng.setTime(+r),t(Dg),t(Ng),Math.floor(n(Dg,Ng))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(e){return r(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var Lg=Bg((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Lg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bg((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Fg=Lg,Pg=Lg.range,Ig=Bg((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),jg=Ig,Rg=Ig.range;function Yg(t){return Bg((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var zg=Yg(0),Ug=Yg(1),$g=Yg(2),Wg=Yg(3),Vg=Yg(4),Hg=Yg(5),Gg=Yg(6),qg=zg.range,Xg=Ug.range,Zg=$g.range,Jg=Wg.range,Qg=Vg.range,Kg=Hg.range,ty=Gg.range,ey=Bg((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1})),ny=ey,ry=ey.range,iy=Bg((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),ay=iy,oy=iy.range,sy=Bg((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),cy=sy,uy=sy.range,ly=Bg((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),hy=ly,fy=ly.range,dy=Bg((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));dy.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Bg((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):dy:null};var py=dy,gy=dy.range;function yy(t){return Bg((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var vy=yy(0),my=yy(1),by=yy(2),xy=yy(3),_y=yy(4),ky=yy(5),wy=yy(6),Ey=vy.range,Ty=my.range,Cy=by.range,Sy=xy.range,Ay=_y.range,My=ky.range,Oy=wy.range,Dy=Bg((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),Ny=Dy,By=Dy.range,Ly=Bg((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Ly.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bg((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var Fy=Ly,Py=Ly.range;function Iy(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function jy(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ry(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Yy(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,s=t.months,c=t.shortMonths,u=Qy(i),l=Ky(i),h=Qy(a),f=Ky(a),d=Qy(o),p=Ky(o),g=Qy(s),y=Ky(s),v=Qy(c),m=Ky(c),b={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:xv,e:xv,f:Tv,H:_v,I:kv,j:wv,L:Ev,m:Cv,M:Sv,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:em,s:nm,S:Av,u:Mv,U:Ov,V:Dv,w:Nv,W:Bv,x:null,X:null,y:Lv,Y:Fv,Z:Pv,"%":tm},x={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:Iv,e:Iv,f:Uv,H:jv,I:Rv,j:Yv,L:zv,m:$v,M:Wv,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:em,s:nm,S:Vv,u:Hv,U:Gv,V:qv,w:Xv,W:Zv,x:null,X:null,y:Jv,Y:Qv,Z:Kv,"%":tm},_={a:function(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=p[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=h.exec(e.slice(n));return r?(t.w=f[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=v.exec(e.slice(n));return r?(t.m=m[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.m=y[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return E(t,e,n,r)},d:lv,e:lv,f:yv,H:fv,I:fv,j:hv,L:gv,m:uv,M:dv,p:function(t,e,n){var r=u.exec(e.slice(n));return r?(t.p=l[r[0].toLowerCase()],n+r[0].length):-1},q:cv,Q:mv,s:bv,S:pv,u:ev,U:nv,V:rv,w:tv,W:iv,x:function(t,e,r){return E(t,n,e,r)},X:function(t,e,n){return E(t,r,e,n)},y:ov,Y:av,Z:sv,"%":vv};function k(t,e){return function(n){var r,i,a,o=[],s=-1,c=0,u=t.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=jy(Ry(a.y,0,1))).getUTCDay(),r=i>4||0===i?my.ceil(r):my(r),r=Ny.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=Iy(Ry(a.y,0,1))).getDay(),r=i>4||0===i?Ug.ceil(r):Ug(r),r=ny.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?jy(Ry(a.y,0,1)).getUTCDay():Iy(Ry(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,jy(a)):Iy(a)}}function E(t,e,n,r){for(var i,a,o=0,s=e.length,c=n.length;o=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=_[i in Hy?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(b.x=k(n,b),b.X=k(r,b),b.c=k(e,b),x.x=k(n,x),x.X=k(r,x),x.c=k(e,x),{format:function(t){var e=k(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=w(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=k(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=w(t+="",!0);return e.toString=function(){return t},e}})}var zy,Uy,$y,Wy,Vy,Hy={"-":"",_:" ",0:"0"},Gy=/^\s*\d+/,qy=/^%/,Xy=/[\\^$*+?|[\]().{}]/g;function Zy(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a68?1900:2e3),n+r[0].length):-1}function sv(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function cv(t,e,n){var r=Gy.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function uv(t,e,n){var r=Gy.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function lv(t,e,n){var r=Gy.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function hv(t,e,n){var r=Gy.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function fv(t,e,n){var r=Gy.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function dv(t,e,n){var r=Gy.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function pv(t,e,n){var r=Gy.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function gv(t,e,n){var r=Gy.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function yv(t,e,n){var r=Gy.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function vv(t,e,n){var r=qy.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function mv(t,e,n){var r=Gy.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function bv(t,e,n){var r=Gy.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function xv(t,e){return Zy(t.getDate(),e,2)}function _v(t,e){return Zy(t.getHours(),e,2)}function kv(t,e){return Zy(t.getHours()%12||12,e,2)}function wv(t,e){return Zy(1+ny.count(Fg(t),t),e,3)}function Ev(t,e){return Zy(t.getMilliseconds(),e,3)}function Tv(t,e){return Ev(t,e)+"000"}function Cv(t,e){return Zy(t.getMonth()+1,e,2)}function Sv(t,e){return Zy(t.getMinutes(),e,2)}function Av(t,e){return Zy(t.getSeconds(),e,2)}function Mv(t){var e=t.getDay();return 0===e?7:e}function Ov(t,e){return Zy(zg.count(Fg(t)-1,t),e,2)}function Dv(t,e){var n=t.getDay();return t=n>=4||0===n?Vg(t):Vg.ceil(t),Zy(Vg.count(Fg(t),t)+(4===Fg(t).getDay()),e,2)}function Nv(t){return t.getDay()}function Bv(t,e){return Zy(Ug.count(Fg(t)-1,t),e,2)}function Lv(t,e){return Zy(t.getFullYear()%100,e,2)}function Fv(t,e){return Zy(t.getFullYear()%1e4,e,4)}function Pv(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Zy(e/60|0,"0",2)+Zy(e%60,"0",2)}function Iv(t,e){return Zy(t.getUTCDate(),e,2)}function jv(t,e){return Zy(t.getUTCHours(),e,2)}function Rv(t,e){return Zy(t.getUTCHours()%12||12,e,2)}function Yv(t,e){return Zy(1+Ny.count(Fy(t),t),e,3)}function zv(t,e){return Zy(t.getUTCMilliseconds(),e,3)}function Uv(t,e){return zv(t,e)+"000"}function $v(t,e){return Zy(t.getUTCMonth()+1,e,2)}function Wv(t,e){return Zy(t.getUTCMinutes(),e,2)}function Vv(t,e){return Zy(t.getUTCSeconds(),e,2)}function Hv(t){var e=t.getUTCDay();return 0===e?7:e}function Gv(t,e){return Zy(vy.count(Fy(t)-1,t),e,2)}function qv(t,e){var n=t.getUTCDay();return t=n>=4||0===n?_y(t):_y.ceil(t),Zy(_y.count(Fy(t),t)+(4===Fy(t).getUTCDay()),e,2)}function Xv(t){return t.getUTCDay()}function Zv(t,e){return Zy(my.count(Fy(t)-1,t),e,2)}function Jv(t,e){return Zy(t.getUTCFullYear()%100,e,2)}function Qv(t,e){return Zy(t.getUTCFullYear()%1e4,e,4)}function Kv(){return"+0000"}function tm(){return"%"}function em(t){return+t}function nm(t){return Math.floor(+t/1e3)}function rm(t){return zy=Yy(t),Uy=zy.format,$y=zy.parse,Wy=zy.utcFormat,Vy=zy.utcParse,zy}rm({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function im(t){return new Date(t)}function am(t){return t instanceof Date?+t:+new Date(+t)}function om(t,e,n,r,a,o,s,c,u){var l=ig(Jp,Jp),h=l.invert,f=l.domain,d=u(".%L"),p=u(":%S"),g=u("%I:%M"),y=u("%I %p"),v=u("%a %d"),m=u("%b %d"),b=u("%B"),x=u("%Y"),_=[[s,1,1e3],[s,5,5e3],[s,15,15e3],[s,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[a,1,36e5],[a,3,108e5],[a,6,216e5],[a,12,432e5],[r,1,864e5],[r,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function k(i){return(s(i)1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return qb.h=360*t-100,qb.s=1.5-1.5*e,qb.l=.8-.9*e,qb+""},Zb=Ge(),Jb=Math.PI/3,Qb=2*Math.PI/3,Kb=function(t){var e;return t=(.5-t)*Math.PI,Zb.r=255*(e=Math.sin(t))*e,Zb.g=255*(e=Math.sin(t+Jb))*e,Zb.b=255*(e=Math.sin(t+Qb))*e,Zb+""},tx=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"};function ex(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var nx=ex(Nm("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),rx=ex(Nm("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),ix=ex(Nm("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),ax=ex(Nm("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),ox=function(t){return ke(ne(t).call(document.documentElement))},sx=0;function cx(){return new ux}function ux(){this._="@"+(++sx).toString(36)}ux.prototype=cx.prototype={constructor:ux,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var lx=function(t){return"string"==typeof t?new be([document.querySelectorAll(t)],[document.documentElement]):new be([null==t?[]:t],me)},hx=function(t,e){null==e&&(e=Mn().touches);for(var n=0,r=e?e.length:0,i=new Array(r);n1?0:t<-1?xx:Math.acos(t)}function Ex(t){return t>=1?_x:t<=-1?-_x:Math.asin(t)}function Tx(t){return t.innerRadius}function Cx(t){return t.outerRadius}function Sx(t){return t.startAngle}function Ax(t){return t.endAngle}function Mx(t){return t&&t.padAngle}function Ox(t,e,n,r,i,a,o,s){var c=n-t,u=r-e,l=o-i,h=s-a,f=h*c-l*u;if(!(f*f<1e-12))return[t+(f=(l*(e-a)-h*(t-i))/f)*c,e+f*u]}function Dx(t,e,n,r,i,a,o){var s=t-n,c=e-r,u=(o?a:-a)/bx(s*s+c*c),l=u*c,h=-u*s,f=t+l,d=e+h,p=n+l,g=r+h,y=(f+p)/2,v=(d+g)/2,m=p-f,b=g-d,x=m*m+b*b,_=i-a,k=f*g-p*d,w=(b<0?-1:1)*bx(yx(0,_*_*x-k*k)),E=(k*b-m*w)/x,T=(-k*m-b*w)/x,C=(k*b+m*w)/x,S=(-k*m+b*w)/x,A=E-y,M=T-v,O=C-y,D=S-v;return A*A+M*M>O*O+D*D&&(E=C,T=S),{cx:E,cy:T,x01:-l,y01:-h,x11:E*(i/_-1),y11:T*(i/_-1)}}var Nx=function(){var t=Tx,e=Cx,n=fx(0),r=null,i=Sx,a=Ax,o=Mx,s=null;function c(){var c,u,l=+t.apply(this,arguments),h=+e.apply(this,arguments),f=i.apply(this,arguments)-_x,d=a.apply(this,arguments)-_x,p=dx(d-f),g=d>f;if(s||(s=c=Ui()),h1e-12)if(p>kx-1e-12)s.moveTo(h*gx(f),h*mx(f)),s.arc(0,0,h,f,d,!g),l>1e-12&&(s.moveTo(l*gx(d),l*mx(d)),s.arc(0,0,l,d,f,g));else{var y,v,m=f,b=d,x=f,_=d,k=p,w=p,E=o.apply(this,arguments)/2,T=E>1e-12&&(r?+r.apply(this,arguments):bx(l*l+h*h)),C=vx(dx(h-l)/2,+n.apply(this,arguments)),S=C,A=C;if(T>1e-12){var M=Ex(T/l*mx(E)),O=Ex(T/h*mx(E));(k-=2*M)>1e-12?(x+=M*=g?1:-1,_-=M):(k=0,x=_=(f+d)/2),(w-=2*O)>1e-12?(m+=O*=g?1:-1,b-=O):(w=0,m=b=(f+d)/2)}var D=h*gx(m),N=h*mx(m),B=l*gx(_),L=l*mx(_);if(C>1e-12){var F,P=h*gx(b),I=h*mx(b),j=l*gx(x),R=l*mx(x);if(p1e-12?A>1e-12?(y=Dx(j,R,D,N,h,A,g),v=Dx(P,I,B,L,h,A,g),s.moveTo(y.cx+y.x01,y.cy+y.y01),A1e-12&&k>1e-12?S>1e-12?(y=Dx(B,L,P,I,l,-S,g),v=Dx(D,N,j,R,l,-S,g),s.lineTo(y.cx+y.x01,y.cy+y.y01),S=l;--h)s.point(y[h],v[h]);s.lineEnd(),s.areaEnd()}g&&(y[u]=+t(f,u,c),v[u]=+n(f,u,c),s.point(e?+e(f,u,c):y[u],r?+r(f,u,c):v[u]))}if(d)return s=null,d+""||null}function u(){return Ix().defined(i).curve(o).context(a)}return c.x=function(n){return arguments.length?(t="function"==typeof n?n:fx(+n),e=null,c):t},c.x0=function(e){return arguments.length?(t="function"==typeof e?e:fx(+e),c):t},c.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:fx(+t),c):e},c.y=function(t){return arguments.length?(n="function"==typeof t?t:fx(+t),r=null,c):n},c.y0=function(t){return arguments.length?(n="function"==typeof t?t:fx(+t),c):n},c.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:fx(+t),c):r},c.lineX0=c.lineY0=function(){return u().x(t).y(n)},c.lineY1=function(){return u().x(t).y(r)},c.lineX1=function(){return u().x(e).y(n)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:fx(!!t),c):i},c.curve=function(t){return arguments.length?(o=t,null!=a&&(s=o(a)),c):o},c.context=function(t){return arguments.length?(null==t?a=s=null:s=o(a=t),c):a},c},Rx=function(t,e){return et?1:e>=t?0:NaN},Yx=function(t){return t},zx=function(){var t=Yx,e=Rx,n=null,r=fx(0),i=fx(kx),a=fx(0);function o(o){var s,c,u,l,h,f=o.length,d=0,p=new Array(f),g=new Array(f),y=+r.apply(this,arguments),v=Math.min(kx,Math.max(-kx,i.apply(this,arguments)-y)),m=Math.min(Math.abs(v)/f,a.apply(this,arguments)),b=m*(v<0?-1:1);for(s=0;s0&&(d+=h);for(null!=e?p.sort((function(t,n){return e(g[t],g[n])})):null!=n&&p.sort((function(t,e){return n(o[t],o[e])})),s=0,u=d?(v-f*b)/d:0;s0?h*u:0)+b,g[c]={data:o[c],index:s,value:h,startAngle:y,endAngle:l,padAngle:m};return g}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:fx(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:fx(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:fx(+t),o):i},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:fx(+t),o):a},o},Ux=Wx(Lx);function $x(t){this._curve=t}function Wx(t){function e(e){return new $x(t(e))}return e._curve=t,e}function Vx(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Wx(t)):e()._curve},t}$x.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var Hx=function(){return Vx(Ix().curve(Ux))},Gx=function(){var t=jx().curve(Ux),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Vx(n())},delete t.lineX0,t.lineEndAngle=function(){return Vx(r())},delete t.lineX1,t.lineInnerRadius=function(){return Vx(i())},delete t.lineY0,t.lineOuterRadius=function(){return Vx(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Wx(t)):e()._curve},t},qx=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]},Xx=Array.prototype.slice;function Zx(t){return t.source}function Jx(t){return t.target}function Qx(t){var e=Zx,n=Jx,r=Fx,i=Px,a=null;function o(){var o,s=Xx.call(arguments),c=e.apply(this,s),u=n.apply(this,s);if(a||(a=o=Ui()),t(a,+r.apply(this,(s[0]=c,s)),+i.apply(this,s),+r.apply(this,(s[0]=u,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(r="function"==typeof t?t:fx(+t),o):r},o.y=function(t){return arguments.length?(i="function"==typeof t?t:fx(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}function Kx(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function t_(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function e_(t,e,n,r,i){var a=qx(e,n),o=qx(e,n=(n+i)/2),s=qx(r,n),c=qx(r,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],c[0],c[1])}function n_(){return Qx(Kx)}function r_(){return Qx(t_)}function i_(){var t=Qx(e_);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var a_={draw:function(t,e){var n=Math.sqrt(e/xx);t.moveTo(n,0),t.arc(0,0,n,0,kx)}},o_={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},s_=Math.sqrt(1/3),c_=2*s_,u_={draw:function(t,e){var n=Math.sqrt(e/c_),r=n*s_;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},l_=Math.sin(xx/10)/Math.sin(7*xx/10),h_=Math.sin(kx/10)*l_,f_=-Math.cos(kx/10)*l_,d_={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),r=h_*n,i=f_*n;t.moveTo(0,-n),t.lineTo(r,i);for(var a=1;a<5;++a){var o=kx*a/5,s=Math.cos(o),c=Math.sin(o);t.lineTo(c*n,-s*n),t.lineTo(s*r-c*i,c*r+s*i)}t.closePath()}},p_={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},g_=Math.sqrt(3),y_={draw:function(t,e){var n=-Math.sqrt(e/(3*g_));t.moveTo(0,2*n),t.lineTo(-g_*n,-n),t.lineTo(g_*n,-n),t.closePath()}},v_=Math.sqrt(3)/2,m_=1/Math.sqrt(12),b_=3*(m_/2+1),x_={draw:function(t,e){var n=Math.sqrt(e/b_),r=n/2,i=n*m_,a=r,o=n*m_+n,s=-a,c=o;t.moveTo(r,i),t.lineTo(a,o),t.lineTo(s,c),t.lineTo(-.5*r-v_*i,v_*r+-.5*i),t.lineTo(-.5*a-v_*o,v_*a+-.5*o),t.lineTo(-.5*s-v_*c,v_*s+-.5*c),t.lineTo(-.5*r+v_*i,-.5*i-v_*r),t.lineTo(-.5*a+v_*o,-.5*o-v_*a),t.lineTo(-.5*s+v_*c,-.5*c-v_*s),t.closePath()}},__=[a_,o_,u_,p_,d_,y_,x_],k_=function(){var t=fx(a_),e=fx(64),n=null;function r(){var r;if(n||(n=r=Ui()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(e){return arguments.length?(t="function"==typeof e?e:fx(e),r):t},r.size=function(t){return arguments.length?(e="function"==typeof t?t:fx(+t),r):e},r.context=function(t){return arguments.length?(n=null==t?null:t,r):n},r},w_=function(){};function E_(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function T_(t){this._context=t}T_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:E_(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:E_(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var C_=function(t){return new T_(t)};function S_(t){this._context=t}S_.prototype={areaStart:w_,areaEnd:w_,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:E_(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var A_=function(t){return new S_(t)};function M_(t){this._context=t}M_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:E_(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var O_=function(t){return new M_(t)};function D_(t,e){this._basis=new T_(t),this._beta=e}D_.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],a=e[0],o=t[n]-i,s=e[n]-a,c=-1;++c<=n;)r=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*o),this._beta*e[c]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var N_=function t(e){function n(t){return 1===e?new T_(t):new D_(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function B_(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function L_(t,e){this._context=t,this._k=(1-e)/6}L_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:B_(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:B_(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var F_=function t(e){function n(t){return new L_(t,e)}return n.tension=function(e){return t(+e)},n}(0);function P_(t,e){this._context=t,this._k=(1-e)/6}P_.prototype={areaStart:w_,areaEnd:w_,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:B_(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var I_=function t(e){function n(t){return new P_(t,e)}return n.tension=function(e){return t(+e)},n}(0);function j_(t,e){this._context=t,this._k=(1-e)/6}j_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:B_(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var R_=function t(e){function n(t){return new j_(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Y_(t,e,n){var r=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>1e-12){var u=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*u+t._x1*t._l23_2a-e*t._l12_2a)/l,o=(o*u+t._y1*t._l23_2a-n*t._l12_2a)/l}t._context.bezierCurveTo(r,i,a,o,t._x2,t._y2)}function z_(t,e){this._context=t,this._alpha=e}z_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Y_(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var U_=function t(e){function n(t){return e?new z_(t,e):new L_(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function $_(t,e){this._context=t,this._alpha=e}$_.prototype={areaStart:w_,areaEnd:w_,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Y_(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var W_=function t(e){function n(t){return e?new $_(t,e):new P_(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function V_(t,e){this._context=t,this._alpha=e}V_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Y_(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var H_=function t(e){function n(t){return e?new V_(t,e):new j_(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function G_(t){this._context=t}G_.prototype={areaStart:w_,areaEnd:w_,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};var q_=function(t){return new G_(t)};function X_(t){return t<0?-1:1}function Z_(t,e,n){var r=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),o=(n-t._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(X_(a)+X_(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function J_(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Q_(t,e,n){var r=t._x0,i=t._y0,a=t._x1,o=t._y1,s=(a-r)/3;t._context.bezierCurveTo(r+s,i+s*e,a-s,o-s*n,a,o)}function K_(t){this._context=t}function tk(t){this._context=new ek(t)}function ek(t){this._context=t}function nk(t){return new K_(t)}function rk(t){return new tk(t)}function ik(t){this._context=t}function ak(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var ck=function(t){return new sk(t,.5)};function uk(t){return new sk(t,0)}function lk(t){return new sk(t,1)}var hk=function(t,e){if((i=t.length)>1)for(var n,r,i,a=1,o=t[e[0]],s=o.length;a=0;)n[e]=e;return n};function dk(t,e){return t[e]}var pk=function(){var t=fx([]),e=fk,n=hk,r=dk;function i(i){var a,o,s=t.apply(this,arguments),c=i.length,u=s.length,l=new Array(u);for(a=0;a0){for(var n,r,i,a=0,o=t[0].length;a0)for(var n,r,i,a,o,s,c=0,u=t[e[0]].length;c0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):(r[0]=0,r[1]=i)},vk=function(t,e){if((n=t.length)>0){for(var n,r=0,i=t[e[0]],a=i.length;r0&&(r=(n=t[e[0]]).length)>0){for(var n,r,i,a=0,o=1;oa&&(a=e,r=n);return r}var _k=function(t){var e=t.map(kk);return fk(t).sort((function(t,n){return e[t]-e[n]}))};function kk(t){for(var e,n=0,r=-1,i=t.length;++r0)){if(a/=f,f<0){if(a0){if(a>h)return;a>l&&(l=a)}if(a=r-c,f||!(a<0)){if(a/=f,f<0){if(a>h)return;a>l&&(l=a)}else if(f>0){if(a0)){if(a/=d,d<0){if(a0){if(a>h)return;a>l&&(l=a)}if(a=i-u,d||!(a<0)){if(a/=d,d<0){if(a>h)return;a>l&&(l=a)}else if(d>0){if(a0||h<1)||(l>0&&(t[0]=[c+l*f,u+l*d]),h<1&&(t[1]=[c+h*f,u+h*d]),!0)}}}}}function Uk(t,e,n,r,i){var a=t[1];if(a)return!0;var o,s,c=t[0],u=t.left,l=t.right,h=u[0],f=u[1],d=l[0],p=l[1],g=(h+d)/2,y=(f+p)/2;if(p===f){if(g=r)return;if(h>d){if(c){if(c[1]>=i)return}else c=[g,n];a=[g,i]}else{if(c){if(c[1]1)if(h>d){if(c){if(c[1]>=i)return}else c=[(n-s)/o,n];a=[(i-s)/o,i]}else{if(c){if(c[1]=r)return}else c=[e,o*e+s];a=[r,o*r+s]}else{if(c){if(c[0]=-lw)){var d=c*c+u*u,p=l*l+h*h,g=(h*d-u*p)/f,y=(c*p-l*d)/f,v=Gk.pop()||new qk;v.arc=t,v.site=i,v.x=g+o,v.y=(v.cy=y+s)+Math.sqrt(g*g+y*y),t.circle=v;for(var m=null,b=sw._;b;)if(v.yuw)s=s.L;else{if(!((i=a-iw(s,o))>uw)){r>-uw?(e=s.P,n=s):i>-uw?(e=s,n=s.N):e=n=s;break}if(!s.R){e=s;break}s=s.R}!function(t){ow[t.index]={site:t,halfedges:[]}}(t);var c=Kk(t);if(aw.insert(e,c),e||n){if(e===n)return Zk(e),n=Kk(e.site),aw.insert(c,n),c.edge=n.edge=jk(e.site,c.site),Xk(e),void Xk(n);if(n){Zk(e),Zk(n);var u=e.site,l=u[0],h=u[1],f=t[0]-l,d=t[1]-h,p=n.site,g=p[0]-l,y=p[1]-h,v=2*(f*y-d*g),m=f*f+d*d,b=g*g+y*y,x=[(y*m-d*b)/v+l,(f*b-g*m)/v+h];Yk(n.edge,u,p,x),c.edge=jk(u,t,null,x),n.edge=jk(t,p,null,x),Xk(e),Xk(n)}else c.edge=jk(e.site,c.site)}}function rw(t,e){var n=t.site,r=n[0],i=n[1],a=i-e;if(!a)return r;var o=t.P;if(!o)return-1/0;var s=(n=o.site)[0],c=n[1],u=c-e;if(!u)return s;var l=s-r,h=1/a-1/u,f=l/u;return h?(-f+Math.sqrt(f*f-2*h*(l*l/(-2*u)-c+u/2+i-a/2)))/h+r:(r+s)/2}function iw(t,e){var n=t.N;if(n)return rw(n,e);var r=t.site;return r[1]===e?r[0]:1/0}var aw,ow,sw,cw,uw=1e-6,lw=1e-12;function hw(t,e){return e[1]-t[1]||e[0]-t[0]}function fw(t,e){var n,r,i,a=t.sort(hw).pop();for(cw=[],ow=new Array(t.length),aw=new Ik,sw=new Ik;;)if(i=Hk,a&&(!i||a[1]uw||Math.abs(i[0][1]-i[1][1])>uw)||delete cw[a]}(o,s,c,u),function(t,e,n,r){var i,a,o,s,c,u,l,h,f,d,p,g,y=ow.length,v=!0;for(i=0;iuw||Math.abs(g-f)>uw)&&(c.splice(s,0,cw.push(Rk(o,d,Math.abs(p-t)uw?[t,Math.abs(h-t)uw?[Math.abs(f-r)uw?[n,Math.abs(h-n)uw?[Math.abs(f-e)=s)return null;var c=t-i.site[0],u=e-i.site[1],l=c*c+u*u;do{i=a.cells[r=o],o=null,i.halfedges.forEach((function(n){var r=a.edges[n],s=r.left;if(s!==i.site&&s||(s=r.right)){var c=t-s[0],u=e-s[1],h=c*c+u*u;hr?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}var Sw=function(){var t,e,n=_w,r=kw,i=Cw,a=Ew,o=Tw,s=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,l=fp,h=lt("start","zoom","end"),f=0;function d(t){t.property("__zoom",ww).on("wheel.zoom",x).on("mousedown.zoom",_).on("dblclick.zoom",k).filter(o).on("touchstart.zoom",w).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",T).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(t,e){return(e=Math.max(s[0],Math.min(s[1],e)))===t.k?t:new yw(e,t.x,t.y)}function g(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new yw(t.k,r,i)}function y(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function v(t,e,n){t.on("start.zoom",(function(){m(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){m(this,arguments).end()})).tween("zoom",(function(){var t=this,i=arguments,a=m(t,i),o=r.apply(t,i),s=null==n?y(o):"function"==typeof n?n.apply(t,i):n,c=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),u=t.__zoom,h="function"==typeof e?e.apply(t,i):e,f=l(u.invert(s).concat(c/u.k),h.invert(s).concat(c/h.k));return function(t){if(1===t)t=h;else{var e=f(t),n=c/e[2];t=new yw(n,s[0]-e[0]*n,s[1]-e[1]*n)}a.zoom(null,t)}}))}function m(t,e,n){return!n&&t.__zooming||new b(t,e)}function b(t,e){this.that=t,this.args=e,this.active=0,this.extent=r.apply(t,e),this.taps=0}function x(){if(n.apply(this,arguments)){var t=m(this,arguments),e=this.__zoom,r=Math.max(s[0],Math.min(s[1],e.k*Math.pow(2,a.apply(this,arguments)))),o=Nn(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=e.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(e.k===r)return;t.mouse=[o,e.invert(o)],or(this),t.start()}xw(),t.wheel=setTimeout(u,150),t.zoom("mouse",i(g(p(e,r),t.mouse[0],t.mouse[1]),t.extent,c))}function u(){t.wheel=null,t.end()}}function _(){if(!e&&n.apply(this,arguments)){var t=m(this,arguments,!0),r=ke(ce.view).on("mousemove.zoom",u,!0).on("mouseup.zoom",l,!0),a=Nn(this),o=ce.clientX,s=ce.clientY;Te(ce.view),bw(),t.mouse=[a,this.__zoom.invert(a)],or(this),t.start()}function u(){if(xw(),!t.moved){var e=ce.clientX-o,n=ce.clientY-s;t.moved=e*e+n*n>f}t.zoom("mouse",i(g(t.that.__zoom,t.mouse[0]=Nn(t.that),t.mouse[1]),t.extent,c))}function l(){r.on("mousemove.zoom mouseup.zoom",null),Ce(ce.view,t.moved),xw(),t.end()}}function k(){if(n.apply(this,arguments)){var t=this.__zoom,e=Nn(this),a=t.invert(e),o=t.k*(ce.shiftKey?.5:2),s=i(g(p(t,o),e,a),r.apply(this,arguments),c);xw(),u>0?ke(this).transition().duration(u).call(v,s,e):ke(this).call(d.transform,s)}}function w(){if(n.apply(this,arguments)){var e,r,i,a,o=ce.touches,s=o.length,c=m(this,arguments,ce.changedTouches.length===s);for(bw(),r=0;rh&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},M={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),56;case 1:return this.begin("type_directive"),57;case 2:return this.popState(),this.begin("arg_directive"),14;case 3:return this.popState(),this.popState(),59;case 4:return 58;case 5:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return this.begin("ID"),16;case 12:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),48;case 13:return this.popState(),this.popState(),this.begin("LINE"),18;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),27;case 16:return this.begin("LINE"),29;case 17:return this.begin("LINE"),30;case 18:return this.begin("LINE"),31;case 19:return this.begin("LINE"),36;case 20:return this.begin("LINE"),33;case 21:return this.begin("LINE"),35;case 22:return this.popState(),19;case 23:return 28;case 24:return 43;case 25:return 44;case 26:return 39;case 27:return 37;case 28:return this.begin("ID"),22;case 29:return this.begin("ID"),23;case 30:return 25;case 31:return 7;case 32:return 21;case 33:return 42;case 34:return 5;case 35:return e.yytext=e.yytext.trim(),48;case 36:return 51;case 37:return 52;case 38:return 49;case 39:return 50;case 40:return 53;case 41:return 54;case 42:return 55;case 43:return 46;case 44:return 47;case 45:return 5;case 46:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,12],inclusive:!1},ALIAS:{rules:[7,8,13,14],inclusive:!1},LINE:{rules:[7,8,22],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};function O(){this.yy={}}return A.lexer=M,O.prototype=A,A.Parser=O,new O}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){var r=n(198);t.exports={Graph:r.Graph,json:n(301),alg:n(302),version:r.version}},function(t,e,n){var r;try{r={cloneDeep:n(313),constant:n(86),defaults:n(154),each:n(87),filter:n(128),find:n(314),flatten:n(156),forEach:n(126),forIn:n(319),has:n(93),isUndefined:n(139),last:n(320),map:n(140),mapValues:n(321),max:n(322),merge:n(324),min:n(329),minBy:n(330),now:n(331),pick:n(161),range:n(162),reduce:n(142),sortBy:n(338),uniqueId:n(163),values:n(147),zipObject:n(343)}}catch(t){}r||(r=window._),t.exports=r},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){ +/** + * @license + * Copyright (c) 2012-2013 Chris Pettitt + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +t.exports={graphlib:n(311),dagre:n(153),intersect:n(368),render:n(370),util:n(12),version:n(382)}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";var r=n(4),i=n(17).Graph;function a(t,e,n,i){var a;do{a=r.uniqueId(i)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function o(t){return r.max(r.map(t.nodes(),(function(e){var n=t.node(e).rank;if(!r.isUndefined(n))return n})))}t.exports={addDummyNode:a,simplify:function(t){var e=(new i).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){var r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),e},asNonCompoundGraph:function(t){var e=new i({multigraph:t.isMultigraph()}).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e},successorWeights:function(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.outEdges(e),(function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)},predecessorWeights:function(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.inEdges(e),(function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)},intersectRect:function(t,e){var n,r,i=t.x,a=t.y,o=e.x-i,s=e.y-a,c=t.width/2,u=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(s)*c>Math.abs(o)*u?(s<0&&(u=-u),n=u*o/s,r=u):(o<0&&(c=-c),n=c,r=c*s/o);return{x:i+n,y:a+r}},buildLayerMatrix:function(t){var e=r.map(r.range(o(t)+1),(function(){return[]}));return r.forEach(t.nodes(),(function(n){var i=t.node(n),a=i.rank;r.isUndefined(a)||(e[a][i.order]=n)})),e},normalizeRanks:function(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank})));r.forEach(t.nodes(),(function(n){var i=t.node(n);r.has(i,"rank")&&(i.rank-=e)}))},removeEmptyRanks:function(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank}))),n=[];r.forEach(t.nodes(),(function(r){var i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)}));var i=0,a=t.graph().nodeRankFactor;r.forEach(n,(function(e,n){r.isUndefined(e)&&n%a!=0?--i:i&&r.forEach(e,(function(e){t.node(e).rank+=i}))}))},addBorderNode:function(t,e,n,r){var i={width:0,height:0};arguments.length>=4&&(i.rank=n,i.order=r);return a(t,"border",i,e)},maxRank:o,partition:function(t,e){var n={lhs:[],rhs:[]};return r.forEach(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n},time:function(t,e){var n=r.now();try{return e()}finally{console.log(t+" time: "+(r.now()-n)+"ms")}},notime:function(t,e){return e()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(173),i=n(174),a=n(175),o={channel:r.default,lang:i.default,unit:a.default};e.default=o},function(t,e,n){var r;try{r={clone:n(199),constant:n(86),each:n(87),filter:n(128),has:n(93),isArray:n(5),isEmpty:n(276),isFunction:n(37),isUndefined:n(139),keys:n(30),map:n(140),reduce:n(142),size:n(279),transform:n(285),union:n(286),values:n(147)}}catch(t){}r||(r=window._),t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(43);t.exports={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return a(t.v)+":"+a(t.w)+":"+a(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))},applyTransition:function(t,e){var n=e.graph();if(r.isPlainObject(n)){var i=n.transition;if(r.isFunction(i))return i(t)}return t}};var i=/:/g;function a(t){return t?String(t).replace(i,"\\:"):""}},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,7],n=[1,6],r=[1,14],i=[1,25],a=[1,28],o=[1,26],s=[1,27],c=[1,29],u=[1,30],l=[1,31],h=[1,33],f=[1,34],d=[1,35],p=[10,19],g=[1,47],y=[1,48],v=[1,49],m=[1,50],b=[1,51],x=[1,52],_=[10,19,25,32,33,41,44,45,46,47,48,49],k=[10,19,23,25,32,33,37,41,44,45,46,47,48,49,66,67,68],w=[10,13,17,19],E=[41,66,67,68],T=[41,48,49,66,67,68],C=[41,44,45,46,47,66,67,68],S=[10,19,25],A=[1,81],M={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,graphConfig:6,openDirective:7,typeDirective:8,closeDirective:9,NEWLINE:10,":":11,argDirective:12,open_directive:13,type_directive:14,arg_directive:15,close_directive:16,CLASS_DIAGRAM:17,statements:18,EOF:19,statement:20,className:21,alphaNumToken:22,GENERICTYPE:23,relationStatement:24,LABEL:25,classStatement:26,methodStatement:27,annotationStatement:28,clickStatement:29,cssClassStatement:30,CLASS:31,STYLE_SEPARATOR:32,STRUCT_START:33,members:34,STRUCT_STOP:35,ANNOTATION_START:36,ANNOTATION_END:37,MEMBER:38,SEPARATOR:39,relation:40,STR:41,relationType:42,lineType:43,AGGREGATION:44,EXTENSION:45,COMPOSITION:46,DEPENDENCY:47,LINE:48,DOTTED_LINE:49,CALLBACK:50,LINK:51,CSSCLASS:52,commentToken:53,textToken:54,graphCodeTokens:55,textNoTagsToken:56,TAGSTART:57,TAGEND:58,"==":59,"--":60,PCT:61,DEFAULT:62,SPACE:63,MINUS:64,keywords:65,UNICODE_TEXT:66,NUM:67,ALPHA:68,$accept:0,$end:1},terminals_:{2:"error",10:"NEWLINE",11:":",13:"open_directive",14:"type_directive",15:"arg_directive",16:"close_directive",17:"CLASS_DIAGRAM",19:"EOF",23:"GENERICTYPE",25:"LABEL",31:"CLASS",32:"STYLE_SEPARATOR",33:"STRUCT_START",35:"STRUCT_STOP",36:"ANNOTATION_START",37:"ANNOTATION_END",38:"MEMBER",39:"SEPARATOR",41:"STR",44:"AGGREGATION",45:"EXTENSION",46:"COMPOSITION",47:"DEPENDENCY",48:"LINE",49:"DOTTED_LINE",50:"CALLBACK",51:"LINK",52:"CSSCLASS",55:"graphCodeTokens",57:"TAGSTART",58:"TAGEND",59:"==",60:"--",61:"PCT",62:"DEFAULT",63:"SPACE",64:"MINUS",65:"keywords",66:"UNICODE_TEXT",67:"NUM",68:"ALPHA"},productions_:[0,[3,1],[3,2],[4,1],[5,4],[5,6],[7,1],[8,1],[12,1],[9,1],[6,4],[18,1],[18,2],[18,3],[21,1],[21,2],[21,3],[21,2],[20,1],[20,2],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[26,2],[26,4],[26,5],[26,7],[28,4],[34,1],[34,2],[27,1],[27,2],[27,1],[27,1],[24,3],[24,4],[24,4],[24,5],[40,3],[40,2],[40,2],[40,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[29,3],[29,4],[29,3],[29,4],[30,3],[53,1],[53,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[54,1],[56,1],[56,1],[56,1],[56,1],[22,1],[22,1],[22,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 6:r.parseDirective("%%{","open_directive");break;case 7:r.parseDirective(a[s],"type_directive");break;case 8:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 9:r.parseDirective("}%%","close_directive","class");break;case 14:this.$=a[s];break;case 15:this.$=a[s-1]+a[s];break;case 16:this.$=a[s-2]+"~"+a[s-1]+a[s];break;case 17:this.$=a[s-1]+"~"+a[s];break;case 18:r.addRelation(a[s]);break;case 19:a[s-1].title=r.cleanupLabel(a[s]),r.addRelation(a[s-1]);break;case 26:r.addClass(a[s]);break;case 27:r.addClass(a[s-2]),r.setCssClass(a[s-2],a[s]);break;case 28:r.addClass(a[s-3]),r.addMembers(a[s-3],a[s-1]);break;case 29:r.addClass(a[s-5]),r.setCssClass(a[s-5],a[s-3]),r.addMembers(a[s-5],a[s-1]);break;case 30:r.addAnnotation(a[s],a[s-2]);break;case 31:this.$=[a[s]];break;case 32:a[s].push(a[s-1]),this.$=a[s];break;case 33:break;case 34:r.addMember(a[s-1],r.cleanupLabel(a[s]));break;case 35:case 36:break;case 37:this.$={id1:a[s-2],id2:a[s],relation:a[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 38:this.$={id1:a[s-3],id2:a[s],relation:a[s-1],relationTitle1:a[s-2],relationTitle2:"none"};break;case 39:this.$={id1:a[s-3],id2:a[s],relation:a[s-2],relationTitle1:"none",relationTitle2:a[s-1]};break;case 40:this.$={id1:a[s-4],id2:a[s],relation:a[s-2],relationTitle1:a[s-3],relationTitle2:a[s-1]};break;case 41:this.$={type1:a[s-2],type2:a[s],lineType:a[s-1]};break;case 42:this.$={type1:"none",type2:a[s],lineType:a[s-1]};break;case 43:this.$={type1:a[s-1],type2:"none",lineType:a[s]};break;case 44:this.$={type1:"none",type2:"none",lineType:a[s]};break;case 45:this.$=r.relationType.AGGREGATION;break;case 46:this.$=r.relationType.EXTENSION;break;case 47:this.$=r.relationType.COMPOSITION;break;case 48:this.$=r.relationType.DEPENDENCY;break;case 49:this.$=r.lineType.LINE;break;case 50:this.$=r.lineType.DOTTED_LINE;break;case 51:this.$=a[s-2],r.setClickEvent(a[s-1],a[s],void 0);break;case 52:this.$=a[s-3],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 53:this.$=a[s-2],r.setLink(a[s-1],a[s],void 0);break;case 54:this.$=a[s-3],r.setLink(a[s-2],a[s-1],a[s]);break;case 55:r.setCssClass(a[s-1],a[s])}},table:[{3:1,4:2,5:3,6:4,7:5,13:e,17:n},{1:[3]},{1:[2,1]},{3:8,4:2,5:3,6:4,7:5,13:e,17:n},{1:[2,3]},{8:9,14:[1,10]},{10:[1,11]},{14:[2,6]},{1:[2,2]},{9:12,11:[1,13],16:r},t([11,16],[2,7]),{5:23,7:5,13:e,18:15,20:16,21:24,22:32,24:17,26:18,27:19,28:20,29:21,30:22,31:i,36:a,38:o,39:s,50:c,51:u,52:l,66:h,67:f,68:d},{10:[1,36]},{12:37,15:[1,38]},{10:[2,9]},{19:[1,39]},{10:[1,40],19:[2,11]},t(p,[2,18],{25:[1,41]}),t(p,[2,20]),t(p,[2,21]),t(p,[2,22]),t(p,[2,23]),t(p,[2,24]),t(p,[2,25]),t(p,[2,33],{40:42,42:45,43:46,25:[1,44],41:[1,43],44:g,45:y,46:v,47:m,48:b,49:x}),{21:53,22:32,66:h,67:f,68:d},t(p,[2,35]),t(p,[2,36]),{22:54,66:h,67:f,68:d},{21:55,22:32,66:h,67:f,68:d},{21:56,22:32,66:h,67:f,68:d},{41:[1,57]},t(_,[2,14],{22:32,21:58,23:[1,59],66:h,67:f,68:d}),t(k,[2,69]),t(k,[2,70]),t(k,[2,71]),t(w,[2,4]),{9:60,16:r},{16:[2,8]},{1:[2,10]},{5:23,7:5,13:e,18:61,19:[2,12],20:16,21:24,22:32,24:17,26:18,27:19,28:20,29:21,30:22,31:i,36:a,38:o,39:s,50:c,51:u,52:l,66:h,67:f,68:d},t(p,[2,19]),{21:62,22:32,41:[1,63],66:h,67:f,68:d},{40:64,42:45,43:46,44:g,45:y,46:v,47:m,48:b,49:x},t(p,[2,34]),{43:65,48:b,49:x},t(E,[2,44],{42:66,44:g,45:y,46:v,47:m}),t(T,[2,45]),t(T,[2,46]),t(T,[2,47]),t(T,[2,48]),t(C,[2,49]),t(C,[2,50]),t(p,[2,26],{32:[1,67],33:[1,68]}),{37:[1,69]},{41:[1,70]},{41:[1,71]},{22:72,66:h,67:f,68:d},t(_,[2,15]),t(_,[2,17],{22:32,21:73,66:h,67:f,68:d}),{10:[1,74]},{19:[2,13]},t(S,[2,37]),{21:75,22:32,66:h,67:f,68:d},{21:76,22:32,41:[1,77],66:h,67:f,68:d},t(E,[2,43],{42:78,44:g,45:y,46:v,47:m}),t(E,[2,42]),{22:79,66:h,67:f,68:d},{34:80,38:A},{21:82,22:32,66:h,67:f,68:d},t(p,[2,51],{41:[1,83]}),t(p,[2,53],{41:[1,84]}),t(p,[2,55]),t(_,[2,16]),t(w,[2,5]),t(S,[2,39]),t(S,[2,38]),{21:85,22:32,66:h,67:f,68:d},t(E,[2,41]),t(p,[2,27],{33:[1,86]}),{35:[1,87]},{34:88,35:[2,31],38:A},t(p,[2,30]),t(p,[2,52]),t(p,[2,54]),t(S,[2,40]),{34:89,38:A},t(p,[2,28]),{35:[2,32]},{35:[1,90]},t(p,[2,29])],defaultActions:{2:[2,1],4:[2,3],7:[2,6],8:[2,2],14:[2,9],38:[2,8],39:[2,10],61:[2,13],88:[2,32]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},O={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),13;case 1:return this.begin("type_directive"),14;case 2:return this.popState(),this.begin("arg_directive"),11;case 3:return this.popState(),this.popState(),16;case 4:return 15;case 5:case 6:break;case 7:return 10;case 8:break;case 9:case 10:return 17;case 11:return this.begin("struct"),33;case 12:return"EOF_IN_STRUCT";case 13:return"OPEN_IN_STRUCT";case 14:return this.popState(),35;case 15:break;case 16:return"MEMBER";case 17:return 31;case 18:return 52;case 19:return 50;case 20:return 51;case 21:return 36;case 22:return 37;case 23:this.begin("generic");break;case 24:this.popState();break;case 25:return"GENERICTYPE";case 26:this.begin("string");break;case 27:this.popState();break;case 28:return"STR";case 29:case 30:return 45;case 31:case 32:return 47;case 33:return 46;case 34:return 44;case 35:return 48;case 36:return 49;case 37:return 25;case 38:return 32;case 39:return 64;case 40:return"DOT";case 41:return"PLUS";case 42:return 61;case 43:case 44:return"EQUALS";case 45:return 68;case 46:return"PUNCTUATION";case 47:return 67;case 48:return 66;case 49:return 63;case 50:return 19}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[27,28],inclusive:!1},generic:{rules:[24,25],inclusive:!1},struct:{rules:[12,13,14,15,16],inclusive:!1},open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,17,18,19,20,21,22,23,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};function D(){this.yy={}}return M.lexer=O,D.prototype=M,M.Parser=D,new D}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e){var n,r,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var c,u=[],l=!1,h=-1;function f(){l&&c&&(l=!1,c.length?u=c.concat(u):h=-1,u.length&&d())}function d(){if(!l){var t=s(f);l=!0;for(var e=u.length;e;){for(c=u,u=[];++h1)for(var n=1;n=0;r--){var i=t[r];"."===i?t.splice(r,1):".."===i?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!i;a--){var o=a>=0?arguments[a]:t.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(e=o+"/"+e,i="/"===o.charAt(0))}return(i?"/":"")+(e=n(r(e.split("/"),(function(t){return!!t})),!i).join("/"))||"."},e.normalize=function(t){var a=e.isAbsolute(t),o="/"===i(t,-1);return(t=n(r(t.split("/"),(function(t){return!!t})),!a).join("/"))||a||(t="."),t&&o&&(t+="/"),(a?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,(function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split("/")),a=r(n.split("/")),o=Math.min(i.length,a.length),s=o,c=0;c=1;--a)if(47===(e=t.charCodeAt(a))){if(!i){r=a;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":t.slice(0,r)},e.basename=function(t,e){var n=function(t){"string"!=typeof t&&(t+="");var e,n=0,r=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){n=e+1;break}}else-1===r&&(i=!1,r=e+1);return-1===r?"":t.slice(n,r)}(t);return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n},e.extname=function(t){"string"!=typeof t&&(t+="");for(var e=-1,n=0,r=-1,i=!0,a=0,o=t.length-1;o>=0;--o){var s=t.charCodeAt(o);if(47!==s)-1===r&&(i=!1,r=o+1),46===s?-1===e?e=o:1!==a&&(a=1):-1!==e&&(a=-1);else if(!i){n=o+1;break}}return-1===e||-1===r||0===a||1===a&&e===r-1&&e===n+1?"":t.slice(e,r)};var i="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)}}).call(this,n(14))},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,3],r=[1,5],i=[1,7],a=[2,5],o=[1,15],s=[1,17],c=[1,19],u=[1,20],l=[1,21],h=[1,22],f=[1,28],d=[1,23],p=[1,24],g=[1,25],y=[1,26],v=[1,29],m=[1,32],b=[1,4,5,14,15,17,19,20,22,23,24,25,26,36,39],x=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,36,39],_=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,36,39],k=[4,5,14,15,17,19,20,22,23,24,25,26,36,39],w={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,idStatement:11,DESCR:12,"--\x3e":13,HIDE_EMPTY:14,scale:15,WIDTH:16,COMPOSIT_STATE:17,STRUCT_START:18,STRUCT_STOP:19,STATE_DESCR:20,AS:21,ID:22,FORK:23,JOIN:24,CONCURRENT:25,note:26,notePosition:27,NOTE_TEXT:28,openDirective:29,typeDirective:30,closeDirective:31,":":32,argDirective:33,eol:34,";":35,EDGE_STATE:36,left_of:37,right_of:38,open_directive:39,type_directive:40,arg_directive:41,close_directive:42,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"--\x3e",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CONCURRENT",26:"note",28:"NOTE_TEXT",32:":",35:";",36:"EDGE_STATE",37:"left_of",38:"right_of",39:"open_directive",40:"type_directive",41:"arg_directive",42:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[6,3],[6,5],[34,1],[34,1],[11,1],[11,1],[27,1],[27,1],[29,1],[30,1],[33,1],[31,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:return r.setRootDoc(a[s]),a[s];case 5:this.$=[];break;case 6:"nl"!=a[s]&&(a[s-1].push(a[s]),this.$=a[s-1]);break;case 7:case 8:this.$=a[s];break;case 9:this.$="nl";break;case 10:this.$={stmt:"state",id:a[s],type:"default",description:""};break;case 11:this.$={stmt:"state",id:a[s-1],type:"default",description:r.trimColon(a[s])};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-2],type:"default",description:""},state2:{stmt:"state",id:a[s],type:"default",description:""}};break;case 13:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-3],type:"default",description:""},state2:{stmt:"state",id:a[s-1],type:"default",description:""},description:a[s].substr(1).trim()};break;case 17:this.$={stmt:"state",id:a[s-3],type:"default",description:"",doc:a[s-1]};break;case 18:var c=a[s],u=a[s-2].trim();if(a[s].match(":")){var l=a[s].split(":");c=l[0],u=[u,l[1]]}this.$={stmt:"state",id:c,type:"default",description:u};break;case 19:this.$={stmt:"state",id:a[s-3],type:"default",description:a[s-5],doc:a[s-1]};break;case 20:this.$={stmt:"state",id:a[s],type:"fork"};break;case 21:this.$={stmt:"state",id:a[s],type:"join"};break;case 22:this.$={stmt:"state",id:r.getDividerId(),type:"divider"};break;case 23:this.$={stmt:"state",id:a[s-1].trim(),note:{position:a[s-2].trim(),text:a[s].trim()}};break;case 30:case 31:this.$=a[s];break;case 34:r.parseDirective("%%{","open_directive");break;case 35:r.parseDirective(a[s],"type_directive");break;case 36:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 37:r.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:n,6:4,7:r,29:6,39:i},{1:[3]},{3:8,4:e,5:n,6:4,7:r,29:6,39:i},{3:9,4:e,5:n,6:4,7:r,29:6,39:i},{3:10,4:e,5:n,6:4,7:r,29:6,39:i},t([1,4,5,14,15,17,20,22,23,24,25,26,36,39],a,{8:11}),{30:12,40:[1,13]},{40:[2,34]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:27,9:14,10:16,11:18,14:c,15:u,17:l,20:h,22:f,23:d,24:p,25:g,26:y,29:6,36:v,39:i},{31:30,32:[1,31],42:m},t([32,42],[2,35]),t(b,[2,6]),{6:27,10:33,11:18,14:c,15:u,17:l,20:h,22:f,23:d,24:p,25:g,26:y,29:6,36:v,39:i},t(b,[2,8]),t(b,[2,9]),t(b,[2,10],{12:[1,34],13:[1,35]}),t(b,[2,14]),{16:[1,36]},t(b,[2,16],{18:[1,37]}),{21:[1,38]},t(b,[2,20]),t(b,[2,21]),t(b,[2,22]),{27:39,28:[1,40],37:[1,41],38:[1,42]},t(b,[2,25]),t(x,[2,30]),t(x,[2,31]),t(_,[2,26]),{33:43,41:[1,44]},t(_,[2,37]),t(b,[2,7]),t(b,[2,11]),{11:45,22:f,36:v},t(b,[2,15]),t(k,a,{8:46}),{22:[1,47]},{22:[1,48]},{21:[1,49]},{22:[2,32]},{22:[2,33]},{31:50,42:m},{42:[2,36]},t(b,[2,12],{12:[1,51]}),{4:o,5:s,6:27,9:14,10:16,11:18,14:c,15:u,17:l,19:[1,52],20:h,22:f,23:d,24:p,25:g,26:y,29:6,36:v,39:i},t(b,[2,18],{18:[1,53]}),{28:[1,54]},{22:[1,55]},t(_,[2,27]),t(b,[2,13]),t(b,[2,17]),t(k,a,{8:56}),t(b,[2,23]),t(b,[2,24]),{4:o,5:s,6:27,9:14,10:16,11:18,14:c,15:u,17:l,19:[1,57],20:h,22:f,23:d,24:p,25:g,26:y,29:6,36:v,39:i},t(b,[2,19])],defaultActions:{7:[2,34],8:[2,1],9:[2,2],10:[2,3],41:[2,32],42:[2,33],44:[2,36]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},E={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),39;case 1:return this.begin("type_directive"),40;case 2:return this.popState(),this.begin("arg_directive"),32;case 3:return this.popState(),this.popState(),42;case 4:return 41;case 5:break;case 6:console.log("Crap after close");break;case 7:return 5;case 8:case 9:case 10:case 11:break;case 12:return this.pushState("SCALE"),15;case 13:return 16;case 14:this.popState();break;case 15:this.pushState("STATE");break;case 16:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),23;case 17:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 18:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),23;case 19:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 20:this.begin("STATE_STRING");break;case 21:return this.popState(),this.pushState("STATE_ID"),"AS";case 22:return this.popState(),"ID";case 23:this.popState();break;case 24:return"STATE_DESCR";case 25:return 17;case 26:this.popState();break;case 27:return this.popState(),this.pushState("struct"),18;case 28:return this.popState(),19;case 29:break;case 30:return this.begin("NOTE"),26;case 31:return this.popState(),this.pushState("NOTE_ID"),37;case 32:return this.popState(),this.pushState("NOTE_ID"),38;case 33:this.popState(),this.pushState("FLOATING_NOTE");break;case 34:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 35:break;case 36:return"NOTE_TEXT";case 37:return this.popState(),"ID";case 38:return this.popState(),this.pushState("NOTE_TEXT"),22;case 39:return this.popState(),e.yytext=e.yytext.substr(2).trim(),28;case 40:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),28;case 41:case 42:return 7;case 43:return 14;case 44:return 36;case 45:return 22;case 46:return e.yytext=e.yytext.trim(),12;case 47:return 13;case 48:return 25;case 49:return 5;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:\s*[^:;]+end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},close_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[3,4,9,10],inclusive:!1},type_directive:{rules:[2,3,9,10],inclusive:!1},open_directive:{rules:[1,9,10],inclusive:!1},struct:{rules:[9,10,15,28,29,30,44,45,46,47,48],inclusive:!1},FLOATING_NOTE_ID:{rules:[37],inclusive:!1},FLOATING_NOTE:{rules:[34,35,36],inclusive:!1},NOTE_TEXT:{rules:[39,40],inclusive:!1},NOTE_ID:{rules:[38],inclusive:!1},NOTE:{rules:[31,32,33],inclusive:!1},SCALE:{rules:[13,14],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[22],inclusive:!1},STATE_STRING:{rules:[23,24],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,16,17,18,19,20,21,25,26,27],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,10,11,12,15,27,30,41,42,43,44,45,46,47,49,50],inclusive:!0}}};function T(){this.yy={}}return w.lexer=E,T.prototype=w,w.Parser=T,new T}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t){t.exports=function(){"use strict";var e,r;function i(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){return void 0===t}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function u(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function l(t,e){var n,r=[];for(n=0;n>>0,r=0;ryt(t)?(a=t+1,s-yt(t)):(a=t,s),{year:a,dayOfYear:o}}function Ft(t,e,n){var r,i,a=Bt(t.year(),e,n),o=Math.floor((t.dayOfYear()-a-1)/7)+1;return o<1?r=o+Pt(i=t.year()-1,e,n):o>Pt(t.year(),e,n)?(r=o-Pt(t.year(),e,n),i=t.year()+1):(i=t.year(),r=o),{week:r,year:i}}function Pt(t,e,n){var r=Bt(t,e,n),i=Bt(t+1,e,n);return(yt(t)-r+i)/7}function It(t,e){return t.slice(e,7).concat(t.slice(0,e))}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),j("week",5),j("isoWeek",5),lt("w",Q),lt("ww",Q,q),lt("W",Q),lt("WW",Q,q),gt(["w","ww","W","WW"],(function(t,e,n,r){e[r.substr(0,1)]=w(t)})),W("d",0,"do","day"),W("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),W("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),W("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),lt("d",Q),lt("e",Q),lt("E",Q),lt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),lt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),lt("dddd",(function(t,e){return e.weekdaysRegex(t)})),gt(["dd","ddd","dddd"],(function(t,e,n,r){var i=n._locale.weekdaysParse(t,r,n._strict);null!=i?e.d=i:p(n).invalidWeekday=t})),gt(["d","e","E"],(function(t,e,n,r){e[r]=w(t)}));var jt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Rt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Yt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),zt=ct,Ut=ct,$t=ct;function Wt(){function t(t,e){return e.length-t.length}var e,n,r,i,a,o=[],s=[],c=[],u=[];for(e=0;e<7;e++)n=d([2e3,1]).day(e),r=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),a=this.weekdays(n,""),o.push(r),s.push(i),c.push(a),u.push(r),u.push(i),u.push(a);for(o.sort(t),s.sort(t),c.sort(t),u.sort(t),e=0;e<7;e++)s[e]=ft(s[e]),c[e]=ft(c[e]),u[e]=ft(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Vt(){return this.hours()%12||12}function Ht(t,e){W(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Gt(t,e){return e._meridiemParse}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Vt),W("k",["kk",2],0,(function(){return this.hours()||24})),W("hmm",0,0,(function(){return""+Vt.apply(this)+R(this.minutes(),2)})),W("hmmss",0,0,(function(){return""+Vt.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)})),W("Hmm",0,0,(function(){return""+this.hours()+R(this.minutes(),2)})),W("Hmmss",0,0,(function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)})),Ht("a",!0),Ht("A",!1),L("hour","h"),j("hour",13),lt("a",Gt),lt("A",Gt),lt("H",Q),lt("h",Q),lt("k",Q),lt("HH",Q,q),lt("hh",Q,q),lt("kk",Q,q),lt("hmm",K),lt("hmmss",tt),lt("Hmm",K),lt("Hmmss",tt),pt(["H","HH"],3),pt(["k","kk"],(function(t,e,n){var r=w(t);e[3]=24===r?0:r})),pt(["a","A"],(function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t})),pt(["h","hh"],(function(t,e,n){e[3]=w(t),p(n).bigHour=!0})),pt("hmm",(function(t,e,n){var r=t.length-2;e[3]=w(t.substr(0,r)),e[4]=w(t.substr(r)),p(n).bigHour=!0})),pt("hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[3]=w(t.substr(0,r)),e[4]=w(t.substr(r,2)),e[5]=w(t.substr(i)),p(n).bigHour=!0})),pt("Hmm",(function(t,e,n){var r=t.length-2;e[3]=w(t.substr(0,r)),e[4]=w(t.substr(r))})),pt("Hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[3]=w(t.substr(0,r)),e[4]=w(t.substr(r,2)),e[5]=w(t.substr(i))}));var qt,Xt=xt("Hours",!0),Zt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Tt,monthsShort:Ct,week:{dow:0,doy:6},weekdays:jt,weekdaysMin:Yt,weekdaysShort:Rt,meridiemParse:/[ap]\.?m?\.?/i},Jt={},Qt={};function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function te(e){var r=null;if(!Jt[e]&&void 0!==t&&t&&t.exports)try{r=qt._abbr,n(171)("./"+e),ee(r)}catch(e){}return Jt[e]}function ee(t,e){var n;return t&&((n=s(e)?re(t):ne(t,e))?qt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),qt._abbr}function ne(t,e){if(null===e)return delete Jt[t],null;var n,r=Zt;if(e.abbr=t,null!=Jt[t])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=Jt[t]._config;else if(null!=e.parentLocale)if(null!=Jt[e.parentLocale])r=Jt[e.parentLocale]._config;else{if(null==(n=te(e.parentLocale)))return Qt[e.parentLocale]||(Qt[e.parentLocale]=[]),Qt[e.parentLocale].push({name:t,config:e}),null;r=n._config}return Jt[t]=new N(D(r,e)),Qt[t]&&Qt[t].forEach((function(t){ne(t.name,t.config)})),ee(t),Jt[t]}function re(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return qt;if(!a(t)){if(e=te(t))return e;t=[t]}return function(t){for(var e,n,r,i,a=0;a=e&&E(i,n,!0)>=e-1)break;e--}a++}return qt}(t)}function ie(t){var e,n=t._a;return n&&-2===p(t).overflow&&(e=n[1]<0||11wt(n[0],n[1])?2:n[3]<0||24Pt(n,a,o)?p(t)._overflowWeeks=!0:null!=c?p(t)._overflowWeekday=!0:(s=Lt(n,r,i,a,o),t._a[0]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(o=ae(t._a[0],r[0]),(t._dayOfYear>yt(o)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=Nt(o,0,t._dayOfYear),t._a[1]=n.getUTCMonth(),t._a[2]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=r[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Nt:function(t,e,n,r,i,a,o){var s;return t<100&&0<=t?(s=new Date(t+400,e,n,r,i,a,o),isFinite(s.getFullYear())&&s.setFullYear(t)):s=new Date(t,e,n,r,i,a,o),s}).apply(null,s),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(p(t).weekdayMismatch=!0)}}var se=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ce=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ue=/Z|[+-]\d\d(?::?\d\d)?/,le=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],he=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],fe=/^\/?Date\((\-?\d+)/i;function de(t){var e,n,r,i,a,o,s=t._i,c=se.exec(s)||ce.exec(s);if(c){for(p(t).iso=!0,e=0,n=le.length;en.valueOf():n.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},on.isLocal=function(){return!!this.isValid()&&!this._isUTC},on.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},on.isUtc=Be,on.isUTC=Be,on.zoneAbbr=function(){return this._isUTC?"UTC":""},on.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},on.dates=C("dates accessor is deprecated. Use date instead.",Ke),on.months=C("months accessor is deprecated. Use month instead",At),on.years=C("years accessor is deprecated. Use year instead",bt),on.zone=C("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),on.isDSTShifted=C("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(m(t,this),(t=me(t))._a){var e=t._isUTC?d(t._a):xe(t._a);this._isDSTShifted=this.isValid()&&0h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},qt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:this.begin("string");break;case 8:this.popState();break;case 9:return"STR";case 10:return 75;case 11:return 84;case 12:return 76;case 13:return 90;case 14:return 77;case 15:return 78;case 16:return 79;case 17:case 18:return t.lex.firstGraph()&&this.begin("dir"),24;case 19:return 38;case 20:return 42;case 21:case 22:case 23:case 24:return 87;case 25:return this.popState(),25;case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:return this.popState(),26;case 36:return 91;case 37:return 99;case 38:return 47;case 39:return 96;case 40:return 46;case 41:return 20;case 42:return 92;case 43:return 110;case 44:case 45:case 46:return 70;case 47:case 48:case 49:return 69;case 50:return 51;case 51:return 52;case 52:return 53;case 53:return 54;case 54:return 55;case 55:return 56;case 56:return 57;case 57:return 58;case 58:return 97;case 59:return 100;case 60:return 111;case 61:return 108;case 62:return 101;case 63:case 64:return 109;case 65:return 102;case 66:return 61;case 67:return 81;case 68:return"SEP";case 69:return 80;case 70:return 95;case 71:return 63;case 72:return 62;case 73:return 65;case 74:return 64;case 75:return 106;case 76:return 107;case 77:return 71;case 78:return 49;case 79:return 50;case 80:return 40;case 81:return 41;case 82:return 59;case 83:return 60;case 84:return 117;case 85:return 21;case 86:return 22;case 87:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:click\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\()/,/^(?:\)\])/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[25,26,27,28,29,30,31,32,33,34,35],inclusive:!1},string:{rules:[8,9],inclusive:!1},INITIAL:{rules:[0,5,6,7,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87],inclusive:!0}}};function Xt(){this.yy={}}return Gt.lexer=qt,Xt.prototype=Gt,Gt.Parser=Xt,new Xt}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,3],n=[1,5],r=[7,9,11,12,13,14,15,16,17,18,20,27,32],i=[1,15],a=[1,16],o=[1,17],s=[1,18],c=[1,19],u=[1,20],l=[1,21],h=[1,23],f=[1,25],d=[1,28],p=[5,7,9,11,12,13,14,15,16,17,18,20,27,32],g={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,axisFormat:14,excludes:15,todayMarker:16,title:17,section:18,clickStatement:19,taskTxt:20,taskData:21,openDirective:22,typeDirective:23,closeDirective:24,":":25,argDirective:26,click:27,callbackname:28,callbackargs:29,href:30,clickStatementDebug:31,open_directive:32,type_directive:33,arg_directive:34,close_directive:35,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"axisFormat",15:"excludes",16:"todayMarker",17:"title",18:"section",20:"taskTxt",21:"taskData",25:":",27:"click",28:"callbackname",29:"callbackargs",30:"href",32:"open_directive",33:"type_directive",34:"arg_directive",35:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[19,2],[19,3],[19,3],[19,4],[19,3],[19,4],[19,2],[31,2],[31,3],[31,3],[31,4],[31,3],[31,4],[31,2],[22,1],[23,1],[26,1],[24,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 2:return a[s-1];case 3:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:this.$=a[s];break;case 7:case 8:this.$=[];break;case 9:r.setDateFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 10:r.enableInclusiveEndDates(),this.$=a[s].substr(18);break;case 11:r.setAxisFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 12:r.setExcludes(a[s].substr(9)),this.$=a[s].substr(9);break;case 13:r.setTodayMarker(a[s].substr(12)),this.$=a[s].substr(12);break;case 14:r.setTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 15:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 17:r.addTask(a[s-1],a[s]),this.$="task";break;case 21:this.$=a[s-1],r.setClickEvent(a[s-1],a[s],null);break;case 22:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 23:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],null),r.setLink(a[s-2],a[s]);break;case 24:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-2],a[s-1]),r.setLink(a[s-3],a[s]);break;case 25:this.$=a[s-2],r.setClickEvent(a[s-2],a[s],null),r.setLink(a[s-2],a[s-1]);break;case 26:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-1],a[s]),r.setLink(a[s-3],a[s-2]);break;case 27:this.$=a[s-1],r.setLink(a[s-1],a[s]);break;case 28:case 34:this.$=a[s-1]+" "+a[s];break;case 29:case 30:case 32:this.$=a[s-2]+" "+a[s-1]+" "+a[s];break;case 31:case 33:this.$=a[s-3]+" "+a[s-2]+" "+a[s-1]+" "+a[s];break;case 35:r.parseDirective("%%{","open_directive");break;case 36:r.parseDirective(a[s],"type_directive");break;case 37:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 38:r.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,22:4,32:n},{1:[3]},{3:6,4:2,5:e,22:4,32:n},t(r,[2,3],{6:7}),{23:8,33:[1,9]},{33:[2,35]},{1:[2,1]},{4:24,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:i,13:a,14:o,15:s,16:c,17:u,18:l,19:22,20:h,22:4,27:f,32:n},{24:26,25:[1,27],35:d},t([25,35],[2,36]),t(r,[2,8],{1:[2,2]}),t(r,[2,4]),{4:24,10:29,12:i,13:a,14:o,15:s,16:c,17:u,18:l,19:22,20:h,22:4,27:f,32:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),t(r,[2,12]),t(r,[2,13]),t(r,[2,14]),t(r,[2,15]),t(r,[2,16]),{21:[1,30]},t(r,[2,18]),{28:[1,31],30:[1,32]},{11:[1,33]},{26:34,34:[1,35]},{11:[2,38]},t(r,[2,5]),t(r,[2,17]),t(r,[2,21],{29:[1,36],30:[1,37]}),t(r,[2,27],{28:[1,38]}),t(p,[2,19]),{24:39,35:d},{35:[2,37]},t(r,[2,22],{30:[1,40]}),t(r,[2,23]),t(r,[2,25],{29:[1,41]}),{11:[1,42]},t(r,[2,24]),t(r,[2,26]),t(p,[2,20])],defaultActions:{5:[2,35],6:[2,1],28:[2,38],35:[2,37]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),32;case 1:return this.begin("type_directive"),33;case 2:return this.popState(),this.begin("arg_directive"),25;case 3:return this.popState(),this.popState(),35;case 4:return 34;case 5:case 6:case 7:break;case 8:return 11;case 9:case 10:case 11:break;case 12:this.begin("href");break;case 13:this.popState();break;case 14:return 30;case 15:this.begin("callbackname");break;case 16:this.popState();break;case 17:this.popState(),this.begin("callbackargs");break;case 18:return 28;case 19:this.popState();break;case 20:return 29;case 21:this.begin("click");break;case 22:this.popState();break;case 23:return 27;case 24:return 5;case 25:return 12;case 26:return 13;case 27:return 14;case 28:return 15;case 29:return 16;case 30:return"date";case 31:return 17;case 32:return 18;case 33:return 20;case 34:return 21;case 35:return 25;case 36:return 7;case 37:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[19,20],inclusive:!1},callbackname:{rules:[16,17,18],inclusive:!1},href:{rules:[13,14],inclusive:!1},click:{rules:[22,23],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,15,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37],inclusive:!0}}};function v(){this.yy={}}return g.lexer=y,v.prototype=g,g.Parser=v,new v}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,5],r=[6,9,11,17,18,19,21],i=[1,15],a=[1,16],o=[1,17],s=[1,21],c=[4,6,9,11,17,18,19,21],u={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,section:18,taskName:19,taskData:20,open_directive:21,type_directive:22,arg_directive:23,close_directive:24,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"section",19:"taskName",20:"taskData",21:"open_directive",22:"type_directive",23:"arg_directive",24:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 3:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:this.$=a[s];break;case 7:case 8:this.$=[];break;case 11:r.setTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 12:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 13:r.addTask(a[s-1],a[s]),this.$="task";break;case 15:r.parseDirective("%%{","open_directive");break;case 16:r.parseDirective(a[s],"type_directive");break;case 17:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 18:r.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,21:n},{1:[3]},t(r,[2,3],{5:6}),{3:7,4:e,7:3,12:4,21:n},{13:8,22:[1,9]},{22:[2,15]},{6:[1,10],7:18,8:11,9:[1,12],10:13,11:[1,14],12:4,17:i,18:a,19:o,21:n},{1:[2,2]},{14:19,15:[1,20],24:s},t([15,24],[2,16]),t(r,[2,8],{1:[2,1]}),t(r,[2,4]),{7:18,10:22,12:4,17:i,18:a,19:o,21:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,11]),t(r,[2,12]),{20:[1,23]},t(r,[2,14]),{11:[1,24]},{16:25,23:[1,26]},{11:[2,18]},t(r,[2,5]),t(r,[2,13]),t(c,[2,9]),{14:27,24:s},{24:[2,17]},{11:[1,28]},t(c,[2,10])],defaultActions:{5:[2,15],7:[2,2],21:[2,18],26:[2,17]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},l={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),21;case 1:return this.begin("type_directive"),22;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),24;case 4:return 23;case 5:case 6:break;case 7:return 11;case 8:case 9:break;case 10:return 4;case 11:return 17;case 12:return 18;case 13:return 19;case 14:return 20;case 15:return 15;case 16:return 6;case 17:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};function h(){this.yy={}}return u.lexer=l,h.prototype=u,u.Parser=h,new h}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(15);e.default=function(t,e){return r.default.lang.round(i.default.parse(t)[e])}},function(t,e,n){var r=n(112),i=n(82),a=n(24);t.exports=function(t){return a(t)?r(t):i(t)}},function(t,e,n){var r;if(!r)try{r=n(0)}catch(t){}r||(r=window.d3),t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(15);e.default=function(t,e,n){var a=i.default.parse(t),o=a[e],s=r.default.channel.clamp[e](o+n);return o!==s&&(a[e]=s),i.default.stringify(a)}},function(t,e,n){var r=n(210),i=n(216);t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},function(t,e,n){var r=n(38),i=n(212),a=n(213),o=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":o&&o in Object(t)?i(t):a(t)}},function(t,e){t.exports=function(t){return t}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(34),i=n(11);t.exports=function(t){if(!i(t))return!1;var e=r(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},function(t,e,n){var r=n(16).Symbol;t.exports=r},function(t,e,n){(function(t){var r=n(16),i=n(232),a=e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(this,n(7)(t))},function(t,e,n){var r=n(112),i=n(236),a=n(24);t.exports=function(t){return a(t)?r(t,!0):i(t)}},function(t,e,n){var r=n(241),i=n(77),a=n(242),o=n(121),s=n(243),c=n(34),u=n(110),l=u(r),h=u(i),f=u(a),d=u(o),p=u(s),g=c;(r&&"[object DataView]"!=g(new r(new ArrayBuffer(1)))||i&&"[object Map]"!=g(new i)||a&&"[object Promise]"!=g(a.resolve())||o&&"[object Set]"!=g(new o)||s&&"[object WeakMap]"!=g(new s))&&(g=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case l:return"[object DataView]";case h:return"[object Map]";case f:return"[object Promise]";case d:return"[object Set]";case p:return"[object WeakMap]"}return e}),t.exports=g},function(t,e,n){var r=n(34),i=n(21);t.exports=function(t){return"symbol"==typeof t||i(t)&&"[object Symbol]"==r(t)}},function(t,e,n){var r;try{r={defaults:n(154),each:n(87),isFunction:n(37),isPlainObject:n(158),pick:n(161),has:n(93),range:n(162),uniqueId:n(163)}}catch(t){}r||(r=window._),t.exports=r},function(t){t.exports=JSON.parse('{"name":"mermaid","version":"8.8.3","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --progress --colors","build:production":"yarn build:development -p --config webpack.config.prod.babel.js","build":"yarn build:development && yarn build:production","postbuild":"documentation build src/mermaidAPI.js src/config.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build --watch","minify":"minify ./dist/mermaid.js > ./dist/mermaid.min.js","release":"yarn build","lint":"eslint src","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"yarn build"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","babel-eslint":"^10.1.0","d3":"^5.7.0","dagre":"^0.8.4","dagre-d3":"^0.6.4","entity-decode":"^2.0.2","graphlib":"^2.1.7","he":"^1.2.0","khroma":"^1.1.0","minify":"^4.1.1","moment-mini":"^2.22.1","stylis":"^3.5.2"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.8.4","@babel/register":"^7.0.0","@percy/cypress":"*","babel-core":"7.0.0-bridge.0","babel-jest":"^24.9.0","babel-loader":"^8.0.4","coveralls":"^3.0.2","css-loader":"^2.0.1","css-to-string-loader":"^0.1.3","cypress":"4.0.1","documentation":"^12.0.1","eslint":"^6.3.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.0","husky":"^1.2.1","identity-obj-proxy":"^3.0.0","jest":"^24.9.0","jison":"^0.4.18","moment":"^2.23.0","node-sass":"^4.12.0","prettier":"^1.18.2","puppeteer":"^1.17.0","sass-loader":"^7.1.0","start-server-and-test":"^1.10.6","terser-webpack-plugin":"^2.2.2","webpack":"^4.41.2","webpack-bundle-analyzer":"^3.7.0","webpack-cli":"^3.1.2","webpack-dev-server":"^3.4.1","webpack-node-externals":"^1.7.2","yarn-upgrade-all":"^0.5.0"},"files":["dist"],"yarn-upgrade-all":{"ignore":["babel-core"]},"sideEffects":["**/*.css","**/*.scss"],"husky":{"hooks":{"pre-push":"yarn test"}}}')},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=new(n(176).default)({r:0,g:0,b:0,a:0},"transparent");e.default=r},function(t,e,n){var r=n(58),i=n(59);t.exports=function(t,e,n,a){var o=!n;n||(n={});for(var s=-1,c=e.length;++s-1&&t%1==0&&t-1}(s)?s:(n=s.match(a))?(e=n[0],r.test(e)?"about:blank":s):"about:blank"}}},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],i=[7,11,12,15,17,19,20,21],a=[2,20],o=[1,32],s={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:return r.setDirection(a[s-3]),a[s-1];case 4:r.setOptions(a[s-1]),this.$=a[s];break;case 5:a[s-1]+=a[s],this.$=a[s-1];break;case 7:this.$=[];break;case 8:a[s-1].push(a[s]),this.$=a[s-1];break;case 9:this.$=a[s-1];break;case 11:r.commit(a[s]);break;case 12:r.branch(a[s]);break;case 13:r.checkout(a[s]);break;case 14:r.merge(a[s]);break;case 15:r.reset(a[s]);break;case 16:this.$="";break;case 17:this.$=a[s];break;case 18:this.$=a[s-1]+":"+a[s];break;case 19:this.$=a[s-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:n},{5:[1,8]},{7:[1,9]},t(r,[2,7],{10:10,11:[1,11]}),t(i,[2,6]),{6:12,7:e,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(i,[2,5]),{7:[1,21]},t(r,[2,8]),{12:[1,22]},t(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:a,25:31,26:o},{12:a,25:33,26:o},{12:[2,18]},{12:a,25:34,26:o},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},c={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 12;case 1:case 2:case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin("options");break;case 15:this.popState();break;case 16:return 11;case 17:this.begin("string");break;case 18:this.popState();break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][-_\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};function u(){this.yy={}}return s.lexer=c,u.prototype=s,s.Parser=u,new u}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,r,i,a,o){a.length;switch(i){case 1:return r;case 4:break;case 6:r.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function i(){this.yy={}}return n.lexer=r,i.prototype=n,n.Parser=i,new i}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,4],n=[1,5],r=[1,6],i=[1,7],a=[1,9],o=[1,10,12,19,20,21,22],s=[1,6,10,12,19,20,21,22],c=[19,20,21],u=[1,22],l=[6,19,20,21,22],h={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,NEWLINE:19,";":20,EOF:21,open_directive:22,type_directive:23,arg_directive:24,close_directive:25,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",10:"txt",11:"value",12:"title",13:"title_value",17:":",19:"NEWLINE",20:";",21:"EOF",22:"open_directive",23:"type_directive",24:"arg_directive",25:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,2],[9,1],[5,3],[5,5],[4,1],[4,1],[4,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 6:this.$=a[s-1];break;case 8:r.addSection(a[s-1],r.cleanupValue(a[s]));break;case 9:this.$=a[s].trim(),r.setTitle(this.$);break;case 16:r.parseDirective("%%{","open_directive");break;case 17:r.parseDirective(a[s],"type_directive");break;case 18:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 19:r.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,14:8,19:n,20:r,21:i,22:a},{1:[3]},{3:10,4:2,5:3,6:e,14:8,19:n,20:r,21:i,22:a},{3:11,4:2,5:3,6:e,14:8,19:n,20:r,21:i,22:a},t(o,[2,4],{7:12}),t(s,[2,13]),t(s,[2,14]),t(s,[2,15]),{15:13,23:[1,14]},{23:[2,16]},{1:[2,1]},{1:[2,2]},t(c,[2,7],{14:8,8:15,9:16,5:19,1:[2,3],10:[1,17],12:[1,18],22:a}),{16:20,17:[1,21],25:u},t([17,25],[2,17]),t(o,[2,5]),{4:23,19:n,20:r,21:i},{11:[1,24]},{13:[1,25]},t(c,[2,10]),t(l,[2,11]),{18:26,24:[1,27]},t(l,[2,19]),t(o,[2,6]),t(c,[2,8]),t(c,[2,9]),{16:28,25:u},{25:[2,18]},t(l,[2,12])],defaultActions:{9:[2,16],10:[2,1],11:[2,2],27:[2,18]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},f={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),22;case 1:return this.begin("type_directive"),23;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),25;case 4:return 24;case 5:case 6:break;case 7:return 19;case 8:case 9:break;case 10:return this.begin("title"),12;case 11:return this.popState(),"title_value";case 12:this.begin("string");break;case 13:this.popState();break;case 14:return"txt";case 15:return 6;case 16:return"value";case 17:return 21}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,15,16,17],inclusive:!0}}};function d(){this.yy={}}return h.lexer=f,d.prototype=h,h.Parser=d,new d}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,5],r=[6,9,11,20,30],i=[1,17],a=[1,20],o=[1,24],s=[1,25],c=[1,26],u=[1,27],l=[20,27,28],h=[4,6,9,11,20,30],f=[23,24,25,26],d={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,ALPHANUM:20,cardinality:21,relType:22,ZERO_OR_ONE:23,ZERO_OR_MORE:24,ONE_OR_MORE:25,ONLY_ONE:26,NON_IDENTIFYING:27,IDENTIFYING:28,WORD:29,open_directive:30,type_directive:31,arg_directive:32,close_directive:33,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"ALPHANUM",23:"ZERO_OR_ONE",24:"ZERO_OR_MORE",25:"ONE_OR_MORE",26:"ONLY_ONE",27:"NON_IDENTIFYING",28:"IDENTIFYING",29:"WORD",30:"open_directive",31:"type_directive",32:"arg_directive",33:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,1],[17,1],[18,3],[21,1],[21,1],[21,1],[21,1],[22,1],[22,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:break;case 3:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:this.$=a[s];break;case 7:case 8:this.$=[];break;case 12:r.addEntity(a[s-4]),r.addEntity(a[s-2]),r.addRelationship(a[s-4],a[s],a[s-2],a[s-3]);break;case 13:r.addEntity(a[s]);break;case 14:this.$=a[s];break;case 15:this.$={cardA:a[s],relType:a[s-1],cardB:a[s-2]};break;case 16:this.$=r.Cardinality.ZERO_OR_ONE;break;case 17:this.$=r.Cardinality.ZERO_OR_MORE;break;case 18:this.$=r.Cardinality.ONE_OR_MORE;break;case 19:this.$=r.Cardinality.ONLY_ONE;break;case 20:this.$=r.Identification.NON_IDENTIFYING;break;case 21:this.$=r.Identification.IDENTIFYING;break;case 22:this.$=a[s].replace(/"/g,"");break;case 23:this.$=a[s];break;case 24:r.parseDirective("%%{","open_directive");break;case 25:r.parseDirective(a[s],"type_directive");break;case 26:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 27:r.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,30:n},{1:[3]},t(r,[2,3],{5:6}),{3:7,4:e,7:3,12:4,30:n},{13:8,31:[1,9]},{31:[2,24]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,20:i,30:n},{1:[2,2]},{14:18,15:[1,19],33:a},t([15,33],[2,25]),t(r,[2,8],{1:[2,1]}),t(r,[2,4]),{7:15,10:21,12:4,17:16,20:i,30:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,11]),t(r,[2,13],{18:22,21:23,23:o,24:s,25:c,26:u}),t([6,9,11,15,20,23,24,25,26,30],[2,14]),{11:[1,28]},{16:29,32:[1,30]},{11:[2,27]},t(r,[2,5]),{17:31,20:i},{22:32,27:[1,33],28:[1,34]},t(l,[2,16]),t(l,[2,17]),t(l,[2,18]),t(l,[2,19]),t(h,[2,9]),{14:35,33:a},{33:[2,26]},{15:[1,36]},{21:37,23:o,24:s,25:c,26:u},t(f,[2,20]),t(f,[2,21]),{11:[1,38]},{19:39,20:[1,41],29:[1,40]},{20:[2,15]},t(h,[2,10]),t(r,[2,12]),t(r,[2,22]),t(r,[2,23])],defaultActions:{5:[2,24],7:[2,2],20:[2,27],30:[2,26],37:[2,15]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,u=0,l=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var x,_,k,w,E,T,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==x&&(x=b()),w=o[k]&&o[k][x]),void 0===w||!w.length||!w[0]){var O="";for(T in A=[],o[k])this.terminals_[T]&&T>h&&A.push("'"+this.terminals_[T]+"'");O=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(x==f?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:v,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(w[0]){case 1:n.push(x),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),x=null,_?(x=_,_=null):(u=p.yyleng,s=p.yytext,c=p.yylineno,v=p.yylloc,l>0&&l--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},m&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(M,[s,u,c,g.yy,w[1],i,a].concat(d))))return E;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},p={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),30;case 1:return this.begin("type_directive"),31;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),33;case 4:return 32;case 5:case 6:break;case 7:return 11;case 8:break;case 9:return 9;case 10:return 29;case 11:return 4;case 12:return 23;case 13:return 24;case 14:return 25;case 15:return 26;case 16:return 23;case 17:return 24;case 18:return 25;case 19:return 27;case 20:return 28;case 21:case 22:return 27;case 23:return 20;case 24:return e.yytext[0];case 25:return 6}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};function g(){this.yy={}}return d.lexer=p,g.prototype=d,d.Parser=g,new g}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(19).readFileSync(n(20).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(14),n(7)(t))},function(t,e,n){"use strict";var r;Object.defineProperty(e,"__esModule",{value:!0}),function(t){t[t.ALL=0]="ALL",t[t.RGB=1]="RGB",t[t.HSL=2]="HSL"}(r||(r={})),e.TYPE=r},function(t,e,n){"use strict";var r=n(10);t.exports=i;function i(t){this._isDirected=!r.has(t,"directed")||t.directed,this._isMultigraph=!!r.has(t,"multigraph")&&t.multigraph,this._isCompound=!!r.has(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=r.constant(void 0),this._defaultEdgeLabelFn=r.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function a(t,e){t[e]?t[e]++:t[e]=1}function o(t,e){--t[e]||delete t[e]}function s(t,e,n,i){var a=""+e,o=""+n;if(!t&&a>o){var s=a;a=o,o=s}return a+""+o+""+(r.isUndefined(i)?"\0":i)}function c(t,e,n,r){var i=""+e,a=""+n;if(!t&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function u(t,e){return s(t,e.v,e.w,e.name)}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(t){return this._label=t,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return r.keys(this._nodes)},i.prototype.sources=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._in[e])}))},i.prototype.sinks=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._out[e])}))},i.prototype.setNodes=function(t,e){var n=arguments,i=this;return r.each(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this},i.prototype.setNode=function(t,e){return r.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]="\0",this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(t){return this._nodes[t]},i.prototype.hasNode=function(t){return r.has(this._nodes,t)},i.prototype.removeNode=function(t){var e=this;if(r.has(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],r.each(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),r.each(r.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],r.each(r.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(e))e="\0";else{for(var n=e+="";!r.isUndefined(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this},i.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},i.prototype.parent=function(t){if(this._isCompound){var e=this._parent[t];if("\0"!==e)return e}},i.prototype.children=function(t){if(r.isUndefined(t)&&(t="\0"),this._isCompound){var e=this._children[t];if(e)return r.keys(e)}else{if("\0"===t)return this.nodes();if(this.hasNode(t))return[]}},i.prototype.predecessors=function(t){var e=this._preds[t];if(e)return r.keys(e)},i.prototype.successors=function(t){var e=this._sucs[t];if(e)return r.keys(e)},i.prototype.neighbors=function(t){var e=this.predecessors(t);if(e)return r.union(e,this.successors(t))},i.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},i.prototype.filterNodes=function(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;r.each(this._nodes,(function(n,r){t(r)&&e.setNode(r,n)})),r.each(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};return this._isCompound&&r.each(e.nodes(),(function(t){e.setParent(t,function t(r){var a=n.parent(r);return void 0===a||e.hasNode(a)?(i[r]=a,a):a in i?i[a]:t(a)}(t))})),e},i.prototype.setDefaultEdgeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return r.values(this._edgeObjs)},i.prototype.setPath=function(t,e){var n=this,i=arguments;return r.reduce(t,(function(t,r){return i.length>1?n.setEdge(t,r,e):n.setEdge(t,r),r})),this},i.prototype.setEdge=function(){var t,e,n,i,o=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(t=u.v,e=u.w,n=u.name,2===arguments.length&&(i=arguments[1],o=!0)):(t=u,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=""+t,e=""+e,r.isUndefined(n)||(n=""+n);var l=s(this._isDirected,t,e,n);if(r.has(this._edgeLabels,l))return o&&(this._edgeLabels[l]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[l]=o?i:this._defaultEdgeLabelFn(t,e,n);var h=c(this._isDirected,t,e,n);return t=h.v,e=h.w,Object.freeze(h),this._edgeObjs[l]=h,a(this._preds[e],t),a(this._sucs[t],e),this._in[e][l]=h,this._out[t][l]=h,this._edgeCount++,this},i.prototype.edge=function(t,e,n){var r=1===arguments.length?u(this._isDirected,arguments[0]):s(this._isDirected,t,e,n);return this._edgeLabels[r]},i.prototype.hasEdge=function(t,e,n){var i=1===arguments.length?u(this._isDirected,arguments[0]):s(this._isDirected,t,e,n);return r.has(this._edgeLabels,i)},i.prototype.removeEdge=function(t,e,n){var r=1===arguments.length?u(this._isDirected,arguments[0]):s(this._isDirected,t,e,n),i=this._edgeObjs[r];return i&&(t=i.v,e=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],o(this._preds[e],t),o(this._sucs[t],e),delete this._in[e][r],delete this._out[t][r],this._edgeCount--),this},i.prototype.inEdges=function(t,e){var n=this._in[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.v===e})):i}},i.prototype.outEdges=function(t,e){var n=this._out[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.w===e})):i}},i.prototype.nodeEdges=function(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}},function(t,e,n){var r=n(33)(n(16),"Map");t.exports=r},function(t,e,n){var r=n(217),i=n(224),a=n(226),o=n(227),s=n(228);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){(function(t){var r=n(109),i=e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=s}).call(this,n(7)(t))},function(t,e,n){var r=n(62),i=n(234),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))a.call(t,n)&&"constructor"!=n&&e.push(n);return e}},function(t,e,n){var r=n(116),i=n(117),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(t){return null==t?[]:(t=Object(t),r(o(t),(function(e){return a.call(t,e)})))}:i;t.exports=s},function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n0&&a(l)?n>1?t(l,n-1,a,o,s):r(s,l):o||(s[s.length]=l)}return s}},function(t,e,n){var r=n(42);t.exports=function(t,e,n){for(var i=-1,a=t.length;++i4,u=c?1:17,l=c?8:4,h=s?0:-1,f=c?255:15;return i.default.set({r:(r>>l*(h+3)&f)*u,g:(r>>l*(h+2)&f)*u,b:(r>>l*(h+1)&f)*u,a:s?(r&f)*u/255:1},t)}}},stringify:function(t){return t.a<1?"#"+a.DEC2HEX[Math.round(t.r)]+a.DEC2HEX[Math.round(t.g)]+a.DEC2HEX[Math.round(t.b)]+r.default.unit.frac2hex(t.a):"#"+a.DEC2HEX[Math.round(t.r)]+a.DEC2HEX[Math.round(t.g)]+a.DEC2HEX[Math.round(t.b)]}};e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(45),a=n(15);e.default=function(t,e,n,o){void 0===o&&(o=1);var s=i.default.set({h:r.default.channel.clamp.h(t),s:r.default.channel.clamp.s(e),l:r.default.channel.clamp.l(n),a:r.default.channel.clamp.a(o)});return a.default.stringify(s)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"a")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(15);e.default=function(t){var e=i.default.parse(t),n=e.r,a=e.g,o=e.b,s=.2126*r.default.channel.toLinear(n)+.7152*r.default.channel.toLinear(a)+.0722*r.default.channel.toLinear(o);return r.default.lang.round(s)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(102);e.default=function(t){return r.default(t)>=.5}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"a",e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"a",-e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(15),i=n(52);e.default=function(t,e){var n=r.default.parse(t),a={};for(var o in e)e[o]&&(a[o]=n[o]+e[o]);return i.default(t,a)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(15),i=n(51);e.default=function(t,e,n){void 0===n&&(n=50);var a=r.default.parse(t),o=a.r,s=a.g,c=a.b,u=a.a,l=r.default.parse(e),h=l.r,f=l.g,d=l.b,p=l.a,g=n/100,y=2*g-1,v=u-p,m=((y*v==-1?y:(y+v)/(1+y*v))+1)/2,b=1-m,x=o*m+h*b,_=s*m+f*b,k=c*m+d*b,w=u*g+p*(1-g);return i.default(x,_,k,w)}},function(t,e,n){var r=n(53),i=n(79),a=n(58),o=n(229),s=n(235),c=n(114),u=n(115),l=n(238),h=n(239),f=n(119),d=n(240),p=n(41),g=n(244),y=n(245),v=n(124),m=n(5),b=n(39),x=n(249),_=n(11),k=n(251),w=n(30),E={};E["[object Arguments]"]=E["[object Array]"]=E["[object ArrayBuffer]"]=E["[object DataView]"]=E["[object Boolean]"]=E["[object Date]"]=E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Map]"]=E["[object Number]"]=E["[object Object]"]=E["[object RegExp]"]=E["[object Set]"]=E["[object String]"]=E["[object Symbol]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E["[object Error]"]=E["[object Function]"]=E["[object WeakMap]"]=!1,t.exports=function t(e,n,T,C,S,A){var M,O=1&n,D=2&n,N=4&n;if(T&&(M=S?T(e,C,S,A):T(e)),void 0!==M)return M;if(!_(e))return e;var B=m(e);if(B){if(M=g(e),!O)return u(e,M)}else{var L=p(e),F="[object Function]"==L||"[object GeneratorFunction]"==L;if(b(e))return c(e,O);if("[object Object]"==L||"[object Arguments]"==L||F&&!S){if(M=D||F?{}:v(e),!O)return D?h(e,s(M,e)):l(e,o(M,e))}else{if(!E[L])return S?e:{};M=y(e,L,O)}}A||(A=new r);var P=A.get(e);if(P)return P;A.set(e,M),k(e)?e.forEach((function(r){M.add(t(r,n,T,r,e,A))})):x(e)&&e.forEach((function(r,i){M.set(i,t(r,n,T,i,e,A))}));var I=N?D?d:f:D?keysIn:w,j=B?void 0:I(e);return i(j||e,(function(r,i){j&&(r=e[i=r]),a(M,i,t(r,n,T,i,e,A))})),M}},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,n(211))},function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,e,n){var r=n(33),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},function(t,e,n){var r=n(230),i=n(47),a=n(5),o=n(39),s=n(60),c=n(48),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),l=!n&&i(t),h=!n&&!l&&o(t),f=!n&&!l&&!h&&c(t),d=n||l||h||f,p=d?r(t.length,String):[],g=p.length;for(var y in t)!e&&!u.call(t,y)||d&&("length"==y||h&&("offset"==y||"parent"==y)||f&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,g))||p.push(y);return p}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e,n){(function(t){var r=n(16),i=e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=s?s(n):new t.constructor(n);return t.copy(r),r}}).call(this,n(7)(t))},function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++nl))return!1;var f=c.get(t);if(f&&c.get(e))return f==e;var d=-1,p=!0,g=2&n?new r:void 0;for(c.set(t,e),c.set(e,t);++d0&&(a=c.removeMin(),(o=s[a]).distance!==Number.POSITIVE_INFINITY);)r(a).forEach(u);return s}(t,String(e),n||a,r||function(e){return t.outEdges(e)})};var a=r.constant(1)},function(t,e,n){var r=n(10);function i(){this._arr=[],this._keyIndices={}}t.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map((function(t){return t.key}))},i.prototype.has=function(t){return r.has(this._keyIndices,t)},i.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(t,e){var n=this._keyIndices;if(t=String(t),!r.has(n,t)){var i=this._arr,a=i.length;return n[t]=a,i.push({key:t,priority:e}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},i.prototype.decrease=function(t,e){var n=this._keyIndices[t];if(e>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},i.prototype._heapify=function(t){var e=this._arr,n=2*t,r=n+1,i=t;n>1].priority2?e[2]:void 0;for(u&&a(e[0],e[1],u)&&(r=1);++n1&&o.sort((function(t,e){var r=t.x-n.x,i=t.y-n.y,a=Math.sqrt(r*r+i*i),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return aMath.abs(o)*u?(s<0&&(u=-u),n=0===s?0:u*o/s,r=u):(o<0&&(c=-c),n=c,r=0===o?0:c*s/o);return{x:i+n,y:a+r}}},function(t,e,n){t.exports=function t(e){"use strict";var n=/^\0+/g,r=/[\0\r\f]/g,i=/: */g,a=/zoo|gra/,o=/([,: ])(transform)/g,s=/,+\s*(?![^(]*[)])/g,c=/ +\s*(?![^(]*[)])/g,u=/ *[\0] */g,l=/,\r+?/g,h=/([\t\r\n ])*\f?&/g,f=/:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g,d=/\W+/g,p=/@(k\w+)\s*(\S*)\s*/,g=/::(place)/g,y=/:(read-only)/g,v=/\s+(?=[{\];=:>])/g,m=/([[}=:>])\s+/g,b=/(\{[^{]+?);(?=\})/g,x=/\s{2,}/g,_=/([^\(])(:+) */g,k=/[svh]\w+-[tblr]{2}/,w=/\(\s*(.*)\s*\)/g,E=/([\s\S]*?);/g,T=/-self|flex-/g,C=/[^]*?(:[rp][el]a[\w-]+)[^]*/,S=/stretch|:\s*\w+\-(?:conte|avail)/,A=/([^-])(image-set\()/,M="-webkit-",O="-moz-",D="-ms-",N=1,B=1,L=0,F=1,P=1,I=1,j=0,R=0,Y=0,z=[],U=[],$=0,W=null,V=0,H=1,G="",q="",X="";function Z(t,e,i,a,o){for(var s,c,l=0,h=0,f=0,d=0,v=0,m=0,b=0,x=0,k=0,E=0,T=0,C=0,S=0,A=0,O=0,D=0,j=0,U=0,W=0,Q=i.length,it=Q-1,at="",ot="",st="",ct="",ut="",lt="";O0&&(ot=ot.replace(r,"")),ot.trim().length>0)){switch(b){case 32:case 9:case 59:case 13:case 10:break;default:ot+=i.charAt(O)}b=59}if(1===j)switch(b){case 123:case 125:case 59:case 34:case 39:case 40:case 41:case 44:j=0;case 9:case 13:case 10:case 32:break;default:for(j=0,W=O,v=b,O--,b=59;W0&&(++O,b=v);case 123:W=Q}}switch(b){case 123:for(v=(ot=ot.trim()).charCodeAt(0),T=1,W=++O;O0&&(ot=ot.replace(r,"")),m=ot.charCodeAt(1)){case 100:case 109:case 115:case 45:s=e;break;default:s=z}if(W=(st=Z(e,s,st,m,o+1)).length,Y>0&&0===W&&(W=ot.length),$>0&&(c=nt(3,st,s=J(z,ot,U),e,B,N,W,m,o,a),ot=s.join(""),void 0!==c&&0===(W=(st=c.trim()).length)&&(m=0,st="")),W>0)switch(m){case 115:ot=ot.replace(w,et);case 100:case 109:case 45:st=ot+"{"+st+"}";break;case 107:st=(ot=ot.replace(p,"$1 $2"+(H>0?G:"")))+"{"+st+"}",st=1===P||2===P&&tt("@"+st,3)?"@"+M+st+"@"+st:"@"+st;break;default:st=ot+st,112===a&&(ct+=st,st="")}else st="";break;default:st=Z(e,J(e,ot,U),st,a,o+1)}ut+=st,C=0,j=0,A=0,D=0,U=0,S=0,ot="",st="",b=i.charCodeAt(++O);break;case 125:case 59:if((W=(ot=(D>0?ot.replace(r,""):ot).trim()).length)>1)switch(0===A&&(45===(v=ot.charCodeAt(0))||v>96&&v<123)&&(W=(ot=ot.replace(" ",":")).length),$>0&&void 0!==(c=nt(1,ot,e,t,B,N,ct.length,a,o,a))&&0===(W=(ot=c.trim()).length)&&(ot="\0\0"),v=ot.charCodeAt(0),m=ot.charCodeAt(1),v){case 0:break;case 64:if(105===m||99===m){lt+=ot+i.charAt(O);break}default:if(58===ot.charCodeAt(W-1))break;ct+=K(ot,v,m,ot.charCodeAt(2))}C=0,j=0,A=0,D=0,U=0,ot="",b=i.charCodeAt(++O)}}switch(b){case 13:case 10:if(h+d+f+l+R===0)switch(E){case 41:case 39:case 34:case 64:case 126:case 62:case 42:case 43:case 47:case 45:case 58:case 44:case 59:case 123:case 125:break;default:A>0&&(j=1)}47===h?h=0:F+C===0&&107!==a&&ot.length>0&&(D=1,ot+="\0"),$*V>0&&nt(0,ot,e,t,B,N,ct.length,a,o,a),N=1,B++;break;case 59:case 125:if(h+d+f+l===0){N++;break}default:switch(N++,at=i.charAt(O),b){case 9:case 32:if(d+l+h===0)switch(x){case 44:case 58:case 9:case 32:at="";break;default:32!==b&&(at=" ")}break;case 0:at="\\0";break;case 12:at="\\f";break;case 11:at="\\v";break;case 38:d+h+l===0&&F>0&&(U=1,D=1,at="\f"+at);break;case 108:if(d+h+l+L===0&&A>0)switch(O-A){case 2:112===x&&58===i.charCodeAt(O-3)&&(L=x);case 8:111===k&&(L=k)}break;case 58:d+h+l===0&&(A=O);break;case 44:h+f+d+l===0&&(D=1,at+="\r");break;case 34:case 39:0===h&&(d=d===b?0:0===d?b:d);break;case 91:d+h+f===0&&l++;break;case 93:d+h+f===0&&l--;break;case 41:d+h+l===0&&f--;break;case 40:if(d+h+l===0){if(0===C)switch(2*x+3*k){case 533:break;default:T=0,C=1}f++}break;case 64:h+f+d+l+A+S===0&&(S=1);break;case 42:case 47:if(d+l+f>0)break;switch(h){case 0:switch(2*b+3*i.charCodeAt(O+1)){case 235:h=47;break;case 220:W=O,h=42}break;case 42:47===b&&42===x&&W+2!==O&&(33===i.charCodeAt(W+2)&&(ct+=i.substring(W,O+1)),at="",h=0)}}if(0===h){if(F+d+l+S===0&&107!==a&&59!==b)switch(b){case 44:case 126:case 62:case 43:case 41:case 40:if(0===C){switch(x){case 9:case 32:case 10:case 13:at+="\0";break;default:at="\0"+at+(44===b?"":"\0")}D=1}else switch(b){case 40:A+7===O&&108===x&&(A=0),C=++T;break;case 41:0==(C=--T)&&(D=1,at+="\0")}break;case 9:case 32:switch(x){case 0:case 123:case 125:case 59:case 44:case 12:case 9:case 32:case 10:case 13:break;default:0===C&&(D=1,at+="\0")}}ot+=at,32!==b&&9!==b&&(E=b)}}k=x,x=b,O++}if(W=ct.length,Y>0&&0===W&&0===ut.length&&0===e[0].length==0&&(109!==a||1===e.length&&(F>0?q:X)===e[0])&&(W=e.join(",").length+2),W>0){if(s=0===F&&107!==a?function(t){for(var e,n,i=0,a=t.length,o=Array(a);i1)){if(f=c.charCodeAt(c.length-1),d=n.charCodeAt(0),e="",0!==l)switch(f){case 42:case 126:case 62:case 43:case 32:case 40:break;default:e=" "}switch(d){case 38:n=e+q;case 126:case 62:case 43:case 32:case 41:case 40:break;case 91:n=e+n+q;break;case 58:switch(2*n.charCodeAt(1)+3*n.charCodeAt(2)){case 530:if(I>0){n=e+n.substring(8,h-1);break}default:(l<1||s[l-1].length<1)&&(n=e+q+n)}break;case 44:e="";default:n=h>1&&n.indexOf(":")>0?e+n.replace(_,"$1"+q+"$2"):e+n+q}c+=n}o[i]=c.replace(r,"").trim()}return o}(e):e,$>0&&void 0!==(c=nt(2,ct,s,t,B,N,W,a,o,a))&&0===(ct=c).length)return lt+ct+ut;if(ct=s.join(",")+"{"+ct+"}",P*L!=0){switch(2!==P||tt(ct,2)||(L=0),L){case 111:ct=ct.replace(y,":-moz-$1")+ct;break;case 112:ct=ct.replace(g,"::-webkit-input-$1")+ct.replace(g,"::-moz-$1")+ct.replace(g,":-ms-input-$1")+ct}L=0}}return lt+ct+ut}function J(t,e,n){var r=e.trim().split(l),i=r,a=r.length,o=t.length;switch(o){case 0:case 1:for(var s=0,c=0===o?"":t[0]+" ";s0&&F>0)return i.replace(f,"$1").replace(h,"$1"+X);break;default:return t.trim()+i.replace(h,"$1"+t.trim())}default:if(n*F>0&&i.indexOf("\f")>0)return i.replace(h,(58===t.charCodeAt(0)?"":"$1")+t.trim())}return t+i}function K(t,e,n,r){var u,l=0,h=t+";",f=2*e+3*n+4*r;if(944===f)return function(t){var e=t.length,n=t.indexOf(":",9)+1,r=t.substring(0,n).trim(),i=t.substring(n,e-1).trim();switch(t.charCodeAt(9)*H){case 0:break;case 45:if(110!==t.charCodeAt(10))break;default:var a=i.split((i="",s)),o=0;for(n=0,e=a.length;o64&&h<90||h>96&&h<123||95===h||45===h&&45!==u.charCodeAt(1)))switch(isNaN(parseFloat(u))+(-1!==u.indexOf("("))){case 1:switch(u){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:u+=G}}l[n++]=u}i+=(0===o?"":",")+l.join(" ")}}return i=r+i+";",1===P||2===P&&tt(i,1)?M+i+i:i}(h);if(0===P||2===P&&!tt(h,1))return h;switch(f){case 1015:return 97===h.charCodeAt(10)?M+h+h:h;case 951:return 116===h.charCodeAt(3)?M+h+h:h;case 963:return 110===h.charCodeAt(5)?M+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return M+h+h;case 978:return M+h+O+h+h;case 1019:case 983:return M+h+O+h+D+h+h;case 883:return 45===h.charCodeAt(8)?M+h+h:h.indexOf("image-set(",11)>0?h.replace(A,"$1-webkit-$2")+h:h;case 932:if(45===h.charCodeAt(4))switch(h.charCodeAt(5)){case 103:return M+"box-"+h.replace("-grow","")+M+h+D+h.replace("grow","positive")+h;case 115:return M+h+D+h.replace("shrink","negative")+h;case 98:return M+h+D+h.replace("basis","preferred-size")+h}return M+h+D+h+h;case 964:return M+h+D+"flex-"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return u=h.substring(h.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),M+"box-pack"+u+M+h+D+"flex-pack"+u+h;case 1005:return a.test(h)?h.replace(i,":"+M)+h.replace(i,":"+O)+h:h;case 1e3:switch(l=(u=h.substring(13).trim()).indexOf("-")+1,u.charCodeAt(0)+u.charCodeAt(l)){case 226:u=h.replace(k,"tb");break;case 232:u=h.replace(k,"tb-rl");break;case 220:u=h.replace(k,"lr");break;default:return h}return M+h+D+u+h;case 1017:if(-1===h.indexOf("sticky",9))return h;case 975:switch(l=(h=t).length-10,f=(u=(33===h.charCodeAt(l)?h.substring(0,l):h).substring(t.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|u.charCodeAt(7))){case 203:if(u.charCodeAt(8)<111)break;case 115:h=h.replace(u,M+u)+";"+h;break;case 207:case 102:h=h.replace(u,M+(f>102?"inline-":"")+"box")+";"+h.replace(u,M+u)+";"+h.replace(u,D+u+"box")+";"+h}return h+";";case 938:if(45===h.charCodeAt(5))switch(h.charCodeAt(6)){case 105:return u=h.replace("-items",""),M+h+M+"box-"+u+D+"flex-"+u+h;case 115:return M+h+D+"flex-item-"+h.replace(T,"")+h;default:return M+h+D+"flex-line-pack"+h.replace("align-content","").replace(T,"")+h}break;case 973:case 989:if(45!==h.charCodeAt(3)||122===h.charCodeAt(4))break;case 931:case 953:if(!0===S.test(t))return 115===(u=t.substring(t.indexOf(":")+1)).charCodeAt(0)?K(t.replace("stretch","fill-available"),e,n,r).replace(":fill-available",":stretch"):h.replace(u,M+u)+h.replace(u,O+u.replace("fill-",""))+h;break;case 962:if(h=M+h+(102===h.charCodeAt(5)?D+h:"")+h,n+r===211&&105===h.charCodeAt(13)&&h.indexOf("transform",10)>0)return h.substring(0,h.indexOf(";",27)+1).replace(o,"$1-webkit-$2")+h}return h}function tt(t,e){var n=t.indexOf(1===e?":":"{"),r=t.substring(0,3!==e?n:10),i=t.substring(n+1,t.length-1);return W(2!==e?r:r.replace(C,"$1"),i,e)}function et(t,e){var n=K(e,e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2));return n!==e+";"?n.replace(E," or ($1)").substring(4):"("+e+")"}function nt(t,e,n,r,i,a,o,s,c,u){for(var l,h=0,f=e;h<$;++h)switch(l=U[h].call(at,t,f,n,r,i,a,o,s,c,u)){case void 0:case!1:case!0:case null:break;default:f=l}if(f!==e)return f}function rt(t,e,n,r){for(var i=e+1;i0&&(G=i.replace(d,91===a?"":"-")),a=1,1===F?X=i:q=i;var o,s=[X];$>0&&void 0!==(o=nt(-1,n,s,s,B,N,0,0,0,0))&&"string"==typeof o&&(n=o);var c=Z(z,s,n,0,0);return $>0&&void 0!==(o=nt(-2,c,s,s,B,N,c.length,0,0,0))&&"string"!=typeof(c=o)&&(a=0),G="",X="",q="",L=0,B=1,N=1,j*a==0?c:function(t){return t.replace(r,"").replace(v,"").replace(m,"$1").replace(b,"$1").replace(x," ")}(c)}return at.use=function t(e){switch(e){case void 0:case null:$=U.length=0;break;default:if("function"==typeof e)U[$++]=e;else if("object"==typeof e)for(var n=0,r=e.length;n=255?255:t<0?0:t},g:function(t){return t>=255?255:t<0?0:t},b:function(t){return t>=255?255:t<0?0:t},h:function(t){return t%360},s:function(t){return t>=100?100:t<0?0:t},l:function(t){return t>=100?100:t<0?0:t},a:function(t){return t>=1?1:t<0?0:t}},toLinear:function(t){var e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:function(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t},hsl2rgb:function(t,e){var n=t.h,i=t.s,a=t.l;if(100===i)return 2.55*a;n/=360,i/=100;var o=(a/=100)<.5?a*(1+i):a+i-a*i,s=2*a-o;switch(e){case"r":return 255*r.hue2rgb(s,o,n+1/3);case"g":return 255*r.hue2rgb(s,o,n);case"b":return 255*r.hue2rgb(s,o,n-1/3)}},rgb2hsl:function(t,e){var n=t.r,r=t.g,i=t.b;n/=255,r/=255,i/=255;var a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2;if("l"===e)return 100*s;if(a===o)return 0;var c=a-o;if("s"===e)return 100*(s>.5?c/(2-a-o):c/(a+o));switch(a){case n:return 60*((r-i)/c+(r1?e:"0"+e},dec2hex:function(t){var e=Math.round(t).toString(16);return e.length>1?e:"0"+e}};e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(75),a=n(177),o=function(){function t(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new a.default}return t.prototype.set=function(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=i.TYPE.ALL,this},t.prototype._ensureHSL=function(){void 0===this.data.h&&(this.data.h=r.default.channel.rgb2hsl(this.data,"h")),void 0===this.data.s&&(this.data.s=r.default.channel.rgb2hsl(this.data,"s")),void 0===this.data.l&&(this.data.l=r.default.channel.rgb2hsl(this.data,"l"))},t.prototype._ensureRGB=function(){void 0===this.data.r&&(this.data.r=r.default.channel.hsl2rgb(this.data,"r")),void 0===this.data.g&&(this.data.g=r.default.channel.hsl2rgb(this.data,"g")),void 0===this.data.b&&(this.data.b=r.default.channel.hsl2rgb(this.data,"b"))},Object.defineProperty(t.prototype,"r",{get:function(){return this.type.is(i.TYPE.HSL)||void 0===this.data.r?(this._ensureHSL(),r.default.channel.hsl2rgb(this.data,"r")):this.data.r},set:function(t){this.type.set(i.TYPE.RGB),this.changed=!0,this.data.r=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"g",{get:function(){return this.type.is(i.TYPE.HSL)||void 0===this.data.g?(this._ensureHSL(),r.default.channel.hsl2rgb(this.data,"g")):this.data.g},set:function(t){this.type.set(i.TYPE.RGB),this.changed=!0,this.data.g=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"b",{get:function(){return this.type.is(i.TYPE.HSL)||void 0===this.data.b?(this._ensureHSL(),r.default.channel.hsl2rgb(this.data,"b")):this.data.b},set:function(t){this.type.set(i.TYPE.RGB),this.changed=!0,this.data.b=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"h",{get:function(){return this.type.is(i.TYPE.RGB)||void 0===this.data.h?(this._ensureRGB(),r.default.channel.rgb2hsl(this.data,"h")):this.data.h},set:function(t){this.type.set(i.TYPE.HSL),this.changed=!0,this.data.h=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"s",{get:function(){return this.type.is(i.TYPE.RGB)||void 0===this.data.s?(this._ensureRGB(),r.default.channel.rgb2hsl(this.data,"s")):this.data.s},set:function(t){this.type.set(i.TYPE.HSL),this.changed=!0,this.data.s=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"l",{get:function(){return this.type.is(i.TYPE.RGB)||void 0===this.data.l?(this._ensureRGB(),r.default.channel.rgb2hsl(this.data,"l")):this.data.l},set:function(t){this.type.set(i.TYPE.HSL),this.changed=!0,this.data.l=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"a",{get:function(){return this.data.a},set:function(t){this.changed=!0,this.data.a=t},enumerable:!0,configurable:!0}),t}();e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(75),i=function(){function t(){this.type=r.TYPE.ALL}return t.prototype.get=function(){return this.type},t.prototype.set=function(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t},t.prototype.reset=function(){this.type=r.TYPE.ALL},t.prototype.is=function(t){return this.type===t},t}();e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i={};e.DEC2HEX=i;for(var a=0;a<=255;a++)i[a]=r.default.unit.dec2hex(a)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(99),i={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:function(t){t=t.toLowerCase();var e=i.colors[t];if(e)return r.default.parse(e)},stringify:function(t){var e=r.default.stringify(t);for(var n in i.colors)if(i.colors[n]===e)return n}};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(45),a={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:function(t){var e=t.charCodeAt(0);if(114===e||82===e){var n=t.match(a.re);if(n){var o=n[1],s=n[2],c=n[3],u=n[4],l=n[5],h=n[6],f=n[7],d=n[8];return i.default.set({r:r.default.channel.clamp.r(s?2.55*parseFloat(o):parseFloat(o)),g:r.default.channel.clamp.g(u?2.55*parseFloat(c):parseFloat(c)),b:r.default.channel.clamp.b(h?2.55*parseFloat(l):parseFloat(l)),a:f?r.default.channel.clamp.a(d?parseFloat(f)/100:parseFloat(f)):1},t)}}},stringify:function(t){return t.a<1?"rgba("+r.default.lang.round(t.r)+", "+r.default.lang.round(t.g)+", "+r.default.lang.round(t.b)+", "+r.default.lang.round(t.a)+")":"rgb("+r.default.lang.round(t.r)+", "+r.default.lang.round(t.g)+", "+r.default.lang.round(t.b)+")"}};e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(45),a={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:function(t){var e=t.match(a.hueRe);if(e){var n=e[1];switch(e[2]){case"grad":return r.default.channel.clamp.h(.9*parseFloat(n));case"rad":return r.default.channel.clamp.h(180*parseFloat(n)/Math.PI);case"turn":return r.default.channel.clamp.h(360*parseFloat(n))}}return r.default.channel.clamp.h(parseFloat(t))},parse:function(t){var e=t.charCodeAt(0);if(104===e||72===e){var n=t.match(a.re);if(n){var o=n[1],s=n[2],c=n[3],u=n[4],l=n[5];return i.default.set({h:a._hue2deg(o),s:r.default.channel.clamp.s(parseFloat(s)),l:r.default.channel.clamp.l(parseFloat(c)),a:u?r.default.channel.clamp.a(l?parseFloat(u)/100:parseFloat(u)):1},t)}}},stringify:function(t){return t.a<1?"hsla("+r.default.lang.round(t.h)+", "+r.default.lang.round(t.s)+"%, "+r.default.lang.round(t.l)+"%, "+t.a+")":"hsl("+r.default.lang.round(t.h)+", "+r.default.lang.round(t.s)+"%, "+r.default.lang.round(t.l)+"%)"}};e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"r")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"g")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"b")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"h")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"s")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29);e.default=function(t){return r.default(t,"l")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(103);e.default=function(t){return!r.default(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(15);e.default=function(t){try{return r.default.parse(t),!0}catch(t){return!1}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"s",e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"s",-e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"l",e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t,e){return r.default(t,"l",-e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(32);e.default=function(t){return r.default(t,"h",180)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(52);e.default=function(t){return r.default(t,{s:0})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(15),i=n(107);e.default=function(t,e){void 0===e&&(e=100);var n=r.default.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,i.default(n,t,e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),i=n(15),a=n(106);e.default=function(t,e){var n,o,s,c=i.default.parse(t),u={};for(var l in e)u[l]=(n=c[l],o=e[l],s=r.default.channel.max[l],o>0?(s-n)*o/100:n*o/100);return a.default(t,u)}},function(t,e,n){t.exports={Graph:n(76),version:n(300)}},function(t,e,n){var r=n(108);t.exports=function(t){return r(t,4)}},function(t,e){t.exports=function(){this.__data__=[],this.size=0}},function(t,e,n){var r=n(55),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0)&&(n==e.length-1?e.pop():i.call(e,n,1),--this.size,!0)}},function(t,e,n){var r=n(55);t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},function(t,e,n){var r=n(55);t.exports=function(t){return r(this.__data__,t)>-1}},function(t,e,n){var r=n(55);t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},function(t,e,n){var r=n(54);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(54),i=n(77),a=n(78);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var o=n.__data__;if(!i||o.length<199)return o.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(o)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var r=n(37),i=n(214),a=n(11),o=n(110),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,h=u.hasOwnProperty,f=RegExp("^"+l.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||i(t))&&(r(t)?f:s).test(o(t))}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var r=n(38),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var i=o.call(t);return r&&(e?t[s]=n:delete t[s]),i}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var r,i=n(215),a=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!a&&a in t}},function(t,e,n){var r=n(16)["__core-js_shared__"];t.exports=r},function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},function(t,e,n){var r=n(218),i=n(54),a=n(77);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},function(t,e,n){var r=n(219),i=n(220),a=n(221),o=n(222),s=n(223);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(131),i=n(292),a=n(296),o=n(132),s=n(297),c=n(90);t.exports=function(t,e,n){var u=-1,l=i,h=t.length,f=!0,d=[],p=d;if(n)f=!1,l=a;else if(h>=200){var g=e?null:s(t);if(g)return c(g);f=!1,l=o,p=new r}else p=e?[]:d;t:for(;++u-1}},function(t,e,n){var r=n(145),i=n(294),a=n(295);t.exports=function(t,e,n){return e==e?a(t,e,n):r(t,i,n)}},function(t,e){t.exports=function(t){return t!=t}},function(t,e){t.exports=function(t,e,n){for(var r=n-1,i=t.length;++r1||1===e.length&&t.hasEdge(e[0],e[0])}))}},function(t,e,n){var r=n(10);t.exports=function(t,e,n){return function(t,e,n){var r={},i=t.nodes();return i.forEach((function(t){r[t]={},r[t][t]={distance:0},i.forEach((function(e){t!==e&&(r[t][e]={distance:Number.POSITIVE_INFINITY})})),n(t).forEach((function(n){var i=n.v===t?n.w:n.v,a=e(n);r[t][i]={distance:a,predecessor:t}}))})),i.forEach((function(t){var e=r[t];i.forEach((function(n){var a=r[n];i.forEach((function(n){var r=a[t],i=e[n],o=a[n],s=r.distance+i.distance;s0;){if(n=c.removeMin(),r.has(s,n))o.setEdge(n,s[n]);else{if(l)throw new Error("Input graph is not connected: "+t);l=!0}t.nodeEdges(n).forEach(u)}return o}},function(t,e,n){var r;try{r=n(3)}catch(t){}r||(r=window.graphlib),t.exports=r},function(t,e,n){"use strict";var r=n(4),i=n(345),a=n(348),o=n(349),s=n(8).normalizeRanks,c=n(351),u=n(8).removeEmptyRanks,l=n(352),h=n(353),f=n(354),d=n(355),p=n(364),g=n(8),y=n(17).Graph;t.exports=function(t,e){var n=e&&e.debugTiming?g.time:g.notime;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return function(t){var e=new y({multigraph:!0,compound:!0}),n=C(t.graph());return e.setGraph(r.merge({},m,T(n,v),r.pick(n,b))),r.forEach(t.nodes(),(function(n){var i=C(t.node(n));e.setNode(n,r.defaults(T(i,x),_)),e.setParent(n,t.parent(n))})),r.forEach(t.edges(),(function(n){var i=C(t.edge(n));e.setEdge(n,r.merge({},w,T(i,k),r.pick(i,E)))})),e}(t)}));n(" runLayout",(function(){!function(t,e){e(" makeSpaceForEdgeLabels",(function(){!function(t){var e=t.graph();e.ranksep/=2,r.forEach(t.edges(),(function(n){var r=t.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(t)})),e(" removeSelfEdges",(function(){!function(t){r.forEach(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}(t)})),e(" acyclic",(function(){i.run(t)})),e(" nestingGraph.run",(function(){l.run(t)})),e(" rank",(function(){o(g.asNonCompoundGraph(t))})),e(" injectEdgeLabelProxies",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e:e};g.addDummyNode(t,"edge-proxy",i,"_ep")}}))}(t)})),e(" removeEmptyRanks",(function(){u(t)})),e(" nestingGraph.cleanup",(function(){l.cleanup(t)})),e(" normalizeRanks",(function(){s(t)})),e(" assignRankMinMax",(function(){!function(t){var e=0;r.forEach(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=r.max(e,i.maxRank))})),t.graph().maxRank=e}(t)})),e(" removeEdgeLabelProxies",(function(){!function(t){r.forEach(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t)})),e(" normalize.run",(function(){a.run(t)})),e(" parentDummyChains",(function(){c(t)})),e(" addBorderSegments",(function(){h(t)})),e(" order",(function(){d(t)})),e(" insertSelfEdges",(function(){!function(t){var e=g.buildLayerMatrix(t);r.forEach(e,(function(e){var n=0;r.forEach(e,(function(e,i){var a=t.node(e);a.order=i+n,r.forEach(a.selfEdges,(function(e){g.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")})),delete a.selfEdges}))}))}(t)})),e(" adjustCoordinateSystem",(function(){f.adjust(t)})),e(" position",(function(){p(t)})),e(" positionSelfEdges",(function(){!function(t){r.forEach(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}}))}(t)})),e(" removeBorderNodes",(function(){!function(t){r.forEach(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),o=t.node(r.last(n.borderLeft)),s=t.node(r.last(n.borderRight));n.width=Math.abs(s.x-o.x),n.height=Math.abs(a.y-i.y),n.x=o.x+n.width/2,n.y=i.y+n.height/2}})),r.forEach(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}(t)})),e(" normalize.undo",(function(){a.undo(t)})),e(" fixupEdgeLabelCoords",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(r.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t)})),e(" undoCoordinateSystem",(function(){f.undo(t)})),e(" translateGraph",(function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function u(t){var r=t.x,o=t.y,s=t.width,c=t.height;e=Math.min(e,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}r.forEach(t.nodes(),(function(e){u(t.node(e))})),r.forEach(t.edges(),(function(e){var n=t.edge(e);r.has(n,"x")&&u(n)})),e-=s,i-=c,r.forEach(t.nodes(),(function(n){var r=t.node(n);r.x-=e,r.y-=i})),r.forEach(t.edges(),(function(n){var a=t.edge(n);r.forEach(a.points,(function(t){t.x-=e,t.y-=i})),r.has(a,"x")&&(a.x-=e),r.has(a,"y")&&(a.y-=i)})),o.width=n-e+s,o.height=a-i+c}(t)})),e(" assignNodeIntersects",(function(){!function(t){r.forEach(t.edges(),(function(e){var n,r,i=t.edge(e),a=t.node(e.v),o=t.node(e.w);i.points?(n=i.points[0],r=i.points[i.points.length-1]):(i.points=[],n=o,r=a),i.points.unshift(g.intersectRect(a,n)),i.points.push(g.intersectRect(o,r))}))}(t)})),e(" reversePoints",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}(t)})),e(" acyclic.undo",(function(){i.undo(t)}))}(e,n)})),n(" updateInputGraph",(function(){!function(t,e){r.forEach(t.nodes(),(function(n){var r=t.node(n),i=e.node(n);r&&(r.x=i.x,r.y=i.y,e.children(n).length&&(r.width=i.width,r.height=i.height))})),r.forEach(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.has(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)}))}))};var v=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},b=["acyclicer","ranker","rankdir","align"],x=["width","height"],_={width:0,height:0},k=["minlen","weight","width","height","labeloffset"],w={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function T(t,e){return r.mapValues(r.pick(t,e),Number)}function C(t){var e={};return r.forEach(t,(function(t,n){e[n.toLowerCase()]=t})),e}},function(t,e,n){var r=n(108);t.exports=function(t){return r(t,5)}},function(t,e,n){var r=n(315)(n(316));t.exports=r},function(t,e,n){var r=n(25),i=n(24),a=n(30);t.exports=function(t){return function(e,n,o){var s=Object(e);if(!i(e)){var c=r(n,3);e=a(e),n=function(t){return c(s[t],t,s)}}var u=t(e,n,o);return u>-1?s[c?e[u]:u]:void 0}}},function(t,e,n){var r=n(145),i=n(25),a=n(317),o=Math.max;t.exports=function(t,e,n){var s=null==t?0:t.length;if(!s)return-1;var c=null==n?0:a(n);return c<0&&(c=o(s+c,0)),r(t,i(e,3),c)}},function(t,e,n){var r=n(155);t.exports=function(t){var e=r(t),n=e%1;return e==e?n?e-n:e:0}},function(t,e,n){var r=n(11),i=n(42),a=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var n=s.test(t);return n||c.test(t)?u(t.slice(2),n?2:8):o.test(t)?NaN:+t}},function(t,e,n){var r=n(89),i=n(127),a=n(40);t.exports=function(t,e){return null==t?t:r(t,i(e),a)}},function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},function(t,e,n){var r=n(59),i=n(88),a=n(25);t.exports=function(t,e){var n={};return e=a(e,3),i(t,(function(t,i,a){r(n,i,e(t,i,a))})),n}},function(t,e,n){var r=n(95),i=n(323),a=n(35);t.exports=function(t){return t&&t.length?r(t,a,i):void 0}},function(t,e){t.exports=function(t,e){return t>e}},function(t,e,n){var r=n(325),i=n(328)((function(t,e,n){r(t,e,n)}));t.exports=i},function(t,e,n){var r=n(53),i=n(157),a=n(89),o=n(326),s=n(11),c=n(40),u=n(159);t.exports=function t(e,n,l,h,f){e!==n&&a(n,(function(a,c){if(f||(f=new r),s(a))o(e,n,c,l,t,h,f);else{var d=h?h(u(e,c),a,c+"",e,n,f):void 0;void 0===d&&(d=a),i(e,c,d)}}),c)}},function(t,e,n){var r=n(157),i=n(114),a=n(123),o=n(115),s=n(124),c=n(47),u=n(5),l=n(146),h=n(39),f=n(37),d=n(11),p=n(158),g=n(48),y=n(159),v=n(327);t.exports=function(t,e,n,m,b,x,_){var k=y(t,n),w=y(e,n),E=_.get(w);if(E)r(t,n,E);else{var T=x?x(k,w,n+"",t,e,_):void 0,C=void 0===T;if(C){var S=u(w),A=!S&&h(w),M=!S&&!A&&g(w);T=w,S||A||M?u(k)?T=k:l(k)?T=o(k):A?(C=!1,T=i(w,!0)):M?(C=!1,T=a(w,!0)):T=[]:p(w)||c(w)?(T=k,c(k)?T=v(k):d(k)&&!f(k)||(T=s(w))):C=!1}C&&(_.set(w,T),b(T,w,m,x,_),_.delete(w)),r(t,n,T)}}},function(t,e,n){var r=n(46),i=n(40);t.exports=function(t){return r(t,i(t))}},function(t,e,n){var r=n(67),i=n(68);t.exports=function(t){return r((function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++r1&&o(t,e[0],e[1])?e=[]:n>2&&o(e[0],e[1],e[2])&&(e=[e[0]]),i(t,r(e,1),[])}));t.exports=s},function(t,e,n){var r=n(66),i=n(25),a=n(141),o=n(340),s=n(61),c=n(341),u=n(35);t.exports=function(t,e,n){var l=-1;e=r(e.length?e:[u],s(i));var h=a(t,(function(t,n,i){return{criteria:r(e,(function(e){return e(t)})),index:++l,value:t}}));return o(h,(function(t,e){return c(t,e,n)}))}},function(t,e){t.exports=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}},function(t,e,n){var r=n(342);t.exports=function(t,e,n){for(var i=-1,a=t.criteria,o=e.criteria,s=a.length,c=n.length;++i=c?u:u*("desc"==n[i]?-1:1)}return t.index-e.index}},function(t,e,n){var r=n(42);t.exports=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,o=r(t),s=void 0!==e,c=null===e,u=e==e,l=r(e);if(!c&&!l&&!o&&t>e||o&&s&&u&&!c&&!l||i&&s&&u||!n&&u||!a)return 1;if(!i&&!o&&!l&&t0;--c)if(r=e[c].dequeue()){i=i.concat(s(t,e,n,r,!0));break}}return i}(n.graph,n.buckets,n.zeroIdx);return r.flatten(r.map(u,(function(e){return t.outEdges(e.v,e.w)})),!0)};var o=r.constant(1);function s(t,e,n,i,a){var o=a?[]:void 0;return r.forEach(t.inEdges(i.v),(function(r){var i=t.edge(r),s=t.node(r.v);a&&o.push({v:r.v,w:r.w}),s.out-=i,c(e,n,s)})),r.forEach(t.outEdges(i.v),(function(r){var i=t.edge(r),a=r.w,o=t.node(a);o.in-=i,c(e,n,o)})),t.removeNode(i.v),o}function c(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}},function(t,e){function n(){var t={};t._next=t._prev=t,this._sentinel=t}function r(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function i(t,e){if("_next"!==t&&"_prev"!==t)return e}t.exports=n,n.prototype.dequeue=function(){var t=this._sentinel,e=t._prev;if(e!==t)return r(e),e},n.prototype.enqueue=function(t){var e=this._sentinel;t._prev&&t._next&&r(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e},n.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,i)),n=n._prev;return"["+t.join(", ")+"]"}},function(t,e,n){"use strict";var r=n(4),i=n(8);t.exports={run:function(t){t.graph().dummyChains=[],r.forEach(t.edges(),(function(e){!function(t,e){var n,r,a,o=e.v,s=t.node(o).rank,c=e.w,u=t.node(c).rank,l=e.name,h=t.edge(e),f=h.labelRank;if(u===s+1)return;for(t.removeEdge(e),a=0,++s;sc.lim&&(u=c,l=!0);var h=r.filter(e.edges(),(function(e){return l===m(t,t.node(e.v),u)&&l!==m(t,t.node(e.w),u)}));return r.minBy(h,(function(t){return a(e,t)}))}function v(t,e,n,i){var a=n.v,o=n.w;t.removeEdge(a,o),t.setEdge(i.v,i.w,{}),d(t),h(t,e),function(t,e){var n=r.find(t.nodes(),(function(t){return!e.node(t).parent})),i=s(t,n);i=i.slice(1),r.forEach(i,(function(n){var r=t.node(n).parent,i=e.edge(n,r),a=!1;i||(i=e.edge(r,n),a=!0),e.node(n).rank=e.node(r).rank+(a?i.minlen:-i.minlen)}))}(t,e)}function m(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}t.exports=l,l.initLowLimValues=d,l.initCutValues=h,l.calcCutValue=f,l.leaveEdge=g,l.enterEdge=y,l.exchangeEdges=v},function(t,e,n){var r=n(4);t.exports=function(t){var e=function(t){var e={},n=0;function i(a){var o=n;r.forEach(t.children(a),i),e[a]={low:o,lim:n++}}return r.forEach(t.children(),i),e}(t);r.forEach(t.graph().dummyChains,(function(n){for(var r=t.node(n),i=r.edgeObj,a=function(t,e,n,r){var i,a,o=[],s=[],c=Math.min(e[n].low,e[r].low),u=Math.max(e[n].lim,e[r].lim);i=n;do{i=t.parent(i),o.push(i)}while(i&&(e[i].low>c||u>e[i].lim));a=i,i=r;for(;(i=t.parent(i))!==a;)s.push(i);return{path:o.concat(s.reverse()),lca:a}}(t,e,i.v,i.w),o=a.path,s=a.lca,c=0,u=o[c],l=!0;n!==i.w;){if(r=t.node(n),l){for(;(u=o[c])!==s&&t.node(u).maxRank=2),s=l.buildLayerMatrix(t);var y=a(t,s);y0;)e%2&&(n+=c[e+1]),c[e=e-1>>1]+=t.weight;u+=t.weight*n}))),u}t.exports=function(t,e){for(var n=0,r=1;r=t.barycenter)&&function(t,e){var n=0,r=0;t.weight&&(n+=t.barycenter*t.weight,r+=t.weight);e.weight&&(n+=e.barycenter*e.weight,r+=e.weight);t.vs=e.vs.concat(t.vs),t.barycenter=n/r,t.weight=r,t.i=Math.min(e.i,t.i),e.merged=!0}(t,e)}}function i(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),r.forEach(a.in.reverse(),n(a)),r.forEach(a.out,i(a))}return r.map(r.filter(e,(function(t){return!t.merged})),(function(t){return r.pick(t,["vs","i","barycenter","weight"])}))}(r.filter(n,(function(t){return!t.indegree})))}},function(t,e,n){var r=n(4),i=n(8);function a(t,e,n){for(var i;e.length&&(i=r.last(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}t.exports=function(t,e){var n=i.partition(t,(function(t){return r.has(t,"barycenter")})),o=n.lhs,s=r.sortBy(n.rhs,(function(t){return-t.i})),c=[],u=0,l=0,h=0;o.sort((f=!!e,function(t,e){return t.barycentere.barycenter?1:f?e.i-t.i:t.i-e.i})),h=a(c,s,h),r.forEach(o,(function(t){h+=t.vs.length,c.push(t.vs),u+=t.barycenter*t.weight,l+=t.weight,h=a(c,s,h)}));var f;var d={vs:r.flatten(c,!0)};l&&(d.barycenter=u/l,d.weight=l);return d}},function(t,e,n){var r=n(4),i=n(17).Graph;t.exports=function(t,e,n){var a=function(t){var e;for(;t.hasNode(e=r.uniqueId("_root")););return e}(t),o=new i({compound:!0}).setGraph({root:a}).setDefaultNodeLabel((function(e){return t.node(e)}));return r.forEach(t.nodes(),(function(i){var s=t.node(i),c=t.parent(i);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(o.setNode(i),o.setParent(i,c||a),r.forEach(t[n](i),(function(e){var n=e.v===i?e.w:e.v,a=o.edge(n,i),s=r.isUndefined(a)?0:a.weight;o.setEdge(n,i,{weight:t.edge(e).weight+s})})),r.has(s,"minRank")&&o.setNode(i,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))})),o}},function(t,e,n){var r=n(4);t.exports=function(t,e,n){var i,a={};r.forEach(n,(function(n){for(var r,o,s=t.parent(n);s;){if((r=t.parent(s))?(o=a[r],a[r]=s):(o=i,i=s),o&&o!==s)return void e.setEdge(o,s);s=r}}))}},function(t,e,n){"use strict";var r=n(4),i=n(8),a=n(365).positionX;t.exports=function(t){(function(t){var e=i.buildLayerMatrix(t),n=t.graph().ranksep,a=0;r.forEach(e,(function(e){var i=r.max(r.map(e,(function(e){return t.node(e).height})));r.forEach(e,(function(e){t.node(e).y=a+i/2})),a+=i+n}))})(t=i.asNonCompoundGraph(t)),r.forEach(a(t),(function(e,n){t.node(n).x=e}))}},function(t,e,n){"use strict";var r=n(4),i=n(17).Graph,a=n(8);function o(t,e){var n={};return r.reduce(e,(function(e,i){var a=0,o=0,s=e.length,u=r.last(i);return r.forEach(i,(function(e,l){var h=function(t,e){if(t.node(e).dummy)return r.find(t.predecessors(e),(function(e){return t.node(e).dummy}))}(t,e),f=h?t.node(h).order:s;(h||e===u)&&(r.forEach(i.slice(o,l+1),(function(e){r.forEach(t.predecessors(e),(function(r){var i=t.node(r),o=i.order;!(os)&&c(n,e,u)}))}))}return r.reduce(e,(function(e,n){var a,o=-1,s=0;return r.forEach(n,(function(r,c){if("border"===t.node(r).dummy){var u=t.predecessors(r);u.length&&(a=t.node(u[0]).order,i(n,s,c,o,a),s=c,o=a)}i(n,s,n.length,a,e.length)})),n})),n}function c(t,e,n){if(e>n){var r=e;e=n,n=r}var i=t[e];i||(t[e]=i={}),i[n]=!0}function u(t,e,n){if(e>n){var i=e;e=n,n=i}return r.has(t[e],n)}function l(t,e,n,i){var a={},o={},s={};return r.forEach(e,(function(t){r.forEach(t,(function(t,e){a[t]=t,o[t]=t,s[t]=e}))})),r.forEach(e,(function(t){var e=-1;r.forEach(t,(function(t){var c=i(t);if(c.length)for(var l=((c=r.sortBy(c,(function(t){return s[t]}))).length-1)/2,h=Math.floor(l),f=Math.ceil(l);h<=f;++h){var d=c[h];o[t]===t&&e0}t.exports=function(t,e,r,i){var a,o,s,c,u,l,h,f,d,p,g,y,v;if(a=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,d=a*r.x+s*r.y+u,p=a*i.x+s*i.y+u,0!==d&&0!==p&&n(d,p))return;if(o=i.y-r.y,c=r.x-i.x,l=i.x*r.y-r.x*i.y,h=o*t.x+c*t.y+l,f=o*e.x+c*e.y+l,0!==h&&0!==f&&n(h,f))return;if(0===(g=a*c-o*s))return;return y=Math.abs(g/2),{x:(v=s*l-c*u)<0?(v-y)/g:(v+y)/g,y:(v=o*u-a*l)<0?(v-y)/g:(v+y)/g}}},function(t,e,n){var r=n(43),i=n(31),a=n(153).layout;t.exports=function(){var t=n(371),e=n(374),i=n(375),u=n(376),l=n(377),h=n(378),f=n(379),d=n(380),p=n(381),g=function(n,g){!function(t){t.nodes().forEach((function(e){var n=t.node(e);r.has(n,"label")||t.children(e).length||(n.label=e),r.has(n,"paddingX")&&r.defaults(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),r.has(n,"paddingY")&&r.defaults(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),r.has(n,"padding")&&r.defaults(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.defaults(n,o),r.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),r.has(n,"width")&&(n._prevWidth=n.width),r.has(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);r.has(n,"label")||(n.label=""),r.defaults(n,s)}))}(g);var y=c(n,"output"),v=c(y,"clusters"),m=c(y,"edgePaths"),b=i(c(y,"edgeLabels"),g),x=t(c(y,"nodes"),g,d);a(g),l(x,g),h(b,g),u(m,g,p);var _=e(v,g);f(_,g),function(t){r.each(t.nodes(),(function(e){var n=t.node(e);r.has(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,r.has(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(g)};return g.createNodes=function(e){return arguments.length?(t=e,g):t},g.createClusters=function(t){return arguments.length?(e=t,g):e},g.createEdgeLabels=function(t){return arguments.length?(i=t,g):i},g.createEdgePaths=function(t){return arguments.length?(u=t,g):u},g.shapes=function(t){return arguments.length?(d=t,g):d},g.arrows=function(t){return arguments.length?(p=t,g):p},g};var o={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},s={arrowhead:"normal",curve:i.curveLinear};function c(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}},function(t,e,n){"use strict";var r=n(43),i=n(97),a=n(12),o=n(31);t.exports=function(t,e,n){var s,c=e.nodes().filter((function(t){return!a.isSubgraph(e,t)})),u=t.selectAll("g.node").data(c,(function(t){return t})).classed("update",!0);u.exit().remove(),u.enter().append("g").attr("class","node").style("opacity",0),(u=t.selectAll("g.node")).each((function(t){var s=e.node(t),c=o.select(this);a.applyClass(c,s.class,(c.classed("update")?"update ":"")+"node"),c.select("g.label").remove();var u=c.append("g").attr("class","label"),l=i(u,s),h=n[s.shape],f=r.pick(l.node().getBBox(),"width","height");s.elem=this,s.id&&c.attr("id",s.id),s.labelId&&u.attr("id",s.labelId),r.has(s,"width")&&(f.width=s.width),r.has(s,"height")&&(f.height=s.height),f.width+=s.paddingLeft+s.paddingRight,f.height+=s.paddingTop+s.paddingBottom,u.attr("transform","translate("+(s.paddingLeft-s.paddingRight)/2+","+(s.paddingTop-s.paddingBottom)/2+")");var d=o.select(this);d.select(".label-container").remove();var p=h(d,f,s).classed("label-container",!0);a.applyStyle(p,s.style);var g=p.node().getBBox();s.width=g.width,s.height=g.height})),s=u.exit?u.exit():u.selectAll(null);return a.applyTransition(s,e).style("opacity",0).remove(),u}},function(t,e,n){var r=n(12);t.exports=function(t,e){for(var n=t.append("text"),i=function(t){for(var e,n="",r=!1,i=0;i0&&void 0!==arguments[0]?arguments[0]:"fatal";isNaN(t)&&(t=t.toLowerCase(),void 0!==h[t]&&(t=h[t])),f.trace=function(){},f.debug=function(){},f.info=function(){},f.warn=function(){},f.error=function(){},f.fatal=function(){},t<=h.fatal&&(f.fatal=console.error?console.error.bind(console,p("FATAL"),"color: orange"):console.log.bind(console,"",p("FATAL"))),t<=h.error&&(f.error=console.error?console.error.bind(console,p("ERROR"),"color: orange"):console.log.bind(console,"",p("ERROR"))),t<=h.warn&&(f.warn=console.warn?console.warn.bind(console,p("WARN"),"color: orange"):console.log.bind(console,"",p("WARN"))),t<=h.info&&(f.info=console.info?console.info.bind(console,p("INFO"),"color: lightblue"):console.log.bind(console,"",p("INFO"))),t<=h.debug&&(f.debug=console.debug?console.debug.bind(console,p("DEBUG"),"color: lightgreen"):console.log.bind(console,"",p("DEBUG")))},p=function(t){var e=l()().format("ss.SSS");return"%c".concat(e," : ").concat(t," : ")},g=n(70),y=function(t){for(var e="",n=0;n>=0;){if(!((n=t.indexOf("=0)){e+=t,n=-1;break}e+=t.substr(0,n),(n=(t=t.substr(n+1)).indexOf("<\/script>"))>=0&&(n+=9,t=t.substr(n))}return e},v=//gi,m=function(t){return t.replace(v,"#br#")},b=function(t){return t.replace(/#br#/g,"
    ")},x={getRows:function(t){if(!t)return 1;var e=m(t);return(e=e.replace(/\\n/g,"#br#")).split("#br#")},sanitizeText:function(t,e){var n=t,r=!0;if(!e.flowchart||!1!==e.flowchart.htmlLabels&&"false"!==e.flowchart.htmlLabels||(r=!1),r){var i=e.securityLevel;"antiscript"===i?n=y(n):"loose"!==i&&(n=(n=(n=m(n)).replace(//g,">")).replace(/=/g,"="),n=b(n))}return n},hasBreaks:function(t){return//gi.test(t)},splitBreaks:function(t){return t.split(//gi)},lineBreakRegex:v,removeScript:y};function _(t){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function k(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:null;try{var n=new RegExp("[%]{2}(?![{]".concat(T.source,")(?=[}][%]{2}).*\n"),"ig");t=t.trim().replace(n,"").replace(/'/gm,'"'),f.debug("Detecting diagram directive".concat(null!==e?" type:"+e:""," based on the text:").concat(t));for(var r,i=[];null!==(r=E.exec(t));)if(r.index===E.lastIndex&&E.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){var a=r[1]?r[1]:r[2],o=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;i.push({type:a,args:o})}return 0===i.length&&i.push({type:t,args:null}),1===i.length?i[0]:i}catch(n){return f.error("ERROR: ".concat(n.message," - Unable to parse directive").concat(null!==e?" type:"+e:""," based on the text:").concat(t)),{type:null,args:null}}},A=function(t){return t=t.replace(E,"").replace(C,"\n"),f.debug("Detecting diagram type based on the text "+t),t.match(/^\s*sequenceDiagram/)?"sequence":t.match(/^\s*gantt/)?"gantt":t.match(/^\s*classDiagram-v2/)?"classDiagram":t.match(/^\s*classDiagram/)?"class":t.match(/^\s*stateDiagram-v2/)?"stateDiagram":t.match(/^\s*stateDiagram/)?"state":t.match(/^\s*gitGraph/)?"git":t.match(/^\s*flowchart/)?"flowchart-v2":t.match(/^\s*info/)?"info":t.match(/^\s*pie/)?"pie":t.match(/^\s*erDiagram/)?"er":t.match(/^\s*journey/)?"journey":"flowchart"},M=function(t,e){var n={};return function(){for(var r=arguments.length,i=new Array(r),a=0;a"},n),x.lineBreakRegex.test(t))return t;var r=t.split(" "),i=[],a="";return r.forEach((function(t,o){var s=Y("".concat(t," "),n),c=Y(a,n);if(s>e){var u=R(t,e,"-",n),l=u.hyphenatedStrings,h=u.remainingWord;i.push.apply(i,[a].concat(k(l))),a=h}else c+s>=e?(i.push(a),a=t):a=[a,t].filter(Boolean).join(" ");o+1===r.length&&i.push(a)})),i.filter((function(t){return""!==t})).join(n.joinWith)}),(function(t,e,n){return"".concat(t,"-").concat(e,"-").concat(n.fontSize,"-").concat(n.fontWeight,"-").concat(n.fontFamily,"-").concat(n.joinWith)})),R=M((function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=arguments.length>3?arguments[3]:void 0;r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);var i=t.split(""),a=[],o="";return i.forEach((function(t,s){var c="".concat(o).concat(t);if(Y(c,r)>=e){var u=s+1,l=i.length===u,h="".concat(c).concat(n);a.push(l?c:h),o=""}else o=c})),{hyphenatedStrings:a,remainingWord:o}}),(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=arguments.length>3?arguments[3]:void 0;return"".concat(t,"-").concat(e,"-").concat(n,"-").concat(r.fontSize,"-").concat(r.fontWeight,"-").concat(r.fontFamily)})),Y=function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),z(t,e).width},z=M((function(t,e){var n=e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),r=n.fontSize,i=n.fontFamily,a=n.fontWeight;if(!t)return{width:0,height:0};var o=["sans-serif",i],c=t.split(x.lineBreakRegex),u=[],l=Object(s.select)("body");if(!l.remove)return{width:0,height:0,lineHeight:0};for(var h=l.append("svg"),f=0,d=o;fu[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1]}),(function(t,e){return"".concat(t,"-").concat(e.fontSize,"-").concat(e.fontWeight,"-").concat(e.fontFamily)})),U=function(t,e,n){var r=new Map;return r.set("height",t),n?(r.set("width","100%"),r.set("style","max-width: ".concat(e,"px;"))):r.set("width",e),r},$=function(t,e,n,r){!function(t,e){var n=!0,r=!1,i=void 0;try{for(var a,o=e[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;t.attr(s[0],s[1])}}catch(t){r=!0,i=t}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}(t,U(e,n,r))},W={assignWithDepth:P,wrapLabel:j,calculateTextHeight:function(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),z(t,e).height},calculateTextWidth:Y,calculateTextDimensions:z,calculateSvgSizeAttrs:U,configureSvgSize:$,detectInit:function(t){var e=S(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(e)){var r=e.map((function(t){return t.args}));n=P(n,k(r))}else n=e.args;if(n){var i=A(t);["config"].forEach((function(t){void 0!==n[t]&&("flowchart-v2"===i&&(i="flowchart"),n[i]=n[t],delete n[t])}))}return n},detectDirective:S,detectType:A,isSubstringInArray:function(t,e){for(var n=0;n=1&&(i={x:t.x,y:t.y}),a>0&&a<1&&(i={x:(1-a)*e.x+a*t.x,y:(1-a)*e.y+a*t.y})}}e=t})),i}(t)},calcCardinalityPosition:function(t,e,n){var r;f.info("our points",e),e[0]!==n&&(e=e.reverse()),e.forEach((function(t){D(t,r),r=t}));var i,a=25;r=void 0,e.forEach((function(t){if(r&&!i){var e=D(t,r);if(e=1&&(i={x:t.x,y:t.y}),n>0&&n<1&&(i={x:(1-n)*r.x+n*t.x,y:(1-n)*r.y+n*t.y})}}r=t}));var o=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),c={x:0,y:0};return c.x=Math.sin(s)*o+(e[0].x+i.x)/2,c.y=-Math.cos(s)*o+(e[0].y+i.y)/2,c},calcTerminalLabelPosition:function(t,e,n){var r,i=JSON.parse(JSON.stringify(n));f.info("our points",i),"start_left"!==e&&"start_right"!==e&&(i=i.reverse()),i.forEach((function(t){D(t,r),r=t}));var a,o=25;r=void 0,i.forEach((function(t){if(r&&!a){var e=D(t,r);if(e=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*r.x+n*t.x,y:(1-n)*r.y+n*t.y})}}r=t}));var s=10,c=Math.atan2(i[0].y-a.y,i[0].x-a.x),u={x:0,y:0};return u.x=Math.sin(c)*s+(i[0].x+a.x)/2,u.y=-Math.cos(c)*s+(i[0].y+a.y)/2,"start_left"===e&&(u.x=Math.sin(c+Math.PI)*s+(i[0].x+a.x)/2,u.y=-Math.cos(c+Math.PI)*s+(i[0].y+a.y)/2),"end_right"===e&&(u.x=Math.sin(c-Math.PI)*s+(i[0].x+a.x)/2-5,u.y=-Math.cos(c-Math.PI)*s+(i[0].y+a.y)/2-5),"end_left"===e&&(u.x=Math.sin(c)*s+(i[0].x+a.x)/2-5,u.y=-Math.cos(c)*s+(i[0].y+a.y)/2-5),u},formatUrl:function(t,e){var n=t.trim();if(n)return"loose"!==e.securityLevel?Object(g.sanitizeUrl)(n):n},getStylesFromArray:N,generateId:L,random:F,memoize:M,runFunc:function(t){for(var e,n=t.split("."),r=n.length-1,i=n[r],a=window,o=0;o1?s-1:0),u=1;u=0&&(n=!0)})),n},Gt=function(t,e){var n=[];return t.nodes.forEach((function(r,i){Ht(e,r)||n.push(t.nodes[i])})),{nodes:n}},qt={parseDirective:function(t,e,n){$o.parseDirective(this,t,e,n)},defaultConfig:function(){return pt.flowchart},addVertex:function(t,e,n,r,i){var a,o=t;void 0!==o&&0!==o.trim().length&&(void 0===Mt[o]&&(Mt[o]={id:o,domId:"flowchart-"+o+"-"+St,styles:[],classes:[]}),St++,void 0!==e?(At=xt(),'"'===(a=x.sanitizeText(e.trim(),At))[0]&&'"'===a[a.length-1]&&(a=a.substring(1,a.length-1)),Mt[o].text=a):void 0===Mt[o].text&&(Mt[o].text=t),void 0!==n&&(Mt[o].type=n),null!=r&&r.forEach((function(t){Mt[o].styles.push(t)})),null!=i&&i.forEach((function(t){Mt[o].classes.push(t)})))},lookUpDomId:jt,addLink:function(t,e,n,r){var i,a;for(i=0;i/)&&(Tt="LR"),Tt.match(/.*v/)&&(Tt="TB")},setClass:Yt,getTooltip:function(t){return Lt[t]},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e){var n=jt(t);"loose"===xt().securityLevel&&void 0!==e&&void 0!==Mt[t]&&(Mt[t].haveCallback=!0,It.push((function(){var r=document.querySelector('[id="'.concat(n,'"]'));null!==r&&r.addEventListener("click",(function(){W.runFunc(e,t)}),!1)})))}(t,e)})),zt(t,n),Yt(t,"clickable")},setLink:function(t,e,n,r){t.split(",").forEach((function(t){void 0!==Mt[t]&&(Mt[t].link=W.formatUrl(e,At),Mt[t].linkTarget=r)})),zt(t,n),Yt(t,"clickable")},bindFunctions:function(t){It.forEach((function(e){e(t)}))},getDirection:function(){return Tt.trim()},getVertices:function(){return Mt},getEdges:function(){return Ot},getClasses:function(){return Dt},clear:function(t){Mt={},Dt={},Ot=[],(It=[]).push(Ut),Nt=[],Bt={},Ft=0,Lt=[],Pt=!0,Ct=t||"gen-1"},setGen:function(t){Ct=t||"gen-1"},defaultStyle:function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},addSubGraph:function(t,e,n){var r=t.trim(),i=n;t===n&&n.match(/\s/)&&(r=void 0);var a,o,s,c=[];if(a=c.concat.apply(c,e),o={boolean:{},number:{},string:{}},s=[],c=a.filter((function(t){var e=Et(t);return""!==t.trim()&&(e in o?!o[e].hasOwnProperty(t)&&(o[e][t]=!0):!(s.indexOf(t)>=0)&&s.push(t))})),"gen-1"===Ct){f.warn("LOOKING UP");for(var u=0;u0&&function t(e,n){var r=Nt[n].nodes;if(!((Wt+=1)>2e3)){if(Vt[Wt]=n,Nt[n].id===e)return{result:!0,count:0};for(var i=0,a=1;i=0){var s=t(e,o);if(s.result)return{result:!0,count:a+s.count};a+=s.count}i+=1}return{result:!1,count:a}}}("none",Nt.length-1)},getSubGraphs:function(){return Nt},destructLink:function(t,e){var n,r=function(t){var e=t.trim(),n=e.slice(0,-1),r="arrow_open";switch(e.slice(-1)){case"x":r="arrow_cross","x"===e[0]&&(r="double_"+r,n=n.slice(1));break;case">":r="arrow_point","<"===e[0]&&(r="double_"+r,n=n.slice(1));break;case"o":r="arrow_circle","o"===e[0]&&(r="double_"+r,n=n.slice(1))}var i="normal",a=n.length-1;"="===n[0]&&(i="thick");var o=function(t,e){for(var n=e.length,r=0,i=0;in.height/2-a)){var o=a*a*(1-r*r/(i*i));0!=o&&(o=Math.sqrt(o)),o=a-o,t.y-n.y>0&&(o=-o),e.y+=o}return e},c}function fe(t,e,n,r){return t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+-e/2+","+n/2+")")}var de={addToRender:function(t){t.shapes().question=ee,t.shapes().hexagon=ne,t.shapes().stadium=ue,t.shapes().subroutine=le,t.shapes().cylinder=he,t.shapes().rect_left_inv_arrow=re,t.shapes().lean_right=ie,t.shapes().lean_left=ae,t.shapes().trapezoid=oe,t.shapes().inv_trapezoid=se,t.shapes().rect_right_inv_arrow=ce},addToRenderV2:function(t){t({question:ee}),t({hexagon:ne}),t({stadium:ue}),t({subroutine:le}),t({cylinder:he}),t({rect_left_inv_arrow:re}),t({lean_right:ie}),t({lean_left:ae}),t({trapezoid:oe}),t({inv_trapezoid:se}),t({rect_right_inv_arrow:ce})}},pe={},ge=function(t,e,n){var r=Object(s.select)('[id="'.concat(n,'"]'));Object.keys(t).forEach((function(n){var i=t[n],a="default";i.classes.length>0&&(a=i.classes.join(" "));var o,s=N(i.styles),c=void 0!==i.text?i.text:i.id;if(xt().flowchart.htmlLabels){var u={label:c.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")}))};(o=te()(r,u).node()).parentNode.removeChild(o)}else{var l=document.createElementNS("http://www.w3.org/2000/svg","text");l.setAttribute("style",s.labelStyle.replace("color:","fill:"));for(var h=c.split(x.lineBreakRegex),d=0;d').concat(a.text.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")})),"")):(l.labelType="text",l.label=a.text.replace(x.lineBreakRegex,"\n"),void 0===a.style&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+u,l.minlen=a.length||1,e.setEdge(qt.lookUpDomId(a.start),qt.lookUpDomId(a.end),l,i)}))},ve=function(t){for(var e=Object.keys(t),n=0;n=0;h--)i=l[h],qt.addVertex(i.id,i.title,"group",void 0,i.classes);var d=qt.getVertices();f.warn("Get vertices",d);var p=qt.getEdges(),g=0;for(g=l.length-1;g>=0;g--){i=l[g],Object(s.selectAll)("cluster").append("text");for(var y=0;y"),f.info("vertexText"+i),function(t){var e,n,r=Object(s.select)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),i=r.append("xhtml:div"),a=t.label,o=t.isNode?"nodeLabel":"edgeLabel";return i.html(''+a+""),e=i,(n=t.labelStyle)&&e.attr("style",n),i.style("display","inline-block"),i.style("white-space","nowrap"),i.attr("xmlns","http://www.w3.org/1999/xhtml"),r.node()}({isNode:r,label:i.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")})),labelStyle:e.replace("fill:","color:")});var a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));var o=[];o="string"==typeof i?i.split(/\\n|\n|/gi):Array.isArray(i)?i:[];for(var c=0;c0)t(a,n,r,i);else{var o=n.node(a);f.info("cp ",a," to ",i," with parent ",e),r.setNode(a,o),i!==n.parent(a)&&(f.warn("Setting parent",a,n.parent(a)),r.setParent(a,n.parent(a))),e!==i&&a!==e?(f.debug("Setting parent",a,e),r.setParent(a,e)):(f.info("In copy ",e,"root",i,"data",n.node(e),i),f.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==i,"node!==clusterId",a!==e));var s=n.edges(a);f.debug("Copying Edges",s),s.forEach((function(t){f.info("Edge",t);var a=n.edge(t.v,t.w,t.name);f.info("Edge data",a,i);try{!function(t,e){return f.info("Decendants of ",e," is ",Me[e]),f.info("Edge is ",t),t.v!==e&&(t.w!==e&&(Me[e]?(f.info("Here "),Me[e].indexOf(t.v)>=0||(!!De(t.v,e)||(!!De(t.w,e)||Me[e].indexOf(t.w)>=0))):(f.debug("Tilt, ",e,",not in decendants"),!1)))}(t,i)?f.info("Skipping copy of edge ",t.v,"--\x3e",t.w," rootId: ",i," clusterId:",e):(f.info("Copying as ",t.v,t.w,a,t.name),r.setEdge(t.v,t.w,a,t.name),f.info("newGraph edges ",r.edges(),r.edge(r.edges()[0])))}catch(t){f.error(t)}}))}f.debug("Removing node",a),n.removeNode(a)}))},Be=function t(e,n){f.trace("Searching",e);var r=n.children(e);if(f.trace("Searching children of id ",e,r),r.length<1)return f.trace("This is a valid node",e),e;for(var i=0;i ",a),a}},Le=function(t){return Ae[t]&&Ae[t].externalConnections&&Ae[t]?Ae[t].id:t},Fe=function(t,e){!t||e>10?f.debug("Opting out, no graph "):(f.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(f.warn("Cluster identified",e," Replacement id in edges: ",Be(e,t)),Me[e]=function t(e,n){for(var r=n.children(e),i=[].concat(r),a=0;a0?(f.debug("Cluster identified",e,Me),r.forEach((function(t){t.v!==e&&t.w!==e&&(De(t.v,e)^De(t.w,e)&&(f.warn("Edge: ",t," leaves cluster ",e),f.warn("Decendants of XXX ",e,": ",Me[e]),Ae[e].externalConnections=!0))}))):f.debug("Not a cluster ",e,Me)})),t.edges().forEach((function(e){var n=t.edge(e);f.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),f.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));var r=e.v,i=e.w;f.warn("Fix XXX",Ae,"ids:",e.v,e.w,"Translateing: ",Ae[e.v]," --- ",Ae[e.w]),(Ae[e.v]||Ae[e.w])&&(f.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),r=Le(e.v),i=Le(e.w),t.removeEdge(e.v,e.w,e.name),r!==e.v&&(n.fromCluster=e.v),i!==e.w&&(n.toCluster=e.w),f.warn("Fix Replacing with XXX",r,i,e.name),t.setEdge(r,i,n,e.name))})),f.warn("Adjusted Graph",H.a.json.write(t)),Pe(t,0),f.trace(Ae))},Pe=function t(e,n){if(f.warn("extractor - ",n,H.a.json.write(e),e.children("D")),n>10)f.error("Bailing out");else{for(var r=e.nodes(),i=!1,a=0;a0}if(i){f.debug("Nodes = ",r,n);for(var c=0;c0){f.warn("Cluster without external connections, without a parent and with children",u,n);var l=e.graph(),h=new H.a.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:"TB"===l.rankdir?"LR":"TB",nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));f.warn("Old graph before copy",H.a.json.write(e)),Ne(u,e,h,u),e.setNode(u,{clusterNode:!0,id:u,clusterData:Ae[u].clusterData,labelText:Ae[u].labelText,graph:h}),f.warn("New graph after copy node: (",u,")",H.a.json.write(h)),f.debug("Old graph after copy",H.a.json.write(e))}else f.warn("Cluster ** ",u," **not meeting the criteria !externalConnections:",!Ae[u].externalConnections," no parent: ",!e.parent(u)," children ",e.children(u)&&e.children(u).length>0,e.children("D"),n),f.debug(Ae);else f.debug("Not a cluster",u,n)}r=e.nodes(),f.warn("New list of nodes",r);for(var d=0;d0}var Ue=function(t,e,n,r){var i,a,o,s,c,u,l,h,f,d,p,g,y;if(i=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,f=i*n.x+o*n.y+c,d=i*r.x+o*r.y+c,!(0!==f&&0!==d&&ze(f,d)||(a=r.y-n.y,s=n.x-r.x,u=r.x*n.y-n.x*r.y,l=a*t.x+s*t.y+u,h=a*e.x+s*e.y+u,0!==l&&0!==h&&ze(l,h)||0==(p=i*s-a*o))))return g=Math.abs(p/2),{x:(y=o*u-s*c)<0?(y-g)/p:(y+g)/p,y:(y=a*c-i*u)<0?(y-g)/p:(y+g)/p}},$e=function(t,e,n){var r=t.x,i=t.y,a=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)})):(o=Math.min(o,e.x),s=Math.min(s,e.y));for(var c=r-t.width/2-o,u=i-t.height/2-s,l=0;l1&&a.sort((function(t,e){var r=t.x-n.x,i=t.y-n.y,a=Math.sqrt(r*r+i*i),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return aMath.abs(o)*u?(s<0&&(u=-u),n=0===s?0:u*o/s,r=u):(o<0&&(c=-c),n=c,r=0===o?0:c*s/o),{x:i+n,y:a+r}},Ve={node:n.n(je).a,circle:Ye,ellipse:Re,polygon:$e,rect:We},He=function(t,e){var n=Te(t,e,"node "+e.classes,!0),r=n.shapeSvg,i=n.bbox,a=n.halfPadding;f.info("Classes = ",e.classes);var o=r.insert("rect",":first-child");return o.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Ce(e,o),e.intersect=function(t){return Ve.rect(e,t)},r},Ge=[],qe={},Xe=0,Ze=[],Je=function(t){var e="",n=t;if(t.indexOf("~")>0){var r=t.split("~");n=r[0],e=r[1]}return{className:n,type:e}},Qe=function(t){var e=Je(t);void 0===qe[e.className]&&(qe[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:"classid-"+e.className+"-"+Xe},Xe++)},Ke=function(t){for(var e=Object.keys(qe),n=0;n>")?r.annotations.push(i.substring(2,i.length-2)):i.indexOf(")")>0?r.methods.push(i):i&&r.members.push(i)}},en=function(t,e){t.split(",").forEach((function(t){var n=t;t[0].match(/\d/)&&(n="classid-"+n),void 0!==qe[n]&&qe[n].cssClasses.push(e)}))},nn=function(t,e,n){var r=xt(),i=t,a=Ke(i);"loose"===r.securityLevel&&void 0!==e&&void 0!==qe[i]&&(n&&(qe[i].tooltip=x.sanitizeText(n,r)),Ze.push((function(){var t=document.querySelector('[id="'.concat(a,'"]'));null!==t&&t.addEventListener("click",(function(){W.runFunc(e,a)}),!1)})))},rn={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},an=function(t){var e=Object(s.select)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=Object(s.select)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),Object(s.select)(t).select("svg").selectAll("g.node").on("mouseover",(function(){var t=Object(s.select)(this);if(null!==t.attr("title")){var n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.html(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),t.classed("hover",!0)}})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),Object(s.select)(this).classed("hover",!1)}))};Ze.push(an);var on={parseDirective:function(t,e,n){$o.parseDirective(this,t,e,n)},getConfig:function(){return xt().class},addClass:Qe,bindFunctions:function(t){Ze.forEach((function(e){e(t)}))},clear:function(){Ge=[],qe={},(Ze=[]).push(an)},getClass:function(t){return qe[t]},getClasses:function(){return qe},addAnnotation:function(t,e){var n=Je(t).className;qe[n].annotations.push(e)},getRelations:function(){return Ge},addRelation:function(t){f.debug("Adding relation: "+JSON.stringify(t)),Qe(t.id1),Qe(t.id2),t.id1=Je(t.id1).className,t.id2=Je(t.id2).className,Ge.push(t)},addMember:tn,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((function(e){return tn(t,e)})))},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(1).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:rn,setClickEvent:function(t,e,n){t.split(",").forEach((function(t){nn(t,e,n),qe[t].haveCallback=!0})),en(t,"clickable")},setCssClass:en,setLink:function(t,e,n){var r=xt();t.split(",").forEach((function(t){var i=t;t[0].match(/\d/)&&(i="classid-"+i),void 0!==qe[i]&&(qe[i].link=W.formatUrl(e,r),n&&(qe[i].tooltip=x.sanitizeText(n,r)))})),en(t,"clickable")},lookUpDomId:Ke},sn=0,cn=function(t){var e=t.match(/(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+)/),n=t.match(/^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/);return e&&!n?un(e):n?ln(n):hn(t)},un=function(t){var e="";try{e=(t[1]?t[1].trim():"")+(t[2]?t[2].trim():"")+(t[3]?dn(t[3].trim()):"")+" "+(t[4]?t[4].trim():"")}catch(n){e=t}return{displayText:e,cssStyle:""}},ln=function(t){var e="",n="";try{var r=t[1]?t[1].trim():"",i=t[2]?t[2].trim():"",a=t[3]?dn(t[3].trim()):"",o=t[4]?t[4].trim():"";n=r+i+"("+a+")"+(t[5]?" : "+dn(t[5]).trim():""),e=pn(o)}catch(e){n=t}return{displayText:n,cssStyle:e}},hn=function(t){var e="",n="",r="",i=t.indexOf("("),a=t.indexOf(")");if(i>1&&a>i&&a<=t.length){var o="",s="",c=t.substring(0,1);c.match(/\w/)?s=t.substring(0,i).trim():(c.match(/\+|-|~|#/)&&(o=c),s=t.substring(1,i).trim());var u=t.substring(i+1,a),l=t.substring(a+1,1);n=pn(l),e=o+s+"("+dn(u.trim())+")",a<"".length&&""!==(r=t.substring(a+2).trim())&&(r=" : "+dn(r))}else e=dn(t);return{displayText:e,cssStyle:n}},fn=function(t,e,n,r){var i=cn(e),a=t.append("tspan").attr("x",r.padding).text(i.displayText);""!==i.cssStyle&&a.attr("style",i.cssStyle),n||a.attr("dy",r.textHeight)},dn=function t(e){var n=e;return-1!=e.indexOf("~")?t(n=(n=n.replace("~","<")).replace("~",">")):n},pn=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},gn=function(t,e,n){f.info("Rendering class "+e);var r,i=e.id,a={id:i,label:e.id,width:0,height:0},o=t.append("g").attr("id",Ke(i)).attr("class","classGroup");r=e.link?o.append("svg:a").attr("xlink:href",e.link).attr("target","_blank").append("text").attr("y",n.textHeight+n.padding).attr("x",0):o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);var s=!0;e.annotations.forEach((function(t){var e=r.append("tspan").text("«"+t+"»");s||e.attr("dy",n.textHeight),s=!1}));var c=e.id;void 0!==e.type&&""!==e.type&&(c+="<"+e.type+">");var u=r.append("tspan").text(c).attr("class","title");s||u.attr("dy",n.textHeight);var l=r.node().getBBox().height,h=o.append("line").attr("x1",0).attr("y1",n.padding+l+n.dividerMargin/2).attr("y2",n.padding+l+n.dividerMargin/2),d=o.append("text").attr("x",n.padding).attr("y",l+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");s=!0,e.members.forEach((function(t){fn(d,t,s,n),s=!1}));var p=d.node().getBBox(),g=o.append("line").attr("x1",0).attr("y1",n.padding+l+n.dividerMargin+p.height).attr("y2",n.padding+l+n.dividerMargin+p.height),y=o.append("text").attr("x",n.padding).attr("y",l+2*n.dividerMargin+p.height+n.textHeight).attr("fill","white").attr("class","classText");s=!0,e.methods.forEach((function(t){fn(y,t,s,n),s=!1}));var v=o.node().getBBox(),m=" ";e.cssClasses.length>0&&(m+=e.cssClasses.join(" "));var b=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",v.width+2*n.padding).attr("height",v.height+n.padding+.5*n.dividerMargin).attr("class",m).node().getBBox().width;return r.node().childNodes.forEach((function(t){t.setAttribute("x",(b-t.getBBox().width)/2)})),e.tooltip&&r.insert("title").text(e.tooltip),h.attr("x2",b),g.attr("x2",b),a.width=b,a.height=v.height+n.padding+.5*n.dividerMargin,a},yn=function(t,e,n,r){var i=function(t){switch(t){case rn.AGGREGATION:return"aggregation";case rn.EXTENSION:return"extension";case rn.COMPOSITION:return"composition";case rn.DEPENDENCY:return"dependency"}};e.points=e.points.filter((function(t){return!Number.isNaN(t.y)}));var a,o,c=e.points,u=Object(s.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.curveBasis),l=t.append("path").attr("d",u(c)).attr("id","edge"+sn).attr("class","relation"),h="";r.arrowMarkerAbsolute&&(h=(h=(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),1==n.relation.lineType&&l.attr("class","relation dashed-line"),"none"!==n.relation.type1&&l.attr("marker-start","url("+h+"#"+i(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&l.attr("marker-end","url("+h+"#"+i(n.relation.type2)+"End)");var d,p,g,y,v=e.points.length,m=W.calcLabelPosition(e.points);if(a=m.x,o=m.y,v%2!=0&&v>1){var b=W.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),x=W.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[v-1]);f.debug("cardinality_1_point "+JSON.stringify(b)),f.debug("cardinality_2_point "+JSON.stringify(x)),d=b.x,p=b.y,g=x.x,y=x.y}if(void 0!==n.title){var _=t.append("g").attr("class","classLabel"),k=_.append("text").attr("class","label").attr("x",a).attr("y",o).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=k;var w=k.node().getBBox();_.insert("rect",":first-child").attr("class","box").attr("x",w.x-r.padding/2).attr("y",w.y-r.padding/2).attr("width",w.width+r.padding).attr("height",w.height+r.padding)}(f.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1)&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",d).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1);void 0!==n.relationTitle2&&"none"!==n.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",g).attr("y",y).attr("fill","black").attr("font-size","6").text(n.relationTitle2);sn++},vn=function(t,e,n){var r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;"LR"===n&&(i=10,a=70);var o=r.append("rect").style("stroke","black").style("fill","black").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return Ce(e,o),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return Ve.rect(e,t)},r},mn={question:function(t,e){var n=Te(t,e,void 0,!0),r=n.shapeSvg,i=n.bbox,a=i.width+e.padding+(i.height+e.padding),o=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];f.info("Question main (Circle)");var s=Se(r,a,a,o);return Ce(e,s),e.intersect=function(t){return f.warn("Intersect called"),Ve.polygon(e,o,t)},r},rect:function(t,e){var n=Te(t,e,"node "+e.classes,!0),r=n.shapeSvg,i=n.bbox,a=n.halfPadding;f.trace("Classes = ",e.classes);var o=r.insert("rect",":first-child");return o.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Ce(e,o),e.intersect=function(t){return Ve.rect(e,t)},r},rectWithTitle:function(t,e){var n;n=e.classes?"node "+e.classes:"node default";var r=t.insert("g").attr("class",n).attr("id",e.domId||e.id),i=r.insert("rect",":first-child"),a=r.insert("line"),o=r.insert("g").attr("class","label"),c=e.labelText.flat();f.info("Label text",c[0]);var u,l=o.node().appendChild(Ee(c[0],e.labelStyle,!0,!0));if(xt().flowchart.htmlLabels){var h=l.children[0],d=Object(s.select)(l);u=h.getBoundingClientRect(),d.attr("width",u.width),d.attr("height",u.height)}f.info("Text 2",c);var p=c.slice(1,c.length),g=l.getBBox(),y=o.node().appendChild(Ee(p.join("
    "),e.labelStyle,!0,!0));if(xt().flowchart.htmlLabels){var v=y.children[0],m=Object(s.select)(y);u=v.getBoundingClientRect(),m.attr("width",u.width),m.attr("height",u.height)}var b=e.padding/2;return Object(s.select)(y).attr("transform","translate( "+(u.width>g.width?0:(g.width-u.width)/2)+", "+(g.height+b+5)+")"),Object(s.select)(l).attr("transform","translate( "+(u.widthe.height/2-s)){var i=s*s*(1-r*r/(o*o));0!=i&&(i=Math.sqrt(i)),i=s-i,t.y-e.y>0&&(i=-i),n.y+=i}return n},r},start:function(t,e){var n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),r=n.insert("circle",":first-child");return r.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Ce(e,r),e.intersect=function(t){return Ve.circle(e,7,t)},n},end:function(t,e){var n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),r=n.insert("circle",":first-child"),i=n.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),r.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Ce(e,i),e.intersect=function(t){return Ve.circle(e,7,t)},n},note:He,subroutine:function(t,e){var n=Te(t,e,void 0,!0),r=n.shapeSvg,i=n.bbox,a=i.width+e.padding,o=i.height+e.padding,s=Se(r,a,o,[{x:0,y:0},{x:a,y:0},{x:a,y:-o},{x:0,y:-o},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-o},{x:-8,y:-o},{x:-8,y:0}]);return Ce(e,s),e.intersect=function(t){return Ve.polygon(e,t)},r},fork:vn,join:vn,class_box:function(t,e){var n,r=e.padding/2;n=e.classes?"node "+e.classes:"node default";var i=t.insert("g").attr("class",n).attr("id",e.domId||e.id),a=i.insert("rect",":first-child"),o=i.insert("line"),c=i.insert("line"),u=0,l=4,h=i.insert("g").attr("class","label"),f=0,d=e.classData.annotations&&e.classData.annotations[0],p=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"",g=h.node().appendChild(Ee(p,e.labelStyle,!0,!0)),y=g.getBBox();if(xt().flowchart.htmlLabels){var v=g.children[0],m=Object(s.select)(g);y=v.getBoundingClientRect(),m.attr("width",y.width),m.attr("height",y.height)}e.classData.annotations[0]&&(l+=y.height+4,u+=y.width);var b=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&(b+="<"+e.classData.type+">");var x=h.node().appendChild(Ee(b,e.labelStyle,!0,!0));Object(s.select)(x).attr("class","classTitle");var _=x.getBBox();if(xt().flowchart.htmlLabels){var k=x.children[0],w=Object(s.select)(x);_=k.getBoundingClientRect(),w.attr("width",_.width),w.attr("height",_.height)}l+=_.height+4,_.width>u&&(u=_.width);var E=[];e.classData.members.forEach((function(t){var n=cn(t).displayText,r=h.node().appendChild(Ee(n,e.labelStyle,!0,!0)),i=r.getBBox();if(xt().flowchart.htmlLabels){var a=r.children[0],o=Object(s.select)(r);i=a.getBoundingClientRect(),o.attr("width",i.width),o.attr("height",i.height)}i.width>u&&(u=i.width),l+=i.height+4,E.push(r)})),l+=8;var T=[];if(e.classData.methods.forEach((function(t){var n=cn(t).displayText,r=h.node().appendChild(Ee(n,e.labelStyle,!0,!0)),i=r.getBBox();if(xt().flowchart.htmlLabels){var a=r.children[0],o=Object(s.select)(r);i=a.getBoundingClientRect(),o.attr("width",i.width),o.attr("height",i.height)}i.width>u&&(u=i.width),l+=i.height+4,T.push(r)})),l+=8,d){var C=(u-y.width)/2;Object(s.select)(g).attr("transform","translate( "+(-1*u/2+C)+", "+-1*l/2+")"),f=y.height+4}var S=(u-_.width)/2;return Object(s.select)(x).attr("transform","translate( "+(-1*u/2+S)+", "+(-1*l/2+f)+")"),f+=_.height+4,o.attr("class","divider").attr("x1",-u/2-r).attr("x2",u/2+r).attr("y1",-l/2-r+8+f).attr("y2",-l/2-r+8+f),f+=8,E.forEach((function(t){Object(s.select)(t).attr("transform","translate( "+-u/2+", "+(-1*l/2+f+4)+")"),f+=_.height+4})),f+=8,c.attr("class","divider").attr("x1",-u/2-r).attr("x2",u/2+r).attr("y1",-l/2-r+8+f).attr("y2",-l/2-r+8+f),f+=8,T.forEach((function(t){Object(s.select)(t).attr("transform","translate( "+-u/2+", "+(-1*l/2+f)+")"),f+=_.height+4})),a.attr("class","outer title-state").attr("x",-u/2-r).attr("y",-l/2-r).attr("width",u+e.padding).attr("height",l+e.padding),Ce(e,a),e.intersect=function(t){return Ve.rect(e,t)},i}},bn={},xn=function(t){var e=bn[t.id];f.trace("Transforming node",t,"translate("+(t.x-t.width/2-5)+", "+(t.y-t.height/2-5)+")");t.clusterNode?e.attr("transform","translate("+(t.x-t.width/2-8)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")")},_n={rect:function(t,e){f.trace("Creating subgraph rect for ",e.id,e);var n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),r=n.insert("rect",":first-child"),i=n.insert("g").attr("class","cluster-label"),a=i.node().appendChild(Ee(e.labelText,e.labelStyle,void 0,!0)),o=a.getBBox();if(xt().flowchart.htmlLabels){var c=a.children[0],u=Object(s.select)(a);o=c.getBoundingClientRect(),u.attr("width",o.width),u.attr("height",o.height)}var l=0*e.padding,h=l/2;f.trace("Data ",e,JSON.stringify(e)),r.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-h).attr("y",e.y-e.height/2-h).attr("width",e.width+l).attr("height",e.height+l),i.attr("transform","translate("+(e.x-o.width/2)+", "+(e.y-e.height/2-e.padding/3+3)+")");var d=r.node().getBBox();return e.width=d.width,e.height=d.height,e.intersect=function(t){return We(e,t)},n},roundedWithTitle:function(t,e){var n=t.insert("g").attr("class",e.classes).attr("id",e.id),r=n.insert("rect",":first-child"),i=n.insert("g").attr("class","cluster-label"),a=n.append("rect"),o=i.node().appendChild(Ee(e.labelText,e.labelStyle,void 0,!0)),c=o.getBBox();if(xt().flowchart.htmlLabels){var u=o.children[0],l=Object(s.select)(o);c=u.getBoundingClientRect(),l.attr("width",c.width),l.attr("height",c.height)}c=o.getBBox();var h=0*e.padding,f=h/2;r.attr("class","outer").attr("x",e.x-e.width/2-f).attr("y",e.y-e.height/2-f).attr("width",e.width+h).attr("height",e.height+h),a.attr("class","inner").attr("x",e.x-e.width/2-f).attr("y",e.y-e.height/2-f+c.height-1).attr("width",e.width+h).attr("height",e.height+h-c.height-3),i.attr("transform","translate("+(e.x-c.width/2)+", "+(e.y-e.height/2-e.padding/3+(xt().flowchart.htmlLabels?5:3))+")");var d=r.node().getBBox();return e.width=d.width,e.height=d.height,e.intersect=function(t){return We(e,t)},n},noteGroup:function(t,e){var n=t.insert("g").attr("class","note-cluster").attr("id",e.id),r=n.insert("rect",":first-child"),i=0*e.padding,a=i/2;r.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");var o=r.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return We(e,t)},n},divider:function(t,e){var n=t.insert("g").attr("class",e.classes).attr("id",e.id),r=n.insert("rect",":first-child"),i=0*e.padding,a=i/2;r.attr("class","divider").attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2).attr("width",e.width+i).attr("height",e.height+i);var o=r.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return We(e,t)},n}},kn={},wn={},En={},Tn=function(t,e){var n=t.x,r=t.y,i=Math.abs(e.x-n),a=Math.abs(e.y-r),o=t.width/2,s=t.height/2;return i>=o||a>=s},Cn=function(t,e,n){f.warn("intersection calc o:",e," i:",n,t);var r=t.x,i=t.y,a=Math.abs(r-n.x),o=t.width/2,s=n.xMath.abs(r-e.x)*c){var y=n.y0&&f.info("Recursive edges",n.edge(n.edges()[0]));var c=o.insert("g").attr("class","clusters"),u=o.insert("g").attr("class","edgePaths"),l=o.insert("g").attr("class","edgeLabels"),h=o.insert("g").attr("class","nodes");return n.nodes().forEach((function(e){var o=n.node(e);if(void 0!==i){var s=JSON.parse(JSON.stringify(i.clusterData));f.info("Setting data for cluster XXX (",e,") ",s,i),n.setNode(i.id,s),n.parent(e)||(f.warn("Setting parent",e,i.id),n.setParent(e,i.id,s))}if(f.info("(Insert) Node XXX"+e+": "+JSON.stringify(n.node(e))),o&&o.clusterNode){f.info("Cluster identified",e,o,n.node(e));var c=t(h,o.graph,r,n.node(e));Ce(o,c),function(t,e){bn[e.id]=t}(c,o),f.warn("Recursive render complete",c,o)}else n.children(e).length>0?(f.info("Cluster - the non recursive path XXX",e,o.id,o,n),f.info(Be(o.id,n)),Ae[o.id]={id:Be(o.id,n),node:o}):(f.info("Node - the non recursive path",e,o.id,o),function(t,e,n){var r,i;e.link?(r=t.insert("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget||"_blank"),i=mn[e.shape](r,e,n)):r=i=mn[e.shape](t,e,n),e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),bn[e.id]=r,e.haveCallback&&bn[e.id].attr("class",bn[e.id].attr("class")+" clickable")}(h,n.node(e),a))})),n.edges().forEach((function(t){var e=n.edge(t.v,t.w,t.name);f.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),f.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(n.edge(t))),f.info("Fix",Ae,"ids:",t.v,t.w,"Translateing: ",Ae[t.v],Ae[t.w]),function(t,e){var n=Ee(e.label,e.labelStyle),r=t.insert("g").attr("class","edgeLabel"),i=r.insert("g").attr("class","label");i.node().appendChild(n);var a=n.getBBox();if(xt().flowchart.htmlLabels){var o=n.children[0],c=Object(s.select)(n);a=o.getBoundingClientRect(),c.attr("width",a.width),c.attr("height",a.height)}if(i.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),wn[e.id]=r,e.width=a.width,e.height=a.height,e.startLabelLeft){var u=Ee(e.startLabelLeft,e.labelStyle),l=t.insert("g").attr("class","edgeTerminals"),h=l.insert("g").attr("class","inner");h.node().appendChild(u);var f=u.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),En[e.id]||(En[e.id]={}),En[e.id].startLeft=l}if(e.startLabelRight){var d=Ee(e.startLabelRight,e.labelStyle),p=t.insert("g").attr("class","edgeTerminals"),g=p.insert("g").attr("class","inner");p.node().appendChild(d),g.node().appendChild(d);var y=d.getBBox();g.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),En[e.id]||(En[e.id]={}),En[e.id].startRight=p}if(e.endLabelLeft){var v=Ee(e.endLabelLeft,e.labelStyle),m=t.insert("g").attr("class","edgeTerminals"),b=m.insert("g").attr("class","inner");b.node().appendChild(v);var x=v.getBBox();b.attr("transform","translate("+-x.width/2+", "+-x.height/2+")"),m.node().appendChild(v),En[e.id]||(En[e.id]={}),En[e.id].endLeft=m}if(e.endLabelRight){var _=Ee(e.endLabelRight,e.labelStyle),k=t.insert("g").attr("class","edgeTerminals"),w=k.insert("g").attr("class","inner");w.node().appendChild(_);var E=_.getBBox();w.attr("transform","translate("+-E.width/2+", "+-E.height/2+")"),k.node().appendChild(_),En[e.id]||(En[e.id]={}),En[e.id].endRight=k}}(l,e)})),n.edges().forEach((function(t){f.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),f.info("#############################################"),f.info("### Layout ###"),f.info("#############################################"),f.info(n),_e.a.layout(n),f.info("Graph after layout:",H.a.json.write(n)),Ie(n).forEach((function(t){var e=n.node(t);f.info("Position "+t+": "+JSON.stringify(n.node(t))),f.info("Position "+t+": ("+e.x,","+e.y,") width: ",e.width," height: ",e.height),e&&e.clusterNode?xn(e):n.children(t).length>0?(!function(t,e){f.trace("Inserting cluster");var n=e.shape||"rect";kn[e.id]=_n[n](t,e)}(c,e),Ae[e.id].node=e):xn(e)})),n.edges().forEach((function(t){var e=n.edge(t);f.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e),e);var i=function(t,e,n,r,i,a){var o=n.points,c=!1,u=a.node(e.v),l=a.node(e.w);if(l.intersect&&u.intersect&&((o=o.slice(1,n.points.length-1)).unshift(u.intersect(o[0])),f.info("Last point",o[o.length-1],l,l.intersect(o[o.length-1])),o.push(l.intersect(o[o.length-1]))),n.toCluster){var h;f.trace("edge",n),f.trace("to cluster",r[n.toCluster]),o=[];var d=!1;n.points.forEach((function(t){var e=r[n.toCluster].node;if(Tn(e,t)||d)d||o.push(t);else{f.trace("inside",n.toCluster,t,h);var i=Cn(e,h,t),a=!1;o.forEach((function(t){a=a||t.x===i.x&&t.y===i.y})),o.find((function(t){return t.x===i.x&&t.y===i.y}))?f.warn("no intersect",i,o):o.push(i),d=!0}h=t})),c=!0}if(n.fromCluster){f.trace("edge",n),f.warn("from cluster",r[n.fromCluster]);for(var p,g=[],y=!1,v=o.length-1;v>=0;v--){var m=o[v],b=r[n.fromCluster].node;if(Tn(b,m)||y)f.trace("Outside point",m),y||g.unshift(m);else{f.warn("inside",n.fromCluster,m,b);var x=Cn(b,p,m);g.unshift(x),y=!0}p=m}o=g,c=!0}var _,k=o.filter((function(t){return!Number.isNaN(t.y)})),w=Object(s.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.curveBasis);switch(n.thickness){case"normal":_="edge-thickness-normal";break;case"thick":_="edge-thickness-thick";break;default:_=""}switch(n.pattern){case"solid":_+=" edge-pattern-solid";break;case"dotted":_+=" edge-pattern-dotted";break;case"dashed":_+=" edge-pattern-dashed"}var E=t.append("path").attr("d",w(k)).attr("id",n.id).attr("class"," "+_+(n.classes?" "+n.classes:"")).attr("style",n.style),T="";switch(xt().state.arrowMarkerAbsolute&&(T=(T=(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),f.info("arrowTypeStart",n.arrowTypeStart),f.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":E.attr("marker-start","url("+T+"#"+i+"-crossStart)");break;case"arrow_point":E.attr("marker-start","url("+T+"#"+i+"-pointStart)");break;case"arrow_barb":E.attr("marker-start","url("+T+"#"+i+"-barbStart)");break;case"arrow_circle":E.attr("marker-start","url("+T+"#"+i+"-circleStart)");break;case"aggregation":E.attr("marker-start","url("+T+"#"+i+"-aggregationStart)");break;case"extension":E.attr("marker-start","url("+T+"#"+i+"-extensionStart)");break;case"composition":E.attr("marker-start","url("+T+"#"+i+"-compositionStart)");break;case"dependency":E.attr("marker-start","url("+T+"#"+i+"-dependencyStart)")}switch(n.arrowTypeEnd){case"arrow_cross":E.attr("marker-end","url("+T+"#"+i+"-crossEnd)");break;case"arrow_point":E.attr("marker-end","url("+T+"#"+i+"-pointEnd)");break;case"arrow_barb":E.attr("marker-end","url("+T+"#"+i+"-barbEnd)");break;case"arrow_circle":E.attr("marker-end","url("+T+"#"+i+"-circleEnd)");break;case"aggregation":E.attr("marker-end","url("+T+"#"+i+"-aggregationEnd)");break;case"extension":E.attr("marker-end","url("+T+"#"+i+"-extensionEnd)");break;case"composition":E.attr("marker-end","url("+T+"#"+i+"-compositionEnd)");break;case"dependency":E.attr("marker-end","url("+T+"#"+i+"-dependencyEnd)")}var C={};return c&&(C.updatedPath=o),C.originalPath=n.points,C}(u,t,e,Ae,r,n);!function(t,e){f.info("Moving label",t.id,t.label,wn[t.id]);var n=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){var r=wn[t.id],i=t.x,a=t.y;if(n){var o=W.calcLabelPosition(n);f.info("Moving label from (",i,",",a,") to (",o.x,",",o.y,")")}r.attr("transform","translate("+i+", "+a+")")}if(t.startLabelLeft){var s=En[t.id].startLeft,c=t.x,u=t.y;if(n){var l=W.calcTerminalLabelPosition(0,"start_left",n);c=l.x,u=l.y}s.attr("transform","translate("+c+", "+u+")")}if(t.startLabelRight){var h=En[t.id].startRight,d=t.x,p=t.y;if(n){var g=W.calcTerminalLabelPosition(0,"start_right",n);d=g.x,p=g.y}h.attr("transform","translate("+d+", "+p+")")}if(t.endLabelLeft){var y=En[t.id].endLeft,v=t.x,m=t.y;if(n){var b=W.calcTerminalLabelPosition(0,"end_left",n);v=b.x,m=b.y}y.attr("transform","translate("+v+", "+m+")")}if(t.endLabelRight){var x=En[t.id].endRight,_=t.x,k=t.y;if(n){var w=W.calcTerminalLabelPosition(0,"end_right",n);_=w.x,k=w.y}x.attr("transform","translate("+_+", "+k+")")}}(e,i)})),o},An=function(t,e,n,r,i){we(t,n,r,i),bn={},wn={},En={},kn={},Me={},Oe={},Ae={},f.warn("Graph at first:",H.a.json.write(e)),Fe(e),f.warn("Graph after:",H.a.json.write(e)),Sn(t,e,r)},Mn={},On=function(t,e,n){var r=Object(s.select)('[id="'.concat(n,'"]'));Object.keys(t).forEach((function(n){var i=t[n],a="default";i.classes.length>0&&(a=i.classes.join(" "));var o,s=N(i.styles),c=void 0!==i.text?i.text:i.id;if(xt().flowchart.htmlLabels){var u={label:c.replace(/fa[lrsb]?:fa-[\w-]+/g,(function(t){return"")}))};(o=te()(r,u).node()).parentNode.removeChild(o)}else{var l=document.createElementNS("http://www.w3.org/2000/svg","text");l.setAttribute("style",s.labelStyle.replace("color:","fill:"));for(var h=c.split(x.lineBreakRegex),d=0;d=0;h--)i=l[h],f.info("Subgraph - ",i),qt.addVertex(i.id,i.title,"group",void 0,i.classes);var d=qt.getVertices(),p=qt.getEdges();f.info(p);var g=0;for(g=l.length-1;g>=0;g--){i=l[g],Object(s.selectAll)("cluster").append("text");for(var y=0;y0)switch(e.valign){case"top":case"start":s=function(){return Math.round(e.y+e.textMargin)};break;case"middle":case"center":s=function(){return Math.round(e.y+(n+r+e.textMargin)/2)};break;case"bottom":case"end":s=function(){return Math.round(e.y+(n+r+2*e.textMargin)-e.textMargin)}}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="text-after-edge",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="text-before-edge",e.alignmentBaseline="middle"}for(var c=0;c0&&(r+=(l._groups||l)[0][0].getBBox().height,n=r),a.push(l)}return a},Pn=function(t,e){var n,r,i,a,o,s=t.append("polygon");return s.attr("points",(n=e.x,r=e.y,i=e.width,a=e.height,n+","+r+" "+(n+i)+","+r+" "+(n+i)+","+(r+a-(o=7))+" "+(n+i-1.2*o)+","+(r+a)+" "+n+","+(r+a))),s.attr("class","labelBox"),e.y=e.y+e.height/2,Fn(t,e),s},In=-1,jn=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},Rn=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Yn=function(){function t(t,e,n,i,a,o,s){r(e.append("text").attr("x",n+a/2).attr("y",i+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,i,a,o,s,c){for(var u=c.actorFontSize,l=c.actorFontFamily,h=c.actorFontWeight,f=t.split(x.lineBreakRegex),d=0;d2&&void 0!==arguments[2]?arguments[2]:{text:void 0,wrap:void 0},r=arguments.length>3?arguments[3]:void 0;if(r===nr.ACTIVE_END){var i=Kn(t.actor);if(i<1){var a=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw a.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},a}}return Hn.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&er()||!!n.wrap,type:r}),!0},er=function(){return Jn},nr={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23},rr=function(t,e,n){var r={actor:t,placement:e,message:n.text,wrap:void 0===n.wrap&&er()||!!n.wrap},i=[].concat(t,t);Gn.push(r),Hn.push({from:i[0],to:i[1],message:n.text,wrap:void 0===n.wrap&&er()||!!n.wrap,type:nr.NOTE,placement:e})},ir=function(t){qn=t.text,Xn=void 0===t.wrap&&er()||!!t.wrap},ar={addActor:Qn,addMessage:function(t,e,n,r){Hn.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&er()||!!n.wrap,answer:r})},addSignal:tr,autoWrap:er,setWrap:function(t){Jn=t},enableSequenceNumbers:function(){Zn=!0},showSequenceNumbers:function(){return Zn},getMessages:function(){return Hn},getActors:function(){return Vn},getActor:function(t){return Vn[t]},getActorKeys:function(){return Object.keys(Vn)},getTitle:function(){return qn},parseDirective:function(t,e,n){$o.parseDirective(this,t,e,n)},getConfig:function(){return xt().sequence},getTitleWrapped:function(){return Xn},clear:function(){Vn={},Hn=[]},parseMessage:function(t){var e=t.trim(),n={text:e.replace(/^[:]?(?:no)?wrap:/,"").trim(),wrap:null===e.match(/^[:]?(?:no)?wrap:/)?x.hasBreaks(e)||void 0:null!==e.match(/^[:]?wrap:/)||null===e.match(/^[:]?nowrap:/)&&void 0};return f.debug("parseMessage:",n),n},LINETYPE:nr,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:rr,setTitle:ir,apply:function t(e){if(e instanceof Array)e.forEach((function(e){t(e)}));else switch(e.type){case"addActor":Qn(e.actor,e.actor,e.description);break;case"activeStart":case"activeEnd":tr(e.actor,void 0,void 0,e.signalType);break;case"addNote":rr(e.actor,e.placement,e.text);break;case"addMessage":tr(e.from,e.to,e.msg,e.signalType);break;case"loopStart":tr(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":tr(void 0,void 0,void 0,e.signalType);break;case"rectStart":tr(void 0,void 0,e.color,e.signalType);break;case"rectEnd":tr(void 0,void 0,void 0,e.signalType);break;case"optStart":tr(void 0,void 0,e.optText,e.signalType);break;case"optEnd":tr(void 0,void 0,void 0,e.signalType);break;case"altStart":case"else":tr(void 0,void 0,e.altText,e.signalType);break;case"altEnd":tr(void 0,void 0,void 0,e.signalType);break;case"setTitle":ir(e.text);break;case"parStart":case"and":tr(void 0,void 0,e.parText,e.signalType);break;case"parEnd":tr(void 0,void 0,void 0,e.signalType)}}};Un.parser.yy=ar;var or={},sr={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map((function(t){return t.height||0})))+(0===this.loops.length?0:this.loops.map((function(t){return t.height||0})).reduce((function(t,e){return t+e})))+(0===this.messages.length?0:this.messages.map((function(t){return t.height||0})).reduce((function(t,e){return t+e})))+(0===this.notes.length?0:this.notes.map((function(t){return t.height||0})).reduce((function(t,e){return t+e})))},clear:function(){this.actors=[],this.loops=[],this.messages=[],this.notes=[]},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,fr(Un.parser.yy.getConfig())},updateVal:function(t,e,n,r){void 0===t[e]?t[e]=n:t[e]=r(n,t[e])},updateBounds:function(t,e,n,r){var i=this,a=0;function o(o){return function(s){a++;var c=i.sequenceItems.length-a+1;i.updateVal(s,"starty",e-c*or.boxMargin,Math.min),i.updateVal(s,"stopy",r+c*or.boxMargin,Math.max),i.updateVal(sr.data,"startx",t-c*or.boxMargin,Math.min),i.updateVal(sr.data,"stopx",n+c*or.boxMargin,Math.max),"activation"!==o&&(i.updateVal(s,"startx",t-c*or.boxMargin,Math.min),i.updateVal(s,"stopx",n+c*or.boxMargin,Math.max),i.updateVal(sr.data,"starty",e-c*or.boxMargin,Math.min),i.updateVal(sr.data,"stopy",r+c*or.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,r){var i=Math.min(t,n),a=Math.max(t,n),o=Math.min(e,r),s=Math.max(e,r);this.updateVal(sr.data,"startx",i,Math.min),this.updateVal(sr.data,"starty",o,Math.min),this.updateVal(sr.data,"stopx",a,Math.max),this.updateVal(sr.data,"stopy",s,Math.max),this.updateBounds(i,o,a,s)},newActivation:function(t,e,n){var r=n[t.from.actor],i=dr(t.from.actor).length||0,a=r.x+r.width/2+(i-1)*or.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+or.activationWidth,stopy:void 0,actor:t.from.actor,anchored:zn.anchorElement(e)})},endActivation:function(t){var e=this.activations.map((function(t){return t.actor})).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:void 0,wrap:!1,width:void 0},e=arguments.length>1?arguments[1]:void 0;return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{message:void 0,wrap:!1,width:void 0},e=arguments.length>1?arguments[1]:void 0;this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},addSectionToLoop:function(t){var e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:sr.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},cr=function(t){return{fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}},ur=function(t){return{fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}},lr=function(t){return{fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}},hr=function(t,e,n,r){for(var i=0,a=0,o=0;o0&&o.forEach((function(r){if(n=r,i.startx===i.stopx){var a=e[t.from],o=e[t.to];n.from=Math.min(a.x-i.width/2,a.x-a.width/2,n.from),n.to=Math.max(o.x+i.width/2,o.x+a.width/2,n.to),n.width=Math.max(n.width,Math.abs(n.to-n.from))-or.labelBoxWidth}else n.from=Math.min(i.startx,n.from),n.to=Math.max(i.stopx,n.to),n.width=Math.max(n.width,i.width)-or.labelBoxWidth})))})),sr.activations=[],f.debug("Loop type widths:",a),a},br={bounds:sr,drawActors:hr,setConf:fr,draw:function(t,e){or=xt().sequence,Un.parser.yy.clear(),Un.parser.yy.setWrap(or.wrap),Un.parser.parse(t+"\n"),sr.init(),f.debug("C:".concat(JSON.stringify(or,null,2)));var n=Object(s.select)('[id="'.concat(e,'"]')),r=Un.parser.yy.getActors(),i=Un.parser.yy.getActorKeys(),a=Un.parser.yy.getMessages(),o=Un.parser.yy.getTitle(),c=yr(r,a);or.height=vr(r,c),hr(n,r,i,0);var u=mr(a,r,c);zn.insertArrowHead(n),zn.insertArrowCrossHead(n),zn.insertSequenceNumber(n);var l=1;a.forEach((function(t){var e,i,a;switch(t.type){case Un.parser.yy.LINETYPE.NOTE:i=t.noteModel,function(t,e){sr.bumpVerticalPos(or.boxMargin),e.height=or.boxMargin,e.starty=sr.getVerticalPos();var n=zn.getNoteRect();n.x=e.startx,n.y=e.starty,n.width=e.width||or.width,n.class="note";var r=t.append("g"),i=zn.drawRect(r,n),a=zn.getTextObj();a.x=e.startx,a.y=e.starty,a.width=n.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=or.noteFontFamily,a.fontSize=or.noteFontSize,a.fontWeight=or.noteFontWeight,a.anchor=or.noteAlign,a.textMargin=or.noteMargin,a.valign=or.noteAlign,a.wrap=!0;var o=Fn(r,a),s=Math.round(o.map((function(t){return(t._groups||t)[0][0].getBBox().height})).reduce((function(t,e){return t+e})));i.attr("height",s+2*or.noteMargin),e.height+=s+2*or.noteMargin,sr.bumpVerticalPos(s+2*or.noteMargin),e.stopy=e.starty+s+2*or.noteMargin,e.stopx=e.startx+n.width,sr.insert(e.startx,e.starty,e.stopx,e.stopy),sr.models.addNote(e)}(n,i);break;case Un.parser.yy.LINETYPE.ACTIVE_START:sr.newActivation(t,n,r);break;case Un.parser.yy.LINETYPE.ACTIVE_END:!function(t,e){var r=sr.endActivation(t);r.starty+18>e&&(r.starty=e-6,e+=12),zn.drawActivation(n,r,e,or,dr(t.from.actor).length),sr.insert(r.startx,e-10,r.stopx,e)}(t,sr.getVerticalPos());break;case Un.parser.yy.LINETYPE.LOOP_START:gr(u,t,or.boxMargin,or.boxMargin+or.boxTextMargin,(function(t){return sr.newLoop(t)}));break;case Un.parser.yy.LINETYPE.LOOP_END:e=sr.endLoop(),zn.drawLoop(n,e,"loop",or),sr.bumpVerticalPos(e.stopy-sr.getVerticalPos()),sr.models.addLoop(e);break;case Un.parser.yy.LINETYPE.RECT_START:gr(u,t,or.boxMargin,or.boxMargin,(function(t){return sr.newLoop(void 0,t.message)}));break;case Un.parser.yy.LINETYPE.RECT_END:e=sr.endLoop(),zn.drawBackgroundRect(n,e),sr.models.addLoop(e),sr.bumpVerticalPos(e.stopy-sr.getVerticalPos());break;case Un.parser.yy.LINETYPE.OPT_START:gr(u,t,or.boxMargin,or.boxMargin+or.boxTextMargin,(function(t){return sr.newLoop(t)}));break;case Un.parser.yy.LINETYPE.OPT_END:e=sr.endLoop(),zn.drawLoop(n,e,"opt",or),sr.bumpVerticalPos(e.stopy-sr.getVerticalPos()),sr.models.addLoop(e);break;case Un.parser.yy.LINETYPE.ALT_START:gr(u,t,or.boxMargin,or.boxMargin+or.boxTextMargin,(function(t){return sr.newLoop(t)}));break;case Un.parser.yy.LINETYPE.ALT_ELSE:gr(u,t,or.boxMargin+or.boxTextMargin,or.boxMargin,(function(t){return sr.addSectionToLoop(t)}));break;case Un.parser.yy.LINETYPE.ALT_END:e=sr.endLoop(),zn.drawLoop(n,e,"alt",or),sr.bumpVerticalPos(e.stopy-sr.getVerticalPos()),sr.models.addLoop(e);break;case Un.parser.yy.LINETYPE.PAR_START:gr(u,t,or.boxMargin,or.boxMargin+or.boxTextMargin,(function(t){return sr.newLoop(t)}));break;case Un.parser.yy.LINETYPE.PAR_AND:gr(u,t,or.boxMargin+or.boxTextMargin,or.boxMargin,(function(t){return sr.addSectionToLoop(t)}));break;case Un.parser.yy.LINETYPE.PAR_END:e=sr.endLoop(),zn.drawLoop(n,e,"par",or),sr.bumpVerticalPos(e.stopy-sr.getVerticalPos()),sr.models.addLoop(e);break;default:try{(a=t.msgModel).starty=sr.getVerticalPos(),a.sequenceIndex=l,function(t,e){sr.bumpVerticalPos(10);var n=e.startx,r=e.stopx,i=e.starty,a=e.message,o=e.type,s=e.sequenceIndex,c=e.wrap,u=x.splitBreaks(a).length,l=W.calculateTextDimensions(a,cr(or)),h=l.height/u;e.height+=h,sr.bumpVerticalPos(h);var f=zn.getTextObj();f.x=n,f.y=i+10,f.width=r-n,f.class="messageText",f.dy="1em",f.text=a,f.fontFamily=or.messageFontFamily,f.fontSize=or.messageFontSize,f.fontWeight=or.messageFontWeight,f.anchor=or.messageAlign,f.valign=or.messageAlign,f.textMargin=or.wrapPadding,f.tspan=!1,f.wrap=c,Fn(t,f);var d,p,g=l.height-10,y=l.width;if(n===r){p=sr.getVerticalPos()+g,or.rightAngles?d=t.append("path").attr("d","M ".concat(n,",").concat(p," H ").concat(n+Math.max(or.width/2,y/2)," V ").concat(p+25," H ").concat(n)):(g+=or.boxMargin,p=sr.getVerticalPos()+g,d=t.append("path").attr("d","M "+n+","+p+" C "+(n+60)+","+(p-10)+" "+(n+60)+","+(p+30)+" "+n+","+(p+20))),g+=30;var v=Math.max(y/2,or.width/2);sr.insert(n-v,sr.getVerticalPos()-10+g,r+v,sr.getVerticalPos()+30+g)}else g+=or.boxMargin,p=sr.getVerticalPos()+g,(d=t.append("line")).attr("x1",n),d.attr("y1",p),d.attr("x2",r),d.attr("y2",p),sr.insert(n,p-10,r,p);o===Un.parser.yy.LINETYPE.DOTTED||o===Un.parser.yy.LINETYPE.DOTTED_CROSS||o===Un.parser.yy.LINETYPE.DOTTED_OPEN?(d.style("stroke-dasharray","3, 3"),d.attr("class","messageLine1")):d.attr("class","messageLine0");var m="";or.arrowMarkerAbsolute&&(m=(m=(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),d.attr("stroke-width",2),d.attr("stroke","none"),d.style("fill","none"),o!==Un.parser.yy.LINETYPE.SOLID&&o!==Un.parser.yy.LINETYPE.DOTTED||d.attr("marker-end","url("+m+"#arrowhead)"),o!==Un.parser.yy.LINETYPE.SOLID_CROSS&&o!==Un.parser.yy.LINETYPE.DOTTED_CROSS||d.attr("marker-end","url("+m+"#crosshead)"),(ar.showSequenceNumbers()||or.showSequenceNumbers)&&(d.attr("marker-start","url("+m+"#sequencenumber)"),t.append("text").attr("x",n).attr("y",p+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("textLength","16px").attr("class","sequenceNumber").text(s)),sr.bumpVerticalPos(g),e.height+=g,e.stopy=e.starty+e.height,sr.insert(e.fromBounds,e.starty,e.toBounds,e.stopy)}(n,a),sr.models.addMessage(a)}catch(t){f.error("error while drawing message",t)}}[Un.parser.yy.LINETYPE.SOLID_OPEN,Un.parser.yy.LINETYPE.DOTTED_OPEN,Un.parser.yy.LINETYPE.SOLID,Un.parser.yy.LINETYPE.DOTTED,Un.parser.yy.LINETYPE.SOLID_CROSS,Un.parser.yy.LINETYPE.DOTTED_CROSS].includes(t.type)&&l++})),or.mirrorActors&&(sr.bumpVerticalPos(2*or.boxMargin),hr(n,r,i,sr.getVerticalPos()));var h=sr.getBounds().bounds;f.debug("For line height fix Querying: #"+e+" .actor-line"),Object(s.selectAll)("#"+e+" .actor-line").attr("y2",h.stopy);var d=h.stopy-h.starty+2*or.diagramMarginY;or.mirrorActors&&(d=d-or.boxMargin+or.bottomMarginAdj);var p=h.stopx-h.startx+2*or.diagramMarginX;o&&n.append("text").text(o).attr("x",(h.stopx-h.startx)/2-2*or.diagramMarginX).attr("y",-25),$(n,d,p,or.useMaxWidth);var g=o?40:0;n.attr("viewBox",h.startx-or.diagramMarginX+" -"+(or.diagramMarginY+g)+" "+p+" "+(d+g)),f.debug("models:",sr.models)}},xr=n(27),_r=n.n(xr);function kr(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e=6&&n.indexOf("weekends")>=0||(n.indexOf(t.format("dddd").toLowerCase())>=0||n.indexOf(t.format(e.trim()))>=0)},jr=function(t,e,n){if(n.length&&!t.manualEndTime){var r=l()(t.startTime,e,!0);r.add(1,"d");var i=l()(t.endTime,e,!0),a=Rr(r,i,e,n);t.endTime=i.toDate(),t.renderEndTime=a}},Rr=function(t,e,n,r){for(var i=!1,a=null;t<=e;)i||(a=e.toDate()),(i=Ir(t,n,r))&&e.add(1,"d"),t.add(1,"d");return a},Yr=function(t,e,n){n=n.trim();var r=/^after\s+([\d\w- ]+)/.exec(n.trim());if(null!==r){var i=null;if(r[1].split(" ").forEach((function(t){var e=Gr(t);void 0!==e&&(i?e.endTime>i.endTime&&(i=e):i=e)})),i)return i.endTime;var a=new Date;return a.setHours(0,0,0,0),a}var o=l()(n,e.trim(),!0);return o.isValid()?o.toDate():(f.debug("Invalid date:"+n),f.debug("With date format:"+e.trim()),new Date)},zr=function(t,e){if(null!==t)switch(t[2]){case"s":e.add(t[1],"seconds");break;case"m":e.add(t[1],"minutes");break;case"h":e.add(t[1],"hours");break;case"d":e.add(t[1],"days");break;case"w":e.add(t[1],"weeks")}return e.toDate()},Ur=function(t,e,n,r){r=r||!1,n=n.trim();var i=l()(n,e.trim(),!0);return i.isValid()?(r&&i.add(1,"d"),i.toDate()):zr(/^([\d]+)([wdhms])/.exec(n.trim()),l()(t))},$r=0,Wr=function(t){return void 0===t?"task"+($r+=1):t},Vr=[],Hr={},Gr=function(t){var e=Hr[t];return Vr[e]},qr=function(){for(var t=function(t){var e=Vr[t],n="";switch(Vr[t].raw.startTime.type){case"prevTaskEnd":var r=Gr(e.prevTaskId);e.startTime=r.endTime;break;case"getStartDate":(n=Yr(0,Tr,Vr[t].raw.startTime.startData))&&(Vr[t].startTime=n)}return Vr[t].startTime&&(Vr[t].endTime=Ur(Vr[t].startTime,Tr,Vr[t].raw.endTime.data,Fr),Vr[t].endTime&&(Vr[t].processed=!0,Vr[t].manualEndTime=l()(Vr[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),jr(Vr[t],Tr,Ar))),Vr[t].processed},e=!0,n=0;nr?i=1:n0&&(e=t.classes.join(" "));for(var n=0,r=0;rn-e?n+a+1.5*ti.leftPadding>u?e+r-5:n+r+5:(n-e)/2+e+r})).attr("y",(function(t,r){return t.order*e+ti.barHeight/2+(ti.fontSize/2-2)+n})).attr("text-height",i).attr("class",(function(t){var e=o(t.startTime),n=o(t.endTime);t.milestone&&(n=e+i);var r=this.getBBox().width,a="";t.classes.length>0&&(a=t.classes.join(" "));for(var s=0,l=0;ln-e?n+r+1.5*ti.leftPadding>u?a+" taskTextOutsideLeft taskTextOutside"+s+" "+h:a+" taskTextOutsideRight taskTextOutside"+s+" "+h+" width-"+r:a+" taskText taskText"+s+" "+h+" width-"+r}))}(t,i,u,f,r,0,e),function(t,e){for(var n=[],r=0,i=0;i0&&a.setAttribute("dy","1em"),a.textContent=e[i],r.appendChild(a)}return r})).attr("x",10).attr("y",(function(i,a){if(!(a>0))return i[1]*t/2+e;for(var o=0;o "+t.w+": "+JSON.stringify(i.edge(t))),yn(r,i.edge(t),i.edge(t).relation,oi))}));var h=r.node().getBBox(),d=h.width+40,p=h.height+40;$(r,p,d,oi.useMaxWidth);var g="".concat(h.x-20," ").concat(h.y-20," ").concat(d," ").concat(p);f.debug("viewBox ".concat(g)),r.attr("viewBox",g)};ri.parser.yy=on;var li={dividerMargin:10,padding:5,textHeight:10},hi=function(t){Object.keys(t).forEach((function(e){li[e]=t[e]}))},fi=function(t,e){f.info("Drawing class"),on.clear(),ri.parser.parse(t);var n=xt().flowchart;f.info("config:",n);var r=n.nodeSpacing||50,i=n.rankSpacing||50,a=new H.a.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:"TD",nodesep:r,ranksep:i,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),o=on.getClasses(),c=on.getRelations();f.info(c),function(t,e){var n=Object.keys(t);f.info("keys:",n),f.info(t),n.forEach((function(n){var r=t[n],i="";r.cssClasses.length>0&&(i=i+" "+r.cssClasses.join(" "));var a={labelStyle:""},o=void 0!==r.text?r.text:r.id,s="";switch(r.type){case"class":s="class_box";break;default:s="class_box"}e.setNode(r.id,{labelStyle:a.labelStyle,shape:s,labelText:o,classData:r,rx:0,ry:0,class:i,style:a.style,id:r.id,domId:r.domId,haveCallback:r.haveCallback,link:r.link,width:"group"===r.type?500:void 0,type:r.type,padding:xt().flowchart.padding}),f.info("setNode",{labelStyle:a.labelStyle,shape:s,labelText:o,rx:0,ry:0,class:i,style:a.style,id:r.id,width:"group"===r.type?500:void 0,type:r.type,padding:xt().flowchart.padding})}))}(o,a),function(t,e){var n=0;t.forEach((function(r){n++;var i={classes:"relation"};i.pattern=1==r.relation.lineType?"dashed":"solid",i.id="id"+n,"arrow_open"===r.type?i.arrowhead="none":i.arrowhead="normal",f.info(i,r),i.startLabelRight="none"===r.relationTitle1?"":r.relationTitle1,i.endLabelLeft="none"===r.relationTitle2?"":r.relationTitle2,i.arrowTypeStart=di(r.relation.type1),i.arrowTypeEnd=di(r.relation.type2);var a="",o="";if(void 0!==r.style){var c=N(r.style);a=c.style,o=c.labelStyle}else a="fill:none";i.style=a,i.labelStyle=o,void 0!==r.interpolate?i.curve=O(r.interpolate,s.curveLinear):void 0!==t.defaultInterpolate?i.curve=O(t.defaultInterpolate,s.curveLinear):i.curve=O(li.curve,s.curveLinear),r.text=r.title,void 0===r.text?void 0!==r.style&&(i.arrowheadStyle="fill: #333"):(i.arrowheadStyle="fill: #333",i.labelpos="c",xt().flowchart.htmlLabels,i.labelType="text",i.label=r.text.replace(x.lineBreakRegex,"\n"),void 0===r.style&&(i.style=i.style||"stroke: #333; stroke-width: 1.5px;fill:none"),i.labelStyle=i.labelStyle.replace("color:","fill:")),e.setEdge(r.id1,r.id2,i,n)}))}(c,a);var u=Object(s.select)('[id="'.concat(e,'"]'));u.attr("xmlns:xlink","http://www.w3.org/1999/xlink");var l=Object(s.select)("#"+e+" g");An(l,a,["aggregation","extension","composition","dependency"],"classDiagram",e);var h=u.node().getBBox(),d=h.width+16,p=h.height+16;if(f.debug("new ViewBox 0 0 ".concat(d," ").concat(p),"translate(".concat(8-a._label.marginx,", ").concat(8-a._label.marginy,")")),$(u,p,d,n.useMaxWidth),u.attr("viewBox","0 0 ".concat(d," ").concat(p)),u.select("g").attr("transform","translate(".concat(8-a._label.marginx,", ").concat(8-h.y,")")),!n.htmlLabels)for(var g=document.querySelectorAll('[id="'+e+'"] .edgeLabel .label'),y=0;y0&&o.length>0){var c={stmt:"state",id:L(),type:"divider",doc:yi(o)};i.push(yi(c)),n.doc=i}n.doc.forEach((function(e){return t(n,e,!0)}))}}({id:"root"},{id:"root",doc:vi},!0),{id:"root",doc:vi}},extract:function(t){var e;e=t.doc?t.doc:t,f.info(e),ki(),f.info("Extract",e),e.forEach((function(t){"state"===t.stmt&&_i(t.id,t.type,t.doc,t.description,t.note),"relation"===t.stmt&&wi(t.state1.id,t.state2.id,t.description)}))},trimColon:function(t){return t&&":"===t[0]?t.substr(1).trim():t.trim()}},Ai=n(22),Mi=n.n(Ai),Oi={},Di=function(t,e){Oi[t]=e},Ni=function(t,e){var n=t.append("text").attr("x",2*xt().state.padding).attr("y",xt().state.textHeight+1.3*xt().state.padding).attr("font-size",xt().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),r=n.height,i=t.append("text").attr("x",xt().state.padding).attr("y",r+.4*xt().state.padding+xt().state.dividerMargin+xt().state.textHeight).attr("class","state-description"),a=!0,o=!0;e.descriptions.forEach((function(t){a||(!function(t,e,n){var r=t.append("tspan").attr("x",2*xt().state.padding).text(e);n||r.attr("dy",xt().state.textHeight)}(i,t,o),o=!1),a=!1}));var s=t.append("line").attr("x1",xt().state.padding).attr("y1",xt().state.padding+r+xt().state.dividerMargin/2).attr("y2",xt().state.padding+r+xt().state.dividerMargin/2).attr("class","descr-divider"),c=i.node().getBBox(),u=Math.max(c.width,n.width);return s.attr("x2",u+3*xt().state.padding),t.insert("rect",":first-child").attr("x",xt().state.padding).attr("y",xt().state.padding).attr("width",u+2*xt().state.padding).attr("height",c.height+r+2*xt().state.padding).attr("rx",xt().state.radius),t},Bi=function(t,e,n){var r,i=xt().state.padding,a=2*xt().state.padding,o=t.node().getBBox(),s=o.width,c=o.x,u=t.append("text").attr("x",0).attr("y",xt().state.titleShift).attr("font-size",xt().state.fontSize).attr("class","state-title").text(e.id),l=u.node().getBBox().width+a,h=Math.max(l,s);h===s&&(h+=a);var f=t.node().getBBox();e.doc,r=c-i,l>s&&(r=(s-h)/2+i),Math.abs(c-f.x)s&&(r=c-(l-s)/2);var d=1-xt().state.textHeight;return t.insert("rect",":first-child").attr("x",r).attr("y",d).attr("class",n?"alt-composit":"composit").attr("width",h).attr("height",f.height+xt().state.textHeight+xt().state.titleShift+1).attr("rx","0"),u.attr("x",r+i),l<=s&&u.attr("x",c+(h-a)/2-l/2+i),t.insert("rect",":first-child").attr("x",r).attr("y",xt().state.titleShift-xt().state.textHeight-xt().state.padding).attr("width",h).attr("height",3*xt().state.textHeight).attr("rx",xt().state.radius),t.insert("rect",":first-child").attr("x",r).attr("y",xt().state.titleShift-xt().state.textHeight-xt().state.padding).attr("width",h).attr("height",f.height+3+2*xt().state.textHeight).attr("rx",xt().state.radius),t},Li=function(t,e){e.attr("class","state-note");var n=e.append("rect").attr("x",0).attr("y",xt().state.padding),r=function(t,e,n,r){var i=0,a=r.append("text");a.style("text-anchor","start"),a.attr("class","noteText");var o=t.replace(/\r\n/g,"
    "),s=(o=o.replace(/\n/g,"
    ")).split(x.lineBreakRegex),c=1.25*xt().state.noteMargin,u=!0,l=!1,h=void 0;try{for(var f,d=s[Symbol.iterator]();!(u=(f=d.next()).done);u=!0){var p=f.value.trim();if(p.length>0){var g=a.append("tspan");if(g.text(p),0===c)c+=g.node().getBBox().height;i+=c,g.attr("x",e+xt().state.noteMargin),g.attr("y",n+i+1.25*xt().state.noteMargin)}}}catch(t){l=!0,h=t}finally{try{u||null==d.return||d.return()}finally{if(l)throw h}}return{textWidth:a.node().getBBox().width,textHeight:i}}(t,0,0,e.append("g")),i=r.textWidth,a=r.textHeight;return n.attr("height",a+2*xt().state.noteMargin),n.attr("width",i+2*xt().state.noteMargin),n},Fi=function(t,e){var n=e.id,r={id:n,label:e.id,width:0,height:0},i=t.append("g").attr("id",n).attr("class","stateGroup");"start"===e.type&&function(t){t.append("circle").attr("class","start-state").attr("r",xt().state.sizeUnit).attr("cx",xt().state.padding+xt().state.sizeUnit).attr("cy",xt().state.padding+xt().state.sizeUnit)}(i),"end"===e.type&&function(t){t.append("circle").attr("class","end-state-outer").attr("r",xt().state.sizeUnit+xt().state.miniPadding).attr("cx",xt().state.padding+xt().state.sizeUnit+xt().state.miniPadding).attr("cy",xt().state.padding+xt().state.sizeUnit+xt().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",xt().state.sizeUnit).attr("cx",xt().state.padding+xt().state.sizeUnit+2).attr("cy",xt().state.padding+xt().state.sizeUnit+2)}(i),"fork"!==e.type&&"join"!==e.type||function(t,e){var n=xt().state.forkWidth,r=xt().state.forkHeight;if(e.parentId){var i=n;n=r,r=i}t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",r).attr("x",xt().state.padding).attr("y",xt().state.padding)}(i,e),"note"===e.type&&Li(e.note.text,i),"divider"===e.type&&function(t){t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",xt().state.textHeight).attr("class","divider").attr("x2",2*xt().state.textHeight).attr("y1",0).attr("y2",0)}(i),"default"===e.type&&0===e.descriptions.length&&function(t,e){var n=t.append("text").attr("x",2*xt().state.padding).attr("y",xt().state.textHeight+2*xt().state.padding).attr("font-size",xt().state.fontSize).attr("class","state-title").text(e.id),r=n.node().getBBox();t.insert("rect",":first-child").attr("x",xt().state.padding).attr("y",xt().state.padding).attr("width",r.width+2*xt().state.padding).attr("height",r.height+2*xt().state.padding).attr("rx",xt().state.radius)}(i,e),"default"===e.type&&e.descriptions.length>0&&Ni(i,e);var a=i.node().getBBox();return r.width=a.width+2*xt().state.padding,r.height=a.height+2*xt().state.padding,Di(n,r),r},Pi=0;Ai.parser.yy=Si;var Ii={},ji=function t(e,n,r,i){var a,o=new H.a.Graph({compound:!0,multigraph:!0}),c=!0;for(a=0;a "+t.w+": "+JSON.stringify(o.edge(t))),function(t,e,n){e.points=e.points.filter((function(t){return!Number.isNaN(t.y)}));var r=e.points,i=Object(s.line)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.curveBasis),a=t.append("path").attr("d",i(r)).attr("id","edge"+Pi).attr("class","transition"),o="";if(xt().state.arrowMarkerAbsolute&&(o=(o=(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),a.attr("marker-end","url("+o+"#"+function(t){switch(t){case Si.relationType.AGGREGATION:return"aggregation";case Si.relationType.EXTENSION:return"extension";case Si.relationType.COMPOSITION:return"composition";case Si.relationType.DEPENDENCY:return"dependency"}}(Si.relationType.DEPENDENCY)+"End)"),void 0!==n.title){for(var c=t.append("g").attr("class","stateLabel"),u=W.calcLabelPosition(e.points),l=u.x,h=u.y,d=x.getRows(n.title),p=0,g=[],y=0,v=0,m=0;m<=d.length;m++){var b=c.append("text").attr("text-anchor","middle").text(d[m]).attr("x",l).attr("y",h+p),_=b.node().getBBox();if(y=Math.max(y,_.width),v=Math.min(v,_.x),f.info(_.x,l,h+p),0===p){var k=b.node().getBBox();p=k.height,f.info("Title height",p,h)}g.push(b)}var w=p*d.length;if(d.length>1){var E=(d.length-1)*p*.5;g.forEach((function(t,e){return t.attr("y",h+e*p-E)})),w=p*d.length}var T=c.node().getBBox();c.insert("rect",":first-child").attr("class","box").attr("x",l-y/2-xt().state.padding/2).attr("y",h-w/2-xt().state.padding/2-3.5).attr("width",y+xt().state.padding).attr("height",w+xt().state.padding),f.info(T)}Pi++}(n,o.edge(t),o.edge(t).relation))})),w=k.getBBox();var E={id:r||"root",label:r||"root",width:0,height:0};return E.width=w.width+2*gi.padding,E.height=w.height+2*gi.padding,f.debug("Doc rendered",E,o),E},Ri=function(){},Yi=function(t,e){gi=xt().state,Ai.parser.yy.clear(),Ai.parser.parse(t),f.debug("Rendering diagram "+t);var n=Object(s.select)("[id='".concat(e,"']"));n.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z"),new H.a.Graph({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));var r=Si.getRootDoc();ji(r,n,void 0,!1);var i=gi.padding,a=n.node().getBBox(),o=a.width+2*i,c=a.height+2*i;$(n,c,1.75*o,gi.useMaxWidth),n.attr("viewBox","".concat(a.x-gi.padding," ").concat(a.y-gi.padding," ")+o+" "+c)},zi={},Ui={},$i=function(t,e,n,r){if("root"!==n.id){var i="rect";!0===n.start&&(i="start"),!1===n.start&&(i="end"),"default"!==n.type&&(i=n.type),Ui[n.id]||(Ui[n.id]={id:n.id,shape:i,description:n.id,classes:"statediagram-state"}),n.description&&(Array.isArray(Ui[n.id].description)?(Ui[n.id].shape="rectWithTitle",Ui[n.id].description.push(n.description)):Ui[n.id].description.length>0?(Ui[n.id].shape="rectWithTitle",Ui[n.id].description===n.id?Ui[n.id].description=[n.description]:Ui[n.id].description=[Ui[n.id].description,n.description]):(Ui[n.id].shape="rect",Ui[n.id].description=n.description)),!Ui[n.id].type&&n.doc&&(f.info("Setting cluser for ",n.id),Ui[n.id].type="group",Ui[n.id].shape="divider"===n.type?"divider":"roundedWithTitle",Ui[n.id].classes=Ui[n.id].classes+" "+(r?"statediagram-cluster statediagram-cluster-alt":"statediagram-cluster"));var a={labelStyle:"",shape:Ui[n.id].shape,labelText:Ui[n.id].description,classes:Ui[n.id].classes,style:"",id:n.id,domId:"state-"+n.id+"-"+Wi,type:Ui[n.id].type,padding:15};if(n.note){var o={labelStyle:"",shape:"note",labelText:n.note.text,classes:"statediagram-note",style:"",id:n.id+"----note",domId:"state-"+n.id+"----note-"+Wi,type:Ui[n.id].type,padding:15},s={labelStyle:"",shape:"noteGroup",labelText:n.note.text,classes:Ui[n.id].classes,style:"",id:n.id+"----parent",domId:"state-"+n.id+"----parent-"+Wi,type:"group",padding:0};Wi++,t.setNode(n.id+"----parent",s),t.setNode(o.id,o),t.setNode(n.id,a),t.setParent(n.id,n.id+"----parent"),t.setParent(o.id,n.id+"----parent");var c=n.id,u=o.id;"left of"===n.note.position&&(c=o.id,u=n.id),t.setEdge(c,u,{arrowhead:"none",arrowType:"",style:"fill:none",labelStyle:"",classes:"transition note-edge",arrowheadStyle:"fill: #333",labelpos:"c",labelType:"text",thickness:"normal"})}else t.setNode(n.id,a)}e&&"root"!==e.id&&(f.info("Setting node ",n.id," to be child of its parent ",e.id),t.setParent(n.id,e.id)),n.doc&&(f.info("Adding nodes children "),Vi(t,n,n.doc,!r))},Wi=0,Vi=function(t,e,n,r){Wi=0,f.trace("items",n),n.forEach((function(n){if("state"===n.stmt||"default"===n.stmt)$i(t,e,n,r);else if("relation"===n.stmt){$i(t,e,n.state1,r),$i(t,e,n.state2,r);var i={id:"edge"+Wi,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:"fill:none",labelStyle:"",label:n.description,arrowheadStyle:"fill: #333",labelpos:"c",labelType:"text",thickness:"normal",classes:"transition"},a=n.state1.id,o=n.state2.id;t.setEdge(a,o,i,Wi),Wi++}}))},Hi=function(t){for(var e=Object.keys(t),n=0;ne.seq?t:e}),t[0]),n="";t.forEach((function(t){n+=t===e?"\t*":"\t|"}));var r,i,a,o=[n,e.id,e.seq];for(var s in Zi)Zi[s]===e.id&&o.push(s);if(f.debug(o.join(" ")),Array.isArray(e.parent)){var c=qi[e.parent[0]];ra(t,e,c),t.push(qi[e.parent[1]])}else{if(null==e.parent)return;var u=qi[e.parent];ra(t,e,u)}r=t,i=function(t){return t.id},a=Object.create(null),ia(t=r.reduce((function(t,e){var n=i(e);return a[n]||(a[n]=!0,t.push(e)),t}),[]))}var aa,oa=function(){var t=Object.keys(qi).map((function(t){return qi[t]}));return t.forEach((function(t){f.debug(t.id)})),t.sort((function(t,e){return e.seq-t.seq})),t},sa={setDirection:function(t){Qi=t},setOptions:function(t){f.debug("options str",t),t=(t=t&&t.trim())||"{}";try{na=JSON.parse(t)}catch(t){f.error("error while parsing gitGraph options",t.message)}},getOptions:function(){return na},commit:function(t){var e={id:ta(),message:t,seq:Ki++,parent:null==Xi?null:Xi.id};Xi=e,qi[e.id]=e,Zi[Ji]=e.id,f.debug("in pushCommit "+e.id)},branch:function(t){Zi[t]=null!=Xi?Xi.id:null,f.debug("in createBranch")},merge:function(t){var e=qi[Zi[Ji]],n=qi[Zi[t]];if(function(t,e){return t.seq>e.seq&&ea(e,t)}(e,n))f.debug("Already merged");else{if(ea(e,n))Zi[Ji]=Zi[t],Xi=qi[Zi[Ji]];else{var r={id:ta(),message:"merged branch "+t+" into "+Ji,seq:Ki++,parent:[null==Xi?null:Xi.id,Zi[t]]};Xi=r,qi[r.id]=r,Zi[Ji]=r.id}f.debug(Zi),f.debug("in mergeBranch")}},checkout:function(t){f.debug("in checkout");var e=Zi[Ji=t];Xi=qi[e]},reset:function(t){f.debug("in reset",t);var e=t.split(":")[0],n=parseInt(t.split(":")[1]),r="HEAD"===e?Xi:qi[Zi[e]];for(f.debug(r,n);n>0;)if(n--,!(r=qi[r.parent])){var i="Critical error - unique parent commit not found during reset";throw f.error(i),i}Xi=r,Zi[Ji]=r.id},prettyPrint:function(){f.debug(qi),ia([oa()[0]])},clear:function(){qi={},Zi={master:Xi=null},Ji="master",Ki=0},getBranchesAsObjArray:function(){var t=[];for(var e in Zi)t.push({name:e,commit:qi[Zi[e]]});return t},getBranches:function(){return Zi},getCommits:function(){return qi},getCommitsArray:oa,getCurrentBranch:function(){return Ji},getDirection:function(){return Qi},getHead:function(){return Xi}},ca=n(71),ua=n.n(ca),la={},ha={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},fa={};function da(t,e,n,r){var i=O(r,s.curveBasis),a=ha.branchColors[n%ha.branchColors.length],o=Object(s.line)().x((function(t){return Math.round(t.x)})).y((function(t){return Math.round(t.y)})).curve(i);t.append("svg:path").attr("d",o(e)).style("stroke",a).style("stroke-width",ha.lineStrokeWidth).style("fill","none")}function pa(t,e){e=e||t.node().getBBox();var n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function ga(t,e,n,r,i){f.debug("svgDrawLineForCommits: ",e,n);var a=pa(t.select("#node-"+e+" circle")),o=pa(t.select("#node-"+n+" circle"));switch(r){case"LR":if(a.left-o.left>ha.nodeSpacing){var s={x:a.left-ha.nodeSpacing,y:o.top+o.height/2};da(t,[s,{x:o.left+o.width,y:o.top+o.height/2}],i,"linear"),da(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-ha.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-ha.nodeSpacing/2,y:s.y},s],i)}else da(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-ha.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-ha.nodeSpacing/2,y:o.top+o.height/2},{x:o.left+o.width,y:o.top+o.height/2}],i);break;case"BT":if(o.top-a.top>ha.nodeSpacing){var c={x:o.left+o.width/2,y:a.top+a.height+ha.nodeSpacing};da(t,[c,{x:o.left+o.width/2,y:o.top}],i,"linear"),da(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+a.height+ha.nodeSpacing/2},{x:o.left+o.width/2,y:c.y-ha.nodeSpacing/2},c],i)}else da(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+ha.nodeSpacing/2},{x:o.left+o.width/2,y:o.top-ha.nodeSpacing/2},{x:o.left+o.width/2,y:o.top}],i)}}function ya(t,e){return t.select(e).node().cloneNode(!0)}function va(t,e,n,r){var i,a=Object.keys(la).length;if("string"==typeof e)do{if(i=la[e],f.debug("in renderCommitHistory",i.id,i.seq),t.select("#node-"+e).size()>0)return;t.append((function(){return ya(t,"#def-commit")})).attr("class","commit").attr("id",(function(){return"node-"+i.id})).attr("transform",(function(){switch(r){case"LR":return"translate("+(i.seq*ha.nodeSpacing+ha.leftMargin)+", "+aa*ha.branchOffset+")";case"BT":return"translate("+(aa*ha.branchOffset+ha.leftMargin)+", "+(a-i.seq)*ha.nodeSpacing+")"}})).attr("fill",ha.nodeFillColor).attr("stroke",ha.nodeStrokeColor).attr("stroke-width",ha.nodeStrokeWidth);var o=void 0;for(var s in n)if(n[s].commit===i){o=n[s];break}o&&(f.debug("found branch ",o.name),t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","branch-label").text(o.name+", ")),t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","commit-id").text(i.id),""!==i.message&&"BT"===r&&t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","commit-msg").text(", "+i.message),e=i.parent}while(e&&la[e]);Array.isArray(e)&&(f.debug("found merge commmit",e),va(t,e[0],n,r),aa++,va(t,e[1],n,r),aa--)}function ma(t,e,n,r){for(r=r||0;e.seq>0&&!e.lineDrawn;)"string"==typeof e.parent?(ga(t,e.id,e.parent,n,r),e.lineDrawn=!0,e=la[e.parent]):Array.isArray(e.parent)&&(ga(t,e.id,e.parent[0],n,r),ga(t,e.id,e.parent[1],n,r+1),ma(t,la[e.parent[1]],n,r+1),e.lineDrawn=!0,e=la[e.parent[0]])}var ba,xa=function(t){fa=t},_a=function(t,e,n){try{var r=ua.a.parser;r.yy=sa,r.yy.clear(),f.debug("in gitgraph renderer",t+"\n","id:",e,n),r.parse(t+"\n"),ha=Object.assign(ha,fa,sa.getOptions()),f.debug("effective options",ha);var i=sa.getDirection();la=sa.getCommits();var a=sa.getBranchesAsObjArray();"BT"===i&&(ha.nodeLabel.x=a.length*ha.branchOffset,ha.nodeLabel.width="100%",ha.nodeLabel.y=-2*ha.nodeRadius);var o=Object(s.select)('[id="'.concat(e,'"]'));for(var c in function(t){t.append("defs").append("g").attr("id","def-commit").append("circle").attr("r",ha.nodeRadius).attr("cx",0).attr("cy",0),t.select("#def-commit").append("foreignObject").attr("width",ha.nodeLabel.width).attr("height",ha.nodeLabel.height).attr("x",ha.nodeLabel.x).attr("y",ha.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("p").html("")}(o),aa=1,a){var u=a[c];va(o,u.commit.id,a,i),ma(o,u.commit,i),aa++}o.attr("height",(function(){return"BT"===i?Object.keys(la).length*ha.nodeSpacing:(a.length+1)*ha.branchOffset}))}catch(t){f.error("Error while rendering gitgraph"),f.error(t.message)}},ka="",wa=!1,Ea={setMessage:function(t){f.debug("Setting message to: "+t),ka=t},getMessage:function(){return ka},setInfo:function(t){wa=t},getInfo:function(){return wa}},Ta=n(72),Ca=n.n(Ta),Sa={},Aa=function(t){Object.keys(t).forEach((function(e){Sa[e]=t[e]}))},Ma=function(t,e,n){try{var r=Ca.a.parser;r.yy=Ea,f.debug("Renering info diagram\n"+t),r.parse(t),f.debug("Parsed info diagram");var i=Object(s.select)("#"+e);i.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),i.attr("height",100),i.attr("width",400)}catch(t){f.error("Error while rendering info diagram"),f.error(t.message)}},Oa={},Da=function(t){Object.keys(t).forEach((function(e){Oa[e]=t[e]}))},Na=function(t,e){try{f.debug("Renering svg for syntax error\n");var n=Object(s.select)("#"+t),r=n.append("g");r.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),r.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),r.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),r.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),r.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),r.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),r.append("text").attr("class","error-text").attr("x",1240).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in graph"),r.append("text").attr("class","error-text").attr("x",1050).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+e),n.attr("height",100),n.attr("width",400),n.attr("viewBox","768 0 512 512")}catch(t){f.error("Error while rendering info diagram"),f.error(t.message)}},Ba={},La="",Fa={parseDirective:function(t,e,n){$o.parseDirective(this,t,e,n)},getConfig:function(){return xt().pie},addSection:function(t,e){void 0===Ba[t]&&(Ba[t]=e,f.debug("Added new section :",t))},getSections:function(){return Ba},cleanupValue:function(t){return":"===t.substring(0,1)?(t=t.substring(1).trim(),Number(t.trim())):Number(t.trim())},clear:function(){Ba={},La=""},setTitle:function(t){La=t},getTitle:function(){return La}},Pa=n(73),Ia=n.n(Pa),ja={},Ra=function(t){Object.keys(t).forEach((function(e){ja[e]=t[e]}))},Ya=function(t,e){try{var n=Ia.a.parser;n.yy=Fa,f.debug("Rendering info diagram\n"+t),n.yy.clear(),n.parse(t),f.debug("Parsed info diagram");var r=document.getElementById(e);void 0===(ba=r.parentElement.offsetWidth)&&(ba=1200),void 0!==ja.useWidth&&(ba=ja.useWidth);var i=Object(s.select)("#"+e);$(i,450,ba,ja.useMaxWidth),r.setAttribute("viewBox","0 0 "+ba+" 450");var a=Math.min(ba,450)/2-40,o=i.append("g").attr("transform","translate("+ba/2+",225)"),c=Fa.getSections(),u=0;Object.keys(c).forEach((function(t){u+=c[t]}));var l=Object(s.scaleOrdinal)().domain(c).range(s.schemeSet2),h=Object(s.pie)().value((function(t){return t.value}))(Object(s.entries)(c)),d=Object(s.arc)().innerRadius(0).outerRadius(a);o.selectAll("mySlices").data(h).enter().append("path").attr("d",d).attr("fill",(function(t){return l(t.data.key)})).attr("stroke","black").style("stroke-width","2px").style("opacity",.7),o.selectAll("mySlices").data(h).enter().append("text").text((function(t){return(t.data.value/u*100).toFixed(0)+"%"})).attr("transform",(function(t){return"translate("+d.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice").style("font-size",17),o.append("text").text(n.yy.getTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");var p=o.selectAll(".legend").data(l.domain()).enter().append("g").attr("class","legend").attr("transform",(function(t,e){return"translate(216,"+(22*e-22*l.domain().length/2)+")"}));p.append("rect").attr("width",18).attr("height",18).style("fill",l).style("stroke",l),p.append("text").attr("x",22).attr("y",14).text((function(t){return t}))}catch(t){f.error("Error while rendering info diagram"),f.error(t)}},za={},Ua=[],$a="",Wa={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,n){$o.parseDirective(this,t,e,n)},getConfig:function(){return xt().er},addEntity:function(t){void 0===za[t]&&(za[t]=t,f.debug("Added new entity :",t))},getEntities:function(){return za},addRelationship:function(t,e,n,r){var i={entityA:t,roleA:e,entityB:n,relSpec:r};Ua.push(i),f.debug("Added new relationship :",i)},getRelationships:function(){return Ua},clear:function(){za={},Ua=[],$a=""},setTitle:function(t){$a=t},getTitle:function(){return $a}},Va=n(74),Ha=n.n(Va),Ga={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END"},qa=Ga,Xa=function(t,e){var n;t.append("defs").append("marker").attr("id",Ga.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",Ga.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),(n=t.append("defs").append("marker").attr("id",Ga.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),(n=t.append("defs").append("marker").attr("id",Ga.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",Ga.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",Ga.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),(n=t.append("defs").append("marker").attr("id",Ga.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),(n=t.append("defs").append("marker").attr("id",Ga.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},Za={},Ja=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},Qa=0,Ka=function(t){for(var e=Object.keys(t),n=0;n/gi," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),void 0!==e.class&&r.attr("class",e.class);var i=r.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.text(n),r},go=-1,yo=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},vo=function(){function t(t,e,n,i,a,o,s,c){r(e.append("text").attr("x",n+a/2).attr("y",i+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,i,a,o,s,c,u){for(var l=c.taskFontSize,h=c.taskFontFamily,f=t.split(//gi),d=0;d3?function(t){var e=Object(s.arc)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",e).attr("transform","translate("+o.cx+","+(o.cy+2)+")")}(c):o.score<3?function(t){var e=Object(s.arc)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",e).attr("transform","translate("+o.cx+","+(o.cy+7)+")")}(c):function(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",o.cx-5).attr("y1",o.cy+7).attr("x2",o.cx+5).attr("y2",o.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}(c);var u=yo();u.x=e.x,u.y=e.y,u.fill=e.fill,u.width=n.width,u.height=n.height,u.class="task task-type-"+e.num,u.rx=3,u.ry=3,ho(i,u);var l=e.x+14;e.people.forEach((function(t){var n=e.actors[t],r={cx:l,cy:e.y,r:7,fill:n,stroke:"#000",title:t};fo(i,r),l+=10})),vo(n)(e.task,i,u.x,u.y,u.width,u.height,{class:"task"},n,e.colour)},ko=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")};eo.parser.yy=lo;var wo={leftMargin:150,diagramMarginX:50,diagramMarginY:20,taskMargin:50,width:150,height:50,taskFontSize:14,taskFontFamily:'"Open-Sans", "sans-serif"',boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},Eo={};var To=wo.leftMargin,Co={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,n,r){void 0===t[e]?t[e]=n:t[e]=r(n,t[e])},updateBounds:function(t,e,n,r){var i,a=this,o=0;this.sequenceItems.forEach((function(s){o++;var c=a.sequenceItems.length-o+1;a.updateVal(s,"starty",e-c*wo.boxMargin,Math.min),a.updateVal(s,"stopy",r+c*wo.boxMargin,Math.max),a.updateVal(Co.data,"startx",t-c*wo.boxMargin,Math.min),a.updateVal(Co.data,"stopx",n+c*wo.boxMargin,Math.max),"activation"!==i&&(a.updateVal(s,"startx",t-c*wo.boxMargin,Math.min),a.updateVal(s,"stopx",n+c*wo.boxMargin,Math.max),a.updateVal(Co.data,"starty",e-c*wo.boxMargin,Math.min),a.updateVal(Co.data,"stopy",r+c*wo.boxMargin,Math.max))}))},insert:function(t,e,n,r){var i=Math.min(t,n),a=Math.max(t,n),o=Math.min(e,r),s=Math.max(e,r);this.updateVal(Co.data,"startx",i,Math.min),this.updateVal(Co.data,"starty",o,Math.min),this.updateVal(Co.data,"stopx",a,Math.max),this.updateVal(Co.data,"stopy",s,Math.max),this.updateBounds(i,o,a,s)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},So=wo.sectionFills,Ao=wo.sectionColours,Mo=function(t,e,n){for(var r="",i=n+(2*wo.height+wo.diagramMarginY),a=0,o="#CCC",s="black",c=0,u=0;u tspan {\n fill: ").concat(t.actorTextColor,";\n stroke: none;\n }\n\n .actor-line {\n stroke: ").concat(t.actorLineColor,";\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ").concat(t.signalColor,";\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ").concat(t.signalColor,";\n }\n\n #arrowhead path {\n fill: ").concat(t.signalColor,";\n stroke: ").concat(t.signalColor,";\n }\n\n .sequenceNumber {\n fill: ").concat(t.sequenceNumberColor,";\n }\n\n #sequencenumber {\n fill: ").concat(t.signalColor,";\n }\n\n #crosshead path {\n fill: ").concat(t.signalColor,";\n stroke: ").concat(t.signalColor,";\n }\n\n .messageText {\n fill: ").concat(t.signalTextColor,";\n stroke: ").concat(t.signalTextColor,";\n }\n\n .labelBox {\n stroke: ").concat(t.labelBoxBorderColor,";\n fill: ").concat(t.labelBoxBkgColor,";\n }\n\n .labelText, .labelText > tspan {\n fill: ").concat(t.labelTextColor,";\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ").concat(t.loopTextColor,";\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ").concat(t.labelBoxBorderColor,";\n fill: ").concat(t.labelBoxBorderColor,";\n }\n\n .note {\n //stroke: #decc93;\n stroke: ").concat(t.noteBorderColor,";\n fill: ").concat(t.noteBkgColor,";\n }\n\n .noteText, .noteText > tspan {\n fill: ").concat(t.noteTextColor,";\n stroke: none;\n }\n\n .activation0 {\n fill: ").concat(t.activationBkgColor,";\n stroke: ").concat(t.activationBorderColor,";\n }\n\n .activation1 {\n fill: ").concat(t.activationBkgColor,";\n stroke: ").concat(t.activationBorderColor,";\n }\n\n .activation2 {\n fill: ").concat(t.activationBkgColor,";\n stroke: ").concat(t.activationBorderColor,";\n }\n")},gantt:function(t){return'\n .mermaid-main-font {\n font-family: "trebuchet ms", verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: '.concat(t.sectionBkgColor,";\n }\n\n .section2 {\n fill: ").concat(t.sectionBkgColor2,";\n }\n\n .section1,\n .section3 {\n fill: ").concat(t.altSectionBkgColor,";\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ").concat(t.titleColor,";\n }\n\n .sectionTitle1 {\n fill: ").concat(t.titleColor,";\n }\n\n .sectionTitle2 {\n fill: ").concat(t.titleColor,";\n }\n\n .sectionTitle3 {\n fill: ").concat(t.titleColor,";\n }\n\n .sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ").concat(t.gridColor,";\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ").concat(t.fontFamily,";\n fill: ").concat(t.textColor,";\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ").concat(t.todayLineColor,";\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n\n .taskText:not([font-size]) {\n font-size: 11px;\n }\n\n .taskTextOutsideRight {\n fill: ").concat(t.taskTextDarkColor,";\n text-anchor: start;\n font-size: 11px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ").concat(t.taskTextDarkColor,";\n text-anchor: end;\n font-size: 11px;\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ").concat(t.taskTextClickableColor," !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ").concat(t.taskTextClickableColor," !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ").concat(t.taskTextClickableColor," !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ").concat(t.taskTextColor,";\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ").concat(t.taskBkgColor,";\n stroke: ").concat(t.taskBorderColor,";\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ").concat(t.taskTextOutsideColor,";\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ").concat(t.taskTextOutsideColor,";\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ").concat(t.activeTaskBkgColor,";\n stroke: ").concat(t.activeTaskBorderColor,";\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ").concat(t.taskTextDarkColor," !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ").concat(t.doneTaskBorderColor,";\n fill: ").concat(t.doneTaskBkgColor,";\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ").concat(t.taskTextDarkColor," !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ").concat(t.critBorderColor,";\n fill: ").concat(t.critBkgColor,";\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ").concat(t.critBorderColor,";\n fill: ").concat(t.activeTaskBkgColor,";\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ").concat(t.critBorderColor,";\n fill: ").concat(t.doneTaskBkgColor,";\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ").concat(t.taskTextDarkColor," !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ").concat(t.taskTextDarkColor," !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ").concat(t.textColor," ;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n")},classDiagram:No,"classDiagram-v2":No,class:No,stateDiagram:Lo,state:Lo,git:function(){return"\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n }\n"},info:function(){return""},pie:function(t){return".pieTitleText {\n text-anchor: middle;\n font-size: 25px;\n fill: ".concat(t.taskTextDarkColor,";\n font-family: ").concat(t.fontFamily,";\n }\n .slice {\n font-family: ").concat(t.fontFamily,";\n fill: ").concat(t.textColor,";\n // fill: white;\n }\n .legend text {\n fill: ").concat(t.taskTextDarkColor,";\n font-family: ").concat(t.fontFamily,";\n font-size: 17px;\n }\n")},er:function(t){return"\n .entityBox {\n fill: ".concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n }\n\n .relationshipLabelBox {\n fill: ").concat(t.tertiaryColor,";\n opacity: 0.7;\n background-color: ").concat(t.tertiaryColor,";\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ").concat(t.lineColor,";\n }\n")},journey:function(t){return".label {\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n color: ".concat(t.textColor,";\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ").concat(t.textColor,"\n }\n\n .legend {\n fill: ").concat(t.textColor,";\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ").concat(t.textColor,"\n }\n\n .face {\n fill: #FFF8DC;\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(t.mainBkg,";\n stroke: ").concat(t.nodeBorder,";\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ").concat(t.arrowheadColor,";\n }\n\n .edgePath .path {\n stroke: ").concat(t.lineColor,";\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ").concat(t.lineColor,";\n fill: none;\n }\n\n .edgeLabel {\n background-color: ").concat(t.edgeLabelBackground,";\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ").concat(t.titleColor,";\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ").concat(t.tertiaryColor,";\n border: 1px solid ").concat(t.border2,";\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType0):"",";\n }\n .task-type-1, .section-type-1 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType1):"",";\n }\n .task-type-2, .section-type-2 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType2):"",";\n }\n .task-type-3, .section-type-3 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType3):"",";\n }\n .task-type-4, .section-type-4 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType4):"",";\n }\n .task-type-5, .section-type-5 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType5):"",";\n }\n .task-type-6, .section-type-6 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType6):"",";\n }\n .task-type-7, .section-type-7 {\n ").concat(t.fillType0?"fill: ".concat(t.fillType7):"",";\n }\n")}},Po=function(t,e,n){return" {\n font-family: ".concat(n.fontFamily,";\n font-size: ").concat(n.fontSize,";\n fill: ").concat(n.textColor,"\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ").concat(n.errorBkgColor,";\n }\n .error-text {\n fill: ").concat(n.errorTextColor,";\n stroke: ").concat(n.errorTextColor,";\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ").concat(n.lineColor,";\n }\n .marker.cross {\n stroke: ").concat(n.lineColor,";\n }\n\n svg {\n font-family: ").concat(n.fontFamily,";\n font-size: ").concat(n.fontSize,";\n }\n\n ").concat(Fo[t](n),"\n\n ").concat(e,"\n\n ").concat(t," { fill: apa;}\n")};function Io(t){return(Io="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var jo={},Ro=function(t,e,n){switch(f.debug("Directive type=".concat(e.type," with args:"),e.args),e.type){case"init":case"initialize":["config"].forEach((function(t){void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),e.args,kt(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;default:f.warn("Unhandled directive: source: '%%{".concat(e.type,": ").concat(JSON.stringify(e.args?e.args:{}),"}%%"),e)}};function Yo(t){xa(t.git),ve(t.flowchart),Nn(t.flowchart),void 0!==t.sequenceDiagram&&br.setConf(P(t.sequence,t.sequenceDiagram)),br.setConf(t.sequence),ei(t.gantt),ci(t.class),Ri(t.state),Hi(t.state),Aa(t.class),Ra(t.class),Ka(t.er),Oo(t.journey),Da(t.class)}function zo(){}var Uo=Object.freeze({render:function(t,e,n,r){wt();var i=e,a=W.detectInit(i);a&&kt(a);var u=xt();if(e.length>u.maxTextSize&&(i="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa"),void 0!==r)r.innerHTML="",Object(s.select)(r).append("div").attr("id","d"+t).attr("style","font-family: "+u.fontFamily).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g");else{var l=document.getElementById(t);l&&l.remove();var h=document.querySelector("#d"+t);h&&h.remove(),Object(s.select)("body").append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g")}window.txt=i,i=function(t){var e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}))).replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}))).replace(/#\w+;/g,(function(t){var e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"fl°°"+e+"¶ß":"fl°"+e+"¶ß"}))}(i);var d=Object(s.select)("#d"+t).node(),p=W.detectType(i),g=d.firstChild,y=g.firstChild,v="";if(void 0!==u.themeCSS&&(v+="\n".concat(u.themeCSS)),void 0!==u.fontFamily&&(v+="\n:root { --mermaid-font-family: ".concat(u.fontFamily,"}")),void 0!==u.altFontFamily&&(v+="\n:root { --mermaid-alt-font-family: ".concat(u.altFontFamily,"}")),"flowchart"===p||"flowchart-v2"===p||"graph"===p){var m=me(i);for(var b in m)v+="\n.".concat(b," > * { ").concat(m[b].styles.join(" !important; ")," !important; }"),m[b].textStyles&&(v+="\n.".concat(b," tspan { ").concat(m[b].textStyles.join(" !important; ")," !important; }"))}var x=(new o.a)("#".concat(t),Po(p,v,u.themeVariables)),_=document.createElement("style");_.innerHTML=x,g.insertBefore(_,y);try{switch(p){case"git":u.flowchart.arrowMarkerAbsolute=u.arrowMarkerAbsolute,xa(u.git),_a(i,t,!1);break;case"flowchart":u.flowchart.arrowMarkerAbsolute=u.arrowMarkerAbsolute,ve(u.flowchart),be(i,t,!1);break;case"flowchart-v2":u.flowchart.arrowMarkerAbsolute=u.arrowMarkerAbsolute,Nn(u.flowchart),Bn(i,t,!1);break;case"sequence":u.sequence.arrowMarkerAbsolute=u.arrowMarkerAbsolute,u.sequenceDiagram?(br.setConf(Object.assign(u.sequence,u.sequenceDiagram)),console.error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.")):br.setConf(u.sequence),br.draw(i,t);break;case"gantt":u.gantt.arrowMarkerAbsolute=u.arrowMarkerAbsolute,ei(u.gantt),ni(i,t);break;case"class":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,ci(u.class),ui(i,t);break;case"classDiagram":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,hi(u.class),fi(i,t);break;case"state":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,Ri(u.state),Yi(i,t);break;case"stateDiagram":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,Hi(u.state),Gi(i,t);break;case"info":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,Aa(u.class),Ma(i,t,c.version);break;case"pie":u.class.arrowMarkerAbsolute=u.arrowMarkerAbsolute,Ra(u.pie),Ya(i,t,c.version);break;case"er":Ka(u.er),to(i,t,c.version);break;case"journey":Oo(u.journey),Do(i,t,c.version)}}catch(e){throw Na(t,c.version),e}Object(s.select)('[id="'.concat(t,'"]')).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");var k=Object(s.select)("#d"+t).node().innerHTML;if(f.debug("cnf.arrowMarkerAbsolute",u.arrowMarkerAbsolute),u.arrowMarkerAbsolute&&"false"!==u.arrowMarkerAbsolute||(k=k.replace(/marker-end="url\(.*?#/g,'marker-end="url(#',"g")),k=function(t){var e=t;return e=(e=(e=e.replace(/fl°°/g,(function(){return"&#"}))).replace(/fl°/g,(function(){return"&"}))).replace(/¶ß/g,(function(){return";"}))}(k),void 0!==n)switch(p){case"flowchart":case"flowchart-v2":n(k,qt.bindFunctions);break;case"gantt":n(k,Jr.bindFunctions);break;case"class":case"classDiagram":n(k,on.bindFunctions);break;default:n(k)}else f.debug("CB = undefined!");var w=Object(s.select)("#d"+t).node();return null!==w&&"function"==typeof w.remove&&Object(s.select)("#d"+t).node().remove(),k},parse:function(t){var e=W.detectInit(t);e&&f.debug("reinit ",e);var n,r=W.detectType(t);switch(f.debug("Type "+r),r){case"git":(n=ua.a).parser.yy=sa;break;case"flowchart":case"flowchart-v2":qt.clear(),(n=Zt.a).parser.yy=qt;break;case"sequence":(n=$n.a).parser.yy=ar;break;case"gantt":(n=_r.a).parser.yy=Jr;break;case"class":case"classDiagram":(n=ii.a).parser.yy=on;break;case"state":case"stateDiagram":(n=Mi.a).parser.yy=Si;break;case"info":f.debug("info info info"),(n=Ca.a).parser.yy=Ea;break;case"pie":f.debug("pie"),(n=Ia.a).parser.yy=Fa;break;case"er":f.debug("er"),(n=Ha.a).parser.yy=Wa;break;case"journey":f.debug("Journey"),(n=no.a).parser.yy=lo}return n.parser.yy.graphType=r,n.parser.yy.parseError=function(t,e){throw{str:t,hash:e}},n.parse(t),n},parseDirective:function(t,e,n,r){try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":jo={};break;case"type_directive":jo.type=e.toLowerCase();break;case"arg_directive":jo.args=JSON.parse(e);break;case"close_directive":Ro(t,jo,r),jo=null}}catch(t){f.error("Error while rendering sequenceDiagram directive: ".concat(e," jison context: ").concat(n)),f.error(t.message)}},initialize:function(t){t&&t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),ft=P({},t),t&&t.theme&<[t.theme]?t.themeVariables=lt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=lt.default.getThemeVariables(t.themeVariables));var e="object"===Io(t)?function(t){return gt=P({},pt),gt=P(gt,t),t.theme&&(gt.themeVariables=lt[t.theme].getThemeVariables(t.themeVariables)),vt=mt(gt,yt),gt}(t):bt();Yo(e),d(e.logLevel)},reinitialize:zo,getConfig:xt,setConfig:function(t){return P(vt,t),xt()},getSiteConfig:bt,updateSiteConfig:function(t){return gt=P(gt,t),mt(gt,yt),gt},reset:function(){wt()},globalReset:function(){wt(),Yo(xt())},defaultConfig:pt});d(xt().logLevel),wt(xt());var $o=Uo,Wo=function(){Vo.startOnLoad?$o.getConfig().startOnLoad&&Vo.init():void 0===Vo.startOnLoad&&(f.debug("In start, no config"),$o.getConfig().startOnLoad&&Vo.init())};"undefined"!=typeof document&& +/*! + * Wait for document loaded before starting the execution + */ +window.addEventListener("load",(function(){Wo()}),!1);var Vo={startOnLoad:!0,htmlLabels:!0,mermaidAPI:$o,parse:$o.parse,render:$o.render,init:function(){var t,e,n,r=this,a=$o.getConfig();arguments.length>=2?( +/*! sequence config was passed as #1 */ +void 0!==arguments[0]&&(Vo.sequenceConfig=arguments[0]),t=arguments[1]):t=arguments[0],"function"==typeof arguments[arguments.length-1]?(e=arguments[arguments.length-1],f.debug("Callback function found")):void 0!==a.mermaid&&("function"==typeof a.mermaid.callback?(e=a.mermaid.callback,f.debug("Callback function found")):f.debug("No Callback function found")),t=void 0===t?document.querySelectorAll(".mermaid"):"string"==typeof t?document.querySelectorAll(t):t instanceof window.Node?[t]:t,f.debug("Start On Load before: "+Vo.startOnLoad),void 0!==Vo.startOnLoad&&(f.debug("Start On Load inner: "+Vo.startOnLoad),$o.updateSiteConfig({startOnLoad:Vo.startOnLoad})),void 0!==Vo.ganttConfig&&$o.updateSiteConfig({gantt:Vo.ganttConfig});for(var o=function(a){var o=t[a]; +/*! Check if previously processed */if(o.getAttribute("data-processed"))return"continue";o.setAttribute("data-processed",!0);var s="mermaid-".concat(Date.now());n=i(n=o.innerHTML).trim().replace(//gi,"
    ");var c=W.detectInit(n);c&&f.debug("Detected early reinit: ",c);try{$o.render(s,n,(function(t,n){o.innerHTML=t,void 0!==e&&e(s),n&&n(o)}),o)}catch(t){f.warn("Syntax Error rendering"),f.warn(t),r.parseError&&r.parseError(t)}},s=0;sul>li>*{font-weight:400}.gdoc-nav nav>:first-child{margin-top:0}.gdoc-nav__control{display:none;margin:0;padding:0}.gdoc-nav__control .icon.menu{display:inline-block}.gdoc-nav__control .icon.arrow-back{display:none}.gdoc-nav__list{padding-left:1em;margin:0;padding:0;list-style:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gdoc-nav__list ul{padding-left:1rem}.gdoc-nav__list li{margin:.5rem 0}.gdoc-nav__list .icon{margin-right:.25rem}.gdoc-nav__toggle{display:none}.gdoc-nav__toggle~label{cursor:pointer}.gdoc-nav__toggle~label .icon{font-size:.7rem}.gdoc-nav__toggle:not(:checked)~label .icon.keyborad_arrow_down,.gdoc-nav__toggle:not(:checked)~ul{display:none}.gdoc-nav__toggle:not(:checked)~label .icon.keyborad_arrow_left{display:block}.gdoc-nav__toggle:checked~label .icon.keyborad_arrow_down,.gdoc-nav__toggle:checked~ul{display:block}.gdoc-nav__toggle:checked~label .icon.keyborad_arrow_left{display:none}.gdoc-nav--main>ul>li>label,.gdoc-nav--main>ul>li>label>a,.gdoc-nav--main>ul>li>span,.gdoc-nav--main>ul>li>span>a{font-weight:700}.gdoc-nav--more{padding-top:.5rem}.gdoc-nav__entry,.gdoc-search__entry{flex:1;color:#343a40}.gdoc-nav__entry.is-active,.gdoc-nav__entry:hover,.gdoc-search__entry.is-active,.gdoc-search__entry:hover{text-decoration:underline;-webkit-text-decoration-style:dashed!important;text-decoration-style:dashed!important}.gdoc-nav__entry:visited,.gdoc-search__entry:visited{color:#343a40}.gdoc-page{min-width:20rem;flex-grow:1;padding:1rem 0}.gdoc-page__footer,.gdoc-page__header{margin-bottom:1.2rem}.gdoc-page__footer .icon,.gdoc-page__header .icon{color:#868e96}.gdoc-page__footer a,.gdoc-page__footer a:visited,.gdoc-page__header a,.gdoc-page__header a:visited{color:#0a539a}.gdoc-page__header{background:#f8f9fa;padding:.5rem 1rem;border-radius:.15rem}.gdoc-page__footer{margin-top:2rem}.gdoc-page__footer a:hover{text-decoration:none}.gdoc-page__nav:hover{background-image:linear-gradient(#0a539a,#0a539a);background-position:0 100%;background-size:100% 1px;background-repeat:no-repeat}.gdoc-page__nav--prev:before{font-family:GeekdocIcons;content:"\ea13"}.gdoc-page__nav--next:after{font-family:GeekdocIcons;content:"\ea02"}.gdoc-page__anchorwrap:hover .gdoc-page__anchor .icon{color:#adb5bd}.gdoc-page__anchor{min-width:30px}.gdoc-page__anchor--left{position:absolute;margin-left:-25px;text-align:left}.gdoc-page__anchor--right{text-align:right}.gdoc-page__anchor .icon{width:1.4rem;height:1.4rem;color:transparent}.gdoc-post{word-wrap:break-word;border-top:1px dashed #868e96;padding:2rem 0;line-height:1.5}.gdoc-post:first-of-type{padding-top:0}.gdoc-post__header h1{margin-top:0}.gdoc-post__header a,.gdoc-post__header a:visited{color:#343a40;text-decoration:none}.gdoc-post__header a:hover{background:0 0;text-decoration:underline;color:#343a40}.gdoc-post__date{margin:1em 0}.gdoc-post__date .icon{font-size:1.2em}.gdoc-post:first-child{border-top:0}.gdoc-post:first-child h1{margin-top:0}.gdoc-post__readmore{margin:1.5rem 0 2rem 0}.gdoc-post__readmore a:after{font-family:GeekdocIcons;content:"\ea02"}.gdoc-post__readmore a,.gdoc-post__readmore a:hover,.gdoc-post__readmore a:visited{color:#0a539a;text-decoration:none!important}.gdoc-footer{background:#2f333e;color:#fff}.gdoc-footer__item{margin-right:1em;line-height:2em}.gdoc-footer__link{color:#ffa31e}.gdoc-footer__link:visited{color:#ffa31e}.gdoc-search{position:relative}.gdoc-search .icon{position:absolute;top:.625em;left:.5rem;color:#868e96;width:1rem;height:1rem}.gdoc-search::after{display:block;content:"";clear:both}.gdoc-search__input{width:100%;padding:.5rem;padding-left:2rem;border:1px solid #e9ecef;border-radius:.15rem;background:#f8f9fa;color:#343a40}.gdoc-search__input:required+.gdoc-search__input__spinner{display:block}.gdoc-search__spinner{position:absolute;margin:.5rem;right:0;top:0;width:1rem;height:1rem;border:1px solid transparent;border-top-color:#343a40;border-radius:50%;-webkit-animation:spin 1s ease infinite;animation:spin 1s ease infinite}@-webkit-keyframes spin{100%{transform:rotate(360deg)}}@keyframes spin{100%{transform:rotate(360deg)}}.gdoc-search__list{display:none;background:#fff;border-radius:.15rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);position:absolute;margin:0;padding:.5rem;list-style:none;left:0;top:calc(100% + .5rem);width:100%;z-index:2}.gdoc-search__list ul{list-style:none;margin-top:.5rem;padding-left:0}.gdoc-search__list li{margin:.25rem 0}.gdoc-search__list>li>span{font-weight:700;color:#495057}.gdoc-search__list>li+li{margin-top:.5rem}.gdoc-search__list .icon{margin-right:.25rem}.gdoc-search:focus-within .gdoc-search__list.has-hits{display:block!important}.gdoc-error{padding:6rem 1rem;margin:0 auto;max-width:45em}.gdoc-error .icon{width:6rem;height:6rem;color:#495057}.gdoc-error__link,.gdoc-error__link:visited{color:#0a539a}.gdoc-error__message{padding-left:4rem}.gdoc-error__line{padding:.5rem 0}.gdoc-error__title{font-size:4rem}.gdoc-error__code{font-weight:bolder}.gdoc-toc__level--1 ul ul,.gdoc-toc__level--2 ul ul ul,.gdoc-toc__level--3 ul ul ul ul,.gdoc-toc__level--4 ul ul ul ul ul,.gdoc-toc__level--5 ul ul ul ul ul ul,.gdoc-toc__level--6 ul ul ul ul ul ul ul{display:none}.gdoc-toc a,.gdoc-toc a:visited{color:#0a539a}.gdoc-nav nav,.gdoc-page,.markdown{transition:.2s ease-in-out;transition-property:transform,margin-left,opacity;will-change:transform,margin-left}.gdoc-markdown{line-height:1.6em}.gdoc-markdown>:first-child{margin-top:0}.gdoc-markdown--nested :first-child{margin-top:0}.gdoc-markdown--nested>:last-child{margin-bottom:0}.gdoc-markdown h1,.gdoc-markdown h2,.gdoc-markdown h3,.gdoc-markdown h4,.gdoc-markdown h5,.gdoc-markdown h6{font-weight:600}.gdoc-markdown h1>code,.gdoc-markdown h2>code,.gdoc-markdown h3>code,.gdoc-markdown h4>code,.gdoc-markdown h5>code,.gdoc-markdown h6>code{border-top:3px solid #dee2e6;font-size:.75em!important}.gdoc-markdown h4>code,.gdoc-markdown h5>code,.gdoc-markdown h6>code{font-size:.8rem!important}.gdoc-markdown b,.gdoc-markdown optgroup,.gdoc-markdown strong{font-weight:bolder}.gdoc-markdown a{text-decoration:none;border-bottom:1px solid transparent;line-height:1em}.gdoc-markdown a:hover{text-decoration:underline}.gdoc-markdown img{max-width:100%}.gdoc-markdown blockquote{margin:1rem 0;padding:.5rem 1rem .5rem .75rem;border-left:.25rem solid #e9ecef;border-radius:.15rem}.gdoc-markdown blockquote :first-child{margin-top:0}.gdoc-markdown blockquote :last-child{margin-bottom:0}.gdoc-markdown table{overflow:auto;display:block;border-spacing:0;border-collapse:collapse;margin-top:1rem;margin-bottom:1rem}.gdoc-markdown table tr td,.gdoc-markdown table tr th{padding:.5rem 1rem;border:1px solid #e9ecef}.gdoc-markdown table tr:nth-child(2n){background:#f8f9fa}.gdoc-markdown hr{height:1px;border:none;background:#e9ecef}.gdoc-markdown ol,.gdoc-markdown ul{padding-left:2rem}.gdoc-markdown dl dt{font-weight:bolder;margin-top:1rem}.gdoc-markdown dl dd{margin-left:2rem}.gdoc-markdown pre{margin:1rem 0}.gdoc-markdown code{background-color:rgba(233,236,239,.5);font-size:.85em;line-height:1.45;padding:.2em .4em}.gdoc-markdown>pre code{display:block;padding:1rem;width:100%;overflow:auto}.chroma{background-color:#fff;color:#555;margin:1rem 0}.chroma code{background-color:rgba(233,236,239,.5);display:block;line-height:1.45;font-size:.85em;border-radius:.15rem}.chroma .lntable td:first-child code{border-radius:0;border-top-left-radius:.15rem;border-bottom-left-radius:.15rem}.chroma .lntable td:nth-child(2) code{border-radius:0;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem;padding-left:.5em}.chroma .lntable td:nth-child(2) code .hl{width:auto;margin-left:-.5em;padding:0 .5em}.highlight pre.chroma{margin:0}.highlight>pre.chroma code{padding:1rem;width:100%;overflow:auto}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%;overflow:auto;display:block}.chroma .lntable td:first-child code{background-color:#e9ecef;border-right:1px solid #dcdfe3;padding:.5em 0}.chroma .lntable td code{padding:.5em 0}.chroma .lntable td:nth-child(2){width:100%;margin-left:2em}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{padding:0 .8em}.chroma .ln{margin-right:.4em;padding:0 .4em 0 .4em}.chroma .k{color:#000;font-weight:700}.chroma .kc{color:#000;font-weight:700}.chroma .kd{color:#000;font-weight:700}.chroma .kn{color:#000;font-weight:700}.chroma .kp{color:#000;font-weight:700}.chroma .kr{color:#000;font-weight:700}.chroma .kt{color:#458;font-weight:700}.chroma .na{color:teal}.chroma .nb{color:#0086b3}.chroma .bp{color:#999}.chroma .nc{color:#458;font-weight:700}.chroma .no{color:teal}.chroma .nd{color:#3c5d5d;font-weight:700}.chroma .ni{color:purple}.chroma .ne{color:#900;font-weight:700}.chroma .nf{color:#900;font-weight:700}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:teal}.chroma .vc{color:teal}.chroma .vg{color:teal}.chroma .vi{color:teal}.chroma .s{color:#d14}.chroma .sa{color:#d14}.chroma .sb{color:#d14}.chroma .sc{color:#d14}.chroma .dl{color:#d14}.chroma .sd{color:#d14}.chroma .s2{color:#d14}.chroma .se{color:#d14}.chroma .sh{color:#d14}.chroma .si{color:#d14}.chroma .sx{color:#d14}.chroma .sr{color:#009926}.chroma .s1{color:#d14}.chroma .ss{color:#990073}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{color:#000;font-weight:700}.chroma .ow{color:#000;font-weight:700}.chroma .c{color:#998;font-style:italic}.chroma .ch{color:#998;font-style:italic}.chroma .cm{color:#998;font-style:italic}.chroma .c1{color:#998;font-style:italic}.chroma .cs{color:#999;font-weight:700;font-style:italic}.chroma .cp{color:#999;font-weight:700;font-style:italic}.chroma .cpf{color:#999;font-weight:700;font-style:italic}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{color:#000;font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}.gdoc-expand{margin-top:1rem;margin-bottom:1rem;border:1px solid #e9ecef;border-radius:.15rem;overflow:hidden}.gdoc-expand__head{background:#f8f9fa;padding:.5rem 1rem;cursor:pointer}.gdoc-expand__content{display:none;padding:1rem}.gdoc-expand__control:checked+.gdoc-expand__content{display:block}.gdoc-expand .gdoc-page__anchor{display:none}.gdoc-tabs{margin-top:1rem;margin-bottom:1rem;border:1px solid #e9ecef;border-radius:.15rem;overflow:hidden;display:flex;flex-wrap:wrap}.gdoc-tabs__label{display:inline-block;padding:.5rem 1rem;border-bottom:1px transparent;cursor:pointer}.gdoc-tabs__content{order:999;width:100%;border-top:1px solid #f8f9fa;padding:1rem;display:none}.gdoc-tabs__control:checked+.gdoc-tabs__label{border-bottom:1px solid #0a539a}.gdoc-tabs__control:checked+.gdoc-tabs__label+.gdoc-tabs__content{display:block}.gdoc-columns{margin-left:-1rem;margin-right:-1rem}.gdoc-columns__content{margin:1rem 0;min-width:13.2rem;padding:0 1rem}.gdoc-columns .gdoc-page__anchor{display:none}.gdoc-button{display:inline-block;color:#495057;border:1px solid #adb5bd;border-radius:.15rem;margin:.5rem 0;cursor:pointer}.gdoc-button__link{display:inline-block;color:inherit!important;text-decoration:none!important;padding:.25rem 1rem}.gdoc-button:hover{background:rgba(65,134,201,.9);border-color:#4186c9;color:#f8f9fa}.gdoc-hint.info{border-left-color:#6bf;background-color:rgba(102,187,255,.1)}.gdoc-hint.ok{border-left-color:#8bc34a;background-color:rgba(139,195,74,.1)}.gdoc-hint.warning{border-left-color:#fd6;background-color:rgba(255,221,102,.1)}.gdoc-hint.danger{border-left-color:#f66;background-color:rgba(255,102,102,.1)}.gdoc-mermaid{font-family:"Liberation Sans",sans-serif} \ No newline at end of file diff --git a/mobile-2eb10ce87d.min.css b/mobile-2eb10ce87d.min.css new file mode 100644 index 0000000..484bcad --- /dev/null +++ b/mobile-2eb10ce87d.min.css @@ -0,0 +1 @@ +@media screen and (max-width:39rem){.gdoc-nav{margin-left:-16rem;font-size:16px}.gdoc-nav__control{display:inline-block}.gdoc-header .icon{width:1.5rem;height:1.5rem}.gdoc-brand{font-size:1.5rem}.gdoc-brand__img{display:none}.gdoc-error{padding:6rem 1rem}.gdoc-error .icon{width:4rem;height:4rem}.gdoc-error__message{padding-left:2rem}.gdoc-error__line{padding:.25rem 0}.gdoc-error__title{font-size:2rem}.gdoc-page__header .breadcrumb,.hidden-mobile{display:none}.gdoc-footer__item{width:100%}#menu-control:checked~main .gdoc-nav nav,#menu-control:checked~main .gdoc-page{transform:translateX(16rem)}#menu-control:checked~main .gdoc-page{opacity:.25}#menu-control:checked~.gdoc-header .gdoc-nav__control .icon.menu{display:none}#menu-control:checked~.gdoc-header .gdoc-nav__control .icon.arrow-back{display:inline-block}} \ No newline at end of file diff --git a/print-16259ad7b8.min.css b/print-16259ad7b8.min.css new file mode 100644 index 0000000..8ef0676 --- /dev/null +++ b/print-16259ad7b8.min.css @@ -0,0 +1 @@ +@media print{.editpage,.gdoc-footer .container span:not(:first-child),.gdoc-nav{display:none}.gdoc-footer{border-top:1px solid #dee2e6}.gdoc-markdown pre{white-space:pre-wrap;overflow-wrap:break-word}.chroma code{border:1px solid #dee2e6;padding:.5rem!important;font-weight:400!important}.gdoc-markdown code{font-weight:700}a,a:visited{color:inherit!important;text-decoration:none!important}main{flex-direction:column-reverse}.gdoc-toc{flex:none}.gdoc-toc nav{position:relative;width:auto}} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..4e82dd5 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 0000000..d354869 --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Tags on Documentation php-kafkahttps://php-kafka.github.io/tags/Recent content in Tags on Documentation php-kafkaHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html new file mode 100644 index 0000000..39ccd8d --- /dev/null +++ b/whats-new/index.html @@ -0,0 +1,4 @@ +What's new | Documentation php-kafka \ No newline at end of file diff --git a/whats-new/index.xml b/whats-new/index.xml new file mode 100644 index 0000000..5745b11 --- /dev/null +++ b/whats-new/index.xml @@ -0,0 +1 @@ +What's new on Documentation php-kafkahttps://php-kafka.github.io/whats-new/Recent content in What's new on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial release \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html new file mode 100644 index 0000000..c4ee797 --- /dev/null +++ b/whats-new/release-1.0.0/index.html @@ -0,0 +1,4 @@ +Release v1.0.0 | Documentation php-kafka

    Release v1.0.0

    Initial release

    \ No newline at end of file From e9e2fc23f99e283b3f84fc55a0f2e919f421168b Mon Sep 17 00:00:00 2001 From: nick-zh Date: Sun, 27 Dec 2020 23:09:27 +0000 Subject: [PATCH 03/36] deploy: 608b8c3d08952f36011aa7a7924517e2b3bbcdd3 --- images/logo.jpg | Bin 0 -> 18153 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/logo.jpg diff --git a/images/logo.jpg b/images/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..253ee878d5ee253a6c24e0febed9b5df1ac16f02 GIT binary patch literal 18153 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 Date: Sun, 27 Dec 2020 23:38:24 +0000 Subject: [PATCH 04/36] deploy: f5e22e6164b79d9c37795858aefcd5e3e02f276c --- custom.css | 2 +- favicon/android-chrome-192x192.png | Bin 13669 -> 0 bytes favicon/android-chrome-512x512.png | Bin 39700 -> 0 bytes favicon/apple-touch-icon.png | Bin 7269 -> 0 bytes favicon/browserconfig.xml | 12 --------- favicon/favicon-16x16.png | Bin 879 -> 0 bytes favicon/favicon-32x32.png | Bin 1500 -> 0 bytes favicon/favicon.ico | Bin 15086 -> 0 bytes favicon/mstile-144x144.png | Bin 3975 -> 0 bytes favicon/mstile-150x150.png | Bin 3979 -> 0 bytes favicon/mstile-310x150.png | Bin 4298 -> 0 bytes favicon/mstile-310x310.png | Bin 9623 -> 0 bytes favicon/mstile-70x70.png | Bin 2549 -> 0 bytes favicon/safari-pinned-tab.svg | 38 ----------------------------- favicon/site.webmanifest | 8 +++--- index.html | 4 +-- sitemap.xml | 2 +- 17 files changed, 8 insertions(+), 58 deletions(-) delete mode 100644 favicon/android-chrome-192x192.png delete mode 100644 favicon/android-chrome-512x512.png delete mode 100644 favicon/apple-touch-icon.png delete mode 100644 favicon/browserconfig.xml delete mode 100644 favicon/favicon-16x16.png delete mode 100644 favicon/favicon-32x32.png delete mode 100644 favicon/favicon.ico delete mode 100644 favicon/mstile-144x144.png delete mode 100644 favicon/mstile-150x150.png delete mode 100644 favicon/mstile-310x150.png delete mode 100644 favicon/mstile-310x310.png delete mode 100644 favicon/mstile-70x70.png delete mode 100644 favicon/safari-pinned-tab.svg diff --git a/custom.css b/custom.css index e4bf185..4e4c20e 100644 --- a/custom.css +++ b/custom.css @@ -3,7 +3,7 @@ a { color: #e500ff; } a:visited { color: #e500ff } /* site header */ -.gdoc-header { background: #ffffff; border-color: #404040; } +.gdoc-header { background: #ffffff; border-color: #e500ff; } .gdoc-header__link, .gdoc-header__link:visited { color: #e500ff; } /* page links */ diff --git a/favicon/android-chrome-192x192.png b/favicon/android-chrome-192x192.png deleted file mode 100644 index b78c721c0de5fa9d479bdb84691891216cd297e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13669 zcmZ{LWmFtZ6Yea#xGnCmI0W|ucL)$51a}Dpm*5gu-2H{%8r*`ryJaB+4-UbDYmm!# z|J@(=%$eykJ*Q{7yQ-ghx~e8pT~z@agB$|@0PMGlvKlXC&;L#|l$WcBfiPXFv%r0m4+s6C*73)w-v&vpqlkx;X>pGA!vAX199M`Bg{Qd(dUN?DFmAPZH%zJYYl>o>w?;Iks1Juy*5IdPNezq z@O#27AzjOC7`G};TLEj>*&!>>)Ts6ZmrIh05!xXTxMcnb)B3gu)4K1k4c~iRsaSDf zfOzi-!=;q;5p}n755Q&9v0_+$il|mLPR}w237#M(>Z}!0Q50QNq z`WDz|k5WVtY-R|~pj~#KCh_CF6xMcb*LGn~mmGIW)C1|i8a3OUyS{6&gp!?qU(+3- zAyrE5iJ*(%xyAW&G2ILm84c5{{~GwBm=OOx%a2soQ3A$ry&c9aSZlX-YIvCO$wp_z z_KeEm`nMdjXEPRn^D8vBu!#g<8d-7{$1_|-Lh7veUq?hp1RXOs3 zL{6iU8T$aW535DT|Il-Gmzuvy=!$>T5|e`(YA|DON}k^%`qjfOM;Q*wVP;FITRzmV7>8lkeFv{N zGZ6hiEf#%L2g_;4h)YLZ>V-KXebDL{TVcFYKj-24(9yCBt11NTCw}(CH;1<&4svkL zAT?Z-WeD|wbZ!Kt=p#P`nP2Kg(G8$Kq+Mc~W>r*RV_9YOCS#v&d9X5;Y!$_LFd~H; zc5VC@736{E;YOWB9xkf9nZS(69ycON6DePq1e4YAZl- znwhhg=LwAWjYt;S>e6#|0~r*t#M_~3;p3NiDXr_|32+Mn4^A(qz$udx8*&0Q?FWe8xXrM)UBS`#*GckX#)=_j4;!{PT=AcJ z%xGbeJs$Iq^(Rhzz2@z_Ec%OLTmAjnC{sClzWrJ4=cqe&T-m`tWKZovIHZEQnBi)- zHl9}fq3Fs%H7Xs4d2J`tCZ8ZX;X!d)WtyKoiKAwdDq@_p+WiaR-#-nfA53)Bx@l_B z@5A4H|75fF^Th9@TidDA8w_As;|I2=KmMKRVwPINH%&LrCH6~9o{3zLp?UB&rn-M4 zSvtw6S8h9)SABM~3Uf#s#T@^E1>)$#5ggnF}pDV_l8dVzg zTOM+>^kJxPJAl*V{=g2%lbPYC1MhI;W8bT?q=w`=Uc$aE+|{-H>-{noI2^z?^1D{$ zgYT|mvHJC|Gyjg^D&(Ualj72*J$=sua#TmieOj>WQqTEWB*$Pi#a22jh5%-T4SC z=-Ydkg%(^fwXcVqNDyD{4%L}KWHh&^qhCJZUm=5p(?lIQ#hFWzBR|kQYiUP5r#&xW z4t{<*kdAdtAT<~)lc~fH`b3BuTW-utt$gR-SFL^P_xCr+Gv-{BoUSp&B{KS7Rz*9p zX{lQS2o0clwZ6q{j_bFsru$wD`@d6>Y73K2J|W+dJ{;c&Oy5WBu;|yUh290)oD<*7 zqb9hq5@`p}&cR~~;1d}%lkXUOjJn0aV(tfo!oJr>#jA*7d^o;;cX)W32nHaVR3iT5 z;(c@*pujF9dy>mRSWi;Iui9@;4qSx_E|WO;20H;>TrZZ@g*dD>6qWA!d%139|)!*DlDsjPcOt`v56Ta_4r=P2pRohtn zrfPi}tso_}d1y@7juMZMSXzucRQgIz8ttqy!$+T5q)8dEA_{KW@DTY?_MybIUhz9C zL*B)2;a(> zF2UlW(vm+3n5ec~b8ZaUSgsj-T4Tq*%mP4tYRmsHfYRDv2|p#V`|T34xHW|nk?yqY zFTTA|Z&Y4S9SgmV(AkY{V-8H$B5K7m4$^g$B^SLc?8y^4?sLOy`)0d{g@5@UAihyz zlqGvhAGt;I^xo#?OhOV%S*>e*)WFkettzse7RzkUz;wX*4V7j^Mz#{;ri(5)ggz`1 zqs$0Vr}5C1-YTwqvKg>uhkqIK(kn!e)A!8RcfZ32Hu}545jI|~FQf;tl7=8Mau=oC zb3}$|x`)bgn&?uh%6=SRkHrKc{oGE;#D%#n*$p!bJgmnRr{+IHe?u&J!XqMwu6{m3iW;M@DOs04ul(t7R9AHcLYfO#fCPrL* z>=ZCh8L;8uF*c+FNjg8xBcIjs;LfW zptgxqL7%6ENZiK=ez)~z_*i-}+cwFX-layGnNC(R^ME#}->M=muTERlhE{5mzhtN; zGkX40o)|J_Z&;$~3OW?JJTrHp5HEU1ZTT>8GBaB8dC>fCwj5U^nPAr9O7+W%m=Wda zdn2c(&l?UkZyj0x2j5z)bNvuK#mKiJpI};eZgAh9PVx80NS6Y&`nBl8+8%>uk@*`> z%ihS)al&Q^Zu6G$Xzd2w@@;YxI)*ae)hpD*&XPC~9K&4?FE4!}hCx!-v$6sO?ew-G zMCcUk>pA@QU!sIG*0OGf?zHVr^R62ieYH?}ip(X5RM4PNUEd6AlS(=Q?{46>y{fOT zS+uZJCcJ^|P>jV`2+1vN$3fNY?6d9qbnY$vKx8Z-W1HnZN%2@^^zFO19HizKaJ+u5 zRJTvuoL-dUp8+7kY-@A93pKVClgoVm>Qe!D0l=@s1POcj?dh%V^=v&~3X$^M8`s5K zEMMOlv}Obkq%eD7*H*#t*gjqqjah4KO#N&_8aSu_*^}>f{MTSD^ar}nyn}j2js-k# z)dU3)a5>NQ`%fzgF->98CXm~hK&blp*jYCwtHaHeQ#oK*UV}zC%kOVLRFpbz{9P59 z-5k)>;!pQ5@HbxeTHHfp)%DzS9~y4g{OJ=$wQ$okuF$|799{ZXC9%~^Bugy{w1jCb zmg*3@o&Rh292Nm~WjJdC6Vj~;js7hopx(N-Zh91m`+#TODqm2fA}AuEMI@iEHb)=6 zhilDAlUUoefL0_QL4v;(zlS;B9pcCTAs7#zwp-vgXkOsyOno zF>M>^otW7yM3*Tun6mRZo%uEE6XD|Og{UvD1*=`_2vh_+qE*<0Ky2Q1M5r>!i^=D5 ze@0!X7Hm{_Q-G{32ZvvVaunl|kSUHA-UMKW7Cez->q`9Lt4&~@) zc9G6hcTXCGiUxBK0HVOQ3ExuPjIh`Zv{y2_dl(DgrpA{wP%KtT3?8;UuigTzCuxPy zeE;^h50+QTl3Tf7&EYB<8G608P6MQv1P}MvuDv#M`HzqW%qb zp{{wA(1cf$c-EII%*3VRa{w{&BHmb=?ryRjs^W z$!glD7R~El4DhzY1uomzf0EiQ`VLI%?%WsE`P_DJ#)`KL&2S49Uo<9%XF?Jb z;+`5_ChI1@lXEeuK~e$9?d$;!fXTf;QC1>d$;freXI2xbY4`L?rT@6Pu-rGe*gLiJ z%l@?4z@eGJu$vaFtLF(2pqR?l+2Mf%Xu^ccwbQ?&9X%GU3rG94H=o_D*jXC{F%KYVe?_=E$m@w~~$lUUkH?Cv{b*-;BzLO*IW9UVI zeHHXrS9RAN_2jEUW;d?VE_RN`2!FlHInbz({D;=fVWSc84mleyB-n}zOPyI(OnahA zwJI9`#leiep{F;?na+ z85yJ7^K4~Ahh*NRnC*Y<28IeViJH2sF9XcgpJ~Y2_W{%I)zcA&dYIhit!1rp!nMRT zlzuniu-Ey-l3x|4Q>@{siDJ?neZ%tNzdOhgle&JNJL&w@{{=Jt<#+~2VZVS!B%cn& zCju1xQ8N&dU8ibG>BT6R)c3n)T6}!G|A0jrf;Xo`%1E2TI>VAG`m)gmjzf#UMv{#a zJ)<5tkL3;@44nvymL-})ryhSh#a>SNYYz+b+WyP*-t)JufL%JX75u!`m^`bxbmSN4 z=~Fx!!IeNU`dJFG2~_2ClPXh9J$jD(w2%Es=}%j+PQ&6z>B$Dt)e?Fp2O!eOag*Ed zAcWK0l_FMhAs_vqv=2r|f9b#@q-n4vD4qP*Usm>-ZJ36UBCXiCDt{ycRe+yTd*#HX zZsfIa=Xq{dWF7^&O!YtTQ>{f|YYancWrwGjnl{+Ihc`9@Hizk6|M`JOJ7UnV!Y~vL zw89#=S$b~NmY;)s)>qV~kdLf(>*YFdT&VfE&39BDHg4FnllkLp?IkVxnpipZy4U?; zQ33HxpG%jR1@}o%G+zG?&OaGoy8)Jid>Ucw-a`n|WF8EAigmPVWOz9Do6y8TOdTHj zT*X0Pt_sQ81M%(w`7c!Ufg*Vn{(Q`aXJ~_pHWDyuwqvce_>X|X!LO(UN?#hl z4?6<_qx!g>CCN-M;`Drxl@wF2aY8Mz}$vssmri5`@ zYAPu%+S@6v)8UvzTgmca?!?6n+=ry$(?i==1f($;ylzIxAN7y{)16yZ?Ff0J3XMRb zUnJI0SkJ$i%_q%kQ9lgm%*cksSJwYPzp%%T>@mtdImQP_laF>@`zG;7pk7gj=Ah$* zc6Up9X1wTZ7(cJDg!BE{qT$1(e2yn=CY$Qfs@9DxoxBFF=(+RVSaTgz6zYf`duj)C z-<0rxhM0$G3WX-fU=Ej4Gk+{jIz`TVhhLX?5Swu|H{kSuC13yd^dxOWc$#!%ibBtH z>^#N_G;ClNekLboE=3snJ@5ctWctIPKr8iT9?5YaO$$Fh0h@A}7psBik6O+oqNJM5+B1Z@cS>IpQEJEO726~rDhbh`K(zEb%!h^_bAqR1DeYrDd*>gXhYWnmP_)|jr%+LIveq+ph}1ASy&77 zJNik+^ptquN*%T(##sQ*O4O_g zp0o8cDctN$E#qu{?BKgIfc8kg@{=~+^&XERX~MjTbs7;VPu6(E`xsq+4%7~kmeN_} zNL^awUUC4)fS~D5BIv?O%>B8q7glY7IRT}zpRHdBcGz@4qIKl#h6KNJt*dAQ6VxN9 zMD!!F{eD^&>DF-e$@xXc(8a||eWxG ztf1pUR&y%L4S8K-R$ES>_CE`KLgK@1jmV|ULsujtu*DJSOWZw8)>tI6tU|Iv%;($1 zb_>KKzI z$F%2sX#Mtp%*#Igqy2@(%(EQ?miV|xHCep5`T*v}DwO{E&GwQM=t1Dy;$vCht{Ir! z%_6mz{k)scH>Sx$bH}%yN(X4~!BP-zGgcmlHn+c5QEkuYFRQuQZFulM_nsv4V}JaH zSkS{b9iC(|P`&Hj2?LyTN{}mB(5jGmt&whL3PNNT3?W+hoB77HVY=9qPDCVLI+?YL zBRR2Mu%otj>85z7$DIK>1f{J+MWCMJ*gO|Uck+zTvxXx1R|8O_5b*j_umm4vdXfX7 z=I)WL8ru41F^Z%nGj)in1-$4>=E2w?r?I!ztS@TtG4C%eX4WVvl3_H=?JF*8Bq)es z*6f8C>LFgOY}M)@A9=r9l*GmcrYy05E^O#xI|<3}&u3TLI^SR@E?h|5j^2 zeqyY0K$8%8kL3=!47rM;JQHeFGMgJLc@2Wm-ylR27|Nr_SJeAo|EqRi7h0?py>!^G{wd`X_(L0E9H4lO0*hWSB&k=)x7BsnsqCN>lO z<|XtLW>$8=|M9iDaS+9kyo=yq`^`ag=!^Vc!8iji3*;L?8Y5&9rxL@N8QiqVv3y7s2>M1r1pVIG)B(7DL zhWiusu+7#)ldp&GF|$ANctA8mg;A;@0MpO(o=)!YlMQ~P};wENL#v> zpX^h3r~cb-qFeKyXX?z~wGNfLSBOL<`5$mbP|n~xZfIggPm#Z!DnNc9Q2y2mtP9V2 z(}4OaS!nMm@Yj|~M0N&|txe>Yr;wzW)agC?IVW}jU#3M^d6byR4h`LaEi`rnn}p@s zaE2Z6C*KGR$&hR~^##_=j}{inCzG(vr*+fFgk??W@niWv5*jp;ZF@6>h)-b^yn~$| zyccPSE1OJ+^)`m;{$`gUpp%sd>`&!%p42mK=4{Un>8?PR_4sVqDJqjI3u$j!6e6dS zg+e|yjTGDcSDfD($KZ_AI0IXt7ZIMlTfUUi0)>+m$XqhgQQDqqEbUBCSra`8>R2-i zS@%PJmaKJQOc`3FYo^4SkdV<0h{5oZGwUL2?S6EAd0|FqF?4_V(LBC-G>Fxgx2CR= zqA_dKT8lBU$VT`h4eiU;C5}$j+tpXUpUzu>U{FGY;*g{mrj&(7QIMEVDFyqLcxdl2 zf=YDs;vB4j8tpdp$*b)femwa!i4(Ge=bO3tYevd~8g5dj#JBb;Mz2vPkLajm_S##eD9C$WO@0)$mA2>3 zj-x#a9kr3UM224fcJqO$inkXFTIi5mKr2B2(i|AL0>4A*gDqG6spe+2qy*rWda6PC z@52?%3!UOzUqu%f>6?l!LnJro(zIa!fJ-}PS(L_#rD8AtK58;7rjfV*Tk>{&i6xhe zvUtG{@}6!wc128Gz*H}^4Aal{X6ED8w-Ec45NvQ?bv9?`m3f`l)6bs*Zdnrx`PQs9 zm_WziFoCPgNx+ZI}Icj{K?skLc+~h$pbO79Q zZXt8>Z<~fL>;nL}$q4;WC8N;hwaGgT=3-PP`60t6K$lJCQ&NNO$ffvRO^T(p651|u zUz>YqBo#G@GIX+3p_>GY1b_wia!jtr4d%p82(TnEfT6BdyOv~l7fND`W{5}p4Ro-7 zY}jt4Q%@4IFwzbJKE6$57)ilW-x@dBK7ggCdnOfOe#*-sY;JQqYY@g1khJ^pOd^4nXYkJ=S_*|j&rR;t|eC$F9%ys z<-{c4l)grVol&bJIeY+|2r03;n)6)Kyv`}dq`Urx`|ug3~XhWh-^8ie(_szcFLjw0C$pR znv&V0W7Js;*00cP!V%aYFB(XiOP%TxmL^Jqa_~|8qpOP*_V6k`sWK}ELF@hH;MY7o zWxA0kCz%&I-i`urU+!b-%m$b2>PeA-08*tA0-=lO;^+|fw_k(47jk4r^WTT{A$hw) zlarzFZ%ibn`>ig>D*W#iXfKpUkl)v$&}Zvk4d|M@@ILx## z%R-xYJjz=)S}LRX=R&SPBTsX;?;HNZId-#-0XOc}_&p~)N7k%vbdn`^00Ds2oI0*I zn0}HJEBAgq+1|lO9to!=iSnF^?O!MW|KVN(1z<+hxeG^_zgfP$=~PE(8H5|9-NhB| zT&U-A>DS(Yp^|VME2tRG6iBjWMf~F3eV%U^!MP9ne=eln(j?(Y>dg-OLm^cb^oR)h z6L**G-o_`ANAwtGd6Yf=blq;(KNM5?DlT$=aC^=}10M6I2e5ulPQ)&&3V5d5lSazV zzShU(fT#IA^xlBA49)h%Y_e)9Se3rdVp`L`?^lADW+RYCrs^Tj$&)0>}g47{K&m{>^h%|FCNHj>Mjtso%3MmRG*b zlctm3zvtIGp(0aawgBqY6Trsya7crd92jPt>2py~x4ZFH`z<9B5FuY+OISQ7$`gi1 zkxA|UM?!Vt@v)}fG4!_C+d3Y3Dbi6r!17w2))t6h$I0?vN|2XmTO?`4i{MMiDkw%7 z`J}+sQMe}dEch!lXW`lZqJ%A#UXt0fw9D;hhR467uNF7m&pIPGsKY4R%~r7j;R-ET zpC5kQDm<4Itlg~@VH~ z;X;s6YyPoQ(V)S(d6mZ0k{rmZCx&7DdiC}B40FMiqVwsmQ9FuUO;a2#KCK6xtQyqbG2?>G-Cc``@`4ow(z;pZNI|gx>CQeTtzfB3b$_d z$Vy@aYCs?(EkF`En6ZyDd0>C{Q>P2beS^8PJD~Hn{Pz}{l5-Ry4|E0(w|UsFDgI}+Ab;IAw#}AX8|~VhC%&&0R!p2H z&=chw0H3u1;D4!Uv4QgYUk1BX4=X1LRJy4OX^LzEN`e0yLV&#FRw|tegZ09hQBh5qy>};H%b@#T!;k7ow%8<<j|{pJQQXs2egW*!9~c|7MSQGzfO#eFvu-Xa!^_T6?Sd_BkE3@*oa>FcA?qkC7z zPD7>fTA(rBo!*GXO86??mWJ zYV5TkjvY@R+C%j2Xx&@vjPwMul;;q-?14MC2ElsP(WjX%V6zgNm#LiEpqF z^3QvkuJcMHUFV+aUn%Hr-6jxiR;Y%_LdC&4Xnwhe8G!GIeg_Y0?5Zb{iy!2L0>0to zq!;O=ZtCcfZAvA!)v*}2H)ACc zWSpPpMui4IJ>DT+{ch!qr~HD(lLY}_Xax!QwXM2>GWbW(?+d(Yab?xyv8CH0h&kn= z`hb5DzxDlz^^g63{!4ya)5Fkw6LrP?GC-TzNLJ0@VpdI$v1rfnuibZKN3F2~`nLS# z;@lJaSRTjNet&820kq}0TC>%>P#WKAt=98NwdIsh8*2>l{kwhLXLkf_?)SjXn`r>S?G~CCzZ7M(C-ThwYJ=&bJ1@r}4|&3huIZHETN0 zZE}ahZ~yIM;ksp92xN*w4h88C`9j-_UM#}LuYaP}^~h)iT#^zb-xIQOE;Sl1201r* z`MzM^#VzNwlKSj#kgwy;5?jFg7hA&4@9=+Pq9zyiPC}Ix3GQi(LtQu6?@UQ{F=Alp zett*(b%6{@(i(18DvPJwn|(aJfD|u3IG0q#DeC04qqSU~yAWThODxI?gx9rsx5w30+V%!KK#30t zqdv3#qmi~_E> z?3xh|z(J4++;qd_L(H@7cQf!LXHLHA-QQl$AKRjZq8#6t{wiRx0lz-QgrjcO>7-}Y zye`0CiJ?3G1UqUaFt^#53heB6^8$NR+U}pvKO5$DdEqQM_;(MNF!$kp4}<_{l!ROG zd1Cz6DJr95Yh83$M-mgxn@KAX>U4=Q@`>+%*a%`UPuvq^ecBtA_p-45=mvjU6<~7> z73w}6_HaB9ZpajSBF)97y1cL5s2;LZgf57F;F}zz_!=76=}RW%7&0;z#g1KCnaq{S zPlCSOjxt3YysZ_*%=A;5fn00warc z&kKyz7hRY<@mc&mXS62q=Uq77KHe`o1z*0T92KtL*EU@qEZMhj{CpUrJ5#LrKm+qY5!&atZs_{jdER2y&T+jRxS zh{LU>+k&pJz61=6&@2k&5F*#^Ec!GVzcTr<@7hS=)B%D=Pc2UF<2o&9ZlEqOAOQ^t zJv6IJu@GvYMb%rp2GQx76OS{b`$l|jfq<4Uc96c%1+P+x$>0J)Ryr$BtBo5X=9$J} zNxdLcFoZvPKfewd4jY{#&jjAYj+Zr=6Fc z!%L=fehG7^*8~(Hy`*LqsMn|yAj2d0Jsxx~Pxs?_f|j(us#It4F^fuluBnlLX*Gl97(rk4_Krz-7FY$QEH(z$a%A*Jq=uW60cAGd*jN9aBQ=~CNBs*6nY3O=>d`*-n zSGL7Kdu_PPsggVI=)Wsa!7YZV36fo7<8hD3R(rU2>nraPcp1&Kl}V4%lpMuW@W*a> znCz)gx)#2T`&wZ<8u%ZL`QV6Tv#UtlvDL-h=Pvt}jLEl5Y!#1(Z~Jte-8sfYtb||H z@4LNH;!;Ep`eaMS=X=3%Ja_Y>rO_NGLs{oBw&~2~L^Ywco-u^RG#U!ei!O-}j7Gyl zBSXV`sKEzDHb)Y_j4hmbo{gUUgN}2xU;eDMuTY=RiPl<~RWWsEVCAHDRI(Nf=aA{~ z;h=+OYFG-UE6Fe7fc3~1>fK)w>h)fX!kli44`xQ+y9|@P$n=@Fr~g*xPC_{30C?O| zj~Zl&|J)8apyGMRIjZhoZ{g-?FY4{W2%hkS`J1#vb<;YmC$a)i+d1*< zHMS<#tpACR{5r#YN+s}zb0`8qTKK&+L}+AtH`_vZwHR*Lm}J7ZFqrc3bJgs=(P97qaLCZREneh3OMIy zwdmUKPOKQ+^PY!5r0wzohuW?mJiM>tcml54K1>qjarP9~kWDE;?uFudBjKd4BvN!bBcBh zJF{G_%!gP%SxtskG#k~IOMUR-C{L%#Kwb&;U&avcZGr*47!gyESRqiUcbAVpKE&Gb zhi%;|3iryRXk;ZR@qFg*#ZV$VD+tn+lB$I9WWm7wpMi+8VRkb_Ezko-xQh<|thFOs z;IUf}w5zVt5$!Z|whaw3nEZ46xfpF7Pl|Ce%yi>qE|uWkf$bKu90fp(BA~J;IQpH6 z{@5Dq#>qQS4z17jHflR&Sg4D4)GoLp}9;_Q@*I$%$Lg=r|2(#JfI;(NE+|I zrth}OYXq;{;?!iL^=J$;?H1G&5=122eT`^)2}(7nqoTiA+1t7e%~6$VsY1>*H6VcJ zVd4qfph(a@44CHEPkGV-=h-4?Qj5GV0gqU$OV6jdrd9GK-+L! z6z?*}-x4YASVBl@s=Nh;4@sAmItdODBlMy1pah}$$pU*SVK5Fn**Mj;D%o3fZE2*J z$oV~vr_Gb=@#|jZg<42nEf(1b8^?fD-|;;4c)HjMKk)b_0X+e`itv diff --git a/favicon/android-chrome-512x512.png b/favicon/android-chrome-512x512.png deleted file mode 100644 index 9d8560fd980d6a7b364bba8d2d0abcfb661bead6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39700 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 diff --git a/favicon/apple-touch-icon.png b/favicon/apple-touch-icon.png deleted file mode 100644 index af863dcf03f6c0cf1fd65f0c3b7f50c7e623a5db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7269 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 diff --git a/favicon/browserconfig.xml b/favicon/browserconfig.xml deleted file mode 100644 index 49656ba..0000000 --- a/favicon/browserconfig.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - #2f333e - - - diff --git a/favicon/favicon-16x16.png b/favicon/favicon-16x16.png deleted file mode 100644 index 59ba91154f673d17d711105f6a79a3f3fb81ab81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Y%i0U0UtFV}9k>)d|Q zsr{rw`zeR^(?CJjj#G)VK(fxQCxB$q>H}wx96n0dmhcf;67+ z?mYuiFyUO%?8{DVr<~hQfpuN2S$E61#iryx)?a&oLA4;!2a_<(`we-1uFjk|G)o=4Guu>xt9d_1v6+@ ztk|o?R(t7E4eRvp(;C0k>t4O(;d1**-4)lXwX0U{ziDB-cmEByeXCbhT{8Vsp?M`N zH07Uq(~rg(br;UpvZ$4;I=He}HTJG-0?Yj}J^&UI96r1s;*bK)MEm8AbWu zJ^?b=OFVsD*`M%;3$id6Y_AOf3N7?>aSV~T9NPa}sL4T~IeZrDIj%)X%-rAZ?Oycm z_x_1@3LkvkBj#Paby?1~ zEpPY|>VL4GxR}3co>F^8PEXZ7mS0u7Kkw~-e){vh`TBe7GmJF8c9sh^0v)Sb;u=ws zl30>zm0Xkxq!^40j0|)QjdYESLk!KW3{0#H473dlf#k*s@xTO#q#-vyB{QuOw}t~} zpZ^7FkObKfoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`ukRY*ihP-3}4K~a8M zW=^U?No7H*LS{ipG6O@!oX4MdI10lwG*0=SKI8c`h=Ey|TQ8YgSXtP6vIw)Vf=h$R x;S^@&%^?b>Z(KQX7eL5hW->{Sp1ABUh>a0New zAPx?K#*!c?pbUaMm=#Ssw?UA#eS8c#%mTPNB#@i=4JMAnn0c``Mf{K_H}MKc}Yczs}zOVu`ys%p!H>HTR1R+pY6Y>yXsbX!8v@cX>0TYA>QKaTIn8BqbU>=fQ z*~^!kVv11k3gQEN%*h^0Aqw-yJQ2Ra#HrV_>I{|~K<0TC46Rz1D%J*rqY$Brbp(+L z&?#cw!D?MF5Xw`hS7}+b23DOB)Clk(Re{1B4OD~(*c0+pK!qnaQ$P?A0?o|<47Ebb zlbXU$Xh1_!#2Sm%zg2vcfUg<^4JJ#M3K3A_(RyR($MTO!j5%^Wy;cvB0TgDf9+nQk z4aUQDhENgcGs2e|V7ZAa>Dyu9qFjjqt{M`^%!jIVq4}0>WL)e8kuw|3e3>~F%<@mHQT~t88g{ zGThWEUgLbGXLzXl=lQD z=CkcTB(?9kZQ`1n6Uv{ClwQBl^b8(ry^}^$rKWcvC-U3=xK=vx{4DzLUZrzYFI{M$@@exEfXs%8gaYfpE}ar=@EWE|cztXDg7l)q&_8#D+xb)Cq8y&y4tv1^kRJ%0Si+s*A690{p&-4|Q02wv-2e$MqY;VsS= zgI#wa>U5~MB>JH05;4f*6L->0Nm=lGpQx~ieRkQtSA$EcOV^T%qGSDXLNYx!O-rmw z!%3=D8Kj*X{M|^QPMhSCA}`J0of@&1rl9GyXgoZyWtO*pyPHcqhZ%7=JerJ5u;X>!enS$)uZt5Qz!`BKl{1zwFfRaT84#MN`IKTCHKl}#r z`pp5jjR83PI^6mI9B$Quxb*)JG8rkf)MNioNF=?{0m2fC!Y)QCo12_Pg}7X2b$+-)#eBD}F9#b)JoG8Q%JRLXAUa-}^AM^s1oLt`F`*i#{2 Ql>iASGAxd$2uaHQ2SHoW`v3p{ diff --git a/favicon/favicon.ico b/favicon/favicon.ico deleted file mode 100644 index d2f7d81f2b2d8e9afab3333e1d832f68e26bf96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 YAu2PI6bp#1icdVmlJ6Bnb*S$D0O7Dx-v9sr diff --git a/favicon/mstile-144x144.png b/favicon/mstile-144x144.png deleted file mode 100644 index da1b7bbb72fbaf95b42c7ca8a85efbfbca4d3600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3975 zcmV;24|wp2P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 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 diff --git a/favicon/mstile-310x150.png b/favicon/mstile-310x150.png deleted file mode 100644 index 3161f5d1f40b4cb304978797b23f2661dad454f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4298 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 diff --git a/favicon/safari-pinned-tab.svg b/favicon/safari-pinned-tab.svg deleted file mode 100644 index 0c88193..0000000 --- a/favicon/safari-pinned-tab.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - diff --git a/favicon/site.webmanifest b/favicon/site.webmanifest index 934736b..b20abb7 100644 --- a/favicon/site.webmanifest +++ b/favicon/site.webmanifest @@ -3,17 +3,17 @@ "short_name": "", "icons": [ { - "src": "/favicon/android-chrome-192x192.png", + "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/favicon/android-chrome-512x512.png", + "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } ], - "theme_color": "#2f333e", - "background_color": "#2f333e", + "theme_color": "#ffffff", + "background_color": "#ffffff", "display": "standalone" } diff --git a/index.html b/index.html index 353ba96..ab09cf5 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Documentation php-kafka | Documentation php-kafka

    +| Documentation php-kafka

    Documentation php-kafka

    \ No newline at end of file +

    More

    Introduction

    asdfasdf adsf asf as

    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 4e82dd5..174cf4e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/2020-12-27T22:09:37+01:000https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file From c3ae4f55b1fe3d5287090e3ed37638c2342b39e2 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 00:30:07 +0000 Subject: [PATCH 05/36] deploy: 0ea82d7c0cd7f7ab830036bdd43b32cebc4c51fb --- about/index.html | 4 + about/index.xml | 1 + consumer/consume/index.html | 6 +- consumer/index.html | 4 +- consumer/index.xml | 2 +- favicon/android-chrome-192x192.png | Bin 0 -> 24272 bytes favicon/android-chrome-512x512.png | Bin 0 -> 80741 bytes favicon/apple-touch-icon.png | Bin 0 -> 10476 bytes favicon/browserconfig.xml | 9 + favicon/favicon-16x16.png | Bin 0 -> 1319 bytes favicon/favicon-32x32.png | Bin 0 -> 2712 bytes favicon/favicon.ico | Bin 0 -> 15086 bytes favicon/mstile-150x150.png | Bin 0 -> 12613 bytes favicon/safari-pinned-tab.svg | 862 +++++++++++++++++++++++++++++ index.html | 8 +- index.xml | 2 +- installation/index.html | 8 + installation/index.xml | 1 + sitemap.xml | 2 +- whats-new/index.html | 4 +- whats-new/release-1.0.0/index.html | 4 +- 21 files changed, 901 insertions(+), 16 deletions(-) create mode 100644 about/index.html create mode 100644 about/index.xml create mode 100644 favicon/android-chrome-192x192.png create mode 100644 favicon/android-chrome-512x512.png create mode 100644 favicon/apple-touch-icon.png create mode 100644 favicon/browserconfig.xml create mode 100644 favicon/favicon-16x16.png create mode 100644 favicon/favicon-32x32.png create mode 100644 favicon/favicon.ico create mode 100644 favicon/mstile-150x150.png create mode 100644 favicon/safari-pinned-tab.svg create mode 100644 installation/index.html create mode 100644 installation/index.xml diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..939e915 --- /dev/null +++ b/about/index.html @@ -0,0 +1,4 @@ +About | Documentation php-kafka

    About

    This extension provides ways to interact with Apache Kafka.
    It uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/about/index.xml b/about/index.xml new file mode 100644 index 0000000..742c273 --- /dev/null +++ b/about/index.xml @@ -0,0 +1 @@ +About on Documentation php-kafkahttps://php-kafka.github.io/about/Recent content in About on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/consumer/consume/index.html b/consumer/consume/index.html index f521c58..8d88fed 100644 --- a/consumer/consume/index.html +++ b/consumer/consume/index.html @@ -1,4 +1,4 @@ consume | Documentation php-kafka

    consume

    asadf asfa sdfasfasf

    \ No newline at end of file +Documentation php-kafka

    consume

    asdfasf sf as fsd

    \ No newline at end of file diff --git a/consumer/index.html b/consumer/index.html index a4300e1..4671e98 100644 --- a/consumer/index.html +++ b/consumer/index.html @@ -1,4 +1,4 @@ Consumer | Documentation php-kafka

    Consumer

    asadf asfa sdfasfasf

    \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index 508007d..61f5582 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -1 +1 @@ -Consumer on Documentation php-kafkahttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/asadf asfa sdfasfasf \ No newline at end of file +Consumer on Documentation php-kafkahttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/asdfasf sf as fsd \ No newline at end of file diff --git a/favicon/android-chrome-192x192.png b/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c1d6a7d06b51bd4b059d1a41070d2415e4ba9d GIT binary patch literal 24272 zcmV*1KzP52P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rf3>*L?5C3TjB>(_jaY;l$RCwC$opqR8MfUf< zb-lfNdOS0kxM$)D34sL2LV)1zi`xQ=JB#b$wzxY%1A!z&iR(-zHp#fQ%k8W6{sHW} z``bYJ_Vh$xK7ZxO(^dCWO`UtIP8}iWBCAkJ|NZX|es~v^QH=N-lE5T~#yaWX6Oy@|?rh)D!uG6eKLrk(%*1!YasWX+T* z8SRFoZB*Tfd0KyYe&oQW4GlMzDSx3qz(>yB+r#`r(WL-c;Mcc)6E-k)XPd>&_4&t( zjn0$#s5G2WSsP3yvwm5F8j>E+yz&CGOnECds&&rjC#S@>;!E@+U0;Q4(4_z!#WGVRSY@~WmKN;yeCrV4mF(W9(gM{HuSLT_3pI= zRDlj1ev-Ghr(?gQO93*#pqsJkbPeK^gv7p3e2#6K?=~T7FaEE6eJ4U$gDT$S68WI^ zJAEIgek{R2ErkSZ#JRVpX1}9L0W7kCeh&O)1k}MXxAW`#Tg4r&%h;4)-{XQ13e}yg zlg9_|V&4wF8G2h+M_$pKz-Af~{2R=$^Jx=HeFY)bdvGxlxv(NnrS@Z0A;OS=0`&PHV zNp;SP_m#yD0DRKsvv17#M`*hJ$YCc;MWD4|Z;Q0w(DemKgUS^f;2bjq;YmAZx>gsw z%q495~j+$||C0uk&5ic*@2f$fH8--k!sK zoh}9V9V(x$M`T$oUwY{Hzj6sNH`9JhUe|P=yew6ec!Ty==Qd5Ls{7#5!_*t-9Jt}b zDm)AJ-4i+gnw~vuE4`D1?Y7hT7W;vW!e?a99D4krdwVMP zS-K9vzd@9?V5?7oaELk9`CY;1TwE%!+zBzEc~Y&(vhc&&Dd9JV-`KllTWUM{NP|Gg z|4w}~-HZa9hxIQ%mm|EKccNI~zK)OCdS`OOtoUMUnx}0$f>pWZ3A4)g_H^#Ebe#cy zgJ5+SBg3WOtL#U!Ng;#9Pm#)xZ;wrF`Kz(E=5ceV+LAy5MN;7|7e4?LlKvoMF__^> zFuvqpFGdb*IxCSIUX#fgfsfmU`Wg$5ptFV|q6YT%bndfsDZp>g_*5KA?_B9;+k|N( z19xWCm8_0WZo9Pjqa9ze4U#cx#t1lxA5P-mZQG%v#~|KNNQZybXNi1d+m(thQ3Y62 z0!Cvwu2Gy3+crzw^3l${J)Qe3T?()ZqNyls@B86dkw1h_N&~I7H*88GF(7nDpAUO~ zSMdx(2X`A`S%xXyPQi(n{}qnc`YlQh4c?{O)Tp%{2>5_)MA04P-N~aKv>8o%Z9ey9 zx)fj+h@ya;rZTYA_Tfy5cUx*qDAc0lr^)+kKiU3N1*Tkn@NaH;ezzOq!bi{i3#~UT zL(O$7KGE`$A6wlDu_>XO(Cio~t;z*qy6hdhqDujG!FSKiMRx!s$POl^wZ*I3)qv7F z_M+{KvgF{)JAM;8@xDP6m4v)R5JJhh1wnQg9YM6oD;laAK8~5ZC?l*KPz%IxO z7Gm+E%bcvv^|NMyp-^%X%cFm}4nC0E@1qRq8^pY`C_t8{G)cY#&|FdXbuw-#b$ax|s8)b;J|W)yetnKgNa z_8W@L?jQ_FtDuaj6Vt+mUT1v9dQQ?AGqLApaQ~r80d_$iTLci;Im+3rw4;Q^DbQf{ z)R5HmtjQBb3W{9?c|T?0Jbok#>FScS)B5>;jhO0G2X@A(obnNlYzD zA}ND4Q7RN=O`epQf@0SI*-SYB!%AC*V+1KjB_m*5L~~G4Wi1?& z7?a^$aND&86V&3x)$jHT7WSYBl5cnzN(3uyP1Dd6DjQVqIt1^EE(O>HDMuWEjP~zkhLZQI&$VK)tG~_cyNQ7l5@mP0a63I$ilbG=!8`y;3ru{>lDZHE;f9AXfV2sdTz<8$ritJw)k570J9ALn8DX&bw-N$DU<_Y#D{ z6xF(0A0L;}hQ;>uH0~F4DZnm}4+-M*&(xgQYlF==AXyWK~7KkbGW>AfA6 zg~T;X{&FyERh}ccxX|B9TS_QYNvZmrP%0kWwFTN0T?()Z#vd{kn-PJTr>&)&X=(4k zr3A05A@`E#ZMDwlNdtnkHDfs_rKmb8fTfpg>S1s2Udm{kr867lOvTL8HZ=R&P~Izh z(VTxIx)fj+upp2phhX$p)=`^o&5e>0i0$@ce9!hg^9_1D)3)BC6X!3aXawJ!wix8P zgu^j6?>eE~ZaJ#ObZCtjscupZj6h3vS%G#%mjdhpA1MHiiX(7+)ehaMEVb&3&nkk= zw$XcwKBDi`e#3g>w(0)_rB#;tnBQ$PivMP_d9Uq#skGC5E-_eZUU`JV@GC3S7uxG= z7j*rZe~Y~m5=p5EfI!DQRG|qC0C|7Yr_6hweum?YJQ7z9yPS^2G;=4`qbC`*S0*Mx z+fhe6V8^weXqQy{92WOZ~z%gxej$uxr{B^oZH=z;`4-1CHpvzeoh6w*mU0F)M7>#c%irn)lJ6wXZCT=6 zRFDX~up9@HW3xVvklBuHr!{~nrrkX6^!!w8c8}>uf0Qv{@_O79%mymZCYEOtreT8W zG>6rhQlc;gjK=XDtuvq$L|27Rshw#wpnk}QJ>VdgcTm5JOrwxs$La9mwp-WrVP?6G z;~H(JaB*=kqj5q<XG~B_xE|ZQ z1#nMkKFzr-?%ceG0RChSF#?4kckc`U=evo+&ui zUhDoFAF>Z3I>TglIZ>E`uBiURkEvm?CxTb)m?Ld>Y2z->t~obr62C(q#ju$tK|3Vs z<=*m~XRFG&f=@_2tcDa?lb%9#q#EL7ZBHhSYI-U9fEXG}IpmO`S$hPf6yIO92-?J$ zRCeR2$6U4kONhB|x>i!gK&*TFE45dzyS?(l_XZXu)OMSOX z4eldZrIU*h5DML<1XJDOFUix||9Rna1DfA67oiU`DLdVFw1WU`Lu+gkdb>)<)@#w9 z`^bB%)Z#peQ983$)_-I0s-_ggW<`dy-Q=5HvTe>oAK;Sf&db`@z@%|3D5`-p-6->a z)%{JW-92efl|xD&3dJ8^9-2{iX2a{+mP2R>+$7^$^_~ zI{K46I0uw9%~VNjfqF#nCik;V%fFuYnt9^E_ru@8F?MJKAsU1iKBO?8Y`?I_1Zhsr zlR~X?R3>?JIy^y)iBwK}MRY>*)uTSAiyOC#DDK@2#G3c;E{V_pB60wA_U>>T*f7Sq zF7I_Q?i{!;DS_seYZBwz&Kvq&_qjFUO|W@#kWUIb+%KgR+x}Gpehd}k7YOG%Ds%4Q z64Kr&O-U$}yu_x|0l~l7K56-(VosBB(4mvy=|EYij8|$qZN*QoJqMtP*>--}Wa;zV z7sMLZURnGAKuiX-R=FL&YF*5i+Zhy^li9O zccymkm4WVplr!EE?%#5a>)Y!2RjW3k%sVJ6i(jU306^1>je>fH^L*Eaya)E$;s<`d zWp8y1wEgIRHhyIORL5aQqp_m8LtSRPTEE#b8)bK1fDNa}<&LlOpA=giL-zU`krMC$ zdtdUS{huoi+&n@UHW*8)XJ@VZgO8bxB@fR*V)cOUW20IxS3I%p*-CAm;eeq!7ZL;LiHs##Rs)rGi+h6*`MF=C60b* zM%KFjaMoKGa?H_CrUa(CR_DJiMD5-7>;QK+ehQ^qba`}I-6^Qyb_|=_4=k~6oUpuV zV`>C0!GlF#EVTKr>i3YN#($Y*Kb5TV>l^sLMWBocxo7B&&^0?QV|Uu(V;&xo)u(O^ zR3Pdf1RS@ek85?_-C~35SVrS4MQde>$?LjO5}l(Q6uG_l)#R#FtBZCkD9c*^aWjTh z;!b!j5&AgaD|%aOb&lN^6NyvCM4~MCO7NboSD6ch_>kv%!pH1B_v(LQ`L!j>2~c_! zTo09=AT@f<*}ID$&=>_e(f;TEiOE2!cc0{Vs`$jw4-dxopM0Cu=l1mv#z0z&ksp_A zi=9<}QM|nE8pR*mN*S}$_C%C1q2(m%WlwwioS~w2kySrz1|5OaPI({p` zn4pYlQUb+*sWBitLx~83WzsRTQBaWI8HVDGZwen$e@y%fx^=SJ8%!3mwf$cfZ=M6L zUzFi59W>B3-*>Lq=scN=N!^H4B{pRFNAF!TKuMjgg_TGVI#_H+zxY=&%s84Ro!~yKs~G*bU2{ zJH`yq6#UlW%6H4aexm@uj2_!qA>JLit>L2JtBxxF@j{E^C^o?jVpQI4)jCEQ6I9Ss zhF#xm6r^THdj;Q*+_0m1(y;tUi_3bsNq!W zj9hKLEXBT~9<$0UQ6sIb?Q#)QWFs*ypGh*qxrBIx&}tjc%9;B<31QnXVTtGL5u3W* zx$vdMmfBi+;!hJRz?GnnXLk25rKr#1e)nueDdknn0D+DY~ohI%YEUQU~6+;&Ij#NsRE8N1~}8&TU>W1>w?p2XV6w= z{iucgI@RS?r7hs$K@+wy4cC}{ajj>R*y=b$s&Spk#D%nMle#-qmnw|CYj%?tseO~n zdp_rEum7Rl7<_1d5Yl;`7!9-rVd8;#NNlESalu=x!aFQ?LMSwQs#z(Hy{e9lzlFP7 zx3=Hn(MsQKM?W(8-#=@l>)`+;+rCcPZ7&p$;@7z@;#=%9*;Hn(CaNo06_{Lm1c|ac z#w_fYzPRcBu(q`th50>EJ)rd(`!@e0nS8o5XEGG;8GI~0D)7vNS9^q#W&jTMw>=dr z&F_&c91P>q7N7I8{J%Q3`L1K*VxHAKDP>K>d$->;a7+H3-+w#@haP`eCUa~VlUCxL z0Ro2Iso30C_5PA+71Mfk8{Om&x7B}qs%P;~qx^v35ckj)e8IiT5T4v9^gs2W*X#}6 zQ?0&{DPuzQCsrzhqBm5$_SyWCdR}fCGywK@ih``BGcW>Qkd?13vD;rSJzHAkzgdV` zw>VKwM|?p0HLi_?k2CQ`baSTHMcUuxwnt^GyK{q|586-2Wby0vRAanv;L_l{^$&7W zv=HF=-Ng?8gP3U;-C6|47&gSMX?ZL%vFQrM6R)@WY+^7F!}ep>-Cb4c`8<0W+ja*- z24ToWCbTF+Eh#M}G=UUFlI*d?4*>SreiT16cmN-^9c+0!LQEuz!b<`(cb>oKM`i8^ z|0EN@?=F4-7)ibaAk$Sf)d_K4%Zu@0?H8!dWVO{OJfd?Df{x=_pIe{P{8TXQc4;X< z8;yZ|)dhaGYX}<^EZY+eyAn?f3*NbO^}X*qzA4nko-@YMHe|?=L(%$U#5n)kULVBz z1+LZYO8O)G1vVn|BeQM8ZF8)d$^I-O- zQz{0wmO@InrZFmK$+?`eCXz+bmv%n1?6m>co=eA^Im+s|005JwOu+;Hm`4{cf9qqp zH2f^(tmXP+HBOQmU6Y117Gd*-O&Q7XM@Cs=qOoO>Bqr@s8H@Fh4M|PN14DPe@^b&> z{aTt(%=L$hSi3ZK6Axx#Df&F{9^L-K!jFmqD`zbc`4(xoRcnUoNoGDKBQ^a;INe8=ciej*9H(J?vvBp(|$uf>pl!>Tuxw|+@0?L&!$FA_xt`JG3wN2jb>pVu=VXJjPYIPPc8fz)C+K}{iy-#xXhOxC6GB!IwD&^(nXc<)l z#hv`Z6!f}X{l+B5F0(T;D(jPKT}Afo`+!f^K1A3I!nWNFE-ZFu4AzqAQ+KFU@zE_m zwH>+*qUp_wJiU7Nz*2S_)ROpDrl^Olv}JUr&{^-vb=0Q!H%?g{V1-iN(n= z9mY0wN_4AvY<7#2q^7qca$HTV>Ch^7`COublK)Kw$QX=`4GRTgOZGB1{}C_=g&5BP zXG$f+U@RN}C`^~WF80rF0=@4ogpbXRfx*ss!C$OG>nT^6qPfFLTSjM{LRj)kt?4b* z-70_%0u~&M81=v;mZH2&&e$yfeO=6dvZX>RyQS=gB0TiBgHwjX*rhu%XG&n`F8+>` zumJH3k?hK|zoSD%9stP1W5xVQ8Gy2=8bIze3kGJ_y2kuPLHL$!QIj`zT54!8f*EIB zh@|J_uv-P703_Jpv^jhXEI3&Z032Gzk~0iX&+KL;usKD%LMU|8Xs~1oG6|?m?54>h zlBSvL&psa?6U|5Ex0FYF69nd620s){Kx?=58n1C@@qW|*mE`BDeg}?zY1l@X2 zgGAYs%0s5v%|6}U62%LI(u_*&aD>1lh|th(f0~8@04bFg$Z7DAx{VDqh|Y$B9ERHa-$IAl9A&f8|k z!rIvaH4RI9D-)(JYw>tei>LMb-70`2+n_*(o~Ox_rIv0c*c98n|GO^>Tb^&o>f~(v zax=cBFLFd9JuO|?GbUwuL=;yX`D72B0~ll&cuGOpJriz8S&9%$P@=biu}~1iBw%E= z&lpNb-4~5nl_~Ox3hwSa7m=Cnmc~M;q8VDy@T>5U-8-}H{tUpHFuKQ~v#Dmv7?!F( zGcwaZ=ZzkP;y2kl1B7S`$lFfzJb6+so8$&tnjFSdbcfoaZHFbrO8pp0Ru z9s;Ydqdq=!gJ1t3d*$Zjr~=z}e%LE=`Z6i5hn2RJ)uW0%-Y)ynJ38!EYMbc7@`I~D zfCkDNK`7~0e`8g?%oFfWp(}i^hqYRGc}vQ?O9aY7__PT8A<2W-l+edYTa%*^-K#cg zP8G0ZT-!Zuv<}acC0O`qH*v)B=0Tfl51G=lK^)J9g~5!@moiG4r!oL+i*%s#L%?U?!{bmO3;=qg5Lm4-ya{jiexHsVyC>LgUqT zbDdcWAnjGms5~b&xK4{bRz0isCO+KJiJ_EY?nO(0R~387UBgacRMyhz+OTPj%EV|Z zF$u7wqtg6LWpFi|KEgEJCKt{eG-;Cfu>C|KDIUnkd_K{cjPjrogJIdYkjut}Tp>Wm ziFK~O+N-=f^+Qwh*X8ecH#{S_eC3SlWaSsn<1F$}R>qMU90Or!y;*5AKu%u)SdFuB z4bs`M_o}{Mf1MDgly)fILZu0;BCWXX-0FUOt^H`Lt~aLB*q(Z&A(r=LAK=y9|30nW zJ(sY!`?1k+&7E2gV(qlg284sykK8AeJ<^L>sGnjO=u z7L3ybb=8FXM+Oq(EIX6_7nD+bR`m+n=v-(wxr*Z>3$JkgtN1JT*1R`tEuQ1qm{ib_ zB*6duFalQN1R><;XWQbt(6gfWv*Jg~-*RfwaYO!fn(L>_wt&(N9oiyMN`a$dXnkx$ zKzAxt7Hy%Bnq7xEpXxSq&?6)9@rQ4AXt>K?-T)=MS>#qaE@R`uKuhCb4QRI1lKy0d z)@^!v>5I}*fc}F9;b~8p8Xjf7$y=+L#VEWeZF2v8`-xjdO9ypFRjkrV^M7;3n$t1( z+39FIY11J4Hs7sWO0;~P%Yx~%;>fDO1;;g$x1N0ilv=-`mT4^rS&ZTjhCACQ4LHa7 zQPHQ44SA37&5q%W#&tXm-S0q52AnKAi&O&svoaqu2A z@EB>E=Pb)5VMQZMOVpntqnnV!r)NA$>j{Jqq-F*{C!|&zF16O`z{IelzhhDEW5zj= zK^t5WsOCh&v;6P)&h2{_ z8{~>6gQCgYoOU-m<$2&RgwRc-#CC1zgU&_yPYEGMk4!`oBldybg+-6UV+{PuiKn8X zd6}j5OFvzLUS|@ra>}-2oYnqEI9c>sl|lC?>&Y4M&CKcPzu3}NG28VN^ttvrEid_l z)olGdq?cpk@W#{KUl+e?-|n5s zsQljbsh|X0Ov-mu`fqf-(e15gj@&u^WpWJ`ezst@O{>1$47I&LtT?*x2+#M$A3ApA zUd|<@%$=kt0Uwqo+c)IA-7vNGaDkPi?{4@8l+xebo;A_MSTd{{sO22Cu~RPbuP%9B zj5$gzKb|va%ANekeg1%;<8%wA+;o4~M571~kfG{`2tk%13YG+!Id2lIa`#Ic@o8OV#cxxv*6ByZe4Zk?y&GGA331 z$E+*t;^JZLk$pNKT^qo|{ z#EZ%`&6_`%;Lz@-0u<~-4mskNa!M@bPv_x0C+ra4^o$iZdM*}Q+()rWW-k@Zm)sJY z*?c5zWws6fD*X~#mPS4AoMi|NZ{mkMFy&=ii~Gz>(^#0CVd&1(M!h8U4ehTjiY7wq z68W)6$>0(*P}|1v+wCqA*4_JhQLeFmSjjbwDT6Vk0y=#ErKE{#5`o)LO(!>u_D z$D0Y*nO;9nD&2_1hbl1pB@2tb?0=uV$#zF{$oQ>Q!HIo>8nVAs$*`q>Lt)-$mQ& z0<7Q=x{EPsB-g4-f>Q4-rcV(t;E2I>E}zbw1O4diY-MN zFhZT|T$KM27qfS$@)~7Kn1Y!wd9|4`XyXOmG<2PXPW(`r0#@T(dm`Jk$r+|v6k8w< z58r<3=RFrb@zh+5yJ9#hi2(l<(NgmZ@d>fsHIvc#{lbCB5Y?nUIPnq{G%S zB|o-4aZ1Z^$$7^1A?pj^O5+Cj-{M($P>{Bx^1(_p+^~WzFF)-;M`hl%R-$$GX@1UU zQzv(iKCEBU{C50CDQLgZD6v0Z@PvJb?^u}3ezEv}g-V8!91(aV`CRS&{!xPy;Zqw1 zO3S^sOEsQj8HMlMsxEsFL)4Pd!Oa(zt}cCh%@3t$&t`l*Zhi4EC00B$?&$gbSRCCE~tjv2Db^m@_8j=caKp&x&6X>5hyMIV4E?Ilym;UCn>DArPo-JV zZE8%;iSF24re>D%|GW4Bz$Ao^*z@=I#SZ{%ig#tc_$drQlM{KN?+i(8-rHmOPg4G9 zRs5i~>$Qh^Z96bkl+oe`I#3~I>cvyBdiGjqa~eKUM?~&3ZCY$^PYM7SycS87L~aQm zTYqG-XYdU}ROP)b(|!q|&~xO*#L(93tIuC^T(T^3y=xOVxD+h(vg%-!cTtFPn>fBz7G|}x!Snd|RWy4uN zzMy_!Z)L6we#b?G7Q`@+Re0atKC4jHq*TxohN#u+c4a#&GF!pZ9hx&0Fd04Z%jZZW zX2&ff9l_)bLn(~UQKpBk=DunD#M$Ok;`i*RVCJ|QnK&8Gs+?@%gX?-FTnl05P zmqngYjto6(Jnm~N&}-41jKkN@eGc~G8m9a4M;*m4^xZ84oaKA6Afn0XrcxZ6lbGCo zW9%*0+M+cH^c|7;oB!WK&X$0)zy1W%|8gAG9a}xtzQ%ix(BL|l(L4Xr$mDcg?Uq=i zjE~&TzPD+S`E@BBeB{r*@(CIN0f$w+8o-~N%yG}jzf9WVxtx#L@;m(vMksW<5=iC6 zKGMrm?`TIxSCxD+IPuBXH{oLTf&cmWuNPHS1W0`KlZ|`1V6c6)=Oiv*JDrb<#hG3b zr3+;Zs^lhCCI<)aP+o2MAwC=G!58)hA$h;Z*Mc>H26XesNaKaYgY4h?ZW5bZ$FnJ+ zbIU>z3f-;-<+8{NsWaN2*?BV>MjJf3v+1Wm|K0AhDQg|wh9c;s;t?~Sdn4xzTaEi- zE-v=zj5h^kOz0lDCRH4LHgQ7R>!a_?X>Er}^T@6OY%)N_>XYL3fV_fV6$(*M7Mc;sI2U&$179tj@hbYIPsQ zXr1%*GHhxhRTh3TIl29T_=|&TCQ$I-5hC`i>}Pc`m52`yJR&`;JpS(Fg^}Cn zDIgsz#}uS(@FAD{v}Uo8cgetu_>Incm_)~wz~pr`RS^9oIVN~d%O`)UI2>OB&_IZ_ zkcLm!zlUK%L1MR!C}8K>4`k|uBc!Bb5}Oc8h{j07WUxC2M#`9!ibmY9soOM{I#=x% z`!+GHX<5Pb8Tc1U*{9zrMl+WMz0>jRl zfwpru4RC!^_@cepm)UFj7feCZ68(b@B;MZo(3tW`9S#lrzf`|e1Ae9^#*edKZ(HfV zm6e5zgKsEfBHpk4x#$f$Z&aRfMTf6o;UOK%>I?vD=B`K58{<8n6?bPAihY?Hb^sd} z`?9Lo9VYd&gm;2~rPS1QR*yq413FQ+Qk$`f3{cb-LMIb;~+{sItU z*-iX+S#bSNNO|IpvZqFUVQ=;xoM}IlF(LO0y&t`y_7d$UJ~Zn29Ec>lb)_k7#QG;= zKtI(j{4M`+$5#J&nYuMlLJ{xY{>nQ$ue{*U4=*(jI%#r7{p^l)kt#&oA*3EPc~6tm z=8F^xT1qFxW}4CRR^4_8l-xnilnRQTWI(6Lusim#`|Ul4oQ$JlR5SP<%qaJQqHno` zlyP!PH7~I_epK^u#!|kryfPnLC*>TXlw$o+)i8WoAJ6P=p9yWwj8j9Xp2VissnyfW zIBD$ttpkOmSEtClud`n|d1YnbBH-9m0-@PHhE@2SO#3l;O-mF9A1{BUcct`Aq|+8Z z@bf;{^Ab?|X8&!8ZlNa)PE#}Oi%p3=J*nI=w(knTX@A~q*?(FE*toC~10aHF=Z6y` z^UEgHo?6ygTL0nvNvklhEITz2eh*ur9iFMH&|22;vF21(XW9>=F%nbF4=F+}c&2kr z`TH_|S_O!IL^1FBMGiK>_s`U9M>!Kl_tY1|zMK#=E@|)7`oq6cK#HLMJ&bX)#s~D= z)Mu2d*to^D;jjD(;|qMgey%+-;!xRjKLLob$_0{$qkxj zRmDFVe_90)Lr(BPyO$VDW~Wv{VL0@PNe@m)=3lXA50OQr1jcbujDNN~YKYn% zJp`R`nLAlGTQ4H4XSa;i{=%P90sO=dBW^&|Q*Kb2k$(*(6b5H(s{v3nz;a#b4%7dn zK4>SD8mzf9W6uMFh^XfzF0tRo{bbBOo#LZ2aVSohqUd3eVOkJ|P)6k1O}heWS}W+B z4Os9<0^mg`mPva;33y%X-3u%>ZQZ%Y zS`1$=G ziOu)7qLrpsl`tE$(spQ{^B8>55xGPm8HY%jtQk#-N=Wwnc@t;+X{|t7nGDXw2I&ej zh$J$~amwrb@B#JX2g#eYH9R`CHpYM9gdKTHdV;qbBRN&fI5M1adaIHj50m{X>tj~= zQ+@#eAmNCjsc2^#CHl5Z`(Tnnp}CAdpkQfF)HSc&W3sRKbW^_Wkh(7$-b}gr&ItR@x%N}6i3{8n5sL~%1nzq6OAR@PTMhc|5)dZU$AFv ziE$c%^Pw`_b;{O0e4Bj+G7ROU429v*tBx+X+9>~f-#sGxzQ~_a0RUjwQT?&S9);>o ztuQ%jb)(Gl>M9N>1&x=kpgPAP)%En5RGvo1qA>=6Z^^kD$wa6KmD&`7 z7Nzo=s8}$e0l9Cmxz2lw?vk3Fhjb*In-U7msj4~i%e-%&QrRZc2qd^OcIp0gJ~s~m z+OA&8xfd6dHjT3l++5Z^nDi0{=V?qS(OIucDdPL-Iu#lOFh3z>zG((^PTQdgsSOoJ z)NWNrCpI;lu(rw8=rgBIpPt<*{0%zQ{KuAO6lk8I53_@*x=U z1mNaPz4=dbua#=NXR}GZ!%2NLn;ZxZZMX^VG`{v-pBn8-`WHA!hpI@So~}ggWINPh zQE$!pcTV?AOelQP{PddbMKVQA^K8`r+B&@$? zOEJIFHI?6CpUy_aaje3X5RDOcn{Vltyg(*zCUu*-U9~6YVzl<7c1UzV`IQ5MYt)Z1 zQarw+!~N~YcSffv+6ECKS@Cj(==i*3GQYujI^SxW%A~kr#$Yncd`v-EN)1VER$R&1 zk=)i-TaMnk+*ssNX8!mi2)T3jJn-_*;qwD2ye)pbf%^Q|%_G>^PFIXv`W z>WcdJMjtmpj#C-VGy?mp0;^!pp-jX1OgH;#|EZ3eoRj#3RL*ED-=WNKgu=9GvhG%v zD!pQFq^1YI7poLX+btP8Pgb%@$24 zG$9pI{qpDX@W9jJti(E02-=|Gznvvy4gDT`(J*LNwdL8~%e_R{>bi_iO8HrzQT&{B zO(}|gksKL*Sa>zIw*A|fGWnGB^KRA96^LAr17@V=#JkR;q$>9fLcmepS(%~@Nr}td z!*4_mXn8RHs;l+@nhzB!Jmi19T-Vaqz>Gf($>}Xl$2Ykr+p0ZR@L_2vqw`resF;GL zsQHOSseaK%8_wE1$5HLoC*3_ZtIx>Vghpr^JR}cmo?h?cp7o#UXz*Rf#l(`%OrcE~ z6S^zapmdKv5gFV1Ler_b z9L}aXzCGI=CTmc|n^+nj*nWrpLF4@RELK1G;vOKR_?LO4Sh{o$`b=O*%lW;AiF3U- zi%rg>8HE!&btg?IbV&`$MbQ`a)56cJzNf5ys<9KLY{xU%0a=nftZu<0LSLMG;r71b zT<<+%t$QY;@_WoTz~l`*RS^3mbz<8;${$N?Y>vB7}(2C0s`H$Qd+M5SyEt6uP0?dp%dR?pT3=Jv;t2=whF_4z3yQ*ywvo z2sjVilZ6xhJwc2KH9xU3KB?uZ6F%s>22JfHG zFeb0dlr`HyNLV#fF^=JQmSJ2}Cq72!a){0ddt?6o6O%J^r64w2KO*{ogVQ2s4Y)@t0y*egi|35DuSZcGdaUp{ncw;#WoH5-Q?^Oufw*^$PtKl?7m z-+mavWo;w;TZ>;5W6sfgwVEKINaTg80*CIryyz|4BKZjCk>YCa?Lu4U?Vta!5DG0P zS*r|*Js7&E?oH-#&l$NDCHIR-yQkxwcMR1fZw;5Wp6{y5so#0eKbZP8}<}(vtknIy& zbHNhp`HeGLA$6~};=YCboc15{ZWmizhwM{}9{?!HeDM2)h8GttidutV8g;V#>g;z%3gx9 zhL-9Zc_DdsVnbU0uH_^fGmU|;452VN!!RT@q}x+F6-#s{?%7^&7h`1jQX~|nXegRpUT?V6h173s zL=J5Uwnc&-(c@&nl%kCc;=QFpJB=xQ1cS&QUhYQH{ZVT>!}AHt^-LB z;sB)-8~(Np&Z9YR>U!x4+eYs-oFaKUMUX6EN?J-D8hTMXv;EE?R}2b8(GJfq{zz+< zu7Wu}&I&Wj#)+#vcZ*HVDU8l_%9o9@CN&&Njp0*&Q1X%sOovgSXmVSt+NO5nOKhS? zD5Fix5T=DcNQl`EW@W*j>9*Bm4MYbw-FxG@(%bHsznG3aIQ^P&mR8kIQz}92X0N;@ z-DitoS4Lq(Ca>#yerkz2AogN>Y~Z`m_YY|U1yWc80AMi!JeH##SD^Ny=e@2Cxl?S_ zo(qJaZ5pFx_j1h;)nuw5_Lh1==<%VCR##Ou=3-#CQUCRuu-O6+$;T&8zRvc2Wy-0J z8vp%##8yJ+zP2Nx&>d<^s(<7@?y<;g(GO{K*wa11{hy+DwZ=x=!uoK{y}=^ko!rap zHQvj(xaiHErHn#zrCQZ)@t0GBVz1FV1KZ`VyBia3_y_<%$mO6^1|Z?fQA<&FkJC)CyudebT|Ug}HYLP0oo#@0>crR-vo` zEkC&?F)(~{?6Vzn9N+kj;U^FI{qcOU5oSL{R}d9=Lk zM(&H&#fguII`QlYzy14Pwkv-nPvNpz6P)}#1t;69a_Nsz^&n*T zN@UUm7~((`UCzrha*lT`E_g%?J2S38XL5$F<|V$;rbX^o-`KdEE-0WQ4jPqK+n`wo zA7Pmdw?~Wl&vGskcRJ4JrLW+fpMhD{BpN@H)UM~0sm_$a%rU14aE)FZ9tb#f(g zB!Q_q+vs6iehf}(xY+o}Q^mJ$!T8+6(r&)+^B-}=Q3v6T z1M8+cH~639qf!s6UnRvKpVx9l<*~GtjU4!FdI2_RzrnaK+@K%Y261uTavdPUrpDs~ z1Gkh{lzgP$>D3!ik=Eh|0EReVP#puvSWW$M6D^5)vxB7bQ(RW6KvsEcZRj~yz3pU+T|s-_Af zvlHW6PmA7KeT}MsrDq}9ngYp+g@3jR%V%k`Ovq`2e_vEhNs zeIIqN^2_a(7C!(?I{F|y`|*4XU0gCdKBD0(%V1xsu6!McrX6)OF_mVxr z&zhWJX~j`uLg^9zMqN|=aL!52;HbrY(1Q%mC< zER1|+*wtvpw)S)&CQM07q>7_+<+1JOC$FhFo#|=&rs%Y9)X`7&0U@_$)NQXDTjA>A zP0){<-ZFjK8mpEW-KHdx<-rFEzU{kl(=&@O$d*}nPcO7B`XpWS|8upBc42* z4gw+Wj3$Q=f)K4ohquq!hGF7x;N^}z!bv7$)kT{?c!$px;rm+JdJqadH}$oCSKF8Mi`#JAWk+>L zmhsp2#*#6OiZQY6C85oBlo)aiN?R0z0iO^jB$VZ1a7A8PX6v*RApS2CggQJV!j@SX z3}sB{JyM^>pZ;j;h?`D_lXyEcIX+T?svR5Q?m47BJg(_OZk05O(bGSSlLX&Wd&A|Y zI2|M$AE$Ub}ot6d+84 z*jXM0=~9U_DevVwNblE@e|f+65RGjV*LG_;M*lTEzp?`T|HhJRk$~62{~# zO^)d>wxyd>LbXWB00u>65jj?OlzFo%lW;0U;-1F1A(?fS8k$6;EOKZxy%+9oe`SLm z5^QiVE*Arm{%f27AZR|E++ce8TQVH&mRznUS^?;W*=S{5Q4>hEr#NEnYqz+27lt=L z0MM|>T2WL=C^TMak3t27npK%ng$kw=9i}oIYpD)01BP?3Zij=Ux8`=cpzXv70tSS) zot?v<098Fj&J<*Mt%{RTrW7xkf-2zrdO>0kEoQxmvK9q6Py41li3m z>hK7d3J^*yo0TavVy1gJxmyJY(>5qjp{Pp2QavpS=!Wif0Z^N>>rziO0yhAWh<;1= zPYi{cFYk-q?R%A0{Jap%e4SdE96|{sMk;W^25*+@Bam$z?yjFJP>ouuKxk4^PlV$U z*-Wos$!-;Z0fB-Pj9ev28EfjuB-zrBU;J3u`1JOyPR^!}YcR)rgJV?E(~=tkLn+TO z5zUc=FN5fzKPn6u1OPA&M6H~uh)DpA_J5F$WL7O$lU12QA0Dy{T4%OIjWFD-x5Lu3(neGf z8Llbl$E27ZR@$1Z8B?6e037N4ez#u$7s-WEl!Ts>YNniN$p?p1gfe$~?iBkEgAmrO z9p-#V$WXNUjBAzF*%O*TAtUUfgA)qa9i*BisG zZIxeYh`CNm?@*pr@BE1-#y>PNrb^0ctD%Z)Ks-qLA?KvwFZ9E_C3B(B%!)DsKxO>~ z^muVHdVe&2h7@#7x3vE!6oyOLpx#**v>%tT2!B`{=bNAp1OmECtF+XR5=bqs!*gEj zdEAiuMq}lQr5%!^;{HYiUf&?FiyRlR5kCFM7W^C&pckapl#wH}?gypkw2+npbRS=W zt^OeN+{8l4>z2w1F)An8w|K9wIJIVMx6_B=oMmTOo|GUBqRCu|_7V@mmu?whul3x) zDuSikEXtau?oj9DkpnetTy|~Ne*{wfqR8`(l}%4-F6AtGVWxPSZIkb&ZO3mNJ$lR& z*r~5WEQ3lp%hxP{c2gyjcixaQ?2VoatOi|~q7k7*+9G*u6DX6Vi!cDlA-T{`j)0q{ zuQ%P+H}gWs-j|=}c{DJ!e(+z$Uk^&DrB9_ngIL9kLc!JO=l;6rF`?Z#B<;q(_F>l= zj3M$*k;9rWm{<;J_`_3PFb3^YYLF_6&o^vpqqWuqV#qnbv!M8&8&7?3SQ%H2`f&R0 zR+Lg~UQ&h9;klgW*hwde%RTq73DNTHso_%B&|~5iI6eV4m!4Zj+8Zo#tb)2n=51FU z@>i5tyqur}wpRCn`QP+-b>!K(Q#WB5w|?n{w3@D&zYGmzBPly)`vL5So|lDM=M>Aq z(}Y5CCcbZaW$jjZX1mpS?GS_^*1aJ1lG{Y+&^m0nXW?emBhRxO;6n+7cKZRgA97x= zJi7j2T=|s$9t^z{ z-|aX7e9x`Kd-bFu=?C9QQl0B6K4R~YN%)~IsU_TR#|Y)2^Wg`jLbG{j=}syRea?!MTnw%VqMLD#WdNF0=TWfY1;x6tQX zE?#!3ROe1kczOt2)+}q5Xs5OC!;AHwRy*|NcfL z^~&>ghdh_$V6*8!z~OWmQ8gg3VXlB{wGHKy;^ACan82n4U&ha34J3PqZtcG%_ue_r z%)?=qrC;jF(i59$Ep`$>I#D~sJ-g^VK4$AsvQ)~Lpn{P!M5C25w2fy4P1kjf7|10W zDPT0#kxBN6|3r5v;pniIlk_F_IfJPLDNQFSt1Q|27V@s24tYqx&&_il&hNCH%mr-| zS%vfeT!P8sANSXUQg*FI^~m3t2gW`V4#OgS2TAq6^IZ^fW2cNGPHVB5xWG+`OmnX& zc%Ms1mRu2bIS$q^!O=Kn5oZ{N8iv6U6D~$$ZP_SKrTAlOA~PC}H8!#}V^-#aSO~nb z^zeY$j)i|+4)*1CuJ@3`?{`+^{=Fl$YC9Xs>WB?({+IG`!;>iw4>|Ne+F&B z;*;88J5+btKg&HvSmimN3riCjl@qg-ErK#8OuH7=a#ORC_D0 zKU?|QcQzn-XuFVe;NS=C+j9Qa(U(wXVu)%YI;!Q;`AbUQnAuj1?s@5Ne*lYRQvFOW zD5Y3)Xtkag7I<7}wT%}cDFHZ(IfVjJYR zzvxD>#c>>$6m8j_4`MQ4I2xqe);V^ZQKOvNWkJyTAl{t6#KIrk*hSOU|c#)57n^t7?IS%57^KA|6zjAga%G+;IeaVJS z8&u|#0i__mNItav0ruhCsv$2$MxeA4dQ+jH_O zhNQ$2W7}?3e%$h``I%cEHFI>vMWA=Z+Hfl7e@Szaa^Q>Pb|j z$|HaO=Z__`&wOAJCf{^mRv%HhbOY%4CYHs6C9|1V(*l%02s;MbR{37IU}V*CH8(C|X1(-T zRv$5N{18;0W*YdS>DBOvmOC_u9NzN-{hxtD%aOOLhlH;7zSF$y^_MS)PqLKA;=kxv zE=WqT{mB~8QHqed&UT4&L+wzAEP)K434~bKa%E_Ljc!?V^sr4%dQTZyJqW-~p8 zocmYT*1ShK)tWC-=R%?8Bx+OBLVs=epma`uc?ZgD)(?cgMVN-*ffuW>fD?`^JJP-? z=YGD;K5$RQR#RR#m4d{#$r%Ze8p4jo6(Gfj!8~{K5c@p;O=7d_ zI93s|8w~t^Ar!h(2`as!FC`BTJkG7RxBTOyQ}Lm*V_v8K?mk;`>a-mUT)33X$N85Q z`Gondvz!fim-BI3pU$`|po|I4ncA7^6M02FI`l99x}Hsy?>&y`;w@Q!*18k717&)5 z$Gb%zhz-th`=Ut@04QrhE(yPwdZzyB=nH0Y)aQL*&+^3|r7{*z-VWOdri**qd#q!p z`zj&m97gnPmyn_`L@lM{$L7gnqfauoMCPhXMRnAr3gd)EZZ!d!H1%lTHCh)q$g*V+j9j)FmB*+dUai%wG@ZDe%FGE-dp@e|K zG>I;oj2<>QqX|w_Yk8>+iYKv@PK|9V&h~@}7 z6o`Tl%awC7rqzgIF}n%9&&V6$oK-lBkJ&Qvq1Ih;MCloQQ9D?E-ucfXtK&=G!O)4r zclp~dTVFzD-UT@D%H;*_WyKfTt9+O9QF}&a4mm%(qIu@VBUpuRKj8K8du-kSz@(KR zV4$IiRG=M!7xFoFz9f|JJw%<=8R*ogb8c76+>4}W2wSeG!FLzWb22-G zDVZ#O&7EvYOl`Z?`FZ18O?9nlFMa?RTs{=@zxYud_F1o4$%ERj(tIh)VW_Oii+rPP z#xnXWyXH-6aqfR6y1oFrAWB=XrI!qG1UbMtyYLGxDOmDzGDS5NFK_*OYWYvkr9RFz zCmuh=vW1FLimJ*=xCVup$fO>Bb*{*LoKXZzB}7$cVsrC^?bBc~^#}aW6$ia5y1oFr zfP)SG9VHO9*@v?#XU)lvP^bm+H}Vy2Z$(e;WllVPOh)EeLI`pPIZ%6r-E2Q=`&(L3 z>T9cUx|}BV@FjCc_%`HcB`4D#kxsv<-5*)}{xVF%G;C>S2NT2M-doZlYDwa0>8!Fy zZ)$>AE4cDs0DS6u4&l?32zul zcSJT>GrcMczrdJ`lS@g3VyhEu7T+zDYLM!jU`)O{Ly4sT6ob*_P=1RV^f&FH+1tP9 zQh;5cchg|>F_I={hOM+CIwNsy(g0s$0T!+PF>CT{SYClXh6|j=jwOb*Z5cQtgx;#m z_3FCx-xXa7unXcj5wsq-GitJ0ot0G0#2{c2+#wA=tg!c7WvRBq@AIA=8}Hgu!o_Tp zL9P7BC=Ax9ee})?5+PgLo}0k^h%N=#1-8>EW}JS6s=Jh}*1V+%__#Dl{Ab=s_Em3I zWQiu*u;cMEkne?QTvV`>{Dv|VnoZgAI$1+8vC9gyE4mb57YrRb9Geh=S*WfzIm1%9 z6eiB+2$in$gO6{qEqlh&#qIwm8MV-6a% z7iMzbr%M5L0c8xx<62?#lGm6v-O}EHPzGYN<3#U$Jx?ETsZ2IkZpz3JEl%6;!zCL* z?r0ZXvkR{hnw(>-I`5j2)h?#-1a6dddxI1tP0=UbMc@}YWopVm0f8U4?5Z1-Hk7*^wiDGa;*Q_akETh)W2 zpj`^EOS()0zd=xML_1dmb4=?+_O&_B5X)E-9CHn?_89VY(0 z=t+Bp|K3a%KL8jWr7AHr@Ll_n+W=}Qj^q=kpz^&f z(mqYs8DKZ$=M`hoIg@GR#O-gU@}eJF3P{=05DGarHmha&wzpOvu@wCWb_K%kj;=32 z8YJm9Y(IvDS*Q$kd{OkS*yI|#?@b*=DkoMInbvr!{-vsZj{z4LZ#%_S;eAMmJBs$^G-^&c+}^w4=FKn9f64xNzJC1O$L#GX+OO#P0$8NS zF(x*=UavR*wDR5Lgx1ScUt){ZgjLyrLiHr-lj8!{Mn0)}sbtYW{kXfja{pMR>kE(} zn|Evi?a|H{7nDvAzV+TAG&&Au3~rBvn3{}1)q=#b=S6kjUVIWOU2Qej6gvVIdnq1%;qxiI!>;^4NYM!!_r5HO== zF1zQ_#{bdi+5&ZeTvCb<611wWr9C;P>c05&w&UdP;n#I%DwNgx0zzTf)wog?`7AoA z`Q+&1TW&EOw2lyW*W&LWU0;AKv4K7X{vXF8)i)@SPaPAaW$t77sPjlR!FFdfj+7KmBVZnBFEUew5Rb zSs;xT+nkeGl^e~bxDui>9%3>Q42B`UOg{w$7-~}1P)*j1QpspEbM#HBJuyce5&Mb1 zPTSc!v{ar#-2mbsS+4x}XQoR5I+@iASHLXL7~?rxjvK@j^eNj}G>IUHcX z$Z8@&yfmtssU0bIawi=jH#l!IqNT<8DHR%3LjOM(R#8sp*ZcZ2@&5oedu7*+E89x| z001R)MObuXVRU6WV{&C-bY%cCFfuSLF)}SOI8-n&Ix{vpF*PeNF*-0X2(k*-0000b zbVXQnWMOn=I&E)cX=ZrK74o@=41U_~huL;^$r08nJ4#Z>?R^5ZQe01x|d`s=y)^l^f=5LFNbfVz037bBRD z&txXjDhdGL{TToPLjmBwzXYBDfEx<{oEZWD-**7ObuwT9C-ilmETpC z{P7K(tBisK+yOEXK!x^hg-HEzF(4x@s^+D3N&p2)ndZ-`R9#|zd|nOUhm(bl|^Nf+B_N_ zo*xfj^gY;THrrgLU6i~~gQm*%UsyRdS!4b5(`c z>kp&Fkiy$28SDjkP1*dG*)PSz;^UiTwGt?}N)42r^0s7x@Yf%4sBcB$kGhKkXuus9A_K`!5MUeJdlq-AN5lL5IYPL8P;u z)&8;|_=AF9)@exR%zRzip@OL+;fmfvBF^<#3?&FA%zhN3dhKH3|KF5>s)Py%gn{^t z>kE6>i;in!JLqhF6C@vU|CxJh?KtNW@BZqT{+|VlRo?(Me*c*OJRl2Ef2X5&I*TCE zv%8Xwm)dhX@E0O~Ft85~45Q5qCrjPdJX^!IE+=VoO8oeDP;$hnksfRdT7(g!0Eh#R zjw#IzG_t1dSudb_%^MP85+Q+Ha)$I_c=krJCB=A$|%50 zKDH@|2!O5p;)2`cOC^}%pukAWag(RQhPeEJS*N{QQ(&J_7?pF-vNE zLk^Jr8kj&9DkE++>oM}TR9ns5(DOBGWj<6U1tH%6r2n=)^M~;%I>v}8uFn-}unIcLH=$QtP@BOW-H+7H5+h|UN$Wd30DUO!a@wYOMKQYK+LS-~A zv!O?pJ#;t!v1YVxYm%D-tlFxleXZ~50rwnL)`D$L`^C|N3Rf9o zvd%YZsEN2s?B+{S^Jh--SYF$jN-Y<(`a|LK1T*n0ROqZ~+6T(1}iE1k2J_+dHj z|5_d^HjD_H*yU9625Ig*2UJ*HmApB~P{zG>t`Q`%hN5ZiUweZ%G-a5%%r(-{#^2Q6 z70({Wd=xizC1t9~70lr*8e)0>^QyXNq`3$LMc)@34@O6G5^!9lPs=`B+|V1o@iI9k zIv5;SZyw(6f`JGL71dCMs&u9|MpCd@l->Qi2JX`BD{B!75}znOLo|8?E5AyXUAhGg zz@_u)Z$;MbuDHeZ4yMoXyRj~|_Pl2{Kh9qk*d8R|-vNkX4h_809YH;5b{JTr%a@x)=wkPpsX z1_t2VwiEf>cCS>Gcp38;h9b%Fkn!*U%T;|+!-h+AcN^1&OR~mI7#1RkYxnNo(}fZH z%k9@NI4im*kzqvn*=u{TsG*S9ppHMz?%sc`_May6J`)St#}-z=@_a__+}~ zbd!W*s{m zMrPs;1d(P%#Sy{NK~k!-LcSjpByq1aZLllz^nynw@BCc8*OZPXAKkhBm+;|e)>Y#Z z{cHEuV*qPtFeX&Ra(BV6xiLbWtC-F+Ixl$U20;cRb*WV|_fW2la<1WYvJKk}2SYhb zZBcSPVTJ6&fRZ<->*4j&7^c;n_xnQV(0cg0#zmi8>rSsF53T?jsRkkHs@rcOYZoWB z&B`RSL(r9qn#y_JmIU#}gl{fE8JXn#yB<9LucfxMfHnW5D zl$s*CeTZKIrHmSa$pCSHi5Wum^xx%l z0Gu&^&eK3b-dO&d?UG>SE{C2kr!2~V{mk(WJb0rXM~n=^ivIlZuO z%-JJ!NMOK(Ufc5TQod0|@;fHBo_3MTLn>NX_m5C7DWAmCXO(%D>hcNLVDcFsHfjO9k6 zi2hjjGU1sv_%Zz#rGApEnXpK4CW&qy{({eL50!V^9mXW_uLlNZF%V)1vMP$_d2?PZ z&+&hLCR@n=$|pcTOzAAlfnT-F`_={f;f9!cXGj9Ji~e)I8Rs5tmm>P3CjJ0+JY*1c zf-F-CbpGKii@dAGOj{@AF&PvgF2$ov^QGYNol41Hj|elt82y*j2ugW*3X zh}7Gf(G`a)KpyYwoOkppk#5E`cZGrp+4!IzD~mP*H8U z!1X8?lmpDO%S9QXc36G@<1tUS~)iD`?cabFK@<39BS?f=3oNh#;Bch};| zGFzhrxHd-e8?lsj{-F|K*jxWwYo^zGHHuvS^u`dY0@-~a=J`12(qv#g;pFf)C`mVM zDsIBOf$o36M3do+=e{~09&}iFv>~y2*Pj|Ll`$VNeYOPwn&ULzc5FKB_qw*8eFkw# zEf2IqB&SfP%o~XQW3#uAM5bRANM=<2OnDfqV4pBDeh8oK0JYz?RSpMlSDnsZoZT8i zY6}JJO&VUgJJdfMV+5~od>bKb)TPBnjW;2?{UEWQ4H;$Q9d=JKr`{z7c)-2xw$=Kap)FJ*va@;E<& zgpIlPcEz*(Wf7{;%c)&L_$8z$*9O=B45&x!)q&bLY+w4^jPqNzrD$#3r48`Nu>&Dw zLCDjA)8}gYsgMYGnOaH4A+8`vUuh~nqKIL00RgF zn7dvE=Oee)W9@NHSsVw%xA5hyz8D)7tFiDiWKGfiCt9G;%dkVyUv4dGNH;pW_dt^S zQitr!0A8q=3rMztE16Eh`5c2)gRXmC7CL5Xl0>#!1}|N!qBB?b>{Z0-uBrApexn8! z3by7Tx*G*aqdxX@`S+hdw(Y#A3+mw#E7OPyC+tl{MK{AnVp1`P2q>oOU6Zp@ml^Nh z>Y4_<7YVjp6L@+%=2><$EaNihtbyI)?|--1RRgTOU4C^}k;g=p>50Xly>}fjh#=rR z-+jGQXsY|CV*Z|ZIL&^#>o4p{`6cfOKhO$fD0;Xef+w<+V&sd1qQJ3o#s}b2VlE#oH1%Tr@0(b>AOe}N|yB&D`*|}E?{l=?6likd4T@t zfHh-#c^4Iwjp(qgbVesE2NO45##qTjrS$%b%u5Cm@lE8vD(3a0sPb)5@XhYp46arhkiD$KU@$8Q;0^uT@+A zIkG9E$9-l>XJ1tjp}9NH+l}NnbL8!IrT0MqLPS(KEvj)b_e$-7Q6Obo(EA-DorF)i zfc#qukRxJ*QWCdlyE1{YfDA-n50-~WLG{{^Xze8UsJvn7Cr-ODR&9Ne?f8b4g((*Y zueQu*niZCs>ynn^b}?n}jh$H+G`ghfQuO}JvKqNc`D8;?ai(aq4r zz(Vdt=+X7v){dI>%$%e9R5GVKCvOu|E5qU%-Lf( zdn!JpmT41_Ko#NE>Snf3;tSh9mD|&p;l3mTq+y^S@B&0xC$;luK6}w^{BBJXb?^;T zFsTYA4kX$hLjZsiNl0iiKBElesBOl0)aH7$fBw7L*iTXH=Pr=72a%D`*ll5!_0KPd zG@tn79P<9G%8(5P=QT}fP~Q^(8>>T~^F`f;NM;(_mzRnAPmo2*@50_AAyUW0Pzb!8 zr)O{9D#vnsW;XYU@u`DfTUx81Y2TpU2Os-|!Lu(Y;t%@) z*+^hbT43EK5f?cu2=r%9h0CLVRAD}6oI2S;(T^YHN9rC2zW@kUv~P4iEpxd1y5LvN zP|Z+vMC|qXycWJrG`tpk5Lw6W1~|ah*Z;iR=emJVZOC{mcS=KI+4|D9nQjk&uLd;k z+@HIkf)+yS#mkp+UzEKj6=O)pN0_c(?6&fXeZB_UMM7hK4U}F~5^op?8HC+6_cJ6L zWAFA#sNc9I*g1Wij=H{AFzC@XsnT$(Q6Zk?J-{y$CcnxPs|rfitIA}|ApSmOj`+du zu`-J2FDWmGdLGDJE?L?8ktN-T*krIEsOBEcWU=q zo?m!v0SSyE3*Ej$k<3Fq+pjr$_*w0JCjhHqiAulmG=zP~?LWL&Z?AaE(dxoA^8Z|^ zQfbkkuJEI3&zmpH^Lc5R8t9Er8G2t@D0|W&iV$y4Q>YJU|AGp@~9KeYvsG z!@igV`!NEQA@E`fO`Yv_VqWYPAm{_WBNaD<;-!7XB17@Qv!y($VGvxsNyA&!_Va!j?k#Eg1ebyshckm@2Q41UiC`P-MW`r=e7VW@Rc% zmuB4;r*fJ#pqYuDIrWlv$E{`TV#}G|~O@*}{q;3jGY7OcYvr_Toe+nV@u;_Q(tZjIj9YyCb$fAU8x zD2U zE3))p(BF+U0`jx(vJCatdFY6#=@=Ug506JSugpc0{i!G!#LMo#6VW$!f1`KhirZ@* z57D3sS0N!rz?4D&fnzS>8A`(viMJSz$R^+B5VC$oRn0xE*{c6a>-4;y{N%ldaCW>9 z=Pk$aSnSMWP(jOGK0~`TN7eW+u|;k3H)$hM6afToCq$h|rfhnaQ)m-4+*lS#Hd)Y) za2lzS=OZl_{dvVAxg#At)hzgtwYf@dPtIXq`QwcZtoU?{bJ9-CX!CFR8li4$rdtcU zBNXb za^kt{YJ!u7v0**#U^Stg=yKa~HEDzXqmUi@F9ycXqxDB_vvTjHd7ThVA`w}z3CbvV zo&Fu}mYAAp7AEuk_5L?FSNH3^0bbfDB6&hV&S4fqwMR&u)KuC~hGdW3BI>`5J57}Bm3;kk! zX1jF6?zLxB*d_NC<}u&u|5Z4eE_hmNcrOiC6NS!pRq;IMKC5TH`62dq{+H_$N@c*Z zPDgGul)68x+~{+^iWxmMyUHRT5G0@H&@{;1N_%nEQi&Fs8&nfdD?rX-b93N9az}e< z-&PV%#UTKO=sZ!s2HU8P(E1lmn%rD!AMGjQ?i-0wvtB?ohQu@Zcv z8wHnP<6bW}n{`1lqS@G{?9ft;0dN(^a|4QcMayYB3%qNP9T4#7$DMi}QbS8<4s6eu zADH?dX8V+azn^ABE@7!STU+T{aKv%)e-=aF$g{q|%4j*xSr!Y4z#~@)L0{vGX84R92WtuqQPJQZat_tFUeU@ljK6d{>URD_Eor zKF917XYDwzn0@(^;L%(wAv9oMeyQ8d zPDeH3_@0ZqZmVwcUu21DCc}qy6^BStJ5+Ln)b;*!K#ywVud8+x@r`Zeh7fNEAMg;0 zXZrOJ@Q#u#Wlb5?!2x`K&ZPw`#;6r16@D6s7l!H3Q%LKY8+^|CNjK>LW7lj=PT?PW zzNi+Eh&k}0lg9@8?`v~q(Bgb)oFt}4%y(iH^_R1s1_i#3_N@_rBnSR-0sysPgFF*M zaFG3VbbT!OQA_ZLcBu75@46nbv|tVCchqj|Ph(aGC*0F;hhr?Wc_UEkaq$=DD4OP2 z60gMY@<<$g%|OPxEi>j&kUAb_lq_I{ngQ`T&6#gtT==eVnZq}cyg2W&rZcsjN5VK8 z=pW3@&u3on_JTM%aYM60r%aib9vf&u9x(MSs_<>qU3mxaQMF~@*3o74*3-FK6 z;?}#fpE||)8d6N=L)im9TJ6}%?mJQslx@1x7vK*B)cuD5QQEDikqc=$Pkj;Ts1pla zFHDN!D3Oc|OH(*Ny(XwIZ z4&u^TT0O0{laH7O!Glz#Q&38JKU4oRx|b1|4$jJAW0_DF`??4LliJSF!4c%hQmz<{ zmr&+y5qFFd4ztYxBZp^)iTVx4^*eFQl*WIxoZX~hZz9c?hlBQ5h1Znt8<$|95cH^< zR90Y^>6vGA5wip9g94}jo0b?# zg{Xr?x<60cF2x-=I#LY(c~sa1xcYvm$%gFY<+~Pq`9N`#WG=ZG>OS~Y#{A$R%@YHmfaUUKO`aHKjEWp^wF0XMn)W8EYc=rd1_bF;N&L~ zp&?_PFEH2L!+n2JDqbpI!?<)M`G=vU4fSCB&ZD`#VE7GMq%1Q^0DqL+#N(}*b?CoY zK}L@|YU2Mm$)XOzn2dubBXdOcKEI8}7y2CuK6HH2)3vZ7-i%-DT@@>CxH}k zOFL9t$qc&cTKP^KH>IKepKAHydWm~*{n*LAqjMyexu%o{4QL(^KE}p%`7$qlF=k9i zy%4ve{Dx|U$d#gxJIi=6lja3Z#x(&0=+bRg#;O%w#?fo(qaTvtKOux5qyi;H5js$v ziEuN_r!R&&tKfH53T+t8V4z<*!w1cpc16XH>2doy zBLL(4gGp58yKdoHd0oqU>iV@GHM`bWg8(u%#H}`S1}30uYu^Q1ZmK<+ z!H(Yrp`gSdLRb^r%DAr-P??^HOGz=UJ`&=8F`wca0AbO9n|haDuWT{7gCGLI!%o6< zWB!^LFy#0B{mI8XyzvXQB{Bj5C4uXGWNCV0mz?nIik=Ud$@df!e`-AB|(Od%k$rw^k#AJKA2k;Q#F6vqXp! z&;RYt{93OjpeY?;-$2g_nW~3Z52i~y|6^n9(vB{g^FIjwU&VzU+}}q#>-0phL~T(H zg9r(MU2WNWtqu0s_IVKK-F`UkU{zb?T!sjhhGxcB!Y5FE{1^LYJCRdi z*E=Rh)>{CMFY&Hq3U%cF0f3g3FSLZ25yqu>vj{e-%X|b1z=qDID6ltsb}DI5gl$bPC~QHY6qd=w)+go-)-t>bAdFqfp90-ak}-ZOPRb{8h<)xguf+N2i*c2< z_6@)&+6<*2e~oG3)bz4p1a6Ou@k4?fye!E<`??`os~)m7mSU8*jJPg!uKGLGd$Zk7y9)2g>+W2084xA;8xQJ;U&=+#{< z_cp|?!1Xfw=Wf2~s(bzzog!O;jMXg=?F+sN@{gI=oFeMQbU8_$@wv+YF z?>@Wz?6a&LOs1s<%rI6rXHR^ZuPpRz!aqMprXNNQT#O1m>lo4^hxf6;?gtPv-@NXO z`406IA9*TbFtT2w0il@Sv|y{@KfMM0IARf~O4E?sfm0fK|51kv(pt4l)yRsPz_EJ{TGC`v#F*UIE}8R{)=)U^%zNvB4tojaGw61Dsc?*kxv2A z%k{F~Oro1p>W^q>4Ls{P{7+HLNN!<#0TE;pv=Rv%YFXlWU@LHz>F3cAIrb+wU-jKAaZ`MWI#u72iwHal1tcVaDMt zmg84-QSEShPdpo5)MU!P@!-w6>RX|L}&n6qvu4}G@zafG{mh$amJPL>o-C+6XBq#S@Dj)T@} ziePe&`)1{W|9&J40j(KbII(tIn68U2*x9fZQvz(5o`XuSp<=% zM35}SjUysr419Q!i2O>yZ{9UBs5x7A9+#Zv01yspq{f*}TG1k(^2#RDha{L;>UD-(2#jfweVFJ3BRD3OF0!&h$~ZLe$u^o*x_g%Ac^5x(blJ&sqgcmGF)P#%*K|># z14s5n$?(KMc;Y;G1zkGc+z*RYa+mxz!fwevc2%dLpW9e5Y4IG-6kDm#pcPoLe%$Y&yMMSO==4kcf?n_c?U)qxRlZUZr@~3{5$)Y)WaC^9SygNNg zU_Y>>#f}E0%6<&6`lnEI9wJofB#UyRu2JTJ_I&DorHQvimHOuOgM74 zd)}2$xTRgrX_{+T@@YDY`J~oxEKz|7__?k+3lpg;#ivg*JCp_4G{DK6hr+;9NcBzeZ$Ww!Qnq9sb&V5}**qpYFspN_FWGY_Jd#&XT> zILII?Q|no|S;9#z44L8QNle#muO7&UMcxWDQcIEuGwQ8J#tVa)U;%wB8(bx+mz}80 z>$1^#hkA-dc<>E3IJpIH>fKnRaZMr&ZEszE%l+MkKa8=xKh=$0l=RWM#8HW>ks4bW z{#!P6Y12!%Q-_5*I1c496@HqgsTpkuz>_Ei6Xv876Dq%LAKN#Z96mY7AgG)nWc>?b1rD5-R=mG~2%z4WF{Q3?OLk0u&DGThXm^QI~ ziyfh=hZg43x%jHermp2Fz@q32|G{1TAxJ9>Vum%e<|W5;yKrTzf8tFw!y`u%8ka-S z$!v>=T1WFq=Wlxu7%w|2(S%EQQi!w*lw!>khZM)nPbW9=Nfk8CVC~BWIFc!%I3_^z z4J}3cyn6O==2q=m@I`l1>ay-|n1@#GMF;0G!Xum1zGo^IL6bpa{~fR@Q0kIvj-{9z zM^goZhXbci!4m2Vo3a`x>ESBAzx;}rUV~WG4X%WzwszV*^oGBE{ZfiJLMX3o6wL>P z>fa&wqJ{I?{B>a2PLnEJZOhSmH9bJtenoiqK?BFAKE>&haX5!FE@@#Zl{j>czJV5+ z-yeUixhEMDaoh@=W2W#secrjYRXImZw@99`n?~MZ$Lb}@qa4D{td|7`s-FS*D6QSA3sOzr$ZeI6P!F-RZ3nr@a=YJ*6zQ; zR*Je{qYM?9#%P$e&L)24z&?G~8EAWBjAb8q)h{iv6j_15(>GRnc%i9maa2##zyx~1 zkiSapLm(oCrN+i%L#h{VOEQdG_K}TB90IP7c6lt;iA~LNSz!B`Ia8Llj&0S1IO^R} zfif|-R5MI7*sYd3Q2>yJypUyK4i?57*hdQ@ZFNW@nj!7gE5G ziv5ofzus{T6fg_=b_6zzAQ(fS4hlRGg}$TWYg3rmCvl_QO79Nmy`ts}m+^b6sBT>8 z!$Srjt;fFkzk4NuKs99D2JazzkFB2r9h*bdl!JE^0U?Tf#OtpJ!xXPQ?Oa;d)<6bQDFFFIaJdTP<21*qW%x>La5wbX zBdo9e+i@7_I%>Me1q@X@!n(Be=DoXW<=yqw;!!yj>;Hrozx-k5*2CH4VA^B>i-n~#Yn742GAn-*<2skCnL9ri%E(-Vbo$)! zEpFlYJRUJ^3j@~zV1+zUu$4RXh(go~vIukbD@a9JjtZJy*KlgEacRH_M z*!lYpd-<-hp7C|qJpeF4eO6#1GZdi|bs2n|Y+Ks|!V9P8F6x>Mq`3Y3bH1n{3Q5?a z;>5-H6*EQ#oa{T>I1hH}G!ssoP`1d%C)h>>#}~7|N=@{>Y|Ge29^;LxAMG)A_THLc6ggi( z6@76^YZ8-d9{H~9EyUOG;C~lh;pWmz1?sqoOd z;+mz5~OU?Oaj7}!S`=0XGMVp=*FqC`RbjY z&EdcbU5%uW*;QCXDb8~{kKsXnqxAFKn{or;ZK~bym38^191L$yzVNIfkq}!Yr-w3+ z)$_`cJ@G^*hSK6{MA|F$?65Od{#Nss#?wQWva!2b zV(=1cIo!rH9$S2eLF)#$^(ox4nHLB#Q=uN;Q2}5kxB!zV?A*qGKSyAG?#*4l`FayTukS$JjU+nFJET z5D+oM4d5YAWz=zSr6x*zT7L^bm8TOZ&Lj0Idz72TF!(+fik9ARah4tmfS%YSZFS!% z_E{d|8CPJ^B*i#i`8a=(4BNPSmKIWCtFhpH?j?}hHkgme^Ug!-*>2}AiVse`YJL}s z3>*9#Wb^IW-(C~YLn?%a9MP!WWjrg64)dUYaESUx!x4Sm;)7#mrwWZZQb+yp7 zIO{d+tK-x}^$sc|5P>SeKzKTw`044QA8KAH#zQAFlMexp7cGSv%nyM#l>~#&P!_!J zIy~liTG^9x?8e{`@FB-eRjiWB^b;h+`mUUnUh=}w5oKLdUcWg%CG1hVy8jOA>ggD% zBuJIPkgydbT*0gCfW?%=)Te++6KcPg-}|wCP8kxLsAtS)iA)a6qs)n&@#}Q+pG*A= zV5GBVrO>GPT9`U&jbKgNC!0(5%bBk8u&#Y_;g`6to(Qtm%tlmZoahgp#b#tZ%7iC^@0Xr_OKxY=;#ip+V+Pig!ia| zTQ7P6np?`o(_ATQITj9^+wp&?f)=$B{;#aZGatS1v+j4#lE92%%TQRJ&Zu;m6EruP-)KmhPa4bD z^q;!q&92|@e15%iglb4aWy4T%l0R_;)V;tt?~SS+4t27c#h>;{opnC8>g`_y=~dHg zYIHHj_3hq#c?_9|w_fqwuG!kiL1IgFE-{y~R7jlz@W<9I9exE~?JRDFm6bJLV;o0x zq@+Z{M=>>gscI)u7(gNQx{YgzyV+iI4$#wdY1nf7il?f5kXl6?IWm3KZg_78C*T0U z@`v5~EMO0Lzw^b=H%4Zb%TdlHuIHY^O(XU!`WqSMSLfo%o1JWQhYLf%Km_#>fVj*h zF-P2Yu->{|uLmQOO|%&Yeq>Xy!$y;J*u=nJuY+2G|o zAHFY5F_M9-JS*>B7-9vr+MwL}%q{Lm#Ao$KsV3oVzmhUI7BDmbJ-R9bJ3qjXBjy*D!RK zycKhV731jxa@+a>itXgi-yCFKPp4DT31h$gl$Ssr?ameuD0`;9=A7KR^l4^b`Z6&p zX|?^^+u@o_pS1<>RF@j&8&xRQ!}EVDo-xu0F8HY4c3@TS zMyVXqj@Pb0YxOT*>e1C0dOk45+qPbH$tm)_#i(FN%mwDwkV1WIwBAONrBxEO$y%G; zt!!c9WBJ>XwgG8#_JBLF%>T=~kqj`c2wm(Bsa$iw4%l>7obs8)>zW*e0qS#r?^L4n zw+no(j&w7K0@sAP9L}w8NT*-l%&tk|I>YN6o|q$MWnWz-rGC)zv3QP$ZFF(Fc$AQ6 z+=cYi9rwJJ$8Wi5j@l=)%!j|#EUq}R{i9|q*pN%TU1mwTi zAB@XLHC87Tm_vQ6ea!y&Tq4!SN|Y`&z2c_*3z*ql=NHfsyR4!!#OA(D6A>}0r9;G8 z(2-Wog#LGN#Q>f^=UBN#YSMQzvg`4a=O2DlpGHaQ* z>mbwC#~1>S*wm)blpU9vFO0x@<>9JjkDpj7M#q37rQSRyc80ow8e_rOFme}v5tbN< zN#CdanDp)ehHJT{VSSasp`%C{7~I`mN4NLbS#$Kcb{liyF48d+r2r)FvQNt8P&!(s z@94p^F*p>I$ER(=kDu;a-tu@>yfPp=h*6AfKic{OUsQxQU1Dr-)m`$6wnuZm zTDpz93!p7c2#;OdHAaN1xey z>mDs0Nz=P`Segn9=vAi-U4I}D42w}D(0vx+>Hqf+cwRJ{nYQ=ydkH}yEM4s1okX>h zr^uI<`c={Q+N|4td}~)@Lzfh0RDKty*Hi2kJS<8_-BmoKcYWrzllLaLv*9NE3p452 z;7;M9*)g0FJ5=R>aQ?85H!FaoJFBa5ZmYinj0B9k7581h3#ThTob;ayh$|#W1RZN^ zHa#-T7!bbgYLi+A*PSojv|u7adaR?Jw%z>x|TzGIOsrQT`@JHrjeAfx$sOqu1p*8&Ao9oM}jPeud1g(9z>6>Z#Ri@sl%JnhX=eq3L>27;F!>-@vP&jR=3S-$R5A* zhv+8WhB#LKsvi-lCLcp(Gs4Ru_fDbtJnPls-}cWo#nINzR7#S|xE=x!umcv45LkZ8 z*-nn8xidjQNq~=3jlw1twCgQz(@By_0wD&uSOK%sV?89}7T@$*RVI@k>pZ=x~^(?-v@93yXeQ41# zHiQo)K#A2%)qoqL>+}!p-jhk4DK$b21@P{*xMVvkI;z%o{qwccd&&mm__ArGo%^|L z&E@T=Fh!I_eZZ~iySLu4*_R!EVCC1P8`30dDw>Umx}VoL!`x z$i_0;+u=#hfb-py0c_YJimheBiQMgn1+3ifug@d?cb?hkY@hi8b_Xzzzrr)szZ7g! zj_qW(KzrMqiD-A+a$}hR;v2Y)|ylu$%eoaBu4Mx5m6FVKpq(=iw1**(zcSz87$%}=Cy%=E< zuTd5&lldzh%noZTr|Lf z_80OnfXFfkg6sx8tjg2xb+Mm#IG*BGN68sy6O;2oa4k>MOtb`50UTRUA$S|=K+hfD zQ+s76!IhH9T0j3@gwx#&ZwnO(!j)-RWU%Em0Ch~Ej@^^O149{7@BZgkoc5O;N#~eI za5+w$Yes(7lW8fmBch-I9^#aM$BRRnI3J^Ry>9v9;c3sGGRJ0AXs3Q(I)t3I=XZXd zJ>O&D#$N3 zZmU?AS%3C@6@!hkSOgBX)CgoHaY4r_ToA?@gcGf*P}lvR^_2~Kw^D&B!3zfkXlw}s z*(+h!sfW*kD^C`vsA0ir=N}IP75FhsY)cHH?>a&MD~Z3m*y=3ZPv5r9AGYWF8NI;s zPq>^v<*m$v9>#H@fgPW1?=$vVc7gU(EvrQM^#^}c%Bl^d z5Y&GU)0~_T6Yw?Nu4jgqWYJ7zERLmS7`1$kt(YbSsB*)lu=R#b`dor1&T8B~`?()G z7-2)JdbeV0qf56pZr;PFnjjgBV7I>)l$Z4wa<4hY?7TxFlz*L@ z&754Yab>Kcy=e~B%=niwAJh@$eG%C0agayFobwbuTqeL2!11%JF{a2g!oF-RNJAlJ z7^BRo->Gnsx2G)e-R=a^LzB#MhqWlAj2S%g*7u%c7O=I8QV>^cnJqKdx@Po>J26$3 z9?KyRRc0S?PABal!Bnotel?Ljyg{$$L7_gHFCInK4#eNXL_dLHu>%8YhvnYQeXsL2 zD;=UKry&}4vb1@4fc$cmE}qwuiZPnO5e@OTc_HS`!c*^=;a$@LhTwH1Xwl}Yv{|iB zL-)26ZO1n`ZOKp9LPvj@sl%5*JPH<}Y|*t27mE*Yz;eD}FOQsjLD%0_f3M54o9!wi zVdz+#Y;v;tPP4q&c!nOso5|@NnZ>f&FiHn^-SvMu6llL?V%n$nfz|QNXwdlRw`FC_Q=O4Fv|q06QZybqbfc!~S(+WXp5$ zCB?q&jWms()a}n+SrOUMnPcT~Y33)pXBIv*q#E^2>YFeqrY*EI`}f}k*w8VER>SviYK1eioJ-o()Y3zu&tnMeqXWf1*mus_TCUt@x?a%~vbgtJ(f(RZn@q*cyLL$2i^QOc>$Y%i zF18x=%WI??wuBTRK=k%1C+JEB!8(Tz9S7WGeOfEq_FBB?eWRC^%jZB19AZn7+Pg?> zurVNbr?J?ipVjLU-IP$49Jtxe+9Bz-yR=$oA?DqaqY0${P1cmwb||kbZKmv+=8LM2 z4QCuu(3JjH@yF%QjvxMV8{NMBV+nemKan6rBEt&lr6w338ONZ)NspA~NHhKaic6}a zWSFeJ0o=`!QE#eANBIM>EF#-N9%CgQXW8lMrF)|j3@3Hwjy~i*8|^9PiDehoXtRWZ zh#3n!U;=~&iMoM0A;W6(Q-aU13&}P7(;)MqP0y8c7x^C7j)(D(A#Kj@)vwc()-J~~ z;bIC)2?Z##h||~R-;m*{&3+KTI1DDQKAZ@y#7=J37ruDE^q&YLHf&X%m3c=Cam#6g z#YCliVm*e-k$+)D6*lD4tiyK9`=AJ4^2>PpuBV4o`dUiFl@_RMfiE_oW^Zrm!)*Gp zY|LRb;yU^>5dIX^AwW0V9WRO?7_z`3!+o1f9nTI|*BZxpTFS-PCMN*$acQlbIXHf( zx#4L$246X1euF4t)tOl_mNfH`79}sHT7La{vsqFjVUWjX@uyTpdu}q$hER?QpiAA8 zg_fqpwo|{p4d}9Wna~fdFZu&jbHISzUM}J`kx6c?Jf(>zEk`N1CnBe@ZCa&`q4oU% zdQ*Jv6GaS9D}HQ;8`WRWP*NOgtuMBp8jOjPKjj2p7-lffLVyb$UU6Xut8An}#lbp` zRd>40XQ|aC&%|Btg;i;6G&o3BR8zo>ky2SDW%)>JYd4ygrk7h@2T$GVPmGOpWWbPXh(5%1-`5)bBT$3NUZItJNBpd zOhI8@8Xra-Z8BSgG)rwzN$c^iXI3Nkjkh<_79stXx}SFjq_xyyFL@u0OHuM@>P$3K zm6G-sYk$ZzBW^o8W#-A5$!(6#nIP|Od9$w6Hgq6g*=-}sg!`D=TAQ_xN9yG&*5!G# z`ct)e-GRU;>k0p02X$=+4+Ezoevk<=YJTr~Ce9o_KH)%30T=hDZs&c}jForekJV?j zikL-=*B0}4)@!M!VDJ5i*PnX$mFvh}@PJm1$YO75826#&bZT62ULsn;5p29i)o|Oub+MtuU#*iH!-*x_B?FJRWkhNVaQ}j^ z;hUMRC`Hc$dMd5nQlkU&yM4CuK6mb(A#%h;g_9Wv1_on_xPT-pxJXOb4>%9g`fo!} zwrXH{&WN_Vngpjriy`|tq9D*&ARz`05}3llXn+8)g>)^2<99Tcgpwujn`S@uO7ys3 zGvXTgI%-zUX%!1YPQ`3C1y~kFsQc4}cX4u|Xwb6vH*2QLYtH2_@4v{$1)ww@h_Myq zZ#zY!kMw`~$LB9Gb+ya&bynq=?|E?~UAM{FOftHEBqLy72ZnMPDiAdv9+2RT z|EiKqk)F(LtQpgp=u5ke6Ts`;S{IYCe|CR;H0e$7EjWan&mr=9G~DI?0G2>$zq*VL z)uGT*FrO*c+eeJhK6v0EKfnR_#_Yd; z)iLO7q=Z`HGyYV>fb1@7nTEu2?U4Ly{BioLb;kxadHG0eB5GvM$L|1A{^P&ZkNFu2 zAX}u#ECYTxp~T)Ed7&>7f1EooxHfW{bI?6q$oN?6-%JD`6p_K&aoP)sug$}Ii=KP; zS+j%M7MZzHS_yvE!T#gE=cm>GZ1UrEgA=A&B(zUNhyeoz^suTc?ZtPJlZWpuer41(+*)H$$pKNGqS~>nK|CXAsIfvcj zI9UK?2w?o{X^?`VK=N=B2N;7l`%(dfLKDjvIc3dVZI6U+5-~2SLpDOhI>TUAl1Rq^ zfCB^GDSFDH&awq5#V=2-V6ykqmT;=}4B>s(4ALV^^<;c)Y*rLml|yAzpjzLV$`ilF zsgRu|S@so&jOnQ!W(rvt3nl*UI7wZ%*Ocic5n)3?8f?~Ou-&3TcC+qx+H6T>1R^hl zHa$Nu%kka1Ke>8>EtYKqN#*l5m@-s{PBTsMW$FQihus%oZu5Sj4FX&=TP_Q-@wbV?`5IY`AqW};yaUE3^ekfCWF(zsJ!`Q4#6A=Xh&`Ga!?`-b~6-@^J+qye{=(f@sz z-%4|2gctzTk(xf(AG@LZE3;2NY;ls75wsJ4&xO(wD8NuqN59@HM&HTSvx~%;{44%b zeDBnqN@T8z4IhP8Q=%h>c0H1b#Q)A7sBawirSNczf1JU?n+7l@&wf)ZeHvPjjKlpS1d$m)=jJtC3EQqC!N~V;6fQPsx*reXye+Z@7ApYi6i?>|V3wA1W(OiKWI=oaMQ!lBO{ieYExmt0Z*RI@L}$D?2SlytL)&@N=t=+t}H6`}*@6{@L+$ zXUY>IhShdYR5~W9=tASb_-`(MZ}UHLD~p?Ed}}gNY61cN3zi-pV_eL?U8gbtY@U%t z*{Ez8t>$1J0jUfzsl-@$d#AqJRTH-TPgWUt8dcuk^bW{`I>;9!j`Kx>)2%x6PXH8Z zQ^nH$sXw}}VSazyK1X!wkSWJFs?zaq<92v~t=|Cv&}h1J>FX&_lo;V=?9eG6=?!aVqP0)N{W=DDFomr1`O}ure)3iYS&3@ zo;PjB+Q%ZO>|q8)E|@lobJBmyUpe&kLoV3unHog2_E4*7q4|g(UgFmQ$(S*Hw>9Ah z$(6~IdN0X##Ct0B2DbjO5CR55k1#p$V0OQri=#kg)vwJqrlpM(_Ukwhq;I6oxjgV? zF6XdXpH-RfCmP~SgVE^ho=fD%27c7APq;f1Pa~f$njIYsxdc_tu&v_)TPEHU`eE-e zYp;wp_l~i@GV6cWjCqUJ*2_x0KpIfLWmKfwR+oq{ulA%{I$a~ zyVhuY$#SR7QDVT6ak1`=!868FuZQ7S7@T$Dv)RnBwPpuPpOp@B4FvY7Z1uHP20)39 z;VE6iJr}OLX4a!^^Y(EZTI9g0{z!oO1Ljw56dd&s9Q7rgb;WCi*5Umhoc3($tbxlj zP0=lsvDSkSC_oJs&SCF?%ya(39bg6B#FWpJ1i(WANTw3lf{lV>wf7_`?h)y>VMVhM z3NQu;fU>8M9+}pAwdbDFbyI35uN_3p&@Fg22?G^`8d~kwJ@1TMy79t+-8vU)tX#RP zs<1ZUGob{G&ci=cf4JwLb;mj2aBH9>YQZBiZMJI2(j@dOgCzPT<2CLOXUyxg$hWnE z7%+&2p~+p*(sze{ve%EL2UV(%q>*3?u-;MMIpmQ*j5lNk2j1HFRNr2m-^|pDmg$$kKt0YrhV+DjQ|Y35=ZQXVl%(laVXKYWxZC(d@1sQWO3w>?w|YS zseh$wU1fz9wFYqTTJTi6I;I07gewD^`xczv`(Exl!hbg#~Xc_jBtV2eGP!MnSg@pJ!S};sd9x`@cQDJ@uIg z4x&1tB~c$B1VAj< z`EN6mv_hs$xXAbtyYG23S7r_#IWO0mTxSp+)=8`Yt|)+8?mTeW@CsMw2aCa5a74vs zs|F7o5T5b_FG{<+lfEg|X$K7u3Z!b{rQEU68}|HJ$CCu4P(Yqxz#>4x+m5@olrV`P zOd?>xB7qo}hT@X$rZ1+C@4B&6lPOn50<4h)5D+*AeI1#<$&<#BW2w`mXK_w5kp9x(f|l#UzghdkXfi}VI zRgwS-3Mu1qy4U-U+CXn-6qr-8y{ZX7lx7j7S<>R3#%WJB*10-EvsleKL%@{Lk!T-U zm^ifm{BiB$I#0dpa1cV^bqCB2?QaAFj1UQupnX7~R!ty7TDvoL2~ zW_yK*7aSpU?PGnp{G~(pWcC_Y>claO})L;-TxtB-w7Bf!E zoOP`UGLrlCKiT*@_dMSk86pWIOw8Nsza#AT)qQc|K_{n+C&q8jG>;5yz3WVkiBJNf zvyfumJ&t_xj7e`Cx)w>AK$+S{1>4330tyu}ipU9AE$qc-9F`bjBmm0J9L*lw{pYC{ zO?dkk^h&6@yxo7V*#zpq+sl83#-BRh%^wkeT5(xr2Lpi=bGh(3-wqUb1C>){tEs99 zKuXPmm!Qc7ej~m4Vcy;tA0AZ#M6Q@r?Jvv;eFZbUy+}OR0Fq+9DqLos`Y|#O> zN1Qc+BnR-MG9q3*RZReRje`UM`d@`w$B5KHEU@Z@fTAoF)a;?LN2eUy-k(x)S{-A4 zk)Iub(F4fMty3A)^5M(EbLB~eEfmxeGcHVyW6SRv&99IFElKU20JgD1&^h?wL4LDR z=gs){U@dT-J)wZ=QuNaF?4S4j&MEyb8qb4ug~3Xe7@XK{uB-#Pu4Rw?@|?A)rr6yj zDX)Q=o_2xgEVu#J$+V>|wj7l@P5-*v5+XJdt z)(d+ko;~EmebVJp!B7n=M7878aXcK1N;wkNa&uyTO*O_hTA=?2p$sHhm~p~_b6Z2h zZp3NY?2v4>s-PeUFKB?Vh-ngYlF#gQIRKzYWyGfS{eAzFCXd8UmQk``rN8YF@<*Vk zD!%{P#W>`vdu8>h%Cnk7H9IU&09>B;mzQV_&&+rT(5u@eSM}94ukOUJXfu)0?rDs| zn0wn31BB=(He~wA{@ODl@uZ+J2#9_&quMEgjDT1nis@&z49at|%T-Y^J0uVgFfl2Z zUt%;KaPAQ>M$Z;wn{B)J;6!cT6nIj>DQuZ%O`QoPw9*c?CX(*6m=8FF^x4h3!MO{L z$OT4%2*8aHygGA~@~YgBO%kG;Tqc-;FN=Z@bxxWb-3@-uU)5KyY675U7#ul#w?m0) zEyQ49cIKxAWbQ8nGifV~a|mV8tE|w% zub=Q9beNxw+icYk&84x7UdE_#t)105vztNajD~bw^ey$|#Cus}Sk7_>v+W=O-~rqR zg>p*Mw<5XZ%#rmPqnSPdLsSAs-ZACP;Ume$EuB?;?W!gKL){~&eYwr=QT^i>!^DFK zQQ3}Ga^>aR`1s#jFd^#+xJ->_XLFMv#$VBZ-hI}-%}V5Ln7$hTV9Olq&G;sB{|Lej zhuN3NW~+*2?=C|qbAsqEh1wW{F?CTcp#+MvMCB>@*IyxhMXDJZvx`lGe$=J-CY%bR zG@@xm(UW~tmlV@iMKcBmr1>T{E)o!}?r20+d*Q%aL4+2E16-1Go1J!1P-x-uKz34M z-iyC^N%t|k#@4_8W$M@4u=jyymh%(i@2d`ZyY71m3Z2=GsRTm7X*@`;7&-)#;Kt}J zG-9)T78yN-te(P_KMq2BK#)qqWe=fdpMpxE2h^B*Ki?8plLr!K7=F&WXP#^i5+LA7 z6Ntl&x2{`Ag-P53J)kAc9)TeS5Geavro6JJKVK|V^|h;#0OV*AIhw-I!)35uv5h5C zkWvOFr@o-A>c+NnYf~-9*P9nd6^$1+LV zb{J+qnN>;fC@)+m^L<)a?lwCX5Q1X1Brf{LO78ti+234u~qTxccG@XVWLPy z(@OyAPF0mdg%3p3>dq=xUowl2cVN~@vml&jL^Z#>nQq4r0HG{Ah9BGW^g;-QF`_xz zo}DH%Z~DTyh|M;ttT}WNzfW!ZR67B%?b?DQgdhn4K^=v` zG6*H6K6wxTWwBHqQ2SQ`UY<2LQqbaNU#6* zFm(em2w2Ff#`X;KvOWF1W?vectt#S)1cru&pzG$=zMue{9)~gMzz*&A~S-7~c*_Wp(xXSW3cBr*0Q}z_gW`7PM=inwBFn;RP;>@bP zZdH1|AgRH?lUZE><@s8+0mSUf4LEC^+KQGBGI##sfwDr)Pe`hT0&pR$E$UyqG0)^n zW`7c@tZ^(@cYM8l9I$O{sOf1y^Sbfi6yDTFZUP`9rHZdO|B;*PdI9cTu=?L8VZq_o zv;U-q#Japwa#`S5AV4OvQ0+LX*7K368hX%M3@ZU}7P#6@NkS`XjL>0|5oUJHeXk$K z$As|k+0V)dpiCSfD4G`w1rRDn$T9Rp*Z2h@cMZO6P{8nzvGEjQ8=EGSr+@%3c_tJ9 z;NV3)5ZB*{Xf&<#HK0WMLTAsQJ#aEP@EZ z>D+b8|9%pW%L9+o1BNw!_XDR2s)u@M5e4&WL)&aSS(+x0rDYVjETJ%c1`Z&AQ*tuB zJ-yJ=)@YlnhQeAcjtS!sRZ9RQNrDGnFpM=aO;fg z0w6DBxK)J}vJ(xe3I_TZS&v~GyQbg>%xiv$DRKqV*8r5|62l0PuKUGxerkz<@aoBA zGstAK&`e&82~?Iua~xOoe57ivtxy!viguo3Spyb0kiJkZ5(2NVV$&+b^n}^rR0T~^ z(0+&kO_$^08XE2j0=^nVskZ#~;EB?Y$Gs!6Ay^j*O-)x{Ie+=h?>a4SCV zRCSM#6Jow3mdw67RgI#B6EOgAxCO3}K1ot^2pL+PHBnVb0May$ z$lh+o4OKCE(QSocmuxaC`i8^)uYLU_kt60Gk6SInjokoJ-0VFL+1+D!9Ak%uBcLhzHZvmV1XHoe}wN(s4Z%N%EN1^~dxxV=oTBrdtJQ}Z}IW?!1BYJRZ| zQ@0MfmF48q?+Tc`-jBosO^ug#HK`+v-G)Gk5VB z0iYBWA=#A-4Zb~M_NA#RNi}fl+G7~4SN93BD4M++Ll(>WDl8xT!=&2*7*z|WDjk5I zgyAP){dfSXgBc8;Pgq-2QnH^fu)PbP|){XYeT4uNB} zhT1y4v97`FOJlR`RFz>}0SmDVhM?qBqL}(5L;;A3L-c0@6I@-`gCGn*%}E6qorR}2*s{*gSN zceh9h&c#-5lH(KbngDmqx7P%kaqZ*Y%j9UP!vTuMAKg3P#|5ZA8Y7vu&? zb3m9hH8?*DX8Y(D=YKNGp8%IC4_Rq`{YeVS$7=+FSjNt|xf@ z&(EW%W=D7rn?ejVW(|8)0s>r_KwEfY)BdmjaYsb8wmg}na+Eu;tf?hx7AN*3X@i$X9J4s*?p$yEr@Du=_cL=VS@2eNmW8V;vOQdL& z21t!5@$5_~IsyRXng_qle(>1Rqs3wOEMio@>eNRO0B{(Z7L+&n&ftJ2%)UzIlZpWV zl#_*GB+icHN^9v}@p-9M?gURq?KzY8GpbQwD0pI1`Cw%why>7no`~@4a+WZP(J3-M%Ba) ztFi7|o+6-_cr?yVM{2tz?j-=CPeoIVHauk!v+IUx<&7(k5V`eetHYpkf00yAA z_w~Dt5i;mc&d*O$<{EqHE69F))NxQKHoj3vi#(?aAO-;_`)|Fdxt}8ep#-ctB76`)cCKaGD?;0%nh1E5OB zBtXY=U8+M-gc22~iBF&ufHxVaS6`1DoxWsvLn9g!d77YZ5;FTT?NDOgjUMl60A5X< z%N*nDcUz$H5rHh0<#Z&u;W0dpUm2HI_0_A|0|!EWjF2OB_LSHn%9FET=B^XUfP#V0 z@2TV8@}9(fOS%OR5SP;ki+&RW+wlUV7VrG!eIqm_Fe}hibGjglray{NP$>TLK;)D_ zy63|U7c-0Aow)Qx@9F%~;9;&|3GNsR4g?r; zTR<|?VvuG;x;3wwM2ggz9S>g?!EP4M-0)8Sv-=*jS29*En%zX~aIBZZl3y)H-kqxP zzSlg5ldHad_T%I7FqxJ^8sm@r@djqdh*h;JT~!kRL!-zXz6GwJV}<5ai)_hZ`cZsB z$w9m;B4@6BrT@vPM^9Rp7Gj{C6r{tdjqT^Ryu1h_jy5P4ZaT1OV~x41|F@#V0Bw__ z{@wWeG57Clb~rotz0!}4s4@fqz5Ascx2`f_9Ej5&^|G(jqQ#1A`tT3Mf4 zX@!Z|kNTg%*6+)I#K{;eq=K7sb~)?yzQ~E%BIQf+yQS#B#Q40@tl@uz&T@a?9r1O2 zbn&2>i{h$f>Q_5Zs?80^zb$ps9$IJS9P~D>Exz{5-$qWsLAe!@VUT1#K|z3^YxIu< z#ON>p!h}hUvGSy@)5R{&c(Y>yDi1=%+T0*HNF7|iw#S$xSJpP9wP#SlQ69RKIh7wI+H*q(fKD&6L``zGaQr>Ne zzC;yOlxhl#I?z`1c!Im^@PAH=1H(CFY1)xNs&2*V<&)N4qKIPnnh9n7_z_8o-NX z|F4Ju$WpP8_onA_#4i_V3OSmBXBSBViXWcjMIpk&yh_BTj+1SZX za27lcVzB@Hr2nt~*u_*vF}A%mR_EXwiU{73;2gC}J}kX4*7g2f>+bg+x#hXscM}`t zZklV%>DcpMzrBkc5+(Tr9EjT-Z_Qk~QTaeIoSMLx|FN?OcQ#HKe4u!4{7WOZI^C|a zt{S^UdB9kVgEvxUbNAD8y#1~zX2-LQD$0i3SookB`_MQ|R{iy>-uto!RVTp{)tlwT zhM)k%fT=AWWdO>;y(KVSyVr5<0J{9;K#D|-0rO(oL7WIcB0+uiZwF@j7S?>-QShMB z5Sy9#QUC^IU!iBDb#Qe9W?)xZavY;ED2mQFsKlsHr1xH2ICI&VeV1zIdH>+KtMPKr z(wZ5rY`_77+a;g$KQl@y?_cM@=UiN5MeBr#bN9X}^4p33tUqbW&5f&@4#`kvY91ah z)BzOqxY-f!P#jqNqW->8&Y68(^Oc6pZwD*w0#|gv_ipVOJ@>>8@so(o3Feo{-5&jF zKV(DU>LRtCjkgT!6?v!mOov>()Al|Y1)xLomlF9<{;fYudsyANHnys&`ss#A9SnxU zAIL%-Gqt5^$<2|ydwPyZ?%-uh>dgb^l^AbK{w-7|IVnZw_8 zUEcUm<3A?;G~8J~T_{N`#nz6GTHv!V)wcJ)?Vk)BvXgOd35@g4t+|R`?|iEFlIZsr zJ~g+Q@*O0eN^I{7T0+){B5OoJDJ548T`bg{>o(-pY?i_R%sw1=>*wH&hHAKby%#+G zr~4z9knbU>j^5%x4o*Or4e^WLU)Ih&;=aV)<9D0i<6vtACIf}K)Q0kz!(CH<*@TER z2BrW2pzoBGaM#Q8XZV7f+;RVOvxlUC%DwL%@p-Z@_^;ai(ehewMnWjifxMoiZgzAH zKk9l44C7$3$oLnYx&GU}CACL!ieQl^&PwS^naFitdHs@uaD=ju(}c3wQEd+n8~~Z< z2sA8Tu|!S&LOZr@>A1`4`kMFP3l8SPHGGz6d8~~B;7U&7S?;J&*UR55zCiYP>)|!` zkGm!CL53!})iPfOA^CiN3gbFj%ntW+8OkTX5Ecfd4xYd}?}7OZp6Ba+?&=Ir0%c)^ zIcWf3G#-Hs4Tm@VW9H9pQ)b`d<06Aun%2FgvCF%Ji)qe>A0+>r+GG` z3)c7=QUXIXz)xY9oisgM(5CNaN*Jcxahp=B(dU1IjU0F4L%zB7UnLrE{?iblAjE*m z$>=(G?Q?-Y-}&s|+U9WIB@gg8uK&?25AE6{YA_nhFv zEq@l%ZqEDPZ_tEcuDx|Mw}d)vg;DGE^-*)3Y2X2fT36z#xuM?H(gw7yvl zbH_hbzpkwvCKp`#cXaDeCjo_yY)vwk**E%taIyT`Nyl_#%ZipWD9UvX>lTL5;w7*e zAqAi2V;q!O@xtm>a;N9)z^cac98p(*)mcz7)`$3a6beEp3}T>En=R+}NW7TaKY9J6 zAJ=vIjoPxI>O^OC!^>B{@%+s1fTjRQ&>(x}y}YEx_m{|3-goNHb`JTaN-alg-YXOa za?Qz9_K=YaraWRi>%k&KSf0;aPQYwpFo&jToNcHDXKa0%+>wyMU9KOA93?6h}9_$Ys z=E>F&YN28OPedr>x_n>h)c93(zhj=(Qk+^JY%)8l|7k;VIXnS|UwrfM`QiIpe%`cs zLdf*pX8%DGOUQkz^Uoc3jk{JtIhK)G_#M@6?@W0#ER<7lif)ob&-%_uL-U=Rg5y|K zv_=+82`Hg(rUH(-XF9&KOkP`R`FZfR6iuiFWQ#0VT2HJs_o%2*5D+hv*?*WX?ZXH^*z;*ou6aZgzkh*2<2PA*VPwHQvdW?Rf@3!4$?xvKpr6ggfF1k&x z7X<*&(>e$UIhveJFTLxu7XNdN*EFo|__{dk78zJ!IqNQr5`Yjenm~M;YFqgSr0Y^! z`j419;hjs4x$Uqmno-teEmsmb^GE8m>>yBSTg9Nap^)m&H5IR7FNnQTBT_U83J@0rwt%8%<<(thMV=XV zQ{$F)ztuW_fTHX#CX%h$M+Iss9RKBbIEA=m@i#fH!HQDUo0067{7ej1h9EqRO zukg=$ukmlHo8c%+Tc6}?)kKK~Rmh=OTi%#DYvBH-?+2b}s~O)5lnt}j?39cY2#8Z5 zx^KxH%UfN4Z}^FSW$jVUjGwjIT>s~hsUMD~&+5OY@yEWqw75PpVWM@`1Z=A$xhlD| zDf=UQqwe{R?~6ljKd8mpKw^M08bgR`lecu5UjO->}Q={vr zy>O>}@HxEP8ezF3`knmozWH^xg*Uafu-i`h+X2^-GCC-sVDz0oSVRZ~K%p@za^uon zncYXOSML~k_OPZS^CK7(2qiiNlscwir^f;SaU%) zq~d-2MgEtSv{XdhjWS_GZf&zQ_m~1u+`L>L*?* zEkc3HI^m^H|K*wb#(5og`Ch3%(K`}ksO6sg0f0jG=G5Wiy3SV~XCFR@j)OqV8?`dE zw_Qb-p_d2N-F9iWJ1BxVh)C>@jfVc^H&YwU=qOsz9#T|lvz z2cvTmbt|snRmpK9H)X%>eyiqu-%yQvhkm4lg0dP6MhB}@_sCKLAm>SDlXLoC)lbM> zx92ye60;LGlu-$RYj-tqrC)mfy4 z-IL3b$E^R^v>(mb?9zNujiGT5U)`xXoul1n9g-z)5hyh(tkZVt_$ecL*tEQjVzZ~GgMekr&QE|Gc7}zX&&M>&gLN8g>rulOEmxXHaN)WT_k{lsrIq*6hRGCE>SLw)gmd#|m3M0#lkzh|<9 z9Gp9Ov@T8K;J|VTE$ZHMZS=U%o6R={RyVY93R@Y38&y+rpNYkUX&T9BLKjHg7K4pwjQsO^rPNs^l9m$;Npg_c?ZKj zVlb9HHIslsb1F!kI&e$FgWPQ%1T&?AJhl^nk>La!wOMw{*R@{;o^H8Vi zr>2`m7LZfrrxIrkJay!Zqml|rib!^D2K>g_myw&YnGtT7Jk{~G_u`uMEno8t1$;!e z#<7+=4Wl7blgQ)_i9Hm$o_})u#Kuld!?3uMwq_=291K`@+Q_&EFNvS*dOdJ`U~@~D zSZX_^?c)#tshZ(J`Pjt$?;rN&)$%-}^n(Y!yHidWjOB(wDRl@Qp6~l$uvNdu`F-&v z|0%AKfY*8p&vrZl10_!y`Sw&-d7S+F(h2dWr=LHr;6o^*L6%)Rco$EGCZIw0F(5+c zymigm!>&^u?*~u!bw%2E*}=fdQ!K;)fsRy1d~@lRp)>bBW!93ck)*yVjb?sgSY}@r zN-6&Ktrx-9GZWe$ob}H@Uu}okF?|}sREpW;gIP7%KD>aRj6ZhIUi0$oa}LNj5HM7f zd8%ldR%Ub%N+aISo(ab@`O3erl<=%d02uSza;|T4_)O=BrlQFsEbGbryH=!Tr>;Hnx`ST@1(Gzu3I=BYpdQY@U9U5u4FVLThO5Wh z^WT!_Q`}9Frzc$C9S*rD!7hKDcNK(Cl%>4fxzF;)a8~Ntqc1!$meP_80kDM|(e@ZWLmmOwT4L1cL26RS2wmvzS-F@UX z=k3}vlP6DCb9ydAKuQs=X1o6W3{8Ls?^?Zjb)9;i@0+z-8h#+Ayn+d5X4$qA0Z?}4 zX=Z%vY3=sdZzmr;sY^GsOkhXiztF~qcSO;XQ4)s_EaJ{lZ*Dv}IL~L)mx@LP0HG27vyZqeqsy^- zc{i+P3Yadq*uTH{w8X+JW00haW&%Z|L2q-8R%CKP)F@BDVanxNG?a#m9zR|THc!)FW;RqOeZ3wAU z`6LuD7!8UfL-rJtPTQ=1D@GKC3k6NuOA1qG1L<*=!16U{9u zh#ip$9mU~tn~w|b?-+DV;$q@BA?0xMB_70J{#9jj6n!sscNytZ`)_Oii|0B`b*MqX zZ+1ukEYia!X&eEB5W{-D=bOfj!6#d;5{phkEm|V;e<1)2P#ByJ)ln|#p;Er+%S8p^ z*xaLaZLDjnHGDolc#a396va{z(UB2^5u88@e1uOq8q}N`5(^$LUls{7in82lGk6)9 z#@L3DgZgiqeoxa9hs!ZQKob7X(5P=y%#^??9MrJl-}2AS#@;)JZ*PBpw`0AT8jPkS z)b{ZR0EH_dGo^32_yhI2+H=AmsES&y6`FD>BtBCD5T`K!gkwRx!|{H$_nOR!HE*?E z9qg%_z$(0bpZpJ%bKWQnhQbh35QlD*QOdwWREH>mWm$j#x~`*KE|3YAZavI7L3hOdw4P4rKU0}JZ6ins$9ItYUN+_WX%zy7FNhncplp&O8ypQ+M zrLV4=g$La~cD@=s!kzR7BFT#K34}jY4GWNDDEL2_|CMeG-2%&dC0bUG5#8d2g5Z-x)!_ z+y?;As6krA7QDOS?S1&~)!fkVUfWSrWkD!oKhf>7D8T9{&&>9ePL7{5{>OFe(sD88 zU`2%Z%3`c6jR61{@NmIL)~sALOZ%PkV#h1~)18Ap4>3l;0X{a%NVfM3#V_3O)!A1c z^==6%)k(}<^!J}E_juiS?2`@{BGP$=F4&F+!7o4xvjw*aV&1@9fpB>+OPh@KoJ6Hc1EQaLXFaM@dw3AGad z+o#!DmmdIM5J+Tc{bA!CoA%V|E4wf28s6-4i8Umr8H|$%)G05PEPc`&*NMi)QhFHsOsl)`a6zTfa`j*D=|_~RNkfI89% zGUDkxbMS)pmv_HP%(w+gsC{3JF$91nD99c({6_AYzHjY$@i&g&dJr)fP}%c2wkB6MUW*!}gJ3|!TGZ)pT=wRv_0LYY$J5{7 zv*4_SZ6~6{fFdN3rzJQwADo8w^X&=Vy44Z@O2J$%wqMt~(t6MCHCx*1Do_6Q{WNw} zZVc5`E*7T8SMuG`3|BPh+Euoo*{X?x5TNYH8`0y||GDlF>4r9O`d|VvQH4>eCv|2A z_^~X1mv;>>N3fO;ueqS~!^o2zmrGfnWsiEa?L0fC7zl;IsbDApbbCRU?IT#da)a50 zw`^YkAqHf&i0FR3^PTs~|2J*w)HMYZi$063`u|UsfBdO+Pk@WI7robVzl-fT@Kj04 zgKRzi(`Ergul(7`wYql9-%h~jJYcWpw*4n#bQOLgjIs5QESsqa1=+dO>3@SVy4hjbP#K=jacKaf zC?T^ex7j|KD=A^2Axst`T!;(peTgW#gW6h-^$b_)0EM-j?CDf ziOsfS(XAzP4S?uK*Tk~j2e18A-&fXsTdphg+uu3!P-dbsaT5cz2)}c)3~QK+#Z*}X|LS+Zinlgz|G+$EvI;f1B7nd_gXm#$?ULg zw$W$n@w%WCa!t;N?%nyf*zEXqCw^~_%>!COAL+`#H-T_Hr?RKk%^&}3Zz51{w}U$w zsniz%C6I&Vw0vUxrpCX}`&hJOG#T(aM%VQpUC{y(S6J_)br~ zy?VDgWOu&QzsIIuF1cXt%~zgtb$O8XLWBzph-+kUurBuN;%R~B8!vHp2bwrdw2L>{ zY+n!|6gsCOHEy_voL~C8>znNFGaK@qdmg;Uhd;CUy+tVPKg5bxjl0bMbkmK}7QcHG zHtVBAWhw^Hk*Xiga%bpwXunR~sxD}xVvv=Ncc2(sXe%EfN_cOhx_X-3^ zAoLz-M0~D=)!1i2*XgW zKSf`Cd%ErL)mMJy&IM0!s7+}Gw6GwUt?(B2k zth;0CZ|c`goXqK>bsDzYp~%(5HDzx8m+xKh+>NyxnzfU!{n}^#q()VAKGq8|gHFr; zjeehd&~t)2;i?ujC%`N(%}6m6olF73z&HvfFqF8W&O10Ni8gTHDM@n)Xwczd9_pYT zohn2t>9DH~jxok@x-e8TVYmaH^2Q=l)tDmd8MN5Me#!lZAqP*$>yxsC=vH z`igZE4iIH0$E+UeyP2UUoeVAcU>t>NR~YkXMcuA;>VCCTp`{Jncs|pUY2PT+lWf!Y z7UFjXHU4E=4_5OEJ6owN)#O7d7W4Kj>(eJ`Q<@^Nc+j5@Pjuv+_6Ty>z;mjw%$WPamdI`i!Ci28ohe_Z)-jd>fu~g%QFJ#A?N3plg+Rs1c*dK z-u=-pTIW>67CEhFH|K^O=FsHCEA`j*Ygv6;*F{q@W@_>{y%y>oOV z%oFcDv9Yn8jkU3D+qP{x8*ZFzY7|X3T+7_zl<9S%m`W#UbA#)W?MPXJm zskd|!H!Gg$c;O-{5bgvD=e+QFV?b?l=#=>d^Pk4s zdp$?Y7Ctoif{la;UsPRU>x5S+O0D{`EyzKmhNaXfs)&@V6J;XG(&q20F~@^(UESyi zer`HSJ5GSe-#TEF*u1sm(%iS?#GBmYO@WHPLmO;(6K3b?oOKOoVrbs|D`i<&#NV2`vM|q# z!Hb_E%ivB^fd$9RU(Gg^SAqw$fG8Ra-+j!OEObYWzzmcmr{~G$1!s;#246761#hiZ z&9#J}N?xT}5EYO?9}1jxoxWDtbj^5Fl`zlu2SXLKn}XXw2~lEU?JLMl5O6<3ez{&yG{mK~h|!eM z9u5Bj0rlaYne*~c@3m~5)M*#dA?wcW{A{_|dBXL>e{H@bb04Ju1r!u82bhWMP(owD z>xt8+O&+7}BRzabPvMAT=s6K?%mB@%MdOgp@9evFfmdGSzlxC%za)vsX2at69jK)~P{M@boS_w+~0R!epMlWbLH0uk~-enR-z<;sCQb}lb~xYLFf zTS|9C&ZXl=`}!QN-9GEuwS08TkRyAK0W>UZpbafM=Z(%~=`bnXR+%tTleu{W68;^>H{Lun#I~=dwQu2yHRr_YA;B<&ps7jDl^>_I)yQ&hM`@AR z;G6E&%Ak$?7Ysze5i{mIKQN9PY4v$4T))u)jyZw^OK8>9IfKrriTUu-FM&L-k+VnL zs{Qz&zY`d%xuQSU;KQJva}fJn0o|ws(Ij|WJGUsXnWcL0;XJlqL*d7LvL5yXA2Vq4 zN&!O8cNBZ|&L1b}ip<5_3`-nAhI#Xy;qj`y1m9o$J)n!igJ`n2kl_Q96R#sFc$7c( zfTW;&g6ur;Fs^ka;`Z<1LEQEbSfYN`b-we*4nqjArFkz$Qr~TXz}y>eBg~%2ZpdP2 z-{Yl9sPIN+6&PtaS?$Ewah*~PTyTZrbl&V(KYEv( zuOp_CSP)qwjpDYiX`g(V?{`G?PD-GrMr2ZML%saWBBmb_07%xt?4V1hIM3SCbY6Uv z?!IkyMgk0ZDziqA|LQW$CPJoQ#>uQ}ITsymygC?{M+k+1h+Ru(B3(%;(IOIn8Y=Wc z?B7@W4*zmKRlk>0{BVPZfVr%Ca^av4TKZFlA3b!4^j`O>ULF3ogdP5v(TMa1pb?!i92T>{5%p=d-EY9(=7_&V`JZUMRGK%{mfbkcr5tpkUnKrI#o#yZ-AV z;Ws|#^QuVU%)clmmV?POKhnE&T9ee#;A?0nyl?91QlF~4Z1en+)p>BynN4PVv_Toa-4{{`v&6|(p*yra=zt0B~&a_Zn(q%!ON!!F$f?87E(wF!W*>d zW|D@2K>5b2@1dtr_D)2TED0I8HI)vh&+`o+Oq}`K+-%71ivL@>L+<_N_YV`0V&-f{ zqdyKWF_H-b0eKk%&e6z(FxXQJ-u*kRO*?1V>g9gORux&@XFLHN3>e|aV37?W<4May z1I%9bw_g$dUR;RNO0Ptu0Jw-o(tKl5V+&eS&+xv`OAUAF^Ud*-SZ`|if3`Q14d~}Q z#CTYJ%Tvch+8H!IEacM32N5bsD5$?sCY3JJzq7LTsR*ZERF))UEH|Xi_A8(m82B|pN#r2%qtDW7Mp?0jx*FL6(XPP?$*Ye&&F zN(9s{`ZL3Mr(Sme3{{>*{#Ktg@BUEw6=O6x1BDRML?Qy?Q_(_K!swWIwW zh^wOZ%*p_C5kbiknxth4xIiZ4{p%+Z)XVY2OHK3QGXwmin!MBgHffI&M9ZZ9ei2#wJl$vbMKSw=_B*f~d@K#!~J<9QyuBYmKzpdVi!?DGNP& zeA~RApk~FwlBYrfkJz$F=0+G}763tJd7jwF7<$r6<8Cp0DI{D={Eij;V(x!!IQ;Px zMA2I~>p(s#$MuEHx%~CDbu|+ZLdl;AIym{D3VSonxhC_!;mgGkdLiJrC3WtE+PniV zfA6$s6C#y`Gpx_fMKSr4gb)mphM%x zeN0L1D@rapS3@lj@!`cfN^f!l(XVun!ka@eHv7+ye-=yBvbra`EntXf`;(UtmCeW< zwnZTz?61Uq-=5af(lzE*U1B@7nAcM3qB83m2m6kL0l7i21FA|12*FkFAm^S=VkakI zeHCoT*T0bRRP1h8NO}3Z$(b-90D|E1*xml~cLeQCEb^+U)2O~D-7k}T_61ePC>*2y zyNEPr_;6s@^jl-yxoc>{c|uYdiaMHUX`RLwyKy;P+w+N0T*~P&9F6Vq!Q#(Oo`c@7 zX_z_uy)o9wB`Nbo4jEt5!t&_GC>G((p!^OzP$h10tCaR1}Q3 z!XME9n1hFIB<7^ipBi|)TH0T;{jW~f zi>Hh%P^p-EJ&j%8S4Le;x8VyJI7o?+Zhn>EcE5~ro9gHWvb0;v4%Cy8T4woTmih&e zv0`D@s{IAie;6xXZ;J~2^zEW2u<@S0ff@=swPYL=s)P#Nr9V!;xk+Wlynpw*JWx(e zskbU#WPi;ccBVxD1VN81rK|+>27hB~bayBXt8DA6yV*CAAHB#H1floF2AKr_0nEA5 zuqOIUH7e+fb-s;pb8|*~-bwBgo9~G7l)uMhv6zx6R(BLO}!F-Qc)nJqS6s zr%()BnOExLjg2jG7%6KQ9Iar={r}L=(0)7gZ2};};&}>w_9^ZHK)&%GxeDzNMI1~S za<5Q1a}=Wtu;P?g6VInf|N74%vB=|`7j7-RV82^<3Lh?D!gyIi7$XQB>PP+B_>lc- zF2l1AcE)&l1=-`O9`MBWNO}HgpW9l<{>$k+G#7t=><$;@a1uEnV;m;R^;3V&PDP1pNN9D)=+lc^OHKO8HPQhrfHY2@SW^R!Ln{j9RD_~Bqr6cPL{ zKhNu>@h^37EaC)<>mc0&k>)?*ksUXe83eD<-d>{Zr)2it3q6nYQ{a5`9wM5%99e{3 zsMs&_1eWYx&|zcf{-Lp+&g z-0ctuqiXz>jK_9)&ez<(xYpVw^tIolaurxLSE90ZxWX7M7C)|IpL#HKU@5UU^oqsu#~}uu)V;btw>{=CTp_(ai+H z`24j*Y~+2n=f4nNdgV~_`nkQ`4bq^(k{ivXA~+IFWIN4D8Lh7feW!qlw9vf{pqpF~ z<(Fw0S$U6Vd&TW=m~TWtt{6zKG))3xF@UB0txC_G)JhgXv|b<1#!~K&=C|=a^KXuP z!V>r|>pOwvP>xsF8*`VQ})j&_pG#~b+M0~5ghjz3DD{{lkT<$?!cfK4LFrNLJQ7=d|s zjhaQn(zT_ytzi+#qWZ!_#E4?*y7KPe+fQ~z%!jkqNubso-q4Rg)RU1To(klB_K=rkF{>dFQL@ToIjR1T&_Z~O%A4 zC;v+|U0sjZCELwfwuu5B9p^E40Ph9tZy4_?kRn$5DJDteL7No~Kq*1Fcs${!I=+C( z^Ar=HZi~sL)#&+ad3uTb-qq%|adUH$&Q3#Rslerx#5Q=AEZ9^-b@?pW@=(P3 zKKqN8x0iQy-}_I+K{q`Z>&|jG*oZ@j1|bzhsGe5*^@Gu(z$j0?AI$<_>4iZ6`M&}fbN3nclM0-=(*57Z zpP09$cwBpiw7GErly#tJS!GeN{00ZwQ$E)XO8Ptc)qW$~uy%CN93D`@%5V(olQW5f z)@El^=G4Hw6WH?s2+wgNmS=goM<-a?P*CaJ5pMnNVpd46 zKN*b9ncsME4DV2U*HY;b^PgX7IqAm)T)Z^)`~Xt$cG@0`1I+iV4~6wwBV=qg10XG2 z6uuGKcs_;d)WcAC>fjGls+n;N)lTFf z@L89g-*0x4ge!Mb`3yxrlr|v&SRi?zKIxIZoi~T3Q2HK|l0XvJKboU9rWhD&1HS;Y zqXdxMaaN1ra-nCn6GsO#JD=tuB%8Beg17q<{x!nRfyS9XYdhGF?ZtDaSs{|lVq?}* zDr4IPVOX_i5s6Ll7F?1U)q_b^c7hQ68pt&@Y%s?FwUplHI6V#SodG@W1;plqtZ~sn z^iJU40<@!L>2+N`4-pNd<((;!GP$4)yLS9>jAa0G3C3yt_t74Aaiu$wFWQznryT&@ETlh%lyfy#z^pGO~fc3eL`#QxSiZhu-w>pLbmq!c`vwUPbE z5qS=jfQBDRdpn`traiE^{wHk+5fS)cHra3IR{dyJcv^e}J%HZP4wl2z#IUD*3@`Wy z7QP;JR0r<=2JRvmU@u8$k-?EX7IpcH9~}}p_f!#8RowA-8x^MZS^eP`}*aj&|&$ zf*4G3(dZIFW%OMwCbww8MG^nc@J=+@1J0ty3YEInMJ!&_zh-Q3=6#*6Cb?^Eo)U603G{58n)+Q!Hk3ToTNjC_c0%D-JSPDdeCVuUX)IjDs zV%MH}oVLY@UKv0-RF##W`XE0Jdx-SaWGTfG$!T!YV$8Ca>MVgf&=vX3*j?52nEOhy}p7K9phUk(^D z=62+Jpa+ORfz%>*uP24W-SpeFWs8>)3qZPjg}N%5|Kl~E0J*opPiyQF)+vNU8CDB*wlwa3s&N5Zz)NXMHu$<$-qPG+!4rEx&l}mnG3v+Y^8v(mF(j>N^DJ#ugCG782 z@U}~vggU+qnEoBiDi?vM+oE=Jm8g#Fk2$E_`!)JMcpn7eD_X#CD|M+|Jb1iPd4cjt zSkN`y($>g^5$)mDL>ku&twqUPNY?4PJlr49Myr$#x>Bht3AD6)|BDmW{V?zg2zjt2 zTQfGm6ow#xfgC9@`+@dV=k#Hdj9gshhE-EPJ?Ba7M}tDU~`)(JA*M>5G_LE zvLl-A(d|E9sI=T@$F9<5OH9z(AN4#M0_=zQJPG*PUzI0UAXh&ArL&ZY&*X_nGtW(I zwW!X_0qfJfPiSyC5!cuP%8jEtn|@WkQtO6#hRf|u zc3q)06h%`d(Ei@5=7U_2UCT>+Bk1@~o?y+IQz|faikuS&aW*7H$ zL5aO3AbdmzQ{sFAFmix(taKt6HcM3{R{r*vcL=`%s;p+mrdJtzFTd%e-RMK*Uk1XM zN!Qgr3ssV-M%9~*N}_fPvGn87GteZ}+@)Rz6wKs3OE}-K=$HaCnMD79-wd8zZKu`X z4+OC%`Rj&K%eziYb>0~BpGWu&IYDYBG5ybZlA=jU?XKCDIT3wUUI84v#CWizmcTzu zQqIoISk%NEqkP!l^CeKM`ZEaeq7#cohBu=Bn}~uFuF_&*>ZRl_Y=v@a6 zBB7;&BxIT^DFC1dt)3QakkZ3~?$PSMMHt7<78zT5;}4O;`U>CY0&l#aoMJo z$+KyXJrV(+iHS_@8@0|a{x>MnYfx}KN`EB4Q0`Lc!ofzB!F_^U$q&(>Inf2v@1GC? z2qF_j1W{vv`R_^OgEM=8C!s5sn~DZz~E?h z?b$Sv4wksUOEUGyk<2X{CVgnI3q##~TkZB*6$t5He+*jMYG@zTXpz3-YlG8c_;a)4 zZyl%9`+7boMyx_wgp%bU0)oauk*bjHjgcTrILG>@^>Wzi`WYL#wSuuWP0!l^Zl;3= zsfHpA4IkqFt>rnhJ>TK@-w7RhcWgoc01p*;-+IWmw6cig{D9U~Wfqu^u#wTqQ%}-1 zx(p8v9b7Ow$%g-4_t>=dWpwdLH;Qux{p~E+>~+{OVCc3%g5BMt%Wwh>I>}#+Wu54w zr@ifo<{5P6;|lYM8YJ-fyAn;5%A~?|K73Tys#RE+ zMoRliQb1I_Sd|LVxM_Kn6!qV#Z%&10##9^U{QNTOj184BtamwhGQR9O`4W#Fs^a7d zk&40b6Cyl@MA2b&ZTqhqse5}W=9y*;!VJ`M~ z8EG=)aqkEpY&i)*NpfbS6o)>oz=_nf_|M&z>Hjyi9KL$ZBSIbfI$p~`E?tT_7tsMnZfGh?gNZka-9IMDdN z`H!`WoESM+oTQiHkNIEOpCGZ0*QQww7+)t9=)v+$BqOU6DJ6HJfo zZS|S%U+@7Im=A-V4+F&?V{AGDy+*id$ho2`2}UqBjf$Z-F1LvJbtI#}PHIE&$AA9o zDzrS7tBuNE$wFmVrk+&^8s0AsIL+b;d#sQVWbBj~b|U0d^@vj+hTJ4jJwG}z)Oek?TfkFNC> z3l_>sM;VeNhOK9QP)4C1o59=*qQc;C4Y3^27vuku8|i=$WFq3n$;2z%P=maf>%!o` z{7iL_{K)N;6>}3dvvTU~yv`tW_(#*7-;jWD;JR}Xa$T~k2|0)WhX5RvuY0zas~gdV zHIVH8rAz+xnEV_k)Bkoy>>=erl!_q%xRDB&Z?=1T@|cI`;(p_3sYbwZMd?cZzypol zCAD3RJff5bodGNZXvpY*))T4QK*#0Z;eY8ydX3tW9;8hTK>!VtS&`t zDl?Hl0ZfLNNk`3Kgl0!vaF%0$WlbmA7+UH0n?_X0`>zZ%+h9nF2JTVQ0m~;>)G0 z6?L52GnIP)faqXvB8@Zug2NEw>J0k9`3SmVv2iulNP}yV2v`4;N3}{Dj>%%Kp3(I) zFve04P86QGWd7Hlfe^=o>ZRV^?_r9;>?mK<<`fJ@qPJY;33T6v1`1HOD73U(RsxTl z8`ksZeo~uebZEH214XZiJ7vH7jZ3(=K@s5B9ehMzgkXg0xV8>gx3bQ!q8P0GgV6G7NnCK1!8nlFb?)CDRb5xWMQY$xB7a?)}=XO zO2IUkCNqTeBBkPV@w*4Ps}5)?jTi#+@dE+_1)r$!i^^UO$Z%!jZ@bpIEB2){QO zEc9mytj;k{o7cr~+Z6*Bh&`6v^|7j7i0xLv-ce8OpZ;WBrw$$nqn_hxs=!Jg6S_^k zN4=_B^&6R`0RHaoz?ok;`5cfxEvC!w2!|$haaN|=0wE;3ZB#KZxJA;tbTKe;kV_v8 zoSqe080mm2uEVDKNCq_379542eIGI5gr37^DbR$5!H;~4w!q4I;))_g15Ue3%S7^r zqgdsR3TjN0g7>>mkN^e5`ilNv%BWXR!#~2<4VbkPLI)84bKruomxiZcA5Wg#s?QP&4x7$;jPt9t#}I z1J}HOf%i3b>S^h9Oc<;ar@{3CK8ex7?|^p-qId8{83)AG#e@EltUew^`(>YI*UQ00I72e3?){-nu@8zTx9R3>7Vy0a6c^Fh#Z?`Xg#McdxG@ z!7|1po7WA-DPwp8X@8kQG`zIJmYZHm$M5J4>;>gSWO8lCg>zYZ$%^$m(G^Qz<%KXO zqXYD#n)g2nDRqAiL*1kCyW)T7(oQ65kt67_9WF|w0RkTW);4<_Q~1gJ@KtbAJ6Qa% zz1;jgwP(?IdDZq}%yW+v3X-!nlEu9m+$P|LdnRpx?LDBDPiCt{oo|y+`;2%?x$dy{ z>1X=l`uYr9+--kG%m9$jK71_f>;;{jh-a4<0XPu{ZN>If6SmpmMCMEI%kZFrk_~B> z6y7Iq^-x%Je!%+T;Er&q{W|zex;M2E`pSlvhbB&WU*)^PPT3D2RS`C8qYgH-ie#M7Ub(_h*IOKU_*)JBQ;mSXs=+^6tPn=5ps>qO z+)ej)xsNN$JM&8V`UJegM*>p&Ghc86eVNIGoY9TbF};Yh4u(aasd&dbaPa8lE_HL7 z^i>U+x4!PBk}R&zk8BQ!Ypuq2RxxaWzKrnQ+{N3;v@q(F(FC=SB{DwlW?$htb_ zT@`&~(7?qoF*Sq4jyi#;1a;gGsa&dTiAeet?Sq|mKF#>Na%wcu(7ZDMKo8lVVTDK% z<=hQ7k~Vvs8+ODXSLouqqZi7oIa$!xp`}XdIC|;Htsg0B@F}A%=NDW;{0@ z1rUvlNNluVxcuYWvM5f>A+EO}VCo`|i=)|JrGBcsPnR}`>&&%F8PLb%k5+kFJ&?IJ zN3iFPLe^CvBH}?8d`n5mw=@HUhPysU6H&US z@-{VWxus(Nfot8O(Q|jh^6fHvTRc)aVt|3{08XR#-!@*>Rt6roRQ>rGH7?k-*CzA1 zr6_5m`TDd<|E( z&-!m4Lh*DNJuO_Se@6&t6!BH;r3*;ZKI5sL@;U39&>al6r#ZoW}rhP9Lwbl}%lnEGS_Y!3PcQq}a-H~JYGeUwri7{`lEsX#o6SFnhVl)z1q`6UiRdMKFd{!E zy$P2?Q+f7u9k22>o2~0Qcv%*(M2h}2d4g-Afy)Ah!U)|!4W4_p(($Q#rr`v_l-IGa zps~GRTqH}v<`i6N@KjH4wWDD#K7>RstHwd%SsNzP@U8zXAO{pckYQu<;kw7{GMkCU z1pz{sdXpm!uAZI#-6k))>@aP~PL}kBw?PFzIx+ls(?n)Gz67<^Z9ku!q+$CSUf7ZG zKM1O^d3&qFd5c$5CL-#mdDWoM%EDJ4s=40M_g6Jl&$4Andi#)p4mP97V`N`pbJ$O* zIMm@kd4QcSguJIL7&ib1cbz@fihykFv{hG6t~ON&(9sQH&vmA`I=|*tdwnwf;22!E z%%K>(NGy!zB^u2aaPi~t`MqYWhX)FY{LKUTc|2`XFSp@Et)0GUGEX!1%`Ukrp+M-= zeR`0Yr;9TtUUMNqgE*GU4nQ6aCX%THtXD<%vfE858!=sPbKtWqqheP|bR}ohbWjmk zybW`2@NVb)G|3b!Gdbc2hQcNgdQ2aCuSUFDoO=ISWG07KnNB~aLVFk$N>!`!v%pKx zr>8ZjVJA@LKMtdl2gC#zgJMG*?dJ$e$_FtG-h>^~NQge2;sVDVdGK4SoowfP@+{c3 zH|Yfdg}#ofj{T?Hq1N^Myk?KTPtcSgu?u=~BvU{E-*}dcI$-MsRNdVfL57oRY1?Wa zFlPAJWO#8YzATbLD!lj#_C2ku!pTiF-(uJiAQq!w3hd7!5iBssC4uUpLB^`8XaXN@ znqSTp>tBW+4xPL<_eRQvG0Lj17Y2VoA-%Mvx-oCVpY#t-t@7MaHk@e%EX=(I97m z#bxarixMZ$H490xx80~Jbz#e^Z1k1L*Y|bW9HqPQ31AY54i!%gAijvf0i*cGw{_oF zo+FdVYiSI^SuAwGi1&bpcVM25&8G7*4QTiIQ~BvoH2)Fak7Tu#?cu8GpOqL0C^#Pf zawdicNBb+CSLPZ2bXW4Aum8gP=tV_5)3O6$R6*3R?;u;vZ4Hd#?(f9L;v5_pVFcNnmh7 z0uTxZY(@@aQ&&L8Ll77ldnJg|FgO&i-H_a%n%0qXG}`iC;Js7t9K_ePhsH=a20y}+ zwaxn2bQrSWwf7)vgdav*j6|(0ZMHTsLqzX?vv<9v#%^z`xOq;nnpJGjQ~eYUiJ4r+OE7cAFSY`2v3TRLE}@{PND}WD#Bi6;_C^k#;RcirL(42HsDv zr$F3LFj_?S5v@BIgQi;mr~QRZ;dun0BYn)P8@xV}gJT-caHo!%mg63N3L^;3u(34R z@P7BJy@_IVhxvd-D;y(YJE`)eSpM!9X2?Zq^@~72$QxwAx&^Qxeb+hbJcUhx0r6x? zSb#8;A#A{*vlnr|)4yt4Yg)eFsQ3(!oxN3w#Vv4r{7lcc48pGv@Scz?l=SJz)VCQV ziQWWff7@^9UsB%I*jwRhQOZM1!TgubOj-uLT}2oigrSbfIc)Q-!yi&wdN z{)A1Ui|=vXxEU(oLlho8e1qTEK7-TwGipWYPkmjhxf((*P+(HRp<$2`C}ysQy5~os z20upI=zS7MuSlX};2Hk)*%zLeY@9-`31ehZodG$PV4G5^pP zcEg}q$&rMS)OOBeM4(%#p2n}=++#0MOU1(N!Jb0MROK2_Y@EM{<6mPP{-aoJh>siC#D zJKXcd#J@Tkc$43dQzZNB`x#XfkRsjle2uEW(TI|?%XEa5#!`$&fOlbH%ZS-puGbzjHIQy{g#N~FI&Yip3Ws}+cvl2Zk zq5&fjcGX4vb-T>Plbx@_koc>qJN@z?a4*x*U1Hi6iqzrQv-?3N35M~2JO;cIQZ zXH_;PHH>XOpImf!^Uf#sg@#oFQqw9}Bu$v2C32yuN#2nTgeLkr>=c& z^ec9sA=cx y%g@HoRZhN1-;QZ+h>JAS&EJZe8${qZHU7Tb?+o@w`dEH^F7(Z48vcWRMH$z%l9$J*-JM;STV!DDcAbx3u~?Z_ zuuhhB;KTonAg`aRG;MD; zprkAX@0PK@>|_7Ml-+h(D&Ir#YKbt>FQC_q{N`7d9Fx-;cNYm2`fb1#@e z-?QNBs6;n**+EUbNOIv&iT2L^YqPBm*9X7u%pC@*qGqp)mr#w?O^g>&0mRtn?}{Td z#DQu*^_%yt_@LdBPwHF7pT>bf!i5kLsWs4;3W*E5m)73v-YXFdh>%bM;6Qq(F8|_< z!1LSXL8q^+Xj4R$UU~aJ>Jms*!5vUrw=T9w&dtOAfv>$$~L2#mP^*MKPU}kZ^4|4a8O-aZmUY4HTSWHm@CtEs)>PegH}hS zu6@VEeUKtBrW)s(6oDA+Z*K1KsOSm&f$_`nebj87#|CrG7QC>+AWWjT%vjg5y(2~o zXk7cX0>`!4MP7DtUPI8CHDaCk`ghgQ3~8Y>05Dxh@@vm10}8|Cz5PaQ3U^ND4k{q; zcDoJMShRA1tw0N2t&tx`)1Zy@9_&hdCse72nDP9A0C*vo*9yzR&;8)HgB#qH<+IaV z1g;bmXqBg^ByK8>tqj>sG$+t43GUf>75^AK-}RdxfzFy^Is4JU#-3yCwf>vnE8Hf# zDbPx_h_65GZ9BDaM#$rNx>P!jrk*lh?u zW4Vrm78=&`=4&rN7HZ0#4RV4n7gxJuJ&BQW{uCXj>kR5^OqLCQaaK*U0KntSX=Eou zBVhs3;@z>J9ufelBh|HpT3E^1QKu-+L)Nw5aUD1>2!Dk zHu^A`xnlil?%@xIg@vBQu-}C``;@ZZ~xkWLF?=wdcPN;ftcPX5Z& zQ*tymGmwpY+^yof_|{JA*y zs$>FMtPEQW>Go^)oyv`{*Z@O3!AJS#z(_%_M!vzme0|Ge$Va`#KA+AQ2|6+cnL5c< zwRr}V7{0tpA`xN6J--CF!Lk?TNcf28LV;AtYg58cGiFpPh=%feJm`^dU<#Ul%cqm( z@CN1Q`2&+YH-aI6=?~%{+;87kJKOifulRBpRa}IPVQ}VwiMo+t=+B8q2-g!~;>oN#2nI9q-4u>VYa&*(^uiCM% zRc$S{opIK7@+!Od8ruufwFPP~YO-pLFIr2%B|~f1;8gu@_?Nm1YVW;}!)pN_fzyrJ z8Mcwmsr~1$=&7h}o9g~4H}UodooqNs&eUN`Jm_HxZpkx(OD^rX*@!?H(_epi8ND(d zgZsBI7~-|vub zA!icp`rsy?R<7h2&O#7^=5KtyKpt_+{SS05wM|kt7JIw2u|`K{L_)=m9)0%PGT+T^ zHJkVresm%4QJbaF*`;DN%8Lm_ffA8XhKwjL@e<-Z?T%;Q$2PAk^kH zm?I9e4zNG@+3q1db`-sk>%lPoJwiZc^gm8q{L9G+#n>BY?xXcCK=`g~LGL~6n(VH7 z08<^U-Mz^5x!AFCXER2EWk=Of)eZMXhV-iZ#kUS+mcefLyj3~S2M)cgz#sVP;{EyW z7{8JKkyjBL@#$Da6+725Gqy^cOB?qYfSmKZG57Y}G5r$9S}}Cdhx=Z#YgOspY;8k# z1+TCvP)y%gc~pvkN%+>ZJrpu-6kWH0(rgJ?pv)RTGS&+c_dHBUSY_2>{P?8;WX&8I zL#fmG^bX3iGK+WQ4ZeZnvg0@|=Zu4MvJjX-KYf62Jcy|SY2Fe4@lvakWX-NS*XBPU z9i#5WuKw@3+~R_Oj@AuDh!VD^Fq50(A=<%nM?MiV?ka!U3qHV85*kp;)B&I9dp832 z)ag*Zm-1Jiy(XJak+D)Hniqx??Zh%z+sNF$#b;Bs6B80HS9zmhBITh7E1BlN`yRms zKOy|g#!l&YDyFM!jptKDvC(mH(qFy@5DOZeSJJ{7&(Zaf8dbga#pjKv8O#*pLDfyR zDaUcU17&@<{gnL$+p*$N&wT0#P|N!P7sW8(U=u)J#=_Q6lB}cf8g*uLSq=G1aIV{g z-v+>O6S&3aBk|nn*d(jN?i|$I7~3_F9meiycXy0we`23fT<3>=8f_{frC((@ zta4(9tvflSHilX}JAvOF_|um47mwXSv?EF*#@CNvM~9ysAnKdW0z2b$W5Gzkdwhol z9iEqGWiy&JDzS<4N^CFy2Z=-Sy7E#Na;3M`Zcg9XnH;KWhU+1}(x1FEKvwB-#`0f< zuK2eVVt!4RFQ}T1t8U+H!Vo>{=h%WRd?M|rR}F4|xTuY8ikahb<>HZ*;Hv|S0l)Ql zOWe%&&Gzt9w%9fM()hT6h(7G$d2&ALZ1gsht&Cy@c@kN1<+@x&W?^$pShrL#9_^z_0={rN+U8Y&d|j zWmaMe*F&y_(S4`)?lH3&*_AyM=lsP{Z87Ofc}3Gq=i!dux=(sqJpf=tjid={);*|xAd1aDmYR+5!h zl{nZ?YPQLF1X&CRS){n;kyX117B&B1B}yN zWr@@FUZQEakC8IaNV18_g@tzp;{Y5=(eY1t6R!N$bw_87=uCFpAY{Cuq)FIXPAaLX zHQ*V6!eg)n4_Q~%eaox)!gT8)`?D4)8mw;p6N4K9j2M!|8|23F!+Lc}@1|k=`4}UX z*+BN$n;D)6Ct>2_WPQr}Gn=RGNs%>^!PdD(TjQKE36RvC?X*^*U-eb9IR=TrIqgLYR}ux5w#)KShqzj^s$ddUs8^s@xf0bi9r@cC7W~&D7naNRELiRVhGwF zUFDX`Y~+&J{*t_JP5v?Y_Gt#JpDH}hK1LhsL1NbLG% z_3t^AN0YRPvJ>_Q!(Y)cWpBZ%WguWuh1xmuP=Okyx)iM~*G2C7Y~ zps?<__!JXU6Xr*(yNG3RK2b098(9bf+M$O^BtQ5KUQeHc>RM%ENjG@YYVup_fDnT_ z@~2rIRE*N?`sWqy7jCOD=pHAeScPQr%Is&%?HKV4oC0{CVx0&9gPxvqV@=np*86{x z2JJ6~6&bVQvs1dfaq6DXmBVgtmIL`S_1tq17u17YJiQW0EibIV|Ek5DXoD(b%d&kn z{XRnN=^qn(9udH$O$_dhf}p%({A;XOz}7p+l+3O<0}d>Abi5Q=r4rNbU~#})bP?@p z+-Iw;*s4?5P3vHg&J9}8T`<}SajoG+IzO)Fx%>Brw`tO>+1ac7=&7XK{;dQCsszyv z-Fnm*{+aJxW$J{HIB~Q9D*7sO-9yJXIqz0g=f(}LeR72?Np?b%M|vvwHVRKIDyGyU z%Gmz_l0a?0AVn*Lidf)oa&PMEU5^z)X~T*M9J>%kpxG4~pVoIz;V1n+VUzUEUNxo( zL@3mdI-`cvp^8)?;PA4XSjq};73;nedX2j?eMSEfoBo`yOy`*uGh(qLu%R9(p040r z@56Oh6p<$tqz-blV79Vh!6r%~x`2z31}GbiwT%}G+;VYV!bQ2_&pfm}sW ziJ#E*NaAPh=k5EW*$>zZSF)OfRGYX#A)2=^JGP_?86de$)HtPyRTGHzAP{r2m+PuTF? z$i$9yh9rY*ZL4fOCp!Tf^3o9sLMRAf80s(r5W=?o|64tIV*$JDK;X@~<2!GOAI=yJ z!fCdmf2VAGok^BLkOZ(gzkFQ!XmV5Yhtp0ahA?K_ZJ#cf!@xcnc{Wr|XS5a6DJKk3 zMZO`qF?DkHZI#!$o~rfK#7ZcZ0;qsU>|gl1X_kbb5QsL(-W}-;XRkGW>VK;KLMh@F z%jos6*aZj}bcbpr=M3Dh-yFGN%KnpMHVDZKim2SdGuceoAUg**~x+P*$bgC0kkz9>v3>Eldh>Ht0 zfr>$)B#4~G5pKvf9)1C=v*~RR24JW;isF*BNOSkYvE#dLSa9RiUI%p-HRyuK*%b<% z1%~^ke;#R;9Ik1|1h?Yj`;D%;;*Z4d2oL)&wk4b%z-nqVY9T|x^5WQo%2(9y z&%UT7lSL`Wfr|lPJ8A#`K$bCxfTKIIt|9*m?hNO1;qN+oeYG4N?s_>!HY;D6;rDXu zA1OznIAlZd6f&fmB{h$>DVs|!^-Xmbor-7RZSCbj&MqkoAZnMvj%+xxIqgVS8yj_> z!{wbXq@)QXMk=M8)616x!qXv7&FGpBhgPv-Age?!YQ1vNjq`5L8@ZB4D369gWfKG_ zB|X^iUmsL9|7_mZJ<-6ZTl@(CN(?Br0@VYBq*|wU%kI(=p^jT?%*gdbDmuC*EttVP zRW91)TiWq0@w@7kxKcPF^HneHwuzCBZntBNHvnCji4|NelH9(Ih8KU+k|ZcY zxum1o8s1HiVXHb@pGv5wq#yR2MQ;elCiPa6rma7+!7Wom)MpsKU^zi9h;fKF>Q8Cs=AP zZfws~j5f1XeWI=m$kHS{#N~PUhwpu_;f@*C zd$SedsCbzO1z`k+V4xJrqH7{YZMkyaYo@Puss1cuEa$NATEUH^mLP<{PdP&?k%Dv0@$IuK zH`V_o*wH**G$hOT8Z8hC28Lo)Hc!vW{WEYaxxLCCZp#{?#=sc?Vb{x_^s^qg;ov*h z_Ro`V(!Yzb$`LlObm#Jh~63^fHD*O%Jri!a3 zJX^WEVFs93_U;`5fJ!Pdb@8-5Uw%_LB=u1EWY5y^ODDBIdcu7;73Tr~a>&3K-jFiJ zK-nkDNSGgb5#-^HhjyHe0o=Lm?`ud6e)-Xl@Z>(XkeeQUX}Y-7dA9G3>LWc{LbIi; zQv@s9I!=2APDd%6%|#Y>J?Q%pe@FAa&FeQ|X}$?l0RWY|c&_#~dv)8N_3TEh_Fanl zYaduR@!13Z8-z+^Q*~kNU%j*C2yMecJG{$$|qps zY~Bn_JKO)>b&~y`zV8M%jh`jT_PxSbB%A@t>nMc_h2n(tONGPZ_wncG@9aNepS+Bs zoI(#I>ViMtfQ%=z?e{`l#h3cN0k#PaxcF4GIHCK0V^eI)ZQl;9YdK6zicVg2qO9jb z!oZ-TXTkcl^tSY=i{>ugR7464fZN2@!KSXVg-jC2s5q?gI{f&=6V9Fb+CF#s@$xjoARwT`K(QfP(x(<4)y_yh>^zVEsGhIZ>~N+yIM{GX@ouBU@&F*o$P4RUY4fss z++T67^nEYTUOh`H+W4W=q|tIFwli!y?Sm#M$c&F|DlJZ3UvrD|6({pKbVcu%c+m)Z zzubhfJt#Fm2uD^tuwr)ZR{hGlRg+J#=e>f?mq5UQGi+uLkOlBbBt8SEs3SRjV6}Em z=I0Gpc%O4;LZZ9qE*iYfgeq~jerJC0L(!Yn3)9j|az{sQ4PWehX-d_EYzaC8z+A+;+rKu(1_1^q4CW6Bq4=ux z>+IU2N{RJ&Pv+a@i5#7JkuAv(zwogKB zxOUr*g}i&V<>scw6za6_)>k}IzzW(_>Sf46w! zxQ)|Sgnng1N*~&J?y0`)%qVXA^O}wgfSWd`ciFx#-W530*B-7H3=yoHccwcD0iX*C zvJ;}owr?A^&N^tOmZP~01GGlIafHW>0RXod8|{6+jV+R%@c*oO zb;}}K!Nq-Y9yW>@jwWWjfpkNxKX*#>F2}dYABBE@V4ih>!1mwQ%v^EfX)TdDF=} zHU=UCC{=PbBPuIO2LM1K;Jg~i%3FTheSr9A?XRlVH18*t%JUe80FWzl^1wGYpM%xn z;|D!I%XB@a@xePEA-br`R(tr&M=IZL{wmQ$vn72dhFC&sN@Tr!ar{qnFP`>{jX5Js zr#dH@YuTq+0s{D8=jQHd{r{Ccz486Y7q~Ma_h`>cCY*tivqonImp$-rc3t(e&>EM ze55B6=F83qAPh`UF|e@np6lND-Ua79atS@>^pnk#W5$<8SPUHH_%Ii=KmXI$CNv`W`sJa~MuT1?ef z)Z<``IT62V`1wBj?b|^?jH#O^nZEb~fX)}dgnZE;`PR_5%FYST zhVCw2J8*IA(5`pnK;8f`0M39_tzl0vRCbpm6o#{e#O&_Pk#o0P9{dY`$;`vYFCT!d zCrx-QP0ZhAdn%kz{5hj2=6WUS=t=xdd$8}a&8K%Bz2?qrO<$34`Y0%O%Z6er2t_g& zE%Y4L`YZ9q(v{=JHTPxpNZBp^0KgL;0MNnb;{(x~*8e7VTHimEa9%B|RfQ2S@Ngx4 zP2xw6BQIx1+0&;^;?uOx6gj4hO^W4l{a1d0!>(NzuKV`PCo9)AFD$oRlWtR3e0uNw z^7WCc7af0KR|*LPiTR8EXOT9Npd2M)LaJ6mx#GvyZ8$S@f6I-PTblhtMTX03Y(HT* zdjSl2Z@Q436M0blo_6c((;C+l^PEi;G?@`*gze=u?lBgH295Yiew)+b)HZBf-;lUb zJwu;_9o%h9yYkpQ`pkd_pQ<;{%0F5aTmPKavEz!COR1I`}D691{3S^@LrB~Nv)3cKkE6;ga_vT(%J8IvT{5Q7;gGOIf{Hksxxt1_n-5pMs7QH z@$qs_OEO*iwc|M@`4MV_qMpTRr4= z9R_d|B~Ml@ND$RuEAaqfh9EX}3w2`Il86<;b|j zq3oUVx()(BcIR3Cu;`t+oBMyXX#AoyvS7QrmcpK*#PV;%n+ zaR##EVjmk{&0ae2U8(OpHmU3<86Q7XS2{(LdNQ4ap9^9BZ#|FnvHnT)F7|DAGEjcO zFpNNVD@JU5|I_S}?5%Sz9Jd*0R)vb|`?<5C+6$M)XGeTP0WbK>NrM+qs= z03wz5d-g0^b2 zrR^~3dUl!=BSm4TgC5{S~M_@Y;Ffd+& zVb_tL7>&keMea<`jQsg)R~!{UM7chs?^MpU-&pyJ z%C`D?Rt^QwhTHPSCiHCCa`LK^xR|&mb4NSANiH*c=)M&FT0e0K_E5)DJ%{3F{@;h! z*VO`L(7}-~fHM%^ukVG;@4tU?&HLlzgBI>T;xb0u>`Z9Ac;TdF@U%E4+LP|-WcWsy zy+a~kkUa%Gbwd9=)30dx*clJxY>XN?U&3T%JBQyLK#WCc5e2TLethYjlRx;iEAE+F zxwdhd+1j>3IRm+U5^pu!?YSo)S49els|En*^ zOH%juo#0J+G*~*&t`c9KA)m14{dy^Pnaz{C7oS*Y{4=0oes?I2a3!^%I_#> zXQ?7JV40NO?qwK{NmA$J-i-!x>gLaYLl6e!ec6J1eCE%m{^szF*_;L+InHcZUz)6t zVRqG48h=8=vme~M(P{5>-|EizU8Zk@7(fgTq??~&Tq9Kv(1A`fWQ=GiXT*pA%psio z%;HHEk(z_0v?~B+a#yEei`U>)B=+flzw*cKdwmFPc{2QCl?nz%)9!yO960dcsSGuH z+@;5E$bTjFhipY!HvOUBs*myz`fU>wp>xv=*`xhk(wQ3WA7K#WgH+3rmc3PKDJVgQ^D-BY5ec|F}dC$GDy z_rF&k<+&&OUlWfU|AtK#`>32{WDG3+Tgkd8>M~w%FoLH**g0R+Znk)!UY_aIRzk7`W>6uIhT0%sTQ2-P)d(NdNk zY`YS+pxta~Uy9IBwgOGD1O>n~{IcTJu8rL>vHbTIc#k(+45C-U? z3fW&MmMZg0$U@^~>0)Ks%sGu8=5&9dmQ3CHql(#DcQ*zPl)MFE2c<%%Z2?~r&7Wup z0YFi#%SP?rr%%_o8c7ssa44HY^Dj++1d!C@@beD((YIP3NDV{|4RzFpwzldu6QLjp ze7pUCBnF?>oOFU~fFv?&(+>>zNv3BXl%(;)9V4!9W zua!XnAOomFhdQh9aMcOEXJn?8e8k6cBx|;^-GW2)K-bk$-~#cb$WyULynVs%3aZm= zS>SXY+zP2$&rwg6RNGt7Mm895#Gky>O9cpSp{6P>R+2KXz`%fPDAO4qH~5G6d0hUq zd-o~(sQ(>h*b{(PUwoNfbKOx(|MLEp$6Rsm_laz_7l43M1R@yRVOb=f@=BwBm$9SN z4t z<-qhE?@j8@oZb4hF*6SWfWv76V@zNB%`RP-#{I>!tl}%7KIh0barsOLkmDzHJk!ZO z8d$}SJO9`b{q_+z0Hh}ap!3uTTvjmO`~sj0DiSmLpFi-AGnG1wLk5FpOWN(sK6*OZ z$T`e-H2->TbLMPsN2TeNbvT^|HaP1#`eST%?L3lV2^JVb=e*lP0S^F_V~*aLQ>Jvv z)AAd;F7Gg+kM=aNmt6b!V-+V$8{E_RgwW_Lx}BWHfq>s;4U|`H2L?hI*w*Ge7z*?> z+!|FvrFgnBw%iz>d{vm_dcFOWk2an={hN9LGS#56Boa)ZyT5g8IpZY(e01>!kOXSo zIe%3-Y=l%%L1bdjGnGHVhUNpqV`}l=MiOYcxe^Wjx{q7Mp0M@pxfqTMK40zTz3aUt$$@%{TfKpY=g}?4z;)1`_(a{Bey}5P7 z_XHZ%(Zg;dZP@fq>K_B|xVnNT@g^65Z=GcJFpVf7;sk~= z2DZ9CiU5#covqyI;+7(`x4U0ycVVq?U}2SKKVvyR&XIIYu@xNEHrXz5sttse$s|nx zLr`JZ4QBYYqEemfk!#Z*b91;gwuNlDXMw(Ix_4o;ADgg0xd`XsBC{2n4thDje!vgwW{z|;1vFSf6kw9d0a^4 z%4AaAjnwi@=w)4O24<+sPhPi7UY0t}9ScilW?wJ>QqC6iY^-Ql&{(;7Z`%ET5j^vO z12G)X2WB5R1NI{w9Wv4nzP|n)PPs>{a`*VB`v!w^Xo{N~C{@f9Gqwt(IFC(sj$qIL z1G8yVbt?r`QU_2+6B$=*nO0d`?q2BVGWILA)*RqW)M1*EM%)Gvnu87(s>~kVvVbuL z5a7cpYi4koFcb=9;wr?50i_|oI&h-vz4h;ImZu+7HW|aa6%r!I#dCQ7y(LBW*Bu|S z=afw>N%sRWuL&Ik1E+FO`;F#AX9ET^y{Pt$Tt?K08UR7TgKJ*+eZVEVCz|f_A{45l zU}SxXM`*pjy)j|7L9%C&GhV>Q>zJExm`l3&H#}hv`dJSKi4sX3)A6Xy;oMIsIbog$hJZH&cs2jjPIilw+<4@OW<-tX z%-j8B6awK~m1*KN``n8#4y9lr+Pm+DrI<&6|20v}2;j*vq}77dIsa#^&CUm3Fhn|& zQ_af;U<42}iMT}Pj9Kjy!5ABx=Z<@TqrQ0z0HntCOwdY~meT3l#6bg?JW}6JKwz^w zH!k|E^uCN1yAG=6QT(jM-{Lb^@yH6q$M=gh$pb4m@L+_PW&{ubx?e4N7TebJYa6gg zKGE#q+2hob2E6f&B_Lk*q4u$!7fUd=7Y!q@N4*u(-#E-kh;8f|0F%Tipf=j#qTUL# z1DF_LpdPwXyo`2Le%w6f4S=eKAOK|FJah$=xw+-qX4$Z-Zu5EsFaVT6ZzEm~K&)@< z1z+wdLVOqiv{Wn!0;aHxEkBa)69WN}iPlMGQ%|Z;3k#oZ|OCrOPnDd9pLMEQA)QeOwyXG|&4X6#pHHX(vRi~XWVw)$^$sZAeJUg>i z@s=WH2ObfFhsWWce4qAD`_i>5%^sT3i{&^O6(m^!Nmjtj?@T7GgPT1HRXv26cm50v zWou}4*^R8l*7nmk0mW4?dzeOq@F{)_oV7Aps?N1ilRE@428cfdJ8{(qD^y(%;Y}xhFzm%ks9$~x_~iI?P^D$ECT-_HUv-CqOvEs+03hE zz)%WoJY!#W{c>*ogB#2q9t(>R;pO0mtf_lKK+HI8W;cgo5(TZ-H&&ubyY7%aLdn=F zK=pYvPacosakfpXleZY6vFjhWOK=cHN6=O&);TL3BmB)HfS&}BGGh2&wpmK$(hg>F z&FpAZiMw> zO@5PZ*G=645&(*-ptY-&Tk_B{B38oK6i> zxBm=);1LYIitB&vhfAq0F!+h-HNr*&mFakiELUo(s}elVnVzXa6~^0%z4pSM(?;}r zN6Y}=@^-8y49$a+9K2!vf}54IotUC!zVp-XB4GEKEoVe9b2|+F?)C{EcQ6Af{y)Oob`rxphz z29Ci|X!UIv%sDc7llw5j%{=@Z@BGFOz+fA}W0(>9rb4=e3btOXm>QbOl|iEuJ*<^( zoA8@hTYan9QbrWJ?8bY!x6re>XJg4I$!1SL#ZnP#*005yb!*HX8Vid(kBtHV7aQy% zhGC)y4nqcbj2lQSm)?zxyQIoi)UwDJDYHjtM5rKDcETG>Z%T=o;Fw@JllsJ$L zBFMHcLr66SIFD8rpJ52p{EZMH9EUW*~G#h~O>FphCBI~@Z62M!LKg9vaS#S&)Av9Q?V zWcUn{Vgi(yKliAbf`Rw|F8lAxh`~wl@qu0c&{05+rICuHP%P#_%VZ7UIBvvO#}P9C zTrL+v2!a>NBjrv}RJ5WM(P-3cDI*Oz{oZ38vEC@rG|gNg08+LjdFOx^Y>j3oL|a&l z5Nqp~U5=Z7 zb`K1chbw#}2(4=YAgE3GiFH0M5Hhtf9e|=OPv7;wl3zOSjS>Csky`)=0|iKFW`<)C z2AJr5CIGmC;A(wxOJQ$%=mDT#?nei4F@8Z_a;xU<{}}+g-G=ew#t%nFTUd;J0tkUt zxOJZJ1_0Bn00ux(C1-_FIputu|0-pB&sM2CpRxpm-F z0a!M2-#sE8fEaplrIKAEZBmT@rH5L?JcHi8EHyF4n_8o-N8HO z@Me0x2m>J$MqY~uX+Ggdk8BNW3yYB^#-fO^D4L&j3!VJNXr5$EEkFYRMCPDn^qJF` zVOOZRF+n3qo}|%_l{Ql3W(%5V;%#6cFd%Y7s|(f1wSnpp{q_;_05CA>BQ5EV&s)7o zA{r#~3||lcv zLCmel3=klRSZqn>iyb5Fksgt)xQB!xWxec)d%^t#gwr58D1iG931?W{NRu^;LM$q=dzv2T3)TpV}CF=h{sg~cAFf>eTm zp_!bl*r}t>(A5YC1&DcbAz>V(h;xGS7;D_{(%#dNv+u(Q@{j2CQpC|>dSzM$xGOxy z?9*l%^Ussm4!y`K_kErRhcKmXzt6mXNy~T{_XJ24&=e<*#)=l2m^={B)HG7_dkwhUa<0v+% zt|D7=qEvK(nYi-+0KyS?>OAr131gvPrP)JdVKE{cuxKB&E%^i~|_$h&y+ivSR~yso|rYA=>M z)%Fqn>Jc>n79X+*Gmo88fQ!V;j`?PUz@Blsgb$pHj(_ZMfB{O%?85ka4xIyM24?nQfZveo`y~fhtgu zb{lW-he&$F9BB{1%eKS2QvHob zo4F$H(JLhoo^@i$N2@%xkNhWzc^fyvOW2}78|#14-6XU+XL4om&;x+# zk+;}RLh6j0PAsE-Tox94mTWeUx88aU&ZC4F{4`PyK1TuqX{~GK=4(3Y1=yLWkFB~K zsZtzzo^rE~Z}9|PtUSxx9@w`W>>LJ$l2B}AGt{YPrFy2f(Yqq4_&i#M?JEZqJU7__=7rAmCr`f@O06+x; ztXbPK%QMrj(-Lf&`8~NUEJlJ7FXOV6-xGpI`qW||x2_!CM-T>2+VAwQsQT{v9WPaf zga9%ujf~la3U=4!aU6o~Fk7>3vyZ-E|GJQt>}IB4ZiR9b#i~pzzi+C4ZTlwJ=*Tvw z8(9;G0he8S8M>xzUQ=*qH;lBq<8vfINI4v2mE+R>yH{5)_8-R`Xuho7LW-71Hpq317=Fl8|@6p7WSJTox81!u!sb5fc4+H5_R= zNA1!j^N&LrBj61Im2EAD@&Bm0Acby8)>N*fDrQUDEl{39L(Y-qid8FU38$;^a#d1PY%Kp+S~GLD=h z(`x#z?oxHLi!cB~3S3DqJdaeLw&M0plk6b~qKgV?mLzF5`if%2^%UCG4#bp*t>wzv zfa~$<@B6n@??X&acpZXq2DD1K)piWGdF|3os*_kX04(+{;7zF{kGzbyc0Hl1zQT1EC+2n&tSF>IhJzzz9)w4j|6`h+)_1(ltT;@ z0T?Lc`oe(w5V3VO*~icfj(NC|ZHYdjBM~581c-}0c;$`gsc-ur=Zp6elPdylg8=^C z@C5NG*U#T+f2-O7iC18hfv_)kF@8Qw>^8yC_v_RNfsZRMvK8&77yj9bAsR@B60c2Y znj6deV`j^-uozM7B!CLO2`|6(Ec?S5$3(aZ+8QS6B8#KSQwssSi`?e|@X$RTBjjvUBZiZAZKB zu0GEj4@+jJKW~Epx?9tw8Qh!G$Tfk}Mr1->7>zH|~H!16cWFbF9@Lf=3Cj#5`Fi*!JM0F(o$09Qw##{X2^ zP4E7F)qGLp?Np`hKL=~%*)Z&g?UDZB}?Kz>83kjtt93?mGl?vT@dXXuCjy6my9%vwBCNET9D znx&8`(|CY1OCrq@oX#}PMnoaLIa5o1>ia>}OD%IaW5hZ>?*I%`&{1s2y&2e-A80tV z3ckId^{9o#XF(1ks5!6(?8MZ1rKaVP+QL7)O^);G`b{i*53zQ3ia>g^Y) zoQ)HsY>`uP1;q?U-@6JJ4GzG0A_xzYXAUYAcR2<=8NjI!n1Xl ztV1jlZ59?L;jFP^KOCuLW)Hq32XaGg(n&eYhXjoA;B*oGO;v~3?+E|({XhO3ny?=WH@-HF zB4;a)7t+GQJjl>G%JFBYA7pD|8yPXm?5$wnGy>Q1z=8IE1s~Y(&-SC2kU>?1jf=1- ziL!{<0uf~qB-kKq60`BnIKT1l8|Qg`(eOXxm(G}PQ*9$&UiS+j062<5Wo{Kcy7YD$ zhBJjYufd#@cvB1jNeDpVfiU5--Tv+eautbc~&h zaE z{rBypijW3$)7&Yhtr8)Q!^`VFM&XL3gW9~p+nS`7(HYIBV1Tp7TUl|}#H)MGE&O29 z=FJTyXO^k1JV~-aBuzLAi!lRTjKSe_aB*j+wCq=F4@+OduCID!-2S3!FH^rdLm`xH zFYc3h;gQRprWK@`R*-75MOj#wN=OW&N~%Kp&)))fy!@(CQ5r0>eGq`5shOh^0_{~T z;eU<)WAw7(^_!pC>1Xyaq92Y^Fkjre8gijbfDV7!%dy+{P zHGddlI!``eKR z2M=HW$8q10)_3N%Ft_`YBY`lf-|Y(0ECvF?dl91dKKQV$WmVj`@(@s0dRXt;vgF| z0MKg7qw}R;afZi3cj9DxgKInZ?FSs|{3iwns(t18P7^S~AQtUhU_mPY#FmG@Ut|IwT_8{%={$r|FR~_p~ z1ii!%%XQr!9yy>8%Ej}u<9AHQbeb*Y!I|u(Fx3DElNuEDJRESf_bgoX5AwQWA5YX5 z7^>4;UT4?vgMf$4JQN6F_?k^q@yPsU-=%_|BW1zdOdq#rA0Dz+~ zn1Z~R>Mb^Ic{*~;j63!@)Y;`b+L`vdILZ$Pxs;>33jm?ec@5F=y|48B=;JpJ!v2aY z;zu@YavStfitNvU_&J*a-JeJ$9G%ZZe9it@4N|WcBlQe0&VX7`s4KD+As$nG5{S$} z>`$5}M6y)SuV{?mCX4dvvQ8*FGpM5u^Bw8rawBXnkI zUGA{d-y%;&Cq?e2uGS56r_T~x@TLK_%K_eu4K3>wx~((OIllGheHC?^o4+l!yT0o0 ztMGA}P-bxxp9O^>=t#8;KAZk!`-jAsr3K{*N`huLBr+K#UxMVaa~AMFMo_JUBr@gLQm zK2>9z0ANZ$8Tx1lOhOc!jf}hXp^mzWHMOVVRmb8$U**A$s7oToXn5#{d?$&zf$XMJ zK0bj@N^hQW-!W!ODtlOrf%25o90h8#djNm{8Xn3$#5cb)d7`+?xv#uV-%sjr&#*^a zQcM2rY+dR#?buw`bN4)}{{EVqphG7bcqqeV zS1NbIE^u$)q0^p);wdhi{rtjbLW4DdQSpusmvh$z4Ml%Glb?`Un;)Nix;QTRV*D$e zZ6_@_x8#Lq>n?@;`|l22-_}L`6P5!|prD03@#>q7x+N`>T|K_9k@eD1wpRBHPs;D* z41Vat$|cqLi^d2H`N~AR@4QWCbo}qY>nF0s2$w+*6w{wBmSV{G6YwF#FTH8S*Zj9O z-Q(&BxJSc-zcp)tFhCVmXu)DeuPd#}H>Td=_Mt0knVsxqeBNkbkCS3A2Ct&; z_>C`CJSv>e_ejz4<0hIdsjN}740v7Obil{iWo>}=vbLuaE!?}dMZ!wgVqbS~Uw0moQtO!5G+;i7Q{WLHtwD~bc9VD1BTPT^hgNaKU*6a0e}QaH^Z78#&BiOcMv z9Tlu=TMKQx94H)ZyRH89$!D71zI#Vt+m?0$0!k=UyG%>|Oso{ntM);lU zjJd_QV?3XEWzKWCX_(2H(F6c!M+a76IXR{8^jf{04@6!{NUoTFva{bmk96^~?Q!>X zd&V8+OCsSIH*7_0H5$rzE+j*F|4cBDI->VM{rRp7**aT(pBV?5t!zl1*#frG8|wrY zCgVEJ&iuLNk%`BOy4`F^I}ITej2O@*4Z2rV)R5Az28wOjPO}x6g zib#?Tj8WurIc#a$!dm#caa1AAj+kd+F;;AGrrpi9ydxwP?HsT3K$(>C-C6S0iNVOl zo6cEy?S3C*}zWKMXaH!tLAiDkLPe_+}&WyJ9u6fz_7KP zX?Z*kL&a+hP>w=#DO9a2MN^ZaA8C!n2grWL>j!=FfXLaY3-CbTpJq!fd!nop9!SpB z|L8m1@yq&u1iGp#%+~Z}A)sJHhanm;oSI<>Mv4oem{oF}EX?wLuOFf?bZ)O{8Zy~5 zl!WZAaEB);G1cafU0zn5yAjaWa?sF>dzAwjsI3~Nr};16}S82#J-e1 zvjuD=ZN%Z@Lee`Ay?12r`U!XYH&lceF}ZjBPQ$j1C}G3)DPhog9Yg?%Vo|f%Y*Y}0 zZLTkaQmCo|p(yeK69l3Ykl}jO1o)(b-_VDdeStd;VbJU)bRDqaf4r|1u5Q6hLP6Cq z37f5~tjMZa5K1^I=^l-gq?HeEta3c%Kg!$hx6Ov|Lr$ zKk)B9ZF--%y{A`5LJde!BfTmr_zH?(!9ssQUqwXmCxW2Zs1`(26a=XfYUmIMA-&&z z=T7fu=9ImEf83i8QK{jcbMNfWTCiB8J+m`spJ%scvk{08q#^Vwqelzh?tW_CH$~Mk zR>OW$q5vVgPZI3bjlKCh%ytdxcm4?bmqi16edpf^LMW=P65=1;er4!BdPNuwS_u`* zAhWCvZ7e>k1K25Jq(MdM5n$luk8i!S=i!C_=Tv>fZXMnG@ox)YZ}a~rGXjdj;?WWH zJ3}8gv-J7>&fMSXkZfsqco@VBZ{m^k0rU>n(c)(1ldc{9CTGPh3QPpG;bz!(iU44O z0n?$=Y+EvI9Fbh@TjKwD=w$EH4gRJgK#c+|{>!fkh>_pZuc)%)4MT=>YkTekez>WKa|JgWoPDX(V%K>VcqDf6PcE|?y= zYT7>OqV!!VBo-Y+qKp5Dhoe8Kjgn=-ITqLEYzOdte z54~#t-&G8)QBrJTc z^1I68xdpC*_cTejzU(gdPEi<&f!w~s_xZlX?k=iXg)%!_^7OB4lK||b>n3Co75N*r zTdPmz7aRZde@3b)lX3${U1AJclRn}*#dm#kQ`>MBWn8+waQF2_}jHYN(+z(ph}@*tJ&+39=-*wR4so>!Wc0S)nDp zjvZe8!Q#LH$*hqC-E$>k_88mt%>O)n1>6VAb3NBJ-X7i9zKE}ZO%CNqQrFK)-_rdf z<^O0&%KCksR)=J%3M<0}HyOY-?~YqX_xIf1aIR;y|09l~%cYoJuqm|1Xf-kK*JDIzHL6p#P2KpLO9nUJ zytzGkbNl&$%?&5I^Fe8BogY(YjsN``FX|#N0?$w&Af=Uy%zo_K^wZqW1%a(6OfI>q zt_tdBmE=v$BcehzqyNjpeae~gwFzb{ZG3Lp62Y7d1%m1i6%3S?jJ~8_l>X(GpA|;K z=QZs*@@+@9jm+G_p!=CqYS4w=4FhetbJc6!1JcLw4Fz zamRzc#@{hkT9v{cj)gJ+ob$z`WjFf!vS4B)U=?0Ltf6+ASH5!3%rp(Hg*C4%X4ER1 zvL>e5VtK0s^E5=DtP;z_^2V}(R8l2$nD55VTAAPPtC7$(Di~HgO#i_>{8-5_wY@0g z`^7l5g$gO#lSyJ`78*(v%>uk%2cpKsO(B9|VAHVHH*wK61>Xesh|f=!Shu(b|2fAb zKk%6^Rxc*$iqH5Mml;pLZjD%?6cE1Zv~!ePThqKy6w11z;eDj1tJA)1{`awo^JG%) zzV~vn1sMQH@pAYGr=x&Wzu+)$f*opEioc(i|2^7G8h4w^9zQI zQVq!m-3@J#t*Uxx47Rb99$rgTepwpU_?H(pFPC%eF3(uYAQm=-vpm3 zzhv0wsrUDU`~}HQSNBT5*4BrKb4qMj^$Bm~_&XjiFt_3pW7ENSiCFPP=+^6wlk;Bt zUvKO)!*HhK8q~&kbd6sr*^w6&qdHkNrcZxwId@lmfF{$PVqN1)kj2r!{Q*ZzCveaN zaG8X}VIL{x#1`|bm(P4ICF?@5B(6Hm9Tyyk$5RwP^L0&NMv%@caKcESK-(##Y5M~K z&gd`xn7kXdGKA^qSA-Z@W;1^()z{zZss+5fawr2 z+pZ)96l3|@pPQS%68@vLolLWWr3vVqgcnBi*o2+l(}`#_0+HvjZ${gdw5a&$iZq!p zJg_ujfQkYe2MEC{9MLd~;LDx;i*#M?{d|O02L`TtRv`5QE^HqzXmyGA$I}Onz@PWG zMc>F0xWy@uz0<`5wDQ6$SY=HamVk)r+0Zf`XZ^&d`@VsiUbVNcAdoN)xM;*u)F0uN zSI5foE-s(h&D}x_+ErV$PW7D} z=fU5qIS`#|i_w{kg=G#abVPB*%zPpn89K5|52bnK58Ny(+8psFvgKgkidwt8C>%;ZH=GzJk!unVRV^E=-t z`}ML1xJ0>_b1BcG0YXgQ);Y5*hsZ2ux_HF`!btNzN(?Q6=q6lB_$um;09hNv@X z-sy|d-S+Fo0N!z{9%d9ir@CS&me8lpYK%*REJ+T4*{fv8Orl1?59hY$s-%JnnXk1o z(kWj~S8@6{wuKVFpx^) zyS2F)ao|(nHV{ZEKnt4q3BN|3dsj2Sw<`r_VblrRI(h438weXjz#qq{fI_^n#l;d8 zXueiZ*^?{>+@g3BqYR@Ymz}F2*K^Of-ngb6Dfy!xYL*(E++RBWK$`p0+BBG!Ld*>> z&SeJGNY7XP;q8VsE{@Z8r8dE9E`U?7I3{Ahx?kqkQM}(tBFBTCNL2N4XoxXs&BG5J zeE1MhNP(dL`9}o_Oil=0Tema+pMBp;daizW6SVO$ryfVh)CZ5Pi|37jV{BNPXk5Tv`}mcVgA+Ut?<5bBEpqY{tzw-4*YaqxTi1xtRb z_HQL_pm$;p5`R=PLG&`EvVXzLF zhUZE3GomEjTK&7B)|%|@*c0Ax8)YmfOIp`N;x&m_0RiabxmE~WIW-U?o>#dIgdgvg zA}#!&2FlU;0HS84GaY5?B%KoQ@>Gp{Z78VbXvLp zEH{_%!Z(R6832bYr}}z#^1#U@Gxo5%8s9MY$*Z&?CanYX?STAILZ>C9QD-X?Y4b%QLS%nNXqn!IDRV(2^QBfZM$uL zBo~QAIqVqbsbi97wa<;~)#z2O|B;R*`M znDBcbpvYw4`Klg`iTPUmR{7iBfZ5((C*1@sP72=F(C$jC!iu)dy!9mwowb?35-DKe zcK7yMthE0kfBlb!DF+QG;don>`qlm=dpGE;nvBe#K49!!lVF;q86I}@XIZ6M6ejlF z-&4cNypYpQ_FFg4ALa~uIdBM@F z^R`=x{+Q&URG$vPI&^B=*M``>Z8V?kUwDznk)F#V&~Up8A0j0Hz~-dG;U%HZS~7v8 zFMf}jy;u~bbo7~`)_tTu`G=63HnrgZfBl`11V^JB{{2mN9L@jN{^!g6O>1u+kWQ4K z@g=TnC?H=r@UVwNORFf25lvF|ZBpYb)r=45giX)%Yjw2sT%itAf7hF-YcdCu7btmo zoaz`4LPW%|Db%jX%?t?l*B8QM4cA1`svb4m2UZQPH5Du#1MX9Iose0%d*ebIk-TUy zDX-MJgaVYVZmzfBEW=wkBP5y5bourPFLOXK4g6GSHie2f3eV(41+|9457jGm);{Uj zs%iw8D4^9(E!w1KVT3H`!6*yJAJ82{>~GCBM?-s~XgmE2U*8-*?tM@rlutt^Yrk{& z=X3KBmEZT8A1xlny;=DyeSDfI;WmYaj!?Z&`g_1rQ~ZQ)&p9!$Iqojpk8XP_v7u9` z+=@zsIV~oz{NcFI`!wDEh%}We(VRWY=R>a2xMN>Ao46zuqNJEpO_$$Y+~4kvjOSMA z3_d0Y>(hZG#;1lYfq_0r^mZ$kLNER2`@cMCYcG&|{od07iJF8-HG~>K!D)(NoBu&l z@W(ZWTZe?xmj2WxVsVCFMb-Iywl_0J23$v@bcyDLKgn={Hqa9=sQ+yL)qfgP+L-PX z{~+D^({EDenh8p*5>RSNZ!Q*fPI-SEim_48k{5gcm`m_%m;&z_<^9$*|YL3H5>e_o-htE!kf-PZMJ6C{(+8mv0xCQxg|yhd%?zg zR?)$Dpx^U&3N-cpR;+#_rP7bPVMutgv@6W9zP8Tv@0T_gfo3E}$sV3L z0;0wN({+>D_^}K}@0Gv&^YAO&;V1{E6f!*j%JS1zBXTvycBrN~njwJEe4x${vMT(G z^g3%wz#{*zoD}JuU@|p;QwCvW8fvATqeWWth&wr!$UZL_qj4|nbo@KVw!;PJ^J^US z>4Z-ZzpuZ2X+Om}*>=vtE-$3y2{a!bds_R9r?z`J$|5`ojY1Sjx>880{9+iZdv|$* zU54AK!Uv|Nqnpgz4Dqv&x(sVT)1k1#W?SYfe0xOV-maV6j5x>s+Z%!>TqDAc* z+4@VK_VeApzQp|Fwvn81k2cVZw5SlLMMXr+IHhbXO+1TMdfz#@j*Ol8wH0OWAo3>* zC}(W`YAcLj3GZ=sPH!A0ewVRuJ$XByMUCWe+EM@XFHq{03=RZ=(apHbN6bwzD@bKZKdgx>Nxa{ZMfNkS=3cFR4V>g8>XtZOZUa%x;VXQ z@PPmvNi642YUD4#Gyw||h>&S%cUcBT@)bn+FKrxcC^PVy_pi50^1B;iK_mR8#mB4_ zS<^!|r$fKGH|N8Avn{v}2QLq#)I=V#PHk|i;OaxH%K?h z)6jrXG##9y&rK0MtCtVwRr*Di#0@ExQxGxjB=?&ElLet7&hk)|J@s;lk?E{I>+t z4mKPOf)}@I+|B)K2k<>VlU1yPpO-P~jvyp{cFKN!1m%ZfW5R{~Yincxd%*J6v#Xj0 z+*khB@u>{f_KF++_-G=6pDLstw-6=foVB|xT@Z)@es|nU{ocd9;8^1H?`6kf=!TAC zj&@3T!(Ls=9<+-P+#hsa*=Xv@ZE(gYl5NEA<2kde*CI0*?2cO=;R5lgt|P-4e0~|~ zlxu{yDes5ND5r*v&}ZmzFaLU5x&8@Kc1hpmpCr*eE*h$xhD=z1ZVZ2~M@%e&qy*+( ztwa39+bIpV4#G$*>Ok!8}sAjEIfa&T} z<8gnf9x5$B6h>MUNW8TM)!BWCoKYB9TuqwLjCseW2?~lyFc)}{CLpXULXK87g(4Gn z>=74COfIL?!Du25Bdw~PDo-S$nAdSR_N1(FN9E4=`T{9PwUq*ZL@AKj2j%bZ`nwd* z6PLUaQl9Jsf1oq4v&E}|{l6u~TGF}dE$6I*F%}x5`>Bo5@^h>N6 z0T)V^(W_Q+mud*4!yyLkCztX_Go*pZ0=LXO$cJ+fNMOySd&(8+X1_UE8$XSKr%@u< zINL6acPZr_98;~5fC{rhnoZ4ePC!O-7rAgbaEwp=sp6O5_iY>ZbbSXMEnv~EHcXb> zh?B;w=fbm5RNzG~nDckd)Wx5*<3zf6E%tBJuD)b;4Pz2LSyuG?{P&a;#&@3l@)bNLxdJ5EVpramM<>|z%I@S0J2 zIrQ!FWU)+uEetfrV9jwK=^|ldC}JhEU>i1{ zpP4sfD@IMnbZsQ@CvAXy%8%w74;!VD9}+;&NKCn?>P^O-xNC><8Iy3Rg=@Q+qjS8s zhBE`dkjn2&i%FV!7}5SeT9tIBM^>5qFe$03WnUJ;g0F)J0*yIsgsUde9=OSN3DNwt z<$N;Qc7>(p(ynx16q8r5BJ4(;1bq+FQ^tb!!Z9~oC`JG9zWr( z-BDAZX_SKVI^?>`Dt&KB5AJUxeodZMaaOWErj2u(^QRkrav8{cUyT`7s;o;QB9yAz^JQaRQzDx!AN^lnk~pl8V7V zf!L9H9%IqL%9m0E+NeeNp@lup0nKE~&6_p3wNw;*8_HV^yP3aReH?&y&EfPD69qvb<8(ix zbjRFA3)nF=E+$C8jeduWq*qfFJ;$>RC0q9oDx<8)Nur67Vtta}C^Uc#4H99arPp3m z?{!>@V#i0PAWQXatE2KCgB3nNvy`2EGz52zBz~Kdi;cihJ{W4cpa!+rIU9H5lmP|> zSO73ebfo9QWFN!%V8(2yBl7vdyM^PXCvUg%<&sNy`?aijw!p=OF|DM22dkY1T7OX| zjWh#W1C~SjAY$$VXE`g{Nj^-driMF_b%^Yr;B|HeB61 zr|EQWsmwffnb3+FWbT6VHJYDA3Ot;q1av@vDs~YA%54~To2J417MMevsz=2- zr{}AJf~5lG4mrs^`9W>lJ+?flynt(e-m=o}T;UhSa;&7stpi_^!5@q7P<(BGxj>~I z#(HO?5)ZN|sV@Qw?oR(IoZ98mXX~Uu)zihhx+pBqHfv|M-hVbBUl!ETh$3KMVTX5u zMh{Gf`%lMK&$TMilgiYZI*XhnX1=-5GYd_xhtwRd>=zpZdL)!>WlF(;a33+=A8en7 zm4lyF21fMCL`eSGTDROah^R(VmV@&YCzus`CWW=$n~vbGW*)Y9fAnH##mfdJaYhC8m;2+WPN|APkn14RcNw=j zN$a0nrL7_sDV30E(*X!LG$45j5Vvrbb8kg4gP9g(LesYBXW3$kVYV2wIb#4-R3QTM z<)CFYcq+Z&dnL~sA0q(7sgenx{mzp=U;d3Aa1kEw+fhL+qN%HiD@NH5W`u7WC!YUC zqyR&KF@70JpcdcuXfz=S1xW^hl8UwB3QpUpZk=vu#TTvjR6iNZBmSDlS$Pc@x9$3X z8koo3Th)t#Lq$sjzz1z@MM3g@H3i5frn)hc{)1RQ$^LVIgrnDaPJXE*GhIHwfu-Ov zGcR;{YQgzg+HhQdgVD-QlhBmvKYzy<)&~O{DYwJU_4s~pfC-=j;8bg-TsK#8*t@s6 z_sepC)G4Tj@?Q~0cm6QtebPAVJShkgbJYSFb-XXGdZK(_dGw#*s<~NfNms4HLPW>$ zi`)85V8f-ZAaMBY)O~!i^S~%$=0w14kX)hYCrg}Bqp1j5LfC?#7lUV*mmw^s;7#Tt zjC1byNBk?~ZTkM!SLYAWx}>HCG3H$$(rfp90iL-KMu9@B{2A?Y01LJvNX_3a;f zzkX;5Aq;1i@WcL)Nb76Ft#$P4BVwy)o>9>7BE7Fr5ebi2%+4pWmzP01V(#ZI)(GLl zu_yQu_#7ojQ-i>H2_LuH?#S9@%A_}H#EJx<12nV~X z@7`3t(J8O};zKfXsI@r5=@+9!(L$82tG}B&X-cCc&Z}Z9SndH@V6ElHjDji!O6-VP zR+F0tB%<$U)Bf=Yh``cHPr~?#eQr?1R@d^M+v{R5nU(XhV7wC z;~0w-l`Qgp^BJz-f-~OTyI5>{IH@W#Uk=2+B#()KkJC6WSeVt`e$58UA9>H=MsWbO zEQHlz%e6F4jzGVmtZPYoE;U*-Xtp1L-R|$Bk|(F(&QpK&?^7jyD-8G+Ka=nS26(Yz z#FFOQ^x~FfN1t=9&of)4krQ8mWi>6tv1LH#c-PHU5r=!b06$=aP)_Qeu#+In_VJv* zrwDBOZK=fODZjp|r@*KKTo_C?6x%sAB@o$PrlVtgIajs;H?7=UT6Qw-k6SlC4Pt*I zF2?|>oNH~$bX)b=ND`)FZ^a=?4!4aVAV}c+#Hkne@lr`k7?bdR<8|DboTdjkvFhWO z^zay}5G(p`kWv#(<2Gy7&V^Tc;~*%I)E9FLOc4>MUxy0H$AS(NGwg}crd6u9dTe4@ zDoH5$g;qng>JBqQGG#nn3*e_@F6s0R6?u6a%wCc71v6%h)CptaJ zCZvc-gUY^PbN@q&zPkL&Ard#2+g|+Kc{;Wda=+WYgh=Pkxy2Wr$eM)6z3RRUKwF2J zGy=h0J!hk$*9ezEE$=But%c~6IvZ0YzQg8Apg?}LYBK{YV#6Tuje(5^cc0sWHl9zw z$kD3Sfkt4YLuLq_>j|qQ8%$cpY}H;Df3JGVI=nPy(yMhbd`ozJwo=`@y`Fl^6)S$tB~&Ws?o34!q3_0)7nvH*AePIS$B;ZZD*}tb9%X)(@_@^ zM@#e9mu(CyPFr_b5}qP2*uF(PX#EwvH@X{F7F|W75XKx1B2!NJ=Z~8|a*aAUVnb-6 z!nhQZh^Jv;C1AYA?+`p%`MbSD($IbP4M3vonO}TrSJQOUBFtkmp=4e{$^1yk7DZjp zlbUSSP%aljngGF)E)4(pG}kp5pGNIB3>vVpOaA-5%K z@12W}CSx7+>8qVt;8<1&rI{tfb~Cw*m1(1?&KF|pJiTBLY1rll(>0{-V>&Y7iD3AV z^pxcZ!D6QZfQVQ`Cr0L^D1vok61B8d)8~v6Jp*uZ|6U~sH}C4YrqAWsbQc;3jaojn zXh8aQ&oHdk6(&5MPWhDBtFxTct_r|J>koaarTIe7pgtYtsmnypvwh8PfnY-coBXq!uS{ZsiA$fF->`q`rX~Elr2-E z-39GAgeL&|`-i_@R%U2YmR!jJY6Je`7h(&gK@2-ifiUYP^Z94gAOZ&YB){IhCf!x{ zp#}0cxFDML!T`ol4TasiN4msCH=|#s# zc}_+1-yy3J?lqp~x*vFSNT`|YJSEM_3at4S2o~;kX*1U~Z ze_i@j|4iEbh9g`Uax#sY{EAf^OpdUB9EnaQlJK$}Z45Gw;&4F~vJd}UKcOruikYl{CGNwL+zPq~bdQv66a;!qZf#B-r%hlPwKFAa5~B9#;FY1;6N-$j@g>}P)oiqTKb3+X_bvhTLMoM04|=z{ zv)x#RGKt7Th|nDSJm(d*q4@WKZ!j)*q0sH$DB#0D#ES3VBH>_zECKu6L*U-gb#D0#JtMhQua8MJhCP$1s7bRj;No0ec zW^u1&QOc}?`koaC5yV74bQCefEGi8`f8BoqICyf~cjmSvOW4xpqP!GkR&bbq|FNJQ ziY@o)3f`7LJBW4@PJkq0{yIZMv=AgEf&u#)(7V|0v>vtt)!#gZMpq=dKSpEpV(T9C z{Ks%m4XcQZ8Q;`e&P@u;1;r=G>??e0>;J30fkv z(}ryJHb3f&V=m!=2LOK`w~h@rG?;HNv+Z@&>=LVtLX@iygL=JDHKCzx1#gCIk=pP} zR?3;=_` z8v7v~{o1{04gTN}cKSWEb2Q5sGah&m+Y>Vs(dzV|tyQm{uu9sxhFf7)P2fnvlaV@bR>@R*`pQ zMo@b3xbrU|Ff93RrCs&u*7Gu7Avh_oI0N=T2Rls_PH1XAZ(_NprMIfpgj~#1R}Wf9 z4GId$B=uJE^)|NmPFtLUib>3WVq!%_$(aQ5f6Y;@XcT`&FXDz3hcVqCjsl4;(0a}F ze5>(0t22QqzI=c-U@6(kf`ExAf%8W`$?t?_T!hT}aK->Lw9f@RLVNRh$6Y0sIvbMz z*TDMg5RR)qU)z+Y7KZ5}0l>gk4sxZ7_0B-l_N^>8 ztF+(ckO4_Wf5#o(#x`Zr??v1y7O|Yy!~Vz75O#Z{d@PVEV6AG{<)$N8!Vo2dfeYq1 zcWuC%He(<2K~k5))m}ZeSl#Oan!T|ifp3==1V=5lD5;wJ9ekl9>mp3SombX&0}=g7 znlk_Q{IgaF6wGlRM0(|>y25aPI8r3HZjkn>r)6UmB%9X{s0VfT2d%K<=#Ud}J{a&V z^Z5Ag$a)W%#O8Ux!*{69|BP6T*xf;%yvQ~Ce|?LzsD&u{={8jHrl-pDS(}zN;zYo1 zVF~R`#x7gr>n&wtz$IZ7^=cD&0v0T9$l$j-QlgdL&x|_m!8&aZrk8y@OJ<%$w*#*6LsjBJ$#F7XJ4NR>KC64^0bJMNUv>tFVC^X5AX3u$J3ZA zbz%27x_7$j)}&2hQhjVxf@?%;lX$fXFAd#%}V-o4Z#9biUR z;>1N8b2Gr$#UL`h?<#C;Fdwu}9LC~VX-59v+r8?LT1Uv@E~2fNAvLV&JXQBsu9R~U zA{F!*RhG{9qIy|XCY?O8pNn9u6M;q?20tuxl2qog1*h~Od^es_U~!eFn?IKvD{=ss z!lWo~k4yZ&;yDaISTP1dm~Ipve5%H;P6HOz4?2iS2mN-M-0PxunoV!+j)Wf;{gZb^ zJ(vu2JZs|@uqoi!D5DiEw`c6PqN^SBn21n533)W2!Uad$l=CvNntntdqbm&V$Ip;- z`F~WSRu>H#W^}#Mj6Iv)=eYam4ZGCf)xB zNqY7PcX(eB)w^xUuL^-{VCmz=`2-lL6d?}QZ4_jFv3j=^5RJ+!-fN2<{O>Jz@QaY- z@*4t00jvEqH?8KH31;6p0}yr)z2`5wkWt`Mb#o-4io|EJtIWpFY76Vl<0cjAKwT+{{-4c3TK;YXEs>`p7aOK+%-D6qz9b8TuwmAUu%iTIH^4%wi z!T281+0ZEKf{gcbwAP5#;Nc&bz;mM$oj=y@yd;){|LK0lzsS_5c9OsvJ`cA$w&t2l z%AudP9(|B7Hmst}bgR?!+KW?O=9{eGQ_-sPGUkMz%4#V~1$wOYX!4(kffonIhTh|= z91_bO`XAQU>v`DBgQDvf_eF{TisffdSj$CTAQiXq&sWat@Ow}L+}ijlQqZONIr{y_ zLfOEZ275Kezg~(cjGr&mm>x!0BHg#4XSOXv1#>C@t32nIFh}6a z)p)@^D>I~NluO8LAhX^jVo%Bs4+bb0`(tkLM;ctVVWx+avHLt_ZKKT3H3taKXsz@w zgs+6&Dl|yyHmh#&A$xSdKqwQYv&}`xD%ATwHb~!@&yaVqN@ZXP=zn=J0zpwN(b8lq zz(1WvH`)k=w-+s8sQCRD+cqkm-uyfad{$F9ZzD1sq#3ds- zhw-9Xq2dd&udyd8maA1kaq%5z5%J1(zSxw359;|GOvJ0gbMLFS0@pI57eqSzjWu76 zD;a+?9ncd{H^F$`yi8nuRYinzB@|bZBN)HFG-#*YSN0{}(P7S;1M}L~HXYNVc?d{c z)d5WaX64}%T=zS_jMfC1ogpDiA<4_fzj>$C{1AhxZ28h7;y^%`=~+o1j~(8F)!!ed zB5{~txfKDMaUc}+S#9oIGNzg78nCdMA1sosvZBaOj`@&jJN(XjBoN?}Vlm|2cSy%? z`5O)Z-D~eXIEkK$;pyfqJo4^sJhs+sf9iS^iW8nvMF8rfQy^wj=@+%w8Ka(i%c|pU z;Y+nybi?ta zP*VG%39m$0K%AKiEn@KeJ+^lmF-d>JnmQL5umh@+*yYvB>{8|$Ju_*yL4=8%zj{?( zA}8#rec{6ZPc7zS3VQg#CX?A9|@YU>OSgkh>}Z5&=(J{2>O6VR@bp-RQ801{Gok z*?~XLj-g}1Qf;`~AEWo|jIlqtxU3I3d6AUkDgY@`ZwiXm(+iR|xhuAU+!NRe7qZt( z@>Sd1$qr}T7-8~O>i0QDb)b(ZlGdEcBC1$7m+8j)gYVSXy(}^=t29Iq*F7MBONA3v zCT^V@Qd*l9ZCbqV#HT%m=fBm^h;)r#|lqo$l=@(2~?> zkmv`lAOf}qCS)}nKPo@9-^XLT)0)t*jI-kiz=GgAQi5KSkhA0~OlT5KhCWL03Q+(n(#rdC`0f!QxEJ{GZFdA_OG7u$t1qQpoB#q@T}_ ziQEPqkB82{|M@^k2Q7nvi)~r2(pP!=3Q&p=*lytel+eTswGr!qI}|V)ZqV54X4!@5 zC~M;jhKMx-SJmL|JI;V8OsNH0_b(QfS38rV5I-2H0iekJs51mz8Nhqa%&U!FKCIwc zHsvqX_S4DU;qb3d6cI41o*0VwAO?hkk!tieF7@zumO&zIf}9ZIenBLNV_k;sIE({G z@I_6g4x_qjbm1zQ5;E;CTmKMIC+~?Km#~!w7r@^qZ>M!IxFhRG>Fsji?%F$hr)a2! zF7X4H3`R|^Uleo6wTDL3_BJC}$wD5A>Mb-$*K}u6AR2-UuFk^AvN)ze$bK;^>|wz{ zVmDg113S@1sdXDyu{hIwUx#RkoAJMoAOGc@zJGir810r|+B?<0}Z%kDRQD)Yez z^qI$(a1XgJe^eA0ddzA(N_p~LYn0iu|5xJM*%a0HNV$^5e&_Ylp$8}v`AYT|O3Yg# z{;;HO-In=>gV?KOBTr9B6l9!0uDZARVW1Blhl1{>sML)Ar+1{ili@lt|G!syb3VTc zUp!y|2IoA)sX z#Uu_8M-O{}Qbe(L;6J|+8vV=pU)B2ZZ@sUoRBvv~DRMs+v0T7?Z*}u_|kabDP zMwO7ew07HsqJoPwm|nUXk!*d9kgG&I{1)#d_dmXGmTQ^sdhHksQ(tbypWW9XO!)Xg z&K_(nEdrb#86zDn7K<@-7W?4o#$J7l64r3MScjZ_Gx>gr65?n$R(!dGf~G)P?+Ujs z1bXoQ#*&sU%WpCz#ja_y598G;*vTM0+cfi=1dmZJY@E zS$5=E#+P`~cbGLY-{HB-){KH~X`d&5h_Q!L6bJ_gM<6PNb5Q2zY`&Bru)jB%lb*|C zFBEKy!tn3&+*kK<5}pI4v(1P-JE~DNXqs@nN)C~+gj7#n=|uE=zdxIQl~$pN6^Y!H^3?eXNR!s^_* zBis>Rft5Wv+6Q(GT&W6aN%6s+s6{MS{f*51Zq!jF2f8ZppwL@<9`9#zg z&NBnfDMs0}g{p8APA}2RUxOO&TC2~&WGM-#)&B%Hxps}p_l07t5`-!z%X|@lCdQox z{(Zpke@jy~uFkw%mY2?EK6kCPuK$j`^O{h<)~pr+Yd-;POrpO%@=Y_{A4~Bj3?7`K zwvn{%?sSqRa8+B2=;|N6!s{`!y3zYFPsb==qhT2r+gl)xBwS||h6VGZX z^>>cl0oQRZiDqemffu4qtFhkd27j{dfr1{o1#; zoEWEQ%?!c=#ZF6PGmG(F;Qxap7C#cry)?6z*3zy z9R?uYzbzF70^L)*GZ8Fzn)XaJ(7xaGOHEfEIWe1jzBznjgQg(lltTId;!0wU(F%vB!Q1bkEr|)S+jlvJLOP&2Uca@d&sXu)}tax&$Gn zfK}+M+$`k>{__m(`~TxBa{^)nKq+NAP8N*!iI4yl^Hu(^UCBDF!fwZ=ys&bxz0jKTOu4p?s>E`GC+fT2P zu`p;8h-{P7x*w-MO`)34qaVxc`&@V@$mL1U&$+a*PRayVSTbB#;iV2&J1K z1OpvCstC^ke}s`elt#@8RQQ+5JUG|}d7z}JgS^obluy-`Kw($P{U*LVw z2%S*`(DKpHc2hI)q;P`5cUs$hrEv3h`buH#SN(w4ZnPr ziHs$cWB~v#3IM=A2mpBgtnxnw09=^>fKvkifF}(Az;ejyP~`h;fH9Jm5CwevC*^gQ zCVticU8H2ifcpq|05U{Wb89#NfHGQ2R7k~R?ZU^i3s0>1gIjfRlFq%CGawEcAqYSW zTjmeh5H>*pgCdG~7m!C(Cg2(7kAjJzgDU1DFBC6}A}VO2pDZQ>8yQrGK9CZclvjeT)QMfR*p6l}qKazl6hPSQxR@UBCNNY;{^B6oxna_X1__ z4Pp;Ym+gj}G`HRh{|1zZJ(L(k|8l z*Bt$d*jfGU zDD*AY>``2m1EL+15}N~?%A8nGE4&Gkc^{yPawcLp6CHi>VIfnS%kK7w78pruPqk2z zEnjhNp4Q60r;DHi^VOv{I!CczKdD2^z&=>BbaZn-HQ)UwR6-#$yTl3hYAff?AFgI0 zi|fFK0~@PVYnRfL#g@l78W8ENJM!K`$wMfAD@Wdqg-m9lOXP@Yy>f8SFQBg9P>T=i z!A7=BUCL(HG%YrP24s}B@V_eU4)xg9*^@$u@q7sx7s`?K{5Fw=J9x@Q%LAX$+*3FG zgFYxTvS{q&lfh~#V)GN*Il(q${}^q=N8moAB#M^9jG(+X2K$FFlj zbqvZFkE#DNn0`=Nr^ng%OM_iK+uzQyrbvQl z2d*Mvr^Vu|7r4=Q&?YHE*mzv4kL%>zeZSUOju|R(<7Ru9)wWu$g$v`M==ub+6l|be zIy`>^Bke|bCO=s7FYKH8ZP+~h0kY>CNAzT!Qm+0RZP9__;NoxD!p*FM)btvRW78jQ1q30&GNqgcFSiJ656?C6buZ zc$`jFLHe2++}|)L2D*vH`DrV-7Y_x<(nN7S9EwY|E7Iyt@5l?pg|&V9dn0MXv6WC7 z4MP^%`6X1!(Yf}WCL*@1A{PiyXj4oF?wxCF^mVY}+A`tF5&#@H52x=P_xn_*ueiU_ zSEdjSKPg_nM164#C92PMEFt42?oFNZ-!~v|ejqn;e64%%dZWywc@!F^EX+p-V2*6P zJD-6?jN?JVf|VcIz`c9Bs!0!|Kjf9E8h07&k^M;iQAs;GO-?<;VJB22taJTw#RgZQ zwG~_4aC%{}M?@Q>7MY_?gx6``4~o5pzS$)VUov}4S34l2W4LYyypK?e7GxI0M^<^| zfM^X;5*Xr|N3QXfY*$?z%5;sOVc%42oUHS}s=zPyIH}#sGr51EE1;myVoveYjV4CnQP5tchFhk$Boi8Edz{k8Gd!` zZEsSxgn8myyG}6-W6GR;)~V%njG`0bx@=3%^bMh_@@mZTKw8}3PhJmI6~5TNmC0^r zk4O8-FTrKE2s5%p!ZH?W*?1@VFN+pcWP-aAK>pqgybg9Q)Jgw9gkpN)7fb(tK>m3OdDce?(?k zZQPJ5I0EWT7Du!ohfyjL57B{;w0*0+e8HZ$jChjULFXQ90pR~7D3cS6|2N5CgpF(9vJO}Q-C6mhv96t?M`6=BK) zR(UVMw8nLX?|ntRGMw4}o;)Wg3I2fp<$F#_(aHcP$uQr~Pw|MG?gytqX0Tx4D$b;P zi+l?Dk@nQ)Pw+`ska^kH(U_Gwm|c01KNZh`i#^^YtC}rWOfF zO<|@*wprg^>!HH^_GbW|+G?_dw2$d)X!eF;mXKp>`W14qx1!!bX>p-pgp^l6{zy zWvklSfUe?S8UH8WE=crTWD4C=X2s>yQX;p24TJ8^)gg<`_>4pA$@Y~ ze$qv6*kPIKhmZQ^@ZixIe(^UlWH56RO$;8JNb?)o4dD$fcuB7G_{TO@=-Bu1xrSr6 z1=2IJZaQ+pI4!d~C`S?54X^Du-BI&&Wl!-2ZLf=7!88nO*BX@mw>u=o?)|zy6F`k9 zs5G6#x0LZqjf?&nOLSXv<`q6Ur{~zXTA8AaL5F}6_1y)SZB;k#>JVL`2Vcft5zTf_ zWVDkDfuM{I9p1YHk=lm)_7$=MeAP4JX8hL%?Y4I;`uZE80Uwb83RuR5WZC`TAjE58TZmauj%^P$?6UfoB=HUhf~YJBSToYF90i*Jy}wJ!&y^!`p8ct^5- zA%(XtQxJZEiBZ4OsU{M0v)mvGvmHy%8uC28?CWQ&#f<>f;HW#T_yUxFShpt*C6Uz{ zXpU^PmKcnk;Qva*2K+$}#xn@r^(Epk9G@07`YNpLIfcs1tFrvMbar8uVEDuedmB%F zGek5LjtKb9l18N#3ZcSW%2;3{EH!JYu$3hOSa8)9U9RMoL`iZl)Ra;q*W8Bw)~XE= zXHF@z-$isYi3~}MK$#_ss}(k3jRfs5>Z%>UA>H-*fatFoZ=$&pc3!ZObk8wRAJaGD zqNG13v_(J}>4}}Vh_3uOec}}JdLNzfeonwx5|&L^a4e;xWZCe@P*z<0inz**Z0I6~ zmq_deIlSM30?r#J8)WdA%5|>NomIoQL^|9^$q4z*S*ap@jb{?9W@a&UeCoLH((aa8=gFDg!f1^NOo3thO6VKr1KLsoBL;Ax zamn3M1iQuan$-3y2()gh=|0Sji4JR(wANiqRJP%$P;`x9$ErV^%=hutGdU$0S?B0U z4so(%iJ3ih5S5t2>!*@^s;dm1eHGh8S_oAFb#dqwhqnzuceu^k?q_ReVPOMUD%V!H zdNapjr4y50O|XN%bD;0OjZ4cK{>tY6d35yET*>yEvKx~s_HA& ze6(t2eU3tXUJN{PfbbQFdmcd8da`37zx_&Zg#1Z=C5f`DOvbtT@H(5Qqe%hfYyWLC zwJNRR-=4C6%Bad%v2AzmP$Q=q`o8z8=F7Ja00Ujz*I*`!84qq`J*3TSp(b@$0p@)C zE(LJ`SA~%`G!cf&{yI*F!#s=V?ps!sHrjK6fQ4j&`^aZ{nI>3iQ5Rg88R?#2SBhc1 ze)MF5#5YQ8pWsj$H4?#Fgk`06UPJF`dI$`HC>VLb{m=8~RgKo1aZw*?N9wphcf%`r zS;i3r^Z{wP6USiID%NTn4x4`+rvlnySnUd4M}@OJzmybNZqr~1INHM9II;N=Bw~*P za>wJ9p?~O?dw50*PFV!Nf|=c*4yMrxe-=fWT_u!Vxx&Q0ESi+$3EeSbcGImMivLTB zx6nX-6T<8nUyZECN|&7eTXEsgN|1@K6baq=gT`A=P=UI-NunK?d7gi4Kjq0Q5@67u zRHb9`d)?N9yU-lJtS0+teI|?St+xCgy{p;IVV`F41HYW%b}v~WyY7O=IpmygZttCU z3yqHvIK%!tqqkvcq(aosc0geA`Zk+ME{Y2U!_j1w9!*f+-)utQ##}`g5>>sJkJud)iW5Z>MX0%RG~! zU#{#yO+RCCrASo0yN{aAs^XP%_Dq5Bk9T_q&Hod zslX-?cIw6a_c~N7AVb|;R5B3wcZV1uwe}^%1KQtTblw&0vgwv&4SC9|m|;CaGFc76 z@>t?!Kj#@_?Pj|Yq4qm6GJM5ZwLy2?_V-;(-ZYNG;SMXi92L64x0hLb?9A67stWA` z__M5WtDtK6h*8uN{G{^L;~kZ}V(WWR7`E$5@3a*^aWQu87G(_1_7 zUZHsohK=-YN_uj~^bjprZ020zkE@sfrO^>XJ!(DEESb3+X4Rc#uBzOb>g;M*0Xe?#{Q8{iaD&U zUP{13963E8ckIe20Lrx(KC#X_x9klvXYhvlloF{0zA4w zpKfvV=$G6-7DvEw^F_I1aO^Btm*|v)2hEoH_Eu(H$4?fh-XwXSTfN9mQ0c)I?e{2? zEFjV9Gg8YcZMt9{E5(<**y13;cEfK*=$ugHM3z?aite)RSh$c?H-ZU{5kDm6Kc&#| z++5=qZ}v_9mC41NLjtKJ4VpD&c`fcUm1>jhK?O=&m`8xB6yGc zG6SztMWe4+did-3HI=EgQ`_1&|FoXrr|bkqhf8gQozPvHKe;4?_PUuUiO`CvgY}+I zg42tWy_#yd8AZe3vc&Kui-v}+5B0O)>@_aPUf=njQJdf$q4|Y~YIhjdb$3CFGxJM+ zh4+eRQA+0S8%;+xXfH-LifLfB2g6P@$Ui4oZqiKCopa(m@Exx{MVrI5s*|TkO}iU3 zfmQwaqC1oH0iZ&O&)PkGbKo$Z#@w+1d9;`X0N<79@WAzT4exofg)y|$y~+a!d%Lf7 z9}a!N$sZeXDcP;-uPyAoV>s4c)mkQZBy5v#A>TEKwv9N$EqCk&hQy^psIZr^Nn_y- z<&42>{`}jo0);9XlF%l?#dTs=RZeLCrFMc3m4iQ2GR~eKLE}}_w8I{L zg53(V(V7awC0ixhF~)bD5N$KsJwxTqPLQ3xXj8MI<2m2)(R1*g5eqPqi+6a_&XG0dr?E@>d)~=(%{20C5_rfPEhXkDu&1VmZGEzm$21F^&Dhow7C6F-%o; zOyAYEe_`_x1-l6r3=Am`{kx&y9>FlnYd9_8K%4(V2F#rx(l^|V_kX5v6X?5+l#+t0 z8lu$;y`kG{XVa%~%JRf`z^JNt-2U|)UC&wN%TQA0*D8h}O;q%Cg6zlrysGNs_PTry zLmu`+wZSM2Tvak)yg>ab^WX7)p1fU>62lVpq9>*9l>x~wKhcD{j;R57zI;{czhjIS(hUdF*`}d_20u2cZTQ;AIHIcTYc4+V9#`X*^qn z%7i%ncw-dmIj&ED%3g~zE9h97TTu*b8(b~s;_}axb%oZiCXWY5XYVGrygx#tr|sH9 zgwl2b9&ILhDetf3&TD}HFpE1DJO=IsN{F8UX>5>dkKH4q(pz&z3vg-kixTpw&Zx$+ z98+Z#c0&oF4MdYtlyi<@7nCQk0f9pL_0HXN*lqBc76i@U9CB#+fJ{@;=D`(evG?A^Eor|GOYWA^Oue-5mvx}kExc~?IlFNm>GvTWa>q7}g z!<7&Af#5~*#OS&K@}DwlTmP)|O@2~%Pe4D!c|n8VqtuvTC`(X?UnTE=Ue!ce( zMIeTOP01*B=@A~8xPsx1M=bQ$@YPZj3DK^2`I_MeY43NJXDa0}`4abiiJzD-C*G==duU#mV-#?aAoaP}RW>2kmcq{Zk^4 zp)|RHW6WHG9?rI4s+84<^2TZ5DrjSIBz~Ka+W6u~Yd0sYo!e zAf7P3XS}Je`%QXY8H8uahdNF%IarM!Lj2Vt&S3h_<8C0>7H>+W0WQILA3V5Dmq-9egR5>=HkF56Bi zu4rgo-{H77ENW zpFbMSxU(t@^b?jJx5}~Gg+P-+*nb&9FH+8RqZjffMT+E^cA;bK)}K3{)``FnEmJ;X zn8hFUpw=osNeG0oM}ViiGD#0)uB$l=4QX3p|B$q%jzy1iz_oP7B)Fchg_$kC?NzW1 zeX+b?v`jGGueaE7=u7=`GV=~*tgd(-4ngBo|K~s<#Xrs?xY4jlqD8iIkfbfU9CFg| zW|g_kon10g9-Vi-C}O@+Zv>-K<11w0cvSaBv+mqY`U72PxN_}Vz|cc%N9|$uGU_@b z8MCh;UTvp{xmG(#F-&+lU$B1&L;QV?Rk~2rSZj-z@-#|oGHE;Q4<`Gp!~w9tbqc?C z?fS)Q_zp1iER0a{Gs>SG4P>61wL1S|z|+zdl}@V~uXIZ~hkBnS zXG!+1aA`^2{axng*QZV!4+TeI*%Nv%5HW3rpan;+99iuRn&|vaFQZjum;#z9TngM^ zuhbt)?)Y#iXLzUpf#qR#)x0TAU+b?*db%^?@(1|mt~3Q>Daw(>tF_MUUf;%i1km{< zA@lriRMCGJ?9*rImFZLkaD?-Gh__d7LCJ=~SuA23y7YwB7qd{6W{aqvg>U4NF5PIO z#Ou^Z)XWt}axql&r;*QuwKw<>5HbKmgbpSLnq&wfr()SVpflSD*t*JMmRnwn%++oAKcHHWt52|KCk$1WU~Vr zB30Vv)5;h6F2)rwD6?aQe|ItA2SbJIA3kA*s^Y|YJs?P8V-W+(3e0}JSH1XfBHw%_-nI7URD)fUQ z53WASjvpB4(C-L{;>#pFCDN8^zxvJ7fWZO3%@1bN)wc2cAVkmm@?JP&v=^g^5OvU_ z@Gggrk)32FlN;V)6(_u9Yo>BEClz zD=>g}mDZyTn&$o=URca>ck3>)_Ori?SZqNCVH zB77z37st8%Os&zJPn5n7x^ZusLk~!n4HbtVsSTx8vtJ?U@C9JrydxulRuRPNLUoZ| z0F#ohfN2u_3TdM%rqor1cdIHOW`-ab}mGraqrCZ zC=oqaSWA{9!w+94Kcydu@RlC)c}(cDe0m{2^#LhWt&4#}(zu!K(o>b289 z@j*3sBTVkTZ^^v=%T|2PnLJxPEM5T*^QqY@F^lbr?At<4tV# z7gf~Rb^HN+w2Hahs6kLo9TV$Q>T-AWKgc1S3HO9X%LMf+j(ta^eBE#prEACJ3y5&o za-CjHsS-xDmGm(*RcIG8CL8+7cq(C5rWy_)?eK}n7GxK>qJ-6mhWiGxO}r8bP$l_J z3mHLBBgaH?CB2RVXOfv}`v8%C3H=h1nhifjmYM>7Ty6qdg%}=t^}9|*EFzOz8k`VC zQczRy4Q)`~)=70H9zDfjmq}=4MK1G%G2*JJqsYjO@wN*Wc^*_1IT(14*pOtB^zUbZ zu;cuRFroH>oky zDNY3%0a)(IPHT^~PDMuUp>LRp(lHUCt%c3((gb`J7qkcRO0Y)r;r*Y;pdd4AO=pGf zG4w~(Q^MxA=q~n}5sG_2ZS9Ez&i)FSo91hD=&g0)Mv}}mixKk$G^-k@=5}zIdc!tu zqha5GT(4{4v;udrW@Jov;+1q7y`O`#!1@yy(oVnaUr`7&^*)vm$Erxq`h-HFLAH)y z;f)m!ZJDBopWr3D(vfKYo+;c8lB%tBe1?QzctFGfFd)8@b-1;xI;;a17V`NQ@o*Zx z|1(VOB`_bU@-HxYgF4bYvJG=YaF=vx)qx~_FnuCRR|Zrc6Wrwz!|NSbbx6Rb#qdi$ z{>mb2JDo?yEY>TODp>m*6#69-z11<#XimPnhgG!|Pzn_0Ket4+rYaRN)H>i<-Tsqx!Q?LoeX9)zVu zS+-YgF@2%6y(*&FGCA0koPozJylT;T>cWw*s(}y3&t&=7G zs&02*ngs)0XR;qh+e-z*Pwd7`4-sqoRYjaj*E6^I$v91b)pL*zJuP`u{O}Z~li1ic zBa&kLUSKt4Q)x_2G8(VML=C_8AI6CZbxh2Z>5*&FCWWD3nNB_ogVK#s0Btsz8w{E) zgEQs&5-CloeyWINz_|dlLBGb`1%)B2xrA=%Q~8RCB?WtMZP^wn!s|S4qRs$P@<%iH z(WU`0IN~EkWV_)IqIOzR=?wSis_Yiee9GZAgULgg$(zo+^3M^F_N+PejHUVG#i^ka0C997ujk{RF;`6%^V!@A)f)d?a?9mu%f@=xfY2i7k4O2eOHcReQa!8?o%NKdY(PnInPFy1kh13v3vF(iV=We&8eK*j#kq zojL&WPFOy4=kMDy206B06GjUINKtYKBl&Z#_JkfTvlsD8tly2L2U~-J?MdmXmVXvj zxqV2xW|415QJ0>?s9s~X3nS{46-aa6Q#28dGkY_x^28pvxg_GF?0;=Ol@xO~ADNg6 zCW}Gz@;xL6BVqDU0%w+=VOpIe`V~WA>1~K_w@a2px}Upo3dcFkOmnMRhJl3xVisUj zjh)3A6u3z<>krzJJEl=f`Qt-U>2C8cf1i9a+GQ@qNA`Wmd3(|}E{!0S+jL=iMc=~u zl$r}gK?5!qK60(z;V-Oc3^@_sZ+jX_Od^mg{^Uw-Q(7=f3{Pm14#9S^t#3U8*I(ab zIt_KVw&VSRp`1}u)$?29sLWT`jFcgqFd^Bb{q-d1RE}WNKM^d@tL&-LNr%BtKlOgZ zy!U=X=D@hw)KJOw;59dq=t z9%9aFNbj`kGHk-B$Yx<-kI^SdI^bv*Vj_0;6hC~!XpI=JzSr{ywm56pjm}A1qAFgO zTUg}O`%Mm|q8HE)=J2Ko(91TahK&KJ0FXODa%*ov6@6Su3PzA(w9XWc=3kvTObP;7 zV~e$A8eJlXldnCGhmhbp7_pvW9}kQaQJH(Iw{Lk<{fNtEoA*!Y^EY!t-jjn$|tn(kgmtS#IbuDc&l)iYU`tj9R@Zex>eifHJ@A=$k z(u6%z>6uZx@y(7qxECjmW5j<(DB1k1oo?`68kTj_K`i`sGXy^7h*p$wkxiJWUx0j9)4ZZo_M5z>y$GYfxGuUu> z>x4aiWOI0;*4KLBo1GaGQ`-rVyUHt=u+F!K3+Rc98Z<;nBzO1_+@TW~*G%QM+7MU) zNSqF}RSBbc_tH4t#yObAxqS$Ldj-n+C;=^u*k3$Yy>gBr_x*mV$AGZfe6Y8{@8V0f zKo~Nhb9$=)YV0Q0`^iIYQJ^}_F)}31lLVVL--x;irQN2F^?gUr!<@xUl{gsvw=Jr* zE7~91^qxVB6eeHp%_+lWes!P3pPe%;KLcyl7>8PdZ{d&fVhW;2t zrL+5G^59XR&zS6NZAOqOVO+a%zNJ4f zF3R&21dR>e$VM}Xq&sHDQmeiDPnQ8+*ziHFh;G_FaNMkOn^C;{-Ua`_lK5xr+!JrwmG~fh{F4qtTfZ^#$<-rw5z}xnF?2EIF?KTjQ~(wx7AAUT7J3#g z6(%MgRt_F!R$3-z9wsJhBY}(mV_<74gera-sC%hsxF{LA6FE59n_1eJ z61jLfm=ak!xEKQf9$9-g2(XT7R8$l4lOU-BB>)sDJcBVjIw`tz;x{OCB2j;~K@%v_ sMirvTm4&e(&=B4baME8g? + + + + + #ffffff + + + diff --git a/favicon/favicon-16x16.png b/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..e133f07fbd0ec217f02b7cf233c539827fbb8d9d GIT binary patch literal 1319 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 TAzjal(IRcte-Ic2FS!2?xNZT; literal 0 HcmV?d00001 diff --git a/favicon/mstile-150x150.png b/favicon/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..207400602a3f08dff1761875beb9ca1aff7082d6 GIT binary patch literal 12613 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

    More

    getAssignment

    Description

    public function getAssignment(): array {}
    +

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$consumer->assign(
    +    [
    +        new Kafka\TopicPartition('test-topic', 1, 3000),
    +        new Kafka\TopicPartition('test-topic', 2, 3009)
    +    ]
    +);
    +var_dump($consumer->getAssignment());
     
    \ No newline at end of file diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html index de0ed7e..ca2fb15 100644 --- a/consumer/getCommittedOffsets/index.html +++ b/consumer/getCommittedOffsets/index.html @@ -1,5 +1,9 @@ getCommittedOffsets | Documentation php-kafka

    getCommittedOffsets

    Description

    
    -

    asdf

    Example

    
    +

    More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    +

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0);
    +var_dump($consumer->getCommittedOffsets([$topicPartition], 10000));
     
    \ No newline at end of file diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html index 341ad6d..1eedeeb 100644 --- a/consumer/getMetadata/index.html +++ b/consumer/getMetadata/index.html @@ -1,5 +1,9 @@ getMetadata | Documentation php-kafka

    getMetadata

    Description

    
    -

    asdf

    Example

    
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicHandle = $consumer->getTopicHandle('test-topic');
    +$singleTopicMetadata = $consumer->metadata(true, $topicHandle, 10000);
     
    \ No newline at end of file diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html index 423ed07..878af36 100644 --- a/consumer/getOffsetPositions/index.html +++ b/consumer/getOffsetPositions/index.html @@ -1,5 +1,9 @@ getOffsetPositions | Documentation php-kafka

    getOffsetPositions

    Description

    
    -

    asdf

    Example

    
    +

    More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    +

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0);
    +$topicPartitionsWithOffsets = $consumer->getOffsetPositions([$topicPartition]));
     
    \ No newline at end of file diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html index 7301d77..8f5b4e2 100644 --- a/consumer/getSubscription/index.html +++ b/consumer/getSubscription/index.html @@ -1,5 +1,9 @@ getSubscription | Documentation php-kafka

    getSubscription

    Description

    
    -

    asdf

    Example

    
    +

    More

    getSubscription

    Description

    public function getSubscription(): array {}
    +

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$consumer->subscribe(['test-topic']);
    +var_dump($consumer->getSubscription());
     
    \ No newline at end of file diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html index 64d914f..b60a909 100644 --- a/consumer/getTopicHandle/index.html +++ b/consumer/getTopicHandle/index.html @@ -1,5 +1,11 @@ getTopicHandle | Documentation php-kafka

    getTopicHandle

    Description

    
    -

    asdf

    Example

    
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicHandle = $consumer->getTopicHandle('test-topic');
    +
    +// use the topic handle for further calls, e.g. to query metadata
    +$singleTopicMetadata = $consumer->metadata(true, $topicHandle, 10000);
     
    \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index beb241f..2d84472 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -11,14 +11,20 @@ Parameter details If null is passed, latest offsets for the current assignment w Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages -are expected, to serve any queued callbacks waiting to be called.getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description asdf -ExamplegetCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description asdf -ExamplegetMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description asdf -ExamplegetOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description asdf -ExamplegetSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description asdf -ExamplegetTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description asdf -ExampleoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description asdf -ExamplequeryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description asdf -Examplesubscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description asdf -Exampleunsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description asdf -Example \ No newline at end of file +are expected, to serve any queued callbacks waiting to be called.getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +for example to query metadata from the broker +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);offsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +The returned offset for each partition is the earliest offset whose +timestamp is greater than or equal to the given timestamp in the +corresponding partition. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Any previous subscription will be unassigned and unsubscribed first. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index 4814ba8..20f6e96 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -1,5 +1,9 @@ offsetsForTimes | Documentation php-kafka

    offsetsForTimes

    Description

    
    -

    asdf

    Example

    
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
    +$offsetsOneWeekAgo = $consumer->offsetForTimes([$topicPartition], 10000);
     
    \ No newline at end of file diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html index a0fdbf5..85e3383 100644 --- a/consumer/queryWatermarkOffsets/index.html +++ b/consumer/queryWatermarkOffsets/index.html @@ -1,5 +1,12 @@ queryWatermarkOffsets | Documentation php-kafka

    queryWatermarkOffsets

    Description

    
    -

    asdf

    Example

    
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
    +$high = 0;
    +
    +$conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
    +$consumer->queryWatermarkOffsets('test-topic, 0, int &$low, int &$high, 10000);
     
    \ No newline at end of file diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html index cfb6693..dd2ccb1 100644 --- a/consumer/subscribe/index.html +++ b/consumer/subscribe/index.html @@ -1,5 +1,8 @@ subscribe | Documentation php-kafka

    subscribe

    Description

    
    -

    asdf

    Example

    
    +

    More

    subscribe

    Description

    public function subscribe(array $topics): void {}
    +

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$consumer->subscribe(['test-topic']);
     
    \ No newline at end of file diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html index 4534174..a7f9d03 100644 --- a/consumer/unsubscribe/index.html +++ b/consumer/unsubscribe/index.html @@ -1,5 +1,9 @@ unsubscribe | Documentation php-kafka

    unsubscribe

    Description

    
    -

    asdf

    Example

    
    +

    More

    unsubscribe

    Description

    public function unsubscribe(): void {}
    +

    Unsubscribe from the current subscriptions

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$consumer = new Kafka\Consumer($conf);
    +$consumer->subscribe(['test-topic']);
    +$consumer->unsubscribe();
     
    \ No newline at end of file diff --git a/index.xml b/index.xml index b528e9b..65fd99e 100644 --- a/index.xml +++ b/index.xml @@ -12,18 +12,23 @@ Registered callbacks will be automaically called rebalanceCallback, logCallback, On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages are expected, to serve any queued callbacks waiting to be called.dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description asdf -ExamplegetCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description asdf -ExamplegetMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description asdf -ExamplegetOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description asdf -ExamplegetSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description asdf -ExamplegetTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description asdf -Examplekafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +for example to query metadata from the broker +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description -Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description asdf -ExamplequeryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description asdf -ExampleRelease v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +The returned offset for each partition is the earliest offset whose +timestamp is greater than or equal to the given timestamp in the +corresponding partition. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery @@ -45,6 +50,7 @@ assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). -Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description asdf -Exampleunsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description asdf -Example \ No newline at end of file +Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Any previous subscription will be unassigned and unsubscribed first. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file From bbfab8bbb8fcaf49133ad18f63329acde5f6177e Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 03:41:53 +0000 Subject: [PATCH 11/36] deploy: e49213ab0783ba520e79dda73e1ed90457579605 --- consumer/index.xml | 2 +- consumer/queryWatermarkOffsets/index.html | 2 +- index.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/consumer/index.xml b/consumer/index.xml index 2d84472..8cceb74 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -24,7 +24,7 @@ The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html index 85e3383..3f31ece 100644 --- a/consumer/queryWatermarkOffsets/index.html +++ b/consumer/queryWatermarkOffsets/index.html @@ -8,5 +8,5 @@ $conf->set('metadata.broker.list', 'kafka:9092'); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week")); -$consumer->queryWatermarkOffsets('test-topic, 0, int &$low, int &$high, 10000); +$consumer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000); \ No newline at end of file diff --git a/index.xml b/index.xml index 65fd99e..77072c5 100644 --- a/index.xml +++ b/index.xml @@ -28,7 +28,7 @@ The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery From c62db029f5c6ea97a7d645b86a67848790e1f3cf Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 03:51:38 +0000 Subject: [PATCH 12/36] deploy: 3eb31ea5c8cb6474f8246e2de639ef1c39a37e94 --- about/index.html | 4 ++-- configuration/dump/index.html | 2 +- configuration/index.html | 2 +- configuration/set/index.html | 2 +- configuration/setDrMsgCb/index.html | 2 +- configuration/setErrorCb/index.html | 2 +- configuration/setLogCb/index.html | 2 +- configuration/setOffsetCommitCb/index.html | 2 +- configuration/setRebalanceCb/index.html | 2 +- configuration/setStatsCb/index.html | 2 +- consumer/__construct/index.html | 2 +- consumer/assign/index.html | 2 +- consumer/close/index.html | 2 +- consumer/commit/index.html | 2 +- consumer/commitAsync/index.html | 2 +- consumer/consume/index.html | 2 +- consumer/getAssignment/index.html | 2 +- consumer/getCommittedOffsets/index.html | 2 +- consumer/getMetadata/index.html | 2 +- consumer/getOffsetPositions/index.html | 2 +- consumer/getSubscription/index.html | 2 +- consumer/getTopicHandle/index.html | 2 +- consumer/index.html | 2 +- consumer/offsetForTimes/index.html | 2 +- consumer/queryWatermarkOffsets/index.html | 2 +- consumer/subscribe/index.html | 2 +- consumer/unsubscribe/index.html | 2 +- functions/index.html | 2 +- functions/kafka_err2name/index.html | 2 +- functions/kafka_err2str/index.html | 2 +- functions/kafka_get_err_descs/index.html | 2 +- functions/kafka_offset_tail/index.html | 2 +- functions/kafka_thread_cnt/index.html | 2 +- index.html | 2 +- index.xml | 19 +++++++++++++------ installation/index.html | 2 +- producer/__construct/index.html | 7 +++++++ producer/abortTransaction/index.html | 7 +++++++ producer/beginTransaction/index.html | 7 +++++++ producer/commitTransaction/index.html | 7 +++++++ producer/flush/index.html | 7 +++++++ producer/index.html | 2 +- producer/index.xml | 9 ++++++++- producer/initTransactions/index.html | 7 +++++++ producer/purge/index.html | 7 +++++++ sitemap.xml | 2 +- whats-new/index.html | 2 +- whats-new/release-1.0.0/index.html | 2 +- 48 files changed, 110 insertions(+), 47 deletions(-) create mode 100644 producer/__construct/index.html create mode 100644 producer/abortTransaction/index.html create mode 100644 producer/beginTransaction/index.html create mode 100644 producer/commitTransaction/index.html create mode 100644 producer/flush/index.html create mode 100644 producer/initTransactions/index.html create mode 100644 producer/purge/index.html diff --git a/about/index.html b/about/index.html index f1586e8..1ffcbc2 100644 --- a/about/index.html +++ b/about/index.html @@ -1,6 +1,6 @@ About | Documentation php-kafka

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x -License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    It uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/configuration/dump/index.html b/configuration/dump/index.html index 7f0c2e7..538092d 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -1,5 +1,5 @@ dump | Documentation php-kafka

    dump

    Description

    public function dump(): array {}
     

    Dumps the current configuration

    Example

    \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 62f4783..46b14b0 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -1,5 +1,5 @@ set | Documentation php-kafka

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index 877dbe4..7d748db 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -1,5 +1,5 @@
     setDrMsgCb | Documentation php-kafka

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index e704fb3..3ede9e3 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -1,5 +1,5 @@
     setErrorCb | Documentation php-kafka

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 505ad57..99cda4e 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -1,5 +1,5 @@
     setLogCb | Documentation php-kafka

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
     $conf->setLogCb(
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index 0e966d7..c660a6f 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -1,5 +1,5 @@
     setOffsetCommitCb | Documentation php-kafka

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index c301042..0d8de56 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -1,5 +1,5 @@
     setRebalanceCb | Documentation php-kafka

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index 243aca5..cf5f134 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -1,5 +1,5 @@
     setStatsCb | Documentation php-kafka

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 7dff254..7b899ff 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -1,5 +1,5 @@
     __construct | Documentation php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index 64d9266..742ce34 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -1,5 +1,5 @@
     assign | Documentation php-kafka

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 27ffbe9..4550843 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -1,5 +1,5 @@
     close | Documentation php-kafka

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 479db09..dac991e 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -1,5 +1,5 @@
     commit | Documentation php-kafka

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 8515708..06a811f 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -1,5 +1,5 @@
     commitAsync | Documentation php-kafka

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 5d0f244..a91cd7a 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -1,5 +1,5 @@
     consume | Documentation php-kafka

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 8e56b64..df78c5d 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -1,5 +1,5 @@
     getAssignment | Documentation php-kafka

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index ca2fb15..a408e7f 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -1,5 +1,5 @@
     getCommittedOffsets | Documentation php-kafka

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 1eedeeb..4429248 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -1,5 +1,5 @@
     getMetadata | Documentation php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index 878af36..e538093 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -1,5 +1,5 @@
     getOffsetPositions | Documentation php-kafka

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 8f5b4e2..d5c76d8 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -1,5 +1,5 @@
     getSubscription | Documentation php-kafka

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index b60a909..6a532af 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -1,5 +1,5 @@
     getTopicHandle | Documentation php-kafka

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index 20f6e96..2d3ff9f 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -1,5 +1,5 @@ offsetsForTimes | Documentation php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index 3f31ece..22a4b2a 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -1,5 +1,5 @@
     queryWatermarkOffsets | Documentation php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index dd2ccb1..8ce828d 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -1,5 +1,5 @@
     subscribe | Documentation php-kafka

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index a7f9d03..ed37b07 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -1,5 +1,5 @@
     unsubscribe | Documentation php-kafka

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index ea72e0f..4918d93 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -1,5 +1,5 @@ kafka_err2name | Documentation php-kafka

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index 795dc52..bc554c6 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -1,5 +1,5 @@
     kafka_err2str | Documentation php-kafka

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index f28bb66..91670fd 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -1,5 +1,5 @@
     kafka_get_err_descs | Documentation php-kafka

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 3c08b40..93a2c01 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -1,4 +1,4 @@ kafka_thread_cnt | Documentation php-kafka

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index 46ef9fc..be940bc 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,3 @@ Documentation php-kafka | Documentation php-kafka

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml index 77072c5..3e781c3 100644 --- a/index.xml +++ b/index.xml @@ -1,18 +1,23 @@ Documentation php-kafkahttps://php-kafka.github.io/Recent content on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);closehttps://php-kafka.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until the consumer has revoked its assignment, calling the rebalance callback if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are committed or the commit fails and an exception is thrown. Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !commitTransactionhttps://php-kafka.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages are expected, to serve any queued callbacks waiting to be called.dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();flushhttps://php-kafka.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 @@ -20,14 +25,16 @@ If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if diff --git a/installation/index.html b/installation/index.html index 9a66f49..b732042 100644 --- a/installation/index.html +++ b/installation/index.html @@ -1,5 +1,5 @@ Installation | Documentation php-kafka

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). diff --git a/producer/__construct/index.html b/producer/__construct/index.html new file mode 100644 index 0000000..c156619 --- /dev/null +++ b/producer/__construct/index.html @@ -0,0 +1,7 @@ +__construct | Documentation php-kafka

    \ No newline at end of file diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html new file mode 100644 index 0000000..02eef30 --- /dev/null +++ b/producer/abortTransaction/index.html @@ -0,0 +1,7 @@ +abortTransaction | Documentation php-kafka \ No newline at end of file diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html new file mode 100644 index 0000000..9c50a1c --- /dev/null +++ b/producer/beginTransaction/index.html @@ -0,0 +1,7 @@ +beginTransaction | Documentation php-kafka \ No newline at end of file diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html new file mode 100644 index 0000000..53cc4fa --- /dev/null +++ b/producer/commitTransaction/index.html @@ -0,0 +1,7 @@ +commitTransaction | Documentation php-kafka \ No newline at end of file diff --git a/producer/flush/index.html b/producer/flush/index.html new file mode 100644 index 0000000..98d0961 --- /dev/null +++ b/producer/flush/index.html @@ -0,0 +1,7 @@ +flush | Documentation php-kafka \ No newline at end of file diff --git a/producer/index.html b/producer/index.html index e1a3c49..74c91d3 100644 --- a/producer/index.html +++ b/producer/index.html @@ -1,3 +1,3 @@ Producer | Documentation php-kafka
    \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index fd0b63a..6d89ed6 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -1 +1,8 @@ -Producer on Documentation php-kafkahttps://php-kafka.github.io/producer/Recent content in Producer on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +Producer on Documentation php-kafkahttps://php-kafka.github.io/producer/Recent content in Producer on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);commitTransactionhttps://php-kafka.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);flushhttps://php-kafka.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html new file mode 100644 index 0000000..0f54f6a --- /dev/null +++ b/producer/initTransactions/index.html @@ -0,0 +1,7 @@ +initTransactions | Documentation php-kafka \ No newline at end of file diff --git a/producer/purge/index.html b/producer/purge/index.html new file mode 100644 index 0000000..c194f64 --- /dev/null +++ b/producer/purge/index.html @@ -0,0 +1,7 @@ +purge | Documentation php-kafka \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index d99675a..c353dce 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index 53b879d..95d7706 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -1,3 +1,3 @@ What's new | Documentation php-kafka

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 4864d7d..98fb856 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -1,3 +1,3 @@ Release v1.0.0 | Documentation php-kafka

    Release v1.0.0

    Initial release

    \ No newline at end of file From fee08c807f40ca0a7cdabe7434cbc1acef18107d Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 04:03:32 +0000 Subject: [PATCH 13/36] deploy: 399e7eaa64c04915b8123fed80a5fa0cffa97e81 --- 404.html | 2 +- about/index.html | 8 ++++++-- configuration/_index.php | 6 ------ configuration/dump/index.html | 8 ++++++-- configuration/index.html | 10 +++++++--- configuration/index.xml | 2 +- configuration/set/index.html | 8 ++++++-- configuration/setDrMsgCb/index.html | 8 ++++++-- configuration/setErrorCb/index.html | 8 ++++++-- configuration/setLogCb/index.html | 8 ++++++-- configuration/setOffsetCommitCb/index.html | 8 ++++++-- configuration/setRebalanceCb/index.html | 8 ++++++-- configuration/setStatsCb/index.html | 8 ++++++-- consumer/__construct/index.html | 8 ++++++-- consumer/assign/index.html | 8 ++++++-- consumer/close/index.html | 8 ++++++-- consumer/commit/index.html | 8 ++++++-- consumer/commitAsync/index.html | 8 ++++++-- consumer/consume/index.html | 8 ++++++-- consumer/getAssignment/index.html | 8 ++++++-- consumer/getCommittedOffsets/index.html | 8 ++++++-- consumer/getMetadata/index.html | 8 ++++++-- consumer/getOffsetPositions/index.html | 8 ++++++-- consumer/getSubscription/index.html | 8 ++++++-- consumer/getTopicHandle/index.html | 8 ++++++-- consumer/index.html | 8 ++++++-- consumer/offsetForTimes/index.html | 8 ++++++-- consumer/queryWatermarkOffsets/index.html | 8 ++++++-- consumer/subscribe/index.html | 8 ++++++-- consumer/unsubscribe/index.html | 8 ++++++-- functions/index.html | 8 ++++++-- functions/kafka_err2name/index.html | 8 ++++++-- functions/kafka_err2str/index.html | 8 ++++++-- functions/kafka_get_err_descs/index.html | 8 ++++++-- functions/kafka_offset_tail/index.html | 8 ++++++-- functions/kafka_thread_cnt/index.html | 8 ++++++-- index.html | 8 ++++++-- installation/index.html | 8 ++++++-- producer/__construct/index.html | 8 ++++++-- producer/abortTransaction/index.html | 8 ++++++-- producer/beginTransaction/index.html | 8 ++++++-- producer/commitTransaction/index.html | 8 ++++++-- producer/flush/index.html | 8 ++++++-- producer/index.html | 8 ++++++-- producer/initTransactions/index.html | 8 ++++++-- producer/purge/index.html | 8 ++++++-- whats-new/index.html | 8 ++++++-- whats-new/release-1.0.0/index.html | 8 ++++++-- 48 files changed, 273 insertions(+), 99 deletions(-) delete mode 100644 configuration/_index.php diff --git a/404.html b/404.html index 81af66d..690a86c 100644 --- a/404.html +++ b/404.html @@ -1,3 +1,3 @@ -404 Page not found | Documentation php-kafka
    +404 Page not found | Documentation php-kafka
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can bring you back to the homepage.
    \ No newline at end of file diff --git a/about/index.html b/about/index.html index 1ffcbc2..ac9a7ba 100644 --- a/about/index.html +++ b/about/index.html @@ -1,5 +1,9 @@ -About | Documentation php-kafka

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 diff --git a/configuration/dump/index.html b/configuration/dump/index.html index 2a2ac3a..edb1a06 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    dump

    Description

    public function dump(): array {}
     

    Dumps the current configuration

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/index.html b/configuration/index.html
    index 4bccf3c..25249ce 100644
    --- a/configuration/index.html
    +++ b/configuration/index.html
    @@ -2,6 +2,7 @@
     Documentation php-kafka

    Configuration

    \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 8ec8cf0..aab85e7 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index e5816e0..0fae7f4 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 5ac7cd9..433c577 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 5685e35..44716b5 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index f94ba4f..8ed0794 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index a96cc5f..58f515a 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index a717861..9feeaa5 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index f30f55a..11d4065 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index f0f4817..b474113 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 87b9a93..a35c014 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 2d07c7a..ffe8f94 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commit

    Description

    /**
      * @throws Kafka\Exception
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 48e498b..00b441c 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index d62e49d..1870cd6 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 28f6876..717d796 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index 3298811..a17942c 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 0f262ec..1190cee 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index 9a893f0..48c306c 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 1b6f24e..93e0d8b 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 15ea0c2..82981c8 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/index.html b/consumer/index.html
    index 1916648..09e2417 100644
    --- a/consumer/index.html
    +++ b/consumer/index.html
    @@ -2,6 +2,7 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index 423afc3..b6995b9 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index 703b921..ab77123 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index e12940b..67cfc85 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index 78c9b7e..adc0e01 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    $conf = Kafka\Configuration();
    diff --git a/functions/index.html b/functions/index.html
    index 6136f6e..f3ece68 100644
    --- a/functions/index.html
    +++ b/functions/index.html
    @@ -2,6 +2,7 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index 19a8e9a..2fe2b90 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index 9805f68..de24d4e 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index b7354d3..ea353fb 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index 7035c07..8c579c7 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
     

    Returns an offset value that is $offset before the tail of the topic

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index deb8d6b..5717c82 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index 938b203..16e55e9 100644 --- a/index.html +++ b/index.html @@ -2,6 +2,7 @@ Documentation php-kafka

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml index 74555f9..ac96424 100644 --- a/index.xml +++ b/index.xml @@ -33,7 +33,8 @@ all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Example echo $message-&gt;getErrorString();getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to @@ -52,7 +53,8 @@ Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties +err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code diff --git a/installation/index.html b/installation/index.html index 5bc8d7b..c4f9347 100644 --- a/installation/index.html +++ b/installation/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    new file mode 100644
    index 0000000..e9b77c1
    --- /dev/null
    +++ b/message/getErrorString/index.html
    @@ -0,0 +1,10 @@
    +getErrorString | Documentation php-kafka
    \ No newline at end of file
    diff --git a/message/index.html b/message/index.html
    new file mode 100644
    index 0000000..f02c809
    --- /dev/null
    +++ b/message/index.html
    @@ -0,0 +1,8 @@
    +Message | Documentation php-kafka
    \ No newline at end of file
    diff --git a/message/index.xml b/message/index.xml
    new file mode 100644
    index 0000000..856fd08
    --- /dev/null
    +++ b/message/index.xml
    @@ -0,0 +1,3 @@
    +Message on Documentation php-kafkahttps://php-kafka.github.io/message/Recent content in Message on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message
    +Example echo $message-&gt;getErrorString();Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties
    +err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)
    \ No newline at end of file
    diff --git a/message/properties/index.html b/message/properties/index.html
    new file mode 100644
    index 0000000..fc91386
    --- /dev/null
    +++ b/message/properties/index.html
    @@ -0,0 +1,8 @@
    +Properties | Documentation php-kafka

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index aa3924b..770c5c5 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index 3b370bd..f7cce53 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index 5b52284..107052e 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index cb006a2..ee0ca6d 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index f3f60b6..4b6b069 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
    diff --git a/producer/index.html b/producer/index.html
    index d094b1e..8608908 100644
    --- a/producer/index.html
    +++ b/producer/index.html
    @@ -2,6 +2,7 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index 8fd981b..bedc98e 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index 3f3b9c7..964940a 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
    diff --git a/sitemap.xml b/sitemap.xml
    index c353dce..29312a9 100644
    --- a/sitemap.xml
    +++ b/sitemap.xml
    @@ -1 +1 @@
    -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    diff --git a/whats-new/index.html b/whats-new/index.html
    index 7ae867c..47b6440 100644
    --- a/whats-new/index.html
    +++ b/whats-new/index.html
    @@ -2,6 +2,7 @@
     Documentation php-kafka

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 100d074..7137155 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -2,6 +2,7 @@ Documentation php-kafka

    Release v1.0.0

    Initial release

    \ No newline at end of file From 59bc7f53383e29199bca3d5025157bb60caa8034 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 04:59:12 +0000 Subject: [PATCH 17/36] deploy: 068bbda89efce94edc113660ee27c2610b989541 --- about/index.html | 3 ++- configuration/dump/index.html | 3 ++- configuration/index.html | 3 ++- configuration/set/index.html | 3 ++- configuration/setDrMsgCb/index.html | 3 ++- configuration/setErrorCb/index.html | 3 ++- configuration/setLogCb/index.html | 3 ++- configuration/setOffsetCommitCb/index.html | 3 ++- configuration/setRebalanceCb/index.html | 3 ++- configuration/setStatsCb/index.html | 3 ++- consumer/__construct/index.html | 3 ++- consumer/assign/index.html | 3 ++- consumer/close/index.html | 3 ++- consumer/commit/index.html | 3 ++- consumer/commitAsync/index.html | 3 ++- consumer/consume/index.html | 3 ++- consumer/getAssignment/index.html | 3 ++- consumer/getCommittedOffsets/index.html | 3 ++- consumer/getMetadata/index.html | 3 ++- consumer/getOffsetPositions/index.html | 3 ++- consumer/getSubscription/index.html | 3 ++- consumer/getTopicHandle/index.html | 3 ++- consumer/index.html | 3 ++- consumer/offsetForTimes/index.html | 3 ++- consumer/queryWatermarkOffsets/index.html | 3 ++- consumer/subscribe/index.html | 3 ++- consumer/unsubscribe/index.html | 3 ++- functions/index.html | 3 ++- functions/kafka_err2name/index.html | 3 ++- functions/kafka_err2str/index.html | 3 ++- functions/kafka_get_err_descs/index.html | 3 ++- functions/kafka_offset_tail/index.html | 3 ++- functions/kafka_thread_cnt/index.html | 3 ++- index.html | 3 ++- index.xml | 13 +++++++--- installation/index.html | 3 ++- kafkaException/__construct/index.html | 25 +++++++++++++++++++ kafkaException/getErrorString/index.html | 18 +++++++++++++ kafkaException/index.html | 9 +++++++ kafkaException/index.xml | 6 +++++ kafkaException/isFatal/index.html | 20 +++++++++++++++ kafkaException/isRetriable/index.html | 20 +++++++++++++++ .../transactionRequiresAbort/index.html | 20 +++++++++++++++ message/getErrorString/index.html | 3 ++- message/index.html | 3 ++- message/properties/index.html | 3 ++- producer/__construct/index.html | 3 ++- producer/abortTransaction/index.html | 3 ++- producer/beginTransaction/index.html | 3 ++- producer/commitTransaction/index.html | 3 ++- producer/flush/index.html | 3 ++- producer/index.html | 3 ++- producer/initTransactions/index.html | 3 ++- producer/purge/index.html | 3 ++- sitemap.xml | 2 +- whats-new/index.html | 3 ++- whats-new/release-1.0.0/index.html | 3 ++- 57 files changed, 224 insertions(+), 53 deletions(-) create mode 100644 kafkaException/__construct/index.html create mode 100644 kafkaException/getErrorString/index.html create mode 100644 kafkaException/index.html create mode 100644 kafkaException/index.xml create mode 100644 kafkaException/isFatal/index.html create mode 100644 kafkaException/isRetriable/index.html create mode 100644 kafkaException/transactionRequiresAbort/index.html diff --git a/about/index.html b/about/index.html index 1a5dbd9..b0f4b68 100644 --- a/about/index.html +++ b/about/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    About

    Supported librdkafka versions: >= 1.4.0 diff --git a/configuration/dump/index.html b/configuration/dump/index.html index edb1a06..42c8e9c 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index aab85e7..34465ac 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    set

    Description

    public function set(string $name, string $value): void {}
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index 0fae7f4..c203c4b 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 433c577..64b700e 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 44716b5..40eba67 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index 8ed0794..e6c6ba0 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index 58f515a..f3819b6 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index 9feeaa5..c3de78c 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 11d4065..3bed111 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index b474113..58f813b 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    assign

    Description

    public function assign(array $topics): void {}
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index a35c014..664402d 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    close

    Description

    public function close(): void {}
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index ffe8f94..3664fb6 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commit

    Description

    /**
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 00b441c..ab53ba6 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 1870cd6..89314a3 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 717d796..9348979 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getAssignment

    Description

    public function getAssignment(): array {}
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index a17942c..eb7733a 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 1190cee..9244e96 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index 48c306c..f627fd0 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 93e0d8b..c14a684 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    getSubscription

    Description

    public function getSubscription(): array {}
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 82981c8..be9659b 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index b6995b9..de349b4 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index ab77123..ec75e3e 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index 67cfc85..b707117 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    subscribe

    Description

    public function subscribe(array $topics): void {}
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index adc0e01..7b32dc3 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index 2fe2b90..2968fb2 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index de24d4e..d5ca2ff 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index ea353fb..6428d08 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index 8c579c7..e58eee5 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
    diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html
    index 5717c82..e3f4068 100644
    --- a/functions/kafka_thread_cnt/index.html
    +++ b/functions/kafka_thread_cnt/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/index.xml b/index.xml index ac96424..8ff243d 100644 --- a/index.xml +++ b/index.xml @@ -1,5 +1,6 @@ Documentation php-kafkahttps://php-kafka.github.io/Recent content on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. @@ -33,7 +34,8 @@ all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message Example echo $message-&gt;getErrorString();getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned @@ -46,7 +48,9 @@ the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.isFatalhttps://php-kafka.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. @@ -85,5 +89,6 @@ Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( functio The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/installation/index.html b/installation/index.html index c4f9347..4e53482 100644 --- a/installation/index.html +++ b/installation/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
    diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html
    new file mode 100644
    index 0000000..74ddc31
    --- /dev/null
    +++ b/kafkaException/__construct/index.html
    @@ -0,0 +1,25 @@
    +__construct | Documentation php-kafka

    __construct

    Description

    public function __construct(
    +    string $message,
    +    int $code,
    +    string $error_string,
    +    bool $isFatal,
    +    bool $isRetriable,
    +    bool $transactionRequiresAbort
    +) {}
    +

    Create new KafkaErrorException, this can be helpful for transaction tests

    Example

    throw new Kafka\KafkaErrorException(
    +    'Some error message',
    +    88,
    +    'This is a detailed error string',
    +    false,
    +    true,
    +    false
    +);
    +
    \ No newline at end of file diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html new file mode 100644 index 0000000..dda2a6d --- /dev/null +++ b/kafkaException/getErrorString/index.html @@ -0,0 +1,18 @@ +getErrorString | Documentation php-kafka

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    Get error description for this exception

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +try {
    +    $producer->initTransactions(10000);
    +} catch (Kafka\KafkaErrorException $e) {
    +    echo $e->getErrorString();
    +}
    +
    \ No newline at end of file diff --git a/kafkaException/index.html b/kafkaException/index.html new file mode 100644 index 0000000..d1cb7f3 --- /dev/null +++ b/kafkaException/index.html @@ -0,0 +1,9 @@ +KafkaException | Documentation php-kafka \ No newline at end of file diff --git a/kafkaException/index.xml b/kafkaException/index.xml new file mode 100644 index 0000000..0972f0b --- /dev/null +++ b/kafkaException/index.xml @@ -0,0 +1,6 @@ +KafkaException on Documentation php-kafkahttps://php-kafka.github.io/kafkaException/Recent content in KafkaException on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }transactionRequiresAborthttps://php-kafka.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } } \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html new file mode 100644 index 0000000..50a0690 --- /dev/null +++ b/kafkaException/isFatal/index.html @@ -0,0 +1,20 @@ +isFatal | Documentation php-kafka

    isFatal

    Description

    public function isFatal(): bool {}
    +

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +try {
    +    $producer->initTransactions(10000);
    +} catch (Kafka\KafkaErrorException $e) {
    +    if ($e->isFatal()) {
    +        // non-recoverable error
    +    }
    +}
    +
    \ No newline at end of file diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html new file mode 100644 index 0000000..84ea0d7 --- /dev/null +++ b/kafkaException/isRetriable/index.html @@ -0,0 +1,20 @@ +isRetriable | Documentation php-kafka

    isRetriable

    Description

    public function isRetriable(): bool {}
    +

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +try {
    +    $producer->initTransactions(10000);
    +} catch (Kafka\KafkaErrorException $e) {
    +    if ($e->isRetriable()) {
    +        // action can be retried
    +    }
    +}
    +
    \ No newline at end of file diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html new file mode 100644 index 0000000..fd6a930 --- /dev/null +++ b/kafkaException/transactionRequiresAbort/index.html @@ -0,0 +1,20 @@ +transactionRequiresAbort | Documentation php-kafka

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    +

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +try {
    +    $producer->initTransactions(10000);
    +} catch (Kafka\KafkaErrorException $e) {
    +    if ($e->$transactionRequiresAbort()) {
    +        $producer->abortTransaction(10000);
    +    }
    +}
    +
    \ No newline at end of file diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html index e9b77c1..6818558 100644 --- a/message/getErrorString/index.html +++ b/message/getErrorString/index.html @@ -2,7 +2,8 @@ Documentation php-kafka
    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index fc91386..c9c8729 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index 770c5c5..e952a30 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index f7cce53..4385ac7 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index 107052e..3d7cd92 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    beginTransaction

    Description

    public function beginTransaction(): void {}
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index ee0ca6d..5362d15 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index 4b6b069..385f062 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka
    \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index bedc98e..700b56c 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index 964940a..28015c8 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    purge

    Description

    public function purge(int $purgeFlags): int {}
    diff --git a/sitemap.xml b/sitemap.xml
    index 29312a9..f8cd82f 100644
    --- a/sitemap.xml
    +++ b/sitemap.xml
    @@ -1 +1 @@
    -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    diff --git a/whats-new/index.html b/whats-new/index.html
    index 47b6440..4ecb95e 100644
    --- a/whats-new/index.html
    +++ b/whats-new/index.html
    @@ -2,7 +2,8 @@
     Documentation php-kafka

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 7137155..03a8060 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -2,7 +2,8 @@ Documentation php-kafka

    Release v1.0.0

    Initial release

    \ No newline at end of file From 4ba442c284b80a197e31faae8f9bce9ce653277d Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 12:24:24 +0000 Subject: [PATCH 18/36] deploy: 77403711e3b8ef489934dd179a0910fbac4d6d13 --- about/index.html | 8 +++- configuration/dump/index.html | 8 +++- configuration/index.html | 8 +++- configuration/set/index.html | 8 +++- configuration/setDrMsgCb/index.html | 8 +++- configuration/setErrorCb/index.html | 8 +++- configuration/setLogCb/index.html | 8 +++- configuration/setOffsetCommitCb/index.html | 8 +++- configuration/setRebalanceCb/index.html | 8 +++- configuration/setStatsCb/index.html | 8 +++- consumer/__construct/index.html | 8 +++- consumer/assign/index.html | 8 +++- consumer/close/index.html | 8 +++- consumer/commit/index.html | 8 +++- consumer/commitAsync/index.html | 8 +++- consumer/consume/index.html | 8 +++- consumer/getAssignment/index.html | 8 +++- consumer/getCommittedOffsets/index.html | 8 +++- consumer/getMetadata/index.html | 8 +++- consumer/getOffsetPositions/index.html | 8 +++- consumer/getSubscription/index.html | 8 +++- consumer/getTopicHandle/index.html | 8 +++- consumer/index.html | 8 +++- consumer/offsetForTimes/index.html | 8 +++- consumer/queryWatermarkOffsets/index.html | 8 +++- consumer/subscribe/index.html | 8 +++- consumer/unsubscribe/index.html | 8 +++- functions/index.html | 8 +++- functions/kafka_err2name/index.html | 8 +++- functions/kafka_err2str/index.html | 8 +++- functions/kafka_get_err_descs/index.html | 8 +++- functions/kafka_offset_tail/index.html | 8 +++- functions/kafka_thread_cnt/index.html | 8 +++- index.html | 8 +++- index.xml | 43 +++++++++++++++---- installation/index.html | 8 +++- kafkaException/__construct/index.html | 8 +++- kafkaException/getErrorString/index.html | 8 +++- kafkaException/index.html | 8 +++- kafkaException/isFatal/index.html | 8 +++- kafkaException/isRetriable/index.html | 8 +++- .../transactionRequiresAbort/index.html | 8 +++- message/getErrorString/index.html | 8 +++- message/index.html | 8 +++- message/properties/index.html | 8 +++- metadata/broker/getHost/index.html | 19 ++++++++ metadata/broker/getId/index.html | 19 ++++++++ metadata/broker/getPort/index.html | 19 ++++++++ metadata/broker/index.html | 13 ++++++ metadata/broker/index.xml | 4 ++ metadata/index.html | 13 ++++++ metadata/index.xml | 1 + metadata/metadata/getBrokers/index.html | 20 +++++++++ metadata/metadata/getOrigBrokerId/index.html | 19 ++++++++ .../metadata/getOrigBrokerName/index.html | 19 ++++++++ metadata/metadata/getTopics/index.html | 25 +++++++++++ metadata/metadata/index.html | 13 ++++++ metadata/metadata/index.xml | 7 +++ metadata/partition/getErrorCode/index.html | 22 ++++++++++ metadata/partition/getId/index.html | 22 ++++++++++ metadata/partition/getIsrs/index.html | 23 ++++++++++ metadata/partition/getLeader/index.html | 22 ++++++++++ metadata/partition/getReplicas/index.html | 23 ++++++++++ metadata/partition/index.html | 13 ++++++ metadata/partition/index.xml | 6 +++ metadata/topic/getErrorCode/index.html | 19 ++++++++ metadata/topic/getName/index.html | 19 ++++++++ metadata/topic/getPartitions/index.html | 19 ++++++++ metadata/topic/index.html | 13 ++++++ metadata/topic/index.xml | 4 ++ producer/__construct/index.html | 8 +++- producer/abortTransaction/index.html | 8 +++- producer/beginTransaction/index.html | 8 +++- producer/commitTransaction/index.html | 8 +++- producer/flush/index.html | 8 +++- producer/getMetadata/index.html | 19 ++++++++ producer/getTopicHandle/index.html | 21 +++++++++ producer/index.html | 8 +++- producer/index.xml | 16 +++++-- producer/initTransactions/index.html | 8 +++- producer/offsetForTimes/index.html | 19 ++++++++ producer/poll/index.html | 19 ++++++++ producer/purge/index.html | 8 +++- producer/queryWatermarkOffsets/index.html | 22 ++++++++++ sitemap.xml | 2 +- whats-new/index.html | 8 +++- whats-new/release-1.0.0/index.html | 8 +++- 87 files changed, 869 insertions(+), 120 deletions(-) create mode 100644 metadata/broker/getHost/index.html create mode 100644 metadata/broker/getId/index.html create mode 100644 metadata/broker/getPort/index.html create mode 100644 metadata/broker/index.html create mode 100644 metadata/broker/index.xml create mode 100644 metadata/index.html create mode 100644 metadata/index.xml create mode 100644 metadata/metadata/getBrokers/index.html create mode 100644 metadata/metadata/getOrigBrokerId/index.html create mode 100644 metadata/metadata/getOrigBrokerName/index.html create mode 100644 metadata/metadata/getTopics/index.html create mode 100644 metadata/metadata/index.html create mode 100644 metadata/metadata/index.xml create mode 100644 metadata/partition/getErrorCode/index.html create mode 100644 metadata/partition/getId/index.html create mode 100644 metadata/partition/getIsrs/index.html create mode 100644 metadata/partition/getLeader/index.html create mode 100644 metadata/partition/getReplicas/index.html create mode 100644 metadata/partition/index.html create mode 100644 metadata/partition/index.xml create mode 100644 metadata/topic/getErrorCode/index.html create mode 100644 metadata/topic/getName/index.html create mode 100644 metadata/topic/getPartitions/index.html create mode 100644 metadata/topic/index.html create mode 100644 metadata/topic/index.xml create mode 100644 producer/getMetadata/index.html create mode 100644 producer/getTopicHandle/index.html create mode 100644 producer/offsetForTimes/index.html create mode 100644 producer/poll/index.html create mode 100644 producer/queryWatermarkOffsets/index.html diff --git a/about/index.html b/about/index.html index b0f4b68..484bea5 100644 --- a/about/index.html +++ b/about/index.html @@ -4,8 +4,12 @@
  1. Installation
  2. -
  3. -
  4. +
  5. Metadata
  6. +
  7. More

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x diff --git a/configuration/dump/index.html b/configuration/dump/index.html index 42c8e9c..eedb203 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -4,8 +4,12 @@

  8. Installation
  9. -
  10. -
  11. +
  12. Metadata
  13. +
  14. More

    \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 34465ac..2e917a9 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -4,8 +4,12 @@
  15. Installation
  16. -
  17. -
  18. +
  19. Metadata
  20. +
  21. More

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index c203c4b..b8c0db0 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -4,8 +4,12 @@
     
  22. Installation
  23. -
  24. -
  25. +
  26. Metadata
  27. +
  28. More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 64b700e..2fef890 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -4,8 +4,12 @@
     
  29. Installation
  30. -
  31. -
  32. +
  33. Metadata
  34. +
  35. More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 40eba67..87888d4 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -4,8 +4,12 @@
     
  36. Installation
  37. -
  38. -
  39. +
  40. Metadata
  41. +
  42. More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
     $conf->setLogCb(
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index e6c6ba0..9bc7251 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -4,8 +4,12 @@
     
  43. Installation
  44. -
  45. -
  46. +
  47. Metadata
  48. +
  49. More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index f3819b6..6964e7d 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -4,8 +4,12 @@
     
  50. Installation
  51. -
  52. -
  53. +
  54. Metadata
  55. +
  56. More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index c3de78c..530cff0 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -4,8 +4,12 @@
     
  57. Installation
  58. -
  59. -
  60. +
  61. Metadata
  62. +
  63. More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 3bed111..56b631b 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -4,8 +4,12 @@
     
  64. Installation
  65. -
  66. -
  67. +
  68. Metadata
  69. +
  70. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index 58f813b..4495370 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -4,8 +4,12 @@
     
  71. Installation
  72. -
  73. -
  74. +
  75. Metadata
  76. +
  77. More

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 664402d..1be3f96 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -4,8 +4,12 @@
     
  78. Installation
  79. -
  80. -
  81. +
  82. Metadata
  83. +
  84. More

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 3664fb6..fcc476e 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -4,8 +4,12 @@
     
  85. Installation
  86. -
  87. -
  88. +
  89. Metadata
  90. +
  91. More

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index ab53ba6..1ba4a1b 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -4,8 +4,12 @@
     
  92. Installation
  93. -
  94. -
  95. +
  96. Metadata
  97. +
  98. More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 89314a3..b1cfd63 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -4,8 +4,12 @@
     
  99. Installation
  100. -
  101. -
  102. +
  103. Metadata
  104. +
  105. More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 9348979..00171e7 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -4,8 +4,12 @@
     
  106. Installation
  107. -
  108. -
  109. +
  110. Metadata
  111. +
  112. More

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index eb7733a..9bd0af9 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -4,8 +4,12 @@
     
  113. Installation
  114. -
  115. -
  116. +
  117. Metadata
  118. +
  119. More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 9244e96..5c384e0 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -4,8 +4,12 @@
     
  120. Installation
  121. -
  122. -
  123. +
  124. Metadata
  125. +
  126. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index f627fd0..2b7d627 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -4,8 +4,12 @@
     
  127. Installation
  128. -
  129. -
  130. +
  131. Metadata
  132. +
  133. More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index c14a684..2fd5340 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -4,8 +4,12 @@
     
  134. Installation
  135. -
  136. -
  137. +
  138. Metadata
  139. +
  140. More

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index be9659b..5b74753 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -4,8 +4,12 @@
     
  141. Installation
  142. -
  143. -
  144. +
  145. Metadata
  146. +
  147. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index de349b4..d273d3a 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -4,8 +4,12 @@
  148. Installation
  149. -
  150. -
  151. +
  152. Metadata
  153. +
  154. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index ec75e3e..298389a 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -4,8 +4,12 @@
     
  155. Installation
  156. -
  157. -
  158. +
  159. Metadata
  160. +
  161. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index b707117..e2c51ae 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -4,8 +4,12 @@
     
  162. Installation
  163. -
  164. -
  165. +
  166. Metadata
  167. +
  168. More

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index 7b32dc3..4bb488f 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -4,8 +4,12 @@
     
  169. Installation
  170. -
  171. -
  172. +
  173. Metadata
  174. +
  175. More

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index 2968fb2..b35a6ab 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -4,8 +4,12 @@
  176. Installation
  177. -
  178. -
  179. +
  180. Metadata
  181. +
  182. More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index d5ca2ff..b3ea27f 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -4,8 +4,12 @@
     
  183. Installation
  184. -
  185. -
  186. +
  187. Metadata
  188. +
  189. More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index 6428d08..5ad8e8a 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -4,8 +4,12 @@
     
  190. Installation
  191. -
  192. -
  193. +
  194. Metadata
  195. +
  196. More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index e3f4068..0013cba 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -4,7 +4,11 @@
  197. Installation
  198. -
  199. -
  200. +
  201. Metadata
  202. +
  203. More

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index b09d076..9e41706 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,10 @@
  204. Installation
  205. -
  206. -
  207. +
  208. Metadata
  209. +
  210. More

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml index 8ff243d..3f60c66 100644 --- a/index.xml +++ b/index.xml @@ -33,16 +33,36 @@ This should typically be done prior to destroying a producer instance to make su all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Will return a Metadata\Collection of Metadata\Broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message -Example echo $message-&gt;getErrorString();getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +Example echo $message-&gt;getErrorString();getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +for example to query metadata from the broker +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Will return a Metadata\Collection of Metadata\Topic +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous @@ -57,7 +77,13 @@ Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);offsetsForTimeshttps://php-kafka.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +The returned offset for each partition is the earliest offset whose +timestamp is greater than or equal to the given timestamp in the +corresponding partition. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks +waiting to be called, otherwise the internal queue fill up and block the producer.Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. @@ -65,7 +91,8 @@ Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery diff --git a/installation/index.html b/installation/index.html index 4e53482..ea788b7 100644 --- a/installation/index.html +++ b/installation/index.html @@ -4,8 +4,12 @@
  211. Installation
  212. -
  213. -
  214. +
  215. Metadata
  216. +
  217. More

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index 74ddc31..7b8b09e 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -4,8 +4,12 @@

  218. Installation
  219. -
  220. -
  221. +
  222. Metadata
  223. +
  224. More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index dda2a6d..fe94242 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -4,8 +4,12 @@
     
  225. Installation
  226. -
  227. -
  228. +
  229. Metadata
  230. +
  231. More

    \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index 50a0690..f33019e 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -4,8 +4,12 @@
  232. Installation
  233. -
  234. -
  235. +
  236. Metadata
  237. +
  238. More

    isFatal

    Description

    public function isFatal(): bool {}
     

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index 84ea0d7..863f8cb 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -4,8 +4,12 @@
     
  239. Installation
  240. -
  241. -
  242. +
  243. Metadata
  244. +
  245. More

    isRetriable

    Description

    public function isRetriable(): bool {}
     

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index fd6a930..3949a16 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -4,8 +4,12 @@
     
  246. Installation
  247. -
  248. -
  249. +
  250. Metadata
  251. +
  252. More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
     

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index 6818558..6674246 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -4,8 +4,12 @@
     
  253. Installation
  254. -
  255. -
  256. +
  257. Metadata
  258. +
  259. More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error string of the message

    Example

    echo $message->getErrorString();
     
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index 6d10aa7..9a5d195 100644 --- a/message/index.html +++ b/message/index.html @@ -4,6 +4,10 @@
  260. Installation
  261. -
  262. -
  263. +
  264. Metadata
  265. +
  266. More

    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index c9c8729..2c950e5 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -4,6 +4,10 @@
  267. Installation
  268. -
  269. -
  270. +
  271. Metadata
  272. +
  273. More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html new file mode 100644 index 0000000..07a7f0b --- /dev/null +++ b/metadata/broker/getHost/index.html @@ -0,0 +1,19 @@ +getHost | Documentation php-kafka \ No newline at end of file diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html new file mode 100644 index 0000000..5cde30d --- /dev/null +++ b/metadata/broker/getId/index.html @@ -0,0 +1,19 @@ +getId | Documentation php-kafka \ No newline at end of file diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html new file mode 100644 index 0000000..d99ccbe --- /dev/null +++ b/metadata/broker/getPort/index.html @@ -0,0 +1,19 @@ +getPort | Documentation php-kafka \ No newline at end of file diff --git a/metadata/broker/index.html b/metadata/broker/index.html new file mode 100644 index 0000000..33ba33f --- /dev/null +++ b/metadata/broker/index.html @@ -0,0 +1,13 @@ +Broker | Documentation php-kafka \ No newline at end of file diff --git a/metadata/broker/index.xml b/metadata/broker/index.xml new file mode 100644 index 0000000..de551cb --- /dev/null +++ b/metadata/broker/index.xml @@ -0,0 +1,4 @@ +Broker on Documentation php-kafkahttps://php-kafka.github.io/metadata/broker/Recent content in Broker on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL; \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html new file mode 100644 index 0000000..265c399 --- /dev/null +++ b/metadata/index.html @@ -0,0 +1,13 @@ +Metadata | Documentation php-kafka \ No newline at end of file diff --git a/metadata/index.xml b/metadata/index.xml new file mode 100644 index 0000000..5152424 --- /dev/null +++ b/metadata/index.xml @@ -0,0 +1 @@ +Metadata on Documentation php-kafkahttps://php-kafka.github.io/metadata/Recent content in Metadata on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html new file mode 100644 index 0000000..fed8c18 --- /dev/null +++ b/metadata/metadata/getBrokers/index.html @@ -0,0 +1,20 @@ +getBrokers | Documentation php-kafka

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    +

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +echo $metadata->getBrokers()->current()->getHost() . PHP_EOL;
    +echo $metadata->getBrokers()->current()->getPort() . PHP_EOL;
    +
    \ No newline at end of file diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html new file mode 100644 index 0000000..c2d5ac0 --- /dev/null +++ b/metadata/metadata/getOrigBrokerId/index.html @@ -0,0 +1,19 @@ +getOrigBrokerId | Documentation php-kafka \ No newline at end of file diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html new file mode 100644 index 0000000..5acf1c3 --- /dev/null +++ b/metadata/metadata/getOrigBrokerName/index.html @@ -0,0 +1,19 @@ +getOrigBrokerName | Documentation php-kafka \ No newline at end of file diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html new file mode 100644 index 0000000..68e32eb --- /dev/null +++ b/metadata/metadata/getTopics/index.html @@ -0,0 +1,25 @@ +getTopics | Documentation php-kafka

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    +

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +echo 'Info about topics' . PHP_EOL;
    +$topics = $metadata->getTopics();
    +while ($topics->valid()) {
    +    echo sprintf('Topic name: %s', $topics->current()->getTopic()) . PHP_EOL;
    +
    +    $topics->next();
    +}
    +
    \ No newline at end of file diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html new file mode 100644 index 0000000..17b915a --- /dev/null +++ b/metadata/metadata/index.html @@ -0,0 +1,13 @@ +Metadata | Documentation php-kafka \ No newline at end of file diff --git a/metadata/metadata/index.xml b/metadata/metadata/index.xml new file mode 100644 index 0000000..f619d52 --- /dev/null +++ b/metadata/metadata/index.xml @@ -0,0 +1,7 @@ +Metadata on Documentation php-kafkahttps://php-kafka.github.io/metadata/metadata/Recent content in Metadata on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Will return a Metadata\Collection of Metadata\Broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Will return a Metadata\Collection of Metadata\Topic +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); } \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html new file mode 100644 index 0000000..bd800a5 --- /dev/null +++ b/metadata/partition/getErrorCode/index.html @@ -0,0 +1,22 @@ +getErrorCode | Documentation php-kafka

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +echo sprintf(
    +    'Topic partition error code: %d',
    +    $metadata->getTopics()->current()->getPartitions()->current()->getErrorCode()
    +) . PHP_EOL;
    +
    \ No newline at end of file diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html new file mode 100644 index 0000000..b3ef356 --- /dev/null +++ b/metadata/partition/getId/index.html @@ -0,0 +1,22 @@ +getId | Documentation php-kafka

    getId

    Description

    public function getId(): int {}
    +

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +echo sprintf(
    +    'Topic partition id: %d',
    +    $metadata->getTopics()->current()->getPartitions()->current()->getId()
    +) . PHP_EOL;
    +
    \ No newline at end of file diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html new file mode 100644 index 0000000..9309732 --- /dev/null +++ b/metadata/partition/getIsrs/index.html @@ -0,0 +1,23 @@ +getIsrs | Documentation php-kafka

    getIsrs

    Description

    public function getIsrs(): Collection {}
    +

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +$isrs = $metadata->getTopics()->current()->getPartitions()->current()->getIsrs();
    +while ($isrs->valid()) {
    +    echo sprintf('Insync Replicas id: %d', $isrs->current()) . PHP_EOL;
    +    $isrs->next();
    +}
    +
    \ No newline at end of file diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html new file mode 100644 index 0000000..fd8cdef --- /dev/null +++ b/metadata/partition/getLeader/index.html @@ -0,0 +1,22 @@ +getLeader | Documentation php-kafka

    getLeader

    Description

    public function getLeader(): int {}
    +

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +echo sprintf(
    +    'Topic partition leader: %d',
    +    $metadata->getTopics()->current()->getPartitions()->current()->getLeader()
    +) . PHP_EOL;
    +
    \ No newline at end of file diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html new file mode 100644 index 0000000..dc289f0 --- /dev/null +++ b/metadata/partition/getReplicas/index.html @@ -0,0 +1,23 @@ +getReplicas | Documentation php-kafka

    getReplicas

    Description

    public function getReplicas(): Collection {}
    +

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$metadata = $producer->getMetadata(false, 10000);
    +$replicas = $metadata->getTopics()->current()->getPartitions()->current()->getReplicas();
    +while ($replicas->valid()) {
    +    echo sprintf('Insync Replicas id: %d', $replicas->current()) . PHP_EOL;
    +    $replicas->next();
    +}
    +
    \ No newline at end of file diff --git a/metadata/partition/index.html b/metadata/partition/index.html new file mode 100644 index 0000000..d2d02e7 --- /dev/null +++ b/metadata/partition/index.html @@ -0,0 +1,13 @@ +Partition | Documentation php-kafka \ No newline at end of file diff --git a/metadata/partition/index.xml b/metadata/partition/index.xml new file mode 100644 index 0000000..f158ec8 --- /dev/null +++ b/metadata/partition/index.xml @@ -0,0 +1,6 @@ +Partition on Documentation php-kafkahttps://php-kafka.github.io/metadata/partition/Recent content in Partition on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getReplicashttps://php-kafka.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); } \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html new file mode 100644 index 0000000..014491e --- /dev/null +++ b/metadata/topic/getErrorCode/index.html @@ -0,0 +1,19 @@ +getErrorCode | Documentation php-kafka \ No newline at end of file diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html new file mode 100644 index 0000000..51c369e --- /dev/null +++ b/metadata/topic/getName/index.html @@ -0,0 +1,19 @@ +getName | Documentation php-kafka \ No newline at end of file diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html new file mode 100644 index 0000000..e24d5a6 --- /dev/null +++ b/metadata/topic/getPartitions/index.html @@ -0,0 +1,19 @@ +getPartitions | Documentation php-kafka \ No newline at end of file diff --git a/metadata/topic/index.html b/metadata/topic/index.html new file mode 100644 index 0000000..3237391 --- /dev/null +++ b/metadata/topic/index.html @@ -0,0 +1,13 @@ +Topic | Documentation php-kafka \ No newline at end of file diff --git a/metadata/topic/index.xml b/metadata/topic/index.xml new file mode 100644 index 0000000..ae155c5 --- /dev/null +++ b/metadata/topic/index.xml @@ -0,0 +1,4 @@ +Topic on Documentation php-kafkahttps://php-kafka.github.io/metadata/topic/Recent content in Topic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions(); \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index e952a30..703ac87 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -4,8 +4,12 @@
  274. Installation
  275. -
  276. -
  277. +
  278. Metadata
  279. +
  280. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index 4385ac7..81765d2 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -4,8 +4,12 @@
     
  281. Installation
  282. -
  283. -
  284. +
  285. Metadata
  286. +
  287. More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index 3d7cd92..ca05d24 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -4,8 +4,12 @@
     
  288. Installation
  289. -
  290. -
  291. +
  292. Metadata
  293. +
  294. More

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index 5362d15..c71d819 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -4,8 +4,12 @@
     
  295. Installation
  296. -
  297. -
  298. +
  299. Metadata
  300. +
  301. More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index 385f062..07a4c4d 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -4,8 +4,12 @@
     
  302. Installation
  303. -
  304. -
  305. +
  306. Metadata
  307. +
  308. More

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html
    new file mode 100644
    index 0000000..e5cdffd
    --- /dev/null
    +++ b/producer/getMetadata/index.html
    @@ -0,0 +1,19 @@
    +getMetadata | Documentation php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +$topicHandle = $producer->getTopicHandle('test-topic');
    +$singleTopicMetadata = $producer->metadata(true, $topicHandle, 10000);
    +
    \ No newline at end of file diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html new file mode 100644 index 0000000..d471720 --- /dev/null +++ b/producer/getTopicHandle/index.html @@ -0,0 +1,21 @@ +getTopicHandle | Documentation php-kafka

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +$topicHandle = $producer->getTopicHandle('test-topic');
    +
    +// use the topic handle for further calls, e.g. to query metadata
    +$singleTopicMetadata = $producer->metadata(true, $topicHandle, 10000);
    +
    \ No newline at end of file diff --git a/producer/index.html b/producer/index.html index c7bf779..0354d98 100644 --- a/producer/index.html +++ b/producer/index.html @@ -4,6 +4,10 @@
  309. Installation
  310. -
  311. -
  312. +
  313. Metadata
  314. +
  315. More

    \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index 7419171..9f000fa 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -17,16 +17,26 @@ Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +for example to query metadata from the broker +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.offsetsForTimeshttps://php-kafka.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +The returned offset for each partition is the earliest offset whose +timestamp is greater than or equal to the given timestamp in the +corresponding partition. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks +waiting to be called, otherwise the internal queue fill up and block the producer.purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. -Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata. \ No newline at end of file +Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000); \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index 700b56c..a0a7bee 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -4,8 +4,12 @@
  316. Installation
  317. -
  318. -
  319. +
  320. Metadata
  321. +
  322. More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    new file mode 100644
    index 0000000..eedff94
    --- /dev/null
    +++ b/producer/offsetForTimes/index.html
    @@ -0,0 +1,19 @@
    +offsetsForTimes | Documentation php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
    +$offsetsOneWeekAgo = $producer->offsetForTimes([$topicPartition], 10000);
    +
    \ No newline at end of file diff --git a/producer/poll/index.html b/producer/poll/index.html new file mode 100644 index 0000000..e0cdc81 --- /dev/null +++ b/producer/poll/index.html @@ -0,0 +1,19 @@ +poll | Documentation php-kafka

    poll

    Description

    public function poll(int $timeoutMs): int {}
    +

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +// produce some messsages
    +$producer->poll(0);
    +
    The producer needs to call poll at regular intervals to serve any queued callbacks
    waiting to be called, otherwise the internal queue fill up and block the producer.
    \ No newline at end of file diff --git a/producer/purge/index.html b/producer/purge/index.html index 28015c8..a251eb4 100644 --- a/producer/purge/index.html +++ b/producer/purge/index.html @@ -4,8 +4,12 @@
  323. Installation
  324. -
  325. -
  326. +
  327. Metadata
  328. +
  329. More

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html
    new file mode 100644
    index 0000000..880139b
    --- /dev/null
    +++ b/producer/queryWatermarkOffsets/index.html
    @@ -0,0 +1,22 @@
    +queryWatermarkOffsets | Documentation php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
    +$high = 0;
    +
    +$conf = Kafka\Configuration();
    +$conf->set('metadata.broker.list', 'kafka:9092');
    +$producer = new Kafka\Producer($conf);
    +$topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
    +$producer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000);
    +
    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index f8cd82f..2861f31 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index 4ecb95e..1154f4e 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -4,6 +4,10 @@
  330. Installation
  331. -
  332. -
  333. +
  334. Metadata
  335. +
  336. More

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 03a8060..3013302 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -4,6 +4,10 @@
  337. Installation
  338. -
  339. -
  340. +
  341. Metadata
  342. +
  343. More

    Release v1.0.0

    Initial release

    \ No newline at end of file From b9692618ea47dd616f7a805a394f86fb2ae2b071 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 12:28:47 +0000 Subject: [PATCH 19/36] deploy: d9a508651159257a0fac7c3b16d86879c5531116 --- about/index.html | 3 ++- configuration/dump/index.html | 3 ++- configuration/index.html | 3 ++- configuration/set/index.html | 3 ++- configuration/setDrMsgCb/index.html | 3 ++- configuration/setErrorCb/index.html | 3 ++- configuration/setLogCb/index.html | 3 ++- configuration/setOffsetCommitCb/index.html | 3 ++- configuration/setRebalanceCb/index.html | 3 ++- configuration/setStatsCb/index.html | 3 ++- consumer/__construct/index.html | 3 ++- consumer/assign/index.html | 3 ++- consumer/close/index.html | 3 ++- consumer/commit/index.html | 3 ++- consumer/commitAsync/index.html | 3 ++- consumer/consume/index.html | 3 ++- consumer/getAssignment/index.html | 3 ++- consumer/getCommittedOffsets/index.html | 3 ++- consumer/getMetadata/index.html | 3 ++- consumer/getOffsetPositions/index.html | 3 ++- consumer/getSubscription/index.html | 3 ++- consumer/getTopicHandle/index.html | 3 ++- consumer/index.html | 3 ++- consumer/offsetForTimes/index.html | 3 ++- consumer/queryWatermarkOffsets/index.html | 3 ++- consumer/subscribe/index.html | 3 ++- consumer/unsubscribe/index.html | 3 ++- functions/index.html | 3 ++- functions/kafka_err2name/index.html | 3 ++- functions/kafka_err2str/index.html | 3 ++- functions/kafka_get_err_descs/index.html | 3 ++- functions/kafka_offset_tail/index.html | 3 ++- functions/kafka_thread_cnt/index.html | 3 ++- index.html | 3 ++- installation/index.html | 3 ++- kafkaException/__construct/index.html | 3 ++- kafkaException/getErrorString/index.html | 3 ++- kafkaException/index.html | 3 ++- kafkaException/isFatal/index.html | 3 ++- kafkaException/isRetriable/index.html | 3 ++- kafkaException/transactionRequiresAbort/index.html | 3 ++- message/getErrorString/index.html | 3 ++- message/index.html | 3 ++- message/properties/index.html | 3 ++- metadata/broker/getHost/index.html | 3 ++- metadata/broker/getId/index.html | 3 ++- metadata/broker/getPort/index.html | 3 ++- metadata/broker/index.html | 3 ++- metadata/index.html | 5 +++-- metadata/metadata/getBrokers/index.html | 3 ++- metadata/metadata/getOrigBrokerId/index.html | 3 ++- metadata/metadata/getOrigBrokerName/index.html | 3 ++- metadata/metadata/getTopics/index.html | 3 ++- metadata/metadata/index.html | 3 ++- metadata/partition/getErrorCode/index.html | 3 ++- metadata/partition/getId/index.html | 3 ++- metadata/partition/getIsrs/index.html | 3 ++- metadata/partition/getLeader/index.html | 3 ++- metadata/partition/getReplicas/index.html | 3 ++- metadata/partition/index.html | 3 ++- metadata/topic/getErrorCode/index.html | 3 ++- metadata/topic/getName/index.html | 3 ++- metadata/topic/getPartitions/index.html | 3 ++- metadata/topic/index.html | 3 ++- producer/__construct/index.html | 3 ++- producer/abortTransaction/index.html | 3 ++- producer/beginTransaction/index.html | 3 ++- producer/commitTransaction/index.html | 3 ++- producer/flush/index.html | 3 ++- producer/getMetadata/index.html | 3 ++- producer/getTopicHandle/index.html | 3 ++- producer/index.html | 3 ++- producer/initTransactions/index.html | 3 ++- producer/offsetForTimes/index.html | 3 ++- producer/poll/index.html | 3 ++- producer/purge/index.html | 3 ++- producer/queryWatermarkOffsets/index.html | 3 ++- whats-new/index.html | 3 ++- whats-new/release-1.0.0/index.html | 3 ++- 79 files changed, 159 insertions(+), 80 deletions(-) diff --git a/about/index.html b/about/index.html index 484bea5..e1b565a 100644 --- a/about/index.html +++ b/about/index.html @@ -4,7 +4,8 @@
  344. Installation
  345. -
  346. Metadata
  347. \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index fed8c18..d6cd2cc 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -4,7 +4,8 @@
  348. Installation
  349. -
  350. Metadata
  351. \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 1976a47..78e03e4 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -10,7 +10,11 @@
  352. -
  353. +
  354. +
  355. +
  356. More

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index 1edcc82..3f14a3e 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -10,7 +10,11 @@
     
  357. -
  358. +
  359. +
  360. +
  361. More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 1c74ccc..288221d 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -10,7 +10,11 @@
     
  362. -
  363. +
  364. +
  365. +
  366. More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 56cc53f..2890f77 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -10,7 +10,11 @@
     
  367. -
  368. +
  369. +
  370. +
  371. More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
     $conf->setLogCb(
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index 9ed7eca..5e369ec 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -10,7 +10,11 @@
     
  372. -
  373. +
  374. +
  375. +
  376. More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index 4e79633..e2c230c 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -10,7 +10,11 @@
     
  377. -
  378. +
  379. +
  380. +
  381. More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index 0eafcd4..649e004 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -10,7 +10,11 @@
     
  382. -
  383. +
  384. +
  385. +
  386. More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 422993c..fa0044f 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -10,7 +10,11 @@
     
  387. -
  388. +
  389. +
  390. +
  391. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index 94a63d2..05c5b1a 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -10,7 +10,11 @@
     
  392. -
  393. +
  394. +
  395. +
  396. More

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 4d74bfe..4868ab0 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -10,7 +10,11 @@
     
  397. -
  398. +
  399. +
  400. +
  401. More

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 60c1b75..5b8a84e 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -10,7 +10,11 @@
     
  402. -
  403. +
  404. +
  405. +
  406. More

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 7f01892..6dba211 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -10,7 +10,11 @@
     
  407. -
  408. +
  409. +
  410. +
  411. More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 5343d9e..b281152 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -10,7 +10,11 @@
     
  412. -
  413. +
  414. +
  415. +
  416. More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 392ab37..0d05cc1 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -10,7 +10,11 @@
     
  417. -
  418. +
  419. +
  420. +
  421. More

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index e0946a8..e0e5d9a 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -10,7 +10,11 @@
     
  422. -
  423. +
  424. +
  425. +
  426. More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 0085c35..6e51387 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -10,7 +10,11 @@
     
  427. -
  428. +
  429. +
  430. +
  431. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index 8b9791b..c8663f4 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -10,7 +10,11 @@
     
  432. -
  433. +
  434. +
  435. +
  436. More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 66bd1c6..426dddb 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -10,7 +10,11 @@
     
  437. -
  438. +
  439. +
  440. +
  441. More

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 5d23eba..5091f23 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -10,7 +10,11 @@
     
  442. -
  443. +
  444. +
  445. +
  446. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index e7b3af8..e0198ac 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -10,7 +10,11 @@
  447. -
  448. +
  449. +
  450. +
  451. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index e744860..1573256 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -10,7 +10,11 @@
     
  452. -
  453. +
  454. +
  455. +
  456. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index 6407f30..76650e1 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -10,7 +10,11 @@
     
  457. -
  458. +
  459. +
  460. +
  461. More

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index 154bed2..b4c5888 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -10,7 +10,11 @@
     
  462. -
  463. +
  464. +
  465. +
  466. More

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index d98d9e7..e2b027a 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -10,7 +10,11 @@
  467. -
  468. +
  469. +
  470. +
  471. More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index 64b3114..b4479f4 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -10,7 +10,11 @@
     
  472. -
  473. +
  474. +
  475. +
  476. More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index 31a893e..2d7d0cb 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -10,7 +10,11 @@
     
  477. -
  478. +
  479. +
  480. +
  481. More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
         [
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index 9fb7303..51ce058 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -10,6 +10,10 @@
     
  482. -
  483. +
  484. +
  485. +
  486. More

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
     

    Returns an offset value that is $offset before the tail of the topic

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 05087f4..52de981 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -10,6 +10,10 @@
  487. -
  488. +
  489. +
  490. +
  491. More

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index d782507..14b4864 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,9 @@
  492. -
  493. +
  494. +
  495. +
  496. More

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml index 3f60c66..fe33469 100644 --- a/index.xml +++ b/index.xml @@ -1,9 +1,12 @@ Documentation php-kafkahttps://php-kafka.github.io/Recent content on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/topicHandle/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/about/Consumer topic handles are mainly used to query things like: +metadata offsets Producer topic handles can be used to query the same things +but are also used to produce messages.assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) before this function is called. Any messages produced, offsets sent, etc, @@ -48,11 +51,15 @@ Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offse Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandle/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/consumerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to @@ -60,7 +67,8 @@ Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broke for example to query metadata from the broker Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) Will return a Metadata\Collection of Metadata\Topic Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of @@ -83,7 +91,14 @@ timestamp is greater than or equal to the given timestamp in the corresponding partition. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks -waiting to be called, otherwise the internal queue fill up and block the producer.Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties +waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition +This is an asynchronous and non-blocking call +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition +This is an asynchronous and non-blocking call +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is fullPropertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. @@ -100,12 +115,14 @@ Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (P that non-critical errors will be retried by libdrkafka Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback You will get events according to the log_level setting -Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsetCommitCbhttps://php-kafka.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. +Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsethttps://php-kafka.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setOffsetCommitCbhttps://php-kafka.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. The results of automatic or manual offset commits will be scheduled for this callback. If no partitions had valid offsets to commit this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET which is not to be considered an error. -Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setRebalanceCbhttps://php-kafka.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. +Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setPartitionhttps://php-kafka.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setRebalanceCbhttps://php-kafka.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and &lsquo;partitions&rsquo; contains the full partition set that was either assigned or revoked. @@ -114,7 +131,8 @@ assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). -Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );setTopicNamehttps://php-kafka.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions diff --git a/installation/index.html b/installation/index.html index 72c8c5f..630a20d 100644 --- a/installation/index.html +++ b/installation/index.html @@ -10,7 +10,11 @@
  497. -
  498. +
  499. +
  500. +
  501. More

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index dc9e0f0..08e092f 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -10,7 +10,11 @@

  502. -
  503. +
  504. +
  505. +
  506. More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index 21ff84b..820aacc 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -10,7 +10,11 @@
     
  507. -
  508. +
  509. +
  510. +
  511. More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error description for this exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/index.html b/kafkaException/index.html
    index f6cc5fa..3e381c2 100644
    --- a/kafkaException/index.html
    +++ b/kafkaException/index.html
    @@ -10,5 +10,9 @@
     
  512. -
  513. +
  514. +
  515. +
  516. More

    KafkaException

    \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index d970155..f31bc06 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -10,7 +10,11 @@
  517. -
  518. +
  519. +
  520. +
  521. More

    isFatal

    Description

    public function isFatal(): bool {}
     

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index 164dcb6..feb053f 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -10,7 +10,11 @@
     
  522. -
  523. +
  524. +
  525. +
  526. More

    isRetriable

    Description

    public function isRetriable(): bool {}
     

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index 81f3930..277832c 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -10,7 +10,11 @@
     
  527. -
  528. +
  529. +
  530. +
  531. More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
     

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index 77522ae..55dfe04 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -10,7 +10,11 @@
     
  532. -
  533. +
  534. +
  535. +
  536. More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error string of the message

    Example

    echo $message->getErrorString();
     
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index 8792bd6..66d38b2 100644 --- a/message/index.html +++ b/message/index.html @@ -10,5 +10,9 @@
  537. -
  538. +
  539. +
  540. +
  541. More

    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index b467fce..8927a1a 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -10,5 +10,9 @@
  542. -
  543. +
  544. +
  545. +
  546. More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index 3155cd6..01118ed 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -10,7 +10,11 @@
  547. -
  548. +
  549. +
  550. +
  551. More

    getHost

    Description

    public function getHost(): string {}
     

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html
    index b4216d4..78e95b6 100644
    --- a/metadata/broker/getId/index.html
    +++ b/metadata/broker/getId/index.html
    @@ -10,7 +10,11 @@
     
  552. -
  553. +
  554. +
  555. +
  556. More

    getId

    Description

    public function getId(): int {}
     

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html
    index b8ccda5..3bd3727 100644
    --- a/metadata/broker/getPort/index.html
    +++ b/metadata/broker/getPort/index.html
    @@ -10,7 +10,11 @@
     
  557. -
  558. +
  559. +
  560. +
  561. More

    getPort

    Description

    public function getPort(): int {}
     

    Get host port of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/broker/index.html b/metadata/broker/index.html
    index 3b4e408..74831e2 100644
    --- a/metadata/broker/index.html
    +++ b/metadata/broker/index.html
    @@ -10,5 +10,9 @@
     
  562. -
  563. +
  564. +
  565. +
  566. More

    \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index 541f392..ed26569 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -10,5 +10,9 @@
  567. -
  568. +
  569. +
  570. +
  571. More

    \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index d6cd2cc..b20fa20 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -10,7 +10,11 @@
  572. -
  573. +
  574. +
  575. +
  576. More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
     

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html
    index b6e74f4..1935d70 100644
    --- a/metadata/metadata/getOrigBrokerId/index.html
    +++ b/metadata/metadata/getOrigBrokerId/index.html
    @@ -10,7 +10,11 @@
     
  577. -
  578. +
  579. +
  580. +
  581. More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
     

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html
    index 683c254..79af457 100644
    --- a/metadata/metadata/getOrigBrokerName/index.html
    +++ b/metadata/metadata/getOrigBrokerName/index.html
    @@ -10,7 +10,11 @@
     
  582. -
  583. +
  584. +
  585. +
  586. More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
     

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html
    index aa2179e..feac99c 100644
    --- a/metadata/metadata/getTopics/index.html
    +++ b/metadata/metadata/getTopics/index.html
    @@ -10,7 +10,11 @@
     
  587. -
  588. +
  589. +
  590. +
  591. More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
     

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html
    index df7ad25..c7ca3e4 100644
    --- a/metadata/metadata/index.html
    +++ b/metadata/metadata/index.html
    @@ -10,5 +10,9 @@
     
  592. -
  593. +
  594. +
  595. +
  596. More

    \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index 3181ff8..d9bdcf1 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -10,7 +10,11 @@
  597. -
  598. +
  599. +
  600. +
  601. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html
    index aa3e38d..2add2d7 100644
    --- a/metadata/partition/getId/index.html
    +++ b/metadata/partition/getId/index.html
    @@ -10,7 +10,11 @@
     
  602. -
  603. +
  604. +
  605. +
  606. More

    getId

    Description

    public function getId(): int {}
     

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html
    index 40d8d78..c4e2015 100644
    --- a/metadata/partition/getIsrs/index.html
    +++ b/metadata/partition/getIsrs/index.html
    @@ -10,7 +10,11 @@
     
  607. -
  608. +
  609. +
  610. +
  611. More

    getIsrs

    Description

    public function getIsrs(): Collection {}
     

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html
    index e2eccc8..6d511c6 100644
    --- a/metadata/partition/getLeader/index.html
    +++ b/metadata/partition/getLeader/index.html
    @@ -10,7 +10,11 @@
     
  612. -
  613. +
  614. +
  615. +
  616. More

    getLeader

    Description

    public function getLeader(): int {}
     

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html
    index 3418465..fc1014f 100644
    --- a/metadata/partition/getReplicas/index.html
    +++ b/metadata/partition/getReplicas/index.html
    @@ -10,7 +10,11 @@
     
  617. -
  618. +
  619. +
  620. +
  621. More

    getReplicas

    Description

    public function getReplicas(): Collection {}
     

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/index.html b/metadata/partition/index.html
    index 2759ecf..e6a9e74 100644
    --- a/metadata/partition/index.html
    +++ b/metadata/partition/index.html
    @@ -10,5 +10,9 @@
     
  622. -
  623. +
  624. +
  625. +
  626. More

    \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index 7e88787..f944acd 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -10,7 +10,11 @@
  627. -
  628. +
  629. +
  630. +
  631. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html
    index b14fe7d..ea1b3f4 100644
    --- a/metadata/topic/getName/index.html
    +++ b/metadata/topic/getName/index.html
    @@ -10,7 +10,11 @@
     
  632. -
  633. +
  634. +
  635. +
  636. More

    getName

    Description

    public function getName(): string {}
     

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html
    index 940b96f..fd4e130 100644
    --- a/metadata/topic/getPartitions/index.html
    +++ b/metadata/topic/getPartitions/index.html
    @@ -10,7 +10,11 @@
     
  637. -
  638. +
  639. +
  640. +
  641. More

    getPartitions

    Description

    public function getPartitions(): Collection {}
     

    Topic partitions reported by broker

    Example

    \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index 5c4bb2d..ecfb362 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -10,7 +10,11 @@
  642. -
  643. +
  644. +
  645. +
  646. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index 7ec6b20..91d3214 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -10,7 +10,11 @@
     
  647. -
  648. +
  649. +
  650. +
  651. More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index d1f40ce..73ad2a7 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -10,7 +10,11 @@
     
  652. -
  653. +
  654. +
  655. +
  656. More

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index 4e1e881..b1e021d 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -10,7 +10,11 @@
     
  657. -
  658. +
  659. +
  660. +
  661. More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index 5d21abd..3c71613 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -10,7 +10,11 @@
     
  662. -
  663. +
  664. +
  665. +
  666. More

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html
    index e5270d1..3000e27 100644
    --- a/producer/getMetadata/index.html
    +++ b/producer/getMetadata/index.html
    @@ -10,7 +10,11 @@
     
  667. -
  668. +
  669. +
  670. +
  671. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html
    index b289fef..1f12c5d 100644
    --- a/producer/getTopicHandle/index.html
    +++ b/producer/getTopicHandle/index.html
    @@ -10,7 +10,11 @@
     
  672. -
  673. +
  674. +
  675. +
  676. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index 09882fe..06cf8a5 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -10,7 +10,11 @@
  677. -
  678. +
  679. +
  680. +
  681. More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    index 2264e7e..7e9d08e 100644
    --- a/producer/offsetForTimes/index.html
    +++ b/producer/offsetForTimes/index.html
    @@ -10,7 +10,11 @@
     
  682. -
  683. +
  684. +
  685. +
  686. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/poll/index.html b/producer/poll/index.html
    index 06029e8..4c34697 100644
    --- a/producer/poll/index.html
    +++ b/producer/poll/index.html
    @@ -10,7 +10,11 @@
     
  687. -
  688. +
  689. +
  690. +
  691. More

    poll

    Description

    public function poll(int $timeoutMs): int {}
     

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index 63b7306..6a62e57 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -10,7 +10,11 @@
     
  692. -
  693. +
  694. +
  695. +
  696. More

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html
    index 4d2cc71..b37a71b 100644
    --- a/producer/queryWatermarkOffsets/index.html
    +++ b/producer/queryWatermarkOffsets/index.html
    @@ -10,7 +10,11 @@
     
  697. -
  698. +
  699. +
  700. +
  701. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/sitemap.xml b/sitemap.xml
    index 2861f31..ca32e9e 100644
    --- a/sitemap.xml
    +++ b/sitemap.xml
    @@ -1 +1 @@
    -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    diff --git a/topicHandle/about/index.html b/topicHandle/about/index.html
    new file mode 100644
    index 0000000..590ce89
    --- /dev/null
    +++ b/topicHandle/about/index.html
    @@ -0,0 +1,18 @@
    +About | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/consumerTopic/getName/index.html b/topicHandle/consumerTopic/getName/index.html
    new file mode 100644
    index 0000000..6eeea1e
    --- /dev/null
    +++ b/topicHandle/consumerTopic/getName/index.html
    @@ -0,0 +1,24 @@
    +getName | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/consumerTopic/index.html b/topicHandle/consumerTopic/index.html
    new file mode 100644
    index 0000000..a58748c
    --- /dev/null
    +++ b/topicHandle/consumerTopic/index.html
    @@ -0,0 +1,18 @@
    +ConsumerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/consumerTopic/index.xml b/topicHandle/consumerTopic/index.xml
    new file mode 100644
    index 0000000..06524b0
    --- /dev/null
    +++ b/topicHandle/consumerTopic/index.xml
    @@ -0,0 +1,2 @@
    +ConsumerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/consumerTopic/Recent content in ConsumerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandle/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/consumerTopic/getName/Description public function getName(): string {} Get topic name
    +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;
    \ No newline at end of file
    diff --git a/topicHandle/index.html b/topicHandle/index.html
    new file mode 100644
    index 0000000..8062f96
    --- /dev/null
    +++ b/topicHandle/index.html
    @@ -0,0 +1,18 @@
    +Topic handle | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/index.xml b/topicHandle/index.xml
    new file mode 100644
    index 0000000..3be5665
    --- /dev/null
    +++ b/topicHandle/index.xml
    @@ -0,0 +1,3 @@
    +Topic handle on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/Recent content in Topic handle on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandle/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/about/Consumer topic handles are mainly used to query things like:
    +metadata offsets Producer topic handles can be used to query the same things
    +but are also used to produce messages.
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/getName/index.html b/topicHandle/prodcuerTopic/getName/index.html
    new file mode 100644
    index 0000000..9f34925
    --- /dev/null
    +++ b/topicHandle/prodcuerTopic/getName/index.html
    @@ -0,0 +1,24 @@
    +getName | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/index.html b/topicHandle/prodcuerTopic/index.html
    new file mode 100644
    index 0000000..736e552
    --- /dev/null
    +++ b/topicHandle/prodcuerTopic/index.html
    @@ -0,0 +1,18 @@
    +ProducerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/index.xml b/topicHandle/prodcuerTopic/index.xml
    new file mode 100644
    index 0000000..6a05aaa
    --- /dev/null
    +++ b/topicHandle/prodcuerTopic/index.xml
    @@ -0,0 +1,9 @@
    +ProducerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/prodcuerTopic/Recent content in ProducerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Description public function getName(): string {} Get topic name
    +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition
    +This is an asynchronous and non-blocking call
    +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition
    +This is an asynchronous and non-blocking call
    +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/produce/index.html b/topicHandle/prodcuerTopic/produce/index.html
    new file mode 100644
    index 0000000..9dc34e0
    --- /dev/null
    +++ b/topicHandle/prodcuerTopic/produce/index.html
    @@ -0,0 +1,34 @@
    +produce | Documentation php-kafka

    produce

    Description

    public function produce(
    +    int $partition,
    +    int $msgFlags,
    +    ?string $payload = null,
    +    ?string $key = null
    +): void {}
    +

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$producerTopic = $producer->getTopicHandle('test-topic');
    +$producerTopic->produce(
    +    RD_KAFKA_PARTITION_UA,
    +    RD_KAFKA_MSG_F_BLOCK, // will block produce if queue is full
    +    'some message',
    +    'message-key'
    +);
    +
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file diff --git a/topicHandle/prodcuerTopic/producev/index.html b/topicHandle/prodcuerTopic/producev/index.html new file mode 100644 index 0000000..ad253b7 --- /dev/null +++ b/topicHandle/prodcuerTopic/producev/index.html @@ -0,0 +1,40 @@ +producev | Documentation php-kafka

    producev

    Description

    public function producev(
    +    int $partition,
    +    int $msgFlags,
    +    ?string $payload = null,
    +    ?string $key = null,
    +    ?array $headers = null,
    +    ?int $timestampMs = null
    +): void {}
    +

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +$conf->set('auto.offset.reset', 'earliest');
    +$producer = new Kafka\Producer($conf);
    +$producerTopic = $producer->getTopicHandle('test-topic');
    +$producerTopic->produce(
    +    RD_KAFKA_PARTITION_UA,
    +    RD_KAFKA_MSG_F_BLOCK, // will block produce if queue is full
    +    'some message',
    +    'message-key',
    +    [
    +        'some header' => 'some header value'
    +    ],
    +    round(microtime(true) * 1000) //timestam for this event
    +);
    +
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html new file mode 100644 index 0000000..41c0c10 --- /dev/null +++ b/topicPartition/__construct/index.html @@ -0,0 +1,20 @@ +__construct | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html new file mode 100644 index 0000000..06f799e --- /dev/null +++ b/topicPartition/getOffset/index.html @@ -0,0 +1,21 @@ +getOffset | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html new file mode 100644 index 0000000..ac6f513 --- /dev/null +++ b/topicPartition/getPartition/index.html @@ -0,0 +1,21 @@ +getPartition | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html new file mode 100644 index 0000000..6171267 --- /dev/null +++ b/topicPartition/getTopicName/index.html @@ -0,0 +1,21 @@ +getTopicName | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/index.html b/topicPartition/index.html new file mode 100644 index 0000000..c77a962 --- /dev/null +++ b/topicPartition/index.html @@ -0,0 +1,18 @@ +Topic partition | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/index.xml b/topicPartition/index.xml new file mode 100644 index 0000000..ad55caa --- /dev/null +++ b/topicPartition/index.xml @@ -0,0 +1,8 @@ +Topic partition on Documentation php-kafkahttps://php-kafka.github.io/topicPartition/Recent content in Topic partition on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;setOffsethttps://php-kafka.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setPartitionhttps://php-kafka.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setTopicNamehttps://php-kafka.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;); \ No newline at end of file diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html new file mode 100644 index 0000000..2dd1297 --- /dev/null +++ b/topicPartition/setOffset/index.html @@ -0,0 +1,21 @@ +setOffset | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html new file mode 100644 index 0000000..66d2a2f --- /dev/null +++ b/topicPartition/setPartition/index.html @@ -0,0 +1,21 @@ +setPartition | Documentation php-kafka \ No newline at end of file diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html new file mode 100644 index 0000000..881a8d9 --- /dev/null +++ b/topicPartition/setTopicName/index.html @@ -0,0 +1,21 @@ +setTopicName | Documentation php-kafka \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index 670e610..fb5516a 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -10,5 +10,9 @@
  702. -
  703. +
  704. +
  705. +
  706. More

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 6cbbdac..7ef59c2 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -10,5 +10,9 @@
  707. -
  708. +
  709. +
  710. +
  711. More

    Release v1.0.0

    Initial release

    \ No newline at end of file From c5f7f18fa419ff3797f88d59cf84578a086e07c8 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 13:18:11 +0000 Subject: [PATCH 21/36] deploy: df01374409d1c771525e0edd187ba9d29d50663a --- about/index.html | 10 +++++----- configuration/dump/index.html | 10 +++++----- configuration/index.html | 10 +++++----- configuration/set/index.html | 10 +++++----- configuration/setDrMsgCb/index.html | 10 +++++----- configuration/setErrorCb/index.html | 10 +++++----- configuration/setLogCb/index.html | 10 +++++----- configuration/setOffsetCommitCb/index.html | 10 +++++----- configuration/setRebalanceCb/index.html | 10 +++++----- configuration/setStatsCb/index.html | 10 +++++----- consumer/__construct/index.html | 10 +++++----- consumer/assign/index.html | 10 +++++----- consumer/close/index.html | 10 +++++----- consumer/commit/index.html | 10 +++++----- consumer/commitAsync/index.html | 10 +++++----- consumer/consume/index.html | 10 +++++----- consumer/getAssignment/index.html | 10 +++++----- consumer/getCommittedOffsets/index.html | 10 +++++----- consumer/getMetadata/index.html | 10 +++++----- consumer/getOffsetPositions/index.html | 10 +++++----- consumer/getSubscription/index.html | 10 +++++----- consumer/getTopicHandle/index.html | 10 +++++----- consumer/index.html | 10 +++++----- consumer/offsetForTimes/index.html | 10 +++++----- consumer/queryWatermarkOffsets/index.html | 10 +++++----- consumer/subscribe/index.html | 10 +++++----- consumer/unsubscribe/index.html | 10 +++++----- functions/index.html | 10 +++++----- functions/kafka_err2name/index.html | 10 +++++----- functions/kafka_err2str/index.html | 10 +++++----- functions/kafka_get_err_descs/index.html | 10 +++++----- functions/kafka_offset_tail/index.html | 10 +++++----- functions/kafka_thread_cnt/index.html | 10 +++++----- index.html | 10 +++++----- index.xml | 12 ++++++------ installation/index.html | 10 +++++----- kafkaException/__construct/index.html | 10 +++++----- kafkaException/getErrorString/index.html | 10 +++++----- kafkaException/index.html | 10 +++++----- kafkaException/isFatal/index.html | 10 +++++----- kafkaException/isRetriable/index.html | 10 +++++----- .../transactionRequiresAbort/index.html | 10 +++++----- message/getErrorString/index.html | 10 +++++----- message/index.html | 10 +++++----- message/properties/index.html | 10 +++++----- metadata/broker/getHost/index.html | 10 +++++----- metadata/broker/getId/index.html | 10 +++++----- metadata/broker/getPort/index.html | 10 +++++----- metadata/broker/index.html | 10 +++++----- metadata/index.html | 10 +++++----- metadata/metadata/getBrokers/index.html | 10 +++++----- metadata/metadata/getOrigBrokerId/index.html | 10 +++++----- metadata/metadata/getOrigBrokerName/index.html | 10 +++++----- metadata/metadata/getTopics/index.html | 10 +++++----- metadata/metadata/index.html | 10 +++++----- metadata/partition/getErrorCode/index.html | 10 +++++----- metadata/partition/getId/index.html | 10 +++++----- metadata/partition/getIsrs/index.html | 10 +++++----- metadata/partition/getLeader/index.html | 10 +++++----- metadata/partition/getReplicas/index.html | 10 +++++----- metadata/partition/index.html | 10 +++++----- metadata/topic/getErrorCode/index.html | 10 +++++----- metadata/topic/getName/index.html | 10 +++++----- metadata/topic/getPartitions/index.html | 10 +++++----- metadata/topic/index.html | 10 +++++----- producer/__construct/index.html | 10 +++++----- producer/abortTransaction/index.html | 10 +++++----- producer/beginTransaction/index.html | 10 +++++----- producer/commitTransaction/index.html | 10 +++++----- producer/flush/index.html | 10 +++++----- producer/getMetadata/index.html | 10 +++++----- producer/getTopicHandle/index.html | 10 +++++----- producer/index.html | 10 +++++----- producer/initTransactions/index.html | 10 +++++----- producer/offsetForTimes/index.html | 10 +++++----- producer/poll/index.html | 10 +++++----- producer/purge/index.html | 10 +++++----- producer/queryWatermarkOffsets/index.html | 10 +++++----- sitemap.xml | 2 +- topicHandle/consumerTopic/index.html | 18 ------------------ topicHandle/consumerTopic/index.xml | 2 -- topicHandle/index.html | 18 ------------------ topicHandle/index.xml | 3 --- topicHandle/prodcuerTopic/index.html | 18 ------------------ topicHandle/prodcuerTopic/index.xml | 9 --------- {topicHandle => topicHandles}/about/index.html | 12 ++++++------ .../consumerTopic/getName/index.html | 14 +++++++------- topicHandles/consumerTopic/index.html | 18 ++++++++++++++++++ topicHandles/consumerTopic/index.xml | 2 ++ topicHandles/index.html | 18 ++++++++++++++++++ topicHandles/index.xml | 3 +++ .../prodcuerTopic/getName/index.html | 14 +++++++------- topicHandles/prodcuerTopic/index.html | 18 ++++++++++++++++++ topicHandles/prodcuerTopic/index.xml | 9 +++++++++ .../prodcuerTopic/produce/index.html | 14 +++++++------- .../prodcuerTopic/producev/index.html | 14 +++++++------- topicPartition/__construct/index.html | 10 +++++----- topicPartition/getOffset/index.html | 10 +++++----- topicPartition/getPartition/index.html | 10 +++++----- topicPartition/getTopicName/index.html | 10 +++++----- topicPartition/index.html | 14 +++++++------- topicPartition/index.xml | 2 +- topicPartition/setOffset/index.html | 10 +++++----- topicPartition/setPartition/index.html | 10 +++++----- topicPartition/setTopicName/index.html | 10 +++++----- whats-new/index.html | 10 +++++----- whats-new/release-1.0.0/index.html | 10 +++++----- 107 files changed, 547 insertions(+), 547 deletions(-) delete mode 100644 topicHandle/consumerTopic/index.html delete mode 100644 topicHandle/consumerTopic/index.xml delete mode 100644 topicHandle/index.html delete mode 100644 topicHandle/index.xml delete mode 100644 topicHandle/prodcuerTopic/index.html delete mode 100644 topicHandle/prodcuerTopic/index.xml rename {topicHandle => topicHandles}/about/index.html (89%) rename {topicHandle => topicHandles}/consumerTopic/getName/index.html (89%) create mode 100644 topicHandles/consumerTopic/index.html create mode 100644 topicHandles/consumerTopic/index.xml create mode 100644 topicHandles/index.html create mode 100644 topicHandles/index.xml rename {topicHandle => topicHandles}/prodcuerTopic/getName/index.html (89%) create mode 100644 topicHandles/prodcuerTopic/index.html create mode 100644 topicHandles/prodcuerTopic/index.xml rename {topicHandle => topicHandles}/prodcuerTopic/produce/index.html (87%) rename {topicHandle => topicHandles}/prodcuerTopic/producev/index.html (88%) diff --git a/about/index.html b/about/index.html index 5422ab6..d009d34 100644 --- a/about/index.html +++ b/about/index.html @@ -10,11 +10,11 @@
  712. -
  713. -
  714. -
  715. +
  716. +
  717. +
  718. More

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x diff --git a/configuration/dump/index.html b/configuration/dump/index.html index 6156a65..7a6f550 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -10,11 +10,11 @@

  719. -
  720. -
  721. -
  722. +
  723. +
  724. +
  725. More

    dump

    Description

    public function dump(): array {}
     

    Dumps the current configuration

    Example

    \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 78e03e4..2844afd 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -10,11 +10,11 @@
  726. -
  727. -
  728. -
  729. +
  730. +
  731. +
  732. More

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html
    index 3f14a3e..968130f 100644
    --- a/configuration/setDrMsgCb/index.html
    +++ b/configuration/setDrMsgCb/index.html
    @@ -10,11 +10,11 @@
     
  733. -
  734. -
  735. -
  736. +
  737. +
  738. +
  739. More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 288221d..6dfb332 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -10,11 +10,11 @@
     
  740. -
  741. -
  742. -
  743. +
  744. +
  745. +
  746. More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 2890f77..45dcb86 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -10,11 +10,11 @@
     
  747. -
  748. -
  749. -
  750. +
  751. +
  752. +
  753. More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
     $conf->setLogCb(
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index 5e369ec..2dcd297 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -10,11 +10,11 @@
     
  754. -
  755. -
  756. -
  757. +
  758. +
  759. +
  760. More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index e2c230c..60c4149 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -10,11 +10,11 @@
     
  761. -
  762. -
  763. -
  764. +
  765. +
  766. +
  767. More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index 649e004..1ec0dd6 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -10,11 +10,11 @@
     
  768. -
  769. -
  770. -
  771. +
  772. +
  773. +
  774. More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index fa0044f..3301a22 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -10,11 +10,11 @@
     
  775. -
  776. -
  777. -
  778. +
  779. +
  780. +
  781. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index 05c5b1a..a42e773 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -10,11 +10,11 @@
     
  782. -
  783. -
  784. -
  785. +
  786. +
  787. +
  788. More

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 4868ab0..dd6686a 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -10,11 +10,11 @@
     
  789. -
  790. -
  791. -
  792. +
  793. +
  794. +
  795. More

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 5b8a84e..f658459 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -10,11 +10,11 @@
     
  796. -
  797. -
  798. -
  799. +
  800. +
  801. +
  802. More

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 6dba211..ac8e1f0 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -10,11 +10,11 @@
     
  803. -
  804. -
  805. -
  806. +
  807. +
  808. +
  809. More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index b281152..ea3d7b7 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -10,11 +10,11 @@
     
  810. -
  811. -
  812. -
  813. +
  814. +
  815. +
  816. More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 0d05cc1..bab288d 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -10,11 +10,11 @@
     
  817. -
  818. -
  819. -
  820. +
  821. +
  822. +
  823. More

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index e0e5d9a..24aa6b0 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -10,11 +10,11 @@
     
  824. -
  825. -
  826. -
  827. +
  828. +
  829. +
  830. More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 6e51387..028acb8 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -10,11 +10,11 @@
     
  831. -
  832. -
  833. -
  834. +
  835. +
  836. +
  837. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index c8663f4..6307da9 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -10,11 +10,11 @@
     
  838. -
  839. -
  840. -
  841. +
  842. +
  843. +
  844. More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 426dddb..5514d88 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -10,11 +10,11 @@
     
  845. -
  846. -
  847. -
  848. +
  849. +
  850. +
  851. More

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 5091f23..02b7308 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -10,11 +10,11 @@
     
  852. -
  853. -
  854. -
  855. +
  856. +
  857. +
  858. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index e0198ac..32f1bd0 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -10,11 +10,11 @@
  859. -
  860. -
  861. -
  862. +
  863. +
  864. +
  865. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index 1573256..d571f94 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -10,11 +10,11 @@
     
  866. -
  867. -
  868. -
  869. +
  870. +
  871. +
  872. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index 76650e1..0de6b4a 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -10,11 +10,11 @@
     
  873. -
  874. -
  875. -
  876. +
  877. +
  878. +
  879. More

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index b4c5888..fd3fea0 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -10,11 +10,11 @@
     
  880. -
  881. -
  882. -
  883. +
  884. +
  885. +
  886. More

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index e2b027a..8b76f3d 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -10,11 +10,11 @@
  887. -
  888. -
  889. -
  890. +
  891. +
  892. +
  893. More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
    diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html
    index b4479f4..84db549 100644
    --- a/functions/kafka_err2str/index.html
    +++ b/functions/kafka_err2str/index.html
    @@ -10,11 +10,11 @@
     
  894. -
  895. -
  896. -
  897. +
  898. +
  899. +
  900. More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
    diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html
    index 2d7d0cb..6a0cf1c 100644
    --- a/functions/kafka_get_err_descs/index.html
    +++ b/functions/kafka_get_err_descs/index.html
    @@ -10,11 +10,11 @@
     
  901. -
  902. -
  903. -
  904. +
  905. +
  906. +
  907. More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
         [
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index 51ce058..8ea6268 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -10,10 +10,10 @@
     
  908. -
  909. -
  910. -
  911. +
  912. +
  913. +
  914. More

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
     

    Returns an offset value that is $offset before the tail of the topic

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 52de981..d81edf4 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -10,10 +10,10 @@
  915. -
  916. -
  917. -
  918. +
  919. +
  920. +
  921. More

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index 14b4864..005248d 100644 --- a/index.html +++ b/index.html @@ -10,9 +10,9 @@
  922. -
  923. -
  924. -
  925. +
  926. +
  927. +
  928. More

    Documentation php-kafka

    \ No newline at end of file diff --git a/index.xml b/index.xml index fe33469..82f8f37 100644 --- a/index.xml +++ b/index.xml @@ -4,8 +4,8 @@ Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39 Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/topicHandle/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/about/Consumer topic handles are mainly used to query things like: -metadata offsets Producer topic handles can be used to query the same things +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: +metadata offsets ProducerTopic handles can be used to query the same things but are also used to produce messages.assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) @@ -51,8 +51,8 @@ Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offse Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandle/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/consumerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned @@ -91,11 +91,11 @@ timestamp is greater than or equal to the given timestamp in the corresponding partition. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks -waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition +waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full -key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is fullPropertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties diff --git a/installation/index.html b/installation/index.html index 630a20d..dc1c0c3 100644 --- a/installation/index.html +++ b/installation/index.html @@ -10,11 +10,11 @@
  929. -
  930. -
  931. -
  932. +
  933. +
  934. +
  935. More

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index 08e092f..4d39266 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -10,11 +10,11 @@

  936. -
  937. -
  938. -
  939. +
  940. +
  941. +
  942. More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index 820aacc..821f296 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -10,11 +10,11 @@
     
  943. -
  944. -
  945. -
  946. +
  947. +
  948. +
  949. More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error description for this exception

    Example

    \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index f31bc06..30efece 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -10,11 +10,11 @@
  950. -
  951. -
  952. -
  953. +
  954. +
  955. +
  956. More

    isFatal

    Description

    public function isFatal(): bool {}
     

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index feb053f..3b1f527 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -10,11 +10,11 @@
     
  957. -
  958. -
  959. -
  960. +
  961. +
  962. +
  963. More

    isRetriable

    Description

    public function isRetriable(): bool {}
     

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index 277832c..c97243e 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -10,11 +10,11 @@
     
  964. -
  965. -
  966. -
  967. +
  968. +
  969. +
  970. More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
     

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index 55dfe04..d354d4a 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -10,11 +10,11 @@
     
  971. -
  972. -
  973. -
  974. +
  975. +
  976. +
  977. More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error string of the message

    Example

    echo $message->getErrorString();
     
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index 66d38b2..81aed60 100644 --- a/message/index.html +++ b/message/index.html @@ -10,9 +10,9 @@
  978. -
  979. -
  980. -
  981. +
  982. +
  983. +
  984. More

    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index 8927a1a..30827d1 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -10,9 +10,9 @@
  985. -
  986. -
  987. -
  988. +
  989. +
  990. +
  991. More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index 01118ed..d1004ad 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -10,11 +10,11 @@
  992. -
  993. -
  994. -
  995. +
  996. +
  997. +
  998. More

    getHost

    Description

    public function getHost(): string {}
     

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html
    index 78e95b6..c0f3e8c 100644
    --- a/metadata/broker/getId/index.html
    +++ b/metadata/broker/getId/index.html
    @@ -10,11 +10,11 @@
     
  999. -
  1000. -
  1001. -
  1002. +
  1003. +
  1004. +
  1005. More

    getId

    Description

    public function getId(): int {}
     

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html
    index 3bd3727..f527026 100644
    --- a/metadata/broker/getPort/index.html
    +++ b/metadata/broker/getPort/index.html
    @@ -10,11 +10,11 @@
     
  1006. -
  1007. -
  1008. -
  1009. +
  1010. +
  1011. +
  1012. More

    getPort

    Description

    public function getPort(): int {}
     

    Get host port of metadata broker

    Example

    \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index ed26569..3924413 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -10,9 +10,9 @@
  1013. -
  1014. -
  1015. -
  1016. +
  1017. +
  1018. +
  1019. More

    \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index b20fa20..e0da1ac 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -10,11 +10,11 @@
  1020. -
  1021. -
  1022. -
  1023. +
  1024. +
  1025. +
  1026. More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
     

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html
    index 1935d70..de653c3 100644
    --- a/metadata/metadata/getOrigBrokerId/index.html
    +++ b/metadata/metadata/getOrigBrokerId/index.html
    @@ -10,11 +10,11 @@
     
  1027. -
  1028. -
  1029. -
  1030. +
  1031. +
  1032. +
  1033. More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
     

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html
    index 79af457..dcd3b82 100644
    --- a/metadata/metadata/getOrigBrokerName/index.html
    +++ b/metadata/metadata/getOrigBrokerName/index.html
    @@ -10,11 +10,11 @@
     
  1034. -
  1035. -
  1036. -
  1037. +
  1038. +
  1039. +
  1040. More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
     

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html
    index feac99c..4631d42 100644
    --- a/metadata/metadata/getTopics/index.html
    +++ b/metadata/metadata/getTopics/index.html
    @@ -10,11 +10,11 @@
     
  1041. -
  1042. -
  1043. -
  1044. +
  1045. +
  1046. +
  1047. More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
     

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html
    index c7ca3e4..cbaf163 100644
    --- a/metadata/metadata/index.html
    +++ b/metadata/metadata/index.html
    @@ -10,9 +10,9 @@
     
  1048. -
  1049. -
  1050. -
  1051. +
  1052. +
  1053. +
  1054. More

    \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index d9bdcf1..408028c 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -10,11 +10,11 @@
  1055. -
  1056. -
  1057. -
  1058. +
  1059. +
  1060. +
  1061. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html
    index 2add2d7..2e70d42 100644
    --- a/metadata/partition/getId/index.html
    +++ b/metadata/partition/getId/index.html
    @@ -10,11 +10,11 @@
     
  1062. -
  1063. -
  1064. -
  1065. +
  1066. +
  1067. +
  1068. More

    getId

    Description

    public function getId(): int {}
     

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html
    index c4e2015..293a490 100644
    --- a/metadata/partition/getIsrs/index.html
    +++ b/metadata/partition/getIsrs/index.html
    @@ -10,11 +10,11 @@
     
  1069. -
  1070. -
  1071. -
  1072. +
  1073. +
  1074. +
  1075. More

    getIsrs

    Description

    public function getIsrs(): Collection {}
     

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html
    index 6d511c6..26beba0 100644
    --- a/metadata/partition/getLeader/index.html
    +++ b/metadata/partition/getLeader/index.html
    @@ -10,11 +10,11 @@
     
  1076. -
  1077. -
  1078. -
  1079. +
  1080. +
  1081. +
  1082. More

    getLeader

    Description

    public function getLeader(): int {}
     

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html
    index fc1014f..34b7b98 100644
    --- a/metadata/partition/getReplicas/index.html
    +++ b/metadata/partition/getReplicas/index.html
    @@ -10,11 +10,11 @@
     
  1083. -
  1084. -
  1085. -
  1086. +
  1087. +
  1088. +
  1089. More

    getReplicas

    Description

    public function getReplicas(): Collection {}
     

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/partition/index.html b/metadata/partition/index.html
    index e6a9e74..3c5bae2 100644
    --- a/metadata/partition/index.html
    +++ b/metadata/partition/index.html
    @@ -10,9 +10,9 @@
     
  1090. -
  1091. -
  1092. -
  1093. +
  1094. +
  1095. +
  1096. More

    \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index f944acd..9da095b 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -10,11 +10,11 @@
  1097. -
  1098. -
  1099. -
  1100. +
  1101. +
  1102. +
  1103. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html
    index ea1b3f4..ee36a84 100644
    --- a/metadata/topic/getName/index.html
    +++ b/metadata/topic/getName/index.html
    @@ -10,11 +10,11 @@
     
  1104. -
  1105. -
  1106. -
  1107. +
  1108. +
  1109. +
  1110. More

    getName

    Description

    public function getName(): string {}
     

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html
    index fd4e130..cbb339d 100644
    --- a/metadata/topic/getPartitions/index.html
    +++ b/metadata/topic/getPartitions/index.html
    @@ -10,11 +10,11 @@
     
  1111. -
  1112. -
  1113. -
  1114. +
  1115. +
  1116. +
  1117. More

    getPartitions

    Description

    public function getPartitions(): Collection {}
     

    Topic partitions reported by broker

    Example

    \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index ecfb362..093ce44 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -10,11 +10,11 @@
  1118. -
  1119. -
  1120. -
  1121. +
  1122. +
  1123. +
  1124. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index 91d3214..ef187ee 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -10,11 +10,11 @@
     
  1125. -
  1126. -
  1127. -
  1128. +
  1129. +
  1130. +
  1131. More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index 73ad2a7..a8c313e 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -10,11 +10,11 @@
     
  1132. -
  1133. -
  1134. -
  1135. +
  1136. +
  1137. +
  1138. More

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index b1e021d..4d51fb0 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -10,11 +10,11 @@
     
  1139. -
  1140. -
  1141. -
  1142. +
  1143. +
  1144. +
  1145. More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index 3c71613..4b6da5a 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -10,11 +10,11 @@
     
  1146. -
  1147. -
  1148. -
  1149. +
  1150. +
  1151. +
  1152. More

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html
    index 3000e27..db4dc45 100644
    --- a/producer/getMetadata/index.html
    +++ b/producer/getMetadata/index.html
    @@ -10,11 +10,11 @@
     
  1153. -
  1154. -
  1155. -
  1156. +
  1157. +
  1158. +
  1159. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html
    index 1f12c5d..a3901f7 100644
    --- a/producer/getTopicHandle/index.html
    +++ b/producer/getTopicHandle/index.html
    @@ -10,11 +10,11 @@
     
  1160. -
  1161. -
  1162. -
  1163. +
  1164. +
  1165. +
  1166. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index 06cf8a5..7e26f57 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -10,11 +10,11 @@
  1167. -
  1168. -
  1169. -
  1170. +
  1171. +
  1172. +
  1173. More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    index 7e9d08e..7bdc502 100644
    --- a/producer/offsetForTimes/index.html
    +++ b/producer/offsetForTimes/index.html
    @@ -10,11 +10,11 @@
     
  1174. -
  1175. -
  1176. -
  1177. +
  1178. +
  1179. +
  1180. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/poll/index.html b/producer/poll/index.html
    index 4c34697..28f0780 100644
    --- a/producer/poll/index.html
    +++ b/producer/poll/index.html
    @@ -10,11 +10,11 @@
     
  1181. -
  1182. -
  1183. -
  1184. +
  1185. +
  1186. +
  1187. More

    poll

    Description

    public function poll(int $timeoutMs): int {}
     

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index 6a62e57..091fc16 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -10,11 +10,11 @@
     
  1188. -
  1189. -
  1190. -
  1191. +
  1192. +
  1193. +
  1194. More

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html
    index b37a71b..74dd80c 100644
    --- a/producer/queryWatermarkOffsets/index.html
    +++ b/producer/queryWatermarkOffsets/index.html
    @@ -10,11 +10,11 @@
     
  1195. -
  1196. -
  1197. -
  1198. +
  1199. +
  1200. +
  1201. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
    diff --git a/sitemap.xml b/sitemap.xml
    index ca32e9e..3442580 100644
    --- a/sitemap.xml
    +++ b/sitemap.xml
    @@ -1 +1 @@
    -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/
    \ No newline at end of file
    diff --git a/topicHandle/consumerTopic/index.html b/topicHandle/consumerTopic/index.html
    deleted file mode 100644
    index a58748c..0000000
    --- a/topicHandle/consumerTopic/index.html
    +++ /dev/null
    @@ -1,18 +0,0 @@
    -ConsumerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/consumerTopic/index.xml b/topicHandle/consumerTopic/index.xml
    deleted file mode 100644
    index 06524b0..0000000
    --- a/topicHandle/consumerTopic/index.xml
    +++ /dev/null
    @@ -1,2 +0,0 @@
    -ConsumerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/consumerTopic/Recent content in ConsumerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandle/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/consumerTopic/getName/Description public function getName(): string {} Get topic name
    -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;
    \ No newline at end of file
    diff --git a/topicHandle/index.html b/topicHandle/index.html
    deleted file mode 100644
    index 8062f96..0000000
    --- a/topicHandle/index.html
    +++ /dev/null
    @@ -1,18 +0,0 @@
    -Topic handle | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/index.xml b/topicHandle/index.xml
    deleted file mode 100644
    index 3be5665..0000000
    --- a/topicHandle/index.xml
    +++ /dev/null
    @@ -1,3 +0,0 @@
    -Topic handle on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/Recent content in Topic handle on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandle/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/about/Consumer topic handles are mainly used to query things like:
    -metadata offsets Producer topic handles can be used to query the same things
    -but are also used to produce messages.
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/index.html b/topicHandle/prodcuerTopic/index.html
    deleted file mode 100644
    index 736e552..0000000
    --- a/topicHandle/prodcuerTopic/index.html
    +++ /dev/null
    @@ -1,18 +0,0 @@
    -ProducerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/index.xml b/topicHandle/prodcuerTopic/index.xml
    deleted file mode 100644
    index 6a05aaa..0000000
    --- a/topicHandle/prodcuerTopic/index.xml
    +++ /dev/null
    @@ -1,9 +0,0 @@
    -ProducerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandle/prodcuerTopic/Recent content in ProducerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/getName/Description public function getName(): string {} Get topic name
    -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition
    -This is an asynchronous and non-blocking call
    -Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    -msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    -key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandle/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition
    -This is an asynchronous and non-blocking call
    -Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    -msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    \ No newline at end of file
    diff --git a/topicHandle/about/index.html b/topicHandles/about/index.html
    similarity index 89%
    rename from topicHandle/about/index.html
    rename to topicHandles/about/index.html
    index 590ce89..7c5e6d7 100644
    --- a/topicHandle/about/index.html
    +++ b/topicHandles/about/index.html
    @@ -10,9 +10,9 @@
     
  1202. -
  1203. -
  1204. -
  1205. -
  1206. More

    About

    Consumer topic handles are mainly used to query things like:

    • metadata
    • offsets

    Producer topic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file +
  1207. +
  1208. +
  1209. +
  1210. More

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file diff --git a/topicHandle/consumerTopic/getName/index.html b/topicHandles/consumerTopic/getName/index.html similarity index 89% rename from topicHandle/consumerTopic/getName/index.html rename to topicHandles/consumerTopic/getName/index.html index 6eeea1e..1981c1a 100644 --- a/topicHandle/consumerTopic/getName/index.html +++ b/topicHandles/consumerTopic/getName/index.html @@ -10,13 +10,13 @@
  1211. -
  1212. -
  1213. -
  1214. -
  1215. More

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +
  1216. +
  1217. +
  1218. +
  1219. More

    getName

    Description

    public function getName(): string {}
    +

    Get topic name

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $consumer = new Kafka\Consumer($conf);
     $consumerTopic = $consumer->getTopicHandle('test-topic');
    diff --git a/topicHandles/consumerTopic/index.html b/topicHandles/consumerTopic/index.html
    new file mode 100644
    index 0000000..1f8b02f
    --- /dev/null
    +++ b/topicHandles/consumerTopic/index.html
    @@ -0,0 +1,18 @@
    +ConsumerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandles/consumerTopic/index.xml b/topicHandles/consumerTopic/index.xml
    new file mode 100644
    index 0000000..7137ed9
    --- /dev/null
    +++ b/topicHandles/consumerTopic/index.xml
    @@ -0,0 +1,2 @@
    +ConsumerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name
    +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;
    \ No newline at end of file
    diff --git a/topicHandles/index.html b/topicHandles/index.html
    new file mode 100644
    index 0000000..5a8ccc7
    --- /dev/null
    +++ b/topicHandles/index.html
    @@ -0,0 +1,18 @@
    +Topic handles | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandles/index.xml b/topicHandles/index.xml
    new file mode 100644
    index 0000000..900a82f
    --- /dev/null
    +++ b/topicHandles/index.xml
    @@ -0,0 +1,3 @@
    +Topic handles on Documentation php-kafkahttps://php-kafka.github.io/topicHandles/Recent content in Topic handles on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like:
    +metadata offsets ProducerTopic handles can be used to query the same things
    +but are also used to produce messages.
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/getName/index.html b/topicHandles/prodcuerTopic/getName/index.html
    similarity index 89%
    rename from topicHandle/prodcuerTopic/getName/index.html
    rename to topicHandles/prodcuerTopic/getName/index.html
    index 9f34925..91722e3 100644
    --- a/topicHandle/prodcuerTopic/getName/index.html
    +++ b/topicHandles/prodcuerTopic/getName/index.html
    @@ -10,13 +10,13 @@
     
  1220. -
  1221. -
  1222. -
  1223. -
  1224. More

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +
  1225. +
  1226. +
  1227. +
  1228. More

    getName

    Description

    public function getName(): string {}
    +

    Get topic name

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
    diff --git a/topicHandles/prodcuerTopic/index.html b/topicHandles/prodcuerTopic/index.html
    new file mode 100644
    index 0000000..7d903eb
    --- /dev/null
    +++ b/topicHandles/prodcuerTopic/index.html
    @@ -0,0 +1,18 @@
    +ProducerTopic | Documentation php-kafka
    \ No newline at end of file
    diff --git a/topicHandles/prodcuerTopic/index.xml b/topicHandles/prodcuerTopic/index.xml
    new file mode 100644
    index 0000000..2a8a8a0
    --- /dev/null
    +++ b/topicHandles/prodcuerTopic/index.xml
    @@ -0,0 +1,9 @@
    +ProducerTopic on Documentation php-kafkahttps://php-kafka.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name
    +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition
    +This is an asynchronous and non-blocking call
    +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition
    +This is an asynchronous and non-blocking call
    +Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    \ No newline at end of file
    diff --git a/topicHandle/prodcuerTopic/produce/index.html b/topicHandles/prodcuerTopic/produce/index.html
    similarity index 87%
    rename from topicHandle/prodcuerTopic/produce/index.html
    rename to topicHandles/prodcuerTopic/produce/index.html
    index 9dc34e0..8197fbe 100644
    --- a/topicHandle/prodcuerTopic/produce/index.html
    +++ b/topicHandles/prodcuerTopic/produce/index.html
    @@ -10,18 +10,18 @@
     
  1229. -
  1230. -
  1231. -
  1232. -
  1233. More

    produce

    Description

    public function produce(
    +
  1234. +
  1235. +
  1236. +
  1237. More

    produce

    Description

    public function produce(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
         ?string $key = null
     ): void {}
    -

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
    diff --git a/topicHandle/prodcuerTopic/producev/index.html b/topicHandles/prodcuerTopic/producev/index.html
    similarity index 88%
    rename from topicHandle/prodcuerTopic/producev/index.html
    rename to topicHandles/prodcuerTopic/producev/index.html
    index ad253b7..72a8d57 100644
    --- a/topicHandle/prodcuerTopic/producev/index.html
    +++ b/topicHandles/prodcuerTopic/producev/index.html
    @@ -10,12 +10,12 @@
     
  1238. -
  1239. -
  1240. -
  1241. -
  1242. More

    producev

    Description

    public function producev(
    +
  1243. +
  1244. +
  1245. +
  1246. More

    producev

    Description

    public function producev(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    @@ -23,7 +23,7 @@
         ?array $headers = null,
         ?int $timestampMs = null
     ): void {}
    -

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
    diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html
    index 41c0c10..5cf377a 100644
    --- a/topicPartition/__construct/index.html
    +++ b/topicPartition/__construct/index.html
    @@ -10,11 +10,11 @@
     
  1247. -
  1248. -
  1249. -
  1250. +
  1251. +
  1252. +
  1253. More

    __construct

    Description

    public function __construct(string $topicName, int $partition, int $offset = 0) {}
     

    Create new topic partition instance

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     
    \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html index 06f799e..dd4f8d3 100644 --- a/topicPartition/getOffset/index.html +++ b/topicPartition/getOffset/index.html @@ -10,11 +10,11 @@
  1254. -
  1255. -
  1256. -
  1257. +
  1258. +
  1259. +
  1260. More

    getOffset

    Description

    public function getOffset(): int {}
     

    Get offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition offset %d', $topicPartition->getOffset()) . PHP_EOL;
    diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html
    index ac6f513..bb49ad3 100644
    --- a/topicPartition/getPartition/index.html
    +++ b/topicPartition/getPartition/index.html
    @@ -10,11 +10,11 @@
     
  1261. -
  1262. -
  1263. -
  1264. +
  1265. +
  1266. +
  1267. More

    getPartition

    Description

    public function getPartition(): int {}
     

    Get partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition partition %d', $topicPartition->getPartition()) . PHP_EOL;
    diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html
    index 6171267..67e552a 100644
    --- a/topicPartition/getTopicName/index.html
    +++ b/topicPartition/getTopicName/index.html
    @@ -10,11 +10,11 @@
     
  1268. -
  1269. -
  1270. -
  1271. +
  1272. +
  1273. +
  1274. More

    getTopicName

    Description

    public function getTopicName(): string {}
     

    Get topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('Topic partition name %s', $topicPartition->getTopicName()) . PHP_EOL;
    diff --git a/topicPartition/index.html b/topicPartition/index.html
    index c77a962..a49fc30 100644
    --- a/topicPartition/index.html
    +++ b/topicPartition/index.html
    @@ -1,4 +1,4 @@
    -Topic partition | Documentation php-kafka
    \ No newline at end of file diff --git a/topicPartition/index.xml b/topicPartition/index.xml index ad55caa..bf3b70f 100644 --- a/topicPartition/index.xml +++ b/topicPartition/index.xml @@ -1,4 +1,4 @@ -Topic partition on Documentation php-kafkahttps://php-kafka.github.io/topicPartition/Recent content in Topic partition on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +TopicPartition on Documentation php-kafkahttps://php-kafka.github.io/topicPartition/Recent content in TopicPartition on Documentation php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html index 2dd1297..468d87b 100644 --- a/topicPartition/setOffset/index.html +++ b/topicPartition/setOffset/index.html @@ -10,11 +10,11 @@
  1275. -
  1276. -
  1277. -
  1278. +
  1279. +
  1280. +
  1281. More

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
     

    Set offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setOffset(100);
    diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html
    index 66d2a2f..262d82c 100644
    --- a/topicPartition/setPartition/index.html
    +++ b/topicPartition/setPartition/index.html
    @@ -10,11 +10,11 @@
     
  1282. -
  1283. -
  1284. -
  1285. +
  1286. +
  1287. +
  1288. More

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
     

    Set partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setPartition(1);
    diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html
    index 881a8d9..d750693 100644
    --- a/topicPartition/setTopicName/index.html
    +++ b/topicPartition/setTopicName/index.html
    @@ -10,11 +10,11 @@
     
  1289. -
  1290. -
  1291. -
  1292. +
  1293. +
  1294. +
  1295. More

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
     

    Set topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setTopicName('another-test-topic');
    diff --git a/whats-new/index.html b/whats-new/index.html
    index fb5516a..1c8984a 100644
    --- a/whats-new/index.html
    +++ b/whats-new/index.html
    @@ -10,9 +10,9 @@
     
  1296. -
  1297. -
  1298. -
  1299. +
  1300. +
  1301. +
  1302. More

    What's new

    \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 7ef59c2..d2d9fe5 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -10,9 +10,9 @@
  1303. -
  1304. -
  1305. -
  1306. +
  1307. +
  1308. +
  1309. More

    Release v1.0.0

    Initial release

    \ No newline at end of file From 95a1133b16b92b67c3b98f1e3c3ce6da94b058db Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 13:23:33 +0000 Subject: [PATCH 22/36] deploy: 46e156fee8e955299c91841bfc3842d15680ba69 --- 404.html | 4 ++-- about/index.html | 4 ++-- about/index.xml | 2 +- categories/index.xml | 2 +- configuration/dump/index.html | 4 ++-- configuration/index.html | 4 ++-- configuration/index.xml | 2 +- configuration/set/index.html | 4 ++-- configuration/setDrMsgCb/index.html | 4 ++-- configuration/setErrorCb/index.html | 4 ++-- configuration/setLogCb/index.html | 4 ++-- configuration/setOffsetCommitCb/index.html | 4 ++-- configuration/setRebalanceCb/index.html | 4 ++-- configuration/setStatsCb/index.html | 4 ++-- consumer/__construct/index.html | 4 ++-- consumer/assign/index.html | 4 ++-- consumer/close/index.html | 4 ++-- consumer/commit/index.html | 4 ++-- consumer/commitAsync/index.html | 4 ++-- consumer/consume/index.html | 4 ++-- consumer/getAssignment/index.html | 4 ++-- consumer/getCommittedOffsets/index.html | 4 ++-- consumer/getMetadata/index.html | 4 ++-- consumer/getOffsetPositions/index.html | 4 ++-- consumer/getSubscription/index.html | 4 ++-- consumer/getTopicHandle/index.html | 4 ++-- consumer/index.html | 4 ++-- consumer/index.xml | 2 +- consumer/offsetForTimes/index.html | 4 ++-- consumer/queryWatermarkOffsets/index.html | 4 ++-- consumer/subscribe/index.html | 4 ++-- consumer/unsubscribe/index.html | 4 ++-- functions/index.html | 4 ++-- functions/index.xml | 2 +- functions/kafka_err2name/index.html | 4 ++-- functions/kafka_err2str/index.html | 4 ++-- functions/kafka_get_err_descs/index.html | 4 ++-- functions/kafka_offset_tail/index.html | 4 ++-- functions/kafka_thread_cnt/index.html | 4 ++-- index.html | 6 +++--- index.xml | 2 +- installation/index.html | 4 ++-- installation/index.xml | 2 +- kafkaException/__construct/index.html | 4 ++-- kafkaException/getErrorString/index.html | 4 ++-- kafkaException/index.html | 4 ++-- kafkaException/index.xml | 2 +- kafkaException/isFatal/index.html | 4 ++-- kafkaException/isRetriable/index.html | 4 ++-- kafkaException/transactionRequiresAbort/index.html | 4 ++-- message/getErrorString/index.html | 4 ++-- message/index.html | 4 ++-- message/index.xml | 2 +- message/properties/index.html | 4 ++-- metadata/broker/getHost/index.html | 4 ++-- metadata/broker/getId/index.html | 4 ++-- metadata/broker/getPort/index.html | 4 ++-- metadata/broker/index.html | 4 ++-- metadata/broker/index.xml | 2 +- metadata/index.html | 4 ++-- metadata/index.xml | 2 +- metadata/metadata/getBrokers/index.html | 4 ++-- metadata/metadata/getOrigBrokerId/index.html | 4 ++-- metadata/metadata/getOrigBrokerName/index.html | 4 ++-- metadata/metadata/getTopics/index.html | 4 ++-- metadata/metadata/index.html | 4 ++-- metadata/metadata/index.xml | 2 +- metadata/partition/getErrorCode/index.html | 4 ++-- metadata/partition/getId/index.html | 4 ++-- metadata/partition/getIsrs/index.html | 4 ++-- metadata/partition/getLeader/index.html | 4 ++-- metadata/partition/getReplicas/index.html | 4 ++-- metadata/partition/index.html | 4 ++-- metadata/partition/index.xml | 2 +- metadata/topic/getErrorCode/index.html | 4 ++-- metadata/topic/getName/index.html | 4 ++-- metadata/topic/getPartitions/index.html | 4 ++-- metadata/topic/index.html | 4 ++-- metadata/topic/index.xml | 2 +- producer/__construct/index.html | 4 ++-- producer/abortTransaction/index.html | 4 ++-- producer/beginTransaction/index.html | 4 ++-- producer/commitTransaction/index.html | 4 ++-- producer/flush/index.html | 4 ++-- producer/getMetadata/index.html | 4 ++-- producer/getTopicHandle/index.html | 4 ++-- producer/index.html | 4 ++-- producer/index.xml | 2 +- producer/initTransactions/index.html | 4 ++-- producer/offsetForTimes/index.html | 4 ++-- producer/poll/index.html | 4 ++-- producer/purge/index.html | 4 ++-- producer/queryWatermarkOffsets/index.html | 4 ++-- tags/index.xml | 2 +- topicHandles/about/index.html | 4 ++-- topicHandles/consumerTopic/getName/index.html | 4 ++-- topicHandles/consumerTopic/index.html | 4 ++-- topicHandles/consumerTopic/index.xml | 2 +- topicHandles/index.html | 4 ++-- topicHandles/index.xml | 2 +- topicHandles/prodcuerTopic/getName/index.html | 4 ++-- topicHandles/prodcuerTopic/index.html | 4 ++-- topicHandles/prodcuerTopic/index.xml | 2 +- topicHandles/prodcuerTopic/produce/index.html | 4 ++-- topicHandles/prodcuerTopic/producev/index.html | 4 ++-- topicPartition/__construct/index.html | 4 ++-- topicPartition/getOffset/index.html | 4 ++-- topicPartition/getPartition/index.html | 4 ++-- topicPartition/getTopicName/index.html | 4 ++-- topicPartition/index.html | 4 ++-- topicPartition/index.xml | 2 +- topicPartition/setOffset/index.html | 4 ++-- topicPartition/setPartition/index.html | 4 ++-- topicPartition/setTopicName/index.html | 4 ++-- whats-new/index.html | 4 ++-- whats-new/index.xml | 2 +- whats-new/release-1.0.0/index.html | 4 ++-- 117 files changed, 214 insertions(+), 214 deletions(-) diff --git a/404.html b/404.html index 690a86c..e95e113 100644 --- a/404.html +++ b/404.html @@ -1,3 +1,3 @@ -404 Page not found | Documentation php-kafka
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can +404 Page not found | Documentation of php-kafka
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can bring you back to the homepage.
    \ No newline at end of file diff --git a/about/index.html b/about/index.html index d009d34..e19d6fb 100644 --- a/about/index.html +++ b/about/index.html @@ -1,5 +1,5 @@ -About | Documentation php-kafka

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). Add the following line to your php.ini file:

    extension=php_kafka.dll
    +

    Manual installation

    git clone https://github.com/php-kafka/php-kafka.git
    +cd php-kafka
    +phpize && ./configure && make -j5 all && make install
    +

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     
    \ No newline at end of file From c959e916b0abe2fcf7e6fa2837466adb5fa6eabd Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 28 Dec 2020 22:07:21 +0000 Subject: [PATCH 25/36] deploy: 81ec64104cb6bf843760e9e16f2336b3b9a6c259 --- index.html | 7 +++++-- index.xml | 2 +- sitemap.xml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 44af204..e6c518c 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Documentation of php-kafka | Documentation of php-kafka
    +About | Documentation of php-kafka \ No newline at end of file +

    More

    About

    Supported librdkafka versions: >= 1.4.0 +Supported Kafka versions: >= 0.9 +Supported PHP versions: 7.x .. 8.x +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/index.xml b/index.xml index d5c1bf3..a51ecb0 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,4 @@ -Documentation of php-kafkahttps://php-kafka.github.io/Recent content on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +About on Documentation of php-kafkahttps://php-kafka.github.io/Recent content in About on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance diff --git a/sitemap.xml b/sitemap.xml index 3442580..491da59 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file From dcbac442e7aba14fb02765298569fdda304c0b80 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Wed, 6 Jan 2021 19:29:50 +0000 Subject: [PATCH 26/36] deploy: 07fd48cd0f168d28c7f57c13edbe68ba4397ddab --- installation/index.html | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/installation/index.html b/installation/index.html index b0fd895..ece1015 100644 --- a/installation/index.html +++ b/installation/index.html @@ -15,12 +15,10 @@
  1310. -
  1311. More

    Installation

    Installation with PECL

    Linux

    sudo pecl install kafka
    -

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
    -

    Windows

    Download DLLs from PECL and put librdkafka.dll in the root PHP directory (same level as php.exe)
    and the php_rdkfaka.dll file in your PHP extension directory (ext by default). -Add the following line to your php.ini file:

    extension=php_kafka.dll
    -

    Manual installation

    git clone https://github.com/php-kafka/php-kafka.git
    -cd php-kafka
    -phpize && ./configure && make -j5 all && make install
    -

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
    +

    More

    Installation

    Installation with PECL

    Not yet support (WIP)

    ### Manual installation
    +```bash
    +git clone https://github.com/php-kafka/php-kafka.git
    +cd php-kafka
    +phpize && ./configure && make -j5 all && make install
    +

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     
    \ No newline at end of file From 74a2a8e406c9bb2e1c1a6ea83343e23579e00adf Mon Sep 17 00:00:00 2001 From: nick-zh Date: Wed, 6 Jan 2021 19:31:21 +0000 Subject: [PATCH 27/36] deploy: daddf69868718003dabf0fffd178805c5794601f --- installation/index.html | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/installation/index.html b/installation/index.html index ece1015..b1f2546 100644 --- a/installation/index.html +++ b/installation/index.html @@ -15,10 +15,8 @@
  1312. -
  1313. More

    Installation

    Installation with PECL

    Not yet support (WIP)

    ### Manual installation
    -```bash
    -git clone https://github.com/php-kafka/php-kafka.git
    -cd php-kafka
    -phpize && ./configure && make -j5 all && make install
    -

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
    +

    More

    Installation

    Installation with PECL

    Not yet support (WIP)

    Manual installation

    git clone https://github.com/php-kafka/php-kafka.git
    +cd php-kafka
    +phpize && ./configure && make -j5 all && make install
    +

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     
    \ No newline at end of file From 64011986e2b2bbad1e2d95166e4801f00af1dde0 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 5 Apr 2021 09:19:47 +0000 Subject: [PATCH 28/36] deploy: 3d341f4ce0aef4c48e37175fd28c06a605003989 --- 404.html | 4 ++-- about/index.html | 8 ++++---- about/index.xml | 2 +- categories/index.xml | 2 +- configuration/dump/index.html | 6 +++--- configuration/index.html | 6 +++--- configuration/index.xml | 2 +- configuration/set/index.html | 6 +++--- configuration/setDrMsgCb/index.html | 6 +++--- configuration/setErrorCb/index.html | 6 +++--- configuration/setLogCb/index.html | 6 +++--- configuration/setOffsetCommitCb/index.html | 6 +++--- configuration/setRebalanceCb/index.html | 6 +++--- configuration/setStatsCb/index.html | 6 +++--- consumer/__construct/index.html | 6 +++--- consumer/assign/index.html | 6 +++--- consumer/close/index.html | 6 +++--- consumer/commit/index.html | 6 +++--- consumer/commitAsync/index.html | 6 +++--- consumer/consume/index.html | 6 +++--- consumer/getAssignment/index.html | 6 +++--- consumer/getCommittedOffsets/index.html | 6 +++--- consumer/getMetadata/index.html | 6 +++--- consumer/getOffsetPositions/index.html | 6 +++--- consumer/getSubscription/index.html | 6 +++--- consumer/getTopicHandle/index.html | 6 +++--- consumer/index.html | 6 +++--- consumer/index.xml | 2 +- consumer/offsetForTimes/index.html | 6 +++--- consumer/queryWatermarkOffsets/index.html | 6 +++--- consumer/subscribe/index.html | 6 +++--- consumer/unsubscribe/index.html | 6 +++--- functions/index.html | 6 +++--- functions/index.xml | 2 +- functions/kafka_err2name/index.html | 6 +++--- functions/kafka_err2str/index.html | 6 +++--- functions/kafka_get_err_descs/index.html | 6 +++--- functions/kafka_offset_tail/index.html | 6 +++--- functions/kafka_thread_cnt/index.html | 6 +++--- index.html | 8 ++++---- index.xml | 2 +- installation/index.html | 8 ++++---- installation/index.xml | 2 +- kafkaException/__construct/index.html | 6 +++--- kafkaException/getErrorString/index.html | 6 +++--- kafkaException/index.html | 6 +++--- kafkaException/index.xml | 2 +- kafkaException/isFatal/index.html | 6 +++--- kafkaException/isRetriable/index.html | 6 +++--- kafkaException/transactionRequiresAbort/index.html | 6 +++--- message/getErrorString/index.html | 6 +++--- message/index.html | 6 +++--- message/index.xml | 2 +- message/properties/index.html | 6 +++--- metadata/broker/getHost/index.html | 6 +++--- metadata/broker/getId/index.html | 6 +++--- metadata/broker/getPort/index.html | 6 +++--- metadata/broker/index.html | 6 +++--- metadata/broker/index.xml | 2 +- metadata/index.html | 6 +++--- metadata/index.xml | 2 +- metadata/metadata/getBrokers/index.html | 6 +++--- metadata/metadata/getOrigBrokerId/index.html | 6 +++--- metadata/metadata/getOrigBrokerName/index.html | 6 +++--- metadata/metadata/getTopics/index.html | 6 +++--- metadata/metadata/index.html | 6 +++--- metadata/metadata/index.xml | 2 +- metadata/partition/getErrorCode/index.html | 6 +++--- metadata/partition/getId/index.html | 6 +++--- metadata/partition/getIsrs/index.html | 6 +++--- metadata/partition/getLeader/index.html | 6 +++--- metadata/partition/getReplicas/index.html | 6 +++--- metadata/partition/index.html | 6 +++--- metadata/partition/index.xml | 2 +- metadata/topic/getErrorCode/index.html | 6 +++--- metadata/topic/getName/index.html | 6 +++--- metadata/topic/getPartitions/index.html | 6 +++--- metadata/topic/index.html | 6 +++--- metadata/topic/index.xml | 2 +- producer/__construct/index.html | 6 +++--- producer/abortTransaction/index.html | 6 +++--- producer/beginTransaction/index.html | 6 +++--- producer/commitTransaction/index.html | 6 +++--- producer/flush/index.html | 6 +++--- producer/getMetadata/index.html | 6 +++--- producer/getTopicHandle/index.html | 6 +++--- producer/index.html | 6 +++--- producer/index.xml | 2 +- producer/initTransactions/index.html | 6 +++--- producer/offsetForTimes/index.html | 6 +++--- producer/poll/index.html | 6 +++--- producer/purge/index.html | 6 +++--- producer/queryWatermarkOffsets/index.html | 6 +++--- tags/index.xml | 2 +- topicHandles/about/index.html | 6 +++--- topicHandles/consumerTopic/getName/index.html | 6 +++--- topicHandles/consumerTopic/index.html | 6 +++--- topicHandles/consumerTopic/index.xml | 2 +- topicHandles/index.html | 6 +++--- topicHandles/index.xml | 2 +- topicHandles/prodcuerTopic/getName/index.html | 6 +++--- topicHandles/prodcuerTopic/index.html | 6 +++--- topicHandles/prodcuerTopic/index.xml | 2 +- topicHandles/prodcuerTopic/produce/index.html | 6 +++--- topicHandles/prodcuerTopic/producev/index.html | 6 +++--- topicPartition/__construct/index.html | 6 +++--- topicPartition/getOffset/index.html | 6 +++--- topicPartition/getPartition/index.html | 6 +++--- topicPartition/getTopicName/index.html | 6 +++--- topicPartition/index.html | 6 +++--- topicPartition/index.xml | 2 +- topicPartition/setOffset/index.html | 6 +++--- topicPartition/setPartition/index.html | 6 +++--- topicPartition/setTopicName/index.html | 6 +++--- whats-new/index.html | 6 +++--- whats-new/index.xml | 2 +- whats-new/release-1.0.0/index.html | 6 +++--- 117 files changed, 311 insertions(+), 311 deletions(-) diff --git a/404.html b/404.html index e95e113..bb48e22 100644 --- a/404.html +++ b/404.html @@ -1,3 +1,3 @@ -404 Page not found | Documentation of php-kafka
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can +404 Page not found | Documentation of php-simple-kafka-client
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can bring you back to the homepage.
    \ No newline at end of file diff --git a/about/index.html b/about/index.html index e19d6fb..a357eab 100644 --- a/about/index.html +++ b/about/index.html @@ -1,5 +1,5 @@ -About | Documentation of php-kafka \ No newline at end of file +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/about/index.xml b/about/index.xml index 6ada7c7..80682a4 100644 --- a/about/index.xml +++ b/about/index.xml @@ -1 +1 @@ -About on Documentation of php-kafkahttps://php-kafka.github.io/about/Recent content in About on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/about/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml index d79e8aa..839b42f 100644 --- a/categories/index.xml +++ b/categories/index.xml @@ -1 +1 @@ -Categories on Documentation of php-kafkahttps://php-kafka.github.io/categories/Recent content in Categories on Documentation of php-kafkaHugo -- gohugo.ioen-us \ No newline at end of file +Categories on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/categories/Recent content in Categories on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/configuration/dump/index.html b/configuration/dump/index.html index e55ee3e..25fb7cc 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -1,5 +1,5 @@ -dump | Documentation of php-kafka

    dump

    Description

    public function dump(): array {}
    +

    More

    dump

    Description

    public function dump(): array {}
     

    Dumps the current configuration

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $conf->dump();
    diff --git a/configuration/index.html b/configuration/index.html
    index ef9bdb6..f2ddd58 100644
    --- a/configuration/index.html
    +++ b/configuration/index.html
    @@ -1,5 +1,5 @@
    -Configuration | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    Configuration

    \ No newline at end of file diff --git a/configuration/index.xml b/configuration/index.xml index a26bd62..493da22 100644 --- a/configuration/index.xml +++ b/configuration/index.xml @@ -1,4 +1,4 @@ -Configuration on Documentation of php-kafkahttps://php-kafka.github.io/configuration/Recent content in Configuration on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration +Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if diff --git a/configuration/set/index.html b/configuration/set/index.html index 796984f..71983a9 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -1,5 +1,5 @@ -set | Documentation of php-kafka

    set

    Description

    public function set(string $name, string $value): void {}
    +

    More

    set

    Description

    public function set(string $name, string $value): void {}
     

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     
    \ No newline at end of file diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html index 44fdc0e..0b8a2dc 100644 --- a/configuration/setDrMsgCb/index.html +++ b/configuration/setDrMsgCb/index.html @@ -1,5 +1,5 @@ -setDrMsgCb | Documentation of php-kafka

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    +

    More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
         function (Producer $kafka, Message $message) {
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index dae71b0..735f6e3 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -1,5 +1,5 @@
    -setErrorCb | Documentation of php-kafka

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    +

    More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
         function (Kafka\Kafka $kafka, $errorCode, $reason) {
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 5861f77..cdd658a 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -1,5 +1,5 @@
    -setLogCb | Documentation of php-kafka

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    +

    More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
     $conf->setLogCb(
         function (Kafka\Kafka $kafka, int $level, string $facility, string $message) {
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index 22e19a1..54f2478 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -1,5 +1,5 @@
    -setOffsetCommitCb | Documentation of php-kafka

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    +

    More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
         function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) {
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index 924d962..13692bd 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -1,5 +1,5 @@
    -setRebalanceCb | Documentation of php-kafka

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    +

    More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
         function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) {
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index c155ce9..94acb1a 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -1,5 +1,5 @@
    -setStatsCb | Documentation of php-kafka

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    +

    More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
         function (Kafka\Kafka $kafka, string $json, int $jsonLength) {
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 4fba0b1..cbad7ce 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -1,5 +1,5 @@
    -__construct | Documentation of php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index dd2ac99..4d499e1 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -1,5 +1,5 @@
    -assign | Documentation of php-kafka

    assign

    Description

    public function assign(array $topics): void {}
    +

    More

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 3e02b83..d313c32 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -1,5 +1,5 @@
    -close | Documentation of php-kafka

    close

    Description

    public function close(): void {}
    +

    More

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index b0593f1..f4cce2b 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -1,5 +1,5 @@
    -commit | Documentation of php-kafka

    commit

    Description

    /**
    +

    More

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
     public function commit($messageOrOffsets): void {}
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 6154be7..0afec1f 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -1,5 +1,5 @@
    -commitAsync | Documentation of php-kafka

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    +

    More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 7e0868f..4ead7a4 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -1,5 +1,5 @@
    -consume | Documentation of php-kafka

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    +

    More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 1197809..9def662 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -1,5 +1,5 @@
    -getAssignment | Documentation of php-kafka

    getAssignment

    Description

    public function getAssignment(): array {}
    +

    More

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index 2664fd3..0d0aa2b 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -1,5 +1,5 @@
    -getCommittedOffsets | Documentation of php-kafka

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    +

    More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index 076d9d3..418a5d9 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -1,5 +1,5 @@
    -getMetadata | Documentation of php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index ad88433..3b619a5 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -1,5 +1,5 @@
    -getOffsetPositions | Documentation of php-kafka

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    +

    More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index 4a292cd..230e14a 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -1,5 +1,5 @@
    -getSubscription | Documentation of php-kafka

    getSubscription

    Description

    public function getSubscription(): array {}
    +

    More

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 7142e4d..955173c 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -1,5 +1,5 @@
    -getTopicHandle | Documentation of php-kafka

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/index.html b/consumer/index.html
    index 1a39916..5893295 100644
    --- a/consumer/index.html
    +++ b/consumer/index.html
    @@ -1,5 +1,5 @@
    -Consumer | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index 25f1b13..998126a 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -1,4 +1,4 @@ -Consumer on Documentation of php-kafkahttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index fac10fd..49b6943 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -1,5 +1,5 @@ -offsetsForTimes | Documentation of php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index 657823f..d3c1d67 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -1,5 +1,5 @@
    -queryWatermarkOffsets | Documentation of php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html
    index fdeb4e2..19d7891 100644
    --- a/consumer/subscribe/index.html
    +++ b/consumer/subscribe/index.html
    @@ -1,5 +1,5 @@
    -subscribe | Documentation of php-kafka

    subscribe

    Description

    public function subscribe(array $topics): void {}
    +

    More

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index 97329bb..bbcdd28 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -1,5 +1,5 @@
    -unsubscribe | Documentation of php-kafka

    unsubscribe

    Description

    public function unsubscribe(): void {}
    +

    More

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/functions/index.html b/functions/index.html
    index ba98f26..f42b4f6 100644
    --- a/functions/index.html
    +++ b/functions/index.html
    @@ -1,5 +1,5 @@
    -Functions | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/functions/index.xml b/functions/index.xml index 1cbaa85..994a018 100644 --- a/functions/index.xml +++ b/functions/index.xml @@ -1,4 +1,4 @@ -Functions on Documentation of php-kafkahttps://php-kafka.github.io/functions/Recent content in Functions on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Functions on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/functions/Recent content in Functions on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafka \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index 8b3a010..1689573 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -1,5 +1,5 @@ -kafka_err2name | Documentation of php-kafka

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
    +

    More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
     
    \ No newline at end of file diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html index 3f993b9..726fa6c 100644 --- a/functions/kafka_err2str/index.html +++ b/functions/kafka_err2str/index.html @@ -1,5 +1,5 @@ -kafka_err2str | Documentation of php-kafka

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
    +

    More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
     
    \ No newline at end of file diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html index 343969b..2a390e4 100644 --- a/functions/kafka_get_err_descs/index.html +++ b/functions/kafka_get_err_descs/index.html @@ -1,5 +1,5 @@ -kafka_get_err_descs | Documentation of php-kafka

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
    +

    More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
         [
             "code" => 88,
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index f5b814c..ccf9f09 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -1,5 +1,5 @@
    -kafka_offset_tail | Documentation of php-kafka

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
    +

    More

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
     

    Returns an offset value that is $offset before the tail of the topic

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 910f76a..30f555e 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -1,5 +1,5 @@ -kafka_thread_cnt | Documentation of php-kafka \ No newline at end of file diff --git a/index.html b/index.html index e6c518c..1a78279 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ -About | Documentation of php-kafka \ No newline at end of file +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/index.xml b/index.xml index a51ecb0..d53f547 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,4 @@ -About on Documentation of php-kafkahttps://php-kafka.github.io/Recent content in About on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance diff --git a/installation/index.html b/installation/index.html index b1f2546..10590ad 100644 --- a/installation/index.html +++ b/installation/index.html @@ -1,5 +1,5 @@ -Installation | Documentation of php-kafka

    Installation

    Installation with PECL

    Not yet support (WIP)

    Manual installation

    git clone https://github.com/php-kafka/php-kafka.git
    -cd php-kafka
    +

    More

    Installation

    Installation with PECL

    Not yet support (WIP)

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +cd php-simple-kafka-client
     phpize && ./configure && make -j5 all && make install
     

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
     
    \ No newline at end of file diff --git a/installation/index.xml b/installation/index.xml index b561292..bfdc08e 100644 --- a/installation/index.xml +++ b/installation/index.xml @@ -1 +1 @@ -Installation on Documentation of php-kafkahttps://php-kafka.github.io/installation/Recent content in Installation on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +Installation on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/installation/Recent content in Installation on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index b1d1bfe..d0a200c 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -1,5 +1,5 @@ -__construct | Documentation of php-kafka

    __construct

    Description

    public function __construct(
    +

    More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
         string $error_string,
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index 2830522..9ac39bb 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -1,5 +1,5 @@
    -getErrorString | Documentation of php-kafka

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error description for this exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/kafkaException/index.html b/kafkaException/index.html
    index 861de5e..56ebecb 100644
    --- a/kafkaException/index.html
    +++ b/kafkaException/index.html
    @@ -1,5 +1,5 @@
    -KafkaException | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    KafkaException

    \ No newline at end of file diff --git a/kafkaException/index.xml b/kafkaException/index.xml index 004c4bc..8d511d1 100644 --- a/kafkaException/index.xml +++ b/kafkaException/index.xml @@ -1,4 +1,4 @@ -KafkaException on Documentation of php-kafkahttps://php-kafka.github.io/kafkaException/Recent content in KafkaException on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +KafkaException on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/kafkaException/Recent content in KafkaException on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index 14ee723..2dd657c 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -1,5 +1,5 @@ -isFatal | Documentation of php-kafka

    isFatal

    Description

    public function isFatal(): bool {}
    +

    More

    isFatal

    Description

    public function isFatal(): bool {}
     

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index f8c3113..46991b2 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -1,5 +1,5 @@
    -isRetriable | Documentation of php-kafka

    isRetriable

    Description

    public function isRetriable(): bool {}
    +

    More

    isRetriable

    Description

    public function isRetriable(): bool {}
     

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index 7ec6c53..7d02ddb 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -1,5 +1,5 @@
    -transactionRequiresAbort | Documentation of php-kafka

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    +

    More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
     

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index 94352fd..f882fd7 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -1,5 +1,5 @@
    -getErrorString | Documentation of php-kafka

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error string of the message

    Example

    echo $message->getErrorString();
     
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index dd49d3d..44a240b 100644 --- a/message/index.html +++ b/message/index.html @@ -1,5 +1,5 @@ -Message | Documentation of php-kafka \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/message/index.xml b/message/index.xml index 8486eb4..ce621a2 100644 --- a/message/index.xml +++ b/message/index.xml @@ -1,3 +1,3 @@ -Message on Documentation of php-kafkahttps://php-kafka.github.io/message/Recent content in Message on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Message on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/message/Recent content in Message on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message Example echo $message-&gt;getErrorString();Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null) \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index 88ae91c..76735b8 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -1,5 +1,5 @@ -Properties | Documentation of php-kafka

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file +

    More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index edcbad4..6ba9b7e 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -1,5 +1,5 @@ -getHost | Documentation of php-kafka

    getHost

    Description

    public function getHost(): string {}
    +

    More

    getHost

    Description

    public function getHost(): string {}
     

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html
    index 5b881c0..7e621dd 100644
    --- a/metadata/broker/getId/index.html
    +++ b/metadata/broker/getId/index.html
    @@ -1,5 +1,5 @@
    -getId | Documentation of php-kafka

    getId

    Description

    public function getId(): int {}
    +

    More

    getId

    Description

    public function getId(): int {}
     

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html
    index a81eba6..4faf8b2 100644
    --- a/metadata/broker/getPort/index.html
    +++ b/metadata/broker/getPort/index.html
    @@ -1,5 +1,5 @@
    -getPort | Documentation of php-kafka

    getPort

    Description

    public function getPort(): int {}
    +

    More

    getPort

    Description

    public function getPort(): int {}
     

    Get host port of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/broker/index.html b/metadata/broker/index.html
    index b675467..da8c0b9 100644
    --- a/metadata/broker/index.html
    +++ b/metadata/broker/index.html
    @@ -1,5 +1,5 @@
    -Broker | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/metadata/broker/index.xml b/metadata/broker/index.xml index 22171b1..6548869 100644 --- a/metadata/broker/index.xml +++ b/metadata/broker/index.xml @@ -1,4 +1,4 @@ -Broker on Documentation of php-kafkahttps://php-kafka.github.io/metadata/broker/Recent content in Broker on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker +Broker on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/broker/Recent content in Broker on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL; \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index dee82cf..aa8fee1 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -1,5 +1,5 @@ -Metadata | Documentation of php-kafka \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/index.xml b/metadata/index.xml index b7ed2c7..dcb2616 100644 --- a/metadata/index.xml +++ b/metadata/index.xml @@ -1 +1 @@ -Metadata on Documentation of php-kafkahttps://php-kafka.github.io/metadata/Recent content in Metadata on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index 78fd8ca..c5cb357 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -1,5 +1,5 @@ -getBrokers | Documentation of php-kafka

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    +

    More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
     

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html
    index 7831377..cee1f1a 100644
    --- a/metadata/metadata/getOrigBrokerId/index.html
    +++ b/metadata/metadata/getOrigBrokerId/index.html
    @@ -1,5 +1,5 @@
    -getOrigBrokerId | Documentation of php-kafka

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    +

    More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
     

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html
    index bdac14a..e242f55 100644
    --- a/metadata/metadata/getOrigBrokerName/index.html
    +++ b/metadata/metadata/getOrigBrokerName/index.html
    @@ -1,5 +1,5 @@
    -getOrigBrokerName | Documentation of php-kafka

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    +

    More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
     

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html
    index 40aba46..e03413c 100644
    --- a/metadata/metadata/getTopics/index.html
    +++ b/metadata/metadata/getTopics/index.html
    @@ -1,5 +1,5 @@
    -getTopics | Documentation of php-kafka

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    +

    More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
     

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html
    index e8404d8..cdeeea8 100644
    --- a/metadata/metadata/index.html
    +++ b/metadata/metadata/index.html
    @@ -1,5 +1,5 @@
    -Metadata | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/metadata/metadata/index.xml b/metadata/metadata/index.xml index 7d8d930..973e450 100644 --- a/metadata/metadata/index.xml +++ b/metadata/metadata/index.xml @@ -1,4 +1,4 @@ -Metadata on Documentation of php-kafkahttps://php-kafka.github.io/metadata/metadata/Recent content in Metadata on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers Will return a Metadata\Collection of Metadata\Broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index 8b015ec..f0ee430 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -1,5 +1,5 @@ -getErrorCode | Documentation of php-kafka

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html
    index 0006f59..f186d3a 100644
    --- a/metadata/partition/getId/index.html
    +++ b/metadata/partition/getId/index.html
    @@ -1,5 +1,5 @@
    -getId | Documentation of php-kafka

    getId

    Description

    public function getId(): int {}
    +

    More

    getId

    Description

    public function getId(): int {}
     

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html
    index a8b1c72..604e8db 100644
    --- a/metadata/partition/getIsrs/index.html
    +++ b/metadata/partition/getIsrs/index.html
    @@ -1,5 +1,5 @@
    -getIsrs | Documentation of php-kafka

    getIsrs

    Description

    public function getIsrs(): Collection {}
    +

    More

    getIsrs

    Description

    public function getIsrs(): Collection {}
     

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html
    index 2b1b281..5f1fb86 100644
    --- a/metadata/partition/getLeader/index.html
    +++ b/metadata/partition/getLeader/index.html
    @@ -1,5 +1,5 @@
    -getLeader | Documentation of php-kafka

    getLeader

    Description

    public function getLeader(): int {}
    +

    More

    getLeader

    Description

    public function getLeader(): int {}
     

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html
    index eb1fec4..330f060 100644
    --- a/metadata/partition/getReplicas/index.html
    +++ b/metadata/partition/getReplicas/index.html
    @@ -1,5 +1,5 @@
    -getReplicas | Documentation of php-kafka

    getReplicas

    Description

    public function getReplicas(): Collection {}
    +

    More

    getReplicas

    Description

    public function getReplicas(): Collection {}
     

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/partition/index.html b/metadata/partition/index.html
    index b3e36a4..aeb31df 100644
    --- a/metadata/partition/index.html
    +++ b/metadata/partition/index.html
    @@ -1,5 +1,5 @@
    -Partition | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/metadata/partition/index.xml b/metadata/partition/index.xml index 44f8b98..4c4d0e8 100644 --- a/metadata/partition/index.xml +++ b/metadata/partition/index.xml @@ -1,4 +1,4 @@ -Partition on Documentation of php-kafkahttps://php-kafka.github.io/metadata/partition/Recent content in Partition on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Partition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/partition/Recent content in Partition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index bb42d63..4bb93aa 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -1,5 +1,5 @@ -getErrorCode | Documentation of php-kafka

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html
    index 9c39ade..b111836 100644
    --- a/metadata/topic/getName/index.html
    +++ b/metadata/topic/getName/index.html
    @@ -1,5 +1,5 @@
    -getName | Documentation of php-kafka

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html
    index 7a7d7ca..46ac31c 100644
    --- a/metadata/topic/getPartitions/index.html
    +++ b/metadata/topic/getPartitions/index.html
    @@ -1,5 +1,5 @@
    -getPartitions | Documentation of php-kafka

    getPartitions

    Description

    public function getPartitions(): Collection {}
    +

    More

    getPartitions

    Description

    public function getPartitions(): Collection {}
     

    Topic partitions reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/metadata/topic/index.html b/metadata/topic/index.html
    index 257e98b..962c5cb 100644
    --- a/metadata/topic/index.html
    +++ b/metadata/topic/index.html
    @@ -1,5 +1,5 @@
    -Topic | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/metadata/topic/index.xml b/metadata/topic/index.xml index f9c356b..57b3cf2 100644 --- a/metadata/topic/index.xml +++ b/metadata/topic/index.xml @@ -1,4 +1,4 @@ -Topic on Documentation of php-kafkahttps://php-kafka.github.io/metadata/topic/Recent content in Topic on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Topic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/topic/Recent content in Topic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions(); \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index ed7402a..111ed3f 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -1,5 +1,5 @@ -__construct | Documentation of php-kafka

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index edb57e7..5ccbf14 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -1,5 +1,5 @@
    -abortTransaction | Documentation of php-kafka

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    +

    More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index cb0740a..b5a78e3 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -1,5 +1,5 @@
    -beginTransaction | Documentation of php-kafka

    beginTransaction

    Description

    public function beginTransaction(): void {}
    +

    More

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index 0de3c6c..ffe7f9b 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -1,5 +1,5 @@
    -commitTransaction | Documentation of php-kafka

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    +

    More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index a311c54..1f1d151 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -1,5 +1,5 @@
    -flush | Documentation of php-kafka

    flush

    Description

    public function flush(int $timeoutMs): int {}
    +

    More

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html
    index 2650b9a..ab6691f 100644
    --- a/producer/getMetadata/index.html
    +++ b/producer/getMetadata/index.html
    @@ -1,5 +1,5 @@
    -getMetadata | Documentation of php-kafka

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html
    index ad36c7a..da4287b 100644
    --- a/producer/getTopicHandle/index.html
    +++ b/producer/getTopicHandle/index.html
    @@ -1,5 +1,5 @@
    -getTopicHandle | Documentation of php-kafka

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/index.html b/producer/index.html
    index c7f0e86..6bb3cfe 100644
    --- a/producer/index.html
    +++ b/producer/index.html
    @@ -1,5 +1,5 @@
    -Producer | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index e4c4d60..7ff03b7 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -1,4 +1,4 @@ -Producer on Documentation of php-kafkahttps://php-kafka.github.io/producer/Recent content in Producer on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index 7b1e35e..b5adf07 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -1,5 +1,5 @@ -initTransactions | Documentation of php-kafka

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    +

    More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    index 1f64108..c0e36e5 100644
    --- a/producer/offsetForTimes/index.html
    +++ b/producer/offsetForTimes/index.html
    @@ -1,5 +1,5 @@
    -offsetsForTimes | Documentation of php-kafka

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/poll/index.html b/producer/poll/index.html
    index fea2488..6754a96 100644
    --- a/producer/poll/index.html
    +++ b/producer/poll/index.html
    @@ -1,5 +1,5 @@
    -poll | Documentation of php-kafka

    poll

    Description

    public function poll(int $timeoutMs): int {}
    +

    More

    poll

    Description

    public function poll(int $timeoutMs): int {}
     

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index 8fa4ee8..a1d034b 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -1,5 +1,5 @@
    -purge | Documentation of php-kafka

    purge

    Description

    public function purge(int $purgeFlags): int {}
    +

    More

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html
    index 2693b2c..e540a6a 100644
    --- a/producer/queryWatermarkOffsets/index.html
    +++ b/producer/queryWatermarkOffsets/index.html
    @@ -1,5 +1,5 @@
    -queryWatermarkOffsets | Documentation of php-kafka

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    diff --git a/tags/index.xml b/tags/index.xml
    index c0e036e..289af4e 100644
    --- a/tags/index.xml
    +++ b/tags/index.xml
    @@ -1 +1 @@
    -Tags on Documentation of php-kafkahttps://php-kafka.github.io/tags/Recent content in Tags on Documentation of php-kafkaHugo -- gohugo.ioen-us
    \ No newline at end of file
    +Tags on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/tags/Recent content in Tags on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us
    \ No newline at end of file
    diff --git a/topicHandles/about/index.html b/topicHandles/about/index.html
    index 20b6c27..cc68c2e 100644
    --- a/topicHandles/about/index.html
    +++ b/topicHandles/about/index.html
    @@ -1,5 +1,5 @@
    -About | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file diff --git a/topicHandles/consumerTopic/getName/index.html b/topicHandles/consumerTopic/getName/index.html index f69e65f..07247c9 100644 --- a/topicHandles/consumerTopic/getName/index.html +++ b/topicHandles/consumerTopic/getName/index.html @@ -1,5 +1,5 @@ -getName | Documentation of php-kafka

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Get topic name

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $consumer = new Kafka\Consumer($conf);
    diff --git a/topicHandles/consumerTopic/index.html b/topicHandles/consumerTopic/index.html
    index ea7b854..9bb5e2e 100644
    --- a/topicHandles/consumerTopic/index.html
    +++ b/topicHandles/consumerTopic/index.html
    @@ -1,5 +1,5 @@
    -ConsumerTopic | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    ConsumerTopic

    \ No newline at end of file diff --git a/topicHandles/consumerTopic/index.xml b/topicHandles/consumerTopic/index.xml index 4345618..0a93b27 100644 --- a/topicHandles/consumerTopic/index.xml +++ b/topicHandles/consumerTopic/index.xml @@ -1,2 +1,2 @@ -ConsumerTopic on Documentation of php-kafkahttps://php-kafka.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name +ConsumerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL; \ No newline at end of file diff --git a/topicHandles/index.html b/topicHandles/index.html index 9ef2483..63ca7b5 100644 --- a/topicHandles/index.html +++ b/topicHandles/index.html @@ -1,5 +1,5 @@ -Topic handles | Documentation of php-kafka \ No newline at end of file +

    More

    Topic handles

    \ No newline at end of file diff --git a/topicHandles/index.xml b/topicHandles/index.xml index 05f96d0..c598e44 100644 --- a/topicHandles/index.xml +++ b/topicHandles/index.xml @@ -1,3 +1,3 @@ -Topic handles on Documentation of php-kafkahttps://php-kafka.github.io/topicHandles/Recent content in Topic handles on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: +Topic handles on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/Recent content in Topic handles on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: metadata offsets ProducerTopic handles can be used to query the same things but are also used to produce messages. \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/getName/index.html b/topicHandles/prodcuerTopic/getName/index.html index f564a49..9fff6d1 100644 --- a/topicHandles/prodcuerTopic/getName/index.html +++ b/topicHandles/prodcuerTopic/getName/index.html @@ -1,5 +1,5 @@ -getName | Documentation of php-kafka

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Get topic name

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
    diff --git a/topicHandles/prodcuerTopic/index.html b/topicHandles/prodcuerTopic/index.html
    index ad0a7c4..cef4976 100644
    --- a/topicHandles/prodcuerTopic/index.html
    +++ b/topicHandles/prodcuerTopic/index.html
    @@ -1,5 +1,5 @@
    -ProducerTopic | Documentation of php-kafka
    \ No newline at end of file
    +

    More

    ProducerTopic

    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/index.xml b/topicHandles/prodcuerTopic/index.xml index fc95a26..4fb1329 100644 --- a/topicHandles/prodcuerTopic/index.xml +++ b/topicHandles/prodcuerTopic/index.xml @@ -1,4 +1,4 @@ -ProducerTopic on Documentation of php-kafkahttps://php-kafka.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +ProducerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning diff --git a/topicHandles/prodcuerTopic/produce/index.html b/topicHandles/prodcuerTopic/produce/index.html index 539a7e7..0425e11 100644 --- a/topicHandles/prodcuerTopic/produce/index.html +++ b/topicHandles/prodcuerTopic/produce/index.html @@ -1,5 +1,5 @@ -produce | Documentation of php-kafka

    produce

    Description

    public function produce(
    +

    More

    produce

    Description

    public function produce(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    diff --git a/topicHandles/prodcuerTopic/producev/index.html b/topicHandles/prodcuerTopic/producev/index.html
    index 2232ca4..8e553d2 100644
    --- a/topicHandles/prodcuerTopic/producev/index.html
    +++ b/topicHandles/prodcuerTopic/producev/index.html
    @@ -1,5 +1,5 @@
    -producev | Documentation of php-kafka

    producev

    Description

    public function producev(
    +

    More

    producev

    Description

    public function producev(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html
    index 16b3e8f..c864fef 100644
    --- a/topicPartition/__construct/index.html
    +++ b/topicPartition/__construct/index.html
    @@ -1,5 +1,5 @@
    -__construct | Documentation of php-kafka

    __construct

    Description

    public function __construct(string $topicName, int $partition, int $offset = 0) {}
    +

    More

    __construct

    Description

    public function __construct(string $topicName, int $partition, int $offset = 0) {}
     

    Create new topic partition instance

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     
    \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html index 3d2ac10..aa2d8bd 100644 --- a/topicPartition/getOffset/index.html +++ b/topicPartition/getOffset/index.html @@ -1,5 +1,5 @@ -getOffset | Documentation of php-kafka

    getOffset

    Description

    public function getOffset(): int {}
    +

    More

    getOffset

    Description

    public function getOffset(): int {}
     

    Get offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition offset %d', $topicPartition->getOffset()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html index 8141bb3..ae5cccf 100644 --- a/topicPartition/getPartition/index.html +++ b/topicPartition/getPartition/index.html @@ -1,5 +1,5 @@ -getPartition | Documentation of php-kafka

    getPartition

    Description

    public function getPartition(): int {}
    +

    More

    getPartition

    Description

    public function getPartition(): int {}
     

    Get partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition partition %d', $topicPartition->getPartition()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html index 4a9b51e..534f54e 100644 --- a/topicPartition/getTopicName/index.html +++ b/topicPartition/getTopicName/index.html @@ -1,5 +1,5 @@ -getTopicName | Documentation of php-kafka

    getTopicName

    Description

    public function getTopicName(): string {}
    +

    More

    getTopicName

    Description

    public function getTopicName(): string {}
     

    Get topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
     echo sprintf('Topic partition name %s', $topicPartition->getTopicName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/index.html b/topicPartition/index.html index 9156087..4e822a8 100644 --- a/topicPartition/index.html +++ b/topicPartition/index.html @@ -1,5 +1,5 @@ -TopicPartition | Documentation of php-kafka \ No newline at end of file +

    More

    TopicPartition

    \ No newline at end of file diff --git a/topicPartition/index.xml b/topicPartition/index.xml index 99826b3..0426390 100644 --- a/topicPartition/index.xml +++ b/topicPartition/index.xml @@ -1,4 +1,4 @@ -TopicPartition on Documentation of php-kafkahttps://php-kafka.github.io/topicPartition/Recent content in TopicPartition on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +TopicPartition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicPartition/Recent content in TopicPartition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html index 61794b3..402e3f9 100644 --- a/topicPartition/setOffset/index.html +++ b/topicPartition/setOffset/index.html @@ -1,5 +1,5 @@ -setOffset | Documentation of php-kafka

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
    +

    More

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
     

    Set offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setOffset(100);
     
    \ No newline at end of file diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html index a21ae2a..8df650e 100644 --- a/topicPartition/setPartition/index.html +++ b/topicPartition/setPartition/index.html @@ -1,5 +1,5 @@ -setPartition | Documentation of php-kafka

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
    +

    More

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
     

    Set partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setPartition(1);
     
    \ No newline at end of file diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html index 59c87dc..92b94bf 100644 --- a/topicPartition/setTopicName/index.html +++ b/topicPartition/setTopicName/index.html @@ -1,5 +1,5 @@ -setTopicName | Documentation of php-kafka

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
    +

    More

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
     

    Set topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
     $topicPartition->setTopicName('another-test-topic');
     
    \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index 030383d..e3878ff 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -1,5 +1,5 @@ -What's new | Documentation of php-kafka \ No newline at end of file +

    More

    What's new

    \ No newline at end of file diff --git a/whats-new/index.xml b/whats-new/index.xml index 9909e92..632a2a9 100644 --- a/whats-new/index.xml +++ b/whats-new/index.xml @@ -1 +1 @@ -What's new on Documentation of php-kafkahttps://php-kafka.github.io/whats-new/Recent content in What's new on Documentation of php-kafkaHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial extension release \ No newline at end of file +What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial extension release \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index 2c05699..de5e34f 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -1,5 +1,5 @@ -Release v1.0.0 | Documentation of php-kafka \ No newline at end of file +

    More

    Release v1.0.0

    Initial extension release

    \ No newline at end of file From 641571a95aae512d15d6f00ff53e6bcc273a6b28 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Mon, 5 Apr 2021 10:34:39 +0000 Subject: [PATCH 29/36] deploy: c1152ea4cddcdbe9c06f44f40688cb5044145b4c --- 404.html | 4 +- about/index.html | 38 ++--- about/index.xml | 2 +- categories/index.xml | 2 +- configuration/dump/index.html | 40 ++--- configuration/index.html | 36 ++--- configuration/index.xml | 16 +- configuration/set/index.html | 40 ++--- configuration/setDrMsgCb/index.html | 40 ++--- configuration/setErrorCb/index.html | 40 ++--- configuration/setLogCb/index.html | 40 ++--- configuration/setOffsetCommitCb/index.html | 40 ++--- configuration/setRebalanceCb/index.html | 40 ++--- configuration/setStatsCb/index.html | 40 ++--- consumer/__construct/index.html | 40 ++--- consumer/assign/index.html | 40 ++--- consumer/close/index.html | 40 ++--- consumer/commit/index.html | 40 ++--- consumer/commitAsync/index.html | 40 ++--- consumer/consume/index.html | 40 ++--- consumer/getAssignment/index.html | 40 ++--- consumer/getCommittedOffsets/index.html | 40 ++--- consumer/getMetadata/index.html | 40 ++--- consumer/getOffsetPositions/index.html | 40 ++--- consumer/getSubscription/index.html | 40 ++--- consumer/getTopicHandle/index.html | 40 ++--- consumer/index.html | 36 ++--- consumer/index.xml | 32 ++-- consumer/offsetForTimes/index.html | 40 ++--- consumer/queryWatermarkOffsets/index.html | 40 ++--- consumer/subscribe/index.html | 40 ++--- consumer/unsubscribe/index.html | 40 ++--- functions/index.html | 36 ++--- functions/index.xml | 8 +- functions/kafka_err2name/index.html | 40 ++--- functions/kafka_err2str/index.html | 40 ++--- functions/kafka_get_err_descs/index.html | 40 ++--- functions/kafka_offset_tail/index.html | 38 ++--- functions/kafka_thread_cnt/index.html | 38 ++--- index.html | 38 ++--- index.xml | 146 +++++++++--------- installation/index.html | 38 ++--- installation/index.xml | 2 +- kafkaException/__construct/index.html | 40 ++--- kafkaException/getErrorString/index.html | 40 ++--- kafkaException/index.html | 36 ++--- kafkaException/index.xml | 10 +- kafkaException/isFatal/index.html | 40 ++--- kafkaException/isRetriable/index.html | 40 ++--- .../transactionRequiresAbort/index.html | 40 ++--- message/getErrorString/index.html | 40 ++--- message/index.html | 36 ++--- message/index.xml | 4 +- message/properties/index.html | 36 ++--- metadata/broker/getHost/index.html | 40 ++--- metadata/broker/getId/index.html | 40 ++--- metadata/broker/getPort/index.html | 40 ++--- metadata/broker/index.html | 36 ++--- metadata/broker/index.xml | 6 +- metadata/index.html | 36 ++--- metadata/index.xml | 2 +- metadata/metadata/getBrokers/index.html | 40 ++--- metadata/metadata/getOrigBrokerId/index.html | 40 ++--- .../metadata/getOrigBrokerName/index.html | 40 ++--- metadata/metadata/getTopics/index.html | 40 ++--- metadata/metadata/index.html | 36 ++--- metadata/metadata/index.xml | 8 +- metadata/partition/getErrorCode/index.html | 40 ++--- metadata/partition/getId/index.html | 40 ++--- metadata/partition/getIsrs/index.html | 40 ++--- metadata/partition/getLeader/index.html | 40 ++--- metadata/partition/getReplicas/index.html | 40 ++--- metadata/partition/index.html | 36 ++--- metadata/partition/index.xml | 10 +- metadata/topic/getErrorCode/index.html | 40 ++--- metadata/topic/getName/index.html | 40 ++--- metadata/topic/getPartitions/index.html | 40 ++--- metadata/topic/index.html | 36 ++--- metadata/topic/index.xml | 6 +- producer/__construct/index.html | 40 ++--- producer/abortTransaction/index.html | 40 ++--- producer/beginTransaction/index.html | 38 ++--- producer/commitTransaction/index.html | 40 ++--- producer/flush/index.html | 40 ++--- producer/getMetadata/index.html | 40 ++--- producer/getTopicHandle/index.html | 40 ++--- producer/index.html | 36 ++--- producer/index.xml | 24 +-- producer/initTransactions/index.html | 40 ++--- producer/offsetForTimes/index.html | 40 ++--- producer/poll/index.html | 40 ++--- producer/purge/index.html | 40 ++--- producer/queryWatermarkOffsets/index.html | 40 ++--- sitemap.xml | 2 +- tags/index.xml | 2 +- topicHandles/about/index.html | 36 ++--- topicHandles/consumerTopic/getName/index.html | 40 ++--- topicHandles/consumerTopic/index.html | 36 ++--- topicHandles/consumerTopic/index.xml | 2 +- topicHandles/index.html | 36 ++--- topicHandles/index.xml | 2 +- topicHandles/prodcuerTopic/getName/index.html | 40 ++--- topicHandles/prodcuerTopic/index.html | 36 ++--- topicHandles/prodcuerTopic/index.xml | 6 +- topicHandles/prodcuerTopic/produce/index.html | 40 ++--- .../prodcuerTopic/producev/index.html | 40 ++--- topicPartition/__construct/index.html | 40 ++--- topicPartition/getOffset/index.html | 40 ++--- topicPartition/getPartition/index.html | 40 ++--- topicPartition/getTopicName/index.html | 40 ++--- topicPartition/index.html | 36 ++--- topicPartition/index.xml | 14 +- topicPartition/setOffset/index.html | 40 ++--- topicPartition/setPartition/index.html | 40 ++--- topicPartition/setTopicName/index.html | 40 ++--- whats-new/index.html | 36 ++--- whats-new/index.xml | 2 +- whats-new/release-1.0.0/index.html | 36 ++--- 118 files changed, 2012 insertions(+), 2012 deletions(-) diff --git a/404.html b/404.html index bb48e22..42488fd 100644 --- a/404.html +++ b/404.html @@ -1,3 +1,3 @@ -404 Page not found | Documentation of php-simple-kafka-client
    +404 Page not found | Documentation of php-simple-kafka-client
    Lost?
    Error 404
    Seems like what you are looking for can't be found. Don't worry we can -bring you back to the homepage.
    \ No newline at end of file +bring you back to the homepage.
    \ No newline at end of file diff --git a/about/index.html b/about/index.html index a357eab..6e6d9f7 100644 --- a/about/index.html +++ b/about/index.html @@ -1,21 +1,21 @@ -About | Documentation of php-simple-kafka-client

    About

    Supported librdkafka versions: >= 1.4.0 +About | Documentation of php-simple-kafka-client

    \ No newline at end of file +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/about/index.xml b/about/index.xml index 80682a4..7ae3f7d 100644 --- a/about/index.xml +++ b/about/index.xml @@ -1 +1 @@ -About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/about/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/about/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml index 839b42f..9465cee 100644 --- a/categories/index.xml +++ b/categories/index.xml @@ -1 +1 @@ -Categories on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/categories/Recent content in Categories on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us \ No newline at end of file +Categories on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/categories/Recent content in Categories on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/configuration/dump/index.html b/configuration/dump/index.html index 25fb7cc..ad8f4d7 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -1,22 +1,22 @@ -dump | Documentation of php-simple-kafka-client

    dump

    Description

    public function dump(): array {}
    -

    Dumps the current configuration

    Example

    $conf = new Kafka\Configuration();
    +dump | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/configuration/index.html b/configuration/index.html index f2ddd58..e4a04da 100644 --- a/configuration/index.html +++ b/configuration/index.html @@ -1,18 +1,18 @@ -Configuration | Documentation of php-simple-kafka-client \ No newline at end of file +Configuration | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/configuration/index.xml b/configuration/index.xml index 493da22..18dc70b 100644 --- a/configuration/index.xml +++ b/configuration/index.xml @@ -1,24 +1,24 @@ -Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback +Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery -Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind +Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind that non-critical errors will be retried by libdrkafka -Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback +Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback You will get events according to the log_level setting -Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsetCommitCbhttps://php-kafka.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. +Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. The results of automatic or manual offset commits will be scheduled for this callback. If no partitions had valid offsets to commit this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET which is not to be considered an error. -Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setRebalanceCbhttps://php-kafka.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. +Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and &lsquo;partitions&rsquo; contains the full partition set that was either assigned or revoked. Registering a rebalance callback turns off the automatic partition assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. -Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback +Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } ); \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 71983a9..97b7b87 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -1,21 +1,21 @@ -set | Documentation of php-simple-kafka-client

    set

    Description

    public function set(string $name, string $value): void {}
    -

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
    +set | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html index 0b8a2dc..3e02bfc 100644 --- a/configuration/setDrMsgCb/index.html +++ b/configuration/setDrMsgCb/index.html @@ -1,22 +1,22 @@ -setDrMsgCb | Documentation of php-simple-kafka-client

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    -

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
    +setDrMsgCb | Documentation of php-simple-kafka-client

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    +

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
     $conf->setDrMsgCb(
         function (Producer $kafka, Message $message) {
             if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message->err) {
    @@ -29,4 +29,4 @@
             }
         }
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html index 735f6e3..5d0cf90 100644 --- a/configuration/setErrorCb/index.html +++ b/configuration/setErrorCb/index.html @@ -1,25 +1,25 @@ -setErrorCb | Documentation of php-simple-kafka-client

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    -

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
    +setErrorCb | Documentation of php-simple-kafka-client

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    +

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
     $conf->setErrorCb(
         function (Kafka\Kafka $kafka, $errorCode, $reason) {
             //do something
         }
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html index cdd658a..8358ebe 100644 --- a/configuration/setLogCb/index.html +++ b/configuration/setLogCb/index.html @@ -1,25 +1,25 @@ -setLogCb | Documentation of php-simple-kafka-client

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    -

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
    +setLogCb | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html index 54f2478..a109e42 100644 --- a/configuration/setOffsetCommitCb/index.html +++ b/configuration/setOffsetCommitCb/index.html @@ -1,22 +1,22 @@ -setOffsetCommitCb | Documentation of php-simple-kafka-client

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    -

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
    +setOffsetCommitCb | Documentation of php-simple-kafka-client

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    +

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
     $conf->setOffsetCommitCb(
         function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) {
             if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) {
    @@ -26,4 +26,4 @@
             }
         }
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html index 13692bd..a5e09e5 100644 --- a/configuration/setRebalanceCb/index.html +++ b/configuration/setRebalanceCb/index.html @@ -1,22 +1,22 @@ -setRebalanceCb | Documentation of php-simple-kafka-client

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    -

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
    +setRebalanceCb | Documentation of php-simple-kafka-client

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    +

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
     $conf->setRebalanceCb(
         function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) {
             case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS:
    @@ -40,4 +40,4 @@
                 break;
         }
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html index 94acb1a..af0edc6 100644 --- a/configuration/setStatsCb/index.html +++ b/configuration/setStatsCb/index.html @@ -1,25 +1,25 @@ -setStatsCb | Documentation of php-simple-kafka-client

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    -

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
    +setStatsCb | Documentation of php-simple-kafka-client

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    +

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
     $conf->setStatsCb(
         function (Kafka\Kafka $kafka, string $json, int $jsonLength) {
             //do something
         }
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html index cbad7ce..5c8db66 100644 --- a/consumer/__construct/index.html +++ b/consumer/__construct/index.html @@ -1,22 +1,22 @@ -__construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    -

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
    +__construct | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/consumer/assign/index.html b/consumer/assign/index.html index 4d499e1..02db96c 100644 --- a/consumer/assign/index.html +++ b/consumer/assign/index.html @@ -1,22 +1,22 @@ -assign | Documentation of php-simple-kafka-client

    assign

    Description

    public function assign(array $topics): void {}
    -

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
    +assign | Documentation of php-simple-kafka-client

    assign

    Description

    public function assign(array $topics): void {}
    +

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $consumer->assign(
    @@ -25,4 +25,4 @@
             new Kafka\TopicPartition('test-topic', 2, 3009)
         ]
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/close/index.html b/consumer/close/index.html index d313c32..bef5f16 100644 --- a/consumer/close/index.html +++ b/consumer/close/index.html @@ -1,23 +1,23 @@ -close | Documentation of php-simple-kafka-client

    close

    Description

    public function close(): void {}
    -

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
    +close | Documentation of php-simple-kafka-client

    close

    Description

    public function close(): void {}
    +

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $consumer->close();
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/commit/index.html b/consumer/commit/index.html index f4cce2b..9d6f60d 100644 --- a/consumer/commit/index.html +++ b/consumer/commit/index.html @@ -1,25 +1,25 @@ -commit | Documentation of php-simple-kafka-client

    commit

    Description

    /**
    +commit | Documentation of php-simple-kafka-client

    commit

    Description

    /**
      * @throws Kafka\Exception
      */
     public function commit($messageOrOffsets): void {}
    -

    Commit offsets synchronously, block until offsets are
    committed or the commit fails and an exception is thrown.

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
    +

    Commit offsets synchronously, block until offsets are
    committed or the commit fails and an exception is thrown.

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $message = $consumer->consume(20000);
    @@ -30,4 +30,4 @@
     }
     
     $consumer->commit($message);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html index 0afec1f..7103d9b 100644 --- a/consumer/commitAsync/index.html +++ b/consumer/commitAsync/index.html @@ -1,22 +1,22 @@ -commitAsync | Documentation of php-simple-kafka-client

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    -

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
    +commitAsync | Documentation of php-simple-kafka-client

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    +

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $message = $consumer->consume(20000);
    @@ -27,4 +27,4 @@
     }
     
     $consumer->commitAsync($message);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/consume/index.html b/consumer/consume/index.html index 4ead7a4..2eaf57b 100644 --- a/consumer/consume/index.html +++ b/consumer/consume/index.html @@ -1,23 +1,23 @@ -consume | Documentation of php-simple-kafka-client

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    -

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
    +consume | Documentation of php-simple-kafka-client

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    +

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $message = $consumer->consume(20000);
    -
    An application should call consume() at regular intervals, even if no messages
    are expected, to serve any queued callbacks waiting to be called.
    \ No newline at end of file +
    An application should call consume() at regular intervals, even if no messages
    are expected, to serve any queued callbacks waiting to be called.
    \ No newline at end of file diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html index 9def662..10301f7 100644 --- a/consumer/getAssignment/index.html +++ b/consumer/getAssignment/index.html @@ -1,22 +1,22 @@ -getAssignment | Documentation of php-simple-kafka-client

    getAssignment

    Description

    public function getAssignment(): array {}
    -

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
    +getAssignment | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html index 0d0aa2b..a17a43d 100644 --- a/consumer/getCommittedOffsets/index.html +++ b/consumer/getCommittedOffsets/index.html @@ -1,24 +1,24 @@ -getCommittedOffsets | Documentation of php-simple-kafka-client

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    -

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
    +getCommittedOffsets | Documentation of php-simple-kafka-client

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    +

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0);
     var_dump($consumer->getCommittedOffsets([$topicPartition], 10000));
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html index 418a5d9..2622118 100644 --- a/consumer/getMetadata/index.html +++ b/consumer/getMetadata/index.html @@ -1,24 +1,24 @@ -getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    -

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $topicHandle = $consumer->getTopicHandle('test-topic');
     $singleTopicMetadata = $consumer->metadata(true, $topicHandle, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html index 3b619a5..11bfcc7 100644 --- a/consumer/getOffsetPositions/index.html +++ b/consumer/getOffsetPositions/index.html @@ -1,24 +1,24 @@ -getOffsetPositions | Documentation of php-simple-kafka-client

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    -

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
    +getOffsetPositions | Documentation of php-simple-kafka-client

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    +

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0);
     $topicPartitionsWithOffsets = $consumer->getOffsetPositions([$topicPartition]));
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html index 230e14a..cfec62d 100644 --- a/consumer/getSubscription/index.html +++ b/consumer/getSubscription/index.html @@ -1,24 +1,24 @@ -getSubscription | Documentation of php-simple-kafka-client

    getSubscription

    Description

    public function getSubscription(): array {}
    -

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
    +getSubscription | Documentation of php-simple-kafka-client

    getSubscription

    Description

    public function getSubscription(): array {}
    +

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $consumer->subscribe(['test-topic']);
     var_dump($consumer->getSubscription());
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html index 955173c..12eb09b 100644 --- a/consumer/getTopicHandle/index.html +++ b/consumer/getTopicHandle/index.html @@ -1,26 +1,26 @@ -getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    -

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $topicHandle = $consumer->getTopicHandle('test-topic');
     
     // use the topic handle for further calls, e.g. to query metadata
     $singleTopicMetadata = $consumer->metadata(true, $topicHandle, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/index.html b/consumer/index.html index 5893295..a64da05 100644 --- a/consumer/index.html +++ b/consumer/index.html @@ -1,18 +1,18 @@ -Consumer | Documentation of php-simple-kafka-client \ No newline at end of file +Consumer | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index 998126a..3f3c246 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -1,30 +1,30 @@ -Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. +Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until the consumer has revoked its assignment, calling the rebalance callback if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are committed or the commit fails and an exception is thrown. -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages -are expected, to serve any queued callbacks waiting to be called.getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +are expected, to serve any queued callbacks waiting to be called.getAssignmenthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);offsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index 49b6943..355fbae 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -1,24 +1,24 @@ -offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    -

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $offsetsOneWeekAgo = $consumer->offsetForTimes([$topicPartition], 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html index d3c1d67..06ba9ed 100644 --- a/consumer/queryWatermarkOffsets/index.html +++ b/consumer/queryWatermarkOffsets/index.html @@ -1,22 +1,22 @@ -queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    -

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
    +queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
     $conf = Kafka\Configuration();
    @@ -24,4 +24,4 @@
     $consumer = new Kafka\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $consumer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html index 19d7891..2a71b60 100644 --- a/consumer/subscribe/index.html +++ b/consumer/subscribe/index.html @@ -1,23 +1,23 @@ -subscribe | Documentation of php-simple-kafka-client

    subscribe

    Description

    public function subscribe(array $topics): void {}
    -

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
    +subscribe | Documentation of php-simple-kafka-client

    subscribe

    Description

    public function subscribe(array $topics): void {}
    +

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new Kafka\Consumer($conf);
     $consumer->subscribe(['test-topic']);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html index bbcdd28..a573518 100644 --- a/consumer/unsubscribe/index.html +++ b/consumer/unsubscribe/index.html @@ -1,24 +1,24 @@ -unsubscribe | Documentation of php-simple-kafka-client

    unsubscribe

    Description

    public function unsubscribe(): void {}
    -

    Unsubscribe from the current subscriptions

    Example

    $conf = Kafka\Configuration();
    +unsubscribe | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/functions/index.html b/functions/index.html index f42b4f6..5a4ee8f 100644 --- a/functions/index.html +++ b/functions/index.html @@ -1,18 +1,18 @@ -Functions | Documentation of php-simple-kafka-client \ No newline at end of file +Functions | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/functions/index.xml b/functions/index.xml index 994a018..f7ac159 100644 --- a/functions/index.xml +++ b/functions/index.xml @@ -1,4 +1,4 @@ -Functions on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/functions/Recent content in Functions on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error -Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code -Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description -Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafka \ No newline at end of file +Functions on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/Recent content in Functions on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100kafka_err2namehttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code +Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description +Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafka \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index 1689573..ab314d0 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -1,21 +1,21 @@ -kafka_err2name | Documentation of php-simple-kafka-client

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
    -

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
    +kafka_err2name | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html index 726fa6c..9e99fcc 100644 --- a/functions/kafka_err2str/index.html +++ b/functions/kafka_err2str/index.html @@ -1,21 +1,21 @@ -kafka_err2str | Documentation of php-simple-kafka-client

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
    -

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
    +kafka_err2str | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html index 2a390e4..45e7c95 100644 --- a/functions/kafka_get_err_descs/index.html +++ b/functions/kafka_get_err_descs/index.html @@ -1,22 +1,22 @@ -kafka_get_err_descs | Documentation of php-simple-kafka-client

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
    -

    Returns a full list of error codes and their description

    Result structure

    [
    +kafka_get_err_descs | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html index ccf9f09..6210c08 100644 --- a/functions/kafka_offset_tail/index.html +++ b/functions/kafka_offset_tail/index.html @@ -1,19 +1,19 @@ -kafka_offset_tail | Documentation of php-simple-kafka-client \ No newline at end of file +kafka_offset_tail | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 30f555e..2f5e9e3 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -1,19 +1,19 @@ -kafka_thread_cnt | Documentation of php-simple-kafka-client \ No newline at end of file +kafka_thread_cnt | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/index.html b/index.html index 1a78279..5551d6b 100644 --- a/index.html +++ b/index.html @@ -1,21 +1,21 @@ -About | Documentation of php-simple-kafka-client

    About

    Supported librdkafka versions: >= 1.4.0 +About | Documentation of php-simple-kafka-client

    \ No newline at end of file +License: BSD-3

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/index.xml b/index.xml index d53f547..595e028 100644 --- a/index.xml +++ b/index.xml @@ -1,139 +1,139 @@ -About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests -Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. +About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: metadata offsets ProducerTopic handles can be used to query the same things -but are also used to produce messages.assignhttps://php-kafka.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. +but are also used to produce messages.assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) before this function is called. Any messages produced, offsets sent, etc, after the successful return of this function will be part of the transaction and committed or aborted automatically. Finish the transaction by calling Kafka\Producer::commitTransaction() or abort the transaction by calling Kafka\Producer::abortTransaction() -$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);closehttps://php-kafka.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until +$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until the consumer has revoked its assignment, calling the rebalance callback if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are committed or the commit fails and an exception is thrown. -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !commitTransactionhttps://php-kafka.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). Any outstanding messages will be flushed (delivered) before actually committing the transaction. If any of the outstanding messages fail permanently the current transaction will enter the abortable error state and this function will return an abortable error, in this case the application must call Kafka\Producer::abortTransaction() before attempting a new transaction with Kafka\Producer::beginTransaction(). -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.consumehttps://php-kafka.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages -are expected, to serve any queued callbacks waiting to be called.dumphttps://php-kafka.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();flushhttps://php-kafka.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. +are expected, to serve any queued callbacks waiting to be called.dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. This should typically be done prior to destroying a producer instance to make sure all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getBrokershttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers Will return a Metadata\Collection of Metadata\Broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getCommittedOffsetshttps://php-kafka.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message -Example echo $message-&gt;getErrorString();getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Example echo $message-&gt;getErrorString();getHosthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) Will return a Metadata\Collection of Metadata\Topic -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.isFatalhttps://php-kafka.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }kafka_err2namehttps://php-kafka.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error -Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code -Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description -Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }kafka_err2namehttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code +Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description +Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);offsetsForTimeshttps://php-kafka.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks -waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition +waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full -key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning -msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is fullPropertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties -err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. +msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is fullPropertieshttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties +err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null)purgehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. -Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial extension releasesethttps://php-kafka.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback +Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Initial extension releasesethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery -Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind +Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind that non-critical errors will be retried by libdrkafka -Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback +Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback You will get events according to the log_level setting -Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsethttps://php-kafka.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setOffsetCommitCbhttps://php-kafka.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. +Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. The results of automatic or manual offset commits will be scheduled for this callback. If no partitions had valid offsets to commit this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET which is not to be considered an error. -Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setPartitionhttps://php-kafka.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setRebalanceCbhttps://php-kafka.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. +Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and &lsquo;partitions&rsquo; contains the full partition set that was either assigned or revoked. Registering a rebalance callback turns off the automatic partition assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. -Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback +Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). -Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );setTopicNamehttps://php-kafka.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;);subscribehttps://php-kafka.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/installation/index.html b/installation/index.html index 10590ad..603fa1b 100644 --- a/installation/index.html +++ b/installation/index.html @@ -1,22 +1,22 @@ -Installation | Documentation of php-simple-kafka-client

    Installation

    Installation with PECL

    Not yet support (WIP)

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +Installation | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/installation/index.xml b/installation/index.xml index bfdc08e..dca9d10 100644 --- a/installation/index.xml +++ b/installation/index.xml @@ -1 +1 @@ -Installation on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/installation/Recent content in Installation on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +Installation on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/installation/Recent content in Installation on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index d0a200c..b8b5529 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -1,21 +1,21 @@ -__construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(
    +__construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
         string $error_string,
    @@ -23,7 +23,7 @@
         bool $isRetriable,
         bool $transactionRequiresAbort
     ) {}
    -

    Create new KafkaErrorException, this can be helpful for transaction tests

    Example

    throw new Kafka\KafkaErrorException(
    +

    Create new KafkaErrorException, this can be helpful for transaction tests

    Example

    throw new Kafka\KafkaErrorException(
         'Some error message',
         88,
         'This is a detailed error string',
    @@ -31,4 +31,4 @@
         true,
         false
     );
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html index 9ac39bb..2de44cb 100644 --- a/kafkaException/getErrorString/index.html +++ b/kafkaException/getErrorString/index.html @@ -1,22 +1,22 @@ -getErrorString | Documentation of php-simple-kafka-client

    getErrorString

    Description

    public function getErrorString(): string {}
    -

    Get error description for this exception

    Example

    $conf = Kafka\Configuration();
    +getErrorString | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/kafkaException/index.html b/kafkaException/index.html index 56ebecb..915194f 100644 --- a/kafkaException/index.html +++ b/kafkaException/index.html @@ -1,18 +1,18 @@ -KafkaException | Documentation of php-simple-kafka-client \ No newline at end of file +KafkaException | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/kafkaException/index.xml b/kafkaException/index.xml index 8d511d1..64f7579 100644 --- a/kafkaException/index.xml +++ b/kafkaException/index.xml @@ -1,6 +1,6 @@ -KafkaException on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/kafkaException/Recent content in KafkaException on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests -Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }transactionRequiresAborthttps://php-kafka.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +KafkaException on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/Recent content in KafkaException on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } } \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index 2dd657c..d3911db 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -1,22 +1,22 @@ -isFatal | Documentation of php-simple-kafka-client

    isFatal

    Description

    public function isFatal(): bool {}
    -

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
    +isFatal | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html index 46991b2..72a53c2 100644 --- a/kafkaException/isRetriable/index.html +++ b/kafkaException/isRetriable/index.html @@ -1,22 +1,22 @@ -isRetriable | Documentation of php-simple-kafka-client

    isRetriable

    Description

    public function isRetriable(): bool {}
    -

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
    +isRetriable | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html index 7d02ddb..5a33d6a 100644 --- a/kafkaException/transactionRequiresAbort/index.html +++ b/kafkaException/transactionRequiresAbort/index.html @@ -1,22 +1,22 @@ -transactionRequiresAbort | Documentation of php-simple-kafka-client

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    -

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
    +transactionRequiresAbort | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html index f882fd7..cbc7454 100644 --- a/message/getErrorString/index.html +++ b/message/getErrorString/index.html @@ -1,20 +1,20 @@ -getErrorString | Documentation of php-simple-kafka-client \ No newline at end of file +getErrorString | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/message/index.html b/message/index.html index 44a240b..00b157e 100644 --- a/message/index.html +++ b/message/index.html @@ -1,18 +1,18 @@ -Message | Documentation of php-simple-kafka-client \ No newline at end of file +Message | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/message/index.xml b/message/index.xml index ce621a2..08c60a5 100644 --- a/message/index.xml +++ b/message/index.xml @@ -1,3 +1,3 @@ -Message on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/message/Recent content in Message on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorStringhttps://php-kafka.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message -Example echo $message-&gt;getErrorString();Propertieshttps://php-kafka.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties +Message on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/Recent content in Message on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Example echo $message-&gt;getErrorString();Propertieshttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/Description The message object&rsquo;s data can be accessed by it&rsquo;s public properties err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR) topic_name topic name of message partition partition number of message payload payload of the message len length of the payload key key of the message offset offset of the message headers headers of the message (or null) \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index 76735b8..53e2713 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -1,18 +1,18 @@ -Properties | Documentation of php-simple-kafka-client

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file +Properties | Documentation of php-simple-kafka-client

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index 6ba9b7e..ff110db 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -1,24 +1,24 @@ -getHost | Documentation of php-simple-kafka-client

    getHost

    Description

    public function getHost(): string {}
    -

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +getHost | Documentation of php-simple-kafka-client

    getHost

    Description

    public function getHost(): string {}
    +

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker host: %s', $metadata->getBrokers()->current()->getHost()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html index 7e621dd..730c382 100644 --- a/metadata/broker/getId/index.html +++ b/metadata/broker/getId/index.html @@ -1,24 +1,24 @@ -getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    -

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    +

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getBrokers()->current()->getId()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html index 4faf8b2..e48cab2 100644 --- a/metadata/broker/getPort/index.html +++ b/metadata/broker/getPort/index.html @@ -1,24 +1,24 @@ -getPort | Documentation of php-simple-kafka-client

    getPort

    Description

    public function getPort(): int {}
    -

    Get host port of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +getPort | Documentation of php-simple-kafka-client

    getPort

    Description

    public function getPort(): int {}
    +

    Get host port of metadata broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker port: %d', $metadata->getBrokers()->current()->getPort()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/broker/index.html b/metadata/broker/index.html index da8c0b9..fe6f8ca 100644 --- a/metadata/broker/index.html +++ b/metadata/broker/index.html @@ -1,18 +1,18 @@ -Broker | Documentation of php-simple-kafka-client \ No newline at end of file +Broker | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/metadata/broker/index.xml b/metadata/broker/index.xml index 6548869..80ccb51 100644 --- a/metadata/broker/index.xml +++ b/metadata/broker/index.xml @@ -1,4 +1,4 @@ -Broker on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/broker/Recent content in Broker on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Broker on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/Recent content in Broker on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL; \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index aa8fee1..c4951d5 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -1,18 +1,18 @@ -Metadata | Documentation of php-simple-kafka-client \ No newline at end of file +Metadata | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/metadata/index.xml b/metadata/index.xml index dcb2616..b5a35c5 100644 --- a/metadata/index.xml +++ b/metadata/index.xml @@ -1 +1 @@ -Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file +Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100 \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index c5cb357..6fcb5f4 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -1,25 +1,25 @@ -getBrokers | Documentation of php-simple-kafka-client

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    -

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
    +getBrokers | Documentation of php-simple-kafka-client

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    +

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo $metadata->getBrokers()->current()->getHost() . PHP_EOL;
     echo $metadata->getBrokers()->current()->getPort() . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html index cee1f1a..5e44189 100644 --- a/metadata/metadata/getOrigBrokerId/index.html +++ b/metadata/metadata/getOrigBrokerId/index.html @@ -1,24 +1,24 @@ -getOrigBrokerId | Documentation of php-simple-kafka-client

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    -

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
    +getOrigBrokerId | Documentation of php-simple-kafka-client

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    +

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getOrigBrokerId()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html index e242f55..de2d92c 100644 --- a/metadata/metadata/getOrigBrokerName/index.html +++ b/metadata/metadata/getOrigBrokerName/index.html @@ -1,24 +1,24 @@ -getOrigBrokerName | Documentation of php-simple-kafka-client

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    -

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
    +getOrigBrokerName | Documentation of php-simple-kafka-client

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    +

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getOrigBrokerName()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html index e03413c..776f5fa 100644 --- a/metadata/metadata/getTopics/index.html +++ b/metadata/metadata/getTopics/index.html @@ -1,22 +1,22 @@ -getTopics | Documentation of php-simple-kafka-client

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    -

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
    +getTopics | Documentation of php-simple-kafka-client

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    +

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -27,4 +27,4 @@
     
         $topics->next();
     }
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html index cdeeea8..7ca3fa9 100644 --- a/metadata/metadata/index.html +++ b/metadata/metadata/index.html @@ -1,18 +1,18 @@ -Metadata | Documentation of php-simple-kafka-client \ No newline at end of file +Metadata | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/metadata/metadata/index.xml b/metadata/metadata/index.xml index 973e450..18f442e 100644 --- a/metadata/metadata/index.xml +++ b/metadata/metadata/index.xml @@ -1,7 +1,7 @@ -Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers Will return a Metadata\Collection of Metadata\Broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) Will return a Metadata\Collection of Metadata\Topic Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); } \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index f0ee430..a3cc03c 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -1,22 +1,22 @@ -getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    -

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -24,4 +24,4 @@
         'Topic partition error code: %d',
         $metadata->getTopics()->current()->getPartitions()->current()->getErrorCode()
     ) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html index f186d3a..6932ed4 100644 --- a/metadata/partition/getId/index.html +++ b/metadata/partition/getId/index.html @@ -1,22 +1,22 @@ -getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    -

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    +

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -24,4 +24,4 @@
         'Topic partition id: %d',
         $metadata->getTopics()->current()->getPartitions()->current()->getId()
     ) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html index 604e8db..286bc9c 100644 --- a/metadata/partition/getIsrs/index.html +++ b/metadata/partition/getIsrs/index.html @@ -1,22 +1,22 @@ -getIsrs | Documentation of php-simple-kafka-client

    getIsrs

    Description

    public function getIsrs(): Collection {}
    -

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getIsrs | Documentation of php-simple-kafka-client

    getIsrs

    Description

    public function getIsrs(): Collection {}
    +

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -25,4 +25,4 @@
         echo sprintf('Insync Replicas id: %d', $isrs->current()) . PHP_EOL;
         $isrs->next();
     }
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html index 5f1fb86..46f34c0 100644 --- a/metadata/partition/getLeader/index.html +++ b/metadata/partition/getLeader/index.html @@ -1,22 +1,22 @@ -getLeader | Documentation of php-simple-kafka-client

    getLeader

    Description

    public function getLeader(): int {}
    -

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getLeader | Documentation of php-simple-kafka-client

    getLeader

    Description

    public function getLeader(): int {}
    +

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -24,4 +24,4 @@
         'Topic partition leader: %d',
         $metadata->getTopics()->current()->getPartitions()->current()->getLeader()
     ) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html index 330f060..f132720 100644 --- a/metadata/partition/getReplicas/index.html +++ b/metadata/partition/getReplicas/index.html @@ -1,22 +1,22 @@ -getReplicas | Documentation of php-simple-kafka-client

    getReplicas

    Description

    public function getReplicas(): Collection {}
    -

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getReplicas | Documentation of php-simple-kafka-client

    getReplicas

    Description

    public function getReplicas(): Collection {}
    +

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
    @@ -25,4 +25,4 @@
         echo sprintf('Insync Replicas id: %d', $replicas->current()) . PHP_EOL;
         $replicas->next();
     }
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/partition/index.html b/metadata/partition/index.html index aeb31df..06c7a10 100644 --- a/metadata/partition/index.html +++ b/metadata/partition/index.html @@ -1,18 +1,18 @@ -Partition | Documentation of php-simple-kafka-client \ No newline at end of file +Partition | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/metadata/partition/index.xml b/metadata/partition/index.xml index 4c4d0e8..d15680c 100644 --- a/metadata/partition/index.xml +++ b/metadata/partition/index.xml @@ -1,6 +1,6 @@ -Partition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/partition/Recent content in Partition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getReplicashttps://php-kafka.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Partition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/Recent content in Partition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); } \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index 4bb93aa..e1b9087 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -1,24 +1,24 @@ -getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    -

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Topic error code: %d', $metadata->getTopics()->current()->getErrorCode()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html index b111836..3b2b260 100644 --- a/metadata/topic/getName/index.html +++ b/metadata/topic/getName/index.html @@ -1,24 +1,24 @@ -getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    -

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    +

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Topic name: %d', $metadata->getTopics()->current()->getName()) . PHP_EOL;
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html index 46ac31c..bcb2d0f 100644 --- a/metadata/topic/getPartitions/index.html +++ b/metadata/topic/getPartitions/index.html @@ -1,24 +1,24 @@ -getPartitions | Documentation of php-simple-kafka-client

    getPartitions

    Description

    public function getPartitions(): Collection {}
    -

    Topic partitions reported by broker

    Example

    $conf = new Kafka\Configuration();
    +getPartitions | Documentation of php-simple-kafka-client

    getPartitions

    Description

    public function getPartitions(): Collection {}
    +

    Topic partitions reported by broker

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     $topicPartitionsMetadata = $metadata->getTopics()->current()->getPartitions();
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/metadata/topic/index.html b/metadata/topic/index.html index 962c5cb..4e55adc 100644 --- a/metadata/topic/index.html +++ b/metadata/topic/index.html @@ -1,18 +1,18 @@ -Topic | Documentation of php-simple-kafka-client \ No newline at end of file +Topic | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/metadata/topic/index.xml b/metadata/topic/index.xml index 57b3cf2..0400944 100644 --- a/metadata/topic/index.xml +++ b/metadata/topic/index.xml @@ -1,4 +1,4 @@ -Topic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/metadata/topic/Recent content in Topic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Topic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/Recent content in Topic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions(); \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index 111ed3f..70b7034 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -1,22 +1,22 @@ -__construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    -

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
    +__construct | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html index 5ccbf14..663ea34 100644 --- a/producer/abortTransaction/index.html +++ b/producer/abortTransaction/index.html @@ -1,22 +1,22 @@ -abortTransaction | Documentation of php-simple-kafka-client

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    -

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
    +abortTransaction | Documentation of php-simple-kafka-client

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    +

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     try {
    @@ -26,4 +26,4 @@
             $producer->abortTransaction(10000);
         }
     }
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html index b5a78e3..0ac6498 100644 --- a/producer/beginTransaction/index.html +++ b/producer/beginTransaction/index.html @@ -1,21 +1,21 @@ -beginTransaction | Documentation of php-simple-kafka-client

    beginTransaction

    Description

    public function beginTransaction(): void {}
    +beginTransaction | Documentation of php-simple-kafka-client

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
    @@ -23,4 +23,4 @@
     $producer->beginTransaction();
     // produce some messsages
     $producer->commitTransaction(10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html index ffe7f9b..3e86473 100644 --- a/producer/commitTransaction/index.html +++ b/producer/commitTransaction/index.html @@ -1,26 +1,26 @@ -commitTransaction | Documentation of php-simple-kafka-client

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    -

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
    +commitTransaction | Documentation of php-simple-kafka-client

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    +

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     $producer->initTransactions(10000);
     $producer->beginTransaction();
     // produce some messsages
     $producer->commitTransaction(10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/flush/index.html b/producer/flush/index.html index 1f1d151..b36c00f 100644 --- a/producer/flush/index.html +++ b/producer/flush/index.html @@ -1,24 +1,24 @@ -flush | Documentation of php-simple-kafka-client

    flush

    Description

    public function flush(int $timeoutMs): int {}
    -

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
    +flush | Documentation of php-simple-kafka-client

    flush

    Description

    public function flush(int $timeoutMs): int {}
    +

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     // produce some messsages
     $producer->flush(10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html index ab6691f..cec7faa 100644 --- a/producer/getMetadata/index.html +++ b/producer/getMetadata/index.html @@ -1,24 +1,24 @@ -getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    -

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     $topicHandle = $producer->getTopicHandle('test-topic');
     $singleTopicMetadata = $producer->metadata(true, $topicHandle, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html index da4287b..3aced03 100644 --- a/producer/getTopicHandle/index.html +++ b/producer/getTopicHandle/index.html @@ -1,26 +1,26 @@ -getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    -

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     $topicHandle = $producer->getTopicHandle('test-topic');
     
     // use the topic handle for further calls, e.g. to query metadata
     $singleTopicMetadata = $producer->metadata(true, $topicHandle, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/index.html b/producer/index.html index 6bb3cfe..703fabc 100644 --- a/producer/index.html +++ b/producer/index.html @@ -1,18 +1,18 @@ -Producer | Documentation of php-simple-kafka-client \ No newline at end of file +Producer | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index 7ff03b7..890ed94 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -1,42 +1,42 @@ -Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. +Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) before this function is called. Any messages produced, offsets sent, etc, after the successful return of this function will be part of the transaction and committed or aborted automatically. Finish the transaction by calling Kafka\Producer::commitTransaction() or abort the transaction by calling Kafka\Producer::abortTransaction() -$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);commitTransactionhttps://php-kafka.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). +$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). Any outstanding messages will be flushed (delivered) before actually committing the transaction. If any of the outstanding messages fail permanently the current transaction will enter the abortable error state and this function will return an abortable error, in this case the application must call Kafka\Producer::abortTransaction() before attempting a new transaction with Kafka\Producer::beginTransaction(). -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.flushhttps://php-kafka.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. This should typically be done prior to destroying a producer instance to make sure all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getMetadatahttps://php-kafka.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.offsetsForTimeshttps://php-kafka.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks -waiting to be called, otherwise the internal queue fill up and block the producer.purgehttps://php-kafka.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. +waiting to be called, otherwise the internal queue fill up and block the producer.purgehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. -Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000); \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index b5adf07..a8f5946 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -1,22 +1,22 @@ -initTransactions | Documentation of php-simple-kafka-client

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    -

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
    +initTransactions | Documentation of php-simple-kafka-client

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    +

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     try {
    @@ -26,4 +26,4 @@
             $producer->abortTransaction(10000);
         }
     }
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html index c0e36e5..447bc64 100644 --- a/producer/offsetForTimes/index.html +++ b/producer/offsetForTimes/index.html @@ -1,24 +1,24 @@ -offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    -

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $offsetsOneWeekAgo = $producer->offsetForTimes([$topicPartition], 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/poll/index.html b/producer/poll/index.html index 6754a96..e20f7b6 100644 --- a/producer/poll/index.html +++ b/producer/poll/index.html @@ -1,24 +1,24 @@ -poll | Documentation of php-simple-kafka-client

    poll

    Description

    public function poll(int $timeoutMs): int {}
    -

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
    +poll | Documentation of php-simple-kafka-client

    poll

    Description

    public function poll(int $timeoutMs): int {}
    +

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     // produce some messsages
     $producer->poll(0);
    -
    The producer needs to call poll at regular intervals to serve any queued callbacks
    waiting to be called, otherwise the internal queue fill up and block the producer.
    \ No newline at end of file +
    The producer needs to call poll at regular intervals to serve any queued callbacks
    waiting to be called, otherwise the internal queue fill up and block the producer.
    \ No newline at end of file diff --git a/producer/purge/index.html b/producer/purge/index.html index a1d034b..d3cb9c6 100644 --- a/producer/purge/index.html +++ b/producer/purge/index.html @@ -1,24 +1,24 @@ -purge | Documentation of php-simple-kafka-client

    purge

    Description

    public function purge(int $purgeFlags): int {}
    -

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
    +purge | Documentation of php-simple-kafka-client

    purge

    Description

    public function purge(int $purgeFlags): int {}
    +

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new Kafka\Producer($conf);
     // produce some messsages
     $producer->purge(RD_KAFKA_PURGE_F_QUEUE);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html index e540a6a..27a2481 100644 --- a/producer/queryWatermarkOffsets/index.html +++ b/producer/queryWatermarkOffsets/index.html @@ -1,22 +1,22 @@ -queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    -

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
    +queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
     $conf = Kafka\Configuration();
    @@ -24,4 +24,4 @@
     $producer = new Kafka\Producer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $producer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000);
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 491da59..7b43fdf 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/categories/https://php-kafka.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/categories/https://php-kafka.github.io/php-simple-kafka-client.github.io/tags/ \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml index 289af4e..0c9a75e 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -1 +1 @@ -Tags on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/tags/Recent content in Tags on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us \ No newline at end of file +Tags on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/tags/Recent content in Tags on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/topicHandles/about/index.html b/topicHandles/about/index.html index cc68c2e..c981ea6 100644 --- a/topicHandles/about/index.html +++ b/topicHandles/about/index.html @@ -1,18 +1,18 @@ -About | Documentation of php-simple-kafka-client \ No newline at end of file +About | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicHandles/consumerTopic/getName/index.html b/topicHandles/consumerTopic/getName/index.html index 07247c9..178ecf0 100644 --- a/topicHandles/consumerTopic/getName/index.html +++ b/topicHandles/consumerTopic/getName/index.html @@ -1,24 +1,24 @@ -getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +getName | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicHandles/consumerTopic/index.html b/topicHandles/consumerTopic/index.html index 9bb5e2e..ccb3993 100644 --- a/topicHandles/consumerTopic/index.html +++ b/topicHandles/consumerTopic/index.html @@ -1,18 +1,18 @@ -ConsumerTopic | Documentation of php-simple-kafka-client \ No newline at end of file +ConsumerTopic | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicHandles/consumerTopic/index.xml b/topicHandles/consumerTopic/index.xml index 0a93b27..5d1feb3 100644 --- a/topicHandles/consumerTopic/index.xml +++ b/topicHandles/consumerTopic/index.xml @@ -1,2 +1,2 @@ -ConsumerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name +ConsumerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL; \ No newline at end of file diff --git a/topicHandles/index.html b/topicHandles/index.html index 63ca7b5..cde6225 100644 --- a/topicHandles/index.html +++ b/topicHandles/index.html @@ -1,18 +1,18 @@ -Topic handles | Documentation of php-simple-kafka-client \ No newline at end of file +Topic handles | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicHandles/index.xml b/topicHandles/index.xml index c598e44..9a518d2 100644 --- a/topicHandles/index.xml +++ b/topicHandles/index.xml @@ -1,3 +1,3 @@ -Topic handles on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/Recent content in Topic handles on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: +Topic handles on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/Recent content in Topic handles on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Abouthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: metadata offsets ProducerTopic handles can be used to query the same things but are also used to produce messages. \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/getName/index.html b/topicHandles/prodcuerTopic/getName/index.html index 9fff6d1..fceb666 100644 --- a/topicHandles/prodcuerTopic/getName/index.html +++ b/topicHandles/prodcuerTopic/getName/index.html @@ -1,24 +1,24 @@ -getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +getName | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/index.html b/topicHandles/prodcuerTopic/index.html index cef4976..eaad27e 100644 --- a/topicHandles/prodcuerTopic/index.html +++ b/topicHandles/prodcuerTopic/index.html @@ -1,18 +1,18 @@ -ProducerTopic | Documentation of php-simple-kafka-client \ No newline at end of file +ProducerTopic | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/index.xml b/topicHandles/prodcuerTopic/index.xml index 4fb1329..e07d1c0 100644 --- a/topicHandles/prodcuerTopic/index.xml +++ b/topicHandles/prodcuerTopic/index.xml @@ -1,9 +1,9 @@ -ProducerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition +ProducerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full -key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition +key: message key, if non-null the topic partitioner will calculate the partition according to the keyproducevhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/Description public function producev( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null ): void {} Produce a message and additional data to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/produce/index.html b/topicHandles/prodcuerTopic/produce/index.html index 0425e11..b1f6115 100644 --- a/topicHandles/prodcuerTopic/produce/index.html +++ b/topicHandles/prodcuerTopic/produce/index.html @@ -1,27 +1,27 @@ -produce | Documentation of php-simple-kafka-client

    produce

    Description

    public function produce(
    +produce | Documentation of php-simple-kafka-client

    produce

    Description

    public function produce(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
         ?string $key = null
     ): void {}
    -

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
    @@ -31,4 +31,4 @@
         'some message',
         'message-key'
     );
    -
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file +
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/producev/index.html b/topicHandles/prodcuerTopic/producev/index.html index 8e553d2..f6ee19c 100644 --- a/topicHandles/prodcuerTopic/producev/index.html +++ b/topicHandles/prodcuerTopic/producev/index.html @@ -1,21 +1,21 @@ -producev | Documentation of php-simple-kafka-client

    producev

    Description

    public function producev(
    +producev | Documentation of php-simple-kafka-client

    producev

    Description

    public function producev(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    @@ -23,7 +23,7 @@
         ?array $headers = null,
         ?int $timestampMs = null
     ): void {}
    -

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new Kafka\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
    @@ -37,4 +37,4 @@
         ],
         round(microtime(true) * 1000) //timestam for this event
     );
    -
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file +
    If you are done producing messages, you need to call flush()
    If you do not call flush(), it can lead to message loss
    \ No newline at end of file diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html index c864fef..53021cc 100644 --- a/topicPartition/__construct/index.html +++ b/topicPartition/__construct/index.html @@ -1,20 +1,20 @@ -__construct | Documentation of php-simple-kafka-client \ No newline at end of file +__construct | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html index aa2d8bd..ea948d5 100644 --- a/topicPartition/getOffset/index.html +++ b/topicPartition/getOffset/index.html @@ -1,21 +1,21 @@ -getOffset | Documentation of php-simple-kafka-client

    getOffset

    Description

    public function getOffset(): int {}
    -

    Get offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +getOffset | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html index ae5cccf..59173ca 100644 --- a/topicPartition/getPartition/index.html +++ b/topicPartition/getPartition/index.html @@ -1,21 +1,21 @@ -getPartition | Documentation of php-simple-kafka-client

    getPartition

    Description

    public function getPartition(): int {}
    -

    Get partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +getPartition | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html index 534f54e..89945b1 100644 --- a/topicPartition/getTopicName/index.html +++ b/topicPartition/getTopicName/index.html @@ -1,21 +1,21 @@ -getTopicName | Documentation of php-simple-kafka-client

    getTopicName

    Description

    public function getTopicName(): string {}
    -

    Get topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +getTopicName | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicPartition/index.html b/topicPartition/index.html index 4e822a8..5db3af5 100644 --- a/topicPartition/index.html +++ b/topicPartition/index.html @@ -1,18 +1,18 @@ -TopicPartition | Documentation of php-simple-kafka-client \ No newline at end of file +TopicPartition | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/topicPartition/index.xml b/topicPartition/index.xml index 0426390..5c5a5da 100644 --- a/topicPartition/index.xml +++ b/topicPartition/index.xml @@ -1,8 +1,8 @@ -TopicPartition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/topicPartition/Recent content in TopicPartition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;setOffsethttps://php-kafka.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setPartitionhttps://php-kafka.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setTopicNamehttps://php-kafka.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +TopicPartition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/Recent content in TopicPartition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;); \ No newline at end of file diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html index 402e3f9..842e3de 100644 --- a/topicPartition/setOffset/index.html +++ b/topicPartition/setOffset/index.html @@ -1,21 +1,21 @@ -setOffset | Documentation of php-simple-kafka-client

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
    -

    Set offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +setOffset | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html index 8df650e..5c83375 100644 --- a/topicPartition/setPartition/index.html +++ b/topicPartition/setPartition/index.html @@ -1,21 +1,21 @@ -setPartition | Documentation of php-simple-kafka-client

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
    -

    Set partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +setPartition | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html index 92b94bf..d0af609 100644 --- a/topicPartition/setTopicName/index.html +++ b/topicPartition/setTopicName/index.html @@ -1,21 +1,21 @@ -setTopicName | Documentation of php-simple-kafka-client

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
    -

    Set topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +setTopicName | Documentation of php-simple-kafka-client
    \ No newline at end of file
    +
    \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index e3878ff..dae141a 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -1,18 +1,18 @@ -What's new | Documentation of php-simple-kafka-client \ No newline at end of file +What's new | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/whats-new/index.xml b/whats-new/index.xml index 632a2a9..60d60f4 100644 --- a/whats-new/index.xml +++ b/whats-new/index.xml @@ -1 +1 @@ -What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/whats-new/release-1.0.0/Initial extension release \ No newline at end of file +What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Initial extension release \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-1.0.0/index.html index de5e34f..0bc91df 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-1.0.0/index.html @@ -1,18 +1,18 @@ -Release v1.0.0 | Documentation of php-simple-kafka-client \ No newline at end of file +Release v1.0.0 | Documentation of php-simple-kafka-client \ No newline at end of file From be2a60ccbf1ef30fcea5e20a7b10e71702ddcaaa Mon Sep 17 00:00:00 2001 From: nick-zh Date: Sat, 10 Apr 2021 18:07:06 +0000 Subject: [PATCH 30/36] deploy: d4e8706b9c314330bfe7e33bd265df3cf84c2d4a --- about/index.html | 5 +- configuration/dump/index.html | 4 +- configuration/index.html | 2 +- configuration/index.xml | 16 +- configuration/set/index.html | 4 +- configuration/setDrMsgCb/index.html | 4 +- configuration/setErrorCb/index.html | 6 +- configuration/setLogCb/index.html | 6 +- configuration/setOffsetCommitCb/index.html | 6 +- configuration/setRebalanceCb/index.html | 6 +- configuration/setStatsCb/index.html | 6 +- consumer/__construct/index.html | 6 +- consumer/assign/index.html | 10 +- consumer/close/index.html | 6 +- consumer/commit/index.html | 8 +- consumer/commitAsync/index.html | 6 +- consumer/consume/index.html | 6 +- consumer/getAssignment/index.html | 10 +- consumer/getCommittedOffsets/index.html | 6 +- consumer/getMetadata/index.html | 6 +- consumer/getOffsetPositions/index.html | 6 +- consumer/getSubscription/index.html | 6 +- consumer/getTopicHandle/index.html | 6 +- consumer/index.html | 2 +- consumer/index.xml | 32 ++-- consumer/offsetForTimes/index.html | 6 +- consumer/queryWatermarkOffsets/index.html | 6 +- consumer/subscribe/index.html | 6 +- consumer/unsubscribe/index.html | 6 +- functions/index.html | 2 +- functions/kafka_err2name/index.html | 2 +- functions/kafka_err2str/index.html | 2 +- functions/kafka_get_err_descs/index.html | 2 +- functions/kafka_offset_tail/index.html | 2 +- functions/kafka_thread_cnt/index.html | 2 +- index.html | 5 +- index.xml | 138 +++++++++--------- installation/index.html | 5 +- kafkaException/__construct/index.html | 4 +- kafkaException/getErrorString/index.html | 8 +- kafkaException/index.html | 2 +- kafkaException/index.xml | 10 +- kafkaException/isFatal/index.html | 8 +- kafkaException/isRetriable/index.html | 8 +- .../transactionRequiresAbort/index.html | 8 +- message/getErrorString/index.html | 2 +- message/index.html | 2 +- message/properties/index.html | 2 +- metadata/broker/getHost/index.html | 6 +- metadata/broker/getId/index.html | 6 +- metadata/broker/getPort/index.html | 6 +- metadata/broker/index.html | 2 +- metadata/broker/index.xml | 6 +- metadata/index.html | 2 +- metadata/metadata/getBrokers/index.html | 6 +- metadata/metadata/getOrigBrokerId/index.html | 6 +- .../metadata/getOrigBrokerName/index.html | 6 +- metadata/metadata/getTopics/index.html | 6 +- metadata/metadata/index.html | 2 +- metadata/metadata/index.xml | 8 +- metadata/partition/getErrorCode/index.html | 6 +- metadata/partition/getId/index.html | 6 +- metadata/partition/getIsrs/index.html | 6 +- metadata/partition/getLeader/index.html | 6 +- metadata/partition/getReplicas/index.html | 6 +- metadata/partition/index.html | 2 +- metadata/partition/index.xml | 10 +- metadata/topic/getErrorCode/index.html | 6 +- metadata/topic/getName/index.html | 6 +- metadata/topic/getPartitions/index.html | 6 +- metadata/topic/index.html | 2 +- metadata/topic/index.xml | 6 +- producer/__construct/index.html | 6 +- producer/abortTransaction/index.html | 8 +- producer/beginTransaction/index.html | 6 +- producer/commitTransaction/index.html | 6 +- producer/flush/index.html | 6 +- producer/getMetadata/index.html | 6 +- producer/getTopicHandle/index.html | 6 +- producer/index.html | 2 +- producer/index.xml | 32 ++-- producer/initTransactions/index.html | 8 +- producer/offsetForTimes/index.html | 6 +- producer/poll/index.html | 6 +- producer/purge/index.html | 6 +- producer/queryWatermarkOffsets/index.html | 6 +- sitemap.xml | 2 +- topicHandles/about/index.html | 2 +- topicHandles/consumerTopic/getName/index.html | 6 +- topicHandles/consumerTopic/index.html | 2 +- topicHandles/consumerTopic/index.xml | 2 +- topicHandles/index.html | 2 +- topicHandles/prodcuerTopic/getName/index.html | 6 +- topicHandles/prodcuerTopic/index.html | 2 +- topicHandles/prodcuerTopic/index.xml | 2 +- topicHandles/prodcuerTopic/produce/index.html | 6 +- .../prodcuerTopic/producev/index.html | 6 +- topicPartition/__construct/index.html | 4 +- topicPartition/getOffset/index.html | 4 +- topicPartition/getPartition/index.html | 4 +- topicPartition/getTopicName/index.html | 4 +- topicPartition/index.html | 2 +- topicPartition/index.xml | 14 +- topicPartition/setOffset/index.html | 4 +- topicPartition/setPartition/index.html | 4 +- topicPartition/setTopicName/index.html | 4 +- whats-new/index.html | 2 +- whats-new/index.xml | 2 +- .../index.html | 4 +- 109 files changed, 376 insertions(+), 373 deletions(-) rename whats-new/{release-1.0.0 => release-0.1.0}/index.html (99%) diff --git a/about/index.html b/about/index.html index 6e6d9f7..5739f56 100644 --- a/about/index.html +++ b/about/index.html @@ -15,7 +15,8 @@
  1314. -
  1315. More

    \ No newline at end of file +License: BSD-3 +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/configuration/dump/index.html b/configuration/dump/index.html index ad8f4d7..f976e54 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -15,8 +15,8 @@
  1316. -
  1317. More

    dump

    Description

    public function dump(): array {}
    -

    Dumps the current configuration

    Example

    $conf = new Kafka\Configuration();
    +

    More

    dump

    Description

    public function dump(): array {}
    +

    Dumps the current configuration

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $conf->dump();
     
    \ No newline at end of file diff --git a/configuration/index.html b/configuration/index.html index e4a04da..a3337fd 100644 --- a/configuration/index.html +++ b/configuration/index.html @@ -15,4 +15,4 @@
  1318. -
  1319. More

    Configuration

    \ No newline at end of file +

    More

    Configuration

    \ No newline at end of file diff --git a/configuration/index.xml b/configuration/index.xml index 18dc70b..ac28cd2 100644 --- a/configuration/index.xml +++ b/configuration/index.xml @@ -1,24 +1,24 @@ Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery -Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind that non-critical errors will be retried by libdrkafka -Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setErrorCb( function (SimpleKafkaClient\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback You will get events according to the log_level setting -Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setLogCb( function (SimpleKafkaClient\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. The results of automatic or manual offset commits will be scheduled for this callback. If no partitions had valid offsets to commit this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET which is not to be considered an error. -Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setOffsetCommitCb( function (SimpleKafkaClient\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and &lsquo;partitions&rsquo; contains the full partition set that was either assigned or revoked. Registering a rebalance callback turns off the automatic partition assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. -Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setRebalanceCb( function (SimpleKafkaClient\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). -Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } ); \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setStatsCb( function (SimpleKafkaClient\Kafka $kafka, string $json, int $jsonLength) { //do something } ); \ No newline at end of file diff --git a/configuration/set/index.html b/configuration/set/index.html index 97b7b87..82fbf38 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -15,7 +15,7 @@
  1320. -
  1321. More

    set

    Description

    public function set(string $name, string $value): void {}
    -

    Set a configuration value

    Example

    $conf = new Kafka\Configuration();
    +

    More

    set

    Description

    public function set(string $name, string $value): void {}
    +

    Set a configuration value

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     
    \ No newline at end of file diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html index 3e02bfc..2968618 100644 --- a/configuration/setDrMsgCb/index.html +++ b/configuration/setDrMsgCb/index.html @@ -15,8 +15,8 @@
  1322. -
  1323. More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    -

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    +

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setDrMsgCb(
         function (Producer $kafka, Message $message) {
             if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message->err) {
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 5d0cf90..75d0eba 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -15,10 +15,10 @@
     
  1324. -
  1325. More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    -

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    +

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setErrorCb(
    -    function (Kafka\Kafka $kafka, $errorCode, $reason) {
    +    function (SimpleKafkaClient\Kafka $kafka, $errorCode, $reason) {
             //do something
         }
     );
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 8358ebe..4118268 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -15,10 +15,10 @@
     
  1326. -
  1327. More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    -

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    +

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setLogCb(
    -    function (Kafka\Kafka $kafka, int $level, string $facility, string $message) {
    +    function (SimpleKafkaClient\Kafka $kafka, int $level, string $facility, string $message) {
             //do something
         }
     );
    diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html
    index a109e42..979660d 100644
    --- a/configuration/setOffsetCommitCb/index.html
    +++ b/configuration/setOffsetCommitCb/index.html
    @@ -15,10 +15,10 @@
     
  1328. -
  1329. More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    -

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    +

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setOffsetCommitCb(
    -    function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) {
    +    function (SimpleKafkaClient\Kafka $kafka, int $errorCode, array $topicPartition) {
             if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) {
                 echo 'Commit was successful';
             } else {
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index a5e09e5..1d5b38e 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -15,10 +15,10 @@
     
  1330. -
  1331. More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    -

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    +

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setRebalanceCb(
    -    function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) {
    +    function (SimpleKafkaClient\Consumer $kafka, int $errorCode, array $partitions = null) {
             case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS:
                 $kafka->assign($partitions);
                 break;
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index af0edc6..9a61ac2 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -15,10 +15,10 @@
     
  1332. -
  1333. More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    -

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new Kafka\Configuration();
    +

    More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    +

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setStatsCb(
    -    function (Kafka\Kafka $kafka, string $json, int $jsonLength) {
    +    function (SimpleKafkaClient\Kafka $kafka, string $json, int $jsonLength) {
             //do something
         }
     );
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 5c8db66..550fcf4 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -15,8 +15,8 @@
     
  1334. -
  1335. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    -

    Get a consumer instance

    Example

    $conf = Kafka\Configuration();
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    Get a consumer instance

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     
    \ No newline at end of file diff --git a/consumer/assign/index.html b/consumer/assign/index.html index 02db96c..b9aa648 100644 --- a/consumer/assign/index.html +++ b/consumer/assign/index.html @@ -15,14 +15,14 @@
  1336. -
  1337. More

    assign

    Description

    public function assign(array $topics): void {}
    -

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = Kafka\Configuration();
    +

    More

    assign

    Description

    public function assign(array $topics): void {}
    +

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->assign(
         [
    -        new Kafka\TopicPartition('test-topic', 1, 3000),
    -        new Kafka\TopicPartition('test-topic', 2, 3009)
    +        new SimpleKafkaClient\TopicPartition('test-topic', 1, 3000),
    +        new SimpleKafkaClient\TopicPartition('test-topic', 2, 3009)
         ]
     );
     
    \ No newline at end of file diff --git a/consumer/close/index.html b/consumer/close/index.html index bef5f16..4df2612 100644 --- a/consumer/close/index.html +++ b/consumer/close/index.html @@ -15,9 +15,9 @@
  1338. -
  1339. More

    close

    Description

    public function close(): void {}
    -

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = Kafka\Configuration();
    +

    More

    close

    Description

    public function close(): void {}
    +

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->close();
     
    \ No newline at end of file diff --git a/consumer/commit/index.html b/consumer/commit/index.html index 9d6f60d..49d69a9 100644 --- a/consumer/commit/index.html +++ b/consumer/commit/index.html @@ -15,13 +15,13 @@
  1340. -
  1341. More

    commit

    Description

    /**
    - * @throws Kafka\Exception
    +

    More

    commit

    Description

    /**
    + * @throws SimpleKafkaClient\Exception
      */
     public function commit($messageOrOffsets): void {}
    -

    Commit offsets synchronously, block until offsets are
    committed or the commit fails and an exception is thrown.

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
    +

    Commit offsets synchronously, block until offsets are
    committed or the commit fails and an exception is thrown.

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $message = $consumer->consume(20000);
     
     if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message->err) {
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 7103d9b..744ee64 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -15,10 +15,10 @@
     
  1342. -
  1343. More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    -

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = Kafka\Configuration();
    +

    More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    +

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $message = $consumer->consume(20000);
     
     if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message->err) {
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 2eaf57b..3ab2e1c 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -15,9 +15,9 @@
     
  1344. -
  1345. More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    -

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = Kafka\Configuration();
    +

    More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    +

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $message = $consumer->consume(20000);
     
    An application should call consume() at regular intervals, even if no messages
    are expected, to serve any queued callbacks waiting to be called.
    \ No newline at end of file diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html index 10301f7..256c08f 100644 --- a/consumer/getAssignment/index.html +++ b/consumer/getAssignment/index.html @@ -15,14 +15,14 @@
  1346. -
  1347. More

    getAssignment

    Description

    public function getAssignment(): array {}
    -

    Returns the current partition assignment

    Example

    $conf = Kafka\Configuration();
    +

    More

    getAssignment

    Description

    public function getAssignment(): array {}
    +

    Returns the current partition assignment

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->assign(
         [
    -        new Kafka\TopicPartition('test-topic', 1, 3000),
    -        new Kafka\TopicPartition('test-topic', 2, 3009)
    +        new SimpleKafkaClient\TopicPartition('test-topic', 1, 3000),
    +        new SimpleKafkaClient\TopicPartition('test-topic', 2, 3009)
         ]
     );
     var_dump($consumer->getAssignment());
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index a17a43d..d51cbb1 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -15,10 +15,10 @@
     
  1348. -
  1349. More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    -

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = Kafka\Configuration();
    +

    More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    +

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0);
     var_dump($consumer->getCommittedOffsets([$topicPartition], 10000));
     
    \ No newline at end of file diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html index 2622118..a20b063 100644 --- a/consumer/getMetadata/index.html +++ b/consumer/getMetadata/index.html @@ -15,10 +15,10 @@
  1350. -
  1351. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    -

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicHandle = $consumer->getTopicHandle('test-topic');
     $singleTopicMetadata = $consumer->metadata(true, $topicHandle, 10000);
     
    \ No newline at end of file diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html index 11bfcc7..4bbfe2f 100644 --- a/consumer/getOffsetPositions/index.html +++ b/consumer/getOffsetPositions/index.html @@ -15,10 +15,10 @@
  1352. -
  1353. More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    -

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = Kafka\Configuration();
    +

    More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    +

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0);
     $topicPartitionsWithOffsets = $consumer->getOffsetPositions([$topicPartition]));
     
    \ No newline at end of file diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html index cfec62d..d1b2ae8 100644 --- a/consumer/getSubscription/index.html +++ b/consumer/getSubscription/index.html @@ -15,10 +15,10 @@
  1354. -
  1355. More

    getSubscription

    Description

    public function getSubscription(): array {}
    -

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = Kafka\Configuration();
    +

    More

    getSubscription

    Description

    public function getSubscription(): array {}
    +

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->subscribe(['test-topic']);
     var_dump($consumer->getSubscription());
     
    \ No newline at end of file diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html index 12eb09b..5c7e4c6 100644 --- a/consumer/getTopicHandle/index.html +++ b/consumer/getTopicHandle/index.html @@ -15,10 +15,10 @@
  1356. -
  1357. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    -

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicHandle = $consumer->getTopicHandle('test-topic');
     
     // use the topic handle for further calls, e.g. to query metadata
    diff --git a/consumer/index.html b/consumer/index.html
    index a64da05..2bf6df4 100644
    --- a/consumer/index.html
    +++ b/consumer/index.html
    @@ -15,4 +15,4 @@
     
  1358. -
  1359. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index 3f3c246..5d6d256 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -1,30 +1,30 @@ Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf);assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;assign( [ new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 1, 3000), new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until the consumer has revoked its assignment, calling the rebalance callback if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws SimpleKafkaClient\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are committed or the commit fails and an exception is thrown. -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages are expected, to serve any queued callbacks waiting to be called.getAssignmenthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;assign( [ new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 1, 3000), new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index 355fbae..eedd8ce 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -15,10 +15,10 @@
  1360. -
  1361. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    -

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $offsetsOneWeekAgo = $consumer->offsetForTimes([$topicPartition], 10000);
     
    \ No newline at end of file diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html index 06ba9ed..41cb8eb 100644 --- a/consumer/queryWatermarkOffsets/index.html +++ b/consumer/queryWatermarkOffsets/index.html @@ -15,13 +15,13 @@
  1362. -
  1363. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    -$conf = Kafka\Configuration();
    +$conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $consumer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000);
     
    \ No newline at end of file diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html index 2a71b60..33f0f5d 100644 --- a/consumer/subscribe/index.html +++ b/consumer/subscribe/index.html @@ -15,9 +15,9 @@
  1364. -
  1365. More

    subscribe

    Description

    public function subscribe(array $topics): void {}
    -

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = Kafka\Configuration();
    +

    More

    subscribe

    Description

    public function subscribe(array $topics): void {}
    +

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->subscribe(['test-topic']);
     
    \ No newline at end of file diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html index a573518..19a13c3 100644 --- a/consumer/unsubscribe/index.html +++ b/consumer/unsubscribe/index.html @@ -15,10 +15,10 @@
  1366. -
  1367. More

    unsubscribe

    Description

    public function unsubscribe(): void {}
    -

    Unsubscribe from the current subscriptions

    Example

    $conf = Kafka\Configuration();
    +

    More

    unsubscribe

    Description

    public function unsubscribe(): void {}
    +

    Unsubscribe from the current subscriptions

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumer->subscribe(['test-topic']);
     $consumer->unsubscribe();
     
    \ No newline at end of file diff --git a/functions/index.html b/functions/index.html index 5a4ee8f..f585c7b 100644 --- a/functions/index.html +++ b/functions/index.html @@ -15,4 +15,4 @@
  1368. -
  1369. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index ab314d0..a113a72 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -15,7 +15,7 @@
  1370. -
  1371. More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
    +

    More

    kafka_err2name

    Description

    function kafka_err2name(int $errorCode): string {}
     

    Returns the name of the error

    Example

    php> echo kafka_err2name(88);
     UNSTABLE_OFFSET_COMMIT
     
    \ No newline at end of file diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html index 9e99fcc..6ab6d3c 100644 --- a/functions/kafka_err2str/index.html +++ b/functions/kafka_err2str/index.html @@ -15,7 +15,7 @@
  1372. -
  1373. More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
    +

    More

    kafka_err2str

    Description

    function kafka_err2str(int $errorCode): string {}
     

    Returns the error message of an error code

    Example

    php> echo kafka_err2str(88);
     Broker: There are unstable offsets that need to be cleared
     
    \ No newline at end of file diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html index 45e7c95..77575b2 100644 --- a/functions/kafka_get_err_descs/index.html +++ b/functions/kafka_get_err_descs/index.html @@ -15,7 +15,7 @@
  1374. -
  1375. More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
    +

    More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
         [
             "code" => 88,
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index 6210c08..ae796fd 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -15,5 +15,5 @@
     
  1376. -
  1377. More

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
    +

    More

    kafka_offset_tail

    Description

    function kafka_offset_tail(int $offset): int {}
     

    Returns an offset value that is $offset before the tail of the topic

    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 2f5e9e3..9d559ac 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -15,5 +15,5 @@
  1378. -
  1379. More

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
    +

    More

    kafka_thread_cnt

    Description

    function kafka_thread_cnt(): int {}
     

    Retrieve the current number of threads in use by librdkafka

    \ No newline at end of file diff --git a/index.html b/index.html index 5551d6b..508fcde 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,8 @@
  1380. -
  1381. More

    \ No newline at end of file +License: BSD-3 +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/index.xml b/index.xml index 595e028..6d5fd39 100644 --- a/index.xml +++ b/index.xml @@ -1,96 +1,96 @@ About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests -Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests +Example throw new SimpleKafkaClient\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }Abouthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/ConsumerTopic handles are mainly used to query things like: metadata offsets ProducerTopic handles can be used to query the same things but are also used to produce messages.assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;assign( [ new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 1, 3000), new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} SimpleKafkaClient\Producer::initTransactions() must have been called successfully (once) before this function is called. Any messages produced, offsets sent, etc, after the successful return of this function will be part of the transaction and committed or aborted automatically. -Finish the transaction by calling Kafka\Producer::commitTransaction() -or abort the transaction by calling Kafka\Producer::abortTransaction() -$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until +Finish the transaction by calling SimpleKafkaClient\Producer::commitTransaction() +or abort the transaction by calling SimpleKafkaClient\Producer::abortTransaction() +$conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until the consumer has revoked its assignment, calling the rebalance callback if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws Kafka\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;close();commithttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/Description /** * @throws SimpleKafkaClient\Exception */ public function commit($messageOrOffsets): void {} Commit offsets synchronously, block until offsets are committed or the commit fails and an exception is thrown. -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously -Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a Kafka\Message is passed, commit offset for a single topic+partition based on the message If an array of Kafka\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.commitAsynchttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/Description public function commitAsync($messageOrOffsets): void {} Commit offsets asynchronously +Parameter details If null is passed, latest offsets for the current assignment will be committed ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $message = $consumer-&gt;consume(20000); if (RD_KAFKA_RESP_ERR_NO_ERROR !commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with SimpleKafkaClient\Producer::beginTransaction()). Any outstanding messages will be flushed (delivered) before actually committing the transaction. If any of the outstanding messages fail permanently the current transaction will enter the abortable error state and this function will return an abortable error, in this case the -application must call Kafka\Producer::abortTransaction() before attempting a new -transaction with Kafka\Producer::beginTransaction(). -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) +application must call SimpleKafkaClient\Producer::abortTransaction() before attempting a new +transaction with SimpleKafkaClient\Producer::beginTransaction(). +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.consumehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/Description public function consume(int $timeoutMs): Message {} Consume message(s) (will also get error events and triggers callbacks) Registered callbacks will be automaically called rebalanceCallback, logCallback, etc. On error $message-&gt;err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $message = $consumer-&gt;consume(20000); An application should call consume() at regular intervals, even if no messages are expected, to serve any queued callbacks waiting to be called.dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. This should typically be done prior to destroying a producer instance to make sure all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;assign( [ new Kafka\TopicPartition(&#39;test-topic&#39;, 1, 3000), new Kafka\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getBrokershttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getAssignmenthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/Description public function getAssignment(): array {} Returns the current partition assignment +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;assign( [ new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 1, 3000), new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] ); var_dump($consumer-&gt;getAssignment());getBrokershttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers Will return a Metadata\Collection of Metadata\Broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getCommittedOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/Description public function getCommittedOffsets(array $topics, int $timeoutMs): array {} Returns the committed offsets for topics and partitions for a consumer group +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); var_dump($consumer-&gt;getCommittedOffsets([$topicPartition], 10000));getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/Description public function getErrorString(): string {} Get error string of the message Example echo $message-&gt;getErrorString();getHosthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getOffsetPositionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/Description public function getOffsetPositions(array $topics): array {} The offset field of each requested partition will be set to the offset of the last consumed message + 1 If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0); $topicPartitionsWithOffsets = $consumer-&gt;getOffsetPositions([$topicPartition]));getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions();getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); }getSubscriptionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/Description public function getSubscription(): array {} Return topic names to which the consumer is currently subscribed to +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); var_dump($consumer-&gt;getSubscription());getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicHandle = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $consumer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) Will return a Metadata\Collection of Metadata\Topic -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); }initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }kafka_err2namehttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }kafka_err2namehttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/Description function kafka_err2name(int $errorCode): string {} Returns the name of the error Example php&gt; echo kafka_err2name(88); UNSTABLE_OFFSET_COMMITkafka_err2strhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/Description function kafka_err2str(int $errorCode): string {} Returns the error message of an error code Example php&gt; echo kafka_err2str(88); Broker: There are unstable offsets that need to be clearedkafka_get_err_descshttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/Description function kafka_get_err_descs(): array {} Returns a full list of error codes and their description Result structure [ [ &#34;code&#34; =&gt; 88, &#34;name&#34; =&gt; &#34;UNSTABLE_OFFSET_COMMIT&#34;, &#34;desc&#34; =&gt; &#34;Broker: There are unstable offsets that need to be cleared&#34; ], ... ]kafka_offset_tailhttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/Description function kafka_offset_tail(int $offset): int {} Returns an offset value that is $offset before the tail of the topickafka_thread_cnthttps://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/Description function kafka_thread_cnt(): int {} Retrieve the current number of threads in use by librdkafkaoffsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $consumer-&gt;offsetForTimes([$topicPartition], 10000);offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks waiting to be called, otherwise the internal queue fill up and block the producer.producehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning @@ -105,35 +105,35 @@ to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. -Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v1.0.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Initial extension releasesethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback +Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension releasesethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery -Example $conf = new Kafka\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setDrMsgCb( function (Producer $kafka, Message $message) { if (RD_KAFKA_RESP_ERR_NO_ERROR !== $message-&gt;err) { $errorStr = rd_kafka_err2str($message-&gt;err); echo sprintf(&#39;Message FAILED (%s, %s) to send with payload =&gt; %s&#39;, $message-&gt;err, $errorStr, $message-&gt;payload) . PHP_EOL; } else { // message successfully delivered echo sprintf(&#39;Message sent SUCCESSFULLY with payload =&gt; %s&#39;, $message-&gt;payload) .setErrorCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/Description public function setErrorCb(callable $callback): void {} Gets triggered for every error that occurs in librdkafka, keep in mind that non-critical errors will be retried by libdrkafka -Example $conf = new Kafka\Configuration(); $conf-&gt;setErrorCb( function (Kafka\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setErrorCb( function (SimpleKafkaClient\Kafka $kafka, $errorCode, $reason) { //do something } );setLogCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/Description public function setLogCb(callable $callback): void {} Set a log callback You will get events according to the log_level setting -Example $conf = new Kafka\Configuration(); $conf-&gt;setLogCb( function (Kafka\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setLogCb( function (SimpleKafkaClient\Kafka $kafka, int $level, string $facility, string $message) { //do something } );setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setOffsetCommitCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/Description public function setOffsetCommitCb(callable $callback): void {} Set offset commit callback for use with consumer groups. The results of automatic or manual offset commits will be scheduled for this callback. If no partitions had valid offsets to commit this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET which is not to be considered an error. -Example $conf = new Kafka\Configuration(); $conf-&gt;setOffsetCommitCb( function (Kafka\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setOffsetCommitCb( function (SimpleKafkaClient\Kafka $kafka, int $errorCode, array $topicPartition) { if (RD_KAFKA_RESP_ERR_NO_ERROR === $errorCode) { echo &#39;Commit was successful&#39;; } else { echo &#39;Commit failed&#39;; } } );setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setRebalanceCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/Description public function setRebalanceCb(callable $callback): void {} Set a rebalance callback for use with coordinated consumer group balancing. The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and &lsquo;partitions&rsquo; contains the full partition set that was either assigned or revoked. Registering a rebalance callback turns off the automatic partition assignment/revocation and instead delegates that responsibility to the application&rsquo;s callback. -Example $conf = new Kafka\Configuration(); $conf-&gt;setRebalanceCb( function (Kafka\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setRebalanceCb( function (SimpleKafkaClient\Consumer $kafka, int $errorCode, array $partitions = null) { case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS: $kafka-&gt;assign($partitions); break; case RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS: if ($manual_commits) { // Optional explicit manual commit $kafka-&gt;commit($partitions); } //revoke partitions $kafka-&gt;assign(NULL); break; default: // handle arbitrary rebalancing failure .setStatsCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/Description public function setStatsCb(callable $callback): void {} Set a statistics callback The statistics callback is triggered every statistics.interval.ms (needs to be configured separately). -Example $conf = new Kafka\Configuration(); $conf-&gt;setStatsCb( function (Kafka\Kafka $kafka, string $json, int $jsonLength) { //do something } );setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;setStatsCb( function (SimpleKafkaClient\Kafka $kafka, string $json, int $jsonLength) { //do something } );setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;);subscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/Description public function subscribe(array $topics): void {} Subscribe to one or more topics (regexp also supported). Any previous subscription will be unassigned and unsubscribed first. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new Kafka\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]);transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }unsubscribehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/Description public function unsubscribe(): void {} Unsubscribe from the current subscriptions +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;subscribe([&#39;test-topic&#39;]); $consumer-&gt;unsubscribe(); \ No newline at end of file diff --git a/installation/index.html b/installation/index.html index 603fa1b..17e2e1c 100644 --- a/installation/index.html +++ b/installation/index.html @@ -15,8 +15,9 @@
  1382. -
  1383. More

    Installation

    Installation with PECL

    Not yet support (WIP)

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +

    More

    Installation

    Installation with PECL

    pecl install simple_kafka_client
    +

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
     cd php-simple-kafka-client
     phpize && ./configure && make -j5 all && make install
    -

    In your php/conf.d folder add a kafka.ini with the following:

    extension=kafka.so
    +

    In your php/conf.d folder add a simple_kafka_client.ini with the following:

    extension=simple_kafka_client.so
     
    \ No newline at end of file diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html index b8b5529..b36d897 100644 --- a/kafkaException/__construct/index.html +++ b/kafkaException/__construct/index.html @@ -15,7 +15,7 @@
  1384. -
  1385. More

    __construct

    Description

    public function __construct(
    +

    More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
         string $error_string,
    @@ -23,7 +23,7 @@
         bool $isRetriable,
         bool $transactionRequiresAbort
     ) {}
    -

    Create new KafkaErrorException, this can be helpful for transaction tests

    Example

    throw new Kafka\KafkaErrorException(
    +

    Create new KafkaErrorException, this can be helpful for transaction tests

    Example

    throw new SimpleKafkaClient\KafkaErrorException(
         'Some error message',
         88,
         'This is a detailed error string',
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index 2de44cb..4b89534 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -15,13 +15,13 @@
     
  1386. -
  1387. More

    getErrorString

    Description

    public function getErrorString(): string {}
    -

    Get error description for this exception

    Example

    $conf = Kafka\Configuration();
    +

    More

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    Get error description for this exception

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         echo $e->getErrorString();
     }
     
    \ No newline at end of file diff --git a/kafkaException/index.html b/kafkaException/index.html index 915194f..8135f4d 100644 --- a/kafkaException/index.html +++ b/kafkaException/index.html @@ -15,4 +15,4 @@
  1388. -
  1389. More

    KafkaException

    \ No newline at end of file +

    More

    KafkaException

    \ No newline at end of file diff --git a/kafkaException/index.xml b/kafkaException/index.xml index 64f7579..1cceb1e 100644 --- a/kafkaException/index.xml +++ b/kafkaException/index.xml @@ -1,6 +1,6 @@ KafkaException on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/Recent content in KafkaException on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests -Example throw new Kafka\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } } \ No newline at end of file +Example throw new SimpleKafkaClient\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );getErrorStringhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/Description public function getErrorString(): string {} Get error description for this exception +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { echo $e-&gt;getErrorString(); }isFatalhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/Description public function isFatal(): bool {} Check if it is a fatal exception +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;isFatal()) { // non-recoverable error } }isRetriablehttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/Description public function isRetriable(): bool {} Indicates that the operation that caused this exception can be retried. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;isRetriable()) { // action can be retried } }transactionRequiresAborthttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/Description public function transactionRequiresAbort(): bool {} Check if error needs the transaction to be aborted +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } } \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index d3911db..cff47f6 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -15,13 +15,13 @@
  1390. -
  1391. More

    isFatal

    Description

    public function isFatal(): bool {}
    -

    Check if it is a fatal exception

    Example

    $conf = Kafka\Configuration();
    +

    More

    isFatal

    Description

    public function isFatal(): bool {}
    +

    Check if it is a fatal exception

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         if ($e->isFatal()) {
             // non-recoverable error
         }
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index 72a53c2..86134fc 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -15,13 +15,13 @@
     
  1392. -
  1393. More

    isRetriable

    Description

    public function isRetriable(): bool {}
    -

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = Kafka\Configuration();
    +

    More

    isRetriable

    Description

    public function isRetriable(): bool {}
    +

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         if ($e->isRetriable()) {
             // action can be retried
         }
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index 5a33d6a..f345951 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -15,13 +15,13 @@
     
  1394. -
  1395. More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    -

    Check if error needs the transaction to be aborted

    Example

    $conf = Kafka\Configuration();
    +

    More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    +

    Check if error needs the transaction to be aborted

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         if ($e->$transactionRequiresAbort()) {
             $producer->abortTransaction(10000);
         }
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index cbc7454..b5650e3 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -15,6 +15,6 @@
     
  1396. -
  1397. More

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error string of the message

    Example

    echo $message->getErrorString();
     
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index 00b157e..bfb81b9 100644 --- a/message/index.html +++ b/message/index.html @@ -15,4 +15,4 @@
  1398. -
  1399. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index 53e2713..95a8b42 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -15,4 +15,4 @@
  1400. -
  1401. More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file +

    More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index ff110db..c4c0366 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -15,10 +15,10 @@
  1402. -
  1403. More

    getHost

    Description

    public function getHost(): string {}
    -

    Get host name of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getHost

    Description

    public function getHost(): string {}
    +

    Get host name of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker host: %s', $metadata->getBrokers()->current()->getHost()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html index 730c382..db87893 100644 --- a/metadata/broker/getId/index.html +++ b/metadata/broker/getId/index.html @@ -15,10 +15,10 @@
  1404. -
  1405. More

    getId

    Description

    public function getId(): int {}
    -

    Get host id of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getId

    Description

    public function getId(): int {}
    +

    Get host id of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getBrokers()->current()->getId()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html index e48cab2..1884a7f 100644 --- a/metadata/broker/getPort/index.html +++ b/metadata/broker/getPort/index.html @@ -15,10 +15,10 @@
  1406. -
  1407. More

    getPort

    Description

    public function getPort(): int {}
    -

    Get host port of metadata broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getPort

    Description

    public function getPort(): int {}
    +

    Get host port of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker port: %d', $metadata->getBrokers()->current()->getPort()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/broker/index.html b/metadata/broker/index.html index fe6f8ca..7f6b429 100644 --- a/metadata/broker/index.html +++ b/metadata/broker/index.html @@ -15,4 +15,4 @@
  1408. -
  1409. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/broker/index.xml b/metadata/broker/index.xml index 80ccb51..adf2689 100644 --- a/metadata/broker/index.xml +++ b/metadata/broker/index.xml @@ -1,4 +1,4 @@ Broker on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/Recent content in Broker on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getHosthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/Description public function getHost(): string {} Get host name of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL; \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker host: %s&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost()) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/Description public function getId(): int {} Get host id of metadata broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getId()) . PHP_EOL;getPorthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/Description public function getPort(): int {} Get host port of metadata broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker port: %d&#39;, $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort()) . PHP_EOL; \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index c4951d5..bbe0116 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -15,4 +15,4 @@
  1410. -
  1411. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index 6fcb5f4..992afa2 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -15,10 +15,10 @@
  1412. -
  1413. More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    -

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    +

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo $metadata->getBrokers()->current()->getHost() . PHP_EOL;
     echo $metadata->getBrokers()->current()->getPort() . PHP_EOL;
    diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html
    index 5e44189..1fb3dd9 100644
    --- a/metadata/metadata/getOrigBrokerId/index.html
    +++ b/metadata/metadata/getOrigBrokerId/index.html
    @@ -15,10 +15,10 @@
     
  1414. -
  1415. More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    -

    Get broker id originating this metadata

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    +

    Get broker id originating this metadata

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getOrigBrokerId()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html index de2d92c..d82c9ee 100644 --- a/metadata/metadata/getOrigBrokerName/index.html +++ b/metadata/metadata/getOrigBrokerName/index.html @@ -15,10 +15,10 @@
  1416. -
  1417. More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    -

    Get broker name originating this metadata

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    +

    Get broker name originating this metadata

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Broker id: %d', $metadata->getOrigBrokerName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html index 776f5fa..58cc459 100644 --- a/metadata/metadata/getTopics/index.html +++ b/metadata/metadata/getTopics/index.html @@ -15,10 +15,10 @@
  1418. -
  1419. More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    -

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    +

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo 'Info about topics' . PHP_EOL;
     $topics = $metadata->getTopics();
    diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html
    index 7ca3fa9..bd750b4 100644
    --- a/metadata/metadata/index.html
    +++ b/metadata/metadata/index.html
    @@ -15,4 +15,4 @@
     
  1420. -
  1421. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/metadata/index.xml b/metadata/metadata/index.xml index 18f442e..fd90fdb 100644 --- a/metadata/metadata/index.xml +++ b/metadata/metadata/index.xml @@ -1,7 +1,7 @@ Metadata on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/Recent content in Metadata on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getBrokershttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/Description public function getBrokers(): Metadata\Collection {} Get metadata of all brokers Will return a Metadata\Collection of Metadata\Broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getHost() . PHP_EOL; echo $metadata-&gt;getBrokers()-&gt;current()-&gt;getPort() . PHP_EOL;getOrigBrokerIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/Description public function getOrigBrokerId(): int {} Get broker id originating this metadata +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerId()) . PHP_EOL;getOrigBrokerNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/Description public function getOrigBrokerName(): string {} Get broker name originating this metadata +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Broker id: %d&#39;, $metadata-&gt;getOrigBrokerName()) . PHP_EOL;getTopicshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/Description public function getTopics(): Metadata\Collection {} Get metadata of all topics (or a single topic if one was provided) Will return a Metadata\Collection of Metadata\Topic -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); } \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo &#39;Info about topics&#39; . PHP_EOL; $topics = $metadata-&gt;getTopics(); while ($topics-&gt;valid()) { echo sprintf(&#39;Topic name: %s&#39;, $topics-&gt;current()-&gt;getTopic()) . PHP_EOL; $topics-&gt;next(); } \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index a3cc03c..870cc16 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -15,10 +15,10 @@
  1422. -
  1423. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
    -

    Topic partition error code reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    Topic partition error code reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf(
         'Topic partition error code: %d',
    diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html
    index 6932ed4..97d6b3a 100644
    --- a/metadata/partition/getId/index.html
    +++ b/metadata/partition/getId/index.html
    @@ -15,10 +15,10 @@
     
  1424. -
  1425. More

    getId

    Description

    public function getId(): int {}
    -

    Topic partition id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getId

    Description

    public function getId(): int {}
    +

    Topic partition id reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf(
         'Topic partition id: %d',
    diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html
    index 286bc9c..627f605 100644
    --- a/metadata/partition/getIsrs/index.html
    +++ b/metadata/partition/getIsrs/index.html
    @@ -15,10 +15,10 @@
     
  1426. -
  1427. More

    getIsrs

    Description

    public function getIsrs(): Collection {}
    -

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getIsrs

    Description

    public function getIsrs(): Collection {}
    +

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     $isrs = $metadata->getTopics()->current()->getPartitions()->current()->getIsrs();
     while ($isrs->valid()) {
    diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html
    index 46f34c0..fb7d146 100644
    --- a/metadata/partition/getLeader/index.html
    +++ b/metadata/partition/getLeader/index.html
    @@ -15,10 +15,10 @@
     
  1428. -
  1429. More

    getLeader

    Description

    public function getLeader(): int {}
    -

    Topic partition leader id reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getLeader

    Description

    public function getLeader(): int {}
    +

    Topic partition leader id reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf(
         'Topic partition leader: %d',
    diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html
    index f132720..990166d 100644
    --- a/metadata/partition/getReplicas/index.html
    +++ b/metadata/partition/getReplicas/index.html
    @@ -15,10 +15,10 @@
     
  1430. -
  1431. More

    getReplicas

    Description

    public function getReplicas(): Collection {}
    -

    Topic partition replicas reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getReplicas

    Description

    public function getReplicas(): Collection {}
    +

    Topic partition replicas reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     $replicas = $metadata->getTopics()->current()->getPartitions()->current()->getReplicas();
     while ($replicas->valid()) {
    diff --git a/metadata/partition/index.html b/metadata/partition/index.html
    index 06c7a10..08b5be4 100644
    --- a/metadata/partition/index.html
    +++ b/metadata/partition/index.html
    @@ -15,4 +15,4 @@
     
  1432. -
  1433. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/partition/index.xml b/metadata/partition/index.xml index d15680c..6a74654 100644 --- a/metadata/partition/index.xml +++ b/metadata/partition/index.xml @@ -1,6 +1,6 @@ Partition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/Recent content in Partition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/Description public function getErrorCode(): int {} Topic partition error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); } \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getErrorCode() ) . PHP_EOL;getIdhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/Description public function getId(): int {} Topic partition id reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition id: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getId() ) . PHP_EOL;getIsrshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/Description public function getIsrs(): Collection {} Topic partition in-sync replicas reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $isrs = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getIsrs(); while ($isrs-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $isrs-&gt;current()) . PHP_EOL; $isrs-&gt;next(); }getLeaderhttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/Description public function getLeader(): int {} Topic partition leader id reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf( &#39;Topic partition leader: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getLeader() ) . PHP_EOL;getReplicashttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/Description public function getReplicas(): Collection {} Topic partition replicas reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $replicas = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions()-&gt;current()-&gt;getReplicas(); while ($replicas-&gt;valid()) { echo sprintf(&#39;Insync Replicas id: %d&#39;, $replicas-&gt;current()) . PHP_EOL; $replicas-&gt;next(); } \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index e1b9087..b3c9a21 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -15,10 +15,10 @@
  1434. -
  1435. More

    getErrorCode

    Description

    public function getErrorCode(): int {}
    -

    Topic error code reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    Topic error code reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Topic error code: %d', $metadata->getTopics()->current()->getErrorCode()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html index 3b2b260..8791836 100644 --- a/metadata/topic/getName/index.html +++ b/metadata/topic/getName/index.html @@ -15,10 +15,10 @@
  1436. -
  1437. More

    getName

    Description

    public function getName(): string {}
    -

    Topic name reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getName

    Description

    public function getName(): string {}
    +

    Topic name reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     echo sprintf('Topic name: %d', $metadata->getTopics()->current()->getName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html index bcb2d0f..b679d64 100644 --- a/metadata/topic/getPartitions/index.html +++ b/metadata/topic/getPartitions/index.html @@ -15,10 +15,10 @@
  1438. -
  1439. More

    getPartitions

    Description

    public function getPartitions(): Collection {}
    -

    Topic partitions reported by broker

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getPartitions

    Description

    public function getPartitions(): Collection {}
    +

    Topic partitions reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $metadata = $producer->getMetadata(false, 10000);
     $topicPartitionsMetadata = $metadata->getTopics()->current()->getPartitions();
     
    \ No newline at end of file diff --git a/metadata/topic/index.html b/metadata/topic/index.html index 4e55adc..df3b560 100644 --- a/metadata/topic/index.html +++ b/metadata/topic/index.html @@ -15,4 +15,4 @@
  1440. -
  1441. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/topic/index.xml b/metadata/topic/index.xml index 0400944..d982e58 100644 --- a/metadata/topic/index.xml +++ b/metadata/topic/index.xml @@ -1,4 +1,4 @@ Topic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/Recent content in Topic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getErrorCodehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/Description public function getErrorCode(): int {} Topic error code reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions(); \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic error code: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getErrorCode()) . PHP_EOL;getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/Description public function getName(): string {} Topic name reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); echo sprintf(&#39;Topic name: %d&#39;, $metadata-&gt;getTopics()-&gt;current()-&gt;getName()) . PHP_EOL;getPartitionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/Description public function getPartitions(): Collection {} Topic partitions reported by broker +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $metadata = $producer-&gt;getMetadata(false, 10000); $topicPartitionsMetadata = $metadata-&gt;getTopics()-&gt;current()-&gt;getPartitions(); \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index 70b7034..26334d0 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -15,8 +15,8 @@
  1442. -
  1443. More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    -

    Get a producer instance

    Example

    $conf = Kafka\Configuration();
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    Get a producer instance

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     
    \ No newline at end of file diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html index 663ea34..03ef740 100644 --- a/producer/abortTransaction/index.html +++ b/producer/abortTransaction/index.html @@ -15,13 +15,13 @@
  1444. -
  1445. More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    -

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = Kafka\Configuration();
    +

    More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    +

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         if ($e->$transactionRequiresAbort()) {
             $producer->abortTransaction(10000);
         }
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index 0ac6498..f92fd61 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -15,10 +15,10 @@
     
  1446. -
  1447. More

    beginTransaction

    Description

    public function beginTransaction(): void {}
    -

    Kafka\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling Kafka\Producer::commitTransaction()
    or abort the transaction by calling Kafka\Producer::abortTransaction()

    $conf = Kafka\Configuration();
    +

    More

    beginTransaction

    Description

    public function beginTransaction(): void {}
    +

    SimpleKafkaClient\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling SimpleKafkaClient\Producer::commitTransaction()
    or abort the transaction by calling SimpleKafkaClient\Producer::abortTransaction()

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $producer->initTransactions(10000);
     $producer->beginTransaction();
     // produce some messsages
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index 3e86473..b901747 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -15,10 +15,10 @@
     
  1448. -
  1449. More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    -

    Commit the current transaction (as started with Kafka\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call Kafka\Producer::abortTransaction() before attempting a new
    transaction with Kafka\Producer::beginTransaction().

    Example

    $conf = Kafka\Configuration();
    +

    More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    +

    Commit the current transaction (as started with SimpleKafkaClient\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call SimpleKafkaClient\Producer::abortTransaction() before attempting a new
    transaction with SimpleKafkaClient\Producer::beginTransaction().

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $producer->initTransactions(10000);
     $producer->beginTransaction();
     // produce some messsages
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index b36c00f..c1c172e 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -15,10 +15,10 @@
     
  1450. -
  1451. More

    flush

    Description

    public function flush(int $timeoutMs): int {}
    -

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = Kafka\Configuration();
    +

    More

    flush

    Description

    public function flush(int $timeoutMs): int {}
    +

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     // produce some messsages
     $producer->flush(10000);
     
    \ No newline at end of file diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html index cec7faa..39109e0 100644 --- a/producer/getMetadata/index.html +++ b/producer/getMetadata/index.html @@ -15,10 +15,10 @@
  1452. -
  1453. More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    -

    Get metadata for all topics or a single topic

    Example

    $conf = Kafka\Configuration();
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    Get metadata for all topics or a single topic

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $topicHandle = $producer->getTopicHandle('test-topic');
     $singleTopicMetadata = $producer->metadata(true, $topicHandle, 10000);
     
    \ No newline at end of file diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html index 3aced03..eb20c2a 100644 --- a/producer/getTopicHandle/index.html +++ b/producer/getTopicHandle/index.html @@ -15,10 +15,10 @@
  1454. -
  1455. More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    -

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = Kafka\Configuration();
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $topicHandle = $producer->getTopicHandle('test-topic');
     
     // use the topic handle for further calls, e.g. to query metadata
    diff --git a/producer/index.html b/producer/index.html
    index 703fabc..56c536e 100644
    --- a/producer/index.html
    +++ b/producer/index.html
    @@ -15,4 +15,4 @@
     
  1456. -
  1457. More

    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index 890ed94..c09f200 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -1,42 +1,42 @@ Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (Kafka\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} Kafka\Producer::initTransactions() must have been called successfully (once) +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} SimpleKafkaClient\Producer::initTransactions() must have been called successfully (once) before this function is called. Any messages produced, offsets sent, etc, after the successful return of this function will be part of the transaction and committed or aborted automatically. -Finish the transaction by calling Kafka\Producer::commitTransaction() -or abort the transaction by calling Kafka\Producer::abortTransaction() -$conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with Kafka\Producer::beginTransaction()). +Finish the transaction by calling SimpleKafkaClient\Producer::commitTransaction() +or abort the transaction by calling SimpleKafkaClient\Producer::abortTransaction() +$conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $producer-&gt;initTransactions(10000); $producer-&gt;beginTransaction(); // produce some messsages $producer-&gt;commitTransaction(10000);commitTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/Description public function commitTransaction(int $timeoutMs): void {} Commit the current transaction (as started with SimpleKafkaClient\Producer::beginTransaction()). Any outstanding messages will be flushed (delivered) before actually committing the transaction. If any of the outstanding messages fail permanently the current transaction will enter the abortable error state and this function will return an abortable error, in this case the -application must call Kafka\Producer::abortTransaction() before attempting a new -transaction with Kafka\Producer::beginTransaction(). -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. +application must call SimpleKafkaClient\Producer::abortTransaction() before attempting a new +transaction with SimpleKafkaClient\Producer::beginTransaction(). +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.flushhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/Description public function flush(int $timeoutMs): int {} Wait until all outstanding produce requests, et.al, are completed. This should typically be done prior to destroying a producer instance to make sure all queued and in-flight produce requests are completed before terminating. This function will call poll() and thus trigger callbacks. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); // produce some messsages $producer-&gt;flush(10000);getMetadatahttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/Description function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {} Get metadata for all topics or a single topic +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);getTopicHandlehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/Description public function getTopicHandle(string $topic): ConsumerTopic {} Get a topic handle for a given topic name. A topic handle is needed for example to query metadata from the broker -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicHandle = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); // use the topic handle for further calls, e.g. to query metadata $singleTopicMetadata = $producer-&gt;metadata(true, $topicHandle, 10000);initTransactionshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/Description public function initTransactions(int $timeoutMs): void {} Initialize transactions for the producer instance. This function ensures any transactions initiated by previous instances of the producer with the same transactional.id are completed. If the previous instance failed with a transaction in progress the previous transaction will be aborted. This function needs to be called before any other transactional or produce functions are called when the transactional.id is configured. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.offsetsForTimeshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/Description public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {} Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition. -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly -Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $offsetsOneWeekAgo = $producer-&gt;offsetForTimes([$topicPartition], 10000);pollhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/Description public function poll(int $timeoutMs): int {} Polls for events, provided callbacks will be called accordingly +Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); // produce some messsages $producer-&gt;poll(0); The producer needs to call poll at regular intervals to serve any queued callbacks waiting to be called, otherwise the internal queue fill up and block the producer.purgehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/Description public function purge(int $purgeFlags): int {} Purges messages handled by the producer. The application will need to call poll() or flush() afterwards to serve the delivery report callbacks of the purged messages. Messages purged from internal queues fail with the delivery report error code set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. -Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = Kafka\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new Kafka\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000); \ No newline at end of file +Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition +Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000); \ No newline at end of file diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index a8f5946..dafbec0 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -15,13 +15,13 @@
  1458. -
  1459. More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    -

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = Kafka\Configuration();
    +

    More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    +

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     try {
         $producer->initTransactions(10000);
    -} catch (Kafka\KafkaErrorException $e) {
    +} catch (SimpleKafkaClient\KafkaErrorException $e) {
         if ($e->$transactionRequiresAbort()) {
             $producer->abortTransaction(10000);
         }
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    index 447bc64..e550cca 100644
    --- a/producer/offsetForTimes/index.html
    +++ b/producer/offsetForTimes/index.html
    @@ -15,10 +15,10 @@
     
  1460. -
  1461. More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    -

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = Kafka\Configuration();
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $offsetsOneWeekAgo = $producer->offsetForTimes([$topicPartition], 10000);
     
    \ No newline at end of file diff --git a/producer/poll/index.html b/producer/poll/index.html index e20f7b6..d2f6a9b 100644 --- a/producer/poll/index.html +++ b/producer/poll/index.html @@ -15,10 +15,10 @@
  1462. -
  1463. More

    poll

    Description

    public function poll(int $timeoutMs): int {}
    -

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = Kafka\Configuration();
    +

    More

    poll

    Description

    public function poll(int $timeoutMs): int {}
    +

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     // produce some messsages
     $producer->poll(0);
     
    The producer needs to call poll at regular intervals to serve any queued callbacks
    waiting to be called, otherwise the internal queue fill up and block the producer.
    \ No newline at end of file diff --git a/producer/purge/index.html b/producer/purge/index.html index d3cb9c6..c49082f 100644 --- a/producer/purge/index.html +++ b/producer/purge/index.html @@ -15,10 +15,10 @@
  1464. -
  1465. More

    purge

    Description

    public function purge(int $purgeFlags): int {}
    -

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = Kafka\Configuration();
    +

    More

    purge

    Description

    public function purge(int $purgeFlags): int {}
    +

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     // produce some messsages
     $producer->purge(RD_KAFKA_PURGE_F_QUEUE);
     
    \ No newline at end of file diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html index 27a2481..1f7b903 100644 --- a/producer/queryWatermarkOffsets/index.html +++ b/producer/queryWatermarkOffsets/index.html @@ -15,13 +15,13 @@
  1466. -
  1467. More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    -$conf = Kafka\Configuration();
    +$conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $topicPartition = new TopicPartition('test-topic', 0, strtotime("-1 week"));
     $producer->queryWatermarkOffsets('test-topic', 0, int &$low, int &$high, 10000);
     
    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 7b43fdf..8f6d233 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/categories/https://php-kafka.github.io/php-simple-kafka-client.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/categories/https://php-kafka.github.io/php-simple-kafka-client.github.io/tags/ \ No newline at end of file diff --git a/topicHandles/about/index.html b/topicHandles/about/index.html index c981ea6..899ac65 100644 --- a/topicHandles/about/index.html +++ b/topicHandles/about/index.html @@ -15,4 +15,4 @@
  1468. -
  1469. More

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file +

    More

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file diff --git a/topicHandles/consumerTopic/getName/index.html b/topicHandles/consumerTopic/getName/index.html index 178ecf0..f73792b 100644 --- a/topicHandles/consumerTopic/getName/index.html +++ b/topicHandles/consumerTopic/getName/index.html @@ -15,10 +15,10 @@
  1470. -
  1471. More

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getName

    Description

    public function getName(): string {}
    +

    Get topic name

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$consumer = new Kafka\Consumer($conf);
    +$consumer = new SimpleKafkaClient\Consumer($conf);
     $consumerTopic = $consumer->getTopicHandle('test-topic');
     echo sprintf('Topic name: %s', $consumerTopic->getName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicHandles/consumerTopic/index.html b/topicHandles/consumerTopic/index.html index ccb3993..efb643c 100644 --- a/topicHandles/consumerTopic/index.html +++ b/topicHandles/consumerTopic/index.html @@ -15,4 +15,4 @@
  1472. -
  1473. More

    ConsumerTopic

    \ No newline at end of file +

    More

    ConsumerTopic

    \ No newline at end of file diff --git a/topicHandles/consumerTopic/index.xml b/topicHandles/consumerTopic/index.xml index 5d1feb3..d6813aa 100644 --- a/topicHandles/consumerTopic/index.xml +++ b/topicHandles/consumerTopic/index.xml @@ -1,2 +1,2 @@ ConsumerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/Recent content in ConsumerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new Kafka\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL; \ No newline at end of file +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumerTopic = $consumer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $consumerTopic-&gt;getName()) . PHP_EOL; \ No newline at end of file diff --git a/topicHandles/index.html b/topicHandles/index.html index cde6225..f411245 100644 --- a/topicHandles/index.html +++ b/topicHandles/index.html @@ -15,4 +15,4 @@
  1474. -
  1475. More

    Topic handles

    \ No newline at end of file +

    More

    Topic handles

    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/getName/index.html b/topicHandles/prodcuerTopic/getName/index.html index fceb666..a63b70e 100644 --- a/topicHandles/prodcuerTopic/getName/index.html +++ b/topicHandles/prodcuerTopic/getName/index.html @@ -15,10 +15,10 @@
  1476. -
  1477. More

    getName

    Description

    public function getName(): string {}
    -

    Get topic name

    Example

    $conf = new Kafka\Configuration();
    +

    More

    getName

    Description

    public function getName(): string {}
    +

    Get topic name

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
     echo sprintf('Topic name: %s', $producerTopic->getName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/index.html b/topicHandles/prodcuerTopic/index.html index eaad27e..1342a99 100644 --- a/topicHandles/prodcuerTopic/index.html +++ b/topicHandles/prodcuerTopic/index.html @@ -15,4 +15,4 @@
  1478. -
  1479. More

    ProducerTopic

    \ No newline at end of file +

    More

    ProducerTopic

    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/index.xml b/topicHandles/prodcuerTopic/index.xml index e07d1c0..89f880e 100644 --- a/topicHandles/prodcuerTopic/index.xml +++ b/topicHandles/prodcuerTopic/index.xml @@ -1,5 +1,5 @@ ProducerTopic on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/Recent content in ProducerTopic on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100getNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/Description public function getName(): string {} Get topic name -Example $conf = new Kafka\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new Kafka\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $producer = new SimpleKafkaClient\Producer($conf); $producerTopic = $producer-&gt;getTopicHandle(&#39;test-topic&#39;); echo sprintf(&#39;Topic name: %s&#39;, $producerTopic-&gt;getName()) . PHP_EOL;producehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/Description public function produce( int $partition, int $msgFlags, ?string $payload = null, ?string $key = null ): void {} Produce a message to a topic partition This is an asynchronous and non-blocking call Parameter details partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full diff --git a/topicHandles/prodcuerTopic/produce/index.html b/topicHandles/prodcuerTopic/produce/index.html index b1f6115..1357120 100644 --- a/topicHandles/prodcuerTopic/produce/index.html +++ b/topicHandles/prodcuerTopic/produce/index.html @@ -15,15 +15,15 @@
  1480. -
  1481. More

    produce

    Description

    public function produce(
    +

    More

    produce

    Description

    public function produce(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
         ?string $key = null
     ): void {}
    -

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
     $producerTopic->produce(
         RD_KAFKA_PARTITION_UA,
    diff --git a/topicHandles/prodcuerTopic/producev/index.html b/topicHandles/prodcuerTopic/producev/index.html
    index f6ee19c..a1d1f42 100644
    --- a/topicHandles/prodcuerTopic/producev/index.html
    +++ b/topicHandles/prodcuerTopic/producev/index.html
    @@ -15,7 +15,7 @@
     
  1482. -
  1483. More

    producev

    Description

    public function producev(
    +

    More

    producev

    Description

    public function producev(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    @@ -23,9 +23,9 @@
         ?array $headers = null,
         ?int $timestampMs = null
     ): void {}
    -

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new Kafka\Configuration();
    +

    Produce a message and additional data to a topic partition
    This is an asynchronous and non-blocking call

    Parameter details

    partition: can be either a partition number or RD_KAFKA_PARTITION_UA for automatic partitioning
    msgflags: 0 or RD_KAFKA_MSG_F_BLOCK to block the producer if the queue is full
    key: message key, if non-null the topic partitioner will calculate the partition according to the key

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
    -$producer = new Kafka\Producer($conf);
    +$producer = new SimpleKafkaClient\Producer($conf);
     $producerTopic = $producer->getTopicHandle('test-topic');
     $producerTopic->produce(
         RD_KAFKA_PARTITION_UA,
    diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html
    index 53021cc..ba0d860 100644
    --- a/topicPartition/__construct/index.html
    +++ b/topicPartition/__construct/index.html
    @@ -15,6 +15,6 @@
     
  1484. -
  1485. More

    __construct

    Description

    public function __construct(string $topicName, int $partition, int $offset = 0) {}
    -

    Create new topic partition instance

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +

    More

    __construct

    Description

    public function __construct(string $topicName, int $partition, int $offset = 0) {}
    +

    Create new topic partition instance

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0);
     
    \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html index ea948d5..d7d516f 100644 --- a/topicPartition/getOffset/index.html +++ b/topicPartition/getOffset/index.html @@ -15,7 +15,7 @@
  1486. -
  1487. More

    getOffset

    Description

    public function getOffset(): int {}
    -

    Get offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +

    More

    getOffset

    Description

    public function getOffset(): int {}
    +

    Get offset of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition offset %d', $topicPartition->getOffset()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html index 59173ca..e72c666 100644 --- a/topicPartition/getPartition/index.html +++ b/topicPartition/getPartition/index.html @@ -15,7 +15,7 @@
  1488. -
  1489. More

    getPartition

    Description

    public function getPartition(): int {}
    -

    Get partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +

    More

    getPartition

    Description

    public function getPartition(): int {}
    +

    Get partition of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0, 100);
     echo sprintf('TopicPartition partition %d', $topicPartition->getPartition()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html index 89945b1..13e5e34 100644 --- a/topicPartition/getTopicName/index.html +++ b/topicPartition/getTopicName/index.html @@ -15,7 +15,7 @@
  1490. -
  1491. More

    getTopicName

    Description

    public function getTopicName(): string {}
    -

    Get topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0, 100);
    +

    More

    getTopicName

    Description

    public function getTopicName(): string {}
    +

    Get topic name of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0, 100);
     echo sprintf('Topic partition name %s', $topicPartition->getTopicName()) . PHP_EOL;
     
    \ No newline at end of file diff --git a/topicPartition/index.html b/topicPartition/index.html index 5db3af5..fe66a2f 100644 --- a/topicPartition/index.html +++ b/topicPartition/index.html @@ -15,4 +15,4 @@
  1492. -
  1493. More

    TopicPartition

    \ No newline at end of file +

    More

    TopicPartition

    \ No newline at end of file diff --git a/topicPartition/index.xml b/topicPartition/index.xml index 5c5a5da..38bb80f 100644 --- a/topicPartition/index.xml +++ b/topicPartition/index.xml @@ -1,8 +1,8 @@ TopicPartition on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/Recent content in TopicPartition on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition -Example $topicPartition = new Kafka\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;); \ No newline at end of file +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0);getOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/Description public function getOffset(): int {} Get offset of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition offset %d&#39;, $topicPartition-&gt;getOffset()) . PHP_EOL;getPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/Description public function getPartition(): int {} Get partition of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;TopicPartition partition %d&#39;, $topicPartition-&gt;getPartition()) . PHP_EOL;getTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/Description public function getTopicName(): string {} Get topic name of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0, 100); echo sprintf(&#39;Topic partition name %s&#39;, $topicPartition-&gt;getTopicName()) . PHP_EOL;setOffsethttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/Description public function setOffset(int $offset): TopicPartition {} Set offset of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setOffset(100);setPartitionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/Description public function setPartition(int $partition): TopicPartition {} Set partition of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setPartition(1);setTopicNamehttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/Description public function setTopicName(string $topicName): TopicPartition {} Set topic name of topic partition +Example $topicPartition = new SimpleKafkaClient\TopicPartiton(&#39;test-topic&#39;, 0); $topicPartition-&gt;setTopicName(&#39;another-test-topic&#39;); \ No newline at end of file diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html index 842e3de..6cfb8c9 100644 --- a/topicPartition/setOffset/index.html +++ b/topicPartition/setOffset/index.html @@ -15,7 +15,7 @@
  1494. -
  1495. More

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
    -

    Set offset of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +

    More

    setOffset

    Description

    public function setOffset(int $offset): TopicPartition {}
    +

    Set offset of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0);
     $topicPartition->setOffset(100);
     
    \ No newline at end of file diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html index 5c83375..696ee2b 100644 --- a/topicPartition/setPartition/index.html +++ b/topicPartition/setPartition/index.html @@ -15,7 +15,7 @@
  1496. -
  1497. More

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
    -

    Set partition of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +

    More

    setPartition

    Description

    public function setPartition(int $partition): TopicPartition {}
    +

    Set partition of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0);
     $topicPartition->setPartition(1);
     
    \ No newline at end of file diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html index d0af609..68f0491 100644 --- a/topicPartition/setTopicName/index.html +++ b/topicPartition/setTopicName/index.html @@ -15,7 +15,7 @@
  1498. -
  1499. More

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
    -

    Set topic name of topic partition

    Example

    $topicPartition = new Kafka\TopicPartiton('test-topic', 0);
    +

    More

    setTopicName

    Description

    public function setTopicName(string $topicName): TopicPartition {}
    +

    Set topic name of topic partition

    Example

    $topicPartition = new SimpleKafkaClient\TopicPartiton('test-topic', 0);
     $topicPartition->setTopicName('another-test-topic');
     
    \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index dae141a..ce89f02 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -15,4 +15,4 @@
  1500. -
  1501. More

    What's new

    \ No newline at end of file +

    More

    What's new

    \ No newline at end of file diff --git a/whats-new/index.xml b/whats-new/index.xml index 60d60f4..035058f 100644 --- a/whats-new/index.xml +++ b/whats-new/index.xml @@ -1 +1 @@ -What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v1.0.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-1.0.0/Initial extension release \ No newline at end of file +What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension release \ No newline at end of file diff --git a/whats-new/release-1.0.0/index.html b/whats-new/release-0.1.0/index.html similarity index 99% rename from whats-new/release-1.0.0/index.html rename to whats-new/release-0.1.0/index.html index 0bc91df..03bcf8f 100644 --- a/whats-new/release-1.0.0/index.html +++ b/whats-new/release-0.1.0/index.html @@ -1,4 +1,4 @@ -Release v1.0.0 | Documentation of php-simple-kafka-client
    \ No newline at end of file From 63407a545ecddde7abad53493b5613fe9ce68887 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Wed, 21 Apr 2021 06:41:08 +0000 Subject: [PATCH 31/36] deploy: ab3bc9698f14dfbdce653df864d939dea49ed120 --- about/index.html | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/about/index.html b/about/index.html index 5739f56..bba56a4 100644 --- a/about/index.html +++ b/about/index.html @@ -19,4 +19,4 @@ Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x License: BSD-3 -Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file diff --git a/index.html b/index.html index 508fcde..bdda506 100644 --- a/index.html +++ b/index.html @@ -19,4 +19,4 @@ Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x License: BSD-3 -Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file From 55e8d1254733a91d27ec7aae73e496d87079cafc Mon Sep 17 00:00:00 2001 From: nick-zh Date: Thu, 6 May 2021 05:49:08 +0000 Subject: [PATCH 32/36] deploy: b33f9d1f3b3434ba90a4c650ffe6a6f3001e0f89 --- installation/index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/installation/index.html b/installation/index.html index 17e2e1c..7ce7b30 100644 --- a/installation/index.html +++ b/installation/index.html @@ -16,7 +16,9 @@
  1502. More

    Installation

    Installation with PECL

    pecl install simple_kafka_client
    -

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +

    Alpine Linux

    For PHP7:

    apk add php7-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
    +

    For PHP8:

    apk add php8-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
    +

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
     cd php-simple-kafka-client
     phpize && ./configure && make -j5 all && make install
     

    In your php/conf.d folder add a simple_kafka_client.ini with the following:

    extension=simple_kafka_client.so
    
    From ab73c9eb76aeba4b6f8406931781c05f92d8588b Mon Sep 17 00:00:00 2001
    From: nick-zh 
    Date: Tue, 7 Sep 2021 12:21:55 +0000
    Subject: [PATCH 33/36] deploy: 609894c7d3990b6d1e81f3a95a1220e69e50a647
    
    ---
     about/index.html                              |  8 ++---
     configuration/dump/index.html                 |  8 ++---
     configuration/index.html                      |  8 ++---
     configuration/index.xml                       |  8 ++++-
     configuration/set/index.html                  |  8 ++---
     configuration/setDrMsgCb/index.html           |  8 ++---
     configuration/setErrorCb/index.html           |  8 ++---
     configuration/setLogCb/index.html             |  8 ++---
     .../setOAuthBearerTokenRefreshCb/index.html   | 32 +++++++++++++++++++
     configuration/setOffsetCommitCb/index.html    |  8 ++---
     configuration/setRebalanceCb/index.html       |  8 ++---
     configuration/setStatsCb/index.html           |  8 ++---
     consumer/__construct/index.html               |  8 ++---
     consumer/assign/index.html                    |  8 ++---
     consumer/close/index.html                     |  8 ++---
     consumer/commit/index.html                    |  8 ++---
     consumer/commitAsync/index.html               |  8 ++---
     consumer/consume/index.html                   |  8 ++---
     consumer/getAssignment/index.html             |  8 ++---
     consumer/getCommittedOffsets/index.html       |  8 ++---
     consumer/getMetadata/index.html               |  8 ++---
     consumer/getOffsetPositions/index.html        |  8 ++---
     consumer/getSubscription/index.html           |  8 ++---
     consumer/getTopicHandle/index.html            |  8 ++---
     consumer/index.html                           |  8 ++---
     consumer/index.xml                            |  9 +++++-
     consumer/offsetForTimes/index.html            |  8 ++---
     consumer/queryWatermarkOffsets/index.html     |  8 ++---
     consumer/setOAuthBearerToken/index.html       | 32 +++++++++++++++++++
     .../setOAuthBearerTokenFailure/index.html     | 32 +++++++++++++++++++
     consumer/subscribe/index.html                 |  8 ++---
     consumer/unsubscribe/index.html               |  8 ++---
     functions/index.html                          |  8 ++---
     functions/kafka_err2name/index.html           |  8 ++---
     functions/kafka_err2str/index.html            |  8 ++---
     functions/kafka_get_err_descs/index.html      |  8 ++---
     functions/kafka_offset_tail/index.html        |  8 ++---
     functions/kafka_thread_cnt/index.html         |  8 ++---
     index.html                                    |  8 ++---
     index.xml                                     | 29 +++++++++++++++--
     installation/index.html                       |  8 ++---
     kafkaException/__construct/index.html         |  8 ++---
     kafkaException/getErrorString/index.html      |  8 ++---
     kafkaException/index.html                     |  8 ++---
     kafkaException/isFatal/index.html             |  8 ++---
     kafkaException/isRetriable/index.html         |  8 ++---
     .../transactionRequiresAbort/index.html       |  8 ++---
     message/getErrorString/index.html             |  8 ++---
     message/index.html                            |  8 ++---
     message/properties/index.html                 |  8 ++---
     metadata/broker/getHost/index.html            |  8 ++---
     metadata/broker/getId/index.html              |  8 ++---
     metadata/broker/getPort/index.html            |  8 ++---
     metadata/broker/index.html                    |  8 ++---
     metadata/index.html                           |  8 ++---
     metadata/metadata/getBrokers/index.html       |  8 ++---
     metadata/metadata/getOrigBrokerId/index.html  |  8 ++---
     .../metadata/getOrigBrokerName/index.html     |  8 ++---
     metadata/metadata/getTopics/index.html        |  8 ++---
     metadata/metadata/index.html                  |  8 ++---
     metadata/partition/getErrorCode/index.html    |  8 ++---
     metadata/partition/getId/index.html           |  8 ++---
     metadata/partition/getIsrs/index.html         |  8 ++---
     metadata/partition/getLeader/index.html       |  8 ++---
     metadata/partition/getReplicas/index.html     |  8 ++---
     metadata/partition/index.html                 |  8 ++---
     metadata/topic/getErrorCode/index.html        |  8 ++---
     metadata/topic/getName/index.html             |  8 ++---
     metadata/topic/getPartitions/index.html       |  8 ++---
     metadata/topic/index.html                     |  8 ++---
     producer/__construct/index.html               |  8 ++---
     producer/abortTransaction/index.html          |  8 ++---
     producer/beginTransaction/index.html          |  8 ++---
     producer/commitTransaction/index.html         |  8 ++---
     producer/flush/index.html                     |  8 ++---
     producer/getMetadata/index.html               |  8 ++---
     producer/getTopicHandle/index.html            |  8 ++---
     producer/index.html                           |  8 ++---
     producer/index.xml                            |  9 +++++-
     producer/initTransactions/index.html          |  8 ++---
     producer/offsetForTimes/index.html            |  8 ++---
     producer/poll/index.html                      |  8 ++---
     producer/purge/index.html                     |  8 ++---
     producer/queryWatermarkOffsets/index.html     |  8 ++---
     producer/setOAuthBearerToken/index.html       | 32 +++++++++++++++++++
     .../setOAuthBearerTokenFailure/index.html     | 32 +++++++++++++++++++
     sitemap.xml                                   |  2 +-
     topicHandles/about/index.html                 |  8 ++---
     topicHandles/consumerTopic/getName/index.html |  8 ++---
     topicHandles/consumerTopic/index.html         |  8 ++---
     topicHandles/index.html                       |  8 ++---
     topicHandles/prodcuerTopic/getName/index.html |  8 ++---
     topicHandles/prodcuerTopic/index.html         |  8 ++---
     topicHandles/prodcuerTopic/produce/index.html |  8 ++---
     .../prodcuerTopic/producev/index.html         |  8 ++---
     topicPartition/__construct/index.html         |  8 ++---
     topicPartition/getOffset/index.html           |  8 ++---
     topicPartition/getPartition/index.html        |  8 ++---
     topicPartition/getTopicName/index.html        |  8 ++---
     topicPartition/index.html                     |  8 ++---
     topicPartition/setOffset/index.html           |  8 ++---
     topicPartition/setPartition/index.html        |  8 ++---
     topicPartition/setTopicName/index.html        |  8 ++---
     whats-new/index.html                          |  8 ++---
     whats-new/index.xml                           |  7 +++-
     whats-new/release-0.1.0/index.html            |  8 ++---
     whats-new/release-0.1.1/index.html            | 18 +++++++++++
     whats-new/release-0.1.2/index.html            | 18 +++++++++++
     whats-new/release-0.1.3/index.html            | 18 +++++++++++
     whats-new/release-0.1.4/index.html            | 18 +++++++++++
     110 files changed, 669 insertions(+), 387 deletions(-)
     create mode 100644 configuration/setOAuthBearerTokenRefreshCb/index.html
     create mode 100644 consumer/setOAuthBearerToken/index.html
     create mode 100644 consumer/setOAuthBearerTokenFailure/index.html
     create mode 100644 producer/setOAuthBearerToken/index.html
     create mode 100644 producer/setOAuthBearerTokenFailure/index.html
     create mode 100644 whats-new/release-0.1.1/index.html
     create mode 100644 whats-new/release-0.1.2/index.html
     create mode 100644 whats-new/release-0.1.3/index.html
     create mode 100644 whats-new/release-0.1.4/index.html
    
    diff --git a/about/index.html b/about/index.html
    index bba56a4..770cef6 100644
    --- a/about/index.html
    +++ b/about/index.html
    @@ -1,7 +1,7 @@
     About | Documentation of php-simple-kafka-client

    About

    Supported librdkafka versions: >= 1.4.0 +

    More

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x License: BSD-3 diff --git a/configuration/dump/index.html b/configuration/dump/index.html index f976e54..a3dbfc2 100644 --- a/configuration/dump/index.html +++ b/configuration/dump/index.html @@ -1,7 +1,7 @@ dump | Documentation of php-simple-kafka-client

    dump

    Description

    public function dump(): array {}
    +

    More

    dump

    Description

    public function dump(): array {}
     

    Dumps the current configuration

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $conf->dump();
    diff --git a/configuration/index.html b/configuration/index.html
    index a3337fd..9df712d 100644
    --- a/configuration/index.html
    +++ b/configuration/index.html
    @@ -1,7 +1,7 @@
     Configuration | Documentation of php-simple-kafka-client

    Configuration

    \ No newline at end of file +

    More

    Configuration

    \ No newline at end of file diff --git a/configuration/index.xml b/configuration/index.xml index ac28cd2..963a442 100644 --- a/configuration/index.xml +++ b/configuration/index.xml @@ -1,4 +1,10 @@ -Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration +Configuration on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/Recent content in Configuration on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100setOAuthBearerTokenRefreshCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOAuthBearerTokenRefreshCb/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOAuthBearerTokenRefreshCb/Description public function setOAuthBearerTokenRefreshCb(callable $callback): void {} The SASL/OAUTHBEARER token refresh callback is triggered automatically or via poll +whenever OAUTHBEARER is the SASL mechanism and a token needs to be retrieved, +typically based on the configuration defined in sasl.oauthbearer.config. +The callback should invoke setOauthBearerToken +or setOauthBearerTokenFailure to indicate success +or failure, respectively. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });dumphttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/Description public function dump(): array {} Dumps the current configuration Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;); $conf-&gt;dump();sethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if diff --git a/configuration/set/index.html b/configuration/set/index.html index 82fbf38..ea30e30 100644 --- a/configuration/set/index.html +++ b/configuration/set/index.html @@ -1,7 +1,7 @@ set | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/configuration/setDrMsgCb/index.html b/configuration/setDrMsgCb/index.html index 2968618..bc6947d 100644 --- a/configuration/setDrMsgCb/index.html +++ b/configuration/setDrMsgCb/index.html @@ -1,7 +1,7 @@ setDrMsgCb | Documentation of php-simple-kafka-client

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
    +

    More

    setDrMsgCb

    Description

    public function setDrMsgCb(callable $callback): void {}
     

    Set a message delivery report callback
    This callback is called exactly once per message, indicating if
    the message was succesfully delivered or permanently failed delivery

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setDrMsgCb(
         function (Producer $kafka, Message $message) {
    diff --git a/configuration/setErrorCb/index.html b/configuration/setErrorCb/index.html
    index 75d0eba..6d3cd21 100644
    --- a/configuration/setErrorCb/index.html
    +++ b/configuration/setErrorCb/index.html
    @@ -1,7 +1,7 @@
     setErrorCb | Documentation of php-simple-kafka-client

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
    +

    More

    setErrorCb

    Description

    public function setErrorCb(callable $callback): void {}
     

    Gets triggered for every error that occurs in librdkafka, keep in mind
    that non-critical errors will be retried by libdrkafka

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setErrorCb(
         function (SimpleKafkaClient\Kafka $kafka, $errorCode, $reason) {
    diff --git a/configuration/setLogCb/index.html b/configuration/setLogCb/index.html
    index 4118268..34bf8d8 100644
    --- a/configuration/setLogCb/index.html
    +++ b/configuration/setLogCb/index.html
    @@ -1,7 +1,7 @@
     setLogCb | Documentation of php-simple-kafka-client

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
    +

    More

    setLogCb

    Description

    public function setLogCb(callable $callback): void {}
     

    Set a log callback
    You will get events according to the log_level setting

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setLogCb(
         function (SimpleKafkaClient\Kafka $kafka, int $level, string $facility, string $message) {
    diff --git a/configuration/setOAuthBearerTokenRefreshCb/index.html b/configuration/setOAuthBearerTokenRefreshCb/index.html
    new file mode 100644
    index 0000000..fae02fc
    --- /dev/null
    +++ b/configuration/setOAuthBearerTokenRefreshCb/index.html
    @@ -0,0 +1,32 @@
    +setOAuthBearerTokenRefreshCb | Documentation of php-simple-kafka-client

    setOAuthBearerTokenRefreshCb

    Description

    public function setOAuthBearerTokenRefreshCb(callable $callback): void {}
    +

    The SASL/OAUTHBEARER token refresh callback is triggered automatically or via poll
    whenever OAUTHBEARER is the SASL mechanism and a token needs to be retrieved,
    typically based on the configuration defined in sasl.oauthbearer.config.

    The callback should invoke setOauthBearerToken
    or setOauthBearerTokenFailure to indicate success
    or failure, respectively.

    Example

    $conf = new SimpleKafkaClient\Configuration();
    +$conf->set('metadata.broker.list', getenv('TEST_KAFKA_BROKERS'));
    +$conf->set('security.protocol', 'SASL_PLAINTEXT');
    +$conf->set('sasl.mechanisms', 'OAUTHBEARER');
    +$conf->set('sasl.oauthbearer.config', 'principalClaimName=azp');
    +$conf->setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) {
    +    // get the refresh token with some custom code, then act accordingly
    +    if ($tokenRefreshWasSucessful) {
    +        $kafka->setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions);
    +    } else {
    +        $kafka->setOAuthBearerTokenFailure($errorReason);
    +    }
    +});
    +
    \ No newline at end of file diff --git a/configuration/setOffsetCommitCb/index.html b/configuration/setOffsetCommitCb/index.html index 979660d..077a416 100644 --- a/configuration/setOffsetCommitCb/index.html +++ b/configuration/setOffsetCommitCb/index.html @@ -1,7 +1,7 @@ setOffsetCommitCb | Documentation of php-simple-kafka-client

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
    +

    More

    setOffsetCommitCb

    Description

    public function setOffsetCommitCb(callable $callback): void {}
     

    Set offset commit callback for use with consumer groups.
    The results of automatic or manual offset commits will be scheduled
    for this callback. If no partitions had valid offsets to commit
    this callback will be called with err == RD_KAFKA_RESP_ERR__NO_OFFSET
    which is not to be considered an error.

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setOffsetCommitCb(
         function (SimpleKafkaClient\Kafka $kafka, int $errorCode, array $topicPartition) {
    diff --git a/configuration/setRebalanceCb/index.html b/configuration/setRebalanceCb/index.html
    index 1d5b38e..e4c939b 100644
    --- a/configuration/setRebalanceCb/index.html
    +++ b/configuration/setRebalanceCb/index.html
    @@ -1,7 +1,7 @@
     setRebalanceCb | Documentation of php-simple-kafka-client

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
    +

    More

    setRebalanceCb

    Description

    public function setRebalanceCb(callable $callback): void {}
     

    Set a rebalance callback for use with coordinated consumer group balancing.
    The $errorCode is set to either RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS
    or RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS and ‘partitions’ contains
    the full partition set that was either assigned or revoked.

    Registering a rebalance callback turns off the automatic partition
    assignment/revocation and instead delegates that responsibility
    to the application’s callback.

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setRebalanceCb(
         function (SimpleKafkaClient\Consumer $kafka, int $errorCode, array $partitions = null) {
    diff --git a/configuration/setStatsCb/index.html b/configuration/setStatsCb/index.html
    index 9a61ac2..c211cca 100644
    --- a/configuration/setStatsCb/index.html
    +++ b/configuration/setStatsCb/index.html
    @@ -1,7 +1,7 @@
     setStatsCb | Documentation of php-simple-kafka-client

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
    +

    More

    setStatsCb

    Description

    public function setStatsCb(callable $callback): void {}
     

    Set a statistics callback
    The statistics callback is triggered every statistics.interval.ms (needs to be configured separately).

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->setStatsCb(
         function (SimpleKafkaClient\Kafka $kafka, string $json, int $jsonLength) {
    diff --git a/consumer/__construct/index.html b/consumer/__construct/index.html
    index 550fcf4..562e1b8 100644
    --- a/consumer/__construct/index.html
    +++ b/consumer/__construct/index.html
    @@ -1,7 +1,7 @@
     __construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a consumer instance

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/assign/index.html b/consumer/assign/index.html
    index b9aa648..7cab4de 100644
    --- a/consumer/assign/index.html
    +++ b/consumer/assign/index.html
    @@ -1,7 +1,7 @@
     assign | Documentation of php-simple-kafka-client

    assign

    Description

    public function assign(array $topics): void {}
    +

    More

    assign

    Description

    public function assign(array $topics): void {}
     

    Atomic assignment of partitions to consume.
    The new partitions will replace the existing assignment.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/close/index.html b/consumer/close/index.html
    index 4df2612..faf1740 100644
    --- a/consumer/close/index.html
    +++ b/consumer/close/index.html
    @@ -1,7 +1,7 @@
     close | Documentation of php-simple-kafka-client

    close

    Description

    public function close(): void {}
    +

    More

    close

    Description

    public function close(): void {}
     

    Close down the Consumer. This call will block until
    the consumer has revoked its assignment, calling the rebalance callback
    if it is configured, committed offsets to broker, and left the consumer group. The maximum blocking time is roughly limited to session.timeout.ms.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/commit/index.html b/consumer/commit/index.html
    index 49d69a9..fe3a93a 100644
    --- a/consumer/commit/index.html
    +++ b/consumer/commit/index.html
    @@ -1,7 +1,7 @@
     commit | Documentation of php-simple-kafka-client

    commit

    Description

    /**
    +

    More

    commit

    Description

    /**
      * @throws SimpleKafkaClient\Exception
      */
     public function commit($messageOrOffsets): void {}
    diff --git a/consumer/commitAsync/index.html b/consumer/commitAsync/index.html
    index 744ee64..1a60d71 100644
    --- a/consumer/commitAsync/index.html
    +++ b/consumer/commitAsync/index.html
    @@ -1,7 +1,7 @@
     commitAsync | Documentation of php-simple-kafka-client

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
    +

    More

    commitAsync

    Description

    public function commitAsync($messageOrOffsets): void {}
     

    Commit offsets asynchronously

    Parameter details

    • If null is passed, latest offsets for the current assignment will be committed
    • ÃŒf a SimpleKafkaClient\Message is passed, commit offset for a single topic+partition based on the message
    • If an array of SimpleKafkaClient\TopicPartition is passed, commit offsets for the provided list of partitions

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/consume/index.html b/consumer/consume/index.html
    index 3ab2e1c..6c08563 100644
    --- a/consumer/consume/index.html
    +++ b/consumer/consume/index.html
    @@ -1,7 +1,7 @@
     consume | Documentation of php-simple-kafka-client

    consume

    Description

    public function consume(int $timeoutMs): Message {}
    +

    More

    consume

    Description

    public function consume(int $timeoutMs): Message {}
     

    Consume message(s) (will also get error events and triggers callbacks)
    Registered callbacks will be automaically called rebalanceCallback, logCallback, etc.
    On error $message->err will not be RD_KAFKA_ERR_NO_ERROR but contain the acutal error code.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getAssignment/index.html b/consumer/getAssignment/index.html
    index 256c08f..2e613d9 100644
    --- a/consumer/getAssignment/index.html
    +++ b/consumer/getAssignment/index.html
    @@ -1,7 +1,7 @@
     getAssignment | Documentation of php-simple-kafka-client

    getAssignment

    Description

    public function getAssignment(): array {}
    +

    More

    getAssignment

    Description

    public function getAssignment(): array {}
     

    Returns the current partition assignment

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getCommittedOffsets/index.html b/consumer/getCommittedOffsets/index.html
    index d51cbb1..935d9f5 100644
    --- a/consumer/getCommittedOffsets/index.html
    +++ b/consumer/getCommittedOffsets/index.html
    @@ -1,7 +1,7 @@
     getCommittedOffsets | Documentation of php-simple-kafka-client

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
    +

    More

    getCommittedOffsets

    Description

    public function getCommittedOffsets(array $topics, int $timeoutMs): array {}
     

    Returns the committed offsets for topics and partitions for a consumer group

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getMetadata/index.html b/consumer/getMetadata/index.html
    index a20b063..45b3c4a 100644
    --- a/consumer/getMetadata/index.html
    +++ b/consumer/getMetadata/index.html
    @@ -1,7 +1,7 @@
     getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getOffsetPositions/index.html b/consumer/getOffsetPositions/index.html
    index 4bbfe2f..3580b79 100644
    --- a/consumer/getOffsetPositions/index.html
    +++ b/consumer/getOffsetPositions/index.html
    @@ -1,7 +1,7 @@
     getOffsetPositions | Documentation of php-simple-kafka-client

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
    +

    More

    getOffsetPositions

    Description

    public function getOffsetPositions(array $topics): array {}
     

    The offset field of each requested partition will be set to the offset of the last consumed message + 1
    If there was no previous message RD_KAFKA_OFFSET_INVALID will be returned

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getSubscription/index.html b/consumer/getSubscription/index.html
    index d1b2ae8..d7430bf 100644
    --- a/consumer/getSubscription/index.html
    +++ b/consumer/getSubscription/index.html
    @@ -1,7 +1,7 @@
     getSubscription | Documentation of php-simple-kafka-client

    getSubscription

    Description

    public function getSubscription(): array {}
    +

    More

    getSubscription

    Description

    public function getSubscription(): array {}
     

    Return topic names to which the consumer is currently subscribed to

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/getTopicHandle/index.html b/consumer/getTopicHandle/index.html
    index 5c7e4c6..64bd499 100644
    --- a/consumer/getTopicHandle/index.html
    +++ b/consumer/getTopicHandle/index.html
    @@ -1,7 +1,7 @@
     getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/index.html b/consumer/index.html
    index 2bf6df4..d1235a9 100644
    --- a/consumer/index.html
    +++ b/consumer/index.html
    @@ -1,7 +1,7 @@
     Consumer | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/consumer/index.xml b/consumer/index.xml index 5d6d256..781da9d 100644 --- a/consumer/index.xml +++ b/consumer/index.xml @@ -1,4 +1,11 @@ -Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +Consumer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/Recent content in Consumer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100setOauthBearerTokenhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerToken/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerToken/Description public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon success. The extension keys must not include the reserved +key auth, and all extension keys and values must conform to the required +format as per https://tools.ietf.org/html/rfc7628#section-3.1 +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOauthBearerTokenFailurehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerTokenFailure/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerTokenFailure/Description public function setOauthBearerTokenFailure(string $errorString): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon failure. $errorString should be a human readable error reason +why acquiring a token failed. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf);assignhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/Description public function assign(array $topics): void {} Atomic assignment of partitions to consume. The new partitions will replace the existing assignment. Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $consumer-&gt;assign( [ new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 1, 3000), new SimpleKafkaClient\TopicPartition(&#39;test-topic&#39;, 2, 3009) ] );closehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/Description public function close(): void {} Close down the Consumer. This call will block until diff --git a/consumer/offsetForTimes/index.html b/consumer/offsetForTimes/index.html index eedd8ce..6286998 100644 --- a/consumer/offsetForTimes/index.html +++ b/consumer/offsetForTimes/index.html @@ -1,7 +1,7 @@ offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/queryWatermarkOffsets/index.html b/consumer/queryWatermarkOffsets/index.html
    index 41cb8eb..dd71587 100644
    --- a/consumer/queryWatermarkOffsets/index.html
    +++ b/consumer/queryWatermarkOffsets/index.html
    @@ -1,7 +1,7 @@
     queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    diff --git a/consumer/setOAuthBearerToken/index.html b/consumer/setOAuthBearerToken/index.html
    new file mode 100644
    index 0000000..1391888
    --- /dev/null
    +++ b/consumer/setOAuthBearerToken/index.html
    @@ -0,0 +1,32 @@
    +setOauthBearerToken | Documentation of php-simple-kafka-client

    setOauthBearerToken

    Description

    public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {}
    +

    The SASL/OAUTHBEARER token refresh callback or event handler should invoke
    this method upon success. The extension keys must not include the reserved
    key auth, and all extension keys and values must conform to the required
    format as per https://tools.ietf.org/html/rfc7628#section-3.1

    Example

    $conf = new SimpleKafkaClient\Configuration();
    +$conf->set('metadata.broker.list', getenv('TEST_KAFKA_BROKERS'));
    +$conf->set('security.protocol', 'SASL_PLAINTEXT');
    +$conf->set('sasl.mechanisms', 'OAUTHBEARER');
    +$conf->set('sasl.oauthbearer.config', 'principalClaimName=azp');
    +$conf->setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) {
    +    // get the refresh token with some custom code, then act accordingly
    +    if ($tokenRefreshWasSucessful) {
    +        $kafka->setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions);
    +    } else {
    +        $kafka->setOAuthBearerTokenFailure($errorReason);
    +    }
    +});
    +
    \ No newline at end of file diff --git a/consumer/setOAuthBearerTokenFailure/index.html b/consumer/setOAuthBearerTokenFailure/index.html new file mode 100644 index 0000000..e66b9f6 --- /dev/null +++ b/consumer/setOAuthBearerTokenFailure/index.html @@ -0,0 +1,32 @@ +setOauthBearerTokenFailure | Documentation of php-simple-kafka-client

    setOauthBearerTokenFailure

    Description

    public function setOauthBearerTokenFailure(string $errorString): void {}
    +

    The SASL/OAUTHBEARER token refresh callback or event handler should invoke
    this method upon failure. $errorString should be a human readable error reason
    why acquiring a token failed.

    Example

    $conf = new SimpleKafkaClient\Configuration();
    +$conf->set('metadata.broker.list', getenv('TEST_KAFKA_BROKERS'));
    +$conf->set('security.protocol', 'SASL_PLAINTEXT');
    +$conf->set('sasl.mechanisms', 'OAUTHBEARER');
    +$conf->set('sasl.oauthbearer.config', 'principalClaimName=azp');
    +$conf->setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) {
    +    // get the refresh token with some custom code, then act accordingly
    +    if ($tokenRefreshWasSucessful) {
    +        $kafka->setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions);
    +    } else {
    +        $kafka->setOAuthBearerTokenFailure($errorReason);
    +    }
    +});
    +
    \ No newline at end of file diff --git a/consumer/subscribe/index.html b/consumer/subscribe/index.html index 33f0f5d..e266f82 100644 --- a/consumer/subscribe/index.html +++ b/consumer/subscribe/index.html @@ -1,7 +1,7 @@ subscribe | Documentation of php-simple-kafka-client

    subscribe

    Description

    public function subscribe(array $topics): void {}
    +

    More

    subscribe

    Description

    public function subscribe(array $topics): void {}
     

    Subscribe to one or more topics (regexp also supported).
    Any previous subscription will be unassigned and unsubscribed first.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/consumer/unsubscribe/index.html b/consumer/unsubscribe/index.html
    index 19a13c3..db755de 100644
    --- a/consumer/unsubscribe/index.html
    +++ b/consumer/unsubscribe/index.html
    @@ -1,7 +1,7 @@
     unsubscribe | Documentation of php-simple-kafka-client

    unsubscribe

    Description

    public function unsubscribe(): void {}
    +

    More

    unsubscribe

    Description

    public function unsubscribe(): void {}
     

    Unsubscribe from the current subscriptions

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/functions/index.html b/functions/index.html
    index f585c7b..e6b00eb 100644
    --- a/functions/index.html
    +++ b/functions/index.html
    @@ -1,7 +1,7 @@
     Functions | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/functions/kafka_err2name/index.html b/functions/kafka_err2name/index.html index a113a72..acb82a6 100644 --- a/functions/kafka_err2name/index.html +++ b/functions/kafka_err2name/index.html @@ -1,7 +1,7 @@ kafka_err2name | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/functions/kafka_err2str/index.html b/functions/kafka_err2str/index.html index 6ab6d3c..f3c7c64 100644 --- a/functions/kafka_err2str/index.html +++ b/functions/kafka_err2str/index.html @@ -1,7 +1,7 @@ kafka_err2str | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/functions/kafka_get_err_descs/index.html b/functions/kafka_get_err_descs/index.html index 77575b2..546f30c 100644 --- a/functions/kafka_get_err_descs/index.html +++ b/functions/kafka_get_err_descs/index.html @@ -1,7 +1,7 @@ kafka_get_err_descs | Documentation of php-simple-kafka-client

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
    +

    More

    kafka_get_err_descs

    Description

    function kafka_get_err_descs(): array {}
     

    Returns a full list of error codes and their description

    Result structure

    [
         [
             "code" => 88,
    diff --git a/functions/kafka_offset_tail/index.html b/functions/kafka_offset_tail/index.html
    index ae796fd..28c6259 100644
    --- a/functions/kafka_offset_tail/index.html
    +++ b/functions/kafka_offset_tail/index.html
    @@ -1,7 +1,7 @@
     kafka_offset_tail | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/functions/kafka_thread_cnt/index.html b/functions/kafka_thread_cnt/index.html index 9d559ac..27e79dd 100644 --- a/functions/kafka_thread_cnt/index.html +++ b/functions/kafka_thread_cnt/index.html @@ -1,7 +1,7 @@ kafka_thread_cnt | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/index.html b/index.html index bdda506..4276d74 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ About | Documentation of php-simple-kafka-client

    About

    Supported librdkafka versions: >= 1.4.0 +

    More

    About

    Supported librdkafka versions: >= 1.4.0 Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x License: BSD-3 diff --git a/index.xml b/index.xml index 6d5fd39..cc44735 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,24 @@ -About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance +About on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/Recent content in About on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100setOauthBearerTokenhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerToken/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerToken/Description public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon success. The extension keys must not include the reserved +key auth, and all extension keys and values must conform to the required +format as per https://tools.ietf.org/html/rfc7628#section-3.1 +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOauthBearerTokenhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerToken/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerToken/Description public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon success. The extension keys must not include the reserved +key auth, and all extension keys and values must conform to the required +format as per https://tools.ietf.org/html/rfc7628#section-3.1 +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOauthBearerTokenFailurehttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerTokenFailure/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerTokenFailure/Description public function setOauthBearerTokenFailure(string $errorString): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon failure. $errorString should be a human readable error reason +why acquiring a token failed. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOauthBearerTokenFailurehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerTokenFailure/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerTokenFailure/Description public function setOauthBearerTokenFailure(string $errorString): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon failure. $errorString should be a human readable error reason +why acquiring a token failed. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOAuthBearerTokenRefreshCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOAuthBearerTokenRefreshCb/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOAuthBearerTokenRefreshCb/Description public function setOAuthBearerTokenRefreshCb(callable $callback): void {} The SASL/OAUTHBEARER token refresh callback is triggered automatically or via poll +whenever OAUTHBEARER is the SASL mechanism and a token needs to be retrieved, +typically based on the configuration defined in sasl.oauthbearer.config. +The callback should invoke setOauthBearerToken +or setOauthBearerTokenFailure to indicate success +or failure, respectively. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/Description public function __construct(Configuration $configuration) {} Get a consumer instance Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/Description public function __construct( string $message, int $code, string $error_string, bool $isFatal, bool $isRetriable, bool $transactionRequiresAbort ) {} Create new KafkaErrorException, this can be helpful for transaction tests Example throw new SimpleKafkaClient\KafkaErrorException( &#39;Some error message&#39;, 88, &#39;This is a detailed error string&#39;, false, true, false );__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf);__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/Description public function __construct(string $topicName, int $partition, int $offset = 0) {} Create new topic partition instance @@ -107,7 +127,12 @@ set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT. Purge flags RD_KAFKA_PURGE_F_QUEUE purge internal queue RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $consumer = new SimpleKafkaClient\Consumer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $consumer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);queryWatermarkOffsetshttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/Description public function queryWatermarkOffsets(string $topic, int $partition, int &amp;$low, int &amp;$high, int $timeoutMs): void {} Query broker for low (oldest) and high (newest) offsets for a partition -Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension releasesethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value +Example $low = 0; $high = 0; $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); $topicPartition = new TopicPartition(&#39;test-topic&#39;, 0, strtotime(&#34;-1 week&#34;)); $producer-&gt;queryWatermarkOffsets(&#39;test-topic&#39;, 0, int &amp;$low, int &amp;$high, 10000);Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension releaseRelease v0.1.1https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.1/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.1/Bugfixes: +fix Consumer:assign argument type fix Producer:getTopicHandle return typeRelease v0.1.2https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.2/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.2/Bugfixes: +fix version and some tests fix Windows buildRelease v0.1.3https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.3/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.3/Features +support oauthbearer mechanism Bugfixes: +fixes for PHP8.1 fix Windows buildRelease v0.1.4https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.4/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.4/Bugfixes: +fixes for PHP8.1sethttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/Description public function set(string $name, string $value): void {} Set a configuration value Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;auto.offset.reset&#39;, &#39;earliest&#39;);setDrMsgCbhttps://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/Description public function setDrMsgCb(callable $callback): void {} Set a message delivery report callback This callback is called exactly once per message, indicating if the message was succesfully delivered or permanently failed delivery diff --git a/installation/index.html b/installation/index.html index 7ce7b30..2a0d004 100644 --- a/installation/index.html +++ b/installation/index.html @@ -1,7 +1,7 @@ Installation | Documentation of php-simple-kafka-client

    Installation

    Installation with PECL

    pecl install simple_kafka_client
    +

    More

    Installation

    Installation with PECL

    pecl install simple_kafka_client
     

    Alpine Linux

    For PHP7:

    apk add php7-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
     

    For PHP8:

    apk add php8-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
     

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    diff --git a/kafkaException/__construct/index.html b/kafkaException/__construct/index.html
    index b36d897..461d19f 100644
    --- a/kafkaException/__construct/index.html
    +++ b/kafkaException/__construct/index.html
    @@ -1,7 +1,7 @@
     __construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(
    +

    More

    __construct

    Description

    public function __construct(
         string $message,
         int $code,
         string $error_string,
    diff --git a/kafkaException/getErrorString/index.html b/kafkaException/getErrorString/index.html
    index 4b89534..647d77b 100644
    --- a/kafkaException/getErrorString/index.html
    +++ b/kafkaException/getErrorString/index.html
    @@ -1,7 +1,7 @@
     getErrorString | Documentation of php-simple-kafka-client

    getErrorString

    Description

    public function getErrorString(): string {}
    +

    More

    getErrorString

    Description

    public function getErrorString(): string {}
     

    Get error description for this exception

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/kafkaException/index.html b/kafkaException/index.html
    index 8135f4d..6932236 100644
    --- a/kafkaException/index.html
    +++ b/kafkaException/index.html
    @@ -1,7 +1,7 @@
     KafkaException | Documentation of php-simple-kafka-client

    KafkaException

    \ No newline at end of file +

    More

    KafkaException

    \ No newline at end of file diff --git a/kafkaException/isFatal/index.html b/kafkaException/isFatal/index.html index cff47f6..543fcec 100644 --- a/kafkaException/isFatal/index.html +++ b/kafkaException/isFatal/index.html @@ -1,7 +1,7 @@ isFatal | Documentation of php-simple-kafka-client

    isFatal

    Description

    public function isFatal(): bool {}
    +

    More

    isFatal

    Description

    public function isFatal(): bool {}
     

    Check if it is a fatal exception

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/kafkaException/isRetriable/index.html b/kafkaException/isRetriable/index.html
    index 86134fc..b9b727f 100644
    --- a/kafkaException/isRetriable/index.html
    +++ b/kafkaException/isRetriable/index.html
    @@ -1,7 +1,7 @@
     isRetriable | Documentation of php-simple-kafka-client

    isRetriable

    Description

    public function isRetriable(): bool {}
    +

    More

    isRetriable

    Description

    public function isRetriable(): bool {}
     

    Indicates that the operation that caused this exception can be retried.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/kafkaException/transactionRequiresAbort/index.html b/kafkaException/transactionRequiresAbort/index.html
    index f345951..cb322c8 100644
    --- a/kafkaException/transactionRequiresAbort/index.html
    +++ b/kafkaException/transactionRequiresAbort/index.html
    @@ -1,7 +1,7 @@
     transactionRequiresAbort | Documentation of php-simple-kafka-client

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
    +

    More

    transactionRequiresAbort

    Description

    public function transactionRequiresAbort(): bool {}
     

    Check if error needs the transaction to be aborted

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/message/getErrorString/index.html b/message/getErrorString/index.html
    index b5650e3..bb84c1e 100644
    --- a/message/getErrorString/index.html
    +++ b/message/getErrorString/index.html
    @@ -1,7 +1,7 @@
     getErrorString | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/message/index.html b/message/index.html index bfb81b9..448b316 100644 --- a/message/index.html +++ b/message/index.html @@ -1,7 +1,7 @@ Message | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/message/properties/index.html b/message/properties/index.html index 95a8b42..076ed9d 100644 --- a/message/properties/index.html +++ b/message/properties/index.html @@ -1,7 +1,7 @@ Properties | Documentation of php-simple-kafka-client

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file +

    More

    Properties

    Description

    The message object’s data can be accessed by it’s public properties

    • err the error code (or in case of success RD_KAFKA_RESP_ERR_NO_ERROR)
    • topic_name topic name of message
    • partition partition number of message
    • payload payload of the message
    • len length of the payload
    • key key of the message
    • offset offset of the message
    • headers headers of the message (or null)
    \ No newline at end of file diff --git a/metadata/broker/getHost/index.html b/metadata/broker/getHost/index.html index c4c0366..3e0800c 100644 --- a/metadata/broker/getHost/index.html +++ b/metadata/broker/getHost/index.html @@ -1,7 +1,7 @@ getHost | Documentation of php-simple-kafka-client

    getHost

    Description

    public function getHost(): string {}
    +

    More

    getHost

    Description

    public function getHost(): string {}
     

    Get host name of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/broker/getId/index.html b/metadata/broker/getId/index.html
    index db87893..2539706 100644
    --- a/metadata/broker/getId/index.html
    +++ b/metadata/broker/getId/index.html
    @@ -1,7 +1,7 @@
     getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    +

    More

    getId

    Description

    public function getId(): int {}
     

    Get host id of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/broker/getPort/index.html b/metadata/broker/getPort/index.html
    index 1884a7f..8d0621f 100644
    --- a/metadata/broker/getPort/index.html
    +++ b/metadata/broker/getPort/index.html
    @@ -1,7 +1,7 @@
     getPort | Documentation of php-simple-kafka-client

    getPort

    Description

    public function getPort(): int {}
    +

    More

    getPort

    Description

    public function getPort(): int {}
     

    Get host port of metadata broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/broker/index.html b/metadata/broker/index.html
    index 7f6b429..ba2be01 100644
    --- a/metadata/broker/index.html
    +++ b/metadata/broker/index.html
    @@ -1,7 +1,7 @@
     Broker | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/index.html b/metadata/index.html index bbe0116..d1b3217 100644 --- a/metadata/index.html +++ b/metadata/index.html @@ -1,7 +1,7 @@ Metadata | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/metadata/getBrokers/index.html b/metadata/metadata/getBrokers/index.html index 992afa2..4b97dc1 100644 --- a/metadata/metadata/getBrokers/index.html +++ b/metadata/metadata/getBrokers/index.html @@ -1,7 +1,7 @@ getBrokers | Documentation of php-simple-kafka-client

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
    +

    More

    getBrokers

    Description

    public function getBrokers(): Metadata\Collection {}
     

    Get metadata of all brokers
    Will return a Metadata\Collection of Metadata\Broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/metadata/getOrigBrokerId/index.html b/metadata/metadata/getOrigBrokerId/index.html
    index 1fb3dd9..f502dc9 100644
    --- a/metadata/metadata/getOrigBrokerId/index.html
    +++ b/metadata/metadata/getOrigBrokerId/index.html
    @@ -1,7 +1,7 @@
     getOrigBrokerId | Documentation of php-simple-kafka-client

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
    +

    More

    getOrigBrokerId

    Description

    public function getOrigBrokerId(): int {}
     

    Get broker id originating this metadata

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/metadata/getOrigBrokerName/index.html b/metadata/metadata/getOrigBrokerName/index.html
    index d82c9ee..20d7b3b 100644
    --- a/metadata/metadata/getOrigBrokerName/index.html
    +++ b/metadata/metadata/getOrigBrokerName/index.html
    @@ -1,7 +1,7 @@
     getOrigBrokerName | Documentation of php-simple-kafka-client

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
    +

    More

    getOrigBrokerName

    Description

    public function getOrigBrokerName(): string {}
     

    Get broker name originating this metadata

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/metadata/getTopics/index.html b/metadata/metadata/getTopics/index.html
    index 58cc459..937e8e2 100644
    --- a/metadata/metadata/getTopics/index.html
    +++ b/metadata/metadata/getTopics/index.html
    @@ -1,7 +1,7 @@
     getTopics | Documentation of php-simple-kafka-client

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
    +

    More

    getTopics

    Description

    public function getTopics(): Metadata\Collection {}
     

    Get metadata of all topics (or a single topic if one was provided)
    Will return a Metadata\Collection of Metadata\Topic

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/metadata/index.html b/metadata/metadata/index.html
    index bd750b4..5f5916f 100644
    --- a/metadata/metadata/index.html
    +++ b/metadata/metadata/index.html
    @@ -1,7 +1,7 @@
     Metadata | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/partition/getErrorCode/index.html b/metadata/partition/getErrorCode/index.html index 870cc16..a3fa1bd 100644 --- a/metadata/partition/getErrorCode/index.html +++ b/metadata/partition/getErrorCode/index.html @@ -1,7 +1,7 @@ getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic partition error code reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/partition/getId/index.html b/metadata/partition/getId/index.html
    index 97d6b3a..88a1343 100644
    --- a/metadata/partition/getId/index.html
    +++ b/metadata/partition/getId/index.html
    @@ -1,7 +1,7 @@
     getId | Documentation of php-simple-kafka-client

    getId

    Description

    public function getId(): int {}
    +

    More

    getId

    Description

    public function getId(): int {}
     

    Topic partition id reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/partition/getIsrs/index.html b/metadata/partition/getIsrs/index.html
    index 627f605..aae47eb 100644
    --- a/metadata/partition/getIsrs/index.html
    +++ b/metadata/partition/getIsrs/index.html
    @@ -1,7 +1,7 @@
     getIsrs | Documentation of php-simple-kafka-client

    getIsrs

    Description

    public function getIsrs(): Collection {}
    +

    More

    getIsrs

    Description

    public function getIsrs(): Collection {}
     

    Topic partition in-sync replicas reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/partition/getLeader/index.html b/metadata/partition/getLeader/index.html
    index fb7d146..ada712b 100644
    --- a/metadata/partition/getLeader/index.html
    +++ b/metadata/partition/getLeader/index.html
    @@ -1,7 +1,7 @@
     getLeader | Documentation of php-simple-kafka-client

    getLeader

    Description

    public function getLeader(): int {}
    +

    More

    getLeader

    Description

    public function getLeader(): int {}
     

    Topic partition leader id reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/partition/getReplicas/index.html b/metadata/partition/getReplicas/index.html
    index 990166d..41d9175 100644
    --- a/metadata/partition/getReplicas/index.html
    +++ b/metadata/partition/getReplicas/index.html
    @@ -1,7 +1,7 @@
     getReplicas | Documentation of php-simple-kafka-client

    getReplicas

    Description

    public function getReplicas(): Collection {}
    +

    More

    getReplicas

    Description

    public function getReplicas(): Collection {}
     

    Topic partition replicas reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/partition/index.html b/metadata/partition/index.html
    index 08b5be4..6e1a635 100644
    --- a/metadata/partition/index.html
    +++ b/metadata/partition/index.html
    @@ -1,7 +1,7 @@
     Partition | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/metadata/topic/getErrorCode/index.html b/metadata/topic/getErrorCode/index.html index b3c9a21..4b53693 100644 --- a/metadata/topic/getErrorCode/index.html +++ b/metadata/topic/getErrorCode/index.html @@ -1,7 +1,7 @@ getErrorCode | Documentation of php-simple-kafka-client

    getErrorCode

    Description

    public function getErrorCode(): int {}
    +

    More

    getErrorCode

    Description

    public function getErrorCode(): int {}
     

    Topic error code reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/topic/getName/index.html b/metadata/topic/getName/index.html
    index 8791836..246f2e4 100644
    --- a/metadata/topic/getName/index.html
    +++ b/metadata/topic/getName/index.html
    @@ -1,7 +1,7 @@
     getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Topic name reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/topic/getPartitions/index.html b/metadata/topic/getPartitions/index.html
    index b679d64..5998ae7 100644
    --- a/metadata/topic/getPartitions/index.html
    +++ b/metadata/topic/getPartitions/index.html
    @@ -1,7 +1,7 @@
     getPartitions | Documentation of php-simple-kafka-client

    getPartitions

    Description

    public function getPartitions(): Collection {}
    +

    More

    getPartitions

    Description

    public function getPartitions(): Collection {}
     

    Topic partitions reported by broker

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/metadata/topic/index.html b/metadata/topic/index.html
    index df3b560..bd12f4e 100644
    --- a/metadata/topic/index.html
    +++ b/metadata/topic/index.html
    @@ -1,7 +1,7 @@
     Topic | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/producer/__construct/index.html b/producer/__construct/index.html index 26334d0..21d920b 100644 --- a/producer/__construct/index.html +++ b/producer/__construct/index.html @@ -1,7 +1,7 @@ __construct | Documentation of php-simple-kafka-client

    __construct

    Description

    public function __construct(Configuration $configuration) {}
    +

    More

    __construct

    Description

    public function __construct(Configuration $configuration) {}
     

    Get a producer instance

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/abortTransaction/index.html b/producer/abortTransaction/index.html
    index 03ef740..30b3ab6 100644
    --- a/producer/abortTransaction/index.html
    +++ b/producer/abortTransaction/index.html
    @@ -1,7 +1,7 @@
     abortTransaction | Documentation of php-simple-kafka-client

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
    +

    More

    abortTransaction

    Description

    public function abortTransaction(int $timeoutMs): void {}
     

    This function should also be used to recover from non-fatal abortable transaction errors.
    Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/beginTransaction/index.html b/producer/beginTransaction/index.html
    index f92fd61..874c73d 100644
    --- a/producer/beginTransaction/index.html
    +++ b/producer/beginTransaction/index.html
    @@ -1,7 +1,7 @@
     beginTransaction | Documentation of php-simple-kafka-client

    beginTransaction

    Description

    public function beginTransaction(): void {}
    +

    More

    beginTransaction

    Description

    public function beginTransaction(): void {}
     

    SimpleKafkaClient\Producer::initTransactions() must have been called successfully (once)
    before this function is called. Any messages produced, offsets sent, etc,
    after the successful return of this function will be part of the transaction
    and committed or aborted automatically.
    Finish the transaction by calling SimpleKafkaClient\Producer::commitTransaction()
    or abort the transaction by calling SimpleKafkaClient\Producer::abortTransaction()

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/commitTransaction/index.html b/producer/commitTransaction/index.html
    index b901747..05d2ed1 100644
    --- a/producer/commitTransaction/index.html
    +++ b/producer/commitTransaction/index.html
    @@ -1,7 +1,7 @@
     commitTransaction | Documentation of php-simple-kafka-client

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
    +

    More

    commitTransaction

    Description

    public function commitTransaction(int $timeoutMs): void {}
     

    Commit the current transaction (as started with SimpleKafkaClient\Producer::beginTransaction()).
    Any outstanding messages will be flushed (delivered) before actually committing the transaction.
    If any of the outstanding messages fail permanently the current transaction will enter the
    abortable error state and this function will return an abortable error, in this case the
    application must call SimpleKafkaClient\Producer::abortTransaction() before attempting a new
    transaction with SimpleKafkaClient\Producer::beginTransaction().

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/flush/index.html b/producer/flush/index.html
    index c1c172e..c98d8f8 100644
    --- a/producer/flush/index.html
    +++ b/producer/flush/index.html
    @@ -1,7 +1,7 @@
     flush | Documentation of php-simple-kafka-client

    flush

    Description

    public function flush(int $timeoutMs): int {}
    +

    More

    flush

    Description

    public function flush(int $timeoutMs): int {}
     

    Wait until all outstanding produce requests, et.al, are completed.
    This should typically be done prior to destroying a producer instance to make sure
    all queued and in-flight produce requests are completed before terminating.
    This function will call poll() and thus trigger callbacks.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/getMetadata/index.html b/producer/getMetadata/index.html
    index 39109e0..7f04e26 100644
    --- a/producer/getMetadata/index.html
    +++ b/producer/getMetadata/index.html
    @@ -1,7 +1,7 @@
     getMetadata | Documentation of php-simple-kafka-client

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
    +

    More

    getMetadata

    Description

    function getMetadata(bool $allTopics, int $timeoutMs, ConsumerTopic $topic = null): Metadata {}
     

    Get metadata for all topics or a single topic

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/getTopicHandle/index.html b/producer/getTopicHandle/index.html
    index eb20c2a..37cabab 100644
    --- a/producer/getTopicHandle/index.html
    +++ b/producer/getTopicHandle/index.html
    @@ -1,7 +1,7 @@
     getTopicHandle | Documentation of php-simple-kafka-client

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
    +

    More

    getTopicHandle

    Description

    public function getTopicHandle(string $topic): ConsumerTopic {}
     

    Get a topic handle for a given topic name. A topic handle is needed
    for example to query metadata from the broker

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/index.html b/producer/index.html
    index 56c536e..9704e07 100644
    --- a/producer/index.html
    +++ b/producer/index.html
    @@ -1,7 +1,7 @@
     Producer | Documentation of php-simple-kafka-client
    \ No newline at end of file +

    More

    \ No newline at end of file diff --git a/producer/index.xml b/producer/index.xml index c09f200..62dd72f 100644 --- a/producer/index.xml +++ b/producer/index.xml @@ -1,4 +1,11 @@ -Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance +Producer on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/Recent content in Producer on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100setOauthBearerTokenhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerToken/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerToken/Description public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon success. The extension keys must not include the reserved +key auth, and all extension keys and values must conform to the required +format as per https://tools.ietf.org/html/rfc7628#section-3.1 +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });setOauthBearerTokenFailurehttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerTokenFailure/Tue, 07 Sep 2021 10:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerTokenFailure/Description public function setOauthBearerTokenFailure(string $errorString): void {} The SASL/OAUTHBEARER token refresh callback or event handler should invoke +this method upon failure. $errorString should be a human readable error reason +why acquiring a token failed. +Example $conf = new SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, getenv(&#39;TEST_KAFKA_BROKERS&#39;)); $conf-&gt;set(&#39;security.protocol&#39;, &#39;SASL_PLAINTEXT&#39;); $conf-&gt;set(&#39;sasl.mechanisms&#39;, &#39;OAUTHBEARER&#39;); $conf-&gt;set(&#39;sasl.oauthbearer.config&#39;, &#39;principalClaimName=azp&#39;); $conf-&gt;setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) { // get the refresh token with some custom code, then act accordingly if ($tokenRefreshWasSucessful) { $kafka-&gt;setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions); } else { $kafka-&gt;setOAuthBearerTokenFailure($errorReason); } });__constructhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/Description public function __construct(Configuration $configuration) {} Get a producer instance Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf);abortTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/Description public function abortTransaction(int $timeoutMs): void {} This function should also be used to recover from non-fatal abortable transaction errors. Any outstanding messages will be purged and fail with RD_KAFKA_RESP_ERR__PURGE_INFLIGHT or RD_KAFKA_RESP_ERR__PURGE_QUEUE. Example $conf = SimpleKafkaClient\Configuration(); $conf-&gt;set(&#39;metadata.broker.list&#39;, &#39;kafka:9092&#39;); $producer = new SimpleKafkaClient\Producer($conf); try { $producer-&gt;initTransactions(10000); } catch (SimpleKafkaClient\KafkaErrorException $e) { if ($e-&gt;$transactionRequiresAbort()) { $producer-&gt;abortTransaction(10000); } }beginTransactionhttps://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/Description public function beginTransaction(): void {} SimpleKafkaClient\Producer::initTransactions() must have been called successfully (once) diff --git a/producer/initTransactions/index.html b/producer/initTransactions/index.html index dafbec0..0e2e9b4 100644 --- a/producer/initTransactions/index.html +++ b/producer/initTransactions/index.html @@ -1,7 +1,7 @@ initTransactions | Documentation of php-simple-kafka-client

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
    +

    More

    initTransactions

    Description

    public function initTransactions(int $timeoutMs): void  {}
     

    Initialize transactions for the producer instance.
    This function ensures any transactions initiated by previous instances of
    the producer with the same transactional.id are completed.
    If the previous instance failed with a transaction in progress the previous
    transaction will be aborted. This function needs to be called before any other
    transactional or produce functions are called when the transactional.id is configured.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/offsetForTimes/index.html b/producer/offsetForTimes/index.html
    index e550cca..2794708 100644
    --- a/producer/offsetForTimes/index.html
    +++ b/producer/offsetForTimes/index.html
    @@ -1,7 +1,7 @@
     offsetsForTimes | Documentation of php-simple-kafka-client

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
    +

    More

    offsetsForTimes

    Description

    public function offsetsForTimes(array $topicPartitions, int $timeoutMs): array {}
     

    Look up the offsets for the given partitions by timestamp.
    The returned offset for each partition is the earliest offset whose
    timestamp is greater than or equal to the given timestamp in the
    corresponding partition.

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/poll/index.html b/producer/poll/index.html
    index d2f6a9b..70ebc69 100644
    --- a/producer/poll/index.html
    +++ b/producer/poll/index.html
    @@ -1,7 +1,7 @@
     poll | Documentation of php-simple-kafka-client

    poll

    Description

    public function poll(int $timeoutMs): int {}
    +

    More

    poll

    Description

    public function poll(int $timeoutMs): int {}
     

    Polls for events, provided callbacks will be called accordingly

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/purge/index.html b/producer/purge/index.html
    index c49082f..b2691df 100644
    --- a/producer/purge/index.html
    +++ b/producer/purge/index.html
    @@ -1,7 +1,7 @@
     purge | Documentation of php-simple-kafka-client

    purge

    Description

    public function purge(int $purgeFlags): int {}
    +

    More

    purge

    Description

    public function purge(int $purgeFlags): int {}
     

    Purges messages handled by the producer.
    The application will need to call poll() or flush() afterwards
    to serve the delivery report callbacks of the purged messages.
    Messages purged from internal queues fail with the delivery report error code
    set to RD_KAFKA_RESP_ERR__PURGE_QUEUE, while purged messages that are in-flight
    to or from the broker will fail with the error code set to RD_KAFKA_RESP_ERR__PURGE_INFLIGHT.

    Purge flags

    • RD_KAFKA_PURGE_F_QUEUE purge internal queue
    • RD_KAFKA_PURGE_F_INFLIGHT purge messages in-flight to or from the broker
    • RD_KAFKA_PURGE_F_NON_BLOCKING make the call non-blocking

    Example

    $conf = SimpleKafkaClient\Configuration();
     $conf->set('metadata.broker.list', 'kafka:9092');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/producer/queryWatermarkOffsets/index.html b/producer/queryWatermarkOffsets/index.html
    index 1f7b903..0b9fe2c 100644
    --- a/producer/queryWatermarkOffsets/index.html
    +++ b/producer/queryWatermarkOffsets/index.html
    @@ -1,7 +1,7 @@
     queryWatermarkOffsets | Documentation of php-simple-kafka-client

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
    +

    More

    queryWatermarkOffsets

    Description

    public function queryWatermarkOffsets(string $topic, int $partition, int &$low, int &$high, int $timeoutMs): void {}
     

    Query broker for low (oldest) and high (newest) offsets for a partition

    Example

    $low = 0;
     $high = 0;
     
    diff --git a/producer/setOAuthBearerToken/index.html b/producer/setOAuthBearerToken/index.html
    new file mode 100644
    index 0000000..280c29a
    --- /dev/null
    +++ b/producer/setOAuthBearerToken/index.html
    @@ -0,0 +1,32 @@
    +setOauthBearerToken | Documentation of php-simple-kafka-client

    setOauthBearerToken

    Description

    public function setOAuthBearerToken(string $token, int $lifetimeMs, string $principalName, ?array $extensions = null): void {}
    +

    The SASL/OAUTHBEARER token refresh callback or event handler should invoke
    this method upon success. The extension keys must not include the reserved
    key auth, and all extension keys and values must conform to the required
    format as per https://tools.ietf.org/html/rfc7628#section-3.1

    Example

    $conf = new SimpleKafkaClient\Configuration();
    +$conf->set('metadata.broker.list', getenv('TEST_KAFKA_BROKERS'));
    +$conf->set('security.protocol', 'SASL_PLAINTEXT');
    +$conf->set('sasl.mechanisms', 'OAUTHBEARER');
    +$conf->set('sasl.oauthbearer.config', 'principalClaimName=azp');
    +$conf->setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) {
    +    // get the refresh token with some custom code, then act accordingly
    +    if ($tokenRefreshWasSucessful) {
    +        $kafka->setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions);
    +    } else {
    +        $kafka->setOAuthBearerTokenFailure($errorReason);
    +    }
    +});
    +
    \ No newline at end of file diff --git a/producer/setOAuthBearerTokenFailure/index.html b/producer/setOAuthBearerTokenFailure/index.html new file mode 100644 index 0000000..4bd7af2 --- /dev/null +++ b/producer/setOAuthBearerTokenFailure/index.html @@ -0,0 +1,32 @@ +setOauthBearerTokenFailure | Documentation of php-simple-kafka-client

    setOauthBearerTokenFailure

    Description

    public function setOauthBearerTokenFailure(string $errorString): void {}
    +

    The SASL/OAUTHBEARER token refresh callback or event handler should invoke
    this method upon failure. $errorString should be a human readable error reason
    why acquiring a token failed.

    Example

    $conf = new SimpleKafkaClient\Configuration();
    +$conf->set('metadata.broker.list', getenv('TEST_KAFKA_BROKERS'));
    +$conf->set('security.protocol', 'SASL_PLAINTEXT');
    +$conf->set('sasl.mechanisms', 'OAUTHBEARER');
    +$conf->set('sasl.oauthbearer.config', 'principalClaimName=azp');
    +$conf->setOAuthBearerTokenRefreshCb(function($kafka, $oAuthBearerConfig) {
    +    // get the refresh token with some custom code, then act accordingly
    +    if ($tokenRefreshWasSucessful) {
    +        $kafka->setOAuthBearerToken($token, $lifetimeMs, $principalName, $extensions);
    +    } else {
    +        $kafka->setOAuthBearerTokenFailure($errorReason);
    +    }
    +});
    +
    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 8f6d233..58cc7aa 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/categories/https://php-kafka.github.io/php-simple-kafka-client.github.io/tags/ \ No newline at end of file +https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerToken/2021-09-07T10:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerToken/2021-09-07T10:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/setOAuthBearerTokenFailure/2021-09-07T10:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/setOAuthBearerTokenFailure/2021-09-07T10:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOAuthBearerTokenRefreshCb/2021-09-07T10:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/__construct/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/abortTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/about/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/assign/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/beginTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/close/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commit/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/commitAsync/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/commitTransaction/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/consume/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/dump/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/flush/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getAssignment/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getBrokers/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getCommittedOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getErrorCode/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/getErrorString/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getHost/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getIsrs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getLeader/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getMetadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/consumerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/getName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getOffsetPositions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerId/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getOrigBrokerName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/getPartitions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/broker/getPort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/getReplicas/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getSubscription/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/getTopicHandle/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/getTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/getTopics/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/initTransactions/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/installation/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isFatal/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/isRetriable/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2name/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_err2str/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_get_err_descs/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_offset_tail/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/functions/kafka_thread_cnt/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/metadata/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/offsetForTimes/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/partition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/poll/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/produce/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/prodcuerTopic/producev/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/message/properties/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/purge/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/producer/queryWatermarkOffsets/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.1/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.2/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.3/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.4/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/set/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setDrMsgCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setErrorCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setLogCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setOffset/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setOffsetCommitCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setRebalanceCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/configuration/setStatsCb/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/setTopicName/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/subscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/metadata/topic/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicHandles/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/topicPartition/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/kafkaException/transactionRequiresAbort/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/consumer/unsubscribe/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/2020-12-27T22:09:37+01:00https://php-kafka.github.io/php-simple-kafka-client.github.io/categories/https://php-kafka.github.io/php-simple-kafka-client.github.io/tags/ \ No newline at end of file diff --git a/topicHandles/about/index.html b/topicHandles/about/index.html index 899ac65..9dda8f0 100644 --- a/topicHandles/about/index.html +++ b/topicHandles/about/index.html @@ -1,7 +1,7 @@ About | Documentation of php-simple-kafka-client

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file +

    More

    About

    ConsumerTopic handles are mainly used to query things like:

    • metadata
    • offsets

    ProducerTopic handles can be used to query the same things
    but are also used to produce messages.

    \ No newline at end of file diff --git a/topicHandles/consumerTopic/getName/index.html b/topicHandles/consumerTopic/getName/index.html index f73792b..66effe4 100644 --- a/topicHandles/consumerTopic/getName/index.html +++ b/topicHandles/consumerTopic/getName/index.html @@ -1,7 +1,7 @@ getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Get topic name

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $consumer = new SimpleKafkaClient\Consumer($conf);
    diff --git a/topicHandles/consumerTopic/index.html b/topicHandles/consumerTopic/index.html
    index efb643c..ef5b5cd 100644
    --- a/topicHandles/consumerTopic/index.html
    +++ b/topicHandles/consumerTopic/index.html
    @@ -1,7 +1,7 @@
     ConsumerTopic | Documentation of php-simple-kafka-client

    ConsumerTopic

    \ No newline at end of file +

    More

    ConsumerTopic

    \ No newline at end of file diff --git a/topicHandles/index.html b/topicHandles/index.html index f411245..9543f46 100644 --- a/topicHandles/index.html +++ b/topicHandles/index.html @@ -1,7 +1,7 @@ Topic handles | Documentation of php-simple-kafka-client

    Topic handles

    \ No newline at end of file +

    More

    Topic handles

    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/getName/index.html b/topicHandles/prodcuerTopic/getName/index.html index a63b70e..390b909 100644 --- a/topicHandles/prodcuerTopic/getName/index.html +++ b/topicHandles/prodcuerTopic/getName/index.html @@ -1,7 +1,7 @@ getName | Documentation of php-simple-kafka-client

    getName

    Description

    public function getName(): string {}
    +

    More

    getName

    Description

    public function getName(): string {}
     

    Get topic name

    Example

    $conf = new SimpleKafkaClient\Configuration();
     $conf->set('auto.offset.reset', 'earliest');
     $producer = new SimpleKafkaClient\Producer($conf);
    diff --git a/topicHandles/prodcuerTopic/index.html b/topicHandles/prodcuerTopic/index.html
    index 1342a99..2c4569a 100644
    --- a/topicHandles/prodcuerTopic/index.html
    +++ b/topicHandles/prodcuerTopic/index.html
    @@ -1,7 +1,7 @@
     ProducerTopic | Documentation of php-simple-kafka-client

    ProducerTopic

    \ No newline at end of file +

    More

    ProducerTopic

    \ No newline at end of file diff --git a/topicHandles/prodcuerTopic/produce/index.html b/topicHandles/prodcuerTopic/produce/index.html index 1357120..8d606fe 100644 --- a/topicHandles/prodcuerTopic/produce/index.html +++ b/topicHandles/prodcuerTopic/produce/index.html @@ -1,7 +1,7 @@ produce | Documentation of php-simple-kafka-client

    produce

    Description

    public function produce(
    +

    More

    produce

    Description

    public function produce(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    diff --git a/topicHandles/prodcuerTopic/producev/index.html b/topicHandles/prodcuerTopic/producev/index.html
    index a1d1f42..df0d2f5 100644
    --- a/topicHandles/prodcuerTopic/producev/index.html
    +++ b/topicHandles/prodcuerTopic/producev/index.html
    @@ -1,7 +1,7 @@
     producev | Documentation of php-simple-kafka-client

    producev

    Description

    public function producev(
    +

    More

    producev

    Description

    public function producev(
         int $partition,
         int $msgFlags,
         ?string $payload = null,
    diff --git a/topicPartition/__construct/index.html b/topicPartition/__construct/index.html
    index ba0d860..49ebfee 100644
    --- a/topicPartition/__construct/index.html
    +++ b/topicPartition/__construct/index.html
    @@ -1,7 +1,7 @@
     __construct | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/getOffset/index.html b/topicPartition/getOffset/index.html index d7d516f..c36aa90 100644 --- a/topicPartition/getOffset/index.html +++ b/topicPartition/getOffset/index.html @@ -1,7 +1,7 @@ getOffset | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/getPartition/index.html b/topicPartition/getPartition/index.html index e72c666..03ca4b1 100644 --- a/topicPartition/getPartition/index.html +++ b/topicPartition/getPartition/index.html @@ -1,7 +1,7 @@ getPartition | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/getTopicName/index.html b/topicPartition/getTopicName/index.html index 13e5e34..953570c 100644 --- a/topicPartition/getTopicName/index.html +++ b/topicPartition/getTopicName/index.html @@ -1,7 +1,7 @@ getTopicName | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/index.html b/topicPartition/index.html index fe66a2f..c3b9a09 100644 --- a/topicPartition/index.html +++ b/topicPartition/index.html @@ -1,7 +1,7 @@ TopicPartition | Documentation of php-simple-kafka-client

    TopicPartition

    \ No newline at end of file +

    More

    TopicPartition

    \ No newline at end of file diff --git a/topicPartition/setOffset/index.html b/topicPartition/setOffset/index.html index 6cfb8c9..5243fad 100644 --- a/topicPartition/setOffset/index.html +++ b/topicPartition/setOffset/index.html @@ -1,7 +1,7 @@ setOffset | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/setPartition/index.html b/topicPartition/setPartition/index.html index 696ee2b..f79f5ea 100644 --- a/topicPartition/setPartition/index.html +++ b/topicPartition/setPartition/index.html @@ -1,7 +1,7 @@ setPartition | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/topicPartition/setTopicName/index.html b/topicPartition/setTopicName/index.html index 68f0491..90b2caa 100644 --- a/topicPartition/setTopicName/index.html +++ b/topicPartition/setTopicName/index.html @@ -1,7 +1,7 @@ setTopicName | Documentation of php-simple-kafka-client
    \ No newline at end of file diff --git a/whats-new/index.html b/whats-new/index.html index ce89f02..c706bba 100644 --- a/whats-new/index.html +++ b/whats-new/index.html @@ -1,7 +1,7 @@ What's new | Documentation of php-simple-kafka-client

    What's new

    \ No newline at end of file +

    More

    What's new

    \ No newline at end of file diff --git a/whats-new/index.xml b/whats-new/index.xml index 035058f..77719f4 100644 --- a/whats-new/index.xml +++ b/whats-new/index.xml @@ -1 +1,6 @@ -What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension release \ No newline at end of file +What's new on Documentation of php-simple-kafka-clienthttps://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/Recent content in What's new on Documentation of php-simple-kafka-clientHugo -- gohugo.ioen-usSun, 27 Dec 2020 22:09:37 +0100Release v0.1.0https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.0/Initial extension releaseRelease v0.1.1https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.1/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.1/Bugfixes: +fix Consumer:assign argument type fix Producer:getTopicHandle return typeRelease v0.1.2https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.2/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.2/Bugfixes: +fix version and some tests fix Windows buildRelease v0.1.3https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.3/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.3/Features +support oauthbearer mechanism Bugfixes: +fixes for PHP8.1 fix Windows buildRelease v0.1.4https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.4/Sun, 27 Dec 2020 22:09:37 +0100https://php-kafka.github.io/php-simple-kafka-client.github.io/whats-new/release-0.1.4/Bugfixes: +fixes for PHP8.1 \ No newline at end of file diff --git a/whats-new/release-0.1.0/index.html b/whats-new/release-0.1.0/index.html index 03bcf8f..8248c22 100644 --- a/whats-new/release-0.1.0/index.html +++ b/whats-new/release-0.1.0/index.html @@ -1,7 +1,7 @@ Release v0.1.0 | Documentation of php-simple-kafka-client

    Release v0.1.0

    Initial extension release

    \ No newline at end of file +

    More

    Release v0.1.0

    Initial extension release

    \ No newline at end of file diff --git a/whats-new/release-0.1.1/index.html b/whats-new/release-0.1.1/index.html new file mode 100644 index 0000000..c26ac71 --- /dev/null +++ b/whats-new/release-0.1.1/index.html @@ -0,0 +1,18 @@ +Release v0.1.1 | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/whats-new/release-0.1.2/index.html b/whats-new/release-0.1.2/index.html new file mode 100644 index 0000000..4ef511a --- /dev/null +++ b/whats-new/release-0.1.2/index.html @@ -0,0 +1,18 @@ +Release v0.1.2 | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/whats-new/release-0.1.3/index.html b/whats-new/release-0.1.3/index.html new file mode 100644 index 0000000..441b67a --- /dev/null +++ b/whats-new/release-0.1.3/index.html @@ -0,0 +1,18 @@ +Release v0.1.3 | Documentation of php-simple-kafka-client \ No newline at end of file diff --git a/whats-new/release-0.1.4/index.html b/whats-new/release-0.1.4/index.html new file mode 100644 index 0000000..8e7a4bd --- /dev/null +++ b/whats-new/release-0.1.4/index.html @@ -0,0 +1,18 @@ +Release v0.1.4 | Documentation of php-simple-kafka-client \ No newline at end of file From a43c8e47ce936cea69a4fe279d8c4fa5876619f9 Mon Sep 17 00:00:00 2001 From: nick-zh Date: Tue, 14 Sep 2021 16:19:34 +0000 Subject: [PATCH 34/36] deploy: 23eafdd3c033775e35371edc8feb815c2151d185 --- installation/index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/installation/index.html b/installation/index.html index 2a0d004..4a6a92d 100644 --- a/installation/index.html +++ b/installation/index.html @@ -18,7 +18,8 @@

    More

    Installation

    Installation with PECL

    pecl install simple_kafka_client
     

    Alpine Linux

    For PHP7:

    apk add php7-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
     

    For PHP8:

    apk add php8-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
    -

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +

    Windows

    You can find the DLLs on PECL as well. If you experience an error similar to this:

    The procedure entry point rd_kafka_abort_transaction could not be located in the dynamic library librdkafka.dll
    +

    This can happen if an old version of librdkafka.dll is packaged during the PECL build.
    You can download newer versions of the librdkafka.dll here
    You can find the DLLs in the runtimes sub-folder.

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
     cd php-simple-kafka-client
     phpize && ./configure && make -j5 all && make install
     

    In your php/conf.d folder add a simple_kafka_client.ini with the following:

    extension=simple_kafka_client.so
    
    From 79f08b46778fd254892a82f82e9326ee2e3062a7 Mon Sep 17 00:00:00 2001
    From: nick-zh 
    Date: Tue, 14 Sep 2021 16:38:54 +0000
    Subject: [PATCH 35/36] deploy: 37a5e5b0c25e23d3b012701b23102c357ae773bb
    
    ---
     installation/index.html | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/installation/index.html b/installation/index.html
    index 4a6a92d..733ca1f 100644
    --- a/installation/index.html
    +++ b/installation/index.html
    @@ -19,7 +19,7 @@
     

    Alpine Linux

    For PHP7:

    apk add php7-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
     

    For PHP8:

    apk add php8-pecl-simple-kafka-client --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/
     

    Windows

    You can find the DLLs on PECL as well. If you experience an error similar to this:

    The procedure entry point rd_kafka_abort_transaction could not be located in the dynamic library librdkafka.dll
    -

    This can happen if an old version of librdkafka.dll is packaged during the PECL build.
    You can download newer versions of the librdkafka.dll here
    You can find the DLLs in the runtimes sub-folder.

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
    +
    1. Most likely you have an outdated version of librdkaka in use. Note that librdkaka.dll needs to be in the PATH.
      putting it in the ext/ directory does not make it available. Be sure to overwrite any previous versions.
    2. This can also happen if an old version of librdkafka.dll is packaged during the PECL build.
      You can download newer versions of the librdkafka.dll here
      You can find the DLLs in the runtimes sub-folder.

    Manual installation

    git clone https://github.com/php-kafka/php-simple-kafka-client.git
     cd php-simple-kafka-client
     phpize && ./configure && make -j5 all && make install
     

    In your php/conf.d folder add a simple_kafka_client.ini with the following:

    extension=simple_kafka_client.so
    
    From 4461400bc1e3df92c7edc1770190112e56aebf1d Mon Sep 17 00:00:00 2001
    From: nick-zh 
    Date: Tue, 14 Dec 2021 16:05:06 +0000
    Subject: [PATCH 36/36] deploy: 67a4e7a86e4e1ce287d0137bfe45291b2a217ea4
    
    ---
     about/index.html | 2 +-
     index.html       | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/about/index.html b/about/index.html
    index 770cef6..884ac12 100644
    --- a/about/index.html
    +++ b/about/index.html
    @@ -19,4 +19,4 @@
     Supported Kafka versions: >= 0.9
     Supported PHP versions: 7.x .. 8.x
     License: BSD-3
    -Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.
    Notice: php-rdkafka conflicts with this extension, please uninstall it first if you want to use simple-kafka-client.

    \ No newline at end of file diff --git a/index.html b/index.html index 4276d74..250d8cc 100644 --- a/index.html +++ b/index.html @@ -19,4 +19,4 @@ Supported Kafka versions: >= 0.9 Supported PHP versions: 7.x .. 8.x License: BSD-3 -Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.

    \ No newline at end of file +Join the chat at https://gitter.im/php-kafka/php-simple-kafka-client

    This extension provides ways to interact with Apache Kafka.
    It also supports any system that is Kafka API compatible like Redpanda.
    You can find some examples for producer and consumer here
    This extension uses librdkafka for binding and was inspired by php-rdkafka.
    Notice: php-rdkafka conflicts with this extension, please uninstall it first if you want to use simple-kafka-client.

    \ No newline at end of file

    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 RDAJQE`lTKRYuD|#000vo4gmlF literal 0 HcmV?d00001 diff --git a/fonts/LiberationSans-BoldItalic.woff b/fonts/LiberationSans-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..aa4c0c1f5e6d77e67c9213a283f0c4525bb24397 GIT binary patch literal 192500 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 O{B)xax;R`9w+#O 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 Qyh&K0{xkf1~fwf6y<;4FD2oAsEaM3K0+kc1VIW z$b?)dfD$N$PS6c{LLcZabahTc-6t)3^Jr+-fp46$3pzt_v>80}WPCD99n;;f)pb!1QNneG~!5Mw>;@{sr{pQPO zgdphNd+LTqf0kZ_?Rq7)YhF~F2=F0@}q~Js5?PzWY+O6 z^1*}m?R(&n6HF|}Wcl8`2Od5FiI93s)@nCx+kS%b$bQTzZ}{8RyH7wQ#2+t{*RNkj zE#V2uCfhMtw{*oVx1XT)BkY(Q983-23Fg)u>mW~^F=xRE(1GE2dwI%~ku~EcouE9@ z9Fq+rs%s~nVAjhSE}PBNOkQs+mV5UdFytC3l6&=HX6giVh4N#ve2< z^}C-=Kn3)3CbyM;j*Lx6PS29V@T2ku-Bd$w%g? zZs85hF0|3K6u-C9?01Q#75Sgjx1GL~0!L^P{kGC?hu^#T{lEEpv;3j?c{4h__bVQ{ z7(F(MYiovYZGP^#-}^0{zm_qj>2E4~u|My(_wU-arlj}i|CA}`>Axq<{nZrDj|~T> zLfO>wQ{mC6O)!2~f#*IT9L7)1^MCv`yTX^jREAB4&|l7b@AiGOYo_v>+*=@F4EuM~ zfPF0g53oR|e4QowKbn5ZQ@lSt-`uD@?>%_I-`3nlBrU5e(5!^J`BzEnsO1vZVwJ6+dqwl5W~G}y&K4R(YPi?Di5e3ke8 zVx2)EQfOnW(TYeCQ1;o&XZ_~tv0JTXyIB@rym+!;}K+aSVus0`^?ZCal@D^a?x-4-pSvAHbjK z-`V(?JY0N?UeC)VsC#^=*jfyCawa_H-tFF{&H>m>udfid`0yDqP54?YSGW(l9~QS< zA3%v{hL3R5)tql;kcTt)>m_)+XD)lR^dR4Nuf5Z*l_b4_u}-g%K@j0_J?z!PW<6Bu zp-d0ide3ZRzWavXQU+Q|hZgd+A|5h{l)?*>;ANtaD=d-XTrxMj#%IuE~kgk zelbf-kf3Oh3i!hS{qRos4PkTrv!E!1hq3||%8JeJe`wKLiN!$38M{?4x7HJTexKW9jeEpB628bII68#?%}fOMe;r2oK4R#-br& zwK#xkijl9+OQ9CO2$i88s1glD)o3D`i58-jl${}tgo3vDc`2T6tLNM1`S$*y6vXB226%-XDvLjMdNdFEM6%-WV0qoNq$rA9bzH8lw+ZGoV z@{8dg>^Cx!eg2PKyp`dZT=mmP-;j5)ccb zgs057G>4Gmb%e~kAY7aG{*>c{fKWH>{6e)pr%~N}Ok{DetxQjXun3smZ=(I==Iuy6 zt&`A9H`2sg8^i^#FI;eT!GbgNbG~@%_2szJf-?)~F-=^^Ry_LW;XrMi)}ZKUEQW;8 zoRShv;Z!eK?YVsU4b$Z}0+y6|@@%G`DJ{^@f9%0AW2o}+&ptO2Hx%tJ$gzAKu34*5BsWp@*6eko5 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 rBbpfCb1g-Oh69htxp;Gue(0Bj=HUcCA&~yYK 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�?Rc0&ZOH4}Fk&=-Y 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�y2t#*2gkoSJ@bdi0(2`_lOr9>f1|znU}swE)v; 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